- 88.50 KB
- 2021-05-13 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
C语言知识测试题
一、单项选择题(每小题5分,共150分)
1.下列合法的常量是( )。
A.-32169 B.0128 C.0XDEFG D.13E0.5
2.以下选项中不合法的标识符是 ( )。
A.printf B.FOR C.&a D._00
3.以下选项中不属于正确字符常量的是( )。
A. 'C' B. '\' C.'xCC0' D. ' 70'
4.设变量已正确定义并赋值,以下正确的语句是( )。
A.x=y*5=x+z; B.int(15.8%5);
C.x=y+z+5,++y; D.int a=b=c=25%5;
5.设变量均已正确定义,有语句scan(“%d%c%d%c”,&a,&b,&c,&d);若为变量a和c赋数值10和20,为变量b和d赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)( )。
A.10□X□20□Y〈回车〉 B.10□X20□Y〈回车〉
C.10X〈回车〉 D.10□X〈回车〉
20Y〈回车〉 20□Y〈回车〉
6.若变量已正确定义,有以下程序段
int a=3,b=5,c=7;
if(a>b) a=b; c=a;
else c=b;
printf("%d,%d,%dn",a,b,c);
其输出结果是( )。
A.程序段有语法错 B.3,5,3 C.3,5,5 D.3,5,7
7.有以下程序
#include
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{ case 0: a++;
case 1: b++; break;
}
case 2: a++; b++;
case 3: a++; b++; break;
}
printf(“a=%d,b=%dn”,a--,--b);
}
程序的运行结果是( )。
A.a=1,b=0 B.a=3,b=2 C.a=3,b=3 D.a=2,b=2
8.设有条件表达式:(EXP)? i++ :j--; ,则以下表达式中与(EXP)完全等价的是( )。
A.(EXP==0) B.(EXP!=0) C.(EXP==1) D.(EXP!=1)
9.设用到的变量都已正确定义,则下列正确的选项是( )。
A.scanf(“%6.2f”,&a);
B.c=getchar();putchar(c);若从键盘上输入abc后回车,则输出为a。
C.printf(“%6.2f”,23.456);则输出结果为23.46□。 (注:□代表空格字符)
D.scanf(“%3c%2d”,&a,&b);若从键盘输入123456后回车,则a值为’123’,b值为45。
10.有以下程序
#include
main()
{ int i,j, m=55;
for(i=1;i<=3;i++)
for(j=3; j<=i; j++) m=m%j;
printf("%dn ", m);
}
程序的运行结果是( )。
A.0 B.1 C.2 D.3
11.在C语言中,char型数据在内存中的存储形式是( )。
A.补码 B.反码 C.源码 D.ASCII码
12.设用到的变量均正确定义,则执行语句:(x=6)>(y=5)?1:1.5;后表达式的值为( )。
A.1 B.1.0 C.1.5 D.编译通不过
13.设 int a=12; 表达式a+=a-=a*=a的值是( )。
A. 12 B. 144 C. 0 D. 132
14.以下程序的输出结果是( )。
main( )
{ int a=011;
printf(“%#Xn”,++a);
}
A. 12 B. 10 C. A D. 0XA
15.在下列程序段中,若k为整型,则程序输出结果为( )。
k=2; while(k=0) printf(“%d”,k); k--; printf(“%dn”,k);
A. -1 B. 2 C. 0 D. 1
16.以下程序的输出结果是( )。
main()
{ int k1=1,k2=2,k3=3,x=15;
if(!k1) x--;
else if(k2) if(k3) x=4;else x=3;
printf(“x=%dn”,x);
}
A. x=4 B. x=15 C. x=14 D. x=3
17.若用到变量均正确定义,则下列说法正确的是( )。
A .x=3;x=!x--;最终x值为2。
B.printf(“%d=%%D”,20,20);则输出20=%D
C. scanf(“%d,%d”,&a,&b);在输入数据时可输入2□3后回车。(注:□代表空格字符)
D.执行程序段:x=1;do --x;while(x--);此循环为无限循环。
18.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为 。
A)1 B)2 C)3 D)4
19.以下程序运行后,a和b的值分别为( )。
#include
int main()
{ int a,b;
a=10%3,b=10/3;
printf("%d,%%%d",a,b); }
A.1,%3 B.3,%1 C.1,%1 D.1,%d
20.有以下程序,运行后的输出结果是( )。
main()
{ int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%dn",x,y,z);
}
A.2,3,3 B. 2,3,2 C. 2,3,1 D. 2,2,1
21.执行以下程序时,输入1234567<回车>,则输出结果是( )。
main()
{ int a=1,b;
scanf(“%2d%2d”,&a,&b);
printf(“a=%d b=%d”,a,b);
}
A.12 34 B.a=123 b=456 C.a=12 b=34 D.输入有错误
22.逗号表达式(a=3*5,a*4),a+15的值为( )。
A.15 B.60 C.30 D.75
23.若有说明语句:char c='72';则变量c( )。
A.包含1个字符 B.包含2个字符
C.包含3个字符 D.说明不合法,c的值不确定
24.下列程序段的运行结果是( )。
int n=0;
while(n++<3);
printf("%d",n)
A. 2 B. 3 C. 4 D. 以上都不对
25.设用到的变量均正确定义,则以下不是无限循环的语句为( )。
A. for(y=0,x=1;x>++y; i++) i=x;
B. for( ; ; i =x++);
C. while(1){x++;y--;}
D. for(i=10;a=2 ; i--) sum+=i;
26.有以下程序,运行后的输出结果是( )。
main()
{ int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d %d %dn",i,j,k);
}
A.1 2 3 B. 2 3 4 C. 2 2 3 D. 2 3 3
27.以下能正确计算1×2×3×4...×10的程序段是( )。
A. while(i<=10) {i=1; s=1; s=s*i; i++; }
B. for {i=1, s=0;i<=10; i++; } s=s*i;
C. i=1; s=1;
do {s=s*i; i++; } while(i<=10)
D. i=1; s=0;
do {s=s*i; i++; } while(i<=10)
28.以下程序段中的变量已正确定义
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);
printf(“%d”,k);
程序段的输出结果是( )
A.1212 B.123123 C.3 D.4
29.已知字符A的ASCII码值为65,执行下列程序后
#include
main()
{char a=‘A’;
int b=20;
printf(“%d,%c”,(a=a+1,a+b,b),a+‘a’ -‘A’,b);
}
A.表达式非法,输出零或不确定值 B.输出结果为20,b
C.因输出项过多,无输出或输出不确定值 D.输出结果为20,1541,20
30.以下程序的输出结果是( )
main()
{int a=2,b=-1,c=2;
if(a
main()
{ int i,t= 【1】 ;
scanf(“%d”, 【2】);
while( 【3】 ){t+= 【4】 ; 【5】;}
printf(“%dn”,t);
}
32. 下面程序的功能是:判断整数 m 是否为素数。
试题程序:
#include
#include
void main ( )
{ int m, i, k;
printf ("输入一个整数:");
scanf ("%d", &m);
k =【6】;
for ( 【7】; i <= k;【8】)
if ( m % i == 0 ) 【9】;
if (【10】)
printf ("%d是素数n", m );
else
printf ("%d不是素数n", m );
}
33. 下面程序的功能是:有一分数序列 …求这个数列的前20项之和。试题程序:
#include
main( )
{ int i,n=20;
float a=2,b=【11】,t,s=0;
for(i=1;【12】;i++)
{ s+=【13】;
t=a;
【14】;
【15】;}
printf("sum=%9.6fn",s);}
34.以下程序的功能是计算:m=1-2+3-4+…+9-n,并输出结果。请填空。
【16】
int main( )
{ int m=0,f ,i,n;
scanf(“%d”,&n);
【17】;
for(【18】; i<=n; i++)
{ m+=【19】;
f= 【20】; }
printf(“m=%d”,m)
}
35. 以下程序的功能是计算:s=1+12+123+1234+12345。请填空。
#include
int main()
{ int t,s=0,i;
【21】;
for( i=1;【22】; i++)
{ t=i+【23】 ;
s=【24】; }
printf("1+12+123+1234+12345=%dn",【25】);
}
36. 输入x,计算y值并输出。其中分段函数如下:
x<0 y=2x+3
x=0,y=0
x>0,y=(x+7)/3
#include
main()
{int x; float y ;
【26】 ;
if(x<0)【27】;
else if(【28】) y=0;
【29】 【30】;
printf(“输入x的值为%d,对应y值为%f。n”,x,y); }
37.用switch语句编程实现下列函数关系,请填空。
x
y
x<0
-1
x=0
0
0
int main()
{ int x,y;
【31】;
switch(x<0)
{case 1:【32】;break;
case 0: switch(【33】)
{case 1:y=0;【34】;
【35】:y=1;}
printf(“输入x的值为%d,对应y值为%f。n”,x,y);
}
38. 输入两个正整数m和n,求其最大公约数和最小公倍数。
#include
int main()
{ int a,b,r,t,;
printf("请输入两整数:n");
scanf("%d%d",&a,&b);
t=a*b;
if(【36】)
{a=a+b; 【37】; a=a-b; }
r=a%b;
while(【38】 )
{ a=b; 【39】; 【40】; }
printf("最大公约数是:%dn",b;
printf("最小公倍数:%dn",t/a); }
答题卡
姓名:______________ 成绩:_______________
单项选择题(每小题5分,计150分)
题号
1
2
3
4
5
6
7
8
9
10
答案
题号
11
12
13
14
15
16
17
18
19
20
答案
题号
21
22
23
24
25
26
27
28
29
30
答案
填空题(每空5分,计200分)
【1】
【2】
【3】
【4】
【5】
【6】
【7】
【8】
【9】
【10】
【11】
【12】
【13】
【14】
【15】
【16】
【17】
【18】
【19】
【20】
【21】
【22】
【23】
【24】
【25】
【26】
【27】
【28】
【29】
【30】
【31】
【32】
【33】
【34】
【35】
【36】
【37】
【38】
【39】
【40】
答题卡
姓名:______________ 成绩:_______________
单项选择题(每小题5分,计150分)
题号
1
2
3
4
5
6
7
8
9
10
答案
A
C
C
C
C
A
B
B
B
B
题号
11
12
13
14
15
16
17
18
19
20
答案
D
B
C
D
A
A
B
B
A
C
题号
21
22
23
24
25
26
27
28
29
30
答案
C
C
A
C
A
D
C
C
B
C
填空题(每空5分,计200分)
【1】0
【2】&i
【3】i>0
【4】i%10
【5】i/=10
【6】sqrt ( m )
【7】i=2
【8】i++
【9】break
【10】i > k(或i>=k+1)
【11】1
【12】i<= n
【13】a/b
【14】a=a+b
【15】b=t
【16】#include
【17】f=1
【18】i=1
【19】i*f
【20】-f
【21】t=0
【22】i<=5
【23】t*10
【24】s+t
【25】s
【26】scanf("%d",&x)
【27】y=2*x+3
【28】x==0
【29】else
【30】y=(x+7)/3
【31】scanf(“%d”,&x)
【32】y=-1
【33】x==0
【34】break
【35】default
【36】(a