C語(yǔ)言習(xí)題答案[共45頁(yè)]

上傳人:1528****253 文檔編號(hào):44074318 上傳時(shí)間:2021-12-05 格式:DOC 頁(yè)數(shù):45 大小:330.31KB
收藏 版權(quán)申訴 舉報(bào) 下載
C語(yǔ)言習(xí)題答案[共45頁(yè)]_第1頁(yè)
第1頁(yè) / 共45頁(yè)
C語(yǔ)言習(xí)題答案[共45頁(yè)]_第2頁(yè)
第2頁(yè) / 共45頁(yè)
C語(yǔ)言習(xí)題答案[共45頁(yè)]_第3頁(yè)
第3頁(yè) / 共45頁(yè)

下載文檔到電腦,查找使用更方便

12 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《C語(yǔ)言習(xí)題答案[共45頁(yè)]》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語(yǔ)言習(xí)題答案[共45頁(yè)](45頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、C語(yǔ)言章節(jié)習(xí)題 目錄 C語(yǔ)言章節(jié)習(xí)題 1 第一章 C語(yǔ)言概述 2 第三章 數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 3 第四章 順序結(jié)構(gòu)程序設(shè)計(jì) 4 第五章 選擇結(jié)構(gòu)程序設(shè)計(jì) 11 第六章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 21 第7章 數(shù)組習(xí)題 33 第8章 函數(shù)習(xí)題 41 第九章 預(yù)處理 48 第十章 指針 49 第一章 C語(yǔ)言概述 一、選擇題: 1、一個(gè)C程序的執(zhí)行是從(A)。 A本程序的main函數(shù)開(kāi)始,到main函數(shù)結(jié)束 B本程序文件的第一個(gè)函數(shù)開(kāi)始,到本程序文件的最后一個(gè)函數(shù)結(jié)束 C本程序的main函數(shù)開(kāi)始,到本程序文件的最后一個(gè)函

2、數(shù)結(jié)束 D本程序文件的第一個(gè)函數(shù)開(kāi)始,到本程序main函數(shù)結(jié)束 2、 在 C 語(yǔ)言中,每個(gè)語(yǔ)句必須以(D)結(jié)束。 A.回車符B.冒號(hào)C.逗號(hào)D.分號(hào) 3、C 語(yǔ)言規(guī)定:在一個(gè)源程序中,main函數(shù)的位置(C)。 A. 必須在最開(kāi)始 B. 必須在系統(tǒng)調(diào)用的庫(kù)函數(shù)的后面 C. 可以任意 D.必須在最后 4、一個(gè)C 語(yǔ)言程序是由(B)。 A. 一個(gè)主程序和若干子程序組成 B. 函數(shù)組成 C. 若干過(guò)程組成 D. 若干子程序組成 5、下列說(shuō)法中錯(cuò)誤的是(D)。 A.主函數(shù)可以分為兩個(gè)部分:主函數(shù)說(shuō)明部分和主函數(shù)體 B.主函數(shù)可以調(diào)用任何非主函數(shù)的其他函數(shù) C

3、.任何非主函數(shù)可以調(diào)用其他任何非主函數(shù) D.程序可以從任何非主函數(shù)開(kāi)始執(zhí)行 6、用 C 語(yǔ)言編寫(xiě)的源文件經(jīng)過(guò)編譯,若沒(méi)有產(chǎn)生編譯錯(cuò)誤,則系統(tǒng)將(B)。 A.生成可執(zhí)行目標(biāo)文件B.生成目標(biāo)文件 C.輸出運(yùn)行結(jié)果D.自動(dòng)保存源文件 二、填空題: 1、C 語(yǔ)言只有(37)個(gè)關(guān)鍵字和(9)種控制語(yǔ)句。 2、每個(gè)源程序有且只有一個(gè)(main)函數(shù),系統(tǒng)總是從該函數(shù)開(kāi)始執(zhí)行C語(yǔ)言程序。 3、C 語(yǔ)言程序的注釋可以出現(xiàn)在程序中的任何地方,它總是以(\*)符號(hào)作為開(kāi)始標(biāo)記,以(*\)符號(hào)作為結(jié)束標(biāo)記。 4、C 語(yǔ)言中,輸入操作是由庫(kù)函數(shù)(scanf)完成的,輸出操作是由庫(kù)函數(shù)(

4、printf)完成的。 5、系統(tǒng)默認(rèn)的C 語(yǔ)言源程序文件的擴(kuò)展名是(.c),經(jīng)過(guò)編譯后生成的目標(biāo)文件的擴(kuò)展名是(.obj),經(jīng)過(guò)連接后生成的可執(zhí)行文件的擴(kuò)展名是(.exe ) 。 6、C 語(yǔ)言的標(biāo)識(shí)符只能由字母、數(shù)字和(下劃線) 三種字符組成。 第三章 數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 一、選擇題: 1、以下選項(xiàng)中,不正確的 C 語(yǔ)言浮點(diǎn)型常量是(C)。 A. 160.B. 0.12C. 2e4.2 D.0.0 2、以下選項(xiàng)中,(D)是不正確的 C 語(yǔ)言字符型常量。 A. aB. \x41 C. \101 D. "a" 3、 在 C 語(yǔ)言中,字符型數(shù)據(jù)在計(jì)算機(jī)內(nèi)

5、存中,以字符的(C)形式存儲(chǔ)。 A.原碼 B.反碼C. ASCII 碼D. BCD碼 4、若x、i、j和k都是int型變量,則計(jì)算下面表達(dá)式后,x的值是(C)。 x=(i=4,j=16,k=32) A. 4 B. 16C.32D.52 5、算術(shù)運(yùn)算符、賦值運(yùn)算符和關(guān)系運(yùn)算符的運(yùn)算優(yōu)先級(jí)按從高到低依次為(B)。 A.算術(shù)運(yùn)算、賦值運(yùn)算、關(guān)系運(yùn)算B.算術(shù)運(yùn)算、關(guān)系運(yùn)算、賦值運(yùn)算 C.關(guān)系運(yùn)算、賦值運(yùn)算、算術(shù)運(yùn)算D.關(guān)系運(yùn)算、算術(shù)運(yùn)算、賦值運(yùn)算 6、表達(dá)式!x||a==b 等效于(D)。 A. !((x||a)==b)B. !(x||y)==bC. !(x||(a==b

6、))D. (!x)||(a==b) 7、設(shè)整型變量 m,n,a,b,c,d 均為1,執(zhí)行 (m=a>b)&&(n=c>d)后, m,n 的值是(B)。 A. 0,0B. 0,1C. 1,0D. 1,1 8、 設(shè)有語(yǔ)句 int a=3;,則執(zhí)行了語(yǔ)句 a+=a-=a*=a;后,變量 a 的值是(B)。 A. 3B. 0C. 9D. -12 9、在以下一組運(yùn)算符中,優(yōu)先級(jí)最低的運(yùn)算符是(D)。 A. *B. !=C. +D. = 10、設(shè)整型變量 i 值為2,表達(dá)式(++i)+(++i)+(++i)的結(jié)果是(B)。 A. 6B. 12C. 15D.表達(dá)式出錯(cuò) 11

7、、若已定義 x 和 y為double 類型,則表達(dá)式 x=1,y=x+3/2 的值是(C)。 A. 1B. 2C. 2.0D. 2.5 12、設(shè)a=1,b=2,c=3,d=4,則表達(dá)式:a10 && a<15D. !(a<=10) && !(a>=15) 14、設(shè) f是實(shí)型變量,下列

8、表達(dá)式中不是逗號(hào)表達(dá)式的是(D)。 A. f= 3.2, 1.0B. f>0, f<10C. f=2.0, f>0D. f=(3.2, 1.0) 15、 表達(dá)式18/4*sqrt(4.0)/8值的數(shù)據(jù)類型是(C)。 A. intB. floatC. doubleD. 不確定 16、已知字母A的ASCII碼為十進(jìn)制數(shù)65,且c2為字符型,則執(zhí)行語(yǔ)句 C2=’A’+’6’-‘3’;后c2中的值是(A)。 A. DB. 68C. 不確定的值D. C 17、以下用戶標(biāo)識(shí)符中,合法的是(B)。 A. intB. nitC. 123 D. a+b 18、C 語(yǔ)言中,要求運(yùn)算

9、對(duì)象只能為整數(shù)的運(yùn)算符是(A)。 A. %B. / C. > D. * 19、若有說(shuō)明語(yǔ)句:char c=\72;則變量c在內(nèi)存占用的字節(jié)數(shù)是(A)。 A. 1B. 2C. 3D. 4 20、字符串"ABC"在內(nèi)存占用的字節(jié)數(shù)是(B)。 A. 3B. 4C. 6D. 8 21、要為字符型變量 a賦初值,下列語(yǔ)句中哪一個(gè)是正確的(B)。 A. char a="3"; B. char a=’3’;C. char a=%;D. char a=*; 22、下列不正確的轉(zhuǎn)義字符是(C)。 A. \\B. \C. 074D. \0 二、填空題: 1、C 語(yǔ)言中

10、的邏輯值“真”是用1表示的,邏輯值“假”是用0表示的。 2、若x和n都是int型變量,且x的初值為12,n的初值為5,則計(jì)算表達(dá)式x%=(n%=2)后x的值為0。 3、設(shè) c=w,a=1,b=2,d=-5,則表達(dá)式 x+1>c, y!=c+2, -a-5*b<=d+1, b==a=2的值為1、0、1、1。 4、設(shè) float x=2.5,y=4.7; int a=7;,表達(dá)式 x+a%3*(int)(x+y)%2/4的值為2.5。 5、判斷變量 a、b 的值均不為 0 的邏輯表達(dá)式為a!=0&&b!=0,值為1。 6、求解賦值表達(dá)式 a=(b=10)%(c=6),表達(dá)式值為4

11、 、a、b、c 的值依次為1,0,6。 7、求解逗號(hào)表達(dá)式 x=a=3,6*a 后,表達(dá)式值為18 、x、a 的值依次為3,3。 三、編程題: 1、 設(shè)長(zhǎng)方形的高為 1.5,寬為 2.3,編程求該長(zhǎng)方形的周長(zhǎng)和面積。 2、 編寫(xiě)一個(gè)程序,將大寫(xiě)字母 A轉(zhuǎn)換為小寫(xiě)字母 a。 1. main() {float x=1.5,y=2.3;printf(“area is %6.2f\n”,x*y);} 2. main() {char c=’A’;printf(“%d”,c+32);} 第四章 順序結(jié)構(gòu)程序設(shè)計(jì) 基礎(chǔ)練習(xí)(A) 一、填空題 1、C語(yǔ)句分為五種:控制語(yǔ)句

12、、函數(shù)調(diào)用語(yǔ)句、 表達(dá)式語(yǔ)句、空語(yǔ)句和 復(fù)合語(yǔ)句 。 2、一個(gè)基本語(yǔ)句的最后一個(gè)字符是 ; 。 3、復(fù)合語(yǔ)句又稱分程序,是用 { } 括起來(lái)的語(yǔ)句。 4、 使用C語(yǔ)言庫(kù)函數(shù)時(shí),要用于預(yù)編譯命令 #include 將有關(guān)的“頭文件”包括到用戶源文件中。 5、 使用標(biāo)準(zhǔn)輸入輸出庫(kù)函數(shù)時(shí),程序的開(kāi)頭要有如下預(yù)處理命令: #include 。 6、{ a=3;c+=a-b; } 在語(yǔ)法上被認(rèn)為是 1 條語(yǔ)句。 7、 getchar函數(shù)的作用是從終端輸入 1 個(gè)字符。 8、 如果從鍵盤(pán)輸入字符’a’并按

13、回車鍵,請(qǐng)寫(xiě)出以下程序運(yùn)行效果  a  。 #include main() { putchar(getchar()); }  9、以下程序的輸出結(jié)果為  i:dec=-4,oct=177774,hex=fffc,unsigned=65532 。 main() { short i; i=-4; printf(“\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n”,i,i,i,i); } 10、以下程序的輸出結(jié)果為 *3.140000,3.142* 。 main()

14、 { printf(“*%f,%4.3f*\n”,3.14,3.1415); } 11、以下程序的輸出結(jié)果為 c:dec=120,oct=170,hex=78,ASCII=x 。 main() { char c=‘x’; printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%c\n”,c,c,c,c); } 12、已有定義int d=-2;執(zhí)行以下語(yǔ)句后的輸出結(jié)果是 *d(1)=-2*d(2)= -2*d(3)=-2 * *d(4)=177776*d(5)= 177776*d(6)=177776 *

