全国计算机等级考试二级C语言课后习题.docx

上传人:b****3 文档编号:5295267 上传时间:2022-12-15 格式:DOCX 页数:42 大小:59.98KB
下载 相关 举报
全国计算机等级考试二级C语言课后习题.docx_第1页
第1页 / 共42页
全国计算机等级考试二级C语言课后习题.docx_第2页
第2页 / 共42页
全国计算机等级考试二级C语言课后习题.docx_第3页
第3页 / 共42页
全国计算机等级考试二级C语言课后习题.docx_第4页
第4页 / 共42页
全国计算机等级考试二级C语言课后习题.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

全国计算机等级考试二级C语言课后习题.docx

《全国计算机等级考试二级C语言课后习题.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言课后习题.docx(42页珍藏版)》请在冰豆网上搜索。

全国计算机等级考试二级C语言课后习题.docx

全国计算机等级考试二级C语言课后习题

第二章C程序设计的初步知识

一、选择题

1.以下选项中正确的整型常量是()。

A。

12.B。

—20C。

1,000D。

456

2.以下选项中正确的实型常量是()。

A.0B.3。

1415C。

0。

329×102D..871

3。

以下选项中不正确的实型常量是()。

A.2。

607E-1B.0。

8103e2C.-77。

77D.456e—2

4.以下选项中不合法的用户标识符是().

A.abc.cB。

fileC。

MainD.PRINTF

5。

以下选项中不合法的用户标识符是()。

A._123B.printfC.A$D。

Dim

6。

C语言中运算对象必须是整型的运算符是(  )。

A。

%B。

/C.!

D。

**

7.可在C程序中用作用户标识符的一组标识符是().

A.voiddefineWORDB。

as_b3_123If

C.For—abccaseD.2cDOSIG

8。

若变量已正确定义并赋值,符合C语言语法的表达式是()。

A。

a=a+7;B.a=7+b+c,a++C.int(12.3%4)D.a=a+7=c+b

9.以下叙述中正确的是().

A。

a是实型变量,C允许进行赋值a=10,但可以这样说:

实型变量中允许存放整型值

B。

在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式

C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0

D.已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3

10。

以下叙述中正确的是().

A。

在C程序中无论是整数还是实数,只要在允许的范围内部都能准确无误的表示

B.C程序由主函数组成

C.C程序由若干函数组成

D。

C程序中只允许包含一个函数

11.VC6.0中int类型变量所占字节数是()。

A.1B。

2C。

3D。

4

12。

合法的八进制数是().

A.0B。

028C.—077D。

01.0

13.不合法的十六进制数是()。

A。

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。

d=(c=32)—(b++);

2。

下列选项中不是C语句的是()。

A.{inti;i++;printf(“%d\n",i);}B.;

C。

a=5,c=10D。

{;}

3。

合法的C语言赋值语句是().

A。

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);

}

执行后的输出结果是().

A.0B。

1C.3D.不确定的值

5。

若变量已正确定义为int型,要给a、b、c输入数据,正确的输入语句是()。

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);

6。

若变量已正确定义为float型,要通过输入语句:

scanf(“%f%f%f”,&a,&b,&c);给a赋值11.0,b赋值22.0,c赋值33。

0,不正确的输入形式是().

A。

11回车22回车33B.11.0,22.0,33.0

C。

11.0回车22.033.0D.1122回车33

7。

若变量a、b、t已正确定义,要将a和b值的数进行交换,以下选项中不正确的语句组是()。

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;

8.若有正确定义语句:

doublex=5.16894;语句printf(“%f\n”,(int)(x*1000+0。

5)/(double)1000);的输出结果是().

A。

输出格式说明与输出项不匹配,输出无定值B。

5.170000

C.5。

168000D.5.169000

9.若有以下程序段:

intc1=1,c2=2,c3;

c3=c1/c2;

printf(“%d\n”,c3);

执行后的输出结果是().

A。

0B。

1/2C。

0。

5D。

1

10。

若有以下程序段:

inta=0,b=0,c=0;

c=(a—=a-5),(a=b,b+3);

printf(“%d,%d,%d\n”,a,b,c);

执行后的输出结果是().

A。

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);

12。

变量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);

三、编程题和改错题

16。

以下程序多处有错。

