2学期C++复习资料Word格式.docx

上传人:b****5 文档编号:21023156 上传时间:2023-01-27 格式:DOCX 页数:22 大小:25.13KB
下载 相关 举报
2学期C++复习资料Word格式.docx_第1页
第1页 / 共22页
2学期C++复习资料Word格式.docx_第2页
第2页 / 共22页
2学期C++复习资料Word格式.docx_第3页
第3页 / 共22页
2学期C++复习资料Word格式.docx_第4页
第4页 / 共22页
2学期C++复习资料Word格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

2学期C++复习资料Word格式.docx

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

2学期C++复习资料Word格式.docx

12.如要求在if后一对括号中的表达式,表示a不等于0的时候的值为"

真"

,则能正确表示这一关系的表达式为:

A.a<

>

0B. 

!

a

C.a=0D.a

13.下面的这个循环的循环次数是:

for(inti=0,j=10;

i=j=10;

i++,j--)

A.无限次B. 

语法错误,不能执行

C.10D.1

14.以下哪个不是循环语句:

A.while语句B. 

do-while语句

C.for语句D.if-else语句

15.下列do-while循环的循环次数是:

 已知:

inti=5;

 do{cout<

<

i--<

endl;

  i--;

 }while(i!

=0)

A.0B. 

2

C.5D.无限次

16.下列do-while循环的循环次数是:

  for(inti=0,x=0;

x&

i<

=5;

i++)

A.5B. 

6

C.1D.无限次

17.下列叙述中正确的是:

A.C++语言程序总是从第一个定义的函数开始执行

B. 

C++语言程序中,return语句中表达式的类型应该与函数的类型一致

C.C++语言程序中,要调用的函数必须在main()函数中定义

D.C++语言程序中,main()函数必须放在程序开始的部分

18.下列叙述中正确的是:

A.C++语言程序中,main()函数必须在其它函数之前,函数内可以嵌套定义函数

C++语言程序中,main()函数必须在其它函数之后,函数内可以嵌套定义函数

C.C++语言程序中,main()函数必须在其它函数之前,函数内不可以嵌套定义函数

D.C++语言程序中,main()函数的位置没有限制,函数内不可以嵌套定义函数

19.已知函数test定义为:

 voidtest()

 {

  …………

 }

 则函数定义中void的含义是:

A.执行函数test后,函数返回任意类型值

执行函数test后,函数不再返回

C.执行函数test后,函数没有返回值

D.以上三个答案都是错误的

20.C++语言中函数返回值的类型是由______决定的?

A.return语句中的表达式类型

B.调用该函数的主调函数类型

C.定义函数时所指定的函数类型

D.以上说法都不正确

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

A.本程序的全部范围B.本函数的全部范围

C.从定义该变量的位置开始到本文件结束D.以上说法都不正确

22.以下说法错误的是:

A.全局变量就是在函数外定义的变量,因此又叫做外部变量

B.一个函数中既可以使用本函数中的局部变量,也可以使用全局变量

C.局部变量的定义和全局变量的定义的含义不同

D.如果在同一个源文件中,全局变量和局部变量同名,则在局部变量的作用范围内,全局变量通常不起作用

23.当一个函数无返回值时,定义它的函数类型应是___。

A.voidB.intC.任意D.无

24.要声明一个有10个int型元素的数组,正确的语句是____。

A.inta[10];

B.inta[2,5];

C.inta[];

D.int*a[10];

25.合法的数组初始化语句是____。

Achara="

string"

;

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

C.inta[]="

D.chara[]={0,1,2,3,4,5};

26.在下述对C++语言字符数组的描述中,有错误的是____。

A.字符数组可以存放字符串

B.可以在赋值语句中通过赋值运算符"

="

对字符数组整体赋值

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

D.字符数组的下标从0开始

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

A.数组首地址B.数组的第一个元素值

C.数组中全部元素的值D.数组元素的个数

28.已知:

  inti,x[3][3]={1,2,3,4,5,6,7,8,9};

  则下面语句的输出结果是____。

  for(i=0;

i<

3;

i++)

  printf("

%d"

x[i][2-i]);

A.159B.147C.357D.369

29.在C++语言中,引用数组元素时,其数组下标的数据类型允许是____。

A.只能整型常量B.只能整型表达式

C.整型常量或整型表达式D.任何类型的表达式

30.以下对二维数组a的正确声明是____。

A.inta[3][]B.floata(3,4)

C.doublea[1][4]D.floata(3)(4)

31.已知:

int[3][4],则对数组元素引用正确的是____。

A.a[2][4]B.a[1,3]

C.a[1+1][0]D.a

(2)

(1)

32.在C++语言中,二维数组元素在内存中的存放顺序是____。

A.按列存放B.按行存放

C.由用户自己定义D.由编译器决定

33.下面程序的运行结果是____。

  charc[5]={'

a'

'

b'

\0'

c'

};

%s"

c);

A.'

'

B.ab

C.abcD.以上三个答案均有错误

34.下面函数的功能是:

 intfun(char*x)

