计算机等级考试c语言程序设计习题.docx
《计算机等级考试c语言程序设计习题.docx》由会员分享,可在线阅读,更多相关《计算机等级考试c语言程序设计习题.docx(87页珍藏版)》请在冰豆网上搜索。
计算机等级考试c语言程序设计习题
第1章C语言程序设计概述
一、选择题
1.下列关于计算机语言的叙述中,正确的是_______。
A.在计算机语言中,只有机器语言属于低级语言
B.高级语言的源程序可以被计算机直接执行
C.C语言属于高级语言
D.机器语言是与所有机器无关的语言
2.源程序TEST.C经编译产生的目标文件和连接后产生的可执行文件是_______。
A.TEST.BAK和TEST.OBJB.TEST.OBJ和TEST.EXE
C.TEST.EXE和TEST.CD.TEST.BAK和TEST.EXE
3.一个C程序的执行是从_______。
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
4.以下叙述正确的是_______。
A.在C程序中,main函数必须位于程序的最前面
B.程序的每行中只能写一条语句
C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误
5.以下叙述不正确的是_______。
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.在C程序中,注释说明只能位于一条语句的后面
D.C程序的基本组成单位是函数
6.一个C语言程序是由_______。
A.一个主程序和若干子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成
7.关于C语言程序书写规则说法中正确的是_______。
A.程序语句必须占一行B.不区分大小写
C.每行必须有行号D.每条语句用分号结束
8.下面关于算法的说法,错误的是_______。
A.算法必须有输出,但不一定有输入
B.算法必须在计算机上用某种语言实现
C.算法必须在有限步执行后能结束
D.算法的每一步骤必须有确切的定义
9.结构化程序设计规定的3种基本控制结构是_______。
A.顺序、选择和转向B.层次、网状和循环
C.模块、选择和循环D.顺序、选择和循环
10.结构化程序由三种基本结构组成,三种基本结构组成的算法_______。
A.可以完成任何复杂的任务B.只能完成部分复杂的任务
C.只能完成符合结构化的任务D.只能完成一些简单的任务
二、填空题
1.C源程序的基本单位是________,一个C源程序中必须包括一个________。
2.在一个C源程序中,注释部分两侧的分界符分别为________和________。
3.C语言源程序文件的后缀是________;经过编译后,生成文件的后缀是________;经过连接后,生成的文件的后缀是________。
4.结构化程序由________、________、________,3种基本结构组成。
三、编程题
1.编写一个程序,用2个printf()语句分别输出学校名称和自己的姓名。
2.编写一个程序,用1个printf()语句输出学校名称和自己的姓名。
第2章数据类型及其运算
一、选择题
1.下面四个选项中,均是不合法的用户标识符的选项的是____C___。
A.Ap_odoB.floatlao_A
C.b-agotointD._123tempINT
2.以下选项中可以作为C语言中合法整数的是___C____。
A.10110BB.0386C.0XffaD.x2a2
3.以下选项中合法的实型常数是__C_____。
A.5E2.0B.E-3C.2E0D.1.3E
4.以下选项中可作为C语言合法常量的是__A_____。
A.-80B.-080C.-8e1.0D.-80.0e
5.下面四个选项中,均是合法转义字符的选项是__B___。
A.'\''\\''\n'B.'\'''\017''\t'
C.'\018''\f''\xab'D.'\\0''\101''x1f'
6.下面不正确的字符串常量是__A_____。
A.'abc'B."12’12"C."0"D.""
7.以下选项中不属于C语言的类型的是____D___。
A.signedshortintB.unsignedlongint
C.unsignedintD.longshort
8.在C语言中,要求运算数必须是整型的运算符是___D____。
A./B.++C.!
=D.%
9.以下运算符中优先级最低的是___A____,以下运算符中优先级最高的是__B_____。
A.&&B.<=C.||D.==
10.若x=2,y=3,则x&&y的结果是___B____。
A.0B.1C.2D.3
11.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为__C_____。
A.4B.16C.32D.52
12.若有定义:
inta=7;floatx=2.5,y=4.7;,则表达式x+a%3*(int)(x+y)%2/4的值是__A_____。
A.2.500000B.2.750000C.3.500000D.0.000000
13.若有以下类型说明语句:
charw;intx;floaty;doublez;,则表达式w*x+z-y的结果为_D______类型。
A.floatB.charC.intD.double
14.已有定义:
intx=3,y=4,z=5;则表达式!
(x+y)+z–1&&y+z/2的值是__D_____。
A.6B.0C.2D.1
15.以下选项中非法的表达式是___D____。
A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1
16.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为___C____。
A.0B.1C.2D.3
17.若变量c为char类型,能正确判断出c为小写字母的表达式是___D____。
A.'a'<=c<='z'B.(c>='a')||(c<='z')
C.('a'<=c)and('z'>=c)D.(c>='a')&&(c<='z')
18.若x和y代表整型数,以下表达式中不能正确表示数学关系|x―y|<10的是____C___。
A.abs(x–y)<10B.x–y>-10&&x–y<10
C.!
(x–y)<-10||!
(y–x)>10D.(x–y)*(x–y)<100
二、填空题
1.C语言中的标识符只能由三种字符组成,它们是_______,_______和_______。
2.在C语言中(以32位PC机为例),一个char型数据在内存中所占的字节数为_______,一个int型数据在内存中所占的字节数为_______,一个float型数据在内存中所占的字节数为_______,一个double型数据在内存中所占的字节数为_______。
3.有以下定义intm=5,y=2;则计算表达式y+=y-=m*=y后的y值是_______。
4.若定义:
inta=2,b=3;floatx=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是_______。
5.x和n均为int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为_______。
6.设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为_______。
7.a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为_______,b值为_______,c值为_______。
8.a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为_______。
9.设y是int型变量,请写出判断y为奇数的关系表达式_______。
10.若a,b,c均为整型变量,则执行以下语句a=b=c=0;a++&&++b||c++;后,a的值为_______,b的值为_______,c的值为_______。
三、程序阅读题
1.下面程序的运行结果是__b_____。
#include
intmain()
{
charm;
m='B'+32;
printf("%c\n",m);
return0;
}
2.下面程序的运行结果是__0_____。
#include
intmain()
{
intx=3,y=5;
printf("%d\n",x/y);
return0;
}
3.下面程序的运行结果是___0____。
#include
intmain()
{
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
return0;
}
4.下面程序的运行结果是__10,2_____。
#include
intmain()
{
intx=10,y=3;
printf("%d,%d\n",x++,--y);
return0;
}
5.下面程序的运行结果是_9,10,9,10______。
#include
intmain()
{
inti,j;
i=8;
j=10;
printf("%d,%d,%d,%d\n",i,j,++i,j++);
return0;
}
6.下面程序的运行结果是____3,1,0,0___。
#include
intmain()
{
inta=1,b=2,c=3;
printf("%d,%d,%d,%d\n",a=b=c,a=b==c,a==(b=c),a==(b==c));
return0;
}
7.下面程序的运行结果是__3,20,30,1_____。
#include
intmain()
{
inta=2,b=20,c=30,d;
d=++a<=10||b-->=20||c++;
printf("%d,%d,%d,%d\n",a,b,c,d);
return0;
}
第3章语句与输入输出
一、选择题
1.设有定义:
longx=123456L;,则以下能够正确输出变量x值的语句是_______。
A.printf("x=%d\n",x);B.printf("x=%ld\n",x);
C.printf("x=%8dL\n",x);D.printf("x=%LD\n",x);
2.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%X\n",m);
执行后输出结果是_______。
A.0X0B.0x0C.0D.0XABC
3.已知chara='\103';则语句printf("%3d",a);执行后的输出结果为_______。
A.67B.'C'C.67D.103
4.已知a、b、c为int类型,执行语句:
scanf("a=%d,b=%d,c=%d",&a,&b,&c);,若要使得a为1,b为2,c为3。
则以下选项中正确的输入形式是_______。
A.a=1B.1,2,3C.a=1,b=2,c=3D.123
b=2
c=3
5.已知i、j、k为int型变量,若从键盘输入:
1,2,3↙,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是_______。
A.scanf("%2d%2d%2d",&i,&j,&k);B.scanf("%d%d%d",&i,&j,&k);
C.scanf("%d,%d,%d",&i,&j,&k);D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
6.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是_______。
A.INPUTx、y、z;
B.scanf("%d,%d,%d",&x,&y,&z);
C.scanf("%d,%d,%d",x,y,z);
D.read("%d,%d,%d",&x,&y,&z);
7.若有inta;floatb;scanf("%d,%f",&a,&b);使a、b的值分别为30和5.5,则正确的输入是_______。
A.305.5B.30,5.5C.a=30,b=5.5D.a=30b=5.5
8.根据以下定义语句和数据的输入方式,scanf语句的正确形式应为_______。
已有定义:
floatf1,f2;
数据的输入方式:
4.52↙
3.5↙
A.scanf("%f,%f",&f1,&f2);
B.scanf("%f%f",&f1,&f2);
C.scanf("%3.2f%2.1f",&f1,&f2);
D.scanf("%3.2f%2.1f",&f1,&f2);
9.以下针对scanf()函数的叙述中,正确的是_______。
A.输入项可以为一实型常量,如scanf("%f",3.5);
B.只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");
C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如:
scanf("%4.2f",&f);
D.当输入数据时,必须指明变量的地址,如scanf("%f",&f);
10.有以下程序
#include
intmain()
{
charc1='1',c2='2';
c1=getchar();c2=getchar();
putchar(c1);putchar(c2);
}
当运行时输入a↙后,以下叙述正确的是_______。
A.变量c1被赋予字符a,c2被赋予回车符
B.程序将等待用户输入2个字符
C.变量c1被赋予字符a,c2中仍是原有字符2
D.变量c1被赋予字符a,c2中将无确定值
二、填空题
1.已知floatf=123.467;,则执行语句printf("%.2f\n",f);,输出结果是_______。
2.已知字符'A'的ASCII值为十进制65,变量c为字符型,则执行语句c='A'+'6'-'3';printf("%c\n",c);,输出结果是_______。
3.scanf()函数在输入数据时默认的分隔符有_______、Tab、空格。
4.已知:
inti=10,j=1;则执行语句printf("%d,%d",i++,++j);后,输出结果_______。
三、程序阅读题
1.下面程序的运行结果是__261_____。
#include
intmain()
{
intm=177;
printf("%o\n",m);
return0;
}
2.下面程序的运行结果是___20____。
#include
intmain()
{
intn=0;
n+=(n=10);
printf("%d\n",n);
return0;
}
3.下面程序的运行结果是_201,10______。
#include
intmain()
{
inta=201,b=012;
printf("%2d,%2d\n",a,b);
return0;
}
4.下面程序的运行结果是_y=4630,y=4630______。
#include
intmain()
{
inty=2456;
printf("y=%3o\n",y);
printf("y=%8o\n",y);
return0;
}
5.下面程序的运行结果是__*3.140000,3.142*_____。
#include
intmain()
{
printf("*%f,%4.3f*\n",3.14,3.1415);
return0;
}
6.下面程序的运行结果是_______。
#include
intmain()
{
charc='x';
printf("c:
dec=%d,oct=%o,hex=%x,ASCII=%c\n",c,c,c,c);
return0;
}
7.下面程序的运行结果是_______。
#include
intmain()
{
intx=1,y=2;
printf("x=%dy=%d*sum*=%d\n",x,y,x+y);
printf("10squaredis:
%d\n",10*10);
return0;
}
8.下面程序的运行结果是_______。
#include
intmain()
{
intn=100;
charc;
floatf=10.0;
doublex;
x=f*=n/=(c=48);
printf("%d%d%3.1f%3.1f\n",n,c,f,x);
return0;
}
9.下面程序的运行结果是_______。
运行时从键盘输入:
251310↙。
#include
intmain()
{
intx,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("x+y+z=%d\n",x+y+z);
return0;
}
10.下面程序的运行结果是_______。
运行时从键盘输入:
55AB↙。
#include
intmain()
{
intk=0;charc1='a',c2='b';
scanf("%d%c%c",&k,&c1,&c2);
printf("%d,%c,%c\n",k,c1,c2);
return0;
}
四、编程题
1.编写一个程序,读入一个字母,输出与之对应的ASCII码值。
2.编写一个程序,从键盘输入圆的半径r,圆柱的高h,分别计算出圆周长cl、圆面积cs和圆柱的体积cv,输出计算结果时要求保留小数点后4位。
3.编写一个程序,输入一个三位数,分别求出这个三位数的个位、十位和百位上的数。
第4章选择结构程序设计
一、选择题
1.if语句的选择条件是_d____。
A.只能用关系表达式B.只能用关系表达式或逻辑表达式
C.只能用逻辑表达式D.可以用任何表达式
2.已知intx=2,y=-1,z=3;,执行下面语句后,z的值是____c___。
if(xA.1B.2C.3D.4
3.以下程序段的输出结果是___c____。
inta=2,b=1,c=2;
if(a
printf("%d\n",c);
A.0B.1C.2D.3
4.当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为__b_____。
if(a
if(celse
if(aif(belsex=3;
elsex=6;
elsex=7;
A.1B.2C.3D.6
5.为了避免嵌套的if-else的二义性,C语言规定,else与___b____配对。
A.与最外层的ifB.其之前最近的不带else的if
C.其之后最近的ifD.与最近的{}之前的if
6.若有定义:
floatw;inta,b;则合法的switch语句是__d_____。
A.switch(w)B.switch(a)
{{
case1.0:
printf("*\n");case1printf("*\n");
case2.0:
printf("**\n");case2printf("