C语言习题
一、填空题
1、一个C程序有且只有一个main 函数
2、表达式10%3的结果为  1
3、表达式10/3的结果为  3
4、表达式15%7的结果为1
5、设int m=1,n=2,则++m==n的结果是  1
6、在16位PC环境下,字符常量‘a’在内存中应占1 个字节,字符串常量“a”应占2 个字节。
7、一个C语言的语句至少应包含一个分号。
8、若有以下定义,则执行表达式y+=y-=m*=y后的y值是-16
int m=5,y=2;
9、程序设计的三大结构是顺序结构、选择结构、循环结构。
10、执行下列语句后,a=12,a+=a-=a*a,a的值是 -264
11、C 程序注释是由 /*和*/所界定的文字信息组成的。
12、C源程序的基本单位是函数。
13、函数是具有相对独立功能的程序段。
14、C语言中的标识符可以由3种字符组成,它们是:英文字母、下划线、数字,并且第一
个字符必须是字母或下划线。
15、以下程序执行后的输出结果是-4 。
void main()
{
int n=0,m=1,x=2;
if(!n) x=x-1;
if(m) x=x-2;
if(x) x=x-3;
printf(“%d”,x);
}
16、以下程序执行后的输出结果是5,0,3 。
void main()
{
int a=4,b=3,c=5,t=0;
if(a<b) t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf(“%d,%d,%d”,a,b,c);
}
17、以下程序执行后的输出结果是20,0 。
void main()
{
int x=10,y=20,t=0;
if(x==y) t=x;x=y;y=t;
printf(“%d,%d”,x,y);
}
18、若运行程序时输入数据为:60<CR>,则以下程序执行后的输出结果是60 60 60 。
void main()
{
int a;
scanf(“%d”,&a);
if(a>50) printf(“%d\t”,a);
if(a>40) printf(“%d\t”,a);
if(a>30) printf(“%d\t”,a);
}
19、以下程序执行后的输出结果是0 。
void main()
{ int a=5,b=4,c=3,d; d=(a>b>c); printf(“%d”,d); }
20、以下程序执行后的输出结果是0 。
void main()
{ int t=1,i=5; for(; i>=0;i--) t*=i; printf(“%d”,t);}
21、以下程序执行后的输出结果是1,3,2 。
void main()
{ int i,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{ case 0:m++;n++;break;
case 10:n++;break;
default:k++;n++;
}
printf(“%d,%d,%d”,m,n,k);}
22、执行以下程序后,输出’#’号的个数是6个。
void main()
{ int i,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)printf(“#”);
}
23、以下程序执行后的输出结果是17 。
void main()
{ int x=15;
while(x>10 && x<50)
{x++;
if(x/3) {x++;break;}
else continue;
}
printf(“%d”,x);
}
24、以下程序执行后的输出结果是5。
void main()
{ int s,i;for(s=0,i=1;i<3;i++,s+=i);
printf(“%d”,s);
}
二、选择题(50分)
1、一个C语言程序是由  C 组成。
A.主程序
B.子程序
C.函数
D.过程
2、一个C语言程序总是从  C 开始执行。
A.主程序
B.子程序
C.主函数
D.函数
3、以下叙述正确的是  D 。
A.在C程序中,main函数必须位于子程序的最前面
B.C程序的每一行中只能写一条语句
C.在对一个C程序进行编译的过程中,可发现注释中的拼写错误
D.C语言本身没有输入输出语句
4、一个C语言程序是由  B
A.一个主程序和若干子程序组成B.若干函数组成
C.若干过程组成D.若干子程序组成
5、以下叙述不正确的是:  D
A. 一个C源程序可以由一个或多个函数组成
B. 一个C源程序必须包含一个main函数
C. C程序的基本组成单位是函数
D. 在C程序中,注释说明只能位于一条语句的后面
6、C语言中,最简单的数据类型是  B 。
A.整形、实型、逻辑型
B.整型、实型、字符型
C.整型、字符型、逻辑型
D.整型、实型、逻辑型、字符型
7、下列关于c语言用户标识符的叙述中正确的是  B 。
A.用户标识符中可以出现下划线和中划线(减号)
B.用户标识符中不可以出现中划线,但可以出现下划线
C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
8、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符  C
A.必须为字母B.必须为下划线
C.必须为字母或下划线D.可以是字母,数字和下划线中任-种字符
9、已知各变量的类型说明如下:
int i=8,k,a,b;
unsigned long w=5;
double x=1.42, y=5.2;
则以下不符合C语言语法的表达式是:    B
A.a+=a-=(b= 4)*(a=3) B.a=a*3=2
C.x%(-3) D.y=f1oat(i)
10、以下正确的叙述是:    D
A.在C程序中,每行中只能写一条语句
B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数据
C.在C程序中,无论是整数还是实数,都能被准确无误地表示
D.在C程序中,%是只能用于整数运算的运算符
11、若有说明语句:char c='\72'则变量c    A
A.包含1个字符B.包含2个字符
C.包含3个字符D.说明不合法,c的值不确定
12、sizeof(float)是:    C
A.一个双精度型表达式B.一个整型表达式
C.一种函数调用D.一个不合法的表达式
字符串常量所占字节
(说明:sizeof是一个求字节数的运算符,不是函数名,它同时也是一个关键字。)13、有以下程序段:
int m=0,n=0;char c=’a’;
scanf(“%d%d%d”,&m,&c,&n);
printf(“%d,%c,%d”,m,c,n);
若从键盘上输入:10A10<CR>(<CR>表示回车),则输出结果是  A 。
A.10,A,10
B.10,a,10
C.10,a,0
D.10,A,0
14、下面标识符中,不合法的用户标识符为  D 。
A. Pad
B. a_10
C. _124
D. a#b
15、  B 是C语言提供的合法的数据类型关键字。
A. Float
B. signed
C. integer
D. Char
17、不正确的字符串常量是  A 。
A. ‘abc’
B. “12’12”
C.“0”
D. “”
18、若定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是B 。
A.7 0    C.3.500000    D.0.00000
19、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A’+’6’-’3’;后,c2
中存放的字母为  A 。
B.68
C.C
D.不确定的值
20、对于int型变量k1,k2,k3,k4,若用以下语句:
scanf(“%d%d”,&k1,&k2);
scanf(“%d%d”,&k3,&k4);
将10赋给k1,k3,将20赋给k2,k4,则应按  B 格式输入数据。
A.1020<CR> 1020<CR>
B.10 20<CR> 10 20<CR>
C.10,20<CR> 10,20<CR>
D.10 20<CR> 10,20<CR>
21、有定义语句:int x,y;,若要通过scanf(“%d%d”,&x,&y)语句使变量x得到数值11,变量y
得到数值12,下面4组输入形式中,正确的是  C 。
A. 1112<CR>
B.12,11<CR>
C.11 12<CR>
D.11,<CR> 12<CR>
22、设有以下定义:
#define    d    2
int a=0;double b=1.25;char c=’A’;
则下面语句中错误的是  D 。
A.a++;
B.b++;
C.c++;
D.d++;
23、若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum的
值为:  B
A. 7
B. 8    C
(解析:这是一个逗号表达式,第一个表达式为sum=num++,执行后sum的值为7,第二个表达式为sum++,执行后sum的值为8)
24、能正确表示“当X的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是  B 。
A.(X>=1) &&(X<=10) &&(X>=200)&&(X<=210)
B.(X>=1) &&(X<=10)||(X>=200)&&(X<=210)
C.(X>=1) ||(X<=10)||(X>=200)||(X<=210)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。