程序設(shè)計基礎(chǔ)教程(c語言版)課后答案_第1頁
程序設(shè)計基礎(chǔ)教程(c語言版)課后答案_第2頁
程序設(shè)計基礎(chǔ)教程(c語言版)課后答案_第3頁
程序設(shè)計基礎(chǔ)教程(c語言版)課后答案_第4頁
程序設(shè)計基礎(chǔ)教程(c語言版)課后答案_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余95頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、z習(xí)題解答1.2習(xí)題解答 31.2.1 選擇題 31.2.2 填空題 31.2.3 編程題 42.2習(xí)題解答 52.2.1 選擇題 52.2.2 填空題 72.2.3 編程題 83.2習(xí)題解答 113.2.1 選擇題 113.2.2 填空題 123.2.3 編程題 124.2習(xí)題解答 154.2.1 選擇題 154.2.2 填空題 174.2.3 編程題 185.2習(xí)題解答 295.2.1 選擇題 295.2.2 填空題 315.2.3 編程題 336.2習(xí)題解答 376.2.1 選擇題 376.2.2 填空題 416.2.3 編程題 437.2習(xí)題解答 677.2.1 選擇題 677.2.2

2、 填空題 687.2.3 編程題 681.2 習(xí)題解答1.2.1 選擇題1、 B【分析】在一個 羽序中必須有且只能有一個main函數(shù),而且main函數(shù)可以在任何地方出現(xiàn) .2、 C【分析】C 語言中合法以的標(biāo)識符組成為:字母,數(shù)字,下劃線,且數(shù)字不能打頭,亦不能為關(guān)鍵字。A中,-sub不合法。B中4d不合法。D中void為關(guān)鍵字。3、【分析】4、 C【分析】轉(zhuǎn)義字符中,第一個 ”輸出 “, 第二 輸出 , 第三個 b 退格, 把前一個去掉了,第四個 輸出 ,第五個t 跳格,第六個”輸出 ”,第七個n 輸出換行。5、 C【分析】本題將10進(jìn)制17,分別按8、 16進(jìn)制輸出。8的進(jìn)制21=2*8+

3、1*1=17(10, 16 制11=1*16+1*1=17(10)1.2.2 填空題1、主【分析】一個 CM程序中至少包括一個主函數(shù),其他函數(shù)沒有限制。2、雙引號?!痉治觥績煞N寫法都是允許的,使用尖括號表示在包含文件目錄中去查找( 包含目錄是由用戶在設(shè)置環(huán)境時設(shè)置的) , 而不在源文件目錄去查找. 使用雙引號則表示首先在當(dāng)前的源文件目錄中查找,若未找到才到包含目錄中去查找。用戶編程時可根據(jù)自己文件所在的目錄來選擇某一種命令形式。3、 261, b1【分析】將10進(jìn)制的177,按8進(jìn)制和16進(jìn)制兩種形式輸出。4、a = 3 b =7 x =8.5 y =71.82 c1=A c2=a【分析】sc

4、anf 函數(shù)中,格式說明符以外的原樣輸入。5、printf函數(shù)中,格式說明符以外的原樣輸出。m.nf控制輸出Z果中共 m位,小數(shù)占n位?!痉治觥?.2.3 編程題1. #include stdio.hvoid main() float qianmi,yingli; /定義變量scanf(qianmi=%f,&qianmi); / 輸入數(shù)據(jù)printf(yingli=%f,qianmi*1.60934); /計算并輸出數(shù)據(jù)2. #include stdio.hvoid main()char x;printf( 請輸出一個小寫小母n);scanf(%c,&x);printf( 輸出字母的大寫型式為

5、:%c,x+32);3. #includevoid main()float c,f;printf( 請輸入一個攝氏溫度:) ;scanf(%f,&c);f=32*c+9.0/5*c;printf( 華氏溫度為:%5.2fn,f);4.#includevoid main()int a =3,b=4,c=5;float x=1.2,y=2.4,z=-3.6;double u=51274,n=128765;printf(a=%-3d,b=%-3d,c=%dn,a,b,c);printf(x=%7.6f,y=%7.6f,z=%7.6fn,x,y,z);printf(x+y= %3.2f,y+z= %3