若指定必须按下面的形式输入数据,并且必须按下面指定的形式输出数据,请对该程序做相应的修改。

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:

2。

02.03.0

a=2。

000000,b=2。

000000,c=3。

000000

s=4。

000000,v=12。

000000

17.编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。

18。

编写程序,输入两个数:

1500和350,求出它们的商和余数并进行输出.

19。

编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。

20.编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a,然后输出a、b、c.

第四章选择结构

一、选择题

1.下列运算符中优先级最高的运算符是()。

A。

B.%C。

—=D。

&&

2.下列运算符中优先级最低的运算符是()。

A。

||B.!

=C.<=D。

+

3。

为表示关系:

,应使用的C语言表达式是()。

A.(x〉=y)&&(y>=z)B.(x〉=y)AND(y>=x)

C。

(x〉=y>=z)D.(x>=y)&(y〉=z)

4。

设a、b和c都是int型变量,且a=3,b=4,c=5,则以下表达式中值为0的表达式是()。

A.a&&bB。

a<=bC.a||b+c&&b-cD。

!

((a

c||1)

5。

有以下程序:

#include〈stdio。

h>

main()

{inta=2,b=—1,c=2;

if(a

if(b<0)c=0;

elsec+=1;

printf(“%d\n”,c);

程序的输出结果是()。

A.0B。

1C.2D。

3

6。

有以下程序:

#include〈stdio.h〉

main()

{intw=4,x=3,y=2,z=1;

printf(“%d\n”,(w〈x?

w:

z〈y?

z:

x));

程序的输出结果是()。

A。

1B。

2C。

3D.4

7.有以下程序:

#include〈stdio.h>

main()

{inta,b,s;

scanf(“%d%d”,&a,&b);

s=a;

if(a

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;

其能正确表示的数学函数关系是().

A。

B。

C.

D。

9.有以下程序:

#include〈stdio。

h〉

main()

{intk=—3;

if(k<=0)printf(“****\n”)

elseprintf(“&&&&\n”);

}

程序的输出结果是()。

A。

输出####B.输出&&&&C.输出####&&&&D。

有语法错不能通过编译

10.若a和b均是正整型变量,正确的switch语句是()。

A。

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:

y=a+b;brek;

case0:

y=b—a;break;

}

C。

switcha

{default:

x=a+b;

case10:

y=a-b;break;

case11:

x=a*d;break;

}

D。

switch(a+b)

{case10:

x=a+b;break;

case11:

y=a—b;break;

}

二、填空题

1。

C语言中用___________表示逻辑值“真",用_____________表示逻辑值“假”。

2。

C语言中的关系运算符“!

=”的优先级比“<=”________。

3.C语言中的逻辑运算符“&&”比“||”的优先级_________。

4.C语言中的关系运算符“=="比逻辑运算符“&&”的优先级_______.

5.C语言中逻辑运算符_________的优先级高于算术运算符.

6.将下列数学式改写成C语言的关系表达式或逻辑表达式:

A)__________B)_________。

A)a=b或a〈cB)|x|〉4

7.请写出以下程序的输出结果__________。

#include〈stdio。

h〉

main()

{inta=100;

if(a>100)printf(“%d\n",a〉100);

elseprintf(“%d\n”,a〈=100);

8.请写出以下表达式等价的表达式:

A)__________B)_________。

A)!

(x〉0)B)!

0

9。

当a=1,b=2,c=3时,以下if语句执行后,a、b、c中的值分别为_______、_______、______。

if(a>c)

b=a;a=c;c=b;

10。

若变量已正确定义,以下语句段的输出结果是__________。

x=0;y=2;z=3;

switch(x)

