C++上学期复习题Word格式.docx

上传人:b****6 文档编号:16705993 上传时间:2022-11-25 格式:DOCX 页数:17 大小:29.69KB
下载 相关 举报
C++上学期复习题Word格式.docx_第1页
第1页 / 共17页
C++上学期复习题Word格式.docx_第2页
第2页 / 共17页
C++上学期复习题Word格式.docx_第3页
第3页 / 共17页
C++上学期复习题Word格式.docx_第4页
第4页 / 共17页
C++上学期复习题Word格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C++上学期复习题Word格式.docx

《C++上学期复习题Word格式.docx》由会员分享,可在线阅读,更多相关《C++上学期复习题Word格式.docx(17页珍藏版)》请在冰豆网上搜索。

C++上学期复习题Word格式.docx

D.语句的书写对程序的运行不起作用,因此可以随便写都可以

10.以下各标识符中,合法的用户标识符组为D。

A.PAd,P#d,b-b,abc,_0123,ssiped

B.cin,a10,CPP,float,del_word,signed

C.void,max,hiy,<

fr>

,list,*jer

D.a,temp,_isw,INT,keep,wind

11.在VC++中,以下语句的输出为D。

shortintk=-1;

cout<

<

k<

'

'

<

(unsignedshort)k<

endl;

A.-1,-1B.-1,32767C.-1,32768D.-1,65535

12.若给出以下程序,其输出为B。

#include<

iostream>

usingnamespacestd;

intmain()

{inta=4,b=7;

cout<

(a=a+1,b+a,b+1)<

endl;

return0;

}

A.5B.8C.11D.程序有错误,无法运行

13.字符串“\”EOF=-\61\””的长度是A。

A.8 B.9 C.12D.非法字符串

14.数学式

在C++程序中对应正确的表达式为B。

A.sqrt(sin(x)>

0?

sin(x):

-sin(x))B.sqrt(fabs(sinx))

C.sqrt(sqrt(sinx*sinx))D.fabs(sqrt(sin(x)))

15.下列A是C++语言的有效标识符?

A._No1B.No.1C.12345D.int

16.C++语言中,表示一条语句结束的标号是B

A.#B.;

C.//D.}

17.每个C++程序中都必须有且仅有一个C

A.类B.预处理命令C.主函数D.语句

18.下列数据类型不是C++语言基本数据类型的是D。

A.字符型B.整型C.实型D.数组

19.下列字符列中,可作为C++语言程序自定义标识符是B。

A.switchB.fileC.breakD.do

20.运算符+、<

=、=、%中,优先级最低的运算符是C。

A.+B.<

=C.=D.%

21.下列字符列中,可以作为“字符串常量”的是B。

A.ABCB.″xyz″C.′uvw′D.′a′

22.设变量m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是D。

A.0,0B.0,1C.1,0D.1,1

23.字符串"

vm\x43\\\np\102q"

的长度是A。

A.8B.10C.17D.16

24. 

在C++语言中,自定义的标识符D。

A.能使用关键字并且不区分大小写

B.不能使用关键字并且不区分大小写

C.能使用关键字并且区分大小写

D.不能使用关键字并且区分大小写

25.设有代码“inta=5;

”,则执行了语句“a+=a-=a*a;

”后,变量a的值是C。

A.3B.0C.-40D.–12

26.设a为5,执行下列代码后,b的值不为2的是C。

A.b=a/2B.b=6-(--a)

C.b=a%2D.b=a<

3?

3:

2

27.设x和y均为bool量,则x&

&

y为真的条件是 

A.它们均为真 

B.其中一个为真 

C.它们均为假 

D.其中一个为假

28.若给定条件表达式(m)?

(a++):

(a--),则其中表达式mC。

A.和(m==0)等价B.和(m==1)等价

C.和(m!

=0)等价D.和(m!

=1)等价

29.在C++语言的if语句中,用作判断的表达式为D。

A.关系表达式B.逻辑表达式

C.算术表达式D.任意表达式

30.设i和k都是int类型,则以下for循环语句B。

for(i=0,k=-1;

k=1;

i++,k++)cout<

"

****\n"

;

A.判断循环结束的条件不合法B.是无限循环

C.循环体一次也不执行D.循环体只执行一次

31.若有以下语句,则输出结果为A。

inta=2,b=1;

a>

b?

"

a大于b"

:

a小于b"

A.a大于bB.a小于bC.1D.输出语句有错

32.intk=10;

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

则下面描述正确的是C。

A.while循环执行10次B.循环是无限循环

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

33.inta=1,b=2,c=2,t;