6、.2f, x+z=%3.2fn,x+y,y+z,x+z);printf(u= %.0lf n= %.0lfn,u,n);printf(c1=a or 97nc2=b or 98n);2.2 習(xí)題解答2.2.1 選擇題1、 C【分析】C語言的運(yùn)算符按運(yùn)算對象的個數(shù)可以分為單目、雙目和三目運(yùn)算符和多目運(yùn)算符。2、 C【分析】%運(yùn)算符要求參加運(yùn)算的數(shù)必須是整數(shù)3、 A 【分析】B. 賦值運(yùn)算的作用是用將常量賦給變量,而不能給表達(dá)形式所以 a*3=2 不對。C. %運(yùn)算符要求參加運(yùn)算的數(shù)必須是整數(shù),而x是float 類型所以x%(-3)不對。D.y=float(i) ,由于 i 是 int 類型,向f

7、loat 類型轉(zhuǎn)換是自由轉(zhuǎn)的,不需要強(qiáng)制轉(zhuǎn)。4、 A .【分析】因為k=7,x=12; x%=k ,貝U x=12%7,此時x=5,而k%=5即k=7%母匕時K=2,所以(x%=k)-(k%=5)就等價于 5-2=3。同理,x%=(k%=5)的值為 0; x%=(k-k%5)的值為 2; x%=k-k%5 的值也為25、 A【分析】首先通過n*100+0.5 將原數(shù)擴(kuò)大100, 并通過 +0.5判斷是否進(jìn)位。之后 /100進(jìn)行舍去小數(shù)點(diǎn)后第三位的運(yùn)算。6、 B【分析】分析根據(jù)優(yōu)先級別,先計算小括號里,y 與 3相等成立所以表達(dá)式的值為1 ,再將1賦給x,而x的值就是表達(dá)式的值為1.7、 A【分

8、析】略8、 D【分析】a大于等于io”、 a小于等于o兩者分別為關(guān)系運(yùn)算,一個或”字又表明為邏輯或運(yùn)算,所以DMo9、 B【分析】在邏輯表達(dá)式求解中,并不是所有的邏輯運(yùn)算符都被執(zhí)行,對&運(yùn)算符來說,只有前一個表達(dá)式不等于 0時,才繼續(xù)進(jìn)行右邊的運(yùn)算。由于ab為0,所以左邊的表達(dá)式為0,所以右邊的+n將不被計算,所以n的值不變?nèi)詾?。10、 B【分析】241的二進(jìn)制形式為11110001 , 15的二進(jìn)制形式為00011111 , 進(jìn)行按位&運(yùn)算后為00010001; a的二進(jìn)制形式為01100001, z的二進(jìn)制形式為01111010,進(jìn)行按位|運(yùn)算后為 011111011。 00010001

9、 與 011111011 都為非0元素,所以再進(jìn)行&時結(jié)果一定為1。11、 A【分析】b2表示向右移動兩位,相當(dāng)于除以兩個2結(jié)果為8/2=4 ;同理,b1相當(dāng)于除 一個2,結(jié)果為6, 4/6 為 0。12、 B【分析】3的二進(jìn)制數(shù)為00000011。10的二進(jìn)制為00001010, a雙目,算術(shù)運(yùn)算關(guān)系運(yùn)算邏輯運(yùn)算。14、 B【分析】19的二制數(shù)為00010011, 23的二進(jìn)制數(shù)為00010100, 兩者進(jìn)行按位與后結(jié)果為00010000十進(jìn)制 16,即為 16進(jìn)制的13。15、 C【分析】0x39的二進(jìn)制形式為00111001, 0xf的二進(jìn)制形式為00001111 ,兩者進(jìn)行異或運(yùn)算,

10、異或結(jié)算的規(guī)則,參加運(yùn)算的兩個二進(jìn)制位同號,則結(jié)果為假,異號則為真。結(jié)果為:00110110即為 16進(jìn)制的 36。16、 A【分析】進(jìn)行按位或運(yùn)算,要 a的低8位為1,則要求b的低8位全為1,高8位要求不變, 則要求高8位全為0,即b應(yīng)該為:0000000011111111,即為8進(jìn)制的0377。17、 A【分析】由題得1環(huán)成立,所以xy?+x:+y表達(dá)式的值為+y,則此時Y的值為3,而 +x沒有被執(zhí)行,所以x的仍值為1,而Z的值與表達(dá)式的值相同所以選 A。18、 C【分析】賦值運(yùn)算符的作和是將一個表達(dá)式或一個變量,常量賦給另一個變量,賦值號的左邊只能是變量,不能是常量,所以 A B D不對

