C语言期末考试复习题(机房题库)
2、下列各选项中,合法的c语言关键字是( )。 A. integex B. sin C. string D. void参考答案: D 3、C语言的程序一行写不下时,应该( )。
A. 用回车符换行 B. 在任意一个空格处换行 C. 用分号换行 D. 用逗号换行答案: B
4、以下选项中正确的整型常量是( )。
A. 34.1 B. -80 C. 2,000 D. 1 2 3参考答案: B
5、在C程序中,可以作为用户标识符的一组标识符是( )。
A. void define WORD B. as_b3 _224 Else C. switch _wel ease D. 4b DO SIG答案: B
8、以下叙述不正确的是( )
A. 一个c源程序可由一个或多个函数组成 B. 一个C源程序必须包含一个main()函数
C. c程序的基本组成单位是函数 D. 在C程序中,注释说明只能位于一条语句的后面答案: D
9、C语言规定:在一个源程序中,main()函数的位置( ) A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后参考答案: C 10、在C语言中,数字029是一个()
A. 八进制数 B. 十六进制数 C. 十进制数 D. 非法数参考答案: D 12、C语言可执行程序的开始执行点是( )
A. 程序中的一条可执行语句 B. 程序中第一个函数
C. 程序中的main函数 D. 包含文件中的第一个函数参考答案: C 13、C程序是( )
A. 顺序执行 B. 从Main函数开始
C. 从函数体开始 D. 任意语句参考答案: B 16、以下说法中正确的是( )。
A. C语言程序中是从第一定义的函数开始执行
B. 在C语言程序中,要调用的函数必须在main()函数中定义 C. C语言程序总是从main()函数开始执行
D. C语言程序中的main()函数必须放在程序的开始部分参考答案: C 17、一个C程序的执行是从( )
A. 本程序的main函数开始,到main函数结束
B. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C. 本程序的main函数开始,到本程序文件的最后一个函数结束
D. 本程序文件的第一个函数开始,到本程序main函数结束参考答案: A 18、以下叙述正确的是( )
A. 在C程序中,main函数必须位于程序的最前面 B. C程序的每行中只能写一条语句 C. C语言本身没有输入输出语句
D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误答案: C 1、C源程序的基本单位是___函数 __
2、一个C源程序中至少应包括一个_________答案: main函数 3、在一个C源程序中,注释部分两侧的分界符分别为________和_______参考答案: /*,*/
4、函数体用_______开始,用______结束。参考答案: { , }
6、C语言中的标识符只能由3种字符组成,它们是_____、_____和_____ 参考答案: 字母数字下划线 7、设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式的值为0的是_______. A. 'a'&&'b' B. a<=b C. a||b+c&&b-c D. !((a < b)&&!c||1)参考答案: D 10、判断字符型变量x是否是大写字母的正确的表达式______.
A. 'A'<=x<='Z' B. (x>=A)&&(x<=Z) C. ('A'<=x)&&('Z'=>x) D. (x>='A')&&(x<='Z')答案: D
1、已知char ch;则判断ch是英文字符的逻辑表达式是_______________ 参考答案: (ch<='z'&&ch>='a')||(ch<='Z'&&ch>='A')
2、表示条件:10 < x < 100或x < 0的C语言表达式是________。 参考答案: (X>10&&X<100)|| X<0
3、写出下面各个逻辑表达式的值,设a=3,b=4,c=5 1)!(x=a)&&(y=b)&&0 2)a||b+c&&b-c
3)!(a>b)&&!c||1 参考答案: 0,1,1
4、当a=3,b=2,c=1时,表达式f=a > b > c的值是_________ 参考答案: 0 6、设y是int型变量,请写出判断y为奇数的关系表达___________. 参考答案: (Y%2)==1
8、表示“整数x的绝对值大于5”时值为“真”的C语言表达式是——。 参考答案: x>5||x<-5
9、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是——。参考答案: 0
1、以下选项中属于C语言的数据类型是
A. 复数型 B. 逻辑型 C. 双精度型 D. 集合型参考答案: C 2、在C语言中,不正确的int类型的常数是 A. 32768 B. 0 C. 037 D. 0xAF参考答案: A 4、在C语言中,合法的长整型常数是
A. OL B. 4962710 C. 324562& D. 216D参考答案: A 7、以下所列的C语言常量中,错误的是
A. 0xFF B. 1.2e0.5 C. 2L D. '\\72'参考答案: B 9、下列变量名合法的是( )
A. #1 B. $567 C. a-b D. m_number参考答案: D 14、C语言提供的合法的数据类型关键字是: A. Double B. short C. integer
D. Char参考答案: B
15、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为
A. char < int < long int < =float < double
B. char=int < long int<=float < double C. char < int < long int=float=double
D. char=int=long int<=float < double参考答案: A 16、下列四组选项中,均不是C语言关键字的选项是 A. define IF type B. getc char printf C. include scanf case
D. while go pow参考答案: A
17、下面四个选项中,均是合法整型常量的选项是 A. 160 -0xffff 011 B. -0xcdf 01a 0xe C. -0x46a 2e5 0x
D. -0x48a 2e5 0x参考答案: A
18、下面四个选项中,均是合法的浮点数的选项是 A. +1e+1 5e-9.4 03e2 B. -.60 12e-4 -8e5 C. 123e 1.2e-.4 +2e-1
D. -e3 .8e-4 5.e-0参考答案: B
20、下面四个选项中,均是不正确的八进制数或十六进制数的选项是 A. 016 0x8f 018 B. 0abc 017 0xa C. 010 -0x11 0x16
D. 0a12 7ff -123参考答案: D 21、已知各变量的类型说明如下: int k,a,b;
unsigned 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)答案: A
25、设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围
A. 0--255 B. 0--32767 C. 0--65535 D. 0—2147483647参考答案: C 2、设有以下变量定义,并已赋确定的值char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为_ :double
5、表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为___参考答案: int 6、表达式pow(2.8,sqrt(double(x)))值的数据类型为___: double______
7、设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为_______
参考答案: -32768至32767
1、算法的表示方法有_答案: 自然语言,传统流程图,N-S流程图,伪代码,计算机语言
1、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系 的表达式为________。
A. a <>0 B. !a C. a=0 D. a!=0参考答案: D
2、以下程序输出结果是 main ( ) { int m=5;
if (m++ > 5) printf (\"%d\\n\ else printf (\"%d\\n\
A. 7 B. 6 C. 5 D. 4参考答案: B
4、若变量都已经说明,则以下程序段输出为( ) a=10;b=50;c=30;
if (a > b) a=b; b=c;c=a;
printf(\"a=%db=%dc=%d\\n\
A. a=10 b=50 c=10 B. a=10 b=30 c=10
C. a=50 b=30 c=10 D. a=50 b=30 c=50参考答案: B
5、为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的 else总是与____组成配对关系。
A. 其上面距它最近的,并且没有其他else与其配对的if相配对 B. 在同一行上的if
C. 缩排位置相同的if D. 在其之前未配对的if参考答案: A 8、请读程序: main() { float x,y;
scanf(\"%f\ if(x < 0.0) y=0.0
else if((x < 5.0)&&(x!=2.0)) y=1.0/(x+2.0);
else if( x < 10.0) y=1.0/x; else y=10.0;
printf(\"%f\\n\
若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是 A. 0.000000 B. 0.250000 C. 0.500000 D. 1.000000参考答案: C 9、在执行以下程序时,为了使输出结果为t=4, 则给a和b输入的值应满足的条件是D main( )
{ int s,t,a,b;
scanf(\"%d,%d\",&a,&b); s=1; t=1;
if(a < 0)s=s+1; if(a > b)t=s+1; else if(a= =b)t=5; else t=2*s;
printf(\"t=%d\\n\",t); }
A. 0 > a > b B. a=0 < b
C. a=b < 0 D. a < b < 0
10、若有定义: float w; int a, b; 则合法的switch语句是( ) A. switch(w) { case1.0: printf(\"*\\n\"); case2.0: printf(\"**\\n\"); } B. switch(a); { case 1 printf(\"*\\n\"); case 2 printf(\"*\\n\"); } C. switch(b) { case 1: printf(\"*\\n\"); case 2: printf(\"*\\n\"); }
D. switch(a+b); { case 1: printf(\"*\\n\"); default: printf(\"\\n\"); case 2 }参考答案: C 11、判断两个字符串S1 和 S2 相等的正确语句是____ A. if (S1=S2) B. if (S1==S2)
C. if (strcpy(S1,S2))
D. if (strcmp(S1,S2)==0)参考答案: D
15、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是 if(a < b) if(c < d) x=1; else if(a < c)
if(b < d) x=2; else x=3; else x=6; else x=7;
A. 1B. 2 C. 3 D. 6参考答案: B 16、读下列程序: #include main() {
int x,y; scanf(”%d”,&x); y=0; if(x>=0)
{if(x>0)y=1;} else y=-1; prinff(”%d”,y);}
当从键盘输入32时,程序输出结果为( )。 A. 0 B. 1C. -1 D. 不确定参考答案: B 18、如下程序的输出结果是( )。 #include main() {
int a=12,b=5,c=-3; if(a>b) if(b<0)c=0; else c++;
printf(”%d\n”,c);
}
A. 0 B. 1 C. -2D. -3参考答案: C 19、#include main() { int x:
scanf(”%d”,&x); if(x--<5)prinff(”%d”,x); else printf(”%d”,x++); }
程序运行后,如果从键盘输入5,则输出结果是( )。 A. 3 B. 4 C. 5 D. 6参考答案: B 21、以下程序的运行结果是( )。 #include main() {
int k=2; switch(k) {
case 1:printf(”%d\n”,k++); break;
case 2:printf(”%d”,k++); case 3:printf(”%d\n”,k++); break;。
case 4:printf(”%d\n”,k++);
A. 缩排位置相同的if B. 其之前最近的if
C. 其之后最近的if D. 同一行上的if参考答案: B 24、下列语句正确的是( ) A. if(a > b > c) temp=a B. if((a=b) > 0) temp=a C. int a=b=c=4
D. int a;scanf(%d,a)参考答案: B 26、有如下程序 main()
{ int a=2,b=-1,c=2; if(a < b) if(b<0) c=0; else c++
printf(\"%d\\n\ }
该程序的输出结果是
A. 0 B. 1 C. 2D. 3参考答案: C
27、与 y=(x > 0?1:x < 0?-1:0);的功能相同的if语句是 A. if(x > 0) y=1; else if(x < 0) y=-1; else y=0; B. if(x) if(x > 0) y=1; else if(x < 0) y=-1; else y=0;
C. y=-1 if(x) y=1; else if(x==0) y=0; else y=-1;
D. y=0 if(x > -0) if(x > 0) y=1; else y=-1;参考答案: A 填空题:
2、以下程序运行后的输出结果是——。 #include main()
{int x=10,y=20,t=0; if(x==y)t=x;x=y;y=t; printf(”%d,%d\n”,x,y); } 参考答案: 0 3、若int i=10;,则执行下列程序后,变量i的正确结果是——。 switch(i)
{case 9:i+=1; case 10:i+=1;. case 11:i+=1: default:i+=1;
} 答案: ((20 4、下列程序段的输出结果是 _____________ 。 int n='c'; switch(n++) { default: printf(\"error\");break; case 'a':case 'A':case 'b':case 'B':printf(\"good\");break; case 'c':case 'C':printf(\"pass\"); case 'd':case 'D':printf(\"warm\"); } 参考答案: passwarm 已知int a[][3]={1,2,3,4,5,6,7};,则数组a的第一维的大小是( )。 A. 2B. 3 C. 4 D. 无确定值参考答案: B 2、有如下程序: #include main() {int n[5]={0,0,0},i,k=2; for(i=0;i printf(”%d\n”,n[k]); } 该程序的输出结果是( )。 A. 不定值 B. 2 C. 1 D. 0答案: D 3、以下程序的输出结果是( )。 #include f(int b[],int m,int n) {int i,s=0; for(i=m;i return s; } main() {int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf(”%d\n”,x); } A. 10B. 18C. 8D. 15答案: A 4、以下程序中函数reverse()的功能是将a所指数组中的内容进行逆置。 #include void reverse(int a[],int n) {int i,t; for(i=0;i {t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;} } main() {int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0; reverse(b,8); A. 22 B. 10 C. 34 D. 30 参考答案: A 5、在c语言中,一维数组的定义方式为:类型说明符数组名( )。 A. [常量表达式] B. [整型表达式] C. [整型常量]或[整型表达式]D. [整型常量] 参考答案: A 6、若有说明:int a[3][4];,则对a数组元素的非法引用是( )。 A. a[O][2*1] B. a[1][3] C. a[4-2][0] D. a[0][4]答案: D 7、下面程序中有错误的行是( )。 (1)main() (2){ (3)int a[3]={1}; (4)int i; (5)scanf(”%d”,&a); (6)for(i=1;i<3;i++)a[0]=a[0]+a[i]; (7)prinff(”%f\n”,a[0]); (8)} A. 3 B. 6C. 7 D. 5答案: D 11、下面程序________(每行程序前面的数字表示行号) 1 main() 2 { 3 float a[3]={0,0}; 4 int i; 5 for(i=0;i<3;i++) scanf(\"%d\ 6 for(i=1;i<10;i++) a[0]=a[0]+a[i]; 7 printf(\"%f\\n\ 8 } A. 没有错误 B. 第3行有错误,虽然编译能够通过 C. 第5行有错误,虽然编译能够通过D. 第7行有错误,虽然编译能够通过 参考答案: C 12、以下不正确的定义语句是 A. double x[5]={2.0,4.0,6.0,8.0,10.0}; B. int y[5]={0,1,3,5,7,9}; C. char c1[]={'1','2','3','4','5'}; D. char c2[]={'\\x10','\\xa','\\x8'}参考答案: B 13、执行下面的程序段后,变量k中的值为 s[0]=k; k=s[1]*10; A. 不定值 B. 33 C. 30 D. 10答案: A 15、定义如下变题和数组: int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是 for(i=0;i< 3;i++) printf(\"%d\ A. 1 5 9 B. 1 4 7 C. 2 5 8 D. 3 6 9 参考答案: C 16、下列程序的输出结果是 main() { static int s[][3]={{1,2,3},{4,5,6}}; int t; t=(s[0][0], s[1][1],s[0][1]+s[1][2]); printf(\"%d \\n\ } A. 5 B. 6 C. 7 D. 8 参考答案: D 17、下列对数组赋值的语句正确的是( ) A. static a[4]={0,0,0,0} B. int a[4]={0*4} C. static a[4]=0 D. static a[4];a=0;答案: A 19、若有说明 int a[3][4];则对a数组元素的正确引用是 A. a[2][4] B. a[1,3] C. a[1+1][0] D. a(2)(1)答案: C 20、若有说明 int a[3][4];则a数组元素的非法引用是 A. a[0][2*1]B. a[1][3] C. a[4-2][0]D. a[0][4]答案: D 1、用来引用特定数组元素的数字称为:下标 2、把数组元素按顺序存放的过程称为_: 排序 4、在C语言中,二维数组元素在内存中的存放顺序是: 按行顺序存放 5、下面程序的运行结果是——。 #include main() {int i,f[10]; f[0]=f[l]=1; for(i=2;i f[i]=f[i-2]+f[i一1]; for(i=0;i {if(i%4==0)printf(”\n”); printf(”%3d”,f[i]);} } 参考答案: 1 1 2 3 5 8 13 21 34 55 7、在C语言中,一维数组的定义方式为:类型说明符数组名——。 参考答案: [常量表达式] 8、阅读程序,写出执行结果——。 #include func(int b[]) {int j; for(j=0;j<4;j++) b[j]=j; main() {int a[4],i; func(a); for(i=0;i<4;i++) printf(”%d”,a[i]); } 参考答案: 0 1 2 3 1、编写程序,将一个不大于256的十进制正整数转化为8位的二进制数,若不足8位,则在前面补0,例如十进制数2转化位8位二进制数后是00000010,37转化后是00100101。 试求出十进制数5、23、189转化位8位二进制分别是多少?(要求必须使用循环语句实现) 参考答案: main() { int a,i,b[8]; printf(\"Please Input a Number < =256:\\n\"); scanf(\"%d\ for(i=1;i < =8;i++) b[i]=0; i=8; while (i > =1) { b[i]=a%2; a=a/2; if (a==0) break; i--; } for(i=1;i< =8;i++) printf(\"%d\ printf(\"\\ 2、编写程序,求一正整数等差数列的前五项的立方和,该数列前四项之和是26、之积是880。 参考答案: main() { long a0,d; long s; for(a0=1;a0<=26;a0++) { for(d=1;d<=26;d++) if((a0+a0+d+a0+2*d+a0+3*d)==26&&a0*(a0+d)*(a0+2*d)*(a0+3*d)==880) { s=a0*a0*a0+(a0+d)*(a0+d)*(a0+d)+(a0+2*d)*(a0+2*d)*(a0+2*d) +(a0+3*d)*(a0+ 3、本程序演示打印出杨辉三角形(要求打印出10行如下图) [程序分析] 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 参考答案: main() { int i,j; int a[10][10]; printf(\"\\n\"); for(i=0;i<10;i++) { a[i][0]=1; a[i][i]=1; } for(i=2;i<10;i++) { for(j=1;j a[i][j]=a[i-1][j-1]+a[i-1][j]; } for(i=0;i<10;i++) { for(j=0;j<10;j+ 3、以下关于运算符优先顺序的描述中正确的是 A. 关系运算符<算术运算符<赋值运算符<逻辑运算符 B. 逻辑运算符<关系运算符<算术运算符<赋值运算符 C. 赋值运算符<逻辑运算符<关系运算符<算术运算符 D. 算术运算符<关系运算符<赋值运算符<逻辑运算符参考答案: C 7、有如下程序段 int a=14,b=15,x; char c='A'; x=(a&&b)&&(c<'B'); 执行该程序段后,x的值为 A. ture B. false C. 0 D. 1答案: D 8、设有 int x=11; 则表达式 (x++ * 1/3) 的值是 A. 3 B. 4 C. 11 D. 12答案: A 13、在C语言中,如果下面的变量都是int类型,则输出结果是______ sum=pad=5; pAd=sum++,pAd++,++pAd; printf(\"%d\\n\ A. 7 B. 6 C. 5 D. 4参考答案: B 14、设有int i=10,j=10; 则printf(\"%d,%d\\n\",++i,j--)的输出是_____. A. 11, 10 B. 9 10 C. 10 9 D. 10,9参考答案: A 16、设a,b和c都是int型变量,且a=3,b=4,c=5, 则下面表达式的值为0的是()。 A. 'a'&&' b' B. a <= b C. a||b+c&&b-c D. !((a < b)&&!c||1)参考答案: D 17、下列赋值语句正确的是(设int a,x) ( ) A. a=(a[1]+a[2])/2 B. a*=*a+1 C. a=(x=1,x++,x+2) D. a=\"good\" 参考答案: C 20、设有a=b=c=2,求表达式a+++b+++c+++的结果是_______. A. 6 B. 9 C. 8 D. 表达式出错参考答案: A 21、设有如下定义: int x=10,y=3,z; 则语句 printf(\"%d\\n\ 的输出结果是_______. A. 1 B. 0 C. 4 D. 3参考答案: D 24、若有以下定义,则能使值为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)参考答案: D 1、设x和y均为int型变量,且x=1,y=2,则以下表达式:0+x/y的值为: 0 2、计算表达式6*7%2+7%2*5的值是: 5 3、若有说明语句int I,j,I=6,执行j=(++I)+(I++)后,j的值是: 14 4、输出为__________ main( ) {char x,y; x='a'; y='b'; printf(\"xy\\bmn\\r\"); printf(\"%c\\\\%c\\\\n\ printf(\"%c\\a\\n\ 参考答案: a\\b\\n 5 5、写出下列表达式运算后a的值设原来a=12 1) a+=a 2) a-=a 3) a/=a+a 4) a+=a-=a*=a 参考答案: 24,0,0,0 6、若a,b和c均是int型变量,则计算表达式后, a值为______,b值为______,c值为__________ a=(b=4)+(c=2) 参考答案: 6,4,2 7、若有定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为_______ (float)(a+b)/2+(int)x%(int)y 参考答案: 3.500000 8、若x和n均是整型变量,且x的初值为12,n的初值为5,则计算表达式后x的值为 x%=(n%=2) 参考答案: 0 9、若有以下定义,则计算表达式y+=y-=m*=y后的y值是___________ int m=5,y=2; 参考答案: -16 10、已知字母a的ASCII码为十进制数97,且设ch为字符型变量, 则表达式ch='a'+'8'-'3'的值为__________ 参考答案: 'f' 11、假设m是一个三位数,从左到右用a,b,c表示各位的数字,则从左到右各个数字是bac的三位数的表达式是___________ 参考答案: (m/10)%10*100+m/100*10+m%10 12、表示\"整数x的绝对值大于5\"时值为\"真\"的C语言表达式是参考答案: x>5||x<-5 1、合法的数组说明语句是( )。 A. int a[]=\"string\"; B. int a[5]={O,1,2,3,4,5}; C. char a=\"string\"; D. char a[]={0,1,2,3,4,5};参考答案: D 2、设有数组定义:char array[]=”China”;,则数组array所占的空间为( )。 A. 4个字节 B. 5个字节 C. 6个字节 D. 7个字节 参考答案: C 3、下列程序执行后的输出结果是( )。 #include main() {char arr[2][4]; strcpy(arr,”you”);strcpy(arr[1],”me”); arr[0][3]=’&’; printf(”%s\n”,arr\"); } A. you&me B. you C. me D. err参考答案: A 4、有以下程序: #include #includemain() {char a[]={'a','b','c’,'d','e’,'f','g','h','\0'};int i,j; i=sizeof(a);j=strlen(a); printf(”%d,%d\n”,i,j); } 程序运行后的输出结果是( )。 A. 9,9 B. 8,9 C. 1,8 D. 9,8参考答案: D 5、对两个数组a和b进行如下初始化: char a[]=”ABCDEF”: char b[]={’A’,'B','C',’D’,'E','F'}; 则以下叙述正确的是( )。 A. 数组a与数组b完全相同 B. 数组a与数组b长度相同 C. 数组a与数组b中都存放字符串 D. 数组a比数组b长度长参考答案: D 7、判断字符串sl是否大于字符串s2,应当使用( )。 A. if(sl>s2) B. if(strcmp(sl,s2)) C. if(strcmp(s2,s1)>0) D. if(strcmp(sl,s2)>0) 参考答案: D 8、当运行以下程序时,从键盘输入:AhaMA[空格]Aha<回车>,则下面程序的运行结果是( )。 #include main() {char s[80],c='a'; int i=0: scanf(”%s”,s); while(s[i]!='\0') {if(s[i]==c) s[i]=s[i]-32; else if(s[i]==c-32)s[i]=s[i]+32; i++: } pu A. ahAMa B. AbAMa C. AhAMa[空格]ahA D. ahAMa[空格]allA参考答案: A 12、以下程序的输出结果是 main() { char w[][10]={ \"ABCD\ for(k=1;k<3;k++) printf(\"%s\\n\ } A. ABCD FGH KL B. ABCD EFG IJ C. EFG JK O D. EFGH IJKL参考答案: D 14、给出以下定义: char x[ ]=\"abcdefg\"; char y[ ]={'a','b','c','d','e','f','g'}; 则正确的叙述为 A. 数组X和数组Y等价 B. 数组x和数组Y的长度相同 C. 数组X的长度大于数组Y的长度 D. 数组X的长度小于数组Y的长度 参考答案: C 15、合法的数组定义是 A. static int a[]=″string″; B. static int a[5]={0,1,2,3,4,5} C. static char a=″string″; D. static char a[]={0,1,2,3,4,5}; 参考答案: D 16、合法的数组定义是( ) A. char A[3][]={\"111\ B. char a[][3]={'aaa','ddd'} C. char a[3][]={'t','u'} D. char a[][3]={\"a\参考答案: D 17、以下程序的输出结果是 main( ) { char ch[3][4]={\"123\",\"456\",\"78\; int i; for(i=0;i<3;i++) printf(\"%s\",ch[i]); } A. 123456780 B. 123 456 780 C. 12345678 D. 147答案: C 18、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是 main() { char s[100]; int c, i; scanf(\"%c\ printf(\"%c,%d,%s \\n\ } A. 123,456,789 B. 1,456,789 C. 1,23,456,789 D. 1,23,456答案: D 20、下面程序的运行结果是 main() { char ch[7]={\"65ab21\ int i,s =0; for(i=0;ch[i]>='0'&&ch[i]<'9';i+=2) s=10*s+ch[i]-'0'; printf(\"%d\\n\",s); } A. 12ba56 B. 6521 C. 6 D. 62答案: C 1、下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其 它元素不变。请填空。 #include #include main() { char a[]=\"clanguage\ int i, j, k; k=strlen(a); for(i=0; i<=k-2; i+=2) for(j=i+2; j<=k;_______(1)__________) if(_________(2)__________) { t=a[i]; a[i 参考答案: j=j+2,a[i]>a[j] 2、若有定义语句:char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式) while([i]){ d[j]= ______ s[i++]_______;j++;i++;} d[j]=0; 3、下列程序段的输出结果是 ________________。 main() { char b[]=\"Hello,you\"; b[5]=0; printf(\"%s \\n\ } 参考答案: Hello 4、以下程序的输出结果是___________ 。 main() { char s[]=\"abcdef\"; s[3]=‘\\0'; printf(\"%s\\n\ } 参考答案: abc 5、下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。 #include #include main() {char a[]=”clanguage”,t; int i,j,k; k=strlen(a); for(i=0;i<=k-2;i+=2) for(j=i+2;j if(___________) {t=a[i];a[i]=a 参考答案: i+=2 a[ij>a[j] 6、以下程序的输出结果是——。 #include main() {char S[]=”abcdef”; S[3]=’\0’; printf(”%s\n”,S); } 参考答案: abe 7、下面程序的运行结果是——。 char c[5]={’a’,rb’,’\0’,’c’,’\0’}; printf(”%s”,c);参考答案: ab 8、阅读程序,写出执行结果——。 #include main() {char str[30]; scanf(”%s”,str); printf(”%s”,str); } 运行程序,输入Fortran Language 参考答案: Fortran 1、以下程序的输出结果是 main() { int a=4,b=5,c=0,d; d=!a&&!b||!c; printf(\"%d\\n\ } A. 1 B. 0 C. 非0的数 D. -1参考答案: A 2、下列程序执行后的输出结果是 main() { char x=0xFFFF; printf(\"%d \\n\ A. -32767 B. FFFE C. -108 D. -32768参考答案: C 3、语句printf(\"a\\bre\\'hi\\'y\\\\\\bou\\n\");的输出结果是 (说明:'\\b'是退格符) A. a\\bre\\'hi\\'y\\\\\\bou B. a\\bre\\'hi\\'y\\bou C. re'hi'you D. abre'hi'y\\bou 参考答案: C 4、请读程序 int i =65536 printf(\"%d\\n\ 上面程序的输出结果是_____ A. 65535 B. 0 C. 有语法错误,无输出结果 D. 1参考答案: B 5、设x为int型变量,则执行以下语句后,x的值为 x=10; x+=x-=x-x; A. 10 B. 20 C. 40 D. 30参考答案: B 6、以下程序的输出结果是_____ main() {char str[12]={'s','t','r','i','n','g'}; printf(\"%d\\n\ } A. 6 B. 7 C. 11 D. 12参考答案: A 7、下面哪个是C语言中的正确赋值语句; A. a=1,b=2 B. i++; C. a=b=5 D. y=int(x)参考答案: B 8、执行下列程序段 float f; int i; scanf(\"%3d%4d%f\ 输入为12345678765.43,则赋值结果为(); A. i=123,f=45678765.43 B. i=123,f=4.567876543e+7 C. i=123,f=8765.43 D. i=12345678765;f=0.43 参考答案: C 9、执行程序段char str[20]={'a','b','c','\\o'}; int len=strlen(str); 变量len的值为( ) A. 20 B. 4 C. 3 D. 3或4或20参考答案: B 10、以下程序的输出结果是 main( ) { int a=12,b=12; printf(\"%d%d\\n\ } A. 10 10 B. 12 12 C. 11 10 D. 11 13参考答案: D 11、有以下程序 #include main() { int a,b,c=246; a=c/100%9; b=(-1)&&(-1); printf(\"%d,%d\\n\ } 输出结果是 A. 2,1 B. 3,2 C. 4,3 D. 2,-1参考答案: A 12、已知字母A的ASCⅡ码为十进制的65,下面程序的输出是 main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf(\"%d,%c\\n\ } A. 67,D B. B,C C. C,D D. 不确定的值参考答案: A 13、若执行下面的程序时从键盘上输入3和4,则输出是 main() { int a,b,s; a=3,b=4; scanf(\"%d%d\ s=a+b; printf(\"%d\\n\ printf(\"%d\\n,--s); } A. 7,7 B. 7,5 C. 6,7 D. 7,6参考答案: B 14、下列程序执行后的输出结果是 main() { int x='f'; printf(\"%c \\n\ A. G B. H C. I D. J参考答案: A 15、以下程序的输出结果是__ main() { int x=10 ,y=10; printf(\"%d%d\\n\;} A. 10,10 B. 9,9 C. 9,10 D. 10,9参考答案: D 16、请读程序: main() { int A; float B, C; scanf(\"%2d%3f%4f\ printf(\"\\nA=%d,B=%f,C=%f\\n\ } 若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是 A. A=10, B=765.000000, C=4321.000000 B. A=10, B=765.000000, C=4321.000000 C. A=98, B=765.0, C=4321.0 D. 以上答案都不正确参考答案: D 17、以下程序的输出结果是 main() { int a=12,b=12; printf(\"%d %d\\n\",--a,++b); } A. 10 10 B. 12 12 C. 11 13 D. 11 10参考答案: C 18、若有说明:“double a;”,则正确的输入语句应该是() A. scanf(\"%lf\ B. scanf(\"%f\ C. scanf(\"%lf\ D. scanf(\"%le\答案: D 22、下列关于switch语句和break语句的结论中,正确的是( )。 A. break语句是switch语句中的一部分 B. 在switch语句中可以根据需要使用或不使用break语句 C. 在switch语句中必须使用break语句 D. break语句只能用于switch语句中参考答案: B 23、设有说明语句“int a=1,b=0;”,则执行以下语句后,输出为( )。 switch(a) {ease 1: switch(b) {case 0:printf(”**0**”);break; case 1:printf(”**1**”);break; } case 2:printf(”**2**”);break; } A. **0** B. **0****2** C. **0****1****2** D. 有语法错误答案: B 1、若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则 输入数据的形式应该是 _____________ 。 char a[10],b; scanf(\"a=%s b=%c\",&a,&b); printf(\"%s,%c\\n\参考答案: a=1234 b=5 2、标准库函数_________在屏幕上显示信息。 参考答案: printf 3、main( ) {char st='A'; int i=10; st=st+i;i=st%i; printf(\"%C,%d\\n\ 已知字母A的ASCII码为65 结果:____ 参考答案: K,5 4、以下程序的输出结果是_______ 。 main() { int a=177; printf(\"%o\\n\ } 参考答案: 261 6、以下程序段的输出结果是____________。 ﹟include﹤stdio.h﹥ void main() { int a=0234; printf(\"%-3d,%-6d,*%-06d,*%06d,%%06d﹨n\",a,a,a,a,a);} 参考答案: 156,*156 ,*000156,%06d 7、使用强制转换方法将正整数转换成字符。本题程序如下: ﹟include ﹤ stdio.h ﹥ void main() { char c;int I; scanf(\"%d\",&I); c=(\"%c的ASCII码为%d﹨n\",c,I);} 本程序的执行结果为____参考答案: a的ASCII码为97 因篇幅问题不能全部显示,请点此查看更多更全内容