《c语言题库(整理).doc》由会员分享,可在线阅读,更多相关《c语言题库(整理).doc(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-作者xxxx-日期xxxxc语言题库(整理)【精品文档】C语言程序设计课程(题型:选择题)序号试题内容1 以下斜述正确的是(c )A)在C程序中,main函数必须位于程序的最前面。 B)在C程序中每行只能写一条语句。 C)C语言本身没有输入输出语句。 D)在对C程序进行编译过程中,可以发现注释中的拼写错误。2printf函数中用到格式符%-5s,其中数字5表示输出的字符串占用5列,如果字符串长度小于5,则输出按方式( )A)从左起输出该字符串,右补空格。 B)按字符串长度从左到右全部输出。C)右对齐输出字符串,左补空格。 D)输出错误信息。3以下运算符中优先级最高的是( )A)- B)* C
2、)& D)!=4已知各变量的说明如下:int i=6,k,a,b;unsigned long w=5;double x=1.4,y=5.5;则以下符合C语言语法的表达式是( )A)a+=a-=(b=4)*(a=3) B)a=a*3=2 C)x%(-3) D)y=float(i)5若有以下定义,能使值为3的表达式是( )int k=7,x=12;A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5)6执行以下一段代码后,变量a,b,c的值分别是( ) int x=10,y=9; int a,b,c; a=(-x=y+)?-x:+y; b=x+; c
3、=y; A)a=9,b=9,c=9 B)a=8,b=8,c=10 C)a=9,b=10,c=9 D)a=1,b=11,c=107在C语言中,一维数组的定义为:类型说明符 数组名_。( )A)常量表达式 B)整型表达式 C)整型常量或整型表达式 D)整型常量8若用一维数组名作函数的实参,则以下说法正确的为( )A)实参数组类型和形参数组类型可以不匹配。B)实参数组名和形参数组名必须一致.C)形参数组可以不指定大小。D)把实参数组全部元素的值传递给形参数组。9以下对结构体变量stu1中成员age的非法引用是( ) struct student int age; int num; stu1,*p;
4、p=&stu1; A) stu1.age B) C) p-age D) (*p).age10若有宏定义如下:#define X 5#define Y X+1#define Z Y*X/2则执行以下printf语句后,输出的结果是( )int a; a=Y;printf(“%dn”,Z);printf(“%d”,-a);A)7 B)12 C)12 D)7 6 6 5 511以下关于宏替换的斜述不正确的是( )A) 宏替换不占用运行时间B) 宏名无类型C) 宏名必须用大写字母表示D) 对宏命令的处理是在连接时进行的12若有语句int a34=1,2,3,4,5,6,7,8,9,10,11,12则以
5、下说法不正确的是( )A) &a 表示指向二维数组的指针 B) a+1 表示第0行第1列元素首地址C) a1+2表示第1行第2列元素地址 D) *(a+i)与ai是等价的。13以下程序的输出结果是main() char c=z;printf(%c,c-25);A) a B) Z C) z-25 D) y14当说明一个共用体变量时系统分配给它的内存是( )A) 各成员所需内存量总和 B)共用体中第一个成员所需内存量C)成员中占内存最大者所需容量 D)共用体中第后一个成员所需内存量15以下说法正确的是( )如果在一个函数中的复合语句中定义了一个变量,则该变量A)只在该复合语句中有效 B)在该函数中
6、有效C)在本程序范围内有效 D)为非法变量16用C语言描述a大于b而且小于c( )A) bab|ab&ab,ac17以下变量名全部合法的是( )A) ABC、L10、A_B、_a1 B) ?123、print、*p、a+bC) _12、ZHANG、*P、11F D) Li_Li、P、for、10118正确的答案为( )main( )char grade; scanf(“%c”,&grade); switch(grade) case a:printf(“90100”); case b:printf(“8089”); case c:printf(“7079”); case d:printf(“60
7、69”); case e:printf(“不及格”); A) 输入:b 输出:8089 B) 输入:a 输出:90100C) 输入:c 输出:7079 D)输入:e 输出:不及格19以下程序输出的结果为( )main( )int i,sum=0; i=0; while (i6) i+; if (i=2|i=4)continue;sum=sum+i; printf(“%d”,sum);A) 15 B) 13 C) 9 D) 1420已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表( )A) 一个整型变量,代表要读入的数据项总数B) 一个文件指针,指
8、向要读的文件C) 一个指针,指向要读入数据的存放地址D)一个存储区,存放要读的数据项21执行语句c*=a+b (设有int a=4,b=2,c=2;)后,c的值为( )A) 8 B) 10 C) 12 D) 622以下正确的选项是( )A) 10+ B) (x+y)- - C) +(a1-b2) D) (d+)+(d+)23以下程序的输出结果为:( )main( ) int i,j,k,m;i=3; j=6; k=i+; m=+j; printf(“%d,%d,%d,%d”,i,j,k,m);A) 3,6,3,7 B) 4,7,4, C) 4,7,3,7 D) 3,6,3,624表达式3+(!
9、(46)& (3b);printf(“%d”,a); B) if(ab) else printf(“%d”,b); temp=a;a=b;b=temp; else printf(“%d”,temp);C) f(ab) D) if(ab) temp=a;a=b;b=temp; temp=a;a=b;b=temp; else printf(“%d”,temp); else printf(“%d”,temp);26以下程序的输出为( )main()int x=0,y=-1; if(x!=0) if(x0) y=1; else y=0; else y=5; printf(“%d”,y); A)1 B)
10、-1 C)0 D)527在C语言中,合法的字符常量是( ) A)184B)x43 C)abD)0 28若已定义x和y为double类型,则表达式:x=1,y=x3/2的值是 ( )A)1 B)2 C)2.0 29若t为double类型,表达式t=1,t5,t的值是( ) A)1 B)6.0 C)2.0 30若i、j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for (i=5;i;i) for(j=0;j4;j) A)20 B)24 C)25 D)3031设原来a=12, 则表达式a+=a-=a =a*a运算后a的值为( )A )24 B) -120 C) -264 D ) 03
11、2合法的数组定义是( ) A) static int a5=string; B) static int a5=0,1,2,3,4,5; C) static char a=string; D)static char a=65,66,67,68,69,70;33若有以下定义和语句: char cl=b,c2=e; printf(d,cn,c2c1,c2aA); 则输出结果是( ): A)2,M B)3,E C)2,ED)输出项与对应的格式控制不一致,输出结果不确定34下面正确的概念是( )A)数组名的规定与变量名不相同。 B)数组名后面的常量表达式用一对圆括弧括起来。C)数组名代表数组的首地址。D
12、)在C语言中,一个数组的数组下标从1开始。35在以下一组运算符中,优先级最高的运算符是( ) A)b)&(n=cd)运算后,n的值位为( )A) 0 B) 1 C)2 D)342以下是合法变量名的一组是( )A) a#bc B)4d C)f2_G3 D)a=b43阅读以下程序:main() int x; scanf(%d,&x); if(x-5) printf(%d,x); else printf(%d,x+);程序运行后,如果从键盘上输人5,则输出结果是( )A)3 B) 4 C) 5 D) 644假定w、x、y、z、m均为int型变量,有如下程序段:w=1; x=2; y=3; z=4;m
13、=(wx)?w: x; m=(my)?m:y; m=(mb?(ac?a:c):(b);A) 5 B) 4 C) 6 D)不确定49以下说法不正确的是( ):A)C程序是由函数构成的 B)一个C源程序可以包含一个或多个main()函数。C)C程序总是从main函数开始执行的,而不论main函数在整个程序中的位置。D)C程序中,每个语句和数据定义的最后都必须有一个分号。50执行下面的语句之后,x的值是( ):x=(x=3,6*3);A)3B)6C)18D)151下面表达式中a的值为( ):(a为int型,且原来它的值为12)a*=a-5+3A)10B)120C)142D)表达式错误52设x、y、t
14、均为int型变量,则执行语句:x=y=3;t=+x|+y;后,y的值为( )A)不定值 B)4 C)3 D)153有以下程序段int x=3do printf(%d,x-=2); while (!(-x);其输出结果是A) 1 B)3 0 C)1 -2 D)死循环54下面定义的数组a的数组元素个数是( ):int a46;A) 15 B)24 C)4 D)655有如下的定义并初始化,则数组元素a3的值是:int a4=23,12,3,65;A) 23 B)12 C)3 D)6556C语言中用于结构化程序设计的三种基本结构是:A、 顺序结构、择结构、循环结构B、 if、switch、breakC
15、、 for、while、do-whileD、 if、for、continue57以下运算符中优先级最高的是( )A) B)+ C)& D)!=58当a=1,b=3,c=5,d=4时,执行完以下一段代码后x的值为( )if(ab)if(cd) x=1;else if(ac)if(bd) x=2;else x=3;else x=6;else x=7;A)1 B)2 C)3 D)659执行以下一段代码后,变量a,b,c的值分别是( ) int x=10,y=9; int a,b,c; a=(-x=y+)?-x:+y; b=x+; c=y; A)a=9,b=9,c=9 B)a=8,b=8,c=10 C
16、)a=9,b=10,c=9 D)a=1,b=11,c=1060以下数组定义中不正确的是A) int a23; B) int b3=0,1,2,3;C) int c100100=0; D) int d3=1,2,1,2,3,1,2,3,4;61printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度小于5,则输出按方式( )A)左起输出该字符串,右补空格 B)字符串长度从左到右全部输出C)右对齐输出字符串,左补空格 D)输出错误信息62以下正确的选项是( )A)10+ B)(x+y)- - C)+(a1-b2) D)(d+)+(d-)63以下程序的输出结果为:( )
17、main( )int i,j,k,m; i=3; j=6; k=+i; m=j+i-; printf(“%d,%d,%d,%d”,i,j,k,m);A)3,6,3,10 B)4,7,4,9 C)3,7,3,11 D)3,6,4,1064表达式3+(!(71)| (3=7))的值为( )A)3 B)4 C)错误的表达式 D)565函数调用:strcat(strcpy(str1,str2),str3)的功能是( ) A)将串str1复制到串str2中后再连接到串str3之后 B)将串str1连接到串str2之后再复制到串str3之后 C)将串str2复制到串str1中后再将串str3连接到串str
18、1之后 D)将串str2连接到串str1之后再将串str1复制到串str3中66下面程序的输出是 main( ) unsigned a=32768; printf(a=dn,a); A)a=32768 B)a=32767 C)a=32768 D)a=167运行以下程序的结果为( )main( )int number=0;while (number100) break; B) for ( ; ; ) ;C) int k=0;do +k; while(k0);D) int s=36; while(s) ; -s;71判断字符串s1是否大于字符串s2,应当使用( )A)if(s1s2) B)if(s
19、trcmp(s1,s2) C)if(strcmp(s2,s1) D)if(strcmp(s1,s2)0)72以下关于宏替换的斜述不正确的是( )A)宏替换不占用运行时间 B)宏名无类型C)宏名必须用大写字母表示 D)对宏命令的处理是在连接时进行的73若有宏定义如下:#define X 5#define Y X+1#define Z Y+Y/2则执行以下printf语句后,输出的结果是( )int a; a=Y+2;printf(“%dn”,Z);printf(“%d”,-a);A)7 B)12 C)9 D)11 6 6 5 6 74若有语句int a34=1,2,3,4,5,6,7,8,9,1
20、0,11,12则以下说法不正确的是( )A)a 表示指向二维数组的指针 B)a+1 表示第1行首地址C)a1+2,与*(a+1)+2表示第1行第2列元素地址 D)*(a+2)与a2是等价的。 75以下程序的输出结果是main() int i, a10;for(i=9;i=0;i-) ai=10-i;printf(%d%d%d,a2,a5,a8);A) 258 B) 741 C) 852 D) 36976当说明一个结构体变量时系统分配给它的内存是( )A) 各成员所需内存量总和B) 结构体中第一个成员所需内存量C) 结构体占内存最大者所需容量D) 结构体第后一个成员所需内存量77可以作为函数fo
21、pen中第一个参数的正确格式是( )A)C)”c:usertext.text” D)”c:usertext.text”78已知函数的调用形式:fwrite(buffer,size,count,fp);其中buffer代表( )A)一个整型变量,代表要读入的数据项总数 B)一个文件指针,指向要读的文件C)一个指针,指向要读入数据的存放地址D) 一个指针,指向要输出数据的地址79以下说法不正确的是( )A、0|a=a B、1&a=a C 、1|a=1 D、0&a=a80下面正确的概念是( )A)数组名的规定与变量名不相同。 B)数组名后面的常量表达式用一对圆括弧括起来。 C)以数组名作为参数时,采
22、取的是“值传送”方式。D)在C语言中,一个数组的数组下标从0开始。81对数组初始化正确的方法是( )A)static int a(5)=1,2,3,4,5; B)static int a5=1,2,3,4,5;C)static int a5=15; D)static int a5=0,1,2,3,4,5;82若有说明:int i,j=7, *p=&i; 则与i=j;等价的语句是( )A)i= *P; B)*p=*&j; C)i=&j; D)i=* *p;83不能把字符串:Hello!赋给数组b的语句是( )A)char b10=H,e,l,l,o,!; B)char b10;b=Hello!;
23、C)char b10;strcpy(b,Hello!); D)char b10=Hello!;84若有以下说明:int a12=1,2,3,4,5,6,7,8,9,10,11,12;char c=a,d,g;则数值为4的表达式是( )A)ag-c B)a4 C)ad-c D)ad-c85若有以下说明:int a10=1,2,3,4,5,6,7,8,9,10,*p=a;则数值为6的表达式是( )A)*p+6 B)*(p+6) C)*p+=5 D)p+586若有以下说明( ):int w34=0,1,2,4,5,8;int(*p)4=w;则数值为4的表达式是A)*w1+1 B)p+,*(p+1)
24、C)w22 D)p1187若程序中有下面的说明和定义 struct abc int x;char y; struct abc s1,s2;则会发生的情况是( )A)编译进错 B)程序将顺利编译连接执行C)能顺利通过编译连接但不能执D)能顺利通过编译但连接出错88以下程序运行后,输出结果是( ) A )cde B)字符c的ASCLL码值 C) 字符C的地址 D) 出错 main( ) char *s=abcde; s+=2; printf(%ld n,s); 89以下程序输出结果是( ) A )7 B) 6 C)5 D)4 main ( ) int m=5; if (m+5) print (%d
25、n,m); else printf (%dn,m-); 90执行语句: for (i=1;i+4;);后,变量i的值是( ) A ) 3 B ) 4 C )5 D)不定91运行以下程序,如果从键盘上输入ABCDE,则输出结果为( ) A )8 B)7 C)6 D)5 #include fuch (char str ) int num =0;while (*(str +num )!=0)num +; return(num ); main() char str 10,*p=str ; gets(p); printf(%dn,func(p); 92运行以下程序后,如果从键盘上输入china#,则输出
26、结果为( )A )2,0 B)5,0 C) 5,5 D)2,5 #include main( ) int v1=0,v2=0; char ch ; while (ch=getchar()!=#) switch (ch ) case a: case h: default: v1+; case 0: v2+; printf(%d,%dn,v1,v2);93以下程序运行后,输出结果是A) 49.5 B )9.5 C)22.0 D) #include #difine s(x) PT*x*x main() int a=1,b=2; print (%4.lf/n,S(a+b); 94以下程序执行后a的值是
27、( )A)4 B)1 C)0 D) a无定值 main() int a,k=4,m=6,*p1=&k,*p2=&m; a=p1=&m; printf(%dn,a); 95以下程序运行后,输出结果是 ( ) A)84 B)99 C)95 D)44 int d=1L; fun (int p) int d=5; d+=p+; printf(%d,d); main() int a=3; fun(a); d+=a+; printf(%dn,d); 96设有如下定义:int a=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=ab)&(n=cd)后,n的值为 ( ) A) 1 B)2 C)
28、3 D)097以下程序的输出结果是A)x=4 B)x=8 C)x=6 D)x=12main() int i,j,x=0; for (i=0;i2;i+) x+; for(j=0;j3;j+) if (j%2) continue; x+; x+; printf(=%dn,x); 98设有如下定义:int x=l,y=-1;,则语句:printf(%dn,(x-&+y);的输出结果是 A)1 B)0 C)-1 D)299当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是 ( )A) c=b=a; B) (a=c)(b=c);C) (a=c)&(b=c); D) a=c=b;100以下程
29、序的输出结果是( ) A)5 2 B)5 1 C)5 3 D)9 7 main( ) int i,x33=9,8,7,6,5,4,3,2,1,*p=&x11; for(i=0;i=0b=0)&(a0b=0&b=0)&(a0&b0)&(a+b0106以下程序的输出结果是( ) A)2 0 B)3 1 C)3 2 1 D)2 1 0 main( ) int n=4; while(n-)printf(%d ,-n); 107若已定义:int a9,*p=a;不能表示a1 地址的表达式是( ) A)p+1 B)a+1 C)+a D)+p108以下程序的输出结果是( ) A)17,021,0x11 B)17,17,17 B)17,0x11,021 D)17,21,11 main( ) int k=17; printf(%d,%o,%x n,k,k,k); 109以下程序的输出结果是( ) A)-1 1 B)0 1 C)1 0 D)0 0
限制150内