11、。19、 B【分析】 逗號運(yùn)算符是級別最紙的運(yùn)算符,逗號表達(dá)式也是值是所有表達(dá)式中最右邊的值。即a+b的值,由題從左向右算起,b+后b為6,則a+b為8.20、 D【分析】 在不同種數(shù)據(jù)類型進(jìn)行計算時的轉(zhuǎn)換規(guī)則是:數(shù)據(jù)類型低的全部轉(zhuǎn)換成運(yùn)算過程中級別最高的。在int 、 long 、 unsigned 和 char 四個類型中,long 的類型級別最高,所以結(jié)果的類型為long.2.2.2 填空題1. -17.5【分析】“/ ”要求兩操作數(shù)如果一個為實(shí)數(shù)結(jié)果都為實(shí)數(shù),如果都為整數(shù)結(jié)果也為整數(shù),所以 a/4.0=2.5 , a/4=2. 所以原式=2.5-2*10=-17.5 。2. 5,32【

12、分析】x+表示將x的值拿來用,然后再+;而y*=x+等價于y=y*x ,即y=8*4=32,此計 算結(jié)束之后x 的值才增加1 ,變?yōu)?。3. -40【分析】賦值運(yùn)算符的結(jié)合方向是從右向左的,所以先計算a*a=25 ,所以 a+=a-=a*a 等價于a+= (a-=25),而此時a仍為5.接下來計算a-=25得a=2-25=-20;則a+= (a-=25)等價于 a+=-20 ,所以 a=a-20=-20-20=-40 。4. 16【分析】x+=-x%-y 等價于x+=( -x ) %( -y ) ,- 放在變量的前面時,要先對變量進(jìn)行變化,然后再用,所以原式即為x+=14%3, 而 14%3=

13、2, 即 x+=2, 而此時 x=14, 所以 x=x+2=16。5. x1&x10 |x關(guān)系運(yùn)算邏輯運(yùn)算可知,要先算a+b=7,接下來計算7c即75成立為1,然后計算b=c,而4=二環(huán)成立,所以彳1為0,即最終表達(dá)式等 價于1&0,所以結(jié)果為0.7. 0【分析】略,同第6題。8. -17【分析】條件運(yùn)算符優(yōu)先級別高于賦值運(yùn)算符,所以先算(ab)?a:b 的值,由于1325成立,所以(ab)?a:b的值 為a的值,并將a的值賦給y,此時,原式等價于(13-17)?y:c , 而13-17不成立,所以表達(dá)式的值為C勺值,即為-17。9. 18 ,3 , 3【分析】對逗號表達(dá)式的值,即為從左向右最

14、后一個表達(dá)式的值,本題中表達(dá)式的值即為 6*a 的值即18。10. 3.5【分析】算術(shù)運(yùn)算符中同一級別的運(yùn)算符按從左向右的順序進(jìn)行,所以先算a%43=8, 再計算8*(int)(x+y)=8*9=72,再計算72%3=Q再計算0/5=0.最后計算與注目加,所以最終結(jié)果為 3.5 。2.2.3 編程題1. 編寫一個程序,要求輸入圓的半徑r ,計算并輸出該圓的周長和面積。#define PI 3.14 #include stdio.hvoid main() float r, S=0, L=0;printf(input r:n);scanf(%f, &r);S= PI *r*r; /計算圓面積L=2

15、* PI *r; /計算圓周長printf(S=%f,L=%fn, S,L);2. 假設(shè)美元與人民幣的匯率是1美元兌換6.4742 元人民幣,歐元與人民幣的匯率是1歐元兌換 9.2338 元人民幣,編程實(shí)現(xiàn)輸入人民幣的錢數(shù),輸出能兌換的美元及歐元金額。# include stdio.hvoid main() float renminbi,meiyuan,ouyuan;9printf(input renminbi:n);scanf(%f, &renminbi);meiyuan = renminbi *6.4742; / 計算美元金額ouyuan = renminbi *9.2338; / 計算歐

