第一篇:c語(yǔ)言備考習(xí)題及部分答案
一、判斷題
1.格式字符%md中的m不能為負(fù)。(×)2.實(shí)際上,可以用順序、分支、循環(huán)三種結(jié)構(gòu)構(gòu)造任何算法。()3.printf(“%d”,sizeof(1234));其結(jié)果是4。(×)4.在C語(yǔ)言中,任何一個(gè)表達(dá)式的最后加上一個(gè)分號(hào)就構(gòu)成一個(gè)合法的語(yǔ)句。()
二、單選題
1.下述程序的輸出結(jié)果是(B)
#include
void main()
{int a,b,c=241;
a=c/100%9;
b=-1&&-1;
printf(“%d,%d”,a,b);
} 2.若有定義:int x,y;char a,b,c;并有以下輸入數(shù)據(jù):x=1 2 A B C
a=getch();b=getch();c=getch();B)scanf(“x=%d%d”,&x,&y);
a=getch();b=getch();c=getch();C)scanf(“x=%d%d%c%c%c”,7x,&y,&a,&b,&c);D)scanf(“x=%d%d%c%c%c%c%c”,&x,&y,&a,&b,&b,&c,&c);3.已有定義double d,f;數(shù)據(jù)的輸入方式為:3.45
5.下面程序執(zhí)行結(jié)果是32768。(×)
main()
{int a,b;
printf(“%dn”,b=(a=32767,a+1));}
C)scanf(“3.2f%3.1f”,&d,&f)D)scanf(“%3.2lf%3.1lf”,&d,&f)4.如下程序: #include
void main()
{ int m,n,k;
m=(n=4)+(k=10-7);
printf(“m=%dn”,m);
}
運(yùn)行后m的值為(C)。
(A)(B)(C)7
(D)14
5.下面程序的輸出是(C)。
#include
void main()
{ int x=10,y=3;
printf(“%dn”,y=x/y);
}
(A)0
(B)
1(C)3(D)不確定的值
6.下面程序運(yùn)行情況是(D)。
#include
void main()
{ int x=3,y=0,z=0;
if(x=y+z)
printf(“****”);
else
printf(“####”);
}
(A)有語(yǔ)法錯(cuò)0不能通過編譯
(B)輸出****
(C)可以通過編譯,但不能通過連接,因而不能運(yùn)行
(D)輸出#### 7.結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)是(A)。(A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
(B)遞歸結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)
(C)嵌套結(jié)構(gòu)、遞歸結(jié)構(gòu)、順序結(jié)構(gòu)
(D)循環(huán)結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)、順序結(jié)構(gòu)
8.以下程序的輸出結(jié)果是(B)。#include
printf(“%d,%d”,++i,j--);}(A)11,10
(B)9,10
(C)010,9
(D)10,9 9.運(yùn)行完下列程序后,在屏幕上的內(nèi)容是(D)。main(){ int a=0;
a+=(a=12);
printf(“%dn”,a);} 10.語(yǔ)句printf(“s=%-5.3s”,“computer”);的輸出結(jié)果是(B)。
A)s= com B)s=com
C)s= ter D)s=ter
11.下面程序的輸出是(C)
main()
{int
x=10,y=3;
printf(“%dn”,y=x/y);
}
A)0
B)C)
3D)不確定的值 12.執(zhí)行下面程序中輸出語(yǔ)句后,a的值是(C)。
main()
{ int
a;
printf(“%dn”,(a=3*5,a*4,a5));
}
A)65 B)20
C)1
5D)10 13.下列程序的輸出結(jié)果是(A)。
main()
{int a=-1,b=1,c;
c=(a++<=0)&&!(b--<=0));
printf(“%d,%d,%d”,a,b,c);}
A)0,0,1
B)-1,1,1
C)0,1,0
D)0,0,0
14.以下程序運(yùn)行后,m的值為(C)。
#include
void main()
{ int m,n,k;
m=(n=4)+(k=10-7);
printf(“m=%dn”,m);}
A)B)3
C)7
D)14
15.下面程序的輸出結(jié)果是(D)。
main()
{int x=10;
printf(“%dn”,~x);}
A)9
B)-9
C)11
D)-11 16.以下程序的輸出結(jié)果是(D)。
main()
{int x=10,y=10;
printf(“%d,%dn”,x--,--y);}
A)10,10
B)9,9
C)9,10
D)10,9 A.B.C.D.17.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列,如果字符串長(zhǎng)度大于5,則輸出按方式(B)。
A)從左起輸出該字符串,右補(bǔ)空格
B)按原字符長(zhǎng)從左向右全部輸出
C)右對(duì)齊輸出該字串,左補(bǔ)空格
D)輸出錯(cuò)0信息
18.putchar函數(shù)可以向終端輸出一個(gè) D A)整型變量表達(dá)式值
B)實(shí)型變量值 C)字符串
D)字符或字符型變量值
19.根據(jù)定義和數(shù)據(jù)的插入方式,輸入語(yǔ)句的正確形式為(B)。
已有定義:float f1,f2;數(shù)據(jù)的輸入方式:4.52
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);20.已知ch是字符型變量,下面不正確的賦值語(yǔ)句是(A)。
A)ch=''a+b''
B)ch=''O'';
C)ch=''7''+''9'';D)ch=5+9;
21.假設(shè)int a=4;以下不正確的語(yǔ)句是(A)。
A)a+1=4;
B){a+++ +4;a/=4}
C);
D)printf(“a+1=4”);22.如下程序的執(zhí)行結(jié)果是(B)。
main()
{ int x=023;
printf(“%dn”,--x);}
A)17
B)18
C)23
D)24 23.以下程序的輸出結(jié)果是(D)。
main()
{char x=040;
printf(“%dn”,x=x<<1);}
A)100
B)80
C)120
D)64
24.假如一個(gè)整型變量的最大允許值為32767,那
么運(yùn)行如下程序后屏幕上會(huì)輸出的結(jié)果是(B)
main()
{ int a,b;
a=32767;
b=a+1;
printf(“%d,%d”,a,b);
}
A)32767,32768 B)32767,-32768 C)
32767,0 D)運(yùn)行時(shí)報(bào)錯(cuò)
25.已知字母A的ASCII碼為十進(jìn)制的65,下面程序的輸出是C main()
{ char ch1,ch2;ch1=''A''+''5''-''3'';
ch2=''A''+''6''-''3'';
printf(“%d,%cn”,ch1,ch2);
}
A)67,D
B)B,C
C)C,D
D)不確定的值
26.請(qǐng)讀程序片段:int i=65536;printf(“%dn”,i);上面程序片段的輸出結(jié)果是(B)。A)65536
B)0
C)有語(yǔ)法錯(cuò)0,無(wú)輸出結(jié)果
D)-1 27.在下列程序段中:
int x, y;
scanf(“%3d*2d%d”,&x,&y);
若輸入的數(shù)據(jù)為:12345678
A)123,456
B)123,678
C)12345 678
D)無(wú)法得到正確的值
28.有如下程序,輸入數(shù)據(jù)12 345
#include
scanf(“%3d%f”,&x,&y);}
(A)12.000000
(B)345.000000
(C)12345.000000
(D)0.000000 29.有如下程序,若要求a1,a2,c1,c2的值分別為10,20,A,B,正確的數(shù)據(jù)輸入是(D)
main()
{int a1,a2;
char c1,c2;
scanf(“%d%d”,&a1,&a2);
scanf(“%c%c”,&c1,&c2);
}(A)1020AB
(B)10 20
(D)10 20AB
int x=-1;
printf(“%d,%u,%o”,x,x,x);
A)-1,65535,177777
B)-1,-1,-1 C)-1,32767,-177777
D)-1,32768,177777
31.若有定義int a=3;則執(zhí)行完printf(“%d”,-a--);語(yǔ)句后,a 的值為(B)。
A)-
3B)
2C)-2
D)3 32.以下程序的輸出結(jié)果是(C)。int x=3,y=4;void main(){ int x,y=5;
x=y++;
printf(“%d”,x);}
A)3
B)
4C)
5D)6
33.設(shè)有如下定義:int x=10,y=3,z;則語(yǔ)句:
z=(x%y,x/y));
printf(“%dn”,Z);
的輸出結(jié)果是(D)
A)B)0
C)4
D)3
34.以下程序的輸出結(jié)果是(D).main()
{ int a=3;
printf(“%dn”,(a+a-=a*a));}
A)-6
B)12
C)0
D)–12
35.設(shè)有定義:int x=1,y=-1;則語(yǔ)句:
printf(“%dn”,(x--&++y);的輸出結(jié)果是(B).A)1
B)0
C)-1
D)2
36.設(shè)有如下定義: int x=10,y=3,z;則語(yǔ)句: printf(“%dn”,z=x%y,x/y));的輸出結(jié)果是
(D)。
A)1
B)0
C)4
printf(“n=%dn”,n);}
A)30
B)24
C)60
D)48 D)3
42.下面程序的運(yùn)行結(jié)果是(B)
37.下列程序的輸出結(jié)果是(A)
main()
main()
{ double
{int x=0,y=0;
while(!x)y+=++x;
printf(“%dn”,y);
}
d=3.2;
int x,y;
x=1.2;
y=(x+3.8)/5.0;
printf(“%d n”, d*y);
}
A)3
B)3.2
C)0
D)3.07
38.已知E的ASCII碼是69,則執(zhí)行以下語(yǔ)句的結(jié)果是(A)。
printf(“%c”,''D''-''8''+''5'');
A)66
B)A
C)B
D)E 39.執(zhí)行下面程序后,n的值為(C)。
main()
{int n,a=2,b=3,c=4;
n=(a
n=(n>b)?b:c;
n=(n A)5 B)4 C)3 D)2 40.以下程序執(zhí)行完后,a 的值為(C) #inlcude void main() {int a; printf(“%dn”,(a=3*5,a*4,a+5));} A)65 B)20 C)15 D)10 41.下面程序的運(yùn)行結(jié)果是(B) main() {int n; (n=6*4,n+6),n*2; A)1 B)0 C)控制表達(dá)式非法 D)程序執(zhí)行無(wú)限次 43.下面程序的運(yùn)行結(jié)果是(B) main() {int n,a=2,b=3,c=4; n=(a n=(n>b)?b:c; } A)5 B)4 C)3 44.以下程序的運(yùn)行結(jié)果為 (C) 。D)2 main() {unsigned a=3,b=10; printf(“%dn”,a<<2|b>>1);} A)3 B)10 C)13 D)14 45.以下程序的運(yùn)行結(jié)果為(A)。 main() {int x=17,y=26; printf(“%d”,y/=(x%=6));} A)5 B)8 C)2 D)26 46.以下程序的輸出是(B). main() {int a,b,d=241; a=d/100%9; b=(-1)&&(-1); printf(“%d,%dn”,a,b);} A)6,1 B)2,1 C)6,0 D)2,0 47.下列程序段的輸出結(jié)果是(A)。 int x=1 , y=1 , z;z=1||++x&&y--; printf(“n%d,%d,%d”,x,y,z); A)1,1,1 B)2,0,1 C)2,1,1 D)2,0,0 48.下列程序的運(yùn)行結(jié)果是(B). #include main() {unsigned a,b,c; a=0x255;b=a<<4; x=(~b)&0xff; printf(“%f”,x);} a++<=25&&b--<=2&&c++ ? A)0x55 B)0xaf C)0x50 pritnf(“%d,%d,%dn”,a,b,c):printf(“%d,%d,%dn”,a,b,D)0xda 49.若有定義int a=25,b=14,c=19;則以下三目運(yùn)算符構(gòu)成的語(yǔ)句的執(zhí)行結(jié)果是(B) 三、多選題 1.結(jié)構(gòu)化程序設(shè)計(jì)思想應(yīng)該包括(ABCD)。 (A)使用順序、分支、循環(huán)三種基本結(jié)構(gòu);(B)限制使用goto語(yǔ)句; (C)應(yīng)該使用自頂向下、逐步求精的方法;(D)應(yīng)該使用模塊化的方法; (E)編碼過程中,變量名的命名只要程序員自己明白就可以了; c); A)25,14,19 B)26,13,19 C)25,13,19 D)26,14,19 2.2.對(duì)于scanf()函數(shù),下列說法正確的是(ABD)。 A)如果相鄰格式符之間沒有數(shù)據(jù)分隔,則對(duì)應(yīng)的輸入數(shù)據(jù)之間可用空格、回車分隔。B)輸入數(shù)據(jù)時(shí)不能指定精度。 C)在用格式說明符“%c”輸入單個(gè)字符時(shí),空格字符和轉(zhuǎn)義字符是無(wú)效字符,即不能被輸入。D)遇到空格、或者回車時(shí),系統(tǒng)認(rèn)為一個(gè)數(shù)據(jù)輸入結(jié)束。 3.3.已知ch是字符型變量,下面正確的賦值語(yǔ)句是(BC)。 A)ch=''123''; B)ch=''xff''; C)ch=''t''; D)ch=“"; 4.4.若有定義int a,b;float x;,則以下不正確的賦值語(yǔ)句是(ACD)。 A)a=1,b=2,B)b++; C)a=b= 5D)b=int(x); 四、填空題 1.在C語(yǔ)言中沒有固有的輸入和輸出語(yǔ)句,但是用C語(yǔ)言編寫的程序可以用函數(shù)調(diào)用的形式來(lái)實(shí)現(xiàn)輸入、輸出,這些函數(shù)由(標(biāo)準(zhǔn)I/O庫(kù)/系統(tǒng))提供。 2.語(yǔ)句printf(”%d“,(a=2)&&(b=-2));的輸出結(jié)果是____1________。3.執(zhí)行以下程序段后,a 的值是______1____.int a;a=-2*4%-5/2; 五、閱讀程序 1.下列程序的運(yùn)行結(jié)果是(3 2 1). main() {int x=1; {int x=2; {int x=3; printf(”%d“,x); } printf(”%d“,x); } printf(”%d",x); } 一、判斷題 1.在函數(shù)定義中,形參變量有時(shí)也可以是全局變量。(× 2.在C程序中,函數(shù)調(diào)用可以作為函數(shù)的形參?!?3.在C程序中,函數(shù)調(diào)用可以作為函數(shù)的實(shí)參。√ 4.在C程序中,函數(shù)的形式參數(shù)是指針類型時(shí),調(diào)用時(shí)對(duì)應(yīng)的實(shí)參也必須是指針類型?!?/p> 5.對(duì)任一變量一旦被指定為某一確定類型后,該變量在程序運(yùn)行時(shí)所占存儲(chǔ)空間的 多少和所能參加的運(yùn)算類型便已確定了。(√ 6.C語(yǔ)言程序必須包含庫(kù)函數(shù)。(× 7.如果被定義函數(shù)的返回值是整型,可以不必進(jìn)行說明。(√ 8.一個(gè)計(jì)算機(jī)系統(tǒng)中的寄存器數(shù)目有限,不能定義任意多個(gè)寄存器變量。(√ 9.return語(yǔ)句可以帶有表達(dá)式也可以不帶。(√ 10.若某自定義函數(shù)中無(wú)return語(yǔ)句,則該函數(shù)一定沒有返回值?!?/p> 11.在C語(yǔ)言中,變量的初始化都是在編譯階段完成的。× 12.在同一源文件中,全局變量與局部變量同名,在局部變量作用范圍內(nèi),全局變量的值等于局部變量的值。× 13.return語(yǔ)句作為函數(shù)的出口,在某一個(gè)函數(shù)體內(nèi)必須唯一。(× 14.C語(yǔ)言程序必須包含庫(kù)函數(shù)。(× 15.C語(yǔ)言中,任意兩個(gè)函數(shù)間不能嵌套定義,但可以互相調(diào)用。(× 16.在函數(shù)的定義中,若函數(shù)沒有參數(shù),則可以省略函數(shù)名后的括號(hào)。× 17.函數(shù)返回值的數(shù)據(jù)類型取決于return語(yǔ)句中表達(dá)式的數(shù)據(jù)類型。× 18.函數(shù)返回值的數(shù)據(jù)類型取決于主調(diào)函數(shù)傳遞過 來(lái)的實(shí)參的數(shù)據(jù)類型。× 19.函數(shù)返回值的數(shù)據(jù)類型取決于函數(shù)定義時(shí)為函數(shù)指定的數(shù)據(jù)類型。√ 20.在C程序中,函數(shù)的形式參數(shù)是指針類型時(shí),調(diào)用時(shí)對(duì)應(yīng)的實(shí)參也必須是地址量?!?/p> 21.C程序中,函數(shù)調(diào)用時(shí)用數(shù)組名作為函數(shù)的實(shí)參,則傳遞給形參的是整個(gè)數(shù)組。× 22.C程序中,函數(shù)調(diào)用時(shí)用數(shù)組名作為函數(shù)的實(shí)參,則傳遞給形參的是數(shù)組的首元素值?!?23.C程序中,函數(shù)調(diào)用時(shí)用數(shù)組名作為函數(shù)的實(shí)參,則傳遞給形參的是數(shù)組的首地址值?!?24.求n!既可以用遞歸的方式,也可以用遞推的方式。(√ 25.遞歸函數(shù)在實(shí)現(xiàn)過程中,要使用“堆?!边@種數(shù)據(jù)結(jié)構(gòu)來(lái)保存遞歸調(diào)用過程中的值?!?/p> 26.在C語(yǔ)言中,所有函數(shù)之間都可以相互調(diào)用。×27.一個(gè)C程序無(wú)論有多少個(gè)源程序文件組成,在其中一個(gè)源程序文件中定義的全局變量的作用域默認(rèn)為整個(gè)C程序?!?/p> 28.一個(gè)C程序無(wú)論有多少個(gè)源程序文件組成,在其中一個(gè)源程序文件中定義的全局變量的作用域默認(rèn)為其所在的源程序文件?!?/p> 29.在C程序的主函數(shù)main中定義的變量就是全局變量?!?/p> 30.在C程序的主函數(shù)main中定義的變量也是局部變量?!?/p> 31.在函數(shù)定義中,形參變量是局部變量?!?32.在函數(shù)定義中,形參變量可以是靜態(tài)變量?!?33.在一個(gè)函數(shù)定義中,只能有一個(gè)return語(yǔ)句?!?4.在一個(gè)函數(shù)定義中,可以根據(jù)需要使用多個(gè)return語(yǔ)句?!?/p> 35.在C程序中,函數(shù)可以嵌套定義,也可以嵌套 調(diào)用?!?/p> 36.在C程序中,函數(shù)不能嵌套定義,但可以嵌套調(diào)用?!?/p> 37.在C程序中,函數(shù)既不能嵌套定義,也不能嵌套調(diào)用?!?/p> 38.在C程序中,函數(shù)調(diào)用只能作為單獨(dú)語(yǔ)句出現(xiàn)?!?/p> 39.在C程序中,函數(shù)調(diào)用不能作為單獨(dú)語(yǔ)句出現(xiàn)?!?/p> 40.在C程序中,函數(shù)調(diào)用只能出現(xiàn)在表達(dá)式語(yǔ)句中?!?/p> 41.在C程序中,函數(shù)調(diào)用不能出現(xiàn)在表達(dá)式語(yǔ)句中。× 42.在C程序中,函數(shù)調(diào)用既可以出現(xiàn)在表達(dá)式語(yǔ) 二、單選題 1.C語(yǔ)言中,以下敘述中錯(cuò)0的是(A)。A)主函數(shù)中定義的變量是全局變量 B)同一程序中,全局變量和局部變量可以同名 句中,也可以作為單獨(dú)的語(yǔ)句出現(xiàn)。√ 43.在C函數(shù)中,形參可以是變量、常量或表達(dá)式?!?/p> 44.在C程序中,實(shí)參可以是變量、常量或表達(dá)式?!?/p> 45.C語(yǔ)言規(guī)定,函數(shù)調(diào)用時(shí),若形參和實(shí)參都是簡(jiǎn)單變量,則它們之間的數(shù)據(jù)傳遞方式是雙向值傳遞?!?/p> 46.C語(yǔ)言規(guī)定,函數(shù)調(diào)用時(shí),若形參和實(shí)參都是簡(jiǎn)單變量,則它們之間的數(shù)據(jù)傳遞方式是單向值傳遞?!?/p> 47.如果一個(gè)函數(shù)只能被本文件中的其他函數(shù)所調(diào)用,則該函數(shù)為外部函數(shù)?!罜)全局變量的作用域從定義處開始到本源程序文件結(jié)束 D)局部變量的作用域被限定在其所定義的局部范圍中 2.C語(yǔ)言中,以下敘述正確的是()。A)函數(shù)不能嵌套定義但可以嵌套調(diào)用 B)函數(shù)可以嵌套定義也可以嵌套調(diào)用 C)函數(shù)可以嵌套定義但不能嵌套調(diào)用 D)函數(shù)不能嵌套定義也不能嵌套調(diào)用 3.C語(yǔ)言中,函數(shù)調(diào)用時(shí)若實(shí)參是數(shù)組名,則被調(diào)函數(shù)對(duì)應(yīng)形參()。A)可以是相應(yīng)類型簡(jiǎn)單變量 B)必須是相應(yīng)類型數(shù)組名 C)可以是相應(yīng)類型數(shù)組名 D)必須是相應(yīng)類型的指針變量 4.C語(yǔ)言中,函數(shù)調(diào)用時(shí)若實(shí)參是數(shù)組名,則被調(diào)函數(shù)對(duì)應(yīng)形參(D)。A)可以是相應(yīng)類型簡(jiǎn)單變量 B)必須是相應(yīng)類型的指針變量 C)必須是相應(yīng)類型數(shù)組名 D)可以是相應(yīng)類型的指針變量 5.在下面C語(yǔ)言的函數(shù)說明語(yǔ)句中,正確的是()。A)int fun(int , int); B)int fun(int x,y);C)int fun(x,y); D)int fun(int x;int y);6.在C程序中,如果限定一個(gè)局部變量只能在所定義的范圍中起作用,那么這個(gè)變量的存儲(chǔ)類型(C)。A)只能是auto B)只能是extern C)可以是auto或static D)可以是extern或static 7.在C語(yǔ)言中,若定義函數(shù)時(shí)未說明函數(shù)的類型,則該函數(shù)的數(shù)據(jù)類型為(A)。A)int B)float C)char D)double 8.在C語(yǔ)言中,函數(shù)默認(rèn)的存儲(chǔ)類型為(D)。A)auto B)register C)static D)extern 9.C語(yǔ)言中規(guī)定,簡(jiǎn)單變量做實(shí)參時(shí),它和對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是(B)。 (A)地址傳遞 (B)單向值傳遞 (C)有實(shí)參傳給形參,再由形參傳回給實(shí)參 (D)由用戶指定傳遞方式 10.如果在C程序中有main(int argc,char *argv[]),那么(D)是指命令行中的參數(shù)個(gè)數(shù)。 (A)argv (B)argv[] (C)argc,argv[] (D)argc 11.如果程序中有static char c;則編譯程序會(huì)對(duì)其自動(dòng)設(shè)置初值為(D)。 (A)''n'' (B)“n” (C)0 (D)''
第二篇:c語(yǔ)言備考習(xí)題及部分答案