《c语言程序设计试题库(共144页).doc》由会员分享,可在线阅读,更多相关《c语言程序设计试题库(共144页).doc(144页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上C语言程序设计试题库一、选择题(共250个,每题2分)1、一个c语言程序的执行是从( ) A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束2、一个c语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子函数组成3、以下选项中是正确的整型常量是( )A、12 B、 -20 C、 1,000 D、 4 5 64、以下选项中正确的实型常量是( )A、0
2、B、 3. 1415 C、 0.329*102 D、.8715、以下选项中不合法的实型常量是( )A、 2.607E-1 B、0.8103*12 C、-77.77 D、456e-26、以下选项中不合法的字符串是( )A、abc B、”1212” C、 “0” D、” ”7、下面正确的字符常量是( )A、”c” B、 C、 w D、 8、以下选项中不合法的用户标识符是( )A、 abc.c B、file C、Main D、PRINTF9、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )A、必须为字母 B、 必须为下划线 C、必须为字母或下划线 D、可以是字母、数字和下划线
3、中任意一种字符10、以下选项中不合法的用户标识符是 ( )A、_123 B、 printf C、 A$ D、 Dim11、c语言中运算对象必须是整型的运算符是( )A、% B、 / C、 ! D、 * 12、可在C程序中用作用户标识符的一组标识符是( )A、nt B、 as-b3 C、 Fir D、 2cdefine -123 _bc DOWORD if name SIG13、若变量已正确定义并赋值,符合C语言语法的表达式是( )A、 a=a+7; B、a=7+b+c,a+ C、 int(12.3%4) D、 a=a+7=c+b14、若a,b,c,d都是int类型变量且初值为0,以下选项中不正
4、确的赋值语句是( )A、a=b=c=100; B、d+; C、c+b; D、d=(c=22)-(b+);15、若x、i、j和k都是int变量,则计算下面表达式后,x的值是( )x=(i=4,j=16,k=32)A、4 B、16 C、32 D、 5216、假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是( )A、7 B、8 C、 6 D、 217、若有代数表达式a2.b2,则正确的c语言表达式是( )A、a*b B、pow(a,2).pow(b,2) C、a*a.b*b D、(a*a)*(b*b)18、若有代数表达式,则不正确的c语言表达式是( )A、a/b/c*e*3 B、
5、3*a*e /b/c C、3*a*e /b*c D、a*e/c /b *319、 若有定义:int a=8,b=5,c;执行语句c=a/b+0.4;后,c的值为( )。A、1.4 B、1 C、2.0 D、220、char型数据在内存中的存储形式是( )A、补码 B、反码 C、原码 D、ASCII码21、设变量a是整型,f是实型,i是双精度,则表达式10+a+i*f值的数据类型为( ) A、int B、float C、double D、不确定22、 若有定义:int a=7;flaot x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。A、2. B、2. C、
6、3. D、0.23、 若变量a是int类型,并执行了语句:a=A+1.6;则正确的叙述是( )。A、a的值是字符C B、a的值是浮点型 C、不允许字符型和浮点型相加 D、a的值是字符A的ASCII值加上124.、以下选项中合法的字符常量是( )。 A、“B” B、 010 C、68 D、D25、以下选项中不是C语句的是( )A、int i;i+;printf(“%dn”,i); B、;C、 a=5,c=10 D、 ;26、以下合法的C语言赋值语句是( )A、a=b=58 B、 k=int(a+b) C、 a=58, b=58 D、 -i;27、以下程序的输出结果是( )A、0 B、1 C、3
7、D、不确定的值main ()int x=10,y=3;printf(“%dn”,y=x/y);28、设c语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为( ) A、0255 B、032767 C、065535 D、029、若变量已正确定义为int类型,要给a、b、c输入数据,以下正确的输入语句是( )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);30、若变量已正确定义为float类型,要通过赋值语句scanf(“%f
8、%f%f”,&a,&b,&c)给A赋值10,B赋予22,C,赋予33,以下不正确的输入形式是( )A、 10 B、10.0,22.0,33.0 C、10.0 D、10 2222 22.0 33.0 33 3331、设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为( ) A、float B、 char C、int D、 double32、若变量已正确定义,要将a和b中的数进行交换,下面选项中不正确的是( ) 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;3
9、3、若变量已正确定义,以下程序段的输出结果是( )A、输出格式说明与输出项不匹配,输出无定值 B、5. C、5. D、5.x=5.16894;printf(“%fn”,(int)(x*1000+0.5)/(float)1000);34、若有以下程序段,c3的值是( )A、0 B、1/2 C、0.5 D、1int c1=1,c2=2,c3;c3=c1/c2;35、若有以下程序段,其输出结果是( )A、 0,0,-10 B、0,0,5 C、-10,3,-10 D、3,3,-10int a=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(“%d,%d,%dn”,a,b,c
10、);36、若已知变量的类型说明如下:int k,a,b; unsinged long w=5; double x=1.42;则以下不符合c语言的表达式是( ) A、x%(-3) B、w+=-2 C、k=(a=2,b=3,a+b) D、a+=a-=(b=4)*(a=3)37、以下程序的输出结果是( )A、a=%2, b=%f B、a=2,b=5 C、a=%d,b=%d D、a=%d,b=%dmain() int a=2,b=3; printf(“a=%d,b=%dn”,a,b); 38、 若int 类型占两个字节,则以下程序段的输出是( )A、 1,-1 B、 1,32767 C、 1,3276
11、8 D、 1,65535int a=-1;printf(“%d,%un”,a,a);39、下列运算符中优先级最高的运算符是( )A、! B、% C、-= D、&40、下列运算符中优先级最低运算符是( )A、| B、!= C、= D、+41、为表示关系 xyz, 应使用的C语言表达式是( )A、 (x=y)&(y=z) B、(x=y)AND(y=z)C、 (x=y=z) D、(x=y)&(y=z)42、若有以下定义,则能使值为3的表达式是( ) int k=7,x=12;A、x%=k-k%5) B、x%=(k%=5) C、 x%=(k-k%5) D、(x%=k)-(k%=5) 43、 设a、b、
12、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)&(n=cd)运算后,n的值为( )。 A、0 B、1 C、2 D、344、 假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(wx)?w:x;m=(my)?m:y;m=(mz)?m:z;则该程序运行后,m的值是( )。 A、4 B、3 C、1 D、245、以下程序的输出是( )A、0 B、1 C、2 D、3main() int a=2,b=-1,c=2; if(ba) ;if(b0) c=0;printf(“%dn”,c); 46、设a
13、,b 和c 都是int 型变量,且 a=3,b=4,c=5;则以下的表达式中,值为0的表达式是( )A、 a&b B、 a=b C、 a|b+c&b-c D、 !(ab)&!c|1)47、以下程序的输出是( )A、0 B、1 C、2 D、3main() int a=2,b=-1,c=2; if(ab)if(b0) c=0;else c+=1;printf(“%dn”,c);48、以下程序的输出是( )A、1 B、2 C、3 D、4main() int w=4,x=3,y=2,z=1; printf(“%dn”,(wx?w:zy) z=x;x=y;y=z;A、x=10,y=20,z=30 B、x
14、=20,y=30,z=30 C、x=20,y=30,z=10 D、x=20,y=30,z=2050、以下程序的运行结果是( )main( )int m=5;if(m+5)printf(“%dn”,m);else printf(“%dn”,m-); A、4 B、5 C、6 D、751、若执行以下程序时从键盘上输入3和4,则输出结果是( )A、14 B、16 C、18 D、20 main() int a,b,s;scanf(“%d%d”,&a,&b);s=a;if(ab) s=b;s*=s;printf(“%dn”,s);52、运行以下程序,输出( )A、* B、&C、#& D、有语法错误不能通过
15、编译 main() int k=-3;if(k=0)printf(“*n”);else printf(“&n”);53、以下程序的输出结果是 ( ) main() int x=2,y=-1,z=2; if(xy) if(yy); B、if(x=y)&(x!=0) x+=y ; C、if(xy)x+;y+; D、if(x!=y) scanf(“%d”,&x);else scanf(“%d”,&y);56、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( ) if(ab) if(ad)x=1; else if(ac) if(bd) x=2; else x=3; else x=6;
16、 else x=7;A、1 B、2 C、3 D、657、以下程序段,int k=10;while(k=0)k=k+1;则下面描述中正确的是( )。A、while循环执行10次 B、循环是无限循环C、循环体语句一次也不执行 D、循环体语句执行一次58. 以下程序中,while循环的循环次数是( )。 main() int i=0; while(i10) if(i1) break; i+; A、1 B、10 C、6 D、死循环,不能确定次数59、以下程序中,while循环的循环次数是( )。 main() int i=0; while(i10) if(i1) contimue; if(i=5) b
17、reak; i+; A、1 B、10 C、6 D、死循环,不能确定次数60、若执行以下程序时从键盘上输入9,则输出结果是 ( ) A、 11 B、 10 C、 9 D、 8 main() int n; scanf(%d,&n); if(n+10) printf(%dn,n); else printf(%dn,n-); 61、有以下程序段( ) int k=0 while(k= =1)k+; while 循环执行的次数是 A、 无限次 B、 有语法错,不能执行 C、 一次也不执行 D、 执行1次62、对于下面,两个循环语句,( )是正确的描述。 while(1) ; for( ; ; ) ;A、
18、都是无限循环 B、是无限循环,错误C、循环一次,错误 D、皆错误63、语句while(!E);中的表达式!E等价于( ) A、E=0 B、E!=1 C、E!=0 D、E=164、下面程序段运行结果是( ) x=y=0;while(x15) y+,x=x+(+y); pirntf(“%d,%d”,y,x); A、20,7 B、6,12 C、20,8 D、8,2065、设有以下程序段 int x=0,s=0;while(! x!=0) s+=+x;printf(“%d”,s); 则( ) A、运行程序段后输出0 B、运行程序段后输出1 C、程序段中的控制表达式是非法的 D、程序段执行无限次66、下
19、面程序段的运行结果是( ) int n=0; while(n+=2); printf(“%d”,n); A、2 B、3 C、4 D、有语法错误67、下面程序的运行结果是( ) #include main( ) int num=0; while(num=2) num+;printf(“%d ”,num); A、1 B、1 2 C、1 2 3 D、1 2 3 468、c语言中while和do-while循环的主要区别是( ) A、do-while的循环体至少无条件执行一次 B、while的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内 D、do-whi
20、le的循环体不能是复合语句69、下面有关for循环的正确描述是( ) A、for循环只是能用于循环次数已经确定的情况B、for循环是先执行循环体语句,后判断表达式C、在for循环中,不能用break语句跳出循环体D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来70、对for(表达式1; ;表达式3)可以理解为( ) A、for(表达式1;0;表达式3) B、for(表达式1;表达式1;表达式3C、for(表达式1;1;表达式3) D、for(表达式1;表达式3;表达式3)71、若i为整型变量,则以下循环执行次数是( ) for(i=2;i=0;) printf(“%d”,i
21、-); A、无限次 B、0次 C、1次 D、2次72、下面程序的运行结果是( )#include main( ) int y=10; do y-; while(-y); printf(“%dn”,y-); A、-1 B、1 C、8 D、073、下面程序的运行结果是( )#include main( ) int a=1,b=10; do b-=a;a+; while(b-0); printf(“a=%d,b=%dn”,a,b); A、a=3,b=11 B、a=2,b=8 C、a=1,b=-1 D、a=4,b=974、下面程序段的运行结果是( )for(y=1;y100)break; B、for(
22、;)C、int k=0; do+k; while(k=0); D、int s=36;while(s);-s;76、以下程序段输出结果是( )A、 9 B、1 C、11 D、10int k, j, s;for (k=2;k6;k+,k+) s=1; for(j=k; j6;j+) s+=j;printf(“%dn”,s);77、以下程序段输出结果是( )A、12 B、15 C、20 D、25int i, j,m=0;for (i=1;i=15;i+=4) for(j=3;j7) n-; printf(“%dn”,n); 79、以下程序段输出结果是( )A、 1 B、3 0 C、1 2 D、死循环
23、int x=3;do printf(“%3d” , x-=2);while(!(-x);80、以下程序段输出结果是( )A、15 B、14 C、不确定 D、0main() int i, sum; for(i=1;i0;y-) if(y%3=0) printf (“%d”,-y) ;continue; 82、若x是int型变量,以下程序段的输出结果是( )A、 *3 B、#3 C、#3 D、*3#4#4 *4 *4#5 *5*5 #5for(x=3; x6;x+)printf (x%2)?(“*%d”):(“#%dn”),x);83、以下程序的输出结果是( )A、*#*#*#$ B、#*#*#*
24、$ C、*#*#$ D、#*#*$main() int i; for(i=1; i=5; i+) if (i%2) printf(“*”); else continue; printf(“#”);printf(“$n”);84、 以下叙述不正确的是( )A、do-while语句构成的循环不能用其他语句构成的循环来代替。B、do-while语句构成的循环只能用break语句退出。C、用do-while语句构成循环时,只有在while后的表达式为非零时结束循环。D、用do-while语句构成循环时,只有在while后的表达式为零时结束循环85、C语言中的简单数据类型有( ) A、 整型、实型、逻辑
25、型 B、 整型、实型、字符型 C、 整型、字符型、逻辑型 D、 整型、实型、逻辑型、字符型86、C语言中,字符(char)型数据在微机内存中的存储形式是( ) A、 反码 B、 补码 C、 EBCDIC码 D、 ASCII码87、设有定义语句char a=72;,则变量a( ) A、 包含1个字符 B、 包含2个字符 C、 包含3个字符 D、 包含4个字符 88、C语言中不合法的字符常量是( ) A、xff B、65 C、& D、028 89、C语言中不合法的字符串常量是( ) A、“121” B、y= C、 “nn” D、“ABCDx6d”90、判断char型变量c是否为大写字母的最简单且正
26、确的表达式是:( ) A、A=c=A)&(c=Z) C、(A=c) D、 ( c=A)&(c=A&xb) c=1;else if(a=b) c=0;else c=-1;return(c); 96、以下程序的输出结果使( )A、0 B、1 C、6 D、无定值fun( int a, int b, int c) c=a*b; main() int c;fun(2,3,c);printf(“%dn”,c); 97、以下程序的输出结果是( )A、5. B、3. C、4. D、8.25double f(n) int i; double s;s=1.0;for(i=1; i=n; i+) s+=1.0/i;
27、return s; main() int i,m=3; float a=0.0;for(i=0;im;i+) a+=f(i);printf(“%fn”,a); 98、以下程序的输出结果是( )A、因变量无定义输出不定值 B、0 C、-1 D、1#include “stdio.h”main() printf(“%dn”,NULL) ;99、以下程序的输出结果是A、5,2,3 B、-5,-12,-7 C、-5,-12,-17 D、5,-2,-7void sub(int x, int y, int *z) *z=y-x;main() int a,b,c; sub(10,5,&a); sub(7,a,
28、&b); sub(a,b,&c); printf(“%d,%d,%dn”,a,b,c); 100、以下程序的输出结果是( )A、4 B、6 C、8 D、10main() int k=2, m=4, n=6; int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm) printf(“%dn”,n); 101、以下程序的输出结果是( )A、 4,3 B、2,3 C、 3,4 D、 3,2 void fun (float *a, float *b) float w ;*a= *a+*a;w=*a; *a=*b; *b=w; main() float x=2.0, y=3.0;f
29、loat *px=&x, *py=&y;fun(px,py);printf(“%2.0f,%2.0fn”,x,y);102、以下程序的输出结果是( )A、 9. B、 1. C、 8. D、 10.void sub (float x, float *y, float *z) *y= *y-1.0;*z= *z+x;main() float a=2.5,b=9.0 , *pa, *pb;pa=&a; pb=&b;sub (b-a, pa , pa);printf (“%fn”, a);103、在c语言中,引用数组元素时,其数组下标的数据类型允许是( ) A、整型常量 B、整型表达式 C、整型常量
30、或整型表达式 D、任何类型的表达式 104、以下对一维整型数组a的正确说明是( ) A、int a(10); B、int n;scanf(“%d”,&n);int an; C、int n=10,an; D、#define SIZE 10 int SIZE; 105、以下能对一维数组a进行正确初始化的语句是( )。A、int a10=(0,0,0,0,0); B、int a 10=; C、int a=10,12,56; D、int a=10*1;106、以下对二维数组a的正确说明是( )。A、int a3; B、float a (3,4); C、double a14; D、float a(3)(
31、4);107、若有说明:int a34;则对a数组元素的正确引用是 ( ) 。A、a24 B、a1,3 C、a1+10 D、a(2)(1)108、若有说明:int a34;则对a数组元素的非法引用是( )。A、a02*1 B、a13 C、a4-20 D、a04109、以下能对二维数组a进行正确初始化的语句是( )。A、int a2=1,0,1,5,2,3; B、int a3=1,2,3,4,5,6;C、int a24=1,2,3,4,56; D、int a3=1,0,1,1,1;110、以下不能对二维数组a进行正确初始化的语句是( )。A、int a23=0; B、int a3=1,2,0; C、int a23=1,2,3,4,5,6; D、int a3=1,2,3,4,5,6;111、 若有说明:int a34=0;则下面正确的叙述是( )。A、只有元素a00可得到初值0 B、数组a中每个元素均可得到初值0C、数组a中各元素都可得到初值,但不一定为0 D、此说明语