15、 printf(“*d(1)=%d*d(2)=%3d*d(3)=%-3d*\n”,d,d,d); printf(“*d(4)=%o*d(5)=%7o*d(6)=%-7o*\n”,d,d,d); 13、以下程序的輸出結(jié)果為 x=1 y=2 *sum*=3 10 Squared is: 100 main() { int x=1,y=2; printf(“x=%d y=%d *sum*=%d\n”,x,y,x+y); printf(“10 Squared is:%d\n”,10*10); } 14、以下程序的輸出結(jié)果為 (1)

16、123.456000 (2) □□□□□□□123.457 (3) 123.4560 (4) 8765.456700 (5) □□□□□□8765.457 (6) 8765.4567 (7) 8765.4567  #include main() { float a=123.456; double b=8765.4567; printf(“(1) %f\n”,a); printf(“(2) %14.3f\n”,a); printf(“(3) %6.4f\n”,a); printf(“(4) %lf\n”,b)

17、; printf(“(5) %14.3lf\n”,b); printf(“(6) %8.4lf\n”,b); printf(“(7) %.4f\n”,b); } 二、判斷題 1、所謂函數(shù)體實(shí)際上就是一個(gè)復(fù)合語(yǔ)句。( 對(duì)) 2、C語(yǔ)言本身不提供輸入輸出語(yǔ)句,輸入和輸出操作是由函數(shù)來(lái)實(shí)現(xiàn)的。(對(duì)?。? 3、putchar函數(shù)可以向終端輸出一個(gè)整數(shù)數(shù)據(jù)。( 錯(cuò)?。? 4、考慮到printf 和scanf函數(shù)使用頻繁,系統(tǒng)允許在使用這兩個(gè)函數(shù)時(shí)可不加#include命令。( 對(duì)?。? 5、任何表達(dá)式都可以加上分號(hào)而成為有意義的語(yǔ)句。(對(duì) ) 三、選擇題 1、 以

18、下不屬于流程控制語(yǔ)句的是( A )。 A) 表達(dá)式語(yǔ)句 B) 選擇語(yǔ)句 C) 循環(huán)語(yǔ)句 D) 轉(zhuǎn)移語(yǔ)句 2、putchar函數(shù)可以向終端輸出一個(gè)( D )。 A)整型變量表達(dá)式值 B)實(shí)型變量值 C)字符串 D)字符或字符型變量值 3、getchar函數(shù)的參數(shù)個(gè)數(shù)是( B )。 A) 1 B) 0 C) 2 D)任意 4、以下程序的輸出結(jié)果是(D) 。 main() { printf(“\n*s1=%15s*”, “chinabeijing”);

19、 printf(“\n*s2=%-5s*”, “chi”); } A)*s1=chinabeijing * B)*s1=chinabeijing * *s2=**chi* *s2=chi * C)*s1=*chinabeijing* D)*s1= chinabeijing* *s2=chi* *s2=chi * 5、printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長(zhǎng)度大于5,則輸出按方式( B )。;如果字符串長(zhǎng)度小于5,則輸出按方式( C )。 A)從左起輸出該字串,右補(bǔ)空

