C上总练习题及参考答案Word格式.docx

上传人:b****6 文档编号:20624867 上传时间:2023-01-24 格式:DOCX 页数:22 大小:27.81KB
下载 相关 举报
C上总练习题及参考答案Word格式.docx_第1页
第1页 / 共22页
C上总练习题及参考答案Word格式.docx_第2页
第2页 / 共22页
C上总练习题及参考答案Word格式.docx_第3页
第3页 / 共22页
C上总练习题及参考答案Word格式.docx_第4页
第4页 / 共22页
C上总练习题及参考答案Word格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C上总练习题及参考答案Word格式.docx

《C上总练习题及参考答案Word格式.docx》由会员分享,可在线阅读,更多相关《C上总练习题及参考答案Word格式.docx(22页珍藏版)》请在冰豆网上搜索。

C上总练习题及参考答案Word格式.docx

a与表达式等价

A.a==0B.a==1C.a!

=1D.a!

=0

21.设有说明:

inta,b;

执行语句:

b=(a=3*5,a*4),a+15;

之后,b的值为。

A.15B.30C.60D.90

22.下列表达式中,错误的是。

A.4.0%2.0B.k+++jc.a+b>

c+d?

a:

bD.x*=y+25

25.如果整型量a,b,c的值分别为5、4、3,则语句if(a>

=b>

=c)c++;

执行后c的值是

A,语法错误B.4

C.2D.3有warnning,但if结果为假

26.设标识符ch,a都被定义为字符型变量,以下赋值语句不正确的是_B_

A.ch=a+’3’;

B.ch=’ch’+’a’;

C.ch=’c’+’h’;

D.ch+=ch-a

28.将变量a强制转换为具有b类型的数据,应表示为_AC_。

A.(b)aB.a(b)C.b(a)D.(a)b

29.有整型变量x,y,其中y!

=0,下列与x等价

30.已知整型变量a和b的当前值分别为13和16.a&

b的值是A

A.0(位运算)B.1C.29D.3

32.C++将数据分为若干类型,定义数据类型实际给出了两方面的信息:

定义该类型数据B。

A有效数字位数和数值表示范围

B占用多大存储空间和允许的运算

C数值和字符的不同表示以及适用范围

D适用范围和允许的运算

33.以下给出的标识符中C可用作合法的变量名。

AgotoB$priceCsumD9kilo

34.设inta=l,b=2;

那么执行表达式a++&

++b;

后a和b的值分别是D。

A1和2B2和2

C1和3D2和3

36.设整型变量X的值是5,则表达式2<

X<

5的值是B。

A不确定B1C0D表达式非法

37.a≠b且e≤d的c++表达式描述为D。

Aa◇b,c<

=dBa!

=b&

c=<

d

Ca=!

b&

c<

=dDa!

=d

38.如果定义了字符变量ch,以下B语句可以实现将键入的字符(包括空格、回车及间隔符)赋予ch。

Acin>

>

chBcin.get(ch)

Ccin>

get(ch)Dch=get()

39.设有变量定义imx=100,y=1,Z,若执行语句Z=y>

0?

++x:

--x,变量z的值为C。

A99B100C10lD102

41.用#include命令包含的文件是C

A目标文件B可执行文件C源程序文件D二进制文件

42.若有a=13,b=5,c=3则a%b*c的值为B

A6B9C7.8D8

44.若有宏定义和变量说明如下:

#defineX1

#defineYX+1

#defineZY*X/2

inta;

a=Y;

则执行以下语句后输出的结果是:

B

cout<

Z<

--a;

A75B11C125D76

45.设x=2;

y=3;

表达式x=y==3运算后。

x=A

A1B2C3D0

46.一个可执行C++程序的开始执行点是

A程序的第一条语句B包含文件的第一个函数

C名为voidmain的函数D程序中的第一个函数

49.若变量已正确定义并赋值,符合c++语言语法的表达式是A。

A.a=a+7;

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

50.在C++语言中,int、float和longint这3种类型数据所占用的内存是。

A.均为4个字节B.由用户自己定义

C.由所用机器的机器字长决定的D.任意的

51.若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是C。

A.a=b=c=d=100;

B.d++;

C.c+b;

D.d=(c=22)-(b++);

二、填空题

1.设a、b、c都是整型,则a=b=c=5时,下列表达式的结果是a=15、b=5、c=6。

a+=b+c++

2.数学表达式sin(30o)+x2cos(20o)的C++语言表达式是。

2题:

