日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言程序设计50例(经典收藏),C语言程序设计50例(经典收藏)

發(fā)布時(shí)間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言程序设计50例(经典收藏),C语言程序设计50例(经典收藏) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

C語言程序設(shè)計(jì)50例(經(jīng)典收藏)

本篇文章是對(duì)C語言程序設(shè)計(jì)的50個(gè)小案例進(jìn)行了詳細(xì)的分析介紹 需要的朋友參考下

【程序1】

題目 有1、2、3、4個(gè)數(shù)字 能組成多少個(gè)互不相同且無重復(fù)數(shù)字的三位數(shù) 都是多少

1.程序分析 可填在百位、十位、個(gè)位的數(shù)字都是1、2、3、4。組成所有的排列后再去

掉不滿足條件的排列。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int i,j,k;

printf( \n

for(i i i ) /*以下為三重循環(huán)*/

for(j j j )

for (k k k )

if (i! k i! j j! k) /*確保i、j、k三位互不相同*/

printf( %d,%d,%d\n ,i,j,k);

return 0;

【程序2】

題目 企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤提成。利潤(I)低于或等于10萬元時(shí) 獎(jiǎng)金可提10% 利潤高

于10萬元 低于20萬元時(shí) 低于10萬元的部分按10%提成 高于10萬元的部分 可可提

成7.5% 20萬到40萬之間時(shí) 高于20萬元的部分 可提成5% 40萬到60萬之間時(shí)高于

40萬元的部分 可提成3% 60萬到100萬之間時(shí) 高于60萬元的部分 可提成1.5% 高于

100萬元時(shí) 超過100萬元的部分按1%提成 從鍵盤輸入當(dāng)月利潤I 求應(yīng)發(fā)放獎(jiǎng)金總數(shù)

1.程序分析 請(qǐng)利用數(shù)軸來分界 定位。注意定義時(shí)需把獎(jiǎng)金定義成長整型。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

long int i;

int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;

scanf( %ld ,

bonus1 100000*0.1;

bonus2 bonus1 100000*0.75;

bonus4 bonus2 200000*0.5;

bonus6 bonus4 200000*0.3;

bonus10 bonus6 400000*0.15;

if(i 100000)

bonus i*0.1;

else if(i 200000)

bonus bonus1 (i-100000)*0.075;

else if(i 400000)

bonus bonus2 (i-200000)*0.05;

else if(i 600000)

bonus bonus4 (i-400000)*0.03;

else if(i 1000000)

bonus bonus6 (i-600000)*0.015;

else

bonus bonus10 (i-1000000)*0.01;

printf( bonus %d ,bonus);

return 0;

【程序3】

題目 一個(gè)整數(shù) 它加上100后是一個(gè)完全平方數(shù) 再加上168又是一個(gè)完全平方數(shù) 請(qǐng)問該數(shù)是多少

1.程序分析 在10萬以內(nèi)判斷 先將該數(shù)加上100后再開方 再將該數(shù)加上268后再開方 如果開方后

的結(jié)果滿足如下條件 即是結(jié)果。請(qǐng)看具體分析

2.程序源代碼

代碼如下:

#include math.h

#include stdio.h

int main()

long int i,x,y,z;

for (i i 100000;i )

x sqrt(i 100); /*x為加上100后開方后的結(jié)果*/

y sqrt(i 268); /*y為再加上168后開方后的結(jié)果*/

if(x*x i 100 y*y i 268) /*如果一個(gè)數(shù)的平方根的平方等于該數(shù) 這說明此數(shù)是完全平方數(shù)*/

printf( \n%ld\n ,i);

return 0;

【程序4】

題目 輸入某年某月某日 判斷這一天是這一年的第幾天

1.程序分析 以3月5日為例 應(yīng)該先把前兩個(gè)月的加起來 然后再加上5天即本年的第幾天 特殊

情況 閏年且輸入月份大于3時(shí)需考慮多加一天。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int day,month,year,sum,leap;

printf( please input year,month,day\n

scanf( %d,%d,%d , year, month, day);

switch(month) /*先計(jì)算某月以前月份的總天數(shù)*/

case 1:sum break;

case 2:sum break;

case 3:sum break;

case 4:sum break;

case 5:sum 120;break;

case 6:sum 151;break;

case 7:sum 181;break;

case 8:sum 212;break;

case 9:sum 243;break;

case 10:sum 273;break;

case 11:sum 304;break;

case 12:sum 334;break;

default:printf( data error break;

sum sum day; /*再加上某天的天數(shù)*/

if(year%400 0||(year%4 0 year%100! 0)) /*判斷是不是閏年*/

leap

else

leap

if(leap 1 month 2) /*如果是閏年且月份大于2,總天數(shù)應(yīng)該加一天*/

sum

printf( It is the %dth day. ,sum);

return 0;

【程序5】

題目 輸入三個(gè)整數(shù)x,y,z 請(qǐng)把這三個(gè)數(shù)由小到大輸出。

1.程序分析 我們想辦法把最小的數(shù)放到x上 先將x與y進(jìn)行比較 如果x y則將x與y的值進(jìn)行交換

然后再用x與z進(jìn)行比較 如果x z則將x與z的值進(jìn)行交換 這樣能使x最小。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int x,y,z,t;

scanf( %d%d%d , x, y,

if (x y)

{t x y } /*交換x,y的值*/

if(x z)

{t z x } /*交換x,z的值*/

if(y z)

{t y z } /*交換z,y的值*/

printf( small to big: %d %d %d\n ,x,y,z);

return 0;

【程序6】

題目 用號(hào)輸出字母C的圖案。

1.程序分析 可先用’ 號(hào)在紙上寫出字母C 再分行輸出。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

printf( Hello C-world!\n

printf( ****\n

printf( *\n

printf( * \n

printf( ****\n

return 0;

【程序7】

題目 輸出特殊圖案 請(qǐng)?jiān)赾環(huán)境中運(yùn)行 看一看 Very Beautiful!

1.程序分析 字符共有256個(gè)。不同字符 圖形不一樣。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

char a 176,b 219;

printf( %c%c%c%c%c\n ,b,a,a,a,b);

printf( %c%c%c%c%c\n ,a,b,a,b,a);

printf( %c%c%c%c%c\n ,a,a,b,a,a);

printf( %c%c%c%c%c\n ,a,b,a,b,a);

printf( %c%c%c%c%c\n ,b,a,a,a,b);

return 0;

【程序8】

題目 輸出9*9口訣。

1.程序分析 分行與列考慮 共9行9列 i控制行 j控制列。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int i,j,result;

printf( \n

for (i i i )

for(j j j )

result i*j;

printf( %d*%d %-3d ,i,j,result); /*-3d表示左對(duì)齊 占3位*/

printf( \n /*每一行后換行*/

return 0;

【程序9】

題目 要求輸出國際象棋棋盤。

1.程序分析 用i控制行 j來控制列 根據(jù)i j的和的變化來控制輸出黑方格 還是白方格。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int i,j;

for(i i i )

for(j j j )

if((i j)%2 0)

printf( %c%c ,219,219);

else

printf(

printf( \n

return 0;

【程序10】

題目 打印樓梯 同時(shí)在樓梯上方打印兩個(gè)笑臉。

1.程序分析 用i控制行 j來控制列 j根據(jù)i的變化來控制輸出黑方格的個(gè)數(shù)。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int i,j;

printf( \1\1\n /*輸出兩個(gè)笑臉*/

for(i i i )

for(j j j )

printf( %c%c ,219,219);

printf( \n

return 0;

【程序11】

題目 古典問題 有一對(duì)兔子 從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子 小兔子長到第三個(gè)月

后每個(gè)月又生一對(duì)兔子 假如兔子都不死 問每個(gè)月的兔子總數(shù)為多少

1.程序分析 兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21…

2.程序源代碼

代碼如下:

#include stdio.h

int main()

long f1,f2;

int i;

f1 f2

for(i i i )

printf( %12ld %12ld ,f1,f2);

if(i%2 0) printf( \n /*控制輸出 每行四個(gè)*/

f1 f1 /*前兩個(gè)月加起來賦值給第三個(gè)月*/

f2 f1 /*前兩個(gè)月加起來賦值給第三個(gè)月*/

return 0;

【程序12】

題目 判斷101-200之間有多少個(gè)素?cái)?shù) 并輸出所有素?cái)?shù)。

1.程序分析 判斷素?cái)?shù)的方法 用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)) 如果能被整除

則表明此數(shù)不是素?cái)?shù) 反之是素?cái)?shù)。

2.程序源代碼

代碼如下:

#include stdio.h

#include math.h

int main()

int m,i,k,h 0,leap

for(m 101;m 200;m )

k sqrt(m

for(i i i )

if(m%i 0)

leap

break;

if(leap)

printf( %-4d ,m);

if(h%10 0)

printf( \n

leap

printf( \nThe total is %d ,h);

return 0;

【程序13】

題目 打印出所有的“水仙花數(shù)” 所謂“水仙花數(shù)”是指一個(gè)三位數(shù) 其各位數(shù)字立方和等于該數(shù)

本身。例如 153是一個(gè)“水仙花數(shù)” 因?yàn)?53 1的三次方 5的三次方 3的三次方。

1.程序分析 利用for循環(huán)控制100-999個(gè)數(shù) 每個(gè)數(shù)分解出個(gè)位 十位 百位。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int i,j,k,n;

printf( water flower number is:

for(n 100;n 1000;n )

i n/100;/*分解出百位*/

j n/10%10;/*分解出十位*/

k n%10;/*分解出個(gè)位*/

if(i*100 j*10 k i*i*i j*j*j k*k*k)

printf( %-5d ,n);

return 0;

【程序14】

題目 將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如 輸入90,打印出90 233*5。

程序分析 對(duì)n進(jìn)行分解質(zhì)因數(shù) 應(yīng)先找到一個(gè)最小的質(zhì)數(shù)k 然后按下述步驟完成

(1)如果這個(gè)質(zhì)數(shù)恰等于n 則說明分解質(zhì)因數(shù)的過程已經(jīng)結(jié)束 打印出即可。

(2)如果n k 但n能被k整除 則應(yīng)打印出k的值 并用n除以k的商,作為新的正整數(shù)你n,

重復(fù)執(zhí)行第一步。

(3)如果n不能被k整除 則用k 1作為k的值,重復(fù)執(zhí)行第一步。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int n,i;

printf( \nplease input a number:\n

scanf( %d ,

printf( %d ,n);

for(i i i )

while(n! i)

if(n%i 0)

printf( %d* ,i);

n n/i;

else

break;

printf( %d ,n);

return 0;

【程序15】

題目 利用條件運(yùn)算符的嵌套來完成此題 學(xué)習(xí)成績 90分的同學(xué)用A表示 60-89分之間的用B表示

60分以下的用C表示。

1.程序分析 (a b)?a:b這是條件運(yùn)算符的基本例子。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int score;

char grade;

printf( please input a score\n

scanf( %d , score);

grade score 90? A :(score 60? B : C

printf( %d belongs to %c ,score,grade);

return 0;

【程序16】

題目 輸入兩個(gè)正整數(shù)m和n 求其最大公約數(shù)和最小公倍數(shù)。

1.程序分析 利用輾除法。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int a,b,num1,num2,temp;

printf( please input two numbers:\n

scanf( %d %d , num1, num2);

if(num1 num2)/*交換兩個(gè)數(shù) 使大數(shù)放在num1上*/

temp num1;

num1 num2;

num2 temp;

a num1;b num2;

while(b! 0)/*利用輾除法 直到b為0為止*/

temp a%b;

b temp;

printf( gongyueshu:%d\n ,a);

printf( gongbeishu:%d\n ,num1*num2/a);

return 0;

【程序17】

題目 輸入一行字符 分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)。

1.程序分析 利用while語句,條件為輸入的字符不為’\n’.

2.程序源代碼

代碼如下:

#include stdio.h

int main()

char c;

int letters 0,space 0,digit 0,others

printf( please input some characters\n

while((c getchar())! \n )

if(c a c z ||c A c Z )

letters

else if(c )

space

else if(c 0 c 9 )

digit

else

others

printf( all in all:char %d space %d digit %d others %d\n ,letters,space,digit,others);

return 0;

【程序18】

題目 求s a aa aaa aaaa aa…a的值 其中a是一個(gè)數(shù)字。例如2 22 222 2222 22222(此時(shí)

共有5個(gè)數(shù)相加) 幾個(gè)數(shù)相加有鍵盤控制。

1.程序分析 關(guān)鍵是計(jì)算出每一項(xiàng)的值。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int a,n,count

long int sn 0,tn

printf( please input a and n\n

scanf( %d %d , a,

printf( a %d,n %d\n ,a,n);

while(count n)

tn tn

sn sn

a a*10;

count;

printf( a aa ... %ld\n ,sn);

return 0;

【程序19】

題目 一個(gè)數(shù)如果恰好等于它的因子之和 這個(gè)數(shù)就稱為“完數(shù)”。例如6 1 2 3.編程

找出1000以內(nèi)的所有完數(shù)。

程序分析 請(qǐng)參照程序 –上頁程序14.

2.程序源代碼

代碼如下:

#include stdio.h

int main()

static int k[10];

int i,j,n,s;

for(j j 1000;j )

for(i i i )

if((j%i) 0)

s s-i;

k[n]

if(s 0)

printf( %d is a wanshu ,j);

for(i i i )

printf( %d, ,k[i]);

printf( %d\n ,k[n]);

return 0;

【程序20】

題目 一球從100米高度自由落下 每次落地后反跳回原高度的一半 再落下 求它在

第10次落地時(shí) 共經(jīng)過多少米 第10次反彈多高

1.程序分析 見下面注釋

2.程序源代碼

代碼如下:

#include stdio.h

int main()

float sn 100.0,hn sn/2;

int n;

for(n n n )

sn sn 2*hn;/*第n次落地時(shí)共經(jīng)過的米數(shù)*/

hn hn/2; /*第n次反跳高度*/

printf( the total of road is %f\n ,sn);

printf( the tenth is %f meter\n ,hn);

return 0;

【程序21】

題目 猴子吃桃問題 猴子第一天摘下若干個(gè)桃子 當(dāng)即吃了一半 還不癮 又多吃了一個(gè)

第二天早上又將剩下的桃子吃掉一半 又多吃了一個(gè)。以后每天早上都吃了前一天剩下

的一半零一個(gè)。到第10天早上想再吃時(shí) 見只剩下一個(gè)桃子了。求第一天共摘了多少。

1.程序分析 采取逆向思維的方法 從后往前推斷。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int day,x1,x2;

day

while(day 0)

x1 (x2 1)*2;/*第一天的桃子數(shù)是第2天桃子數(shù)加1后的2倍*/

day--;

printf( the total is %d\n ,x1);

return 0;

【程序22】

題目 兩個(gè)乒乓球隊(duì)進(jìn)行比賽 各出三人。甲隊(duì)為a,b,c三人 乙隊(duì)為x,y,z三人。已抽簽決定

比賽名單。有人向隊(duì)員打聽比賽的名單。a說他不和x比 c說他不和x,z比 請(qǐng)編程序找出

三隊(duì)賽手的名單。

1.程序源代碼

代碼如下:

#include stdio.h

int main()

char i,j,k;/*i是a的對(duì)手 j是b的對(duì)手 k是c的對(duì)手*/

for(i x i z i )

for(j x j z j )

if(i! j)

for(k x k z k )

if(i! k j! k)

if(i! x k! x k! z )

printf( order is a--%c\tb--%c\tc--%c\n ,i,j,k);

return 0;

【程序23】

題目 打印出如下圖案 菱形

*

*****

*******

*****

1.程序分析 先把圖形分成兩部分來看待 前四行一個(gè)規(guī)律 后三行一個(gè)規(guī)律 利用雙重

for循環(huán) 第一層控制行 第二層控制列。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int i,j,k;

for(i i i )

for(j j 2-i;j )

printf(

for(k k 2*i;k )

printf( *

printf( \n

for(i i i )

for(j j j )

printf(

for(k k 4-2*i;k )

printf( *

printf( \n

return 0;

【程序24】

題目 有一分?jǐn)?shù)序列 2/1 3/2 5/3 8/5 13/8 21/13…求出這個(gè)數(shù)列的前20項(xiàng)之和。

1.程序分析 請(qǐng)抓住分子與分母的變化規(guī)律。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int n,t,number

float a 2,b 1,s

for(n n number;n )

s s a/b;

t a a b /*這部分是程序的關(guān)鍵 請(qǐng)讀者猜猜t的作用*/

printf( sum is %9.6f\n ,s);

return 0;

【程序25】

題目 求1 2! 3! … 19!的和

1.程序分析 此程序只是把累加變成了累乘。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

long long s 0,n,t

for(n n n )

printf( 1 2! 3!... 19! %lld\n ,s);

return 0;

【程序26】

題目 利用遞歸方法求5!。

1.程序分析 遞歸公式 fn fn_1*4!

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int i;

int fact(int j);

for(i i i )

printf( %d! %d\n ,i,fact(i));

return 0;

int fact(int j)

int sum;

if(j 0)

sum

else

sum j*fact(j-1);

return sum;

【程序27】

題目 利用遞歸函數(shù)調(diào)用方式 將所輸入的5個(gè)字符 以相反順序打印出來。

1.程序分析

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int i

void palin(int n);

palin(i);

printf( \n

return 0;

void palin(int n)

char next;

if(n 1)

next getchar();

printf( \n\0:

putchar(next);

else

next getchar();

palin(n-1);

putchar(next);

【程序28】

題目 有5個(gè)人坐在一起 問第五個(gè)人多少歲 他說比第4個(gè)人大2歲。問第4個(gè)人歲數(shù) 他說比第

3個(gè)人大2歲。問第三個(gè)人 又說比第2人大兩歲。問第2個(gè)人 說比第一個(gè)人大兩歲。最后

問第一個(gè)人 他說是10歲。請(qǐng)問第五個(gè)人多大

1.程序分析 利用遞歸的方法 遞歸分為回推和遞推兩個(gè)階段。要想知道第五個(gè)人歲數(shù) 需知道

第四人的歲數(shù) 依次類推 推到第一人 10歲 再往回推。

2.程序源代碼

代碼如下:

#include stdio.h

age(int n)

int c;

if(n 1) c

else c age(n-1)

return(c);

int main()

printf( %d ,age(5));

return 0;

【程序29】

題目 給一個(gè)不多于5位的正整數(shù) 要求 一、求它是幾位數(shù) 二、逆序打印出各位數(shù)字。

程序分析 學(xué)會(huì)分解出每一位數(shù) 如下解釋 (這里是一種簡單的算法 師專數(shù)002班趙鑫提供)

2.程序源代碼

代碼如下:

#include stdio.h

int main()

long a,b,c,d,e,x;

scanf( %ld ,

a x/10000;/*分解出萬位*/

b x%10000/1000;/*分解出千位*/

c x%1000/100;/*分解出百位*/

d x%100/10;/*分解出十位*/

e x%10;/*分解出個(gè)位*/

if (a! 0) printf( there are 5, %ld %ld %ld %ld %ld\n ,e,d,c,b,a);

else if (b! 0) printf( there are 4, %ld %ld %ld %ld\n ,e,d,c,b);

else if (c! 0) printf( there are 3,%ld %ld %ld\n ,e,d,c);

else if (d! 0) printf( there are 2, %ld %ld\n ,e,d);

else if (e! 0) printf( there are 1,%ld\n ,e);

return 0;

【程序30】

題目 一個(gè)5位數(shù) 判斷它是不是回文數(shù)。即12321是回文數(shù) 個(gè)位與萬位相同 十位與千位相同。

1.程序分析 同29例

2.程序源代碼

代碼如下:

#include stdio.h

int main()

long ge,shi,qian,wan,x;

scanf( %ld ,

wan x/10000;

qian x%10000/1000;

shi x%100/10;

ge x%10;

if(ge wan shi qian)/*個(gè)位等于萬位并且十位等于千位*/

printf( this number is a huiwen\n

else

printf( this number is not a huiwen\n

return 0;

【程序31】

題目 請(qǐng)輸入星期幾的第一個(gè)字母來判斷一下是星期幾 如果第一個(gè)字母一樣 則繼續(xù)

判斷第二個(gè)字母。

1.程序分析 用情況語句比較好 如果第一個(gè)字母一樣 則判斷用情況語句或if語句判斷第二個(gè)字母。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

char letter;

printf( please input the first letter of someday\n

while((letter getchar())! Y )/*當(dāng)所按字母為Y時(shí)才結(jié)束*/

switch (letter)

case S :printf( please input second letter\n

if((letter getchar()) a )

printf( saturday\n

else if ((letter getchar()) u )

printf( sunday\n

else

printf( data error\n

break;

case F :printf( friday\n break;

case M :printf( monday\n break;

case T :printf( please input second letter\n

if((letter getchar()) u )

printf( tuesday\n

else if ((letter getchar()) h )

printf( thursday\n

else

printf( data error\n

break;

case W :printf( wednesday\n break;

default: printf( data error\n

return 0;

【程序32】

題目 Press any key to change color, do you want to try it. Please hurry up!

1.程序分析

2.程序源代碼

代碼如下:

#include conio.h

#include stdio.h

void main(void)

int color;

for (color color color )

textbackground(color);/*設(shè)置文本的背景顏色*/

cprintf( This is color %d\r\n , color);

cprintf( Press any key to continue\r\n

getch();/*輸入字符看不見*/

【程序33】

題目 學(xué)習(xí)gotoxy()與clrscr()函數(shù)

1.程序分析

2.程序源代碼

代碼如下:

#include conio.h

#include stdio.h

void main(void)

clrscr();/*清屏函數(shù)*/

textbackground(2);

gotoxy(1, 5);/*定位函數(shù)*/

cprintf( Output at row 5 column 1\n

textbackground(3);

gotoxy(20, 10);

cprintf( Output at row 10 column 20\n

getch();

【程序34】

題目 練習(xí)函數(shù)調(diào)用

程序分析

2.程序源代碼

代碼如下:

#include stdio.h

void hello_world(void)

printf( Hello, world!\n

void three_hellos(void)

int counter;

for (counter counter counter )

hello_world();/*調(diào)用此函數(shù)*/

int main()

three_hellos();/*調(diào)用此函數(shù)*/

return 0;

【程序35】

題目 文本顏色設(shè)置

1.程序分析

2.程序源代碼

代碼如下:

#include stdio.h

#include conio.h

void main(void)

int color;

for (color color color )

textcolor(color);/*設(shè)置文本顏色*/

cprintf( This is color %d\r\n , color);

textcolor(128 15);

cprintf( This is blinking\r\n

getch();

【程序36】

題目 求100之內(nèi)的素?cái)?shù)

1.程序分析

2.程序源代碼

代碼如下:

#include stdio.h

#include math.h

#define N 101

int main()

int i,j,line,a[N],k;

for(k k k )

for(i i sqrt(k);i )

if(k%i 0)

break;

if(i (int)sqrt(k) 1)

printf( %d ,k);

return 0;

【程序37】

題目 對(duì)10個(gè)數(shù)進(jìn)行排序

1.程序分析 可以利用選擇法 即從后9個(gè)比較過程中 選擇一個(gè)最小的與第一個(gè)元素交換

下次類推 即用第二個(gè)元素與后8個(gè)進(jìn)行比較 并進(jìn)行交換。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int a[10],i,j,t;

printf( 請(qǐng)輸入10個(gè)數(shù)

for(i i i )

scanf( %d , a[i]);

for(i i i )

for(j j j )

if(a[j] a[j 1])

t a[j];

a[j] a[j

a[j 1]

for(i i i )

printf( %d ,a[i]);

return 0;

【程序38】

題目 求一個(gè)3*3矩陣對(duì)角線元素之和

1.程序分析 利用雙重for循環(huán)控制輸入二維數(shù)組 再將a累加后輸出。

2.程序源代碼

代碼如下:

#include stdio.h

#include conio.h

/* 如果使用的是TC系列編譯器則可能需要添加下句 */

static void dummyfloat(float *x){ float y; dummyfloat( }

main()

float a[3][3],sum

int i,j;

printf( please input rectangle element:\n

for(i i i )

for(j j j )

scanf( %f , a[j]);

for(i i i )

sum sum

printf( duijiaoxian he is %6.2f ,sum);

getch();

【程序39】

題目 有一個(gè)已經(jīng)排好序的數(shù)組。現(xiàn)輸入一個(gè)數(shù) 要求按原來的規(guī)律將它插入數(shù)組中。

程序分析 首先判斷此數(shù)是否大于最后一個(gè)數(shù) 然后再考慮插入中間的數(shù)的情況 插入后

此元素之后的數(shù) 依次后移一個(gè)位置。

2.程序源代碼

代碼如下:

#include stdio.h

int main()

int a[11] {1,4,6,9,13,16,19,28,40,100},i,j,t,d;

scanf( %d , a[10]);

if(a[0] a[9])

else

for(i i i )

for(j j 10-i;j )

if(a[j] a[j 1])

t a[j];

a[j] a[j

a[j 1]

if(d 0)

for(i i i )

printf( %d ,a[i]);

else

for(i i i--)

printf( %d ,a[i]);

return 0;

【程序40】

題目 將一個(gè)數(shù)組逆序輸出。

1.程序分析 用第一個(gè)與最后一個(gè)交換。

2.程序源代碼

代碼如下:

#include stdio.h

#include conio.h

#define N 5

main()

int a[N] {9,6,5,4,1},i,temp;

printf( \n original array:\n

for(i i i )

printf( %4d ,a);

for(i i i )

temp

a a[N-i-1];

a[N-i-1] temp;

printf( \n sorted array:\n

for(i i i )

printf( %4d ,a);

getch();

【程序41】

題目 學(xué)習(xí)static定義靜態(tài)變量的用法

1.程序分析

2.程序源代碼

代碼如下:

#include stdio.h

#include conio.h

varfunc()

int var

static int static_var

printf( \40:var equal %d \n ,var);

printf( \40:static var equal %d \n ,static_var);

printf( \n

var

static_var

void main()

int i;

for(i i i )

varfunc();

getch();

【程序42】

題目 學(xué)習(xí)使用auto定義變量的用法

1.程序分析

2.程序源代碼

代碼如下:

#include stdio.h

#include conio.h

main()

int i,num;

num

for(i i i )

printf( \40: The num equal %d \n ,num);

num

auto int num

printf( \40: The internal block num equal %d \n ,num);

num

getch();

【程序43】

題目 學(xué)習(xí)使用static的另一用法。

1.程序分析

2.程序源代碼

代碼如下:

#include stdio.h

#include conio.h

main()

int i,num;

num

for(i i i )

printf( \40: The num equal %d \n ,num);

num

static int num

printf( \40:The internal block num equal %d\n ,num);

num

getch();

【程序44】

題目 學(xué)習(xí)使用external的用法。

1.程序分析

2.程序源代碼

代碼如下:

#include stdio.h

#include conio.h

int a,b,c;

void add()

int a;

c a

void main()

a b

add();

printf( The value of c is equal to %d\n ,c);

getch();

【程序45】

題目 學(xué)習(xí)使用register定義變量的方法。

1.程序分析

2.程序源代碼

代碼如下:

#include stdio.h

#include conio.h

void main()

register int i;

int tmp

for(i i 100;i )

tmp

printf( The sum is %d\n ,tmp);

getch();

【程序46】

題目 宏#define命令練習(xí)(1)

1.程序分析

2.程序源代碼

代碼如下:

#include stdio.h

#include conio.h

#define TRUE 1

#define FALSE 0

#define SQ(x) (x)*(x)

void main()

int num;

int again

printf( \40: Program will stop if input value less than 50.\n

while(again)

printf( \40:Please input number

scanf( %d , num);

printf( \40:The square for this number is %d \n ,SQ(num));

if(num 50)

again TRUE;

else

again FALSE;

getch();

【程序47】

題目 宏#define命令練習(xí)(2)

1.程序分析

2.程序源代碼

代碼如下:

#include stdio.h

#include conio.h

/*宏定義中允許包含兩道衣裳命令的情形 此時(shí)必須在最右邊加上 \ */

#define exchange(a,b) { \

int t;\

void main(void)

int x

int y

printf( x y %d\n ,x,y);

exchange(x,y);

printf( x y %d\n ,x,y);

getch();

【程序48】

題目 宏#define命令練習(xí)(3)

1.程序分析

2.程序源代碼

代碼如下:

#define LAG

#define SMA

#define EQ

#include stdio.h

#include conio.h

void main()

int i

int j

if(i LAG j)

printf( \40: %d larger than %d \n ,i,j);

else if(i EQ j)

printf( \40: %d equal to %d \n ,i,j);

else if(i SMA j)

printf( \40:%d smaller than %d \n ,i,j);

else

printf( \40: No such value.\n

getch();

【程序49】

題目 #if #ifdef和#ifndef的綜合應(yīng)用。

程序分析

2.程序源代碼

代碼如下:

#include stdio.h

#include conio.h

#define MAX

#define MAXIMUM(x,y) (x y)?x:y

#define MINIMUM(x,y) (x y)?y:x

void main()

int a 10,b

#ifdef MAX

printf( \40: The larger one is %d\n ,MAXIMUM(a,b));

#else

printf( \40: The lower one is %d\n ,MINIMUM(a,b));

#endif

#ifndef MIN

printf( \40: The lower one is %d\n ,MINIMUM(a,b));

#else

printf( \40: The larger one is %d\n ,MAXIMUM(a,b));

#endif

#undef MAX

#ifdef MAX

printf( \40: The larger one is %d\n ,MAXIMUM(a,b));

#else

printf( \40: The lower one is %d\n ,MINIMUM(a,b));

#endif

#define MIN

#ifndef MIN

printf( \40: The lower one is %d\n ,MINIMUM(a,b));

#else

printf( \40: The larger one is %d\n ,MAXIMUM(a,b));

#endif

getch();

很快就

責(zé)任編輯:xiaochao

總結(jié)

以上是生活随笔為你收集整理的c语言程序设计50例(经典收藏),C语言程序设计50例(经典收藏)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。