20、格 B)按原字符長(zhǎng)從左向右全部輸出 C)右對(duì)齊輸出該字串,左補(bǔ)空格 D)輸出錯(cuò)誤信息 6、已有定義int a=-2;和輸出語(yǔ)句:printf(“%8lx”,a);以下正確的敘述是( D )。 A)整型變量的輸出格式符只有%d一種 B)%x是格式符的一種,它可以適用于任何一種類型的數(shù)據(jù) C)%x是格式符的一種,其變量的值按十六進(jìn)制輸出,但%8lx是錯(cuò)誤的 D)%8lx不是錯(cuò)誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度 7、以下C程序正確的運(yùn)行結(jié)果是( C )。 main() { long y=-43456; printf(“y=%-8ld\n”,y);

21、 printf(“y=%-08ld\n”,y); printf(“y=%08ld\n”,y); printf(“y=%+8ld\n”,y); } A)y= -43456 B)y=-43456 y=- 43456 y=-43456 y=-0043456 y=-0043456 y=-43456 y=+-43456 C)y=-43456 D)y= -43456 y=-43456 y=-0043456 y=-0043456 y=00043456 y= -4345

22、6 y=+43456 8、以下C程序正確的運(yùn)行結(jié)果是( D )。 main() { int y=2456; printf(“y=%3o\n”,y); printf(“y=%8o\n”,y); printf(“y=%#8o\n”,y); } A)y= 2456 B)y= 4630 y= 2456 y= 4630 y=########2456 y=########4630 C)y=2456 D)y=4630 y= 2456

23、 y= 4630 y= 02456 y= 04630 基礎(chǔ)練習(xí)(B) 一、填空題 1、printf函數(shù)的作用是向終端 輸出 若干個(gè)任意類型的數(shù)據(jù)。 2、printf函數(shù)中的“格式控制”,包括 格式說(shuō)明 和 普通字符 兩種信息。 3、scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是變量 地址 ,而不是變量名。 4、在用scanf函數(shù)中輸入數(shù)據(jù)時(shí),如果在“格式控制”字符傳中除了格式說(shuō)明以外還有其他字符,則應(yīng)在對(duì)應(yīng)位置輸入與這些字符相同的 字符 。 5、在用”%c”格式輸入字符時(shí),空格字符和

24、“轉(zhuǎn)義字符”都作為有效字符 輸入 。 6、在輸入數(shù)據(jù)時(shí),遇以下情況時(shí)該數(shù)據(jù)認(rèn)為結(jié)束:遇 空格 、或按 “回車” 或 “跳格”鍵 ;按指定的寬度結(jié)束;遇非法輸入。 7、輸入數(shù)據(jù)時(shí)不能規(guī)定 精度 。 8、如果在%后有一個(gè)“*”附加說(shuō)明符,表示 跳過(guò)它指定的列數(shù) 。 二、選擇題 1、若int a,b; scanf(“%d%d”,&a,&b); 不可以用( A  )作為輸入的分隔符。 A) , B) 空格 C) 回車 D) TAB鍵 2、若x,y均定義為int型,z定義為double型,以下不合法的scanf函數(shù)

