C++复习题库.docx

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

C++复习题库.docx

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

C++复习题库.docx

C++复习题库

一、填空

第1题运行程序后,输出结果【1】【2】【3】#includevoidmain()

{intx(5);do{switch(x%2){case1:

X--;break;caseO:

x++;break;}

X--;cout<O);}答案:

31-1

第2题赋值运算符的结合性是由【1】至【2】答案:

右左

第3题在C++语言结构化程序中,【1】是程序的基本组成单元;在C++语言的面向对象设计框架中,【2】是程序的基本组成单元。

答案:

函数类

4设i,j,k为int型变量,则执行完for(i=0,j=10;i<=j;i++,j--)k=i+j;语句后,K的值为10

第5题C++语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取【1】方式。

答案:

传地址传址

第6题给出以下程序的输出结果是【1】#includevoidmain()

{int*v,b;v=&b;b=100;*v+=b;cout<

200

第7题C++中封装性、继承性和【1】是面向对象程序设计的三个主要性质。

答案:

多态性

第8题继承有方式有公有继承、私有继承和【1】三种。

答案:

保护继承保护

第9题类中成员默认的访问权限是【1】的.答案:

私有private

第10题与!

(x>2)等价的表达式是【1】答案:

x<=2

第12题使用关键字inline说明的函数称为【1】函数,

具有相同函数名但具有不同实现的函数称为【2】函数。

答案:

内联重载

第13题在C语言中,二维数组元素在内存中的存放顺序是【1】.答案:

按行主顺序存放

第14题若有定义:

inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是【1】,a[2][1]得到的初值是【2】.答案:

06

第15题下面程序段是找出整数的所有因子,请填空.cin>>x;i=1;for(;【1】;)

{if(x%i==0)cout<

i<=x

第16题当方法有返回值,必须在该方法体内使用【1】语句.答案:

return

第17题在C语言中的实型变量分为两种类型,它们是【单精度型】和【双精度型】.

第18题C++语言的参数传递机制包括传值和传地址两种,参数为引用时采用的是【传地址方式。

第19题若s是int型变量,且s=6,则下面表达式的值为【1】.s%2+(s+1)%2答案:

1

第20题C++中任何一个数组的名字是一个【1】指针,该指针的值是该数组第一个数组元素的地址.答案:

常量

第21题C语言规定,可执行程序的开始执行点是【1】.答案:

程序中的main()函数

第22题一个C源程序至少应包括一个【1】.答案:

主函数(或:

main函数)

第23题已知:

char*s="hello";执行语句"for(inti=0;*s++;i++);"之后,变量i的结果是(5)

第24题若x和a均是int型变量,则执行表达式

(1)后的x值为【1】,执行表达式

(2)后的x值为【2】.

(1)x=(a=4,6*2)

(2)x=a=4,6*2答案:

124

第25题若变量y是变量x的引用,则对变量y的操作就是对变量【1】的操作.答案:

x

第26题下面程序段的运行结果是【1】.for(a=1,i=-1;-1<=i<1;i++)

{a++;cout<

-1

第27题若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为【1】.x%=(n%=2)答案:

0

第28题若有定义:

doublex[3][5];则x数组中行下标的下限为【1】,列下标的上限为【2】.

答案:

04

第29题下面程序的功能是计算1-3+5-7+…-99+101的值,请填空.

#includemain(){inti,t=1,s=0;

for(i=1;i<=101;i+=2){【1】;s=s+t;【2】;}cout<

t=t*it=-t/i

第30题若a为double类型的变量,表达式a=1,a+5,a++的值为【1】答案:

1.0

1.00

2、判断

第1题如果一个函数在其函数体内直接或间接的调用了自己,该函数

称为递归函数。

答案:

Y

第2题开关语句不可以嵌套,在开关语句的语句序列中不能再有开关语句。

答案:

N

第3题while循环语句的循环体至少执行一次。

答案:

N

第4题对于数值类型数组,如果给定的数值不够,则没有指定数值的元素将初始化为'0\';答Y

第5题设置了参数默认值后,调用函数时对应实参就必须省略.答案:

N

第6题循环是可以嵌套的,一个循环体内可以包含另一种循环语句.答案:

Y

第7题C++引入内联函数的原因是用它来取代C中的预处理宏函数。

答案:

Y

第8题continue语句只能出现在循环体中.答案:

Y

第9题标识符规定大小写字母没有区别。

答案:

N

第10题构造函数和析构函数都不能重载.答案:

N

第11题开关语句中的default关键字,只能放在该语句的末尾,不能放在开头或中间.答案:

N

第12题C++语言和C语言都是面向对象的程序设计语言。

答案:

N

第13题for循环中,循环变量的作用域是在该循环的循环体内.答案:

N

第14题break语句可以出现在各种循环体中.答案:

Y

第15题数组元素可以用下标表示,也可以用指针表示。

答案:

Y

第16题switch语句中必须有break语句,否则无法退出switch语句.答案:

N

第17题指针的类型是它所指向的变量或对象的类型。

答案:

Y

第18题可以通过typedef增加新的数据类型。

答案:

N

第19题编译系统所提供的系统函数都被定义在它所对应的头文件中.答案:

Y

第20题continue语句只能出现在循环体中。

答案:

Y

三、单项选择共50题(共计50分)

第1题以下符号中不能作为标识符的是:

【B】A:

_256B:

voidC:

scanfD:

Struct答案B

第2题C++程序的执行总是从哪里开始的?

A:

main函数B:

第一行C:

头文件D:

函数注答案:

A

第3题合法的数组初始化语句是【】。

A:

chara[]="string";B:

inta[5]={0,1,2,3,4,5}C:

inta[]="string"

D:

chara[]={0,1,2,3,4,5};答案:

A

第4题下列for循环的循环体执行次数为【】for(inti(O),j(10);i=j=10;i++,j--)无限

第5题下列运算符中优先级最高的是:

【】A:

!

B:

%C:

-=D:

&&答案:

A

第6题在intb[][3]={{1},{3,2},{4,5,6}};中,b[2][2]的值为【】。

A:

0B:

5C:

6D:

2答C

第7题以下正确的函数定义形式是____

A:

doublefun(intx,inty)B:

doublefun(intx;inty)

C:

doublefun(intx,inty);D:

doublefun(intx,y);答案:

A

8设有定义intx;floaty;,则10+x+y值的数据类型是A:

intB:

doubleC:

floatD:

不确定C

第9题C++语言对C语言进行了很多改进,C++语言相对于C语言的最根本的变化是【】

A:

增加了一些新的运算符B:

允许函数重载,并允许设置缺省参数

C:

规定函数说明符必须用原型D:

引进了类和对象的概念答案:

D

第10题在下述对字符数组的描述中,有错误的是【】。

A:

字符数组可以存放字符串B:

字符数组中的字符串可以进行整体输入输出

C:

可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D:

字符数组的下标从0开始:

C

第11题关于函数返回值的的描述正确的是().A:

函数返回表达式的类型一定与函数的类型相同.B:

函数返回值的类型决定了返回值表达式的类型C:

当函数类型与返回值表达式类型不同,将对返回值表达式的值进行类型转换.D:

函数返回值类型就是返回值表达式类型.答案:

C

第12题假设有定义charch;下列输入字符的方法不正确的是().A:

cin.get(ch)

B:

cin>>chC:

cin>>get(ch)D:

ch=cin.get()答案:

C

第13题下面常数中不能作为常量的是()A:

0xA5B:

2.5e-2C:

3e2D:

0583答案:

D

第14题设有程序段t=0;while(printf("*"))

{t++;if(t<3)break;}则下面描述正确的是____B:

其中循环控制表达式与'0'等价

第15题若有说明:

inta[3][4];则数组a中各元素____

A:

可在程序的运行阶段得到初值0B:

可在程序的编译阶段得到初值0

C:

不能得到确定的初值D:

可在程序的编译或运行阶段得到初值0答案:

B

第16题当执行以下程序段时(A:

循环体将执行一次)x=-1;do{x=x*x;}while(!

x);

第17题如果一个函数无返回值,定义时它的函数类型应是(C).A:

任意B:

intC:

voidD:

第18题已知:

inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果【】。

for(i=0;i<3;i++)cout<

357

第19题下述关于break语句的描述中,【C】是不正确的A:

break语句可用于循环体内,它将退出该重循环B:

break语句可用于开关语句中,它将退出开关语句

C:

break语句可用于if体内,它将退出if语句D:

break语句在一个循环体内可以出现多次

第20题表达式9!

=10的值为:

【】A:

非零值B:

trueC:

0D:

1答案:

D

第21题在inta[2][3]={{1,0},{3,2}};中a[1][0]的值是(3)

第22题下面程序段的运行结果是.A:

1,2,0

a=1;b=2;c=2;while(a

第23题下面程序的输出是【3】#include voidmain()

 {inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;cout<<*(p+2); }

第24题以下选项中合法的字符常量是()A:

"B"B:

'\010'C:

68D:

D答案:

B

第25题下面程序段.for(t=1;t<=100;t++){cin>>x;if(x<0)continue;cout<

A:

当x<0时整个循环结束B:

x>=0时什么也不输出C:

printf函数永远也不执行

D:

最多允许输出100个非负整数答案:

D

第26题C++程序的执行总是从哪里开始的?

A:

main函数

第27题已知a,b均被定义为double型,则表达式:

b=1,a=b+5/2的值为:

(3.0)

第28题C语言规定:

在一个源程序中,main函数的位置____.D:

必须在最后

第29题若有以下说明和语句,且0

inta[]={1,2,3,4,5,6,7,8,9,0},*p,i;p=a;

A:

*(a+i)B:

a[p-a]C:

p+iD:

*(&a[i])答案:

C

第30题已知:

intm=10;下列表示引用的方法中,【】是正确的。

A:

int&x=m;

B:

int&y=10;C:

int&z;D:

float&t=&m;答案:

A

第31合法的数组初始化语句是()A:

chara[]="string"B:

inta[5]={0,1,2,3,4,5}

C:

inta[]="string"D:

chara[]={0,1,2,3,4,5}答案:

A

第32题在参数传递过程中,对形参和实参的要求是()A:

函数定义时,形参一直占用存储空间

B:

实参可以是常量、变量或表达式C:

形参可以是常量、变量或表达式

D:

形参和实参类型和个数都可以不同答案:

B

第33题在intb[][3]={{1},{3,2},{4,5,6},{0}};中,b[2][2]的值为(6).

第34题以下不正确的说法是.C语言规定A:

实参可以是常量、变量或表达式答案:

B

B:

形参可以是常量、变量或表达式C:

实参可以为任意类型D:

形参应与其对应的实参类型一致

第35题已知函数f的原型是:

voidf(int*x,long&y);则以下对函数f正确的调用语句是(其中a和b是实参)【】A:

f(a,b)B:

f(&a,b)C:

f(a,&b)D:

f(&a,&b)答案:

B

第36题在inta[2][3]={{1,0},{3,2}};中a[1][0]的值是(3)

37(B:

构造函数可以有返回值,也可以有参数,构造函数可以重载;)不是构造函数的特征.

第38题以下程序的运行结果是【15】。

#include

voidmain(){inta=0,b=1,c=0,d=20;if(a)d-=10;elseif(b)

{if(!

c)d=15;elsed=25}cout<

第39题下列四个选项中,均是C语言关键字的选项是____.B:

switchtypedefcontinue

第40题指针是指该变量的(B:

地址)

第41题下面描述正确的是____

A:

两个字符串所包含的字符个数相同时,才能比较字符串B:

字符个数多的字符串比字符个数少的字符串大C:

字符串"STOP"与"STOP"相等D:

字符串"That"小于字符串"The"答案:

D

第42题下面程序的输出结果是(A).#include

voidmain(){inta[3][3]={{1,2},{3,4},{5}};intsum=0;for(intI=1;I<3;I++)

for(intj=0;j<=I;j++)sum+=a[I][j];cout<

12B:

14C:

15D:

13

第43题(1.0分)题号:

4182

如果一个函数无返回值,定义时它的函数类型应是(B:

int).

第44题下面程序的运行结果是.#include

main(){inta=1,b=10;do{b-=a;a++;}while(b--<0);cout<

A:

a=3,b=11B:

a=2,b=8C:

a=1,b=-1D:

a=4,b=9答案:

B

第45题以下选项中不是正确的实型常量的是:

(B)A:

3.8E-1B:

0.4e2C:

-43.5D:

243.43e-2

第46题已知学生记录描述为D:

s.birth.year=1984;s.birth.month=11;s.birth.day=11;

第47题若有说明:

inta[][4]={0,0};则下面不正确的叙述是____

A:

数组a的每个元素都可得到初值0B:

二维数组a的第一维大小为1

C:

因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1

D:

只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0答案:

D

第48题若有说明:

inti,j=7,*p;p=&i;则与i=j等价的语句是()

A:

i=*pB:

*p=*&jC:

i=&jD:

i=**p答案:

B

第49题以下选项中不是正确的实型常量的是:

【】

A:

3.8E-1B:

0.4e2C:

-43.5D:

243.43e-2答案:

B

第50题对两个数组a和b进行如下初始化

chara[]="ABCDEF";charb[]={'A','B','C','D','E','F'};

则以下叙述正确的是___D:

a数组比b数组长度

 

数组有关试题

一、填空

第1题给出以下程序运行的结果【1】

 #includevoidmain(){inta[]={1,2,3,4,5};intx,y,*p;

  p=&a[0];x=*(p+2);y=*(p+4);cout<<*p<<''<

135

第2题已知:

char*s="hello";执行语句"for(inti=0;*s++;i++);"之后,变量i的结果是【5】

第3题给出以下程序的输出结果是【200】

#includevoidmain(){int*v,b;v=&b;b=100;*v+=b;cout<

第1题若有以下语句,且0<=k<6,则正确表示数组元素地址的语句是【】

intx[]={1,9,10,7,32,4},*ptr=x,k=1;A:

x++B:

&ptrC:

&ptr[k]D:

&(x+1)答案:

C

第2题在intb[][3]={{1},{3,2},{4,5,6}};中,b[2][2]的值为【6】。

第3题设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是【】A:

k=*p1+*p2;B:

p2=k;C:

p1=p2;D:

k=*p1*(*p2);答案:

B

第4题下面程序的输出是【3】#include voidmain()

 {inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;cout<<*(p+2); }

第5题int*pa[5];的描述中,【】是正确的。

A:

pa是一个指向数组的指针,所指向的数组是5个int型元素

B:

pa是一个指向某数组中的第5个元素的指针,该元素是int型变量

C:

pa[5]表示某个数组的第5个元素的值

D:

pa是一个具有5个元素的指针数组,每个元素是一个int型指针答案:

D

第6题下列关于指针的运算中,【】是非法的。

A:

两个指针在一定条件下,可以进行相等或不等的运B:

可以用一个空指针赋值给某个指针

C:

一个指针可以加上两个整数之和D:

两个指针在一定条件下,可以相加答案:

D

第7题若有说明:

inti,j=7,*p;p=&i;则与i=j等价的语句是【】

A:

i=*p;B:

*p=*&j;C:

i=&jD:

i=**p;答案:

B

第8题若有以下定义和语句,且0

 inta[]={1,2,3,4,5,6,7,8,9,0},*p,i; p=a;

A:

&(a+1)B:

a++C:

*pD:

&p[i]答案:

D

第9题在下述对字符数组的描述中,有错误的是【】。

A:

字符数组可以存放字符串B:

字符数组中的字符串可以进行整体输入输出

C:

可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D:

字符数组的下标从0开始:

C

第10题已知:

inta[]={1,2,3,4,5,6},*p=a;下面表达式中其值为5的是【】

A:

p+=3;*(p++);B:

p+=5;*p++;C:

p+=4;*++p;D:

p+=4;*p++;答案:

D

第11题已知:

inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果【369】。

for(i=0;i<3;i++)cout<

第12题若有以下语句:

char*p[2]={"1234","5678"}则正确的叙述是【】

A:

p数组的两个元素中各自存放了字符串"1234"和"5678"的首地址。

第13题已知:

intm=10;下列表示引用的方法中,【】是正确的。

A:

int&x=m;B:

int&y=10;C:

int&z;D:

float&t=&m;答案:

A

第14题在C++语言中,二维数组元素在内存中的存放顺序是【】。

A:

按行存放

第15题合法的数组初始化语句是【】。

A:

chara[]="string";

B:

inta[5]={0,1,2,3,4,5};C:

inta[]="string"D:

chara[]={0,1,2,3,4,5};答案:

A

3、程序填空

4、第1题

题目:

以下程序将数组中的数据按逆序存放。

#includevoidmain()

{inta[12],i,j,t;for(i=0;i<12;i++)cin>>a[i];for(i=0;i<6;i++)

/***********SPACE***********/

{【t=a[i];a[i]=a[11-i];a[11-i]=t;】}//数组元素交换

for(i=0;i<12;i++)cout<

第2题题目:

程序读入10个整数,统计非负数个数,并计算非负数之和。

#includevoidmain()

{/***********SPACE***********

inti,a[10],s=0,【count=0;】;for(i=0;i<10;i++)/***********SPACE***********/

【cin>>a[i];】for(i=0;i<10;i++)

{if(a[i]<0)/***********SPACE***********/【continue;】//负数跳过,不参与统计

count++;/***********SPACE***********/【s+=a[i];】}

cout<<"非负数的个数为:

"<

cout<<"非负数之和为:

"<<【s】<

有关函数题型

一、程序填空

第1题题目:

找出数组当中的最大数#include/***********SPACE***********/

int【max】(intb[],intn);voidmain()

{intarr[10];/***********SPACE***********/for(inti=0;i<【10】;i++)cin>>arr[i];

/***********SPACE***********/cout<<【max(arr,10)】<

{intm=0;for(inti=0;im)m=b[i];/***********SPACE***********/

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

当前位置:首页 > 求职职场 > 简历

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

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