C語言習題答案[共45頁]
《C語言習題答案[共45頁]》由會員分享,可在線閱讀,更多相關(guān)《C語言習題答案[共45頁](45頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、C語言章節(jié)習題 目錄 C語言章節(jié)習題 1 第一章 C語言概述 2 第三章 數(shù)據(jù)類型、運算符和表達式 3 第四章 順序結(jié)構(gòu)程序設計 4 第五章 選擇結(jié)構(gòu)程序設計 11 第六章 循環(huán)結(jié)構(gòu)程序設計 21 第7章 數(shù)組習題 33 第8章 函數(shù)習題 41 第九章 預處理 48 第十章 指針 49 第一章 C語言概述 一、選擇題: 1、一個C程序的執(zhí)行是從(A)。 A本程序的main函數(shù)開始,到main函數(shù)結(jié)束 B本程序文件的第一個函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束 C本程序的main函數(shù)開始,到本程序文件的最后一個函
2、數(shù)結(jié)束 D本程序文件的第一個函數(shù)開始,到本程序main函數(shù)結(jié)束 2、 在 C 語言中,每個語句必須以(D)結(jié)束。 A.回車符B.冒號C.逗號D.分號 3、C 語言規(guī)定:在一個源程序中,main函數(shù)的位置(C)。 A. 必須在最開始 B. 必須在系統(tǒng)調(diào)用的庫函數(shù)的后面 C. 可以任意 D.必須在最后 4、一個C 語言程序是由(B)。 A. 一個主程序和若干子程序組成 B. 函數(shù)組成 C. 若干過程組成 D. 若干子程序組成 5、下列說法中錯誤的是(D)。 A.主函數(shù)可以分為兩個部分:主函數(shù)說明部分和主函數(shù)體 B.主函數(shù)可以調(diào)用任何非主函數(shù)的其他函數(shù) C
3、.任何非主函數(shù)可以調(diào)用其他任何非主函數(shù) D.程序可以從任何非主函數(shù)開始執(zhí)行 6、用 C 語言編寫的源文件經(jīng)過編譯,若沒有產(chǎn)生編譯錯誤,則系統(tǒng)將(B)。 A.生成可執(zhí)行目標文件B.生成目標文件 C.輸出運行結(jié)果D.自動保存源文件 二、填空題: 1、C 語言只有(37)個關(guān)鍵字和(9)種控制語句。 2、每個源程序有且只有一個(main)函數(shù),系統(tǒng)總是從該函數(shù)開始執(zhí)行C語言程序。 3、C 語言程序的注釋可以出現(xiàn)在程序中的任何地方,它總是以(\*)符號作為開始標記,以(*\)符號作為結(jié)束標記。 4、C 語言中,輸入操作是由庫函數(shù)(scanf)完成的,輸出操作是由庫函數(shù)(
4、printf)完成的。 5、系統(tǒng)默認的C 語言源程序文件的擴展名是(.c),經(jīng)過編譯后生成的目標文件的擴展名是(.obj),經(jīng)過連接后生成的可執(zhí)行文件的擴展名是(.exe ) 。 6、C 語言的標識符只能由字母、數(shù)字和(下劃線) 三種字符組成。 第三章 數(shù)據(jù)類型、運算符和表達式 一、選擇題: 1、以下選項中,不正確的 C 語言浮點型常量是(C)。 A. 160.B. 0.12C. 2e4.2 D.0.0 2、以下選項中,(D)是不正確的 C 語言字符型常量。 A. aB. \x41 C. \101 D. "a" 3、 在 C 語言中,字符型數(shù)據(jù)在計算機內(nèi)
5、存中,以字符的(C)形式存儲。 A.原碼 B.反碼C. ASCII 碼D. BCD碼 4、若x、i、j和k都是int型變量,則計算下面表達式后,x的值是(C)。 x=(i=4,j=16,k=32) A. 4 B. 16C.32D.52 5、算術(shù)運算符、賦值運算符和關(guān)系運算符的運算優(yōu)先級按從高到低依次為(B)。 A.算術(shù)運算、賦值運算、關(guān)系運算B.算術(shù)運算、關(guān)系運算、賦值運算 C.關(guān)系運算、賦值運算、算術(shù)運算D.關(guān)系運算、算術(shù)運算、賦值運算 6、表達式!x||a==b 等效于(D)。 A. !((x||a)==b)B. !(x||y)==bC. !(x||(a==b
6、))D. (!x)||(a==b) 7、設整型變量 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、 設有語句 int a=3;,則執(zhí)行了語句 a+=a-=a*=a;后,變量 a 的值是(B)。 A. 3B. 0C. 9D. -12 9、在以下一組運算符中,優(yōu)先級最低的運算符是(D)。 A. *B. !=C. +D. = 10、設整型變量 i 值為2,表達式(++i)+(++i)+(++i)的結(jié)果是(B)。 A. 6B. 12C. 15D.表達式出錯 11
7、、若已定義 x 和 y為double 類型,則表達式 x=1,y=x+3/2 的值是(C)。 A. 1B. 2C. 2.0D. 2.5 12、設a=1,b=2,c=3,d=4,則表達式:a10 && a<15D. !(a<=10) && !(a>=15) 14、設 f是實型變量,下列
8、表達式中不是逗號表達式的是(D)。 A. f= 3.2, 1.0B. f>0, f<10C. f=2.0, f>0D. f=(3.2, 1.0) 15、 表達式18/4*sqrt(4.0)/8值的數(shù)據(jù)類型是(C)。 A. intB. floatC. doubleD. 不確定 16、已知字母A的ASCII碼為十進制數(shù)65,且c2為字符型,則執(zhí)行語句 C2=’A’+’6’-‘3’;后c2中的值是(A)。 A. DB. 68C. 不確定的值D. C 17、以下用戶標識符中,合法的是(B)。 A. intB. nitC. 123 D. a+b 18、C 語言中,要求運算
9、對象只能為整數(shù)的運算符是(A)。 A. %B. / C. > D. * 19、若有說明語句: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賦初值,下列語句中哪一個是正確的(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 語言中
10、的邏輯值“真”是用1表示的,邏輯值“假”是用0表示的。 2、若x和n都是int型變量,且x的初值為12,n的初值為5,則計算表達式x%=(n%=2)后x的值為0。 3、設 c=w,a=1,b=2,d=-5,則表達式 x+1>c, y!=c+2, -a-5*b<=d+1, b==a=2的值為1、0、1、1。 4、設 float x=2.5,y=4.7; int a=7;,表達式 x+a%3*(int)(x+y)%2/4的值為2.5。 5、判斷變量 a、b 的值均不為 0 的邏輯表達式為a!=0&&b!=0,值為1。 6、求解賦值表達式 a=(b=10)%(c=6),表達式值為4
11、 、a、b、c 的值依次為1,0,6。 7、求解逗號表達式 x=a=3,6*a 后,表達式值為18 、x、a 的值依次為3,3。 三、編程題: 1、 設長方形的高為 1.5,寬為 2.3,編程求該長方形的周長和面積。 2、 編寫一個程序,將大寫字母 A轉(zhuǎn)換為小寫字母 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)程序設計 基礎(chǔ)練習(A) 一、填空題 1、C語句分為五種:控制語句
12、、函數(shù)調(diào)用語句、 表達式語句、空語句和 復合語句 。
2、一個基本語句的最后一個字符是 ; 。
3、復合語句又稱分程序,是用 { } 括起來的語句。
4、 使用C語言庫函數(shù)時,要用于預編譯命令 #include 將有關(guān)的“頭文件”包括到用戶源文件中。
5、 使用標準輸入輸出庫函數(shù)時,程序的開頭要有如下預處理命令: #include
13、回車鍵,請寫出以下程序運行效果 a 。
#include
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í)行以下語句后的輸出結(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
17、; printf(“(5) %14.3lf\n”,b); printf(“(6) %8.4lf\n”,b); printf(“(7) %.4f\n”,b); } 二、判斷題 1、所謂函數(shù)體實際上就是一個復合語句。( 對) 2、C語言本身不提供輸入輸出語句,輸入和輸出操作是由函數(shù)來實現(xiàn)的。(對?。? 3、putchar函數(shù)可以向終端輸出一個整數(shù)數(shù)據(jù)。( 錯?。? 4、考慮到printf 和scanf函數(shù)使用頻繁,系統(tǒng)允許在使用這兩個函數(shù)時可不加#include命令。( 對 ) 5、任何表達式都可以加上分號而成為有意義的語句。(對?。? 三、選擇題 1、 以
18、下不屬于流程控制語句的是( A )。 A) 表達式語句 B) 選擇語句 C) 循環(huán)語句 D) 轉(zhuǎn)移語句 2、putchar函數(shù)可以向終端輸出一個( D )。 A)整型變量表達式值 B)實型變量值 C)字符串 D)字符或字符型變量值 3、getchar函數(shù)的參數(shù)個數(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列。如果字符串長度大于5,則輸出按方式( B )。;如果字符串長度小于5,則輸出按方式( C )。 A)從左起輸出該字串,右補空
20、格 B)按原字符長從左向右全部輸出 C)右對齊輸出該字串,左補空格 D)輸出錯誤信息 6、已有定義int a=-2;和輸出語句:printf(“%8lx”,a);以下正確的敘述是( D )。 A)整型變量的輸出格式符只有%d一種 B)%x是格式符的一種,它可以適用于任何一種類型的數(shù)據(jù) C)%x是格式符的一種,其變量的值按十六進制輸出,但%8lx是錯誤的 D)%8lx不是錯誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度 7、以下C程序正確的運行結(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程序正確的運行結(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ǔ)練習(B) 一、填空題 1、printf函數(shù)的作用是向終端 輸出 若干個任意類型的數(shù)據(jù)。 2、printf函數(shù)中的“格式控制”,包括 格式說明 和 普通字符 兩種信息。 3、scanf函數(shù)中的“格式控制”后面應當是變量 地址 ,而不是變量名。 4、在用scanf函數(shù)中輸入數(shù)據(jù)時,如果在“格式控制”字符傳中除了格式說明以外還有其他字符,則應在對應位置輸入與這些字符相同的 字符 。 5、在用”%c”格式輸入字符時,空格字符和
24、“轉(zhuǎn)義字符”都作為有效字符 輸入 。 6、在輸入數(shù)據(jù)時,遇以下情況時該數(shù)據(jù)認為結(jié)束:遇 空格 、或按 “回車” 或 “跳格”鍵 ;按指定的寬度結(jié)束;遇非法輸入。 7、輸入數(shù)據(jù)時不能規(guī)定 精度 。 8、如果在%后有一個“*”附加說明符,表示 跳過它指定的列數(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)用語句是 ( 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、已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A和B,當從第一列開始輸入數(shù)據(jù)時,正確的數(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
27、ain()
{
int a; float f;
printf(“\nInput number:”);
輸入語句
printf(“\nf=%f,a=%d\n”,f,a);
}
Input number:4.5 2
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、閱讀以下程序,若運行結(jié)果為如下形式,輸入輸出語句的正確內(nèi)容是( B )。 main() { int x; float y; printf(“enter x,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、以下說法正確的是( D )。 A)輸入項可以為一實型常量,如scanf(“%f”,3.5); B)只有格式控制,沒有輸入項,也能進行正確輸入,如scanf(“a=%d,b=%d”);
30、 C)當輸入一個實型數(shù)據(jù)時,格式控制部分應規(guī)定小數(shù)點后的位數(shù),如scanf(“%4.2f”,&f); D)當輸入數(shù)據(jù)時,必須指明變量的地址,如scanf(“%f”,&f); 9、有輸入語句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);為使變量a的值為1,b為3,c為2,從鍵盤輸入數(shù)據(jù)的正確形式應當是( D )。 A)132<回車> B)1,3,2<回車> C)a=1 b=3 c=2<回車> D)a=1,b=3,c=2<回車> } 10、已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A和B,當從第一列開始輸入數(shù)據(jù)時,正確的數(shù)
31、據(jù)輸入方式是( A )。
int a1,a2; char c1,c2;
scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);
A)10A 20B
32、C)678.000000 D)123.000000 三、編程: 1、 編寫程序,從鍵盤上輸入三個數(shù)分別給變量a、b、c,求它們的平均值。并按如下形式輸出: average of **、** and ** is **.** 。其中,三個**依次表示a、b、c的值,**.**表示a,b,c的平均值。 2、輸入9時23分并把它化成分鐘后輸出。(從零點整開始計算)。 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)程序設計 基礎(chǔ)練習(A) 一、填空題 1、關(guān)系表達式的運算結(jié)果是 邏輯 值。C語言沒有邏輯型數(shù)據(jù),以
34、1 代表“真”,以 0代表“假”。 2、邏輯運算符!是 單目 運算符,其結(jié)合性是由 右結(jié)合性 。 3、C語言提供的三種邏輯運算符是 && 、 || 、 ! 。其中優(yōu)先級最高的為 ! ,優(yōu)先級最低的為 | | 。 4、邏輯運算符兩側(cè)的運算對象不但可以是0和1,或者是0和非0的整數(shù),也可以是任何類型的數(shù)據(jù)。系統(tǒng)最終以 0 和 非0 來判定它們屬于“真”或“假”。 5、設y為int型變量,請寫出描述“y是偶數(shù)”的表達式 (y%2==0) 。 6、設x,y,z均為int型變量,請寫出描述“x或y中有一
35、個小于z”的表達式 x
36、1&&b+c/2的值是 1 。 13、有int x,y,z;且x=3,y=-4,z=5,則表達式(x&&y)==(x||z)的值為 1 。 14、有int x,y,z;且x=3,y=-4,z=5,則以下表達式的值為 1 。 !(x>y)+(y!=z)||(x+y)&&(y-z) 15、有int a=3,b=4,c=5,x,y;,則以下表達式的值為 0 。 !(x=a)&&(y=b)&&0 16、if (!k) a=3;語句中的!k可以改寫為 k= =0 ,使其功能不變。 二、選擇題 1、邏輯運算符兩側(cè)運算對象的數(shù)據(jù)類型(
37、D?。? A)只能是0或1 B)只能是0或非0正數(shù) C)只能是整型或字符型數(shù)據(jù) D)可以是任何類型的數(shù)據(jù) 2、以下關(guān)于運算符優(yōu)先順序的描述中正確的是( C?。?。 A)關(guān)系運算符<算術(shù)運算符<賦值運算符<邏輯與運算符 B)邏輯與運算符<關(guān)系運算符<算術(shù)運算符<賦值運算符 C)賦值運算符<邏輯與運算符<關(guān)系運算符<算術(shù)運算符 D)算術(shù)運算符<關(guān)系運算符<賦值運算符<邏輯與運算符 3、下列運算符中優(yōu)先級最高的是( B?。? A)< B)+ C)&& D)!= 4、為判斷字符變量c的值不是數(shù)字也不是字母時,應采用下述表達式( 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、能正確表示“當x的取值在[1,100]和[200,300]范圍內(nèi)為真,否則為假”的表達式是( 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、設x、y和z是int型變量,且x=3,y=4,z=5,則下面表達式中值為0的是( D )。
A)‘x’&&‘y’
B) x<=y
C) x||y+z&&y-z
D) !((x
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語句形式是( 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(x
41、,y=30,z=30 C)x=20,y=30,z=10 D)x=20,y=30,z=20 11、以下if語句語法正確的是( 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、請閱讀以下程序:
main()
{
int a=5,b=5,c=0;
if(a==b+c) printf(“***\n”);
else printf(“$$$\n”);
}
以下程序( C?。?
A)有語法錯不能通過編譯 B)可以通過編譯但不能通過連接
C)輸出*** D)輸出$$$
三、寫出下列程序的運行結(jié)果
1、若運行時輸入:2<回車>,則以下程序的運行結(jié)果是 2nd class postage is 14p 。
#include
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、若運行時輸入:4.4<回車>,則以下程序的運行結(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、以下程序的運行結(jié)果是 F 。 main() { if(2*2==5<2*2==4) print(“T”); else printf(“F”); } 能力提高(B) 一、選擇題 1、若希望當A的值為奇數(shù)時,表達式的值為“真”,A的值為偶數(shù)時,表達式的值為“假”,則以下不能滿足要求的表達式是( D )。 A)A%2==1 B)!(A%2==0) C)!(A%2) D)A%
46、2 2、下列運算符中優(yōu)先級最低的( A ),優(yōu)先級最高的是( C )。 A)?: B)&& C)+ D)!= 3、請閱讀以下程序: main() { int a=5,b=0,c=0; if(a=b+c) printf(“***\n”); else printf(“$$$\n”); } 以下程序( D )。 A)有語法錯不能通過編譯 B)可以通過編譯但不能通過連接 C)輸出*** D)輸出$$$ 4、以下程序的運行結(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ù)程序的功能,將以下程序補充完整 1、以下程序?qū)斎氲乃膫€整數(shù),按從小到大的順序輸出。請在 內(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、編寫程序,輸入三角型的三條邊長,求其面積。注意:對于不合理的邊長輸入要
49、輸出數(shù)據(jù)錯誤的提示信息。
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
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ǔ)練習(A) 一、填空題 1、在if語句中又包含一個或多個if語句稱為 if語句的嵌套 。 2、為了避免在嵌套的條件語句if-els
51、e中產(chǎn)生二義性,C語言規(guī)定:else子句總是與其之前最近的未配對的if 配對。如果if 與else數(shù)目不一樣,為實現(xiàn)設計者的企圖,可以加 花括號 關(guān)系。 3、條件運算符是C語言中唯一的一個 三 目運算符,其結(jié)合性為 從右至左 。 4、假設條件表達式的格式為:表達式1?表達式2:表達式 若表達式2和表達式3的類型不同,此時條件表達式的值的類型為二者中較 高 的類型 5、在switch語句中,switch后面括弧內(nèi)的“表達式”,可以為 任何 類型。 6、若a=1,b=2,則表達式a>b?a:b+1的值是 3 。 7、若w=1、x=2、y=
52、3、z=4,則條件表達式w 53、、在switch語句中,各個case和default的出現(xiàn)次序影響執(zhí)行結(jié)果。( 對)
3、在switch語句中,多個case可以共用一組執(zhí)行語句。(對 )
4、 條件表達式能取代一般if的語句。( 錯 )
5、 case后的常量表達式類型一定與表達式類型匹配。( 對 )
三、寫出以下程序的運行結(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)
一、寫出下列程序的運行結(jié)果
1、 #include 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 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 59、中判別閏年的條件是:能被4整除但不能被100整除的年是閏年,能被400整除的年也是閏年。請在 內(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)程序設計
基礎(chǔ)練習(A)
一、選擇題
1、C語言中while和do-while循環(huán)的主要區(qū)別是(A)。
A) do-while的循環(huán)體至少無條件執(zhí)行一次
B) while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴格
C) C) do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)
D) do-while的循環(huán)體不能是復合語句
2、以下描述中正確的是(C)。
A) 由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復合語句
B) do-while循環(huán)由do開始,用while結(jié)束,在while(表達式)后面不能寫分號
C) 在do-while循環(huán)體中 62、,一定要有能使while后面表達式的值變?yōu)榱悖ā凹佟保┑牟僮?
D) do-while循環(huán)中,根據(jù)情況可以省略while
3、設有程序段
int k=10;
while(k) k=k-1;
則下面描述中正確的是( A?。?。
A)while循環(huán)執(zhí)行10次 B)循環(huán)是無限循環(huán)
C)循環(huán)體語句一次也不執(zhí)行 D)循環(huán)體語句執(zhí)行一次
4、下列循環(huán)語句中有語法錯誤的是( 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í)行語句while (i++<4) ;后,變量i的值為( C )。
A) 3 B) 4 C) 5 D) 6
6、語句while(!E);中的表達式!E等價于( A?。?。
A)E==0 B)E!=1 C)E!=0 D) E==1
7、下面程序段的運行結(jié)果是( A?。?
a=1; b=2; c=2;
while(a
64、 C)1,2,1 D)2,1,1
8、下面程序的運行結(jié)果是( C?。?。
#include 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、下面程序的運行結(jié)果是( D )。
#include
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應急救援安全知識競賽試題
- 1 礦井泵工考試練習題含答案
- 2煤礦爆破工考試復習題含答案
- 1 各種煤礦安全考試試題含答案