25、調(diào)用語(yǔ)句是  ( B  )。 A)scanf(“%d%lx,%le”,&x,&y,&z); B)scanf(“%2d*%d%lf”,&x,&y,&z); C)scanf(“%x%*d%o”,&x,&y); D)scanf(“%x%o%6.2f”,&x,&y,&z); 3、已有如下定義和輸入語(yǔ)句,若要求a1,a2,c1,c2的值分別為10,20,A和B,當(dāng)從第一列開(kāi)始輸入數(shù)據(jù)時(shí),正確的數(shù)據(jù)輸入方式是( D )。 int a1,a2; char c1,c2; scanf(“%d%d”,&a1,&a2); scanf(“%c%c”,&c1,&c2); A)1020AB<

26、CR> B)10 20 AB C)10 20 AB D)10 20AB 4、閱讀以下程序,當(dāng)輸入數(shù)據(jù)的形式為 25,13,10 正確的輸出結(jié)果為( D )。 main() { int x,y,z; scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\n”,x+y+z); } A)x+y+z=48 B)x+y+z=35 C)x+z=35 D)不確定值 5、已有程序段和輸入數(shù)據(jù)的形式如下,程序中輸入語(yǔ)句的正確形式應(yīng)當(dāng)為( D )。 m

27、ain() { int a; float f; printf(“\nInput number:”); 輸入語(yǔ)句 printf(“\nf=%f,a=%d\n”,f,a); } Input number:4.5 2 A)scanf(“%d,%f”,&a,&f); B)scanf(“%f,%d”,&f,&a); C)scanf(“%d%f”,&a,&f); D)scanf(“%f%d”,&f,&a); 6、根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語(yǔ)句的正確形式為( B )。 已有定義:float f1,f2; 數(shù)據(jù)的輸入方式:4.52