16、元金額 printf(meiyuan =%f ouyuan =%fn,meiyuan, ouyuan);3. 編寫一個程序,從鍵盤上輸入3個字符后,按各字符的ASCII 碼從小到大順序輸出這些字符。/ 這道題關(guān)鍵是把輸入3個字符后的回車過濾掉,不然回車就會成為下一組的第一個字符。有兩種方法:/ 第一種:#include int main()char a,b,c,tmp;while(a=getchar()!=EOF) b=getchar();c=getchar();getchar(); 在錄入c后用getchar() 濾掉回車if(ab) tmp=a;a=b;b=tmp; if(ac) tmp=

17、a; a=c;c=tmp; if(bc) tmp=b;b=c;c=tmp;printf(%c %c %cn,a,b,c);return 0;/ 第二種:#include int main() char a,b,c,tmp;while(scanf(%c%c%c%*c,&a,&b,&c)!=EOF) / 用 %*c( 空字符,不存儲字符的字符)濾掉回車 if(ab) tmp=a,a=b,b=tmp; / 逗號表達(dá)式,簡潔if(ac) tmp=a,a=c,c=tmp;if(bc) tmp=b,b=c,c=tmp;printf(%c %c %cn,a,b,c);return 0;輸入數(shù)據(jù)有多組,每組占

18、一行,有三個字符組成,之間無空格。例如輸入qweasdzxc輸出 e q w a d sc x z4. 編程實(shí)現(xiàn)輸入一個無符號整數(shù)(unsigned 類型),分別輸出它的低四位和高四位。#include ( 待查 ) main() unsigned u=0xffff;/ 舉例unsigned char l,h;/scanf(%u,&u);l=u&0xff; / 得到低 8位 .h=u8; / 得到高8位printf(u=%u,l=%u,h=%u,u,l,h);getchar(); 5. 根據(jù)當(dāng)前銀行的利率表,編程實(shí)現(xiàn)從鍵盤輸入存款金額money,存期year和年利率rate,計算銀行存款的本息

19、 sum (保留1位小數(shù))。#include int main()int year;float money,rate,sum;printf( 請輸出金額,利率,存款時間n);scanf(%f,%f,%d,&money,&rate,&year);sum=money*year*rate;printf( 存款的本息sum=%.1f n,sum);3.2 習(xí)題解答3.2.1 選擇題1. D【分析】在此要注意,else 總是于之前面最近的且沒有用過的if 進(jìn)行配對,所以在本題中, else 與第二個if 配對,且整體做為第一個if 語句的語句體。又因,1020不成立,所以第一個if根本不被執(zhí)行,所以 m

20、勺值沒有任何變化。2. A【分析】else 總是于之前面最近的且沒有用過的if 進(jìn)行配對,所以在本題中,if (ab) t=s+t;else if (a=b) t=5;else t=2*s;相當(dāng)于 t=s+t;(ab) t=5 (a=b); t=2*s(ab);3. C【分析】while(E)的含義是當(dāng)E為真。為真即為不等于0,而A、B、D都是表示非零。4. D【分析】i=0,+i 后, i 為 1 , i%2=1, 所以執(zhí)行j+=i; 即 j=1,i=1 小于5所以還執(zhí)行+i ,此時i為2,則i%2等于0,跳出本次判斷。同理當(dāng)i等于4 , 6時同樣跳出判斷,而當(dāng)i為3, 5時,都要執(zhí)行j+=

21、i 。5. A【分析】 while (1) 進(jìn)行判斷時,條件永遠(yuǎn)成立,所以執(zhí)行循環(huán)體。輸出一個“*”后,i+,i變?yōu)?1,又13成立,所以結(jié)束循環(huán)。6. D【分析】 當(dāng) i=1 時, 執(zhí)行 s+=i 后 s=1; 執(zhí)行循環(huán)體中i+ 后, i 為 2, 而后還要執(zhí)行一次for結(jié)構(gòu)中的i+,則i為3.3小于6成立,則再執(zhí)行s+=i; i+;則s為4, i為4,而后還要執(zhí)行一次 for結(jié)構(gòu)中的i+ ,則i為5,同樣5小于6成立,則再執(zhí)行s+=i; i+; 則s為9, i為6,而后還要 執(zhí)行一次for 結(jié)構(gòu)中的i+ ,則 i 為 7, 且 7小于6已不再成立。所以最后輸出9 77. B【分析】在for

