全国计算机等级考试二级C语言课后习题Word文档下载推荐.docx
《全国计算机等级考试二级C语言课后习题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言课后习题Word文档下载推荐.docx(42页珍藏版)》请在冰豆网上搜索。
01.0
13.不合法的十六进制数是()。
oxffB。
0XabcC.0x11D.0x19
二、填空题
14.若k为int型变量且赋值11。
请写出运算k++后表达式的值________和变量k的值_______.
15.若x为double型变量,请写出运算x=3.2,++x后表达式的值______和变量x的值_____.
16。
函数体由符号_____开始,到符号______结束。
函数体内的前面是_______部分,后面是________部分.
17。
C语言中的标识符可分为_________、__________和预定义标识符三类。
18.在C语言程序中,用关键字__________定义基本整型变量,用关键字_________定义单精度实型变量,用关键字__________定义双精度实型变量。
19。
把a1、a2定义成双精度实型变量,并赋初值1的定义语句是______________.
20。
C程序中定义的变量,代表内存中的一个_________________。
21。
表达式3.5+1/2的计算结果是___________。
22.对数学式
,写出三个等价的C语言表达式__________、__________、________.
23.表达式s=10应当读作_______________。
三、上机改错题
24.请指出以下C程序的错误所在:
#includestdio.h;
main();
/*mainfunction*/
floatr,s;
/*/*risradius*/,/*sisareaofcircular*/*/
r=5.0;
s=3。
14159*r*r;
printf(“%f\n”,s)
25。
请指出以下C程序的错误所在:
main/*mainfunction*/
{floata,b,c,v;
/*a,b,caresides,visvolumeofcube*/
a=2.0;
b=3.0;
c=4.0
v=a*b*c;
printf(“%f\n”,v)
}
第三章顺序结构
1.若a、b、c、d都是int型变量且初值为0,以下选项中不正确的赋值语句是().
A.a=b=c=100;
B.d++;
C.c+b;
d=(c=32)—(b++);
2。
下列选项中不是C语句的是()。
A.{inti;
i++;
printf(“%d\n"
,i);
}B.;
C。
a=5,c=10D。
{;
合法的C语言赋值语句是().
a=b=58B。
k=int(a+b);
C。
a=58,b=58D。
--i;
4。
有以下程序:
#include〈stdio.h〉
main()
{intx=10,y=3;
printf(“%d\n"
,y=x/y);
}
执行后的输出结果是().
1C.3D.不确定的值
若变量已正确定义为int型,要给a、b、c输入数据,正确的输入语句是()。
A.read(a,b,c);
B。
scanf(“%d%d%d”,a,b,c);
scanf(“%D%D%D”,&
a,%b,%c);
D.scanf(“%d%d%d"
,&
a,&b,&
c);
若变量已正确定义为float型,要通过输入语句:
scanf(“%f%f%f”,&
a,&b,&c);
给a赋值11.0,b赋值22.0,c赋值33。
0,不正确的输入形式是().
11回车22回车33B.11.0,22.0,33.0
11.0回车22.033.0D.1122回车33
7。
若变量a、b、t已正确定义,要将a和b值的数进行交换,以下选项中不正确的语句组是()。
a=a+b,b=a—b,a=a—b;
B.t=a,a=b,b=t;
C.a=t;
t=b;
b=a;
t=b;
a=t;
8.若有正确定义语句:
doublex=5.16894;
语句printf(“%f\n”,(int)(x*1000+0。
5)/(double)1000);
的输出结果是().
输出格式说明与输出项不匹配,输出无定值B。
5.170000
C.5。
168000D.5.169000
9.若有以下程序段:
intc1=1,c2=2,c3;
c3=c1/c2;
printf(“%d\n”,c3);
0B。
1/2C。
5D。
1
若有以下程序段:
inta=0,b=0,c=0;
c=(a—=a-5),(a=b,b+3);
printf(“%d,%d,%d\n”,a,b,c);
3,0,-10B.0,0,5C。
—10,3,—10D。
3,0,3
11。
若有以下定义,请写出以下程序段中输出语句执行后的输出结果________。
inti=—200,j=2500;
printf(“
(1)%d,%d"
,i,j);
printf(“
(2)i=%d,j=%d\n"
i,j);
printf(“(3)i=%d\nj=%d\n”,i,j);
变量i、j、k已定义为int型并均有初值0,用以下语句进行输入时:
scanf(“%d”,&
i);
scanf(“%d"
&
j);
scanf(“%d"
&k);
从键盘输入:
12.3回车则变量i、j、k的值分别是______、_______、_______。
13。
复合语句在语法上被认为是__________________。
空语句的形式是_________________。
14.C语句的最后用__________结束。
15。
以下程序段要求通过scanf语句给变量赋值,然后输出变量的值。
写出运行时给k输入100,给a输入15.81,给x输入1.89234时的三种可能的输入形式____________________、____________________________、___________________________________。
intk;
floata;
doublex;
scanf(“%d%f%lf”,&
k,&a,&
x);
printf(“k=%d,a=%f,x=%lf\n”,k,a,x);
三、编程题和改错题
以下程序多处有错。
若指定必须按下面的形式输入数据,并且必须按下面指定的形式输出数据,请对该程序做相应的修改。
main
{doublea,b,c,s,v;
printf(inputa,b,c:
\n);
scanf(“%d%d%d”,a,b,c);
s=a*b;
v=a*b*c;
printf(“%d%d%d”,a,b,c);
printf(“s=%f\n”,s,”v=%d\n”,v);
当程序执行时,屏幕的显示和要求输入形式如下:
inputa,b,c:
02.03.0
a=2。
000000,b=2。
000000,c=3。
000000
s=4。
000000,v=12。
17.编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。
18。
编写程序,输入两个数:
1500和350,求出它们的商和余数并进行输出.
编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。
20.编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a,然后输出a、b、c.
第四章选择结构
1.下列运算符中优先级最高的运算符是()。
!
B.%C。
—=D。
&
2.下列运算符中优先级最低的运算符是()。
||B.!
=C.<
=D。
+
为表示关系:
,应使用的C语言表达式是()。
A.(x〉=y)&
(y>
=z)B.(x〉=y)AND(y>
=x)
(x〉=y>
=z)D.(x>
=y)&
(y〉=z)
设a、b和c都是int型变量,且a=3,b=4,c=5,则以下表达式中值为0的表达式是()。
A.a&&bB。
a<
=bC.a||b+c&
b-cD。
!
((a<
b)&&
!
c||1)
有以下程序:
#include〈stdio。
h>
{inta=2,b=—1,c=2;
if(a<
b)
if(b<
0)c=0;
elsec+=1;
printf(“%d\n”,c);
程序的输出结果是()。
1C.2D。
3
{intw=4,x=3,y=2,z=1;
printf(“%d\n”,(w〈x?
w:
z〈y?
z:
x));
1B。
3D.4
7.有以下程序:
#include〈stdio.h>
{inta,b,s;
scanf(“%d%d”,&a,&b);
s=a;
if(a<
b)s=b;
s*=s;
printf(“%d\n”,s);
若执行以上程序时从键盘上输入3和4,则输出结果是()。
A.14B。
16C。
18D。
20
8.有以下程序片段:
y=—1;
if(x!
=0)
if(x〉0)y=1;
elsey=0;
其能正确表示的数学函数关系是().
B。
C.
9.有以下程序:
#include〈stdio。
h〉
{intk=—3;
if(k<
=0)printf(“****\n”)
elseprintf(“&
&&\n”);
输出####B.输出&
C.输出####&
&&
&D。
有语法错不能通过编译
10.若a和b均是正整型变量,正确的switch语句是()。
switch(pow(a,2)+pow(b,2))
{case1:
case3:
y=a+b;
break;
case0:
case5:
y=a-b;
B.
switch(a*a+b*b);
{case3:
case1:
brek;
case0:
y=b—a;
break;
switcha
{default:
x=a+b;
case10:
case11:
x=a*d;
switch(a+b)
{case10:
case11:
y=a—b;
1。
C语言中用___________表示逻辑值“真"
用_____________表示逻辑值“假”。
C语言中的关系运算符“!
=”的优先级比“<
=”________。
3.C语言中的逻辑运算符“&&
”比“||”的优先级_________。
4.C语言中的关系运算符“=="
比逻辑运算符“&
&”的优先级_______.
5.C语言中逻辑运算符_________的优先级高于算术运算符.
6.将下列数学式改写成C语言的关系表达式或逻辑表达式:
A)__________B)_________。
A)a=b或a〈cB)|x|〉4
7.请写出以下程序的输出结果__________。
{inta=100;
if(a>
100)printf(“%d\n"
a〉100);
elseprintf(“%d\n”,a〈=100);
8.请写出以下表达式等价的表达式:
A)!
(x〉0)B)!
9。
当a=1,b=2,c=3时,以下if语句执行后,a、b、c中的值分别为_______、_______、______。
c)
b=a;
a=c;
c=b;
若变量已正确定义,以下语句段的输出结果是__________。
x=0;
y=2;
z=3;
switch(x)
{case0:
switch(y==2)
{case1:
printf(“*”);
case2:
printf(“%”);
case1:
switch(z)
{case1:
printf(“$”);
default:
printf(“#”);
三、编程题
若a的值小于100,请将以下选择结构改写成由switch语句构成的选择结构。
if(a〈30)m=1;
elseif(a<
40)m=2;
50)m=3;
elseif(a<
60)m=4;
elsem=5;
2.编写程序,输入一个整数,打印出它是奇数还是偶数。
编写程序,输入a、b、c三个数,打印出最大者。
对于以下函数:
编写程序,要求输入x的值,输出对应y的值。
第五章循环结构
1.有以下程序段:
intk,j,s;
for(k=2;
k<
6;
k++,k++)
{s=1;
for(j=k;
j〈6;
j++)s+=j;
printf(“%d\n”,s);
程序段的输出结果是().
A.9B。
1C.11D.10
2.有以下程序段:
inti,j,m=0;
for(i=1;
i<
=15;
i+=4)
for(j=3;
j〈=19;
j+=4)
m++;
printf(“%d\n”,m);
程序段的输出结果是()。
12B。
15C.20D.25
3.有以下程序段:
intn=10;
while(n〉7)
{n--;
printf(“%d\n”,n);
10B。
9C.10D。
9
9898
8787
76
4.有以下程序段:
intx=3;
do
{printf(“%3d”,x—=2);
}while(!
(--x));
1B.30C。
1—2D。
死循环
5.有以下程序:
{inti,sum;
for(i=1;
i++)
sum+=sum;
printf(“%d\n”,sum);
A.15B。
14C.不确定D。
#include<
stdio.h〉
{inty=10;
for(;
y〉0;
y-—)
if(y%3==0)
{printf(“%d”,——y);
continue;
741B.852C.963D.875421
7.有以下程序段:
intx;
for(x=3;
x<
6;
x++)
printf((x%2)?
(“**%d”):
(“##%d\n”),x);
A.**3B.##3C。
##3D.**3##4
##4**4**4##5**5
**5##5
8.有以下程序:
{inti;
i〈=5;
{if(i%2)printf(“*”);
elsecontinue;
printf(“#”);
printf(“$\n”);
*#*#*#$B。
#*#*#*$C.*#*#$D.#*#*$
以下叙述中正确的是()。
do-while语句构成的循环不能用其他语句构成的循环来代替
B.do-while语句构成的循环只能用break语句退出
有do-while语句构成循环时,只有在while后的表达式为非零时结束循环
D.有do—while语句构成循环时,只有在while后的表达式为零时结束循环
stdio.h>
{intx,i;
for(i=1;
=100;
{x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf(“%d”,x);
printf(“\n”);
A.2870B。
4284C.2668D.3981
1.当执行以下程序段后,i的值是________、j的值是_________、k的值是________.
inta,b,c,d,i,j,k;
a=10;
b=c=d=5;
i=j=k=0;
for(;
a>
b;
++b)i++;
while(a>
++c)j++;
dok++;
while(a>
d++);
2.以下程序段的输出结果是_________。
intk,n,m;
n=10;
m=1;
k=1;
while(k++<
=n)m*=2;
3.以下程序的输出结果是__________.
{intx=2;
while(x-—);
printf(“%d\n”,x);
4.以下程序段的输出结果是_________。
inti=0,sum=1;
do{sum+=i++;
}while(i〈5);
,sum);
有以下程序段:
s=1。
0;
for(k=1;
k〈=n;
k++)
s=s+1.0/(k*(k+1));
printf(“%f\n”,s);
请填空,使下面的程序段的功能完全与之等同。
s=0.0;
___________;
k=0;
{s=s+d;
___________;
d=1。
0/(k*(k+1));
}while(_______);
printf(“%f\n”,s);
6.以下程序的功能是:
从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请填空.
{floatx,amax,amin;
scanf(“%f”,&x);
amax=x;
amin=x;
while(_________)
{if(x>
amax)amax=x;
if(_______)amin=x;
scanf(“%f”,&x);
printf(“\namax=%f\namin=%f\n”,amax,amin);
1.编写程序,求1—3+5-7+…-99+101的值
编写程序,求e的值,
①用for循环计算前50项。
②用while循环,计算直到某一项的值小于10—6为止.
编写程序,打印以下图形:
*
***
*****
*******
*****
***
第六章字符型数据
C语言中的简单数据类型有()。
A.整型、实型、逻辑型B.整型、实型、字符型
整型、实型、逻辑型D。
整型、实型、逻辑型、字符型
C语言中,字符(char)型数据在微机内存中的存储形式是()。
反码B。
补码C.EBCDIC码D。
ASCII码
设有定义语句:
chara=’\72'
;
,则变量a()。
包含1个字符B。
包含2个字符C.包含3个字符D.定义不合法
C语言中,下列不合法的字符常量是()。
’\xff’B.’\65’C。
’&
'
D.'
\028’
5.C语言中,下列不合法的字符串常量是()。
”\121”B。
y=’C.”\n\n”D.”ABCD\x6d”
判断char型变量c是否为大写字母的最简单且正确的表达式是()。
A.’A’〈=c〈=’Z’B。
(c>
='
A"
)||(c<
Z’)
C.(‘A’〈=c)AND(‘Z’〉=c)D.(c>
=’A"
)&
(c〈=’Z'
)
{charc1='
A’,c2=’Y'
printf(“%d,%d\n”,c1,c2);
程序的输出结果是().
A.因输出格式不合法,无正确输出B.65,90
A,YD。
65,89
#include〈stdio.h〉
{charx='
A’;
x=(x>
=’A’&
&x〈='
Z'
)?
(x+32):
x;
printf(“%c\n”,x);
A.AB.aC。
ZD.z
{charch;
ch='
A'
+’5’-‘3'
printf(“%d,%c\n”,ch,ch)