28、        3.5 A)scanf(“%f,%f”,&f1,&f2); B)scanf(“%f%f”,&f1,&f2); C)scanf(“%3.2f %2.1f”,&f1,&f2); D)scanf(“%3.2f%2.1f”,&f1,&f2); 7、閱讀以下程序,若運(yùn)行結(jié)果為如下形式,輸入輸出語(yǔ)句的正確內(nèi)容是( B )。 main() { int x; float y; printf(“enter x,y:”); 輸入語(yǔ)句 輸出語(yǔ)句 } 輸入形式 enter x,y:2 3.4 輸出形式 x+y=5.40 A)scanf

29、(“%d,%f”,&x,&y); printf(“\nx+y=%4.2f”,x+y); B)scanf(“%d%f”,&x,&y); printf(“\nx+y=%4.2f”,x+y); C)scanf(“%d%f”,&x,&y); printf(“\nx+y=%6.1f”,x+y); D)scanf(“%d%3.1f”,&x,&y); printf(“\nx+y=%4.2f”,x+y); 8、以下說(shuō)法正確的是( D )。 A)輸入項(xiàng)可以為一實(shí)型常量,如scanf(“%f”,3.5); B)只有格式控制,沒(méi)有輸入項(xiàng),也能進(jìn)行正確輸入,如scanf(“a=%d,b=%d”);

30、 C)當(dāng)輸入一個(gè)實(shí)型數(shù)據(jù)時(shí),格式控制部分應(yīng)規(guī)定小數(shù)點(diǎn)后的位數(shù),如scanf(“%4.2f”,&f); D)當(dāng)輸入數(shù)據(jù)時(shí),必須指明變量的地址,如scanf(“%f”,&f); 9、有輸入語(yǔ)句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);為使變量a的值為1,b為3,c為2,從鍵盤(pán)輸入數(shù)據(jù)的正確形式應(yīng)當(dāng)是( D  )。 A)132<回車> B)1,3,2<回車> C)a=1 b=3 c=2<回車> D)a=1,b=3,c=2<回車> } 10、已有如下定義和輸入語(yǔ)句,若要求a1,a2,c1,c2的值分別為10,20,A和B,當(dāng)從第一列開(kāi)始輸入數(shù)據(jù)時(shí),正確的數(shù)

31、據(jù)輸入方式是( A )。 int a1,a2; char c1,c2; scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2); A)10A 20B B)10 A 20 B C)10A20B D)10A20 B 11、已有定義int x; float y;且執(zhí)行scanf(“%3d%f”,&x,&y);語(yǔ)句,若從第一列開(kāi)始輸入數(shù)據(jù)12345 678<回車>,則x的值為( B ) ,y的值為( B )。 (1) A)12345 B)123 C)45 D)345 (2) A)無(wú)定值 B)45.000000

32、C)678.000000 D)123.000000 三、編程: 1、 編寫(xiě)程序,從鍵盤(pán)上輸入三個(gè)數(shù)分別給變量a、b、c,求它們的平均值。并按如下形式輸出: average of **、** and ** is **.** 。其中,三個(gè)**依次表示a、b、c的值,**.**表示a,b,c的平均值。 2、輸入9時(shí)23分并把它化成分鐘后輸出。(從零點(diǎn)整開(kāi)始計(jì)算)。 1、參考答案 main ( ) { float a, b, c, t; printf(“please input a,b,c:\n”); scanf ("%f, %f, %f", &a, &b, &c);

33、t=(a+b+c)/3; printf ("average of %6.2f、%6.2f and %6.2f is %6.2f\n”,a,b,c,t); } 2、參考答案 main ( ) { int h,m,s; printf(“please input h,m:\n”); scanf ("%d,%d", &h, &m); s=h*60+m; printf ("total %d minute\n”,s); } 第五章 選擇結(jié)構(gòu)程序設(shè)計(jì) 基礎(chǔ)練習(xí)(A) 一、填空題 1、關(guān)系表達(dá)式的運(yùn)算結(jié)果是 邏輯 值。C語(yǔ)言沒(méi)有邏輯型數(shù)據(jù),以

34、1 代表“真”,以 0代表“假”。 2、邏輯運(yùn)算符!是 單目 運(yùn)算符,其結(jié)合性是由 右結(jié)合性 。 3、C語(yǔ)言提供的三種邏輯運(yùn)算符是 && 、 || 、 ! 。其中優(yōu)先級(jí)最高的為 ! ,優(yōu)先級(jí)最低的為 | | 。 4、邏輯運(yùn)算符兩側(cè)的運(yùn)算對(duì)象不但可以是0和1,或者是0和非0的整數(shù),也可以是任何類型的數(shù)據(jù)。系統(tǒng)最終以 0 和 非0 來(lái)判定它們屬于“真”或“假”。 5、設(shè)y為int型變量,請(qǐng)寫(xiě)出描述“y是偶數(shù)”的表達(dá)式 (y%2==0)  。 6、設(shè)x,y,z均為int型變量,請(qǐng)寫(xiě)出描述“x或y中有一

35、個(gè)小于z”的表達(dá)式 x2&&x<3 。 8、判斷char型變量ch是否為大寫(xiě)字母的正確表達(dá)式是 (ch>=‘A’)&&(ch<=‘Z’) 。 9、當(dāng)a=3,b=2,c=1時(shí),表達(dá)式f=a>b>c的值是 0 。 10、當(dāng)a=5,b=4,c=2時(shí),表達(dá)式a>b!=c的值是 1 。 11、已知A=7.5,B=2,C=3.6,表達(dá)式A>B&&C>A||AB的值是 0 。 12、若a=6,b=4,c=2,則表達(dá)式!(a-b)+c-