22、( 語句1;語句2;語句3) 結(jié)構(gòu)中,語句1為初值,語句2為循環(huán)體執(zhí)行的條件,語句3為變量自增語句。本題中i 為 2, i=0 不成立,所以循環(huán)體不被執(zhí)行。8. D11【分析】a=1,a=20不成立,b%3=1成立,則執(zhí)行b+=3;continue;則b=4,然后跳出本次行循環(huán),則此時 a=2,b=4.以后同理進(jìn)行判斷。10. A【分析】對于雙重循環(huán),外層循環(huán)變化一次,內(nèi)層變化一個循環(huán)。本題。當(dāng)i=1時,j可以為3、2、1,同理當(dāng)當(dāng)i=2時,j可以為3、2、1;當(dāng)i=3時,j可以為3、2、1;而語句if (i*j3) break;則表時,如果i*j3時結(jié)束整個for循環(huán)。條件不成立時再執(zhí)行m*

23、=i*j;3.2.2 填空題1. hn*2【分析】sn為第n次落地時共經(jīng)過的米數(shù),hn為第n次反彈的高度n=2 , hn*2才為第n次經(jīng)過的距離。2. n!=0 j+【分析】由輸出語句可知,定義的變量 i,j分別用于存放正數(shù)和負(fù)數(shù)的個數(shù)。所以只要輸入的數(shù)不是0,則進(jìn)行判斷。3. 0 k/10 count+【分析】count作為累計的和所以初值一定為 0;而while循環(huán)的作用是將指定的數(shù) k的 各各位上的字?jǐn)?shù)字取出來。 k%1預(yù)責(zé)實(shí)現(xiàn)取出K的個位。則前兩位則需通過 k/10來實(shí)現(xiàn)。if (t=10)成立即是需要的數(shù)字,則總數(shù)需要自增。所以 count+.4. 50 (i*1.0)【分析】本題的

24、累加問題中, 累加50次,即i=50,兩個相除時如果都為整數(shù)則結(jié)果一定 為整數(shù),為此,需要將分母轉(zhuǎn)化成FLOAT類型。所以填(i*1.0)。5. 2*i-1 printf(n); i【分析】略3.2.3 編程題1.編寫一個程序,計算并輸出下列分段函數(shù)值:22226,356010,2,3153,2,3,1(Xxxxyxxxxxxxxxx)? +-= w? =-+ w ? 其中,x從鍵盤輸入。#includestdio.hint main()float x,y;printf( 輸入 X);scanf(%f,&x);printf(n);if (x0 &x!=-3)y=x*x+2*x-6;else i

25、f (0=x&x10&x!=2&x!=3) y=x*x-5*x+6;elsey=x*x-x-15;printf(y=%f,y);2. 編寫一個程序,從鍵盤輸入年和月,計算并輸出該年的該月份共有多少天。28算法分析:要考慮大月有31天, 小月有 30天, 閏年的二月有29天以及非閏年的二月有天這幾種情況。源程序:#include int main()int year,month,days;printf(Enter year and month:);scanf(%d%d,&year,&month);switch (month)case 1: case 3: case 5: case 7:case

26、8: case 10: case 12: /* 處理 大 月 */ days=31;break;case 4: case 6: case 9: case 11: /*處理 小 月 */days=30;break;case 2: /* 處理 平 月 */if (year%4=0&year%100!=0|year%400=0)days=29; /* 如果是閏年*/13else days=28; /* 不是閏年*/break;default: printf(Input error! n); /*月份輸入錯誤*/days=0; if (days!=0) printf(%d,%d is %d daysn

27、,year,month,days);return 0;3. 編寫一個程序,計算并輸出下列級數(shù)之和:231.2!3! nxxxxexn=+ 其中n與x從鍵盤輸入。#includestdio.h#include math.hmain() int i,n;double s=1.0,s1=1.0,x;scanf(%d,%f,&n,&x);for(i=1;i=65&c=97&c=48&c=57) j+; /j 為數(shù)字?jǐn)?shù)else if(c=32) k+; /k 為空格數(shù)else l+; /l 為其他字符printf(i=%d,j=%d,k=%d,l=%d/n,i,j,k,l);5. 編寫一個程序,解決猴子