sin((30*3.14/180)+x*x*cos(20*3.14/180)

4.main()

{

inti=4,j=5,k=6;

5题注意:

1、使用a&

b时,无论b为何值,输出的结果都一样;

2、使用(a&

b)时,输出结果为1;

3、使用a&

b时编译出错;

4、使用(a&

b)时输出结果为0

i++&

++j||++k;

cout<

i<

j<

k;

}

程序的输出是566。

5.voidmain()

inta=13,b=16;

!

a<

’\t’<

a&

b;

程序输出为013。

6.#definePR(x,y,z)cout<

x<

y<

z<

’\n’

main()

inti=0,j=0,k=0;

i=(9+6)%5>

=9%5+6%5;

’\n’;

++i||++j&

++k;

PR(i,j,k);

i+=j++;

i;

程序的第一次输出是0。

程序的第二次输出是100。

程序的最后一次输出是1。

7.设整型变量x,y,z的值分别为10,3,7;

则表达式x>

10?

x+100:

x-10的值是0

8.若整型变量w=1,x=2,y=3,z=4,则条件表达式w>

x?

w:

z>

y?

z:

x的值为__4__

9.inta=5,b=6,c=1,x=2,y=3,z=4;

c=(a=c>

x)&

(b=y>

z);

问:

执行上述程序后,b的值是__6__,c的值是__0__。

10.程序

voidmain()

{intx,y,z;

x=y=z=0;

(x++&

++y||z++)<

'

\n'

;

\t'

z;

}

程序第一行输出为0

程序第二行输出为101

11.程序

#definePR1(num)cout<

num;

’\t’

#definePR2(a,b)PR1(a);

PR1(b)

#definePRINT(c,d)cout<

main()

{

intx=10,y=20,z=100;

PR1(x);

PR2(x,y);

PRINT(hex,z);

输出结果为10102064

第三章选择、循环结构

2.当前整型变量i的值是10,执行下列switch语句后i的值是13。

switch(i)

case9:

i+=1;

case10:

case11:

defaule:

i+=1

4.下列关于break和switch语句的叙述中,正确的是B。

A.break是switch语句的一个成分

B.在语句switch中可以根据需要使用或不使用break语句

C.在语句switch中必须使用break语句

D.上述结论中两个正确的

5.设有程序段intx=10;

while(x=0)x=x-1;

则下面描述中正确的是C

A.while循环执行10次

B.循环是无限循环

C.循环体语句一次也不执行

D.循环体语句只执行一次

6.退出一个循环语句(不终止函数的执行)的有效措施是:

A

A、breakB、continueC、returnD、exit

7.设整型变量x的当前值为3,执行以下循环语句后,输出的结果为:

7题输出是1-2

do

’\t’<

x-=2;

while(!

(--x));

A、0B、1-2C、30D、死循环,输出许多值

10.C++语言中D。

A.不能使用do-while语句构成的循环

B.do-whiIe语句构成的循环必须使用break语句才能退出

C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环

D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环

二填空题

1.有整型变量a、b,则下列for循环中的输入语句最少可执行1次,最多可执行3次

for(a=0,b=0;

b!

=30&

3;

a++)cin>

2.设整型变量I初值是1,则语句while(I++<

5);

执行后I的值是6。

3.下面程序的执行结果输出101020,

#definePR1(num)cou<

4.下面程序的执行中共输出3个数,最后一个输出的数是2

运行结果:

8,5,2

inty=9;

for(;

y>

0;

y--)

if(y%3==0)

--y<

’\t’;

5.下面程序的执行结果是死循环。

#include<

iostream.h>

intx=1,i=1;

for(;

50;

i++)

if(x>

10)break;

if(x%2)

x+=3;

continue;

x=1;

6.[程序]

#include<

6题

这里将~=0改为!

=0了。

不然会有语法错误

本题是通过右移算类型所占的位数

voidmain()

unsignedi;

intcount=1;

i=~0;

while((i>

=1)!

=0)

count++;

“count=”<

count<

在16位系统中程序的结果是count=32。

如果将(i>

=1)改为(i>

1)程序的结果是死循环。

不作上述修改,而将unsignedi;

改为unsignedchari;

程序的输出结果是count=8。

8.inta,b;

for(b=1,a=1;

b<

=50;

b++)

if(a>

=10)break;

if(a%2==1)

{a+=5;

continue;

}

a-=3;

问:

执行上述程序段后,a的值是10,b的值是6

9.voidmain()

{intm,n,x,y;

cin>

x>

y;

m=1;

n=1;

if(x>

0)m=m+1;

y)n=n+m;

elseif(x==y)n=5;

elsen=2*m;

m<

n;

为了使输出的结果是n=4,x的输入值应满足条件x>

0与x<

y

10.voidmain()

{inta,b,c;

a=2,b=3,c=1;

if(a>

b)

if(a>

c)cout<

a;

elsecout<

”end”<

endl;

执行上述程序后输出__3end__。

11.执行下列程序段后,变量n的值是:

12

intn=10;

switch(n)

{case9:

n-=1;

case10:

n+=1;

case11:

n--;

case12:

n++;

default:

++n;

三完善程序题

1.求f(X)=-x2/2!

+x4/4!

-x6/6+x8/8!

……

要求精度为十万分之一

math.h>

doublex,y,t;

intn=0;

“Inputx:

x

t=1;

y=0;

while(fabs(t)>

1e-6)

pow(-1,n)*x*x*fabs(t)/(2*n)/(2*n-1)

n++;

y+=(t=pow(-1,n)*pow(x,2*n)/(2*n));

“y(“<

”)=”<

2.程序功能:

在三个整数a,b和C中选出最大者,将该值输出。

voidmain(){

ima,b,c,max;

”请输入三个正数:

”;

a>

b>

c:

”a=:

”<

\t’<

"

b:

c="

endl:

if(a>

c)max=a;

elseif(b>

c)max=b;

elsemax=c;

”最大数为:

max=”<

max<

endi;

3.程序功能:

用数字0和9之间不同的数字构造所有可能的三位数(个位、十位和百位上的数字各不相同),并统计出共有多少种。

iostream.h>

inti,j,k,count=0;

for(i=1;

=9;

for(j=0;

j++)

if(j==i)continue;

elsefor(k=0;

k<

=9;

k++)

if(k!

=i&

k!

=j){

100*i+10*j+k<

’,’;

count++;

endl<

”Total=”<

endl;

第四章函数习题

一、选择题

5.在一个源文件中定义的全局变量的作用域为A

全局变量默认(缺省)的作用域是D,但是不加“缺省”时的答案是A

A、文件的全部范围

B、本程序的全部范围

C、本函数的全部范围

D、从定义该变量的位置开始至本文件的结束

6.设函数声明语句中的参数表为(int&

a,int&

b,intC),函数体中a,b,C三个变量的值都发生变化;

主函数中调用此函数的实参表为(x,y,z),调用函数语句执行后,以下叙述正确的是A。

A)变量x和y的值发生变化B)变量x和y的值不发生变化

C)变量x、y、z的值都发生变化D)只有变量z的值发生变化

7.变量的有效范围与其定义的位置有关,B,其作用域在整个源程序文件中都有效。

A、在第一个函数中定义的变量

B、在定义第一个函数之前所定义的变量

C、在主函数中定义的变量

D、在函数中定义的静态变量

9.判断两个字符串s1和s2是否相等,应当使用D

A、if(s1==s2)B、if(s1=s2)

C、if(strcmp(s1,s2))D、if(!

strcmp(s1,s2))(相等为0)

10.在程序执行过程中,该程序的某一个函数func()中说明的static型变量V有这样的特性:

A、V存在于func()被调用期间且仅能被func()所用

B、V存在于整个程序执行过程且仅能被func()所用

C、V存在于func()被调用期间且可被所有函数所用

D、V存在于整个程序执行过程且可被所有函数所用

1.执行下面程序共产生4行输出,第一行输出和最后一行输出分别是6及6。

voidf(int);

{f(3);

voidf(intn)

{staticints=5;

inta=5;

if(n!

{s++;

a++;

s<

f(n-1);

3.

3题

一、改正错误

1、A行处少一个分号“;

2、在main前加void

二、运行结果

3,1,5

voidf(intb,intt)

{intm;

if(b<

t)

{m=(b+t)/2;

f(b,m-1);

f(m+1,t)//A

{f(1,6);

4题

1、改main为voidmain

2、cout处多了一个(

二、运行结果:

程序正确,结果是

x=69

执行以上程序后,第一行的输出是,第二行的输出是,最后一行的输出是。

4.[程序](共2分)

#defineA3

main()

{

inta;

#defineB(a)((A+1)*a)

a=3*(A+B(5));

(“x=”<

”\n”;

程序是否正确(是或否);

若程序错,则原因是(或程序正确,则输出结果是):

一、改正错误:

改main为voidmain

6和10

intf(intx)

inty=1;

staticintz=1;

z+=z+y++;

return(z+x);

cout<

f(3)<

执行以上程序后,第一和第二行的输出分别是和。

7.[程序]

#include<

intm=10;

intf(intx,inty)

intm=5;

m+=x*y;

returnm;

voidmain()

inta=6,b=7;

f(a,b)/m<

执行以上程序后,输出结果4。

8.voidf(inta)

if(a<

0){

“-”;

a=-a;

char(a%10+’0’);

if((a=a/10)!

=0)f(a);

inta=-3567;

f(a);

a=3456;

“\n”;

执行以上程序后,输出结果的第一行是7654;

第二行是-6543。

9题

1、添加原型声明:

fun1(int,int);

8和17

9.#include<

intk=4,m=1,p;

p=fun1(k,m);

p;

p<

fun1(intx,inty)

staticintm=0,i=2;

i+=m+1;

m=i+x+y;

returnm;

程序执行后输出的结果为,

10.voidmain()

10题

1、原型声明f(int);

运行结果

1、7和17

2、7和20

{intw=2,k;

for(k=0;

{w=f(w);

w<

f(intx)

{inty=0;

/*static*/intz=3;

y++;

z++;

return(x+y+z);

问题1:

执行程序后,输出的第一个数是____,最后一个数是____。

问题2:

如果把对static的注解改为static

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

当前位置:首页 > 高中教育 > 英语

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

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