第三章、順序結(jié)構(gòu)
一、選擇題
3.1 若a、b、c、d都是int類型變量且初值為0,以下選項中不正確的賦值語句是
A) a=b=c=100; B) d++; C) c+b; D) d=(c=22)-(b++);
答案:C
3.2 以下選項中不是C語句的是
A) {int i; i++; printf("%d\n", i); } B) ; C) a=5,c=10 D) { ; } 答案:C
3.3 以下合法的C語言賦值語句是
A) A=B=58 B) k=int(a+b); C) a=58,b=58 D) --i; 答案:D
3.4 以下程序的輸出結(jié)果是
A) 0 B) 1 C) 3 D)不確定的值 main() { int x=10,y=3; printf("%d\n", y=x/y); } 答案:C
3.5 若變量已正確說明為int類型,要給a、b、c輸入數(shù)據(jù),以下不正確的輸入語句是
A) read(a,b,c); B) scanf("%d%d%d",a,b,c); C) scanf("%D%D%D",&a,&b,&c); D) scanf("%d%d%d",&a,&b,&c);
答案:D
3.6 若變量已正確說明為float類型,要通過以下賦值語句給a賦予10、b賦予22、c賦予
33,以下不正確的輸入形式是
A) 10 22 33 B) 10.0,22.0,33.0 C) 10.0 22.0 33.0 D) 10 22
33 scanf("%f %f %f", &a, &b, &c);
答案:B
3.7 若變量以正確定義,要將a和b中的數(shù)進行交換,下面不正確的語句組是
A) a=a+b,b=a-b,a=a-b; B) t=a,a=b,b=t; C) a=t; t=b; b=a; D) t=b; b=a; a=t;
答案:C
3.8 若變量已正確定義,以下程序段的輸出結(jié)果是
A) 輸出格式說明與輸出項不匹配,輸出無定值 B) 5.17000 C) 5.168000 D) 5.169000
x=5.16894; printf("%f\n",(int)(x*1000+0.5)/(float)1000);
答案:D
3.9 若有以下程序段,c3中的值是
A) 0 B) 1/2 C) 0.5 D) 1
int c1=1,c2=2,c3; c3=c1/c2;
答案:A
3.10 若有以下程序段,其輸出結(jié)果是
A) 0,0,-10 B) 0,0,5 C) -10,3,-10 D) 3,3,-10
int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf("%d,%d,%d\n",a,b,c);
答案:B
3.11 當運行以下程序時,在鍵盤上從第一列開始輸入9876543210(此處代表Enter),則程序的輸出結(jié)果是
A) a=98,b=765,c=4321
B) a=10,b=432,c=8765
C) a=98,b=765.000000,c=4321.000000
D) a=98,b=765,c=4321.0
main() { int a; float b,c; scanf("-?O",&a,&b,&c); printf("\na=%d,b=%f,c=%f\n",a,b,c); }
答案:C
3.12 以下程序的輸出結(jié)果是
A) a=%2,b=%5
B) a=2,b=5
C) a=%%d,b=%%d
D) a=%d,b=%d
main() { int a=2,b=5; printf("a=%%d,b=%%d\n",a,b); }
答案:D
3.13 若int類型占兩個字節(jié),則以下程序段的輸出是 A) -1,-1 B) -1,32767 C) -1,32768 D) -1,65535
int a=-1; printf("%d,%u\n",a,a);
答案:D
3.14 以下程序段的輸出是 A) *496 * B) * 496* C) *000496* D)輸出格式符不合法
int x=496; printf("*%-06d*\n",x);
答案:A
3.15 以下程序段的輸出是 A) |3.1415| B) | 3.0| C) | 3| D) | 3.|
float a=3.1415; printf("|%6.0f|\n",a);
答案:C
3.16 以下程序段的輸出是 A) |2345.67800| B) |12345.6780| C) |12345.67800| D) |12345.678| printf("|.5f|\n",12345.678);
答案:C
3.17 以下程序段的輸出是 A) *0000057.66* B) * 57.66* C) *0000057.67* D) * 57.67* float a=57.666; printf("*0.2f*\n",a);
答案:C
3.18 若從終端輸入以下數(shù)據(jù),要給變量C賦以283.19,則正確的輸入語句是 A) scanf("%f",c); B) scanf("%8.4f",&c); C) scanf("%6.2f",&c); D) scanf("%8",&c); 283.1900 表示Enter鍵
答案:由于印刷錯誤,本題沒有正確答案。改正意見: 把選項A改為:scanf("%f",&c);或者把選項D改為:scanf("",&c);則可分別選擇A或者D為正確答案。
3.19 若變量已正確說明,要求用以下語句給a賦予
3.12、給b賦予9.0,則正確的輸入形式是(□代表空格) A) 3.12□□9.0 B) a=□□3.12b=□□□9 C) a=3.12,b=9 D) a=3.12□□,b=9□□□□ scanf("a=%f,b=%f",&a,&b); 表示Enter鍵 答案:C
3.20 以下程序的輸出結(jié)果是
A) 9 8 B) 8 9 C) 6 6 D) 以上三個都不對
#include "math.h" main() { double a=-3.0, b=2; printf("%3.0f %3.0f\n",pow(b,fabs(a)),pow(fabs(a),b)); }
答案:B
二、填空題
3.21 若有以下定義,請寫出以下程序段中輸出語句執(zhí)行后的輸出結(jié)果。 (1)____(2)____(3)____ int i=-200,j=2500; printf("(1) %d %d",i,j); printf("(2) i=%d, j=%d\n",i,j); printf("(3) i=%d\n j=%d\n",i,j);
答案: -200 2500 i=-200, j=2500 i=-200 j=2500
3.22 變量i、j、k已定義為int類型并有初值0,用以下語句進行輸入時 scanf("%d",&i); scanf("%d",&j); scanf("%d",&k); 當執(zhí)行第一個輸入語句,從鍵盤輸入: 12.3 表示Enter鍵則變量i、j、k的值分別是____、____、____。
答案:12、0、0
3.23 復合語句在語法上被認為是____??照Z句的形式是____。
答案:一條語句、 ;
3.24 C語句的最后用____結(jié)束。 答案:;
3.25 以下程序段,要求通過scanf語句給變量賦值,然后輸出變量的值。寫出運行時給k輸入100,給a輸入25.81,給x輸入1.89234時的三種可能的輸入形式____、_____、____。 int k; float a; double x; scanf("%d%f%lf",&k,&a,&x); printf("k=%d,a=%f,x=%f\n",k,a,x);
答案: (1) 100 25.81 1.89234 (2) 100 25.811.89234 (3) 100 25.81 1.89234
3.26 以下程序段的輸出結(jié)果是____。 int x=0177; printf("x==,x=m,x=$%6o,x=%6x,x=%6u\n",x,x,x,x,x);
答案:x=127,x= 127,x= 177,x= 7f,x= 127
3.27 以下程序段的輸出結(jié)果是____。 int x=0177; printf("x=%-3d,x=%-6d,x=$%-06d,x=$d,x=%d\n",x,x,x,x,x);
答案:27、x=127,x=127 ,x=$127 ,x=$000127,x=d
3.28 以下程序段的輸出結(jié)果是____。 double a=513.789215; printf("a=%8.6f,a=%8.2f,a=.8f,a=.8lf\n",a,a,a,a);
答案:a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500
一、選擇題
3.1 若a、b、c、d都是int類型變量且初值為0,以下選項中不正確的賦值語句是
A) a=b=c=100; B) d++; C) c+b; D) d=(c=22)-(b++);
答案:C
3.2 以下選項中不是C語句的是
A) {int i; i++; printf("%d\n", i); } B) ; C) a=5,c=10 D) { ; } 答案:C
3.3 以下合法的C語言賦值語句是
A) A=B=58 B) k=int(a+b); C) a=58,b=58 D) --i; 答案:D
3.4 以下程序的輸出結(jié)果是
A) 0 B) 1 C) 3 D)不確定的值 main() { int x=10,y=3; printf("%d\n", y=x/y); } 答案:C
3.5 若變量已正確說明為int類型,要給a、b、c輸入數(shù)據(jù),以下不正確的輸入語句是
A) read(a,b,c); B) scanf("%d%d%d",a,b,c); C) scanf("%D%D%D",&a,&b,&c); D) scanf("%d%d%d",&a,&b,&c);
答案:D
3.6 若變量已正確說明為float類型,要通過以下賦值語句給a賦予10、b賦予22、c賦予
33,以下不正確的輸入形式是
A) 10
33 scanf("%f %f %f", &a, &b, &c);
答案:B
3.7 若變量以正確定義,要將a和b中的數(shù)進行交換,下面不正確的語句組是
A) a=a+b,b=a-b,a=a-b; B) t=a,a=b,b=t; C) a=t; t=b; b=a; D) t=b; b=a; a=t;
答案:C
3.8 若變量已正確定義,以下程序段的輸出結(jié)果是
A) 輸出格式說明與輸出項不匹配,輸出無定值 B) 5.17000 C) 5.168000 D) 5.169000
x=5.16894; printf("%f\n",(int)(x*1000+0.5)/(float)1000);
答案:D
3.9 若有以下程序段,c3中的值是
A) 0 B) 1/2 C) 0.5 D) 1
int c1=1,c2=2,c3; c3=c1/c2;
答案:A
3.10 若有以下程序段,其輸出結(jié)果是
A) 0,0,-10 B) 0,0,5 C) -10,3,-10 D) 3,3,-10
int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf("%d,%d,%d\n",a,b,c);
答案:B
3.11 當運行以下程序時,在鍵盤上從第一列開始輸入9876543210
A) a=98,b=765,c=4321
B) a=10,b=432,c=8765
C) a=98,b=765.000000,c=4321.000000
D) a=98,b=765,c=4321.0
main() { int a; float b,c; scanf("-?O",&a,&b,&c); printf("\na=%d,b=%f,c=%f\n",a,b,c); }
答案:C
3.12 以下程序的輸出結(jié)果是
A) a=%2,b=%5
B) a=2,b=5
C) a=%%d,b=%%d
D) a=%d,b=%d
main() { int a=2,b=5; printf("a=%%d,b=%%d\n",a,b); }
答案:D
3.13 若int類型占兩個字節(jié),則以下程序段的輸出是 A) -1,-1 B) -1,32767 C) -1,32768 D) -1,65535
int a=-1; printf("%d,%u\n",a,a);
答案:D
3.14 以下程序段的輸出是 A) *496 * B) * 496* C) *000496* D)輸出格式符不合法
int x=496; printf("*%-06d*\n",x);
答案:A
3.15 以下程序段的輸出是 A) |3.1415| B) | 3.0| C) | 3| D) | 3.|
float a=3.1415; printf("|%6.0f|\n",a);
答案:C
3.16 以下程序段的輸出是 A) |2345.67800| B) |12345.6780| C) |12345.67800| D) |12345.678| printf("|.5f|\n",12345.678);
答案:C
3.17 以下程序段的輸出是 A) *0000057.66* B) * 57.66* C) *0000057.67* D) * 57.67* float a=57.666; printf("*0.2f*\n",a);
答案:C
3.18 若從終端輸入以下數(shù)據(jù),要給變量C賦以283.19,則正確的輸入語句是 A) scanf("%f",c); B) scanf("%8.4f",&c); C) scanf("%6.2f",&c); D) scanf("%8",&c); 283.1900
答案:由于印刷錯誤,本題沒有正確答案。改正意見: 把選項A改為:scanf("%f",&c);或者把選項D改為:scanf("",&c);則可分別選擇A或者D為正確答案。
3.19 若變量已正確說明,要求用以下語句給a賦予
3.12、給b賦予9.0,則正確的輸入形式是(□代表空格) A) 3.12□□9.0
3.20 以下程序的輸出結(jié)果是
A) 9 8 B) 8 9 C) 6 6 D) 以上三個都不對
#include "math.h" main() { double a=-3.0, b=2; printf("%3.0f %3.0f\n",pow(b,fabs(a)),pow(fabs(a),b)); }
答案:B
二、填空題
3.21 若有以下定義,請寫出以下程序段中輸出語句執(zhí)行后的輸出結(jié)果。 (1)____(2)____(3)____ int i=-200,j=2500; printf("(1) %d %d",i,j); printf("(2) i=%d, j=%d\n",i,j); printf("(3) i=%d\n j=%d\n",i,j);
答案: -200 2500 i=-200, j=2500 i=-200 j=2500
3.22 變量i、j、k已定義為int類型并有初值0,用以下語句進行輸入時 scanf("%d",&i); scanf("%d",&j); scanf("%d",&k); 當執(zhí)行第一個輸入語句,從鍵盤輸入: 12.3
答案:12、0、0
3.23 復合語句在語法上被認為是____??照Z句的形式是____。
答案:一條語句、 ;
3.24 C語句的最后用____結(jié)束。 答案:;
3.25 以下程序段,要求通過scanf語句給變量賦值,然后輸出變量的值。寫出運行時給k輸入100,給a輸入25.81,給x輸入1.89234時的三種可能的輸入形式____、_____、____。 int k; float a; double x; scanf("%d%f%lf",&k,&a,&x); printf("k=%d,a=%f,x=%f\n",k,a,x);
答案: (1) 100 25.81 1.89234 (2) 100 25.81
3.26 以下程序段的輸出結(jié)果是____。 int x=0177; printf("x==,x=m,x=$%6o,x=%6x,x=%6u\n",x,x,x,x,x);
答案:x=127,x= 127,x= 177,x= 7f,x= 127
3.27 以下程序段的輸出結(jié)果是____。 int x=0177; printf("x=%-3d,x=%-6d,x=$%-06d,x=$d,x=%d\n",x,x,x,x,x);
答案:27、x=127,x=127 ,x=$127 ,x=$000127,x=d
3.28 以下程序段的輸出結(jié)果是____。 double a=513.789215; printf("a=%8.6f,a=%8.2f,a=.8f,a=.8lf\n",a,a,a,a);
答案:a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500