28、吃桃問題:猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還不過癮,又多吃了一個;第二天早上又將剩下的桃子吃掉一半,又多吃了一個;以后每天早上都吃了前一天剩下的一半零一個;到第10天早上想再吃時,只剩一個桃子了。問猴子第一天共摘了多少桃子?#includestdio.h main()int i=1,sum=0; for(;i=0【分析】前一個嵌套的for循環(huán)輸出數(shù)組a主對角線上的元素之和。后一個嵌套的for循環(huán)輸出數(shù)組a次對角線上的元素之和。次對角線上的元素滿足的特點(diǎn)是行下標(biāo)和列下標(biāo)的和 為 2,內(nèi)層for 循環(huán)第三條語句為j- ,所以 j 的初值為2,條件為j=0 。5. slen!= 0【分析】本

29、程序是輸出字符數(shù)組s中存放的字符串的長度,從 s0開始,向后搜索,每搜索一個元素,len 增 1 ,直到遇到字符串結(jié)束標(biāo)志0 為止。重復(fù)過程結(jié)束。這時,len 中所保存的就是s中有效字符的個數(shù)。6. str0 s【分析】strcpy(s, str0)函數(shù)是將字符串str0復(fù)制到字符數(shù)組s中,先假設(shè)字符串str0 中存放的是三個字符串中最小的,strcmp () 函數(shù)是將兩個字符串比較,總把最小的字符串放到s中。最后輸出So177. 12【分析】結(jié)構(gòu)體變量占內(nèi)存的大小是該結(jié)構(gòu)體各成員所需內(nèi)存量的總和。結(jié)構(gòu)體類型struct date 中共定義三個成員都為int 類型,共占12個字節(jié)。8. per

30、son1.birthday.year=1982【分析】嵌套結(jié)構(gòu)體類型定義變量,采用逐級訪問的方式對變量賦值。式中的圓點(diǎn)“ .稱為成員運(yùn)算符。9. 4 8【分析】共用體類型的所有成員公用一個存儲空間,同一時間只能存儲一個成員,并且所引用的是最后一次存入成員的值。則e.in.x=2*2=4; e.in.y=4+4=8;10. 1 6【分析】枚舉類型變量的值是一些整數(shù),從花括號的第一個名字開始,系統(tǒng)自動賦予從0開始的值。Red=0,yellow=1; 若在定義類型時對枚舉常量進(jìn)行了初始化,則按照初始化的值計算, blue=4,green=5,white=6 。4.2.3 編程題1. 編寫一個程序,計

31、算Fibonacci 數(shù)列的前15個數(shù),并將其存儲到一維數(shù)組fib 中,然后輸出結(jié)果。Fibonacci 數(shù)列的定義為:1101121=?+=- nnnFFFnnn【問題分析】【程序代碼】#include int main()int fib15=1,1;int i;for (i=2;i15;i+)fibi=fibi-1+fibi-2;for (i=0;i15;i+)printf(%5d,fibi);printf(n);return 0;2. 有一個已經(jīng)排好序的數(shù)組,編寫一個程序,實(shí)現(xiàn)輸入一個數(shù),并按原來排序次序?qū)⒃摂?shù)插入到數(shù)組中?!境绦虼a】19#include int main()const

32、 int N=10;/定義一個包含11個元素的整型數(shù)組a,并初始化一組有序序列int aN+1=20,25,31,36,41,46,67,68,78,98;int i,d;printf( 請輸入一個整數(shù):n);scanf(%d,&d);for (i=N-1;i=0;i-)if (aid) ai+1=ai;elseai+1=d;break;printf( 插入整數(shù)后的新序列:n);for (i=0;iN+1;i+)printf(%4d,ai);return 0;3. 隨機(jī)生成50個1200之間的整數(shù),并存入數(shù)組a中,然后輸出這些整數(shù);同時找出數(shù)組a中的所有素數(shù),存入數(shù)組b,并按每行5個元素的格式

33、由大到小輸出這些素數(shù)。【程序代碼】#include #include #include #include int main()int a50,b25=0;int num=0,flag;int i,j,t;/以下產(chǎn)生50個1200之間的隨機(jī)數(shù)存于數(shù)組 a,并顯示 srand(int)time(0);for (i=0;i50;i+)ai=(int)(1+199*rand()/RAND_MAX);printf(%5d,ai);printf(n);/找出數(shù)組a中所有素數(shù)for (i=0;i50;i+)flag=1;for (j=2;jsqrt(ai);j+)#if (ai%j=0) flag=0;br

