C语言选择题及答案
21.执行下面的程序后,a的值为( )。
main()
{ int a,b;
for(a=1,b=1;a<=10;a++)
{ if(b%3==l)
{ b+=3;
continue;}
b-=5;}}
A.7
B.8
C.9
D.10
22.下列叙述中正确的是( )。
A.用E—R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系
B.用E—R图只能表示实体集之间一对一的联系
C.用E—R图只能表示实体集之间一对多的联系
D.用E—R图表示的概念数据模型只能转换为关系数据模型
23。若有运算符:>、一、<
A.%、sizeof、>、<
B.sizeof、%、>、=、<<
C.sizeof、<、%、=
D.sizeof、%、<、=
24.若变量a,b已正确定义,且b已正确赋值,则合法的语句是( )。
A.b=double(b);
B.(int)a=(int)b;
C.a=a++=5;
D.a=double(b);
25.执行下列程序中的输出语句后,a的值是( )。
main()
{ int a;
printf("%d\n",(a=2*3,a*5,a+7));
}
A.17
B.37
C.6
D.13
26.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是( )。
main()
{ float a,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a {t=a;a=b.b=t;)
if(a {t=a;a=c;c=t;)
it(b {t=b;b=C;c—=;)
printf("%f\n%f\n%f\n",a,b,c);
}
A.1.00
2.00
3.00
B.1.00
3.00
2.00
C.1
3
2
D.3.00000
2.00000
1.00000
27.设有程序段:
int k=12:
while(k=1)k=k一1;
则下列描述中正确的是( )。
A.while循环执行10次
B.循环是无限循环
C.循环体语句一次也不执行
D.循环体语句执行一次
28.在执行完下列的c语句段之后,则B的值是( )。
char a=’A’;
int b;
B=((34&&56)&&(a
A.0
B.1
C.TRUE
D.FALSE
29.有下列函数定义:
fun(float h)
{ printf("%f,%f\n",h,h*h);)
该函数的类型是( )。
A.int类型
B.float类型
C.void类型
D.函数无类型说明,定义有错
30.有下列程序段:
int n,t=1,S=0;
scanf("%d",&n);
do{s=s+t;t=t-2;while(t!=n);
为使此程序段不陷入循环,从键盘输入的数据应该是( )。
A.任意正奇数
B.任意负偶数
C.任意正偶数
D.任意负奇数
31.若有说明语句:double*p,a;则通过scanf语句正确给输入项读人数据的程序段是( )。
A.*p=&a;scanf("%1f”,p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%",*p);
D.p=&a;scanf("%1f",p);
32.下列程序的输出结果是( )。
#include
main()
{ int a[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;
p=a ;
for(i=0;i<3;i++)
{ if(i<2)
p[1][i]=p[1][i]-1;
else
p[1][i]=1;
}
printf("%d\n",a[o][1]+a[1][1]+a[1][2]);
}
A.8
B.7
C.12
D.9
33.执行下列程序后,输出的结果是( )。
#include
#define S(X) X*X
void main()
{ int a=9,k=3,m=2;
a/=S(k+m)/S(k+m):
printf("%d",a);
}
A.1
B.4
C.9
D.0
34.设x=015,则x=x^017的值是( )。
A.00001111
B.11111101
C.00000010
D.1 1000000
35.若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是( )。
A.EOF B.-l
c.非零值D.0
36.设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句:
if(a if(c==d)y=0;
else y=1;
该语句所表示的含义是( )。
A.y=0,a y=1,a≥b
B.y=0,a y=1,a≥b且c≠d
C.y=0,a y=1,a D.y=0,a y=1,c≠d
37.下列程序的运行结果是( )。
#include
void main()
{int s=0,k;
for(k=7;k>1;k--)
{switch(k)
{case 1:
case 4:
case 7:
s++:
break;
case 2:
case 3:
case 6:break;
case 0:
case 5:
s+=2:
break;
}}
printf("s=%d",s);
}
A.s=3
B.s=4
C.s=5
D.无输出结果
38.若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是( )。
for(i=6;i>0;i--)
for(j=0;j<4;j++){…}
A.20
B.24
C.25
D.30
39.下列叙述中正确的是( )。
A.只能在循环体内和switch语句体内使用break语句
B.eotinue语句的作用是结束整个循环的执行
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用got0语句
40.有以下程序:
#include
void WriteStr(char*fn.char*str)
{ FILE*fp;
fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}
main()
{ WriteStr("tl.dat","start");
WriteStr("t1.dat","end");)
程序运行后,文件t1.dat中的'内容是( )。
A.start
B.end
C.startend
D.endrt