{case0:

switch(y==2)

{case1:

printf(“*”);break;

case2:

printf(“%”);break;

case1:

switch(z)

{case1:

printf(“$”);

case2:

printf(“*”);break;

default:

printf(“#”);

}

}

三、编程题

1。

若a的值小于100,请将以下选择结构改写成由switch语句构成的选择结构。

if(a〈30)m=1;

elseif(a<40)m=2;

elseif(a<50)m=3;

elseif(a<60)m=4;

elsem=5;

2.编写程序,输入一个整数,打印出它是奇数还是偶数。

3。

编写程序,输入a、b、c三个数,打印出最大者。

4。

对于以下函数:

编写程序,要求输入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);

程序段的输出结果是()。

A。

12B。

15C.20D.25

3.有以下程序段:

intn=10;

while(n〉7)

{n--;

printf(“%d\n”,n);

程序段的输出结果是().

A。

10B。

9C.10D。

9

9898

8787

76

4.有以下程序段:

intx=3;

do

{printf(“%3d”,x—=2);

}while(!

(--x));

程序段的输出结果是()。

A。

1B.30C。

1—2D。

死循环

5.有以下程序:

#include〈stdio。

h〉

main()

{inti,sum;

for(i=1;i<6;i++)

sum+=sum;

printf(“%d\n”,sum);

}

程序的输出结果是()。

A.15B。

14C.不确定D。

0

6。

有以下程序:

#include

main()

{inty=10;

for(;y〉0;y-—)

if(y%3==0)

{printf(“%d”,——y);continue;

}

}

程序的输出结果是()。

A。

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.有以下程序:

#include〈stdio。

h〉

main()

{inti;

for(i=1;i〈=5;i++)

{if(i%2)printf(“*”);

elsecontinue;

printf(“#”);

printf(“$\n”);

}

程序的输出结果是()。

A。

*#*#*#$B。

#*#*#*$C.*#*#$D.#*#*$

9。

以下叙述中正确的是()。

A。

do-while语句构成的循环不能用其他语句构成的循环来代替

B.do-while语句构成的循环只能用break语句退出

C。

有do-while语句构成循环时,只有在while后的表达式为非零时结束循环

D.有do—while语句构成循环时,只有在while后的表达式为零时结束循环

10。

有以下程序:

#include

main()

{intx,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.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;

printf(“%d\n”,m);

3.以下程序的输出结果是__________.

#include〈stdio。

h>

main()

{intx=2;

while(x-—);

printf(“%d\n”,x);

}

4.以下程序段的输出结果是_________。

inti=0,sum=1;

do{sum+=i++;}while(i〈5);

printf(“%d\n",sum);

5。

有以下程序段:

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;

do

{s=s+d;

___________;

d=1。

0/(k*(k+1));

}while(_______);

printf(“%f\n”,s);

6.以下程序的功能是:

从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。

请填空.

#include〈stdio。

h〉

main()

{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的值

2。

编写程序,求e的值,

①用for循环计算前50项。

②用while循环,计算直到某一项的值小于10—6为止.

3。

编写程序,打印以下图形:

*

***

*****

*******

*****

***

*

第六章字符型数据

一、选择题

1。

C语言中的简单数据类型有()。

A.整型、实型、逻辑型B.整型、实型、字符型

C。

整型、实型、逻辑型D。

整型、实型、逻辑型、字符型

2。

C语言中,字符(char)型数据在微机内存中的存储形式是()。

A。

反码B。

补码C.EBCDIC码D。

ASCII码

3。

设有定义语句:

chara=’\72';,则变量a()。

A。

包含1个字符B。

包含2个字符C.包含3个字符D.定义不合法

4。

C语言中,下列不合法的字符常量是()。

A。

’\xff’B.’\65’C。

’&'D.'\028’

5.C语言中,下列不合法的字符串常量是()。

A。

”\121”B。

'y=’C.”\n\n”D.”ABCD\x6d”

6。

判断char型变量c是否为大写字母的最简单且正确的表达式是()。

A.’A’〈=c〈=’Z’B。

(c>='A")||(c<='Z’)

C.(‘A’〈=c)AND(‘Z’〉=c)D.(c>=’A")&&(c〈=’Z')

7.有以下程序:

#include〈stdio。

h>

main()

{charc1='A’,c2=’Y';

printf(“%d,%d\n”,c1,c2);

}

程序的输出结果是().

A.因输出格式不合法,无正确输出B.65,90

C。

A,YD。

65,89

8。

有以下程序:

#include〈stdio.h〉

main()

{charx='A’;

x=(x>=’A’&&x〈='Z')?

(x+32):

x;

printf(“%c\n”,x);

}

程序的输出结果是()。

A.AB.aC。

ZD.z

9.有以下程序:

#include〈stdio。

h〉

main()

{charch;

ch='A'+’5’-‘3';

printf(“%d,%c\n”,ch,ch)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 预防医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1