34、eak;if (flag=1) & (ai!=1)bnum=ai;num+;/對數(shù)組b進(jìn)行排序for (i=0;inum;i+)for (j=0;jnum-i;j+)if (bjbj+1)t=bj;bj=bj+1;bj+1=t;/ 輸出素數(shù)for (i=0;inum;i+)printf(%5d,bi);if (i+1)%5=0) printf(n);return 0;4. 編寫一個程序,實(shí)現(xiàn)在一個5行 6列的矩陣中查找指定數(shù)據(jù),并輸出該數(shù)據(jù)及其在矩陣中的位置?!境绦虼a】#include int main()int a56=23,56,78,90,12,45,13,14,16,17,18,19

35、, 32,35,36,38,39,31,41,43,45,46,48,49, 51,52,53,55,57,58;int i,j,c,r;int d;/ 查找的數(shù)據(jù)int flag=0;/ 是否找到標(biāo)志/ 輸入要查找的數(shù)據(jù)printf( 請輸入查找數(shù)據(jù):);scanf(%d,&d);for (i=0;i5;i+)for (j=0;j6;j+)if (aij=d)flag=1;20c=i;r=j; break;if (flag=1)printf( 在矩陣的第%d亍第例找到數(shù)據(jù)d,c,r,d);elseprintf( 矩陣中沒找到數(shù)據(jù)%d,d);return 0; 5. 編寫一個程序,用二維數(shù)組來

36、實(shí)現(xiàn)輸出如下形式的楊輝三角形(要求輸出前6行)。11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1【程序代碼】#include int main()int a66,i,j;for (i=0;i6;i+)aii=1;/ 對角線元素為1ai0=1;/ 最左一列元素為1for (i=1;i6;i+)for (j=1;ji;j+)/ 主對角線以下元素計算aij=ai-1j-1+ai-1j;/ 輸出楊輝三角形for (i=0;i6;i+)for (j=0;jb。c中各元素保留2位小數(shù),第3位小數(shù)四舍五入。【程序代碼】#include int main()21float a34,

37、b42,c32;int i,j,k;printf(輸入矩陣 a:n);for (i=0;i3;i+)for (j=0;j4;j+)scanf(%f,&aij);printf(輸入矩陣 b:n);for (i=0;i4;i+)for (j=0;j2;j+) scanf(%f,&aij);/for (i=0;i3;i+)for (j=0;j2;j+)cij=0;for (k=0;k4;k+)cij+=aik*bkj;/c中各元素保留2位小數(shù),第3位小數(shù)四舍五入for (i=0;i3;i+)for (j=0;j2;j+)k=(int)(100*cij+0.5);cij=(float)(k/100.0

38、);/輸出矩陣cfor (i=0;i3;i+)for (j=0;j2;j+)printf(%10.2f,cij);printf(n);return 0;7.輸入一個5行5列的矩陣,編寫一個程序,計算并顯示輸出該矩陣最外圈元素的合計 值?!境绦虼a】#include int main()int a55;int i,j,sum=0;printf(輸入矩陣 a:n);for (i=0;i5;i+)for (j=0;j5;j+) scanf(%d,&aij);for (i=0;i5;i+)22for (j=0;j5;j+)if (i=0)|(i=4)|(j=0)|(j=4) sum=sum+aij;p

39、rintf( 矩陣最外圈元素的合計值為%d,sum);return 0;8. 輸入一個字符串,編寫一個程序,統(tǒng)計其中有多少個單詞,單詞之間用空格分隔。 【程序代碼】#include int main() char str100;int i,num=0,word=0;char c;gets(str); / 輸入一個字符串給字符數(shù)組strfor (i=0;(c=stri)!=0;i+)/只要字符不是0 就繼續(xù)執(zhí)行循環(huán)if (c=) word=0;如果是空格字符,使 word置0else if (word=0)/如果不是空格字符且 word原值為0word=1; / 使 word 置 1num+; /num 累加 1,表示增加一個單詞 printf( 字符串中單詞數(shù)為:%d,num);/ 輸出單詞數(shù)return 0;9. 輸入一個字符串,編寫一個程序,將該字符串中的所有大寫字母轉(zhuǎn)換成相應(yīng)的小寫 字母,所有小寫字母轉(zhuǎn)換成相應(yīng)的大寫字母?!境绦虼a】#include int main() char str100;int i=0;printf(Enter the string:n);gets(str);while (stri!=0)if (stri=A)&(st

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論