当前位置:文档之家› C语言期中测试题(含答案)

C语言期中测试题(含答案)

一、填空
1.C 语言源程序文件的后缀是 .c 。

2.结构化程序由 顺序结构 、 选择结构 、 循环结构 三种基本结构组成。

3.在C 语言中,用关键字 int 定义基本整型变量,一个基本整型变量系统分配 2 字节,用关键字 float 定义单精度实型变量,一个单精度实型变量系统分配 4 字节,用关键字 double 定义双精度实型变量,一个双精度实型变量系统分配 8 字节。

二、选择
1. 以下选项中正确的实型常量是( A )
A .12.
B .-20
C . 1,000
D . 4 5 6
2.以下选项中不正确的实型常量是(无正确答案)
A . 2.607E-1
B .0.8103e2
C . -77.77
D . 456e-2
3. 以下选项中不合法的用户标示符是( C )
A. _123 B .A12_1 C . A $ D .Dim
4.C 语言中运算对象必须是整型的运算符是( A )
A .%
B ./
C .!
D .*
5. 若变量已正确定义并赋值,符合C 语言语法的表达式是( B )
A .a=a+7 ;
B .a=7+b+c,a++
C . int(12.3%4)
D .a=a+7=c+b
6.下面合法的赋值语句是( C )
A .a=b=58
B .k=int(a+b)
C . a=58,b=58
D .--i
7.若变量已正确定义为int ,要给a,b,c 输入数据,正确的输入语句是( D )
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)
8.若变量a,b,t 已正确定义,要将a 和b 中的数进行交换,以下选项中不正确的语句组是( C )
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;
9.若有正确定义语句:
double x=5.16894;
语句printf(“%f\n ”,(int)(x*1000+0.5)/(double)1000);的输出结果是( D )
A .输出格式说明与输出项不匹配,输出无定值
B .5.170000
C .5.168000!
D .5.169000
10. 若有以下程序段:
int a=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d\\n ”,a,b,c);
执行后的输出结果是( B )
A .3,0,-10
B .0,0,5
C .-10,3,-10
D .3,0,3
11.下列运算符中优先级别最高的是( A )
A . !
B .%
C .-=
D .&&
12.为表示关系:z y x ≥≥,应使用的C 语言表达式是( A )
A .(x>=y)&&(y>=z)
B .(x>=y)AND(y>=x)
C .(x>=y>=z)
D .(x>=y)&(y>=z)
13.设a 、b 和c 都是int 型变量,且a=3,b=4,c=5,则以下的表达式中值为0的表达式是
( D )
A.a&&b B.a<=b C.a||b+c&&b-c D.!((a<b)&&!c||1) 14.有以下程序:
#include<stdio.h>
main()
{ int a=2,b=-1,c=2;
if(a<b)
if(b<0)
c=0;
else
c+=1;
printf(“%d\n”,c);
}
程序的运行结果是( C )
A.0 B.1 C.2 D.3
15.有以下程序:
#include<stdio.h>
main()
{ int w=4,x=3,y=2,z=1;
printf(“%d\n”,(w<x?w:z<y?z:x));
}
程序的运行结果( A )
A.1 B.2 C.3 D.4
16.有以下程序:
main()
{int a,b,s;
scanf(“%d %d”,&a,&b);
s=a;
if(a<b)
s=b;
s*=s;
printf(“%d\n”,s);
}
若执行以上程序时从键盘上输入3和4,则输出结果是( B )
A.14 B.16 C.18 D.20
17.有以下程序段:
y=-1;
if(x!=0)
if(x>0) y=1;
else y=0;
其能正确表示的数学函数关系是( C )
A .⎪⎩⎪⎨⎧>=<-=)0(1)0(0)0(1x x x y
B .⎪⎩
⎪⎨⎧>=-<=)0(0)0(1)0(1x x x y
C .⎪⎩⎪⎨⎧>=-<=)0(1)0(1)0(0x x x y
D .⎪⎩
⎪⎨⎧>=<-=)0(0)0(1)0(1x x x y
18.若有定义语句int a, b ;double x ;则下列选项中正确的是( C )
A .switch (x%2)
B .switch ((int )x/2.0)
{case 0: a++; break; {case 0: a++; break;
case 1: b++; break; case 1: b++; break;
default : a++; b++; default : a++; b++;
} }
C .switch ((int )x%2)
D .switch ((int )(x )%2) {case 0: a++; break; {case 0.0: a++; break; case 1: b++; break; case 1.0: b++; break; default : a++; b++; default : a++; b++;
} }
19.有以下程序段:
int k,j,s;
for(k=2;k<6;k++,k++)
{
s=1;
for(j=k;j<6;j++)
s+=j;
}
printf(“%d\n ”,s);
程序段的输出结果是( D )
A .9
B .1
C .11
D .10
20.有以下程序段:
int i,j,m=0;
for(i=1;i<=15;i+=4)
for(j=3;j<=19;j+=4)
m++;
printf(“%d\n ”,m);
程序段的输出结果是( C )
A .12
B .15
C .20
D .25
21.有以下程序段:
int n=10;
while(n>7)
{ n--;
printf(“%d\n ”,n);
}
程序段的输出结果是( B )
A.10 B.9 C.10 D.9
9 8 9 8
8 7 8 7
7 6
22.有以下程序段:
int x=3;
do
printf(“%3d”,x-=2);
while(!(--x));
程序段的输出结果是( C )
A.1 B.3 0 C.1 -2 D.死循环
23.有以下程序:
main()
{int i,sum;
for(i=1;i<=6;i++)
sum+=sum;
printf(“%d\n”,sum;);}
程序的输出结果是( C )
A..15 B.14 C.不确定D.0
24.有以下程序:
#include<stdio.h>
main()
{int i;
for(i=1;i<=5;i++)
{
if(i%2)
printf(“*”);
else
continue;
printf(“#”);
}
pintf(“$\n”);}
程序的输出结果是( A )
A.*#*#*#$ B.#*#*#*$ C.*#*#$ D.#*#*$ 25.有以下程序:
#include<stdio.h>
main()
{ int x,i;
for(i=1;i<=100;i++)
{
x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf(“%d”,x);
}
printf(“\n”);
}
程序的输出结果是( A )
A.28 70 B.42 84 C.26 68 D.39 81。

相关主题