(上)C语言章测试题.doc
《(上)C语言章测试题.doc》由会员分享,可在线阅读,更多相关《(上)C语言章测试题.doc(13页珍藏版)》请在冰豆网上搜索。
2008-2009(上)C语言程序设计1-5章测试试题
2008-2009(上)C语言程序设计1-5章测试试题
姓名__________学号__________成绩__________
一、选择题(每小题1分,共60分)
1、若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%X\n",m);
执行后输出结果是(C )。
A)0X0 B)0x0 C)0 D)0XABC
2、以下不合法的用户标识符是(C)
A)j2_KEY B)DoubleC)4dD)_8_
3、以下不合法的数值常量是(C)
A)011B)1e1C)8.0E0.5D)0xabcd
4、以下不合法的字符常量是(A)
A)'\018' B)'\”'C)'\\'D)‘\xcc'
5、表达式3.6-5/2+1.2+5%2的值是(D)
A)4.3B)4.8C)3.3D)3.8
6、以下能正确定义字符串的语句是(D)
A)charstr[]={‘s',’t’,’r’,’i’,’n’,’g’}; B)charstr=”\x43”;
C)charstr=”string”; D)char*str=”string”;
7、以下数组定义中错误的是(B)
A)intx[][3]={0}; B)intx[2][3]={{1,2},{3,4},{5,6}};
C)ntx[][3]={{1,2,3},{4,5,6}};D)intx[2][3]={1,2,3,4,5,6};
8、若要求从键盘读入含有空格字符的字符串,应使用函数(B)
A)getc()B)gets()C)getchar()D)scanf()
9、下四个程序中,完全正确的是(B)
A)#include B)#include
main(); main()
{/*programming*/ {/*/programming/*/
printf(“programming!
\n”);}printf(“programming!
\n”);}
C)#include”stdio.h” D)include
main() main()
{/*/*programming*/*/ {/*programming*/
printf(“programming!
\n”);} printf(“programming!
\n”);}
10、若有定义:
floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是(C)
A)switch(x) B)switch((int)x);
{case1.0:
printf(“*\n”);{case1:
printf(“*\n”);
case2.0:
printf(“**\n”);}case2:
printf(“**\n”);}
C)switch(a+b) D)switch(a+b)
{case1:
printf(“*\n”); {case1:
printf(“*\n”);
case2+1:
printf(“**\n”);} casec:
printf(“**\n”);}
11、若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是(A)
A)main() B)floatfun(inta,intb){……}
{……x=fun(2,10);……} main()
floatfun(inta,intb){……} {……x=fun(i,j);……}
C)floatfun(int,int); D)main()
main() {floatfun(inti,intj);
{……x=fun(2,10);……} ……x=fun(i,j);……}
floatfun(inta,intb){……} floatfun(inta,intb){……}
12、在以下给出的表达式中,与while(E)中的(E)不等价的表达式是(C)
A)(!
E=0)B)(E>0||E<0)C)(E==0)D)(E!
=0)
13、要求通过while循环不断读入字符,当读入字母N时结束循环。
若变量已正确定义,以下正确的程序段是(A)
A)while((ch=getchar())!
='N')printf(“%c”,ch);
B)while(ch=getchar()!
='N')printf(“%c”,ch);
C)while(ch=getchar()==’N')printf(“%c”,ch);
D)while((ch=getchar())=='N')printf(“%c”,ch);
14、有以下程序
#include
main()
{
charc1,c2,c3,c4,c5,c6;
scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf(“%c%c\n”,c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是(D)
A)1267B)1256C)1278D)1245
15、若有以下程序
main()
{inty=10;
while(y--);
printf(“y=%d\n”,y);
}
程序运行后的输出结果是(A)
A)y=0B)y=-1 C)y=1D)while构成无限循环
16、有以下程序
main()
{
inta=0,b=0,c=0,d=0;
if(a==1)
b=1;
c=2;
elsed=3;
printf(“%d,%d,%d,%d\n”,a,b,c,d);
}
程序输出(D)
A)0,1,2,0B)0,0,0,3C)1,1,2,0D)编译有错
17、有以下程序
main()
{
inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{
if(j%2)continue;
x++;
}
x++;
}
printf(“x=%d\n”,x);
}
程序执行后的输出结果是(B)
A)x=4B)x=8C)x=6D)x=12
18、有以下程序
intfun1(duoblea){returna*=a;}
intfun2(dpublex,doubley)
{
doublea=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{doublew;w=fun2(1.1,2.0);……}
程序执行后变量w中的值是( B)
A)5.21B)5C)5.0D)0.0
19、有以下程序
main()
{
inti,t[][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<3;i++)printf(“%d”,t[2-i][i]);
}
程序的执行后的输出结果是(B)
A)753B)357C)369D)751
20、有以下程序
fun(charp[][10])
{intn=0,i;
for(i=0;i<7;i++)
if(p[i][0]=='T')n++;
returnn;
}
main()
{
charstr[][10]={“Mon”,“Tue”,“Wed”,“Thu”,”Fri”,”Sat”,”Sun”};
printf(“%d\n”,fun(str));
}
程序执行后的输出结果是(B)
A)1 B)2 C)3D)0
21、以下叙述中错误的是(A )。
A)用户所定义的标识符允许使用关键字
B)用户所定义的标识符应尽量做到“见名知意”
C)用户所定义的标识符必须以字母或下划线开头
D)用户定义的标识符中,大、小写字母代表不同标识
22、以下叙述中错误的是(C )。
A)C语句必须以分号结束
B)复合语句在语法上被看作一条语句
C)空语句出现在任何位置都不会影响程序运行
D)赋值表达式末尾加分号就构成赋值语句
23、以下叙述中正确的是(B )。
A)调用printf函数时,必须要有输出项
B)使用putchar函数时,必须在之前包含头文件stdio.h
C)调用putchar函数输出字符时,参数不可以是字符的ASCII码
D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
24、以下关于函数的叙述中正确的是(B )。
A)每个函数都可以被其它函数调用(包括main函数)
B)每个函数都可以被单独编译
C)每个函数都可以单独运行
D)在一个函数内部可以定义另一个函数
25、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是(D )。
A)k%2 B)k%2==1 C)(k%2)!
=0 D)!
k%2==1
26、以下不能正确计算代数式值的C语言表达式是(A )。
A)1/3*sin(1/2)*sin(1/2) B)sin(0.5)*sin(0.5)/3
C)pow(sin(0.5),2)/3 D)1/3.0*pow(sin(1.0/2),2)
27、以下能正确定义且赋初值的语句是(B )。
A)intn1=n2=10; B)charc=32;