36、1&&b+c/2的值是 1 。 13、有int x,y,z;且x=3,y=-4,z=5,則表達(dá)式(x&&y)==(x||z)的值為 1 。 14、有int x,y,z;且x=3,y=-4,z=5,則以下表達(dá)式的值為 1 。 !(x>y)+(y!=z)||(x+y)&&(y-z) 15、有int a=3,b=4,c=5,x,y;,則以下表達(dá)式的值為 0 。 !(x=a)&&(y=b)&&0 16、if (!k) a=3;語(yǔ)句中的!k可以改寫(xiě)為 k= =0 ,使其功能不變。 二、選擇題 1、邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的數(shù)據(jù)類型( 

37、D?。?。 A)只能是0或1 B)只能是0或非0正數(shù) C)只能是整型或字符型數(shù)據(jù) D)可以是任何類型的數(shù)據(jù) 2、以下關(guān)于運(yùn)算符優(yōu)先順序的描述中正確的是( C?。?。 A)關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符<邏輯與運(yùn)算符 B)邏輯與運(yùn)算符<關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符 C)賦值運(yùn)算符<邏輯與運(yùn)算符<關(guān)系運(yùn)算符<算術(shù)運(yùn)算符 D)算術(shù)運(yùn)算符<關(guān)系運(yùn)算符<賦值運(yùn)算符<邏輯與運(yùn)算符 3、下列運(yùn)算符中優(yōu)先級(jí)最高的是( B?。?。 A)< B)+ C)&& D)!= 4、為判斷字符變量c的值不是數(shù)字也不是字母時(shí),應(yīng)采用下述表達(dá)式( D )。 A)c<=48||c>=57&&c

38、<=65||c>=90&&c<=97||c>=122 B)!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122) C)c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122 D)!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122) 5、能正確表示“當(dāng)x的取值在[1,100]和[200,300]范圍內(nèi)為真,否則為假”的表達(dá)式是( C ?。?。 A) (x>=1)&&(x<=100)&&(x>=200)&&(x<=300) B) (x>=1)||(x<=100)||(x>=200)||(x<

39、=300) C) (x>=1)&&(x<=100)||(x>=200)&&(x<=300) D) (x>=1)||(x<=100)&&(x>=200)||(x<=300) 6、設(shè)x、y和z是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中值為0的是( D )。 A)‘x’&&‘y’ B) x<=y C) x||y+z&&y-z D) !((x=y&&ch<‘B’&&!y)的值是( C )。 A)0 B)語(yǔ)法錯(cuò) C)1 D)“假” 8、設(shè)有:int a=1,b=2,c=3,d=

40、4,m=2,n=2; 執(zhí)行(m=a>b)&&(n=c>d)后n的值為( B )。 A)1 B)2 C)3 D)4 9、以下不正確的if語(yǔ)句形式是( C?。? A) if(x>y&&x!=y); B) if(x==y) x+=y; C) if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y); D) if(xy) z=x; x=y; y=z; A)x=10,y=20,z=30 B)x=20

41、,y=30,z=30 C)x=20,y=30,z=10 D)x=20,y=30,z=20 11、以下if語(yǔ)句語(yǔ)法正確的是( B?。?。 A) if(x>0) printf(“%f”,x) else printf(“%f”,-x); B) B) if(x>0) { x=x+y; printf(“%f”,x); } else printf(“%f”,-x); C) C) if(x>0) { x=x+y; printf(“%f”,x); }; else printf(“%f”,-x); D) D) if(x>0) { x=x+y; printf(“%f”,x) } el

42、se printf(“%f”,-x); 12、請(qǐng)閱讀以下程序: main() { int a=5,b=5,c=0; if(a==b+c) printf(“***\n”); else printf(“$$$\n”); } 以下程序( C?。?。 A)有語(yǔ)法錯(cuò)不能通過(guò)編譯 B)可以通過(guò)編譯但不能通過(guò)連接 C)輸出*** D)輸出$$$ 三、寫(xiě)出下列程序的運(yùn)行結(jié)果 1、若運(yùn)行時(shí)輸入:2<回車>,則以下程序的運(yùn)行結(jié)果是 2nd class postage is 14p   。 #include void m

43、ain(void) { char Class; printf(“Enter 1 for 1st class post or 2 for 2nd post”); scanf(“%c”,&Class); if(Class==‘1’) printf(“1st class postage is 19p”); else printf(“2nd class postage is 14p”); } 2、若運(yùn)行時(shí)輸入:4.4<回車>,則以下程序的運(yùn)行結(jié)果是 Selling Price(0.30)$5.72  。 #include <

44、stdio.h> void main(void) { float CostPrice,SellingPrice; printf(“Enter Cost Price $:”); scanf(“%f”,&CostPrice); if(CostPrice>=5) { SellingPrice=CostPrice+CostPrice*0.25; printf(“Selling Price(0.25)$%6.2f”,SellingPrice); } else { SellingPrice=CostPri

45、ce+CostPrice*0.30; printf(“Selling Price(0.30)$%6.2f”,SellingPrice); } } 3、以下程序的運(yùn)行結(jié)果是 F 。 main() { if(2*2==5<2*2==4) print(“T”); else printf(“F”); } 能力提高(B) 一、選擇題 1、若希望當(dāng)A的值為奇數(shù)時(shí),表達(dá)式的值為“真”,A的值為偶數(shù)時(shí),表達(dá)式的值為“假”,則以下不能滿足要求的表達(dá)式是( D?。?。 A)A%2==1 B)!(A%2==0) C)!(A%2) D)A%