{

char*y=x;

while(*y++){};

returny-x-1;

}

A.求字符串的长度B.求字符串存放位置

C.比较两个字符串的大小D.将字符串x连接到字符串y后面

35.若有以下说明和语句,且0<

10,则()是对数组元素的错误引用。

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

36.下面程序的输出是:

 #include<

stdio.h>

 voidmain()

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

%d"

*(p+2));

A.3B.4C.1D.2

37.若有以下定义和语句,且0<

10,则对数组元素地址的正确表示是:

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

  p=a;

A.&

(a+1)B.a++C.*pD.&

p[i]

38.已知:

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;

39.若有以下语句,且0<

=k<

6,则正确表示数组元素地址的语句是()

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

A.x++B.&

ptrC.&

ptr[k]D.&

(x+1)

40.若有说明:

inti,j=7,*p;

p=&

i;

则与i=j等价的语句是()

A.i=*p;

B.*p=*&

j;

C.i=&

jD.i=**p;

41.设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是()

A.k=*p1+*p2;

B.p2=k;

C.p1=p2;

D.k=*p1*(*p2);

42.设有以下函数定义,则该函数返回的值是()

 int*fun(inta)

  int*t,n;

  n=a;

t=&

n;

  returnt;

A.一个不可用的存储单元地址值B.一个可用的存储单元地址值

C.n中的值D.形参a中的值

43.由C++目标文件连接而成的可执行文件的缺省扩展名为__________。

 

A.cpp 

B.exe

C.obj 

D.lik

44.在下面的一维数组定义中,哪一个有语法错误。

__________

A. 

inta[]={1,2,3} 

B.inta[10]={0}

C. 

inta[] 

D.inta[5]

45.在下面的函数声明中,存在着语法错误的是__________。

voidBC(inta,int) 

B.voidBD(int,int)

C. 

voidBE(int,int=5) 

D.intBF(intx;

inty)

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

y为真的条件是__________。

A.它们均为真 

B.其中一个为真 

C.它们均为假 

D.其中一个为假

47.下面的哪个保留字不能作为函数的返回类型?

__________。

A.void 

B.int 

 

C.new 

D.long

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

A.a+4 

B.a+8 

C.a+16 

D.a+32

49.对于int*pa[5];

的描述,()是正确的。

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

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

C.pa是一个具有5个元素的指针数组,每个元素是一个int型指针;

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

50.下述关于开关语句的描述中,()是正确的。

A.开关语句中default子句只能放在最后;

B.开关语句中每个语句序列中必须有break语句;

C.开关语句中default子句可以没有,也可以有一个;

D.开关语句中case子句后面的表达式可以是整形表达式。

51.关于C++与C语言的关系的描述中,()是错误的。

A.C语言是C++的一个子集;

B.C语言与C++是兼容的;

C.C++对C语言进行了一些改进;

D.C++和C语言都是面向对象的

52.下列各运算符中,()优先级最高。

A.+(双目);

B.*(单目);

C.<

=;

D.*=

53.下述关于break语句的描述中,()是不正确的。

A.break语句可用于循环体内,它将退出该重循环;

B.break语句可用于if体内,它将退出if语句;

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

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

54.下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()合适。

A.递归调用;

B.重载函数;

C.内联函数;

D.嵌套调用。

55.下列各运算符中,()优先级最低。

A.?

B.|C.||D.!

56.下列存储类标识符中,()的可见性与存在性不一值。

A.外部类;

B.自动类;

C.寄存器类D.内部静态类;

57.在一个被调用函数中,关于return语句使用的描述,()是错误的。

A.被调用函数中可以不用return语句;

B.被调用函数中可以使用多个return语句;

C.被调用函数中,如果有返回值,就一定要有return语句;

D.被调用函数中,一个return语句可返回多个值给调用函数。

58.在C++中,关于下列设置参数默认的描述中,()是正确的。

A.不允许设置参数的默认值;

B.设置参数默认值只能在定义函数时设置;

C.设置参数默认值时,应该是先设置右边的再设置左边的;

D.设置参数默认值时,应该全部参数都设置;

59.下列定义中,()是定义指向数组的指针p。

A.int*p[5];

B.int*p[];

.(int*)p[5];

D.int(*p)[5];

二、填空题

1.C++程序一般可以分为4个部分:

预处理指令,全局说明,程序的主函数,用户自定义的函数。

2.任何程序逻辑都可以用顺序、选择和循环等三种基本结构来表示。

3.do-while语句与while语句的主要区:

do-while语句是先执行循环体,然后检查循环条件;

while语句是先检查循环条件,再执行循环体。

4.语句是构造程序最基本的单位,程序运行的过程就是执行程序语句的过程。

5.break语句实现的功能是:

break语句用在循环语句的循环体内的作用是终止当前的循环语句。

6.continue语句实现的功能是:

根据程序的目的,有时需要程序在满足另一个特定条件时跳出本次循环。

7.C++语言的头文件与源程序文件扩展名分别是h和cpp。