while(a<

b){t=a;

a=b;

b=t;

c--;

}

cout<

a<

”,”<

b<

c;

运行结果为D。

A.1,2,0B.2,1,0C.1,2,1D.2,1,1

34.intx=-1;

do

{x=x*x;

while(!

x);

下列说法正确的是C。

A.是死循环B.循环执行两次

C.循环执行一次D.有语法错误

35. 

以下能正确计算1*2*3*…*10的程序段是C。

A. 

do{i=1;

s=1;

B.do{i=1;

s=0;

s=s*i;

i++;

}s=s*i;

i++;

while(i<

=10);

C.i=1;

D.i=1;

do{s=s*i;

do{s=s*i;

}i++;

while(i<

36.以下描述正确的是C。

A.由于do-while循环中循环体语句只是一条可执行语句,所以循环体内不能使用复合语句

B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作

D.do-while循环中,根据情况可以省略while

37.C++中while和do-while循环的主要区别是A。

A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比do-while的循环控制条件严格

C.do-while允许从外部转到循环体内

D.do-while的循环体不能是复合语句

38.下面有关for循环的正确描述是D。

A.for循环只能用于循环次数已经确定的情况

B.for循环是先执行循环体语句,后判断表达式

C.for循环中,不能用break语句跳出循环体

D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

39.对for(表达式1;

表达式3)可理解为B。

A.for(表达式1;

0;

表达式3)

B.for(表达式1;

1;

表达式3)

C.for(表达式1;

表达式1;

D.or(表达式1;

表达式3;

40.for(i=2;

i==0;

)printf(“%d”,I--);

循环执行的次数是B。

A.无限次B.0次C.1次D.2次

41.在C++编程语言中,以下正确的描述是B。

A.continue语句的作用是结束整个循环的执行

B.只能在循环体内和switch语句体内使用break语句

C.在循坏体内使用break语句或continue语句的作用相同

D.从多层循环嵌套中退出,只能使用goto语句

42.下面程序段D。

for(t=1;

t<

=100;

t++)

{cin>

x;

if(x<

0)continue;

cout<

t;

A.当x<

0时整个循环结束B.x>

=0时什么也不输出

C.cout永远也不执行D.最多允许输出100个非负整数

43.定义一个函数实现交换x和y的值,并将结果正确返回。

能够实现此功能的是C。

A.swap(intx,inty){intt;

t=x;

x=y;

y=t;

B.swap(int*x,int*y){intt;

C.swap(int*x,int*y){intt;

t=*x;

*x=*y;

*y=t;

D.swap(int*x,int*y){int*t;

44.说明语句"

int(*p)();

的含义是C。

A.p是一个指向一维数组的指针变量

B.p是指针变量,指向一个整型数据

C.p是一个指向函数的指针,该函数的返回值是一个整型

D.以上都不对

45.设有说明int(*p)[4];

其中的标识符p是C。

A.4个指向整型变量的指针变量

B.指向4个整型变量的函数指针

C.一个指向具有4个整型元素的一维数组的指针

D.具有4个指向整型变量的指针元素的一维指针数组

46.若有如下声明,下列说法错误的是C。

structem

{chara;

charb;

};

A.struct是结构体类型关键字B.em是结构体类型名

C.em是用户声明的结构体变量D.a,b是结构体成员名

47.若有下列定义,则对结构体变量的成员引用错误的是A。

structdate

{intyear;

intmonth;

intday;

structstudent

{intno;

charname[16];

datebirthday;

}stud;

A.stud.noB.stud.name

C.stud.birthdayD.stud.birthday.year

二、填空题

1.程序的三种基本的控制结构是:

顺序结构、选择结构、循环结构

2.假定一个结构类型定义为:

“struct 

D{int 

a;

union{int 

b;

double 

c;

};

*d[2];

”,则该类型的大小为 

20 

字节。

3.C++语言中的每条基本语句以 

作为结束符,每条复合语句以 

作为结束符。

4.关系表达式x+y>

5的相反表达式为 

x+y<

=5 

5.下面的程序段中循环体的执行次数是3。

a=10;

b=0;

do{b+=2;

a-=2+b;

}while(a>

=0);

6.下面程序段的运行结果为**。

x=2;

do{cout<

“*”;

x--;

}while(!

x==0);

7.定义内置函数的方法是在函数的返回值类型之前增加关键字inline。

8.假定a为一个整型数组名,则元素a[4]的字节地址为 

a+16 

9.假定一个一维数组的定义为“char 

a[8];

”,则该数组所含元素的个数为 

,所占存储空间的字节数为 

32 

10.已知inta[3][2]={3,2,1};

则表达式“a[0][0]/a[0][1]/a[0][2]”的值是1。

11.若用数组名作为函数调用时的实参,则实际上传递给形参的是数组首地址。

12.如果一个函数无返回值,定义它时函数类型应是void。

13.预处理命令以#开头。

14.假定a是一个二维数组,则a[i][j]的指针访问方式为 

*(a[i]+j) 

或 

*(*(a+i)+j) 

15.C++在编译时,可以将所调用函数的代码直接嵌入到主调函数中,而不是将流程转出去。

这种嵌入到主调函数中的函数称为内置函数。

16.使用内置函数可以节省运行时间,但却增加了目标函数的长度。

17.C++允许用同一函数名定义多个函数,这些函数的参数个数和参数类型不同。

这就是函数的重载。

18.利用C++编程语言可以建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。

这个通用函数就称为函数模板。

三、填空完成下面的程序

1.#include<

intmain()

{inta,b,c,x;

cin>

a;

a="

b;

b="

c="

c<

if(a==b&

b==c)cout<

thethreenumbersareeauql"

else

{if(a>

b&

c)x=a;

elseif(b>

c)x=b;

elsex=c;

thegreatestnumberis:

x<

return0;

2.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环,请填空完成程序。

intn=0,c;

c=getchar();

while(c!

='

\n'

{if(c>

A'

Z'

||c>

a'

z'

)n++;

c=getchar();

3.鸡、兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,x代表有多少只鸡,y代表有多少只兔子,请填空完成程序。

for(x=1;

=29;

x++)

{y=30-x;

if(2*x+4*y==90)cout<

y;

4.下面的程序是求2个或3个正整数中的最大数,用带有默认参数的函数实现。

请填空完成程序。

#include<

usingnamespacestd;

intmain()

{intmax(inta,intb,intc=0);

inta,b,c,m1,m2;

a>

b>

m1=max(a,b,c);

m2=max(a,b);

a,b,c三个正整数中的最大数为:

m1<

a,b两个正整数中的最大数为:

m2<

return0;

intmax(inta,intb,intc)

{if(b>

a)a=b;

if(c>

a)a=c;

returna;

四、给出下列程序运行后的输出结果

1.#include<

voidSB(charch)

{switch(ch)

{case'

case'

well!

break;

B'

b'

good!

C'

c'

pass!

default:

bad!

intmain()

{chara1='

a2='

a3='

f'

SB(a1);

SB(a2);

SB(a3);

SB('

);

答案:

pass!

bad!

well!

2.#include<

{inta,b;

for(a=1,b=1;

a++)

{if(b>

=20)break;

if(b%3==1)

{b+=3;

continue;

b-=5;

8

3.#include<

main()

{inti,j,x=0;

for(i=0;

i<

2;

i++)

{x++;

for(j=0;

j<

=3;

j++)

{if(j%2)continue;

x++;

“x=”<

x=8

4.#include<

{inti;

for(i=1;

=5;

{if(i%2)cout<

elsecontinue;

“#”;

“$\n”;

*#*#*#$

5.#include<

voidmain()

{intI,j,a=0;

for(I=0;

I<

I++)

{for(j=0;

4;

{if(j%2)break;

a++;

4

6.运行以下程序时,从键盘键入right?

请给出回车后运行的结果。

#include<

voidmain()

{charc;

while((c=getchar())!

?

'

)putchar(++c);

sjhiu

7.#include<

iostream.h>

{intI;

for(I=1;

switch(I%2)

{case0:

I++;

#"

break;

case1:

I+=2;

*"

\n"

*

#

8.#include<

inta=5;

intmain()

{inta=10,b=20;

{inta=0,b=0;

for(inti=1;

i<

6;

i++){a+=i;

b+=a;

10 

20

9.#include<

intk=1;

voidf(intm)

{m+=k;

k+=m;

{chark='

k-'

m<

k<

intmain()

{inti=4;

f(i);

程序的输出第一行是1,第二行是5,6,第三行是4,6。

10.#include<

#include<

string.h>

chara[5]={"

student"

"

worker"

cadre"

soldier"

peasant"

charp1,p2;

p1=p2=a[0];

for(inti=0;

5;

i++)

if(strcmp(a[i],p1)>

0)p1=a[i];

if(strcmp(a[i],p2)<

0)p2=a[i];

p1<

p2<

worker 

cadre

11.#include<

intm[3][3]={{1},{2},{3}},n[3][3]={1,2,3};

{cout<

m[1][0]+n[0][0]<

m[0][1]+n[1][0]<

return;

程序的输出第一行是3

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

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

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

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