46、2 2、下列運(yùn)算符中優(yōu)先級(jí)最低的( A ),優(yōu)先級(jí)最高的是( C )。 A)?: B)&& C)+ D)!= 3、請(qǐng)閱讀以下程序: main() { int a=5,b=0,c=0; if(a=b+c) printf(“***\n”); else printf(“$$$\n”); } 以下程序( D )。 A)有語(yǔ)法錯(cuò)不能通過(guò)編譯 B)可以通過(guò)編譯但不能通過(guò)連接 C)輸出*** D)輸出$$$ 4、以下程序的運(yùn)行結(jié)果是( C?。?。 main() { int m=5; if(m++>5) printf

47、(“%d\n”,m); else printf(“%d\n”,m--); } A)4 B)5 C)6 D)7 二、根據(jù)程序的功能,將以下程序補(bǔ)充完整 1、以下程序?qū)斎氲乃膫€(gè)整數(shù),按從小到大的順序輸出。請(qǐng)?jiān)凇   ?nèi)填入正確內(nèi)容。 main() { int t,a,b,c,d; printf(“input a,b,c,d:”) scanf(“%d,%d,%d,%d”, &a,&b,&c,&d  ); if(a>b) {   t=a;a=b;b=t;   } if ( a>c ) {t=a;a=c;c=t;} if (

48、a>d) {t=a;a=d;d=t;} if ( b>c ) {t=b;b=c;c=t;} if (b>d) {t=b;b=d;d=t;} if (c>d) {t=c;c=d;d=t;} printf(“%d,%d,%d,%d”,a,b,c,d); } 三、編程: 1、試編程判斷輸入的正整數(shù)是否既是5又是7的整倍數(shù)。若是,則輸出yes;否則輸出no。 2、編制程序要求輸入整數(shù)x、y和z,若x2+y2+z2大于1000,則輸出x2+y2+z2千位以上的數(shù)字,否則輸出三數(shù)之和。 3、編寫(xiě)程序,輸入三角型的三條邊長(zhǎng),求其面積。注意:對(duì)于不合理的邊長(zhǎng)輸入要

49、輸出數(shù)據(jù)錯(cuò)誤的提示信息。 1、參考答案 main() { int x; if (x%5==0 && x%7==0) printf(“yes”); else printf(“no”); } 2、參考答案 main() { int x,y,z,a,b; scanf(“%d %d %d”,&x,&y,&z); a=x*x+y*y*z*z; if (a>1000) {b=a/1000;printf(“%d”,b);} else printf(“%d”,x+y+z); } 3、參考答案 #include main() { float

50、a,b,c,s,area; scanf(“%f,%f,%f”,&a,&b,&c); if (a+b>c && b+c>a && a+c>b) { s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“area=%7.2f\n”,area);} else printf(“bu neng zhucheng san jiao xing \n”); } 第2講 基礎(chǔ)練習(xí)(A) 一、填空題 1、在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱為 if語(yǔ)句的嵌套 。 2、為了避免在嵌套的條件語(yǔ)句if-els

51、e中產(chǎn)生二義性,C語(yǔ)言規(guī)定:else子句總是與其之前最近的未配對(duì)的if 配對(duì)。如果if 與else數(shù)目不一樣,為實(shí)現(xiàn)設(shè)計(jì)者的企圖,可以加 花括號(hào) 關(guān)系。 3、條件運(yùn)算符是C語(yǔ)言中唯一的一個(gè) 三 目運(yùn)算符,其結(jié)合性為 從右至左 。 4、假設(shè)條件表達(dá)式的格式為:表達(dá)式1?表達(dá)式2:表達(dá)式 若表達(dá)式2和表達(dá)式3的類型不同,此時(shí)條件表達(dá)式的值的類型為二者中較 高 的類型 5、在switch語(yǔ)句中,switch后面括弧內(nèi)的“表達(dá)式”,可以為 任何 類型。 6、若a=1,b=2,則表達(dá)式a>b?a:b+1的值是 3 。 7、若w=1、x=2、y=

52、3、z=4,則條件表達(dá)式w

53、、在switch語(yǔ)句中,各個(gè)case和default的出現(xiàn)次序影響執(zhí)行結(jié)果。( 對(duì)) 3、在switch語(yǔ)句中,多個(gè)case可以共用一組執(zhí)行語(yǔ)句。(對(duì) ) 4、 條件表達(dá)式能取代一般if的語(yǔ)句。( 錯(cuò) ) 5、 case后的常量表達(dá)式類型一定與表達(dá)式類型匹配。( 對(duì) ) 三、寫(xiě)出以下程序的運(yùn)行結(jié)果 1、 main() -1 { int a=2,b=3,c; c=a; if(a>b) c=1; else if(a==b) c=0; else c=-1; printf(“%d\n”,

54、c); } 2、 main() 2 0 0 { int a,b,c; int s,w,t; s=w=t=0; a=-1; b=3; c=3; if(c>0) s=a+b; if(a<=0) { if(b>0) if(c<=0) w=a-b; } else if(c>0) w=a-b; else t=c; printf(“%d %d %d”,s,w,t); } 3、 switch(grade) {

55、case ‘A’: printf(“85-100\n”); case ‘B’: printf(“70-84\n”); case ‘C’: printf(“60-69\n”); case ‘D’: printf(“<60\n”); default: printf(“error!\n”); } 若grade的值為 ’C’,則輸出結(jié)果是 60-69 〈60 error! 能力提高(B) 一、寫(xiě)出下列程序的運(yùn)行結(jié)果 1、 #include 5 5 1 void main(vo