8.在C++程序中使用基本输入与输出流时需要包含的头文件名是iostream.h。

9.在C++语言中,惟一的一个三目运算运算符是?

:

10.在C++语言中,数值常量59、0123及0x9f对应的十进制值分别是59、83、159。

11.假定intx=4,y=8;

则x<

2和y>

2的值分别是16、2。

12.设对数组赋初值如下:

inta[]={2,7,9,6,5,7,10},则a[2]=9,a[5]=7。

13.若变量y是变量x的引用,则对变量y的操作就是对变量x的操作。

14.一个二维字符数组s[10][20]能够存储10个字符串,每个字符串的长度至多为19。

15.C++中当一个函数无返回值时,则函数的类型是void。

16.在字长为32位的机器中,sizeof(char)=1字节,sizeof(unsignedint)=4字节.

17.C++语法规定,任何变量在使用前必须先(定义);

变量有两个值,一个是变量数据值,另一个是变量的地址值。

18.浮点型变量f当前存储的值是17.8,经(int)f类型强制转换后f存储的值是__17.8__。

19.函数的调用主要分为传值调用和引用调用。

传值调用又分为传值调用、传址调用,前者的特点是形参值的改变不影响实参。

20.若:

typedefchar*STRING;

STRINGp,s[10];

则:

p和s的数据类型分别是字符型指针(指向字符型变量的指针),字符型指针数组。

21.求a,b,c中的最大值,请将表达式补充完整(t=a>

=b?

a:

b)<

c?

c:

t。

//c:

(t=a>

b)

22.C++中任何一个数组的名字是一个常量指针,该指针的值是该数组首元素的地址。

23.函数调用时的参数传递主要分为单向传递和双向传递,前者的特点是形参的改变不影响实参。

24.函数重载时要求同名函数的参数的个数不同或参数的类型不同,否则无法确定是哪个函数。

25.枚举是一种构造的数据类型,它是若干个有名字的整型常量的集合。

26.C++中,&的优先级比&&的高;

大多数运算符的结合性是从左到右的,只有单目、三目、赋值三类运算符的结合性是从右到左的。

三、判断题

1、在程序正确的前提下,可读性、易维护、可移植是程序设计的首要目标。

2、C++程序是函数驱动的。

3、C++程序设计中,变量和函数均遵循先声明后使用的原则。

4、数组赋初值时,初始值表中的数据项的数目可以大于或等于数组元素的个数。

(×

 )

5、while循环语句的循环体至少执行一次。

(×

6、在说明语句inta(15),&

b=a,*p=&

a;

中,b的值与*p的值是相等的。

( √ )

7、按照标识符的要求,下划线是不能组成正确标识符的。

8、C++中使用了新的注释符(//),C语言中注释符(/*…*/)不能在C++中使用。

9、引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。

(√ )

10、for循环是只有可以确定的循环次数时才可使用,否则不能用for循环。

( ×

11、返回值类型、参数个数和参数类型都相同的函数也可以重载。

12、当break语句用在双重循环的内循环中时,它只能退出内循环到外循环中去,而不能直接退出整个双重循环。

( √)

13、在语句constchar*ptr中,ptr是指向字符串的常量指针。

14、宏定义命令是以分号结束的。

15、函数形参的作用域是该函数的函数体。

四、阅读程序题

1、#include<

iostream.h>

voidmain()

ints=0;

for(inti=1;

;

i++){

if(s>

50)break;

if(i%2==0)s+=i;

}

cout<

"

i,s="

"

s<

运行结果:

i,s=15,56

2、#include<

inti(0);

while(++i){

if(i==10)break;

if(i%3!

=1)continue;

cout<

4

7

--------------------------------------

3、#include<

chara[]="

abcdabcabfgacd"

inti1=0,i2=0,i=0;

while(a[i])

{

if(a[i]=='

)i1++;

)i2++;

i++;

i1<

'

i2<

43

4、#include<

iomanip.h>

inta[9]={2,4,6,8,10,12,14,16,18};

for(inti=0;

i<

9;

cout<

setw(5)<

*(a+i);

if((i+1)%3==0)cout<

6

10 

12

14 

16 

18

5、#include<

staticinta[8]={2,4,6,8,10,12,14};

voidfun(int*pa,intn);

voidmain()

{

intm=8;

cout<

a[7]="

a[7]<

fun(a,m);

}

voidfun(int*pa,intn)

for(intI=0;

I<

n-1;

I++)

*(pa+7)+=*(pa+I);

a[7]=0

a[7]=56

6、#include<

intx=3,y=3;

switch(x%2)

case1:

switch(y)

{

case0:

cout<

first\t"

case1:

second\t"

break;

default:

hellow\t"

}

case2:

cout<

third\n"

hellowthird

7、#include<

voidLE(int*a,int*b){

intx=*a;

*a=*b;

*b=x;

*a<

*b<

intx=10,y=25;

LE(&

x,&

y);

x<

y<

2510

8、#include<

io

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

当前位置:首页 > 农林牧渔 > 林学

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

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