56、id) { int x,y=1,z; if(y!=0) x=5; printf(“\t%d\n”,x); if(y==0) x=4; else x=5; printf(“\t%d\n”,x); x=1; if(y<0) if(y>0) x=4; else x=5; printf(“\t%d\n”,x); } 2、 #include 4 -2 4 0

57、 4 -2 void main(void) { int x,y=-2,z; if((z=y)<0) x=4; else if(y==0) x=5; else x=6; printf(”\t%d\t%d\n”,x,z); if(z=(y==0)) x=5; x=4; printf(“\t%d\t%d\n”,x,z); if(x=z=y) x=4; printf(“\t%d\t%d\n”,x,z); } 3、 #inclu

58、de a=2,b=1 main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++; break; case 1: b++; break; } case 2: a++; b++; break; } printf(“a=%d,b=%d”,a,b); } 二、根據(jù)程序的功能,將以下程序補(bǔ)充完整 以下程序計(jì)算某年某月有幾天。其

59、中判別閏年的條件是:能被4整除但不能被100整除的年是閏年,能被400整除的年也是閏年。請(qǐng)?jiān)凇   ?nèi)填入正確內(nèi)容。 main() { int yy,mm,len; printf(“year,month=”); scanf(“%d %d”,&yy,&mm); switch(mm) { case 1: case 3: case 5: case 7: case 8: case 10: case 12:   len=31   ; break; case 4:

60、case 6: case 9: case 11: len=30; break; case 2: if(yy%4==0&&yy%100!=0||yy%400==0)   len=29 ; else   len=28  ; break; default: printf(“input error”); break; } printf(“the length of %d %d is %d\n”,yy,mm,len); 第六章 循環(huán)

61、結(jié)構(gòu)程序設(shè)計(jì) 基礎(chǔ)練習(xí)(A) 一、選擇題 1、C語(yǔ)言中while和do-while循環(huán)的主要區(qū)別是(A)。 A) do-while的循環(huán)體至少無(wú)條件執(zhí)行一次 B) while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴(yán)格 C) C) do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi) D) do-while的循環(huán)體不能是復(fù)合語(yǔ)句 2、以下描述中正確的是(C)。 A) 由于do-while循環(huán)中循環(huán)體語(yǔ)句只能是一條可執(zhí)行語(yǔ)句,所以循環(huán)體內(nèi)不能使用復(fù)合語(yǔ)句 B) do-while循環(huán)由do開(kāi)始,用while結(jié)束,在while(表達(dá)式)后面不能寫(xiě)分號(hào) C) 在do-while循環(huán)體中

62、,一定要有能使while后面表達(dá)式的值變?yōu)榱悖ā凹佟保┑牟僮? D) do-while循環(huán)中,根據(jù)情況可以省略while 3、設(shè)有程序段 int k=10; while(k) k=k-1; 則下面描述中正確的是( A )。 A)while循環(huán)執(zhí)行10次 B)循環(huán)是無(wú)限循環(huán) C)循環(huán)體語(yǔ)句一次也不執(zhí)行 D)循環(huán)體語(yǔ)句執(zhí)行一次 4、下列循環(huán)語(yǔ)句中有語(yǔ)法錯(cuò)誤的是( D )。 A) while(x=y) 5; B) while(0) ; C) do 2;while(x==b); D) do x++ while(x==10);

63、 5、已知int i=1; 執(zhí)行語(yǔ)句while (i++<4) ;后,變量i的值為( C )。 A) 3 B) 4 C) 5 D) 6 6、語(yǔ)句while(!E);中的表達(dá)式!E等價(jià)于( A?。?。 A)E==0 B)E!=1 C)E!=0 D) E==1 7、下面程序段的運(yùn)行結(jié)果是( A?。?。 a=1; b=2; c=2; while(a

64、 C)1,2,1 D)2,1,1 8、下面程序的運(yùn)行結(jié)果是( C )。 #include main() { int num=0; while(num<=2) { num++; printf(“%d\n”,num); } } A)1 B)1 C)1 D)1 2 2 2 3 3 9、以下能正確計(jì)算123…10的程序段是( C  )。 A)do{i=1; s=1; B)do{i=1; s=0;

65、    s=s*i; s=s*i; i++; i++; }while(i<=10); }while(i<=10); C)i=1; s=1; D)i=1; s=0; do{s=s*i; do{s=s*i; i++; i++; }while(i<=10); }while(i<=10); 10、下面程序的運(yùn)行結(jié)果是( D )。 #include main() { int y=10; do{ y--; }w

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

最新文檔

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!