您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页2010A计算机、通信《C++语言》复习(1)

2010A计算机、通信《C++语言》复习(1)

来源:爱go旅游网
C++程序复习题

一.选择题(每题2分,共40分)

1.C++规定,在一个源程序中,main()函数的位置( )。 A.必须在最开始 B.必须在最后

C.可以任意 D.必须在系统调用的库函数的后面 2.以下( )是C/C++合法的标识符。 A.char2 B.@x C.int D.7Bx

3.下面的程序,对于输入:2 9 15,输出的结果是( )。 #include void main() {

int a; float b;

cout<<”input a,b”<>a>>b;

cout<<”a+b=”<}

A.2 B.11 C.26 D.24

4.下面关于编译预处理命令的说法中,正确的是( )。 A.一条文件包含命令能包含多个文件 B.文件包含命令不可以嵌套使用

C.编译预处理命令是在编译之前被处理的命令 D.编译预处理命令中的“#”可以省略

5. 在以下关于C++语言的叙述中,正确的是( )

A.if语句结构中必须有else语句 B.switch语句结构中必须有default语句 C.C++程序必须有return语句

D.C++中使用流来执行标准的输入输出操作

6.下列不正确的变量定义方法是( )。

A.int a,&b=a; B. float a,*b=&a; C.int a(4),b(0); D. int a=b=5;

7.下列运算符优先级按由高到低的顺序排列正确的是( )。 A.*=. &&.!=.% B.*=. %. &&. != C.%. != .&& .*= D. &&. !=. %.=

8.已知x,y为整型,z为实型,ch为字符型,下列表达式中合法的是( A.z=(y+x)++ B.x+y=z C.y=ch+x D.y=z%x

9.若有变量定义”int a=7;”,则下列语句组对应的输出结果是( ) switch(a%5)

第 1 页 共 31 页

) { case 0: cout<default:cout<<”其它值”;

}

A.其它值 B.5 C.7 D.75其它值 10.执行下列程序段后,变量K的值为( ) for(k=0,m=1;m<4;m++)

{

for(n=1;n<5;n++)

if (m*n%3==0) continue; k++; }

A.1 B. 3 C.6 D.12 11.若输入字符串“ABC”,下面程序段的输出为( ) char c;

while (cin>>c,c!=’\\n’) cout<A.222 B. CDE C.676869 D.333 12.以下不能对二维数组a初始化的语句是( )

A.int a[2][]={{1},{2}}; B.int a[2][3]={1,2,3,4,5,6};

C.int a[2][3]={1}; D.int a[2][3]={{1},{2}};

13.已知有语句“int a[3][4]={{1,2,5,3},{2,4,7,9},{3,6,5,8}},*p=&a[0][0];”,则表达式

(*p+2)+*(p+2)的值应为( )。 A.10 B.5 C.6 D.8

14.要比较两个字符数组a,b中字符串是否相等,下面正确的是( )。

A.a==b B. strcmp(a,b)==0 B.strcpy(a,b) D.strcmp(a,b)=0 15.若函数的类型和return语句中的表达式类型不一致,则( ) A.编译时出错

B.运行时出现不确定结果

C.不会出错,且返回值的类型以return语句中表达式的类型为准 D.不会出错,且返回值的类型以函数类型为准。 16.下面函数说明正确的是( )

A.void f1 (int a=3,int b,int c); B.void f2 (int a,int b=3,inc c); C.void f3(int a,int b,int c=3); D.void f4(int a,int b,int 3); 17.下面程序的输出结果是( ) #include int m=10;

void f(int m,int &n)

第 2 页 共 31 页

{

m=m+2;n=n+2; }

void main() {

int n=5; f(m,n);

cout<<”m=”<A.m=10 n=5 B.m=10 n=7 C.m=12 n=7 D.m=12 n=5 18.以下函数中不属于类的成员函数的是( )

A.构造函数 B.析构函数 C.友元函数 D.拷贝初始化构造函数 19.作用域运算符的功能是( )

A.标识作用域的级别的 B.指出作用域的范围的

C.给定作用域的大小的 D.标识某个成员是属于哪个类的

20.假设person是一个类,p1是该类的一个对象,p2是指向p1的指针,getname是该类的一个成员函数,则以下表达式不正确的是( )

A.person.getname() B.p1.getname()

C.p1.person::getname() D.p2->getname()

21.C++源程序文件的扩展名为( )

A..CPP B..C C..DLL D..EXE 22.以下( )是C++合法的表达式

A. a=1,a++ B. (x+y)++ C. a+b=c D. 12.25%10 23.以下程序的输出结果是:( )

#include int fun(char *s){ char *p=s;

while (*p!='\\0') p++; return (p-s); }

void main(){

cout<A.0 B.1 C.2 D.3 24.下面叙述中正确的是( )

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

B.for循环同do-while语句一样,先执行循环体再判断

C.不管哪种形式的循环语句,都可以从循环体内转到循环体外 D.for循环体内不可以出现while语句 25.使用( )可以设置数据输出的宽度。 A.setbase(int n) B.setw(int n)

C.setfill(int n) D.setprecision(int n)

第 3 页 共 31 页

26.在int a[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是( ) A.3 B. 2 C.6 D.4 27.下面正确定义数组的语句是( )

A.int x[][2]={2,1,3,2} B. int x[][]={2,1,3,2} C. int x[2][]={2,1,3,2} D. int x[2,2]={2,1,3,2} 28.已知 char c; const char *pc="asdf";( )是正确的。

A.pc="dfgh" B.*pc=‘b’ C.*pc++=‘y’ D.pc=&c

29.若有变量定义”int a=7;”,则下列语句组对应的输出结果是( ) switch(a%5)

{ case 0: cout<case 3: cout<< --a;break; default:cout<<”其它值”;

}

A.5 B.7 C.75 D.75其它值 30.以下程序段的输出结果是( ) for(i=4;i<=10;i++) {

if(i%3==0) continue; cout<A.45 B. 457810 C.69 D.6710 31.执行下列语句后的输出结果是( )。

int hot=10; int &rad=hot; hot+=10;

cout<A.0 B.20 C.10 D.30

32.若用数组名作为函数调用的实参,传递给形参的是 。

A.数组的首地址 B.数组中第一个元素的值 C.数组全部元素的值 D.数组元素的个数

33.定义如下变量和数组: int i;

int x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) cout<A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9

34.将两个字符串连接起来组成一个字符串时,选用的函数是 。

A. strlen() B. strcap() C. strcat() D. strcmp() 35.若有以下程序段:

int x[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’,d,g;

第 4 页 共 31 页

则数值为4的表达式是( )。

A. x[g-c] B. x[4] C. x[„d‟-„c‟] D. x[‟d‟-c] 36.若函数的调用形式如下:

f((x1,x2,x3),(y1,y2)) 则函数形参个数是( )。

A. 2 B. 3 C.4 D. 5 37.有如下程序

#include #include using namespace std; int main(){

cout<若程序的输出是: **12.345**34.567

则程序中下划线处遗漏的操作符是______。

A.setprecision(3) B.fixed C.setfill('*') D.stew(8)

38.在私有继承中,基类的公有成员将成为其派生类的( )。 A.公有 B.保护 C.私有 D.不能访问 39.下列哪个不是成员访问限定符 。

A.public B.protected C.private D.static 40.在下面关于函数的描述中错误的是( )

A.在一个源文件中,如果函数定义在先,调用在后,则不必声明该函数

B.如果一个函数在一个源文件里定义,而调用在另一个源文件中,则必须在调用之前声明该函数

C.函数的声明应使用函数原型

D.在一个源文件中,如果自定义函数调用在先,定义在后,则不必声明该函数

41. 若有int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*q)[4]=a;*q=a[0];则能够正确表

示数组元素a[1][2]的表达式是( )。

A. *((*q+1)[2] B. *(*(q+5)) C. (*q+1)+2 D. *(*(q+1)+2) 42. 类是C++中的一种新的数据类型,下列有关类的说法不正确的是( )。

A. 类是一种用户自定义的数据类型 B. 只有类中的成员函数才能存取类中的私有成员 C.在类中,如果不做特别说明,所指的数据均为私有类型 D. 在类中,如果不做特别说明,所有的成员函数均为公有类型

43.设int x[]={1,3,5,7,9,11,13},*p=x;则不能正确引用数组元素的表达式是( )

第 5 页 共 31 页

A.*(p--) B. *(--p) C.*(p++) D.*(++p) 44. 执行下面程序段后,a的值为( )。

int a,b;

for(b=1,a=1;b<=50;b++) {

if(a>=10) break; if (a%2= =1) { a+=5; continue;} a-=3; }

A. 2

B. 6

C. 10

D. 8

45. 在下面的引用定义中,正确的是( )。

A. int x,&y; y=x; B. int x,&y=x ; C. int &y=x,x; D. float z; int x,y=&z; 46.下面对模板的声明正确的是_( ).

A. template B. Template C. Template D. Template

47. 已知一个类A的定义如下,则执行“ A x(3) ;”语句后,x.a和x.b的值分别为( class A

{ int a,b ; public:

A(int aa=1,int bb=0) {a=aa;b=bb};

}

A. 1和0

B. 3和0 C. 1和3 D. 3和0

48.C++源程序文件的扩展名为( )

A. .CPP B. .OBJ C. .C D. .EXE 49. 下列变量名中,( )是合法的。

A. double B. A+a C. CHINA D. 5S 50.下列符号能用作C++标识符是的( )。

A. xyz/2 B. 2xsale C. x-sale D. x_sale 51.( )不是C++的基本数据类型。

A.字符类型 B.数组类型 C.整数类型 D.布尔类型 52.下列运算符中优先级最高的是( ) A.% B.( ) C. ! D./

第 6 页 共 31 页

) 53.字符串常量“ME”的字符个数是( )。

A.4 B.3 C. 2 D. 1 .在C++语言中,080是( )

A.八进制数 B.十进制数 C.十六进制数 D.非法数 55.整型变量i定义后赋初值的结果是( )。

int i=2.8*6 ;

A.12 B.16 C.17 D.18 56.如有int m=31;则表达式(m++*1/2)的值是( )

A.0 B.15 C.15.5 D.16 57.在C++语言中,自定义的标识符( )

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

58.下列C++标点符号中表示一条语句结束的是( )

A.# B.// C. } D. ;

59. 下列C++标点符号中表示一条预处理命令开始的是( )

A.# B./ C. /* D. &

60.定义如下变量:int i=2 ;int j=3 ;则i/j的值是( )

A.0.7 B. 0.66667 C. 0.66666.... D. 0 61.已知int a=2,a+=a-=a*a的值是( )。

A.-4 B.-2 C.0 D. 4

62.语句n1=2,n2=++n1,n1=n2++;执行后变量n1,n2的值分别为( )

A.3,4 B.3,3 C. 2,3 D. 2,4 63.下列程序段执行后输出结果为( )

char a=‟a‟ ; cout<<”a=”<A.a=A B.a=33 C. a=65 D. a=A-32 .for(i=0,x=0; !x&&i<=3;i++)循环的次数为( )

A.4 B.5 C.1 D. 无限循环 65.若有如下程序段:

{ int a=2,b=-1,c=2; if (aif (b<0) c=0; else c+=1;

cout<<”c=”<执行后输出结果是( )

A.2 B.1 C. 3 D. 0 66.有如下程序段:

int i=10; switch(i)

{ case 9: i++;

第 7 页 共 31 页

case 10: i++; case 11: i++; default: i++; }

执行后输出结果是( )

A.11 B. 12 C. 13 D. 14 67.下列描述正确的是( )

A.break 语句与continue语句完全一样,可以相互代替。 B.用break语句可以提前终止整个循环 C.用continue语句可以提前终止整个循环

D.用break 语句与continue语句都不能提前终止整个循环 68.以下for循环的执行次数是( )

for (x=0,y=0; (y=123)&&(x<2); x++)

A.执行1次 B.执行2次 C.执行3次 D.69.为了避免嵌套的if—else语句的二义性,C语言规定else总是与( A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 70.break语句的作用是( )

A.立即跳出包含该break 语句的所在层的循环语句和switch语句B.立即跳出包含该break 语句的最小的各种循环语句 C.立即跳出包含该break 语句的switch语句

D.立即跳出包含该break 语句的各层循环语句和switch语句 71.下面程序段执行完后,x 的值是( ) x=0 ;

for (i=0 ; i<90 ; i++) if (i) x++ ;

A.0 B.30 C. D. 90 72.continue语句的作用是( )

A.结束包含该continue语句的最小的各种循环语句 B.结束包含该continue语句的各种循环语句 C.结束本次循环,直接进行循环条件的判断 D.循环执行完后,结束循环 73.下列程序段循环( )次

int x=-10 ;

while (++x) { }

A.9 B.10 C.11 D.无限 74.有如下程序段:

…….

for (int i=1; i<4; i++) { if (i%2==0) continue; cout<执行以下程序段的输出结果是( )。

第 8 页 共 31 页

无限次 )

A.1 B.1,3,4 C.1,3, D. 2,4 75.用逻辑表达式表示“大于10而小于20的数”,正确的是( )

A.1010|| x<20 C.x>10&x<20 D.!(x<=10|x>=20)

76.如果switch语句中的选择表达式是字符型变量code,下面哪一项case子句是合法的( )

A.case “3” : B.case „3‟: C.case 3 : D. case=3: 77.设int a=10,b=11, c=12 ; (a+b)A.2 B.0 C.-2 D. 1 78.在以下关于C++语言的叙述中,正确的是( )

A.if语句结构中必须有else语句

B.switch语句结构中必须有default语句 C.C++程序必须有return语句

D.C++中使用流来执行标准的输入输出操作

79.若m是一个值为10的int型变量,n是一个bool型变量,则表达式 !m||n>0的值为( )。

A.true B.false C.与n的值相反 D.与n的值相同 80.下列do while循环的循环次数是( ) int i=5 ;

do { cout<}while (i !=0) ;

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

81.若有以下定义语句:int a[10]={1,2,3,4,5,6,7,8,9,10};则下列( )是对数组元素的正确使用。 A.a[10] B. a[a[3]-5] C.a[a[9]] D. a[a[4]+4] 82.对语句:int a[3][4]={0};描述正确的是( )。

A.只有元素a[0][0] 可得到初值0

B.数组a中每个元素均可得到初值0 C.此说明语句不正确

D.数组 a中各元素都可得到初值,但其值不一定为0 83.若有以下定义,则数组元素a[2][2]的值是( )

int a[][3]={{1,2},{3,2,4},{4,5,6},{1,2,3}};

A.4 B. 5 C.2 D.6 84.在下面的一维数组定义中,不正确的是( )

A.int x[10][10] B.int x[][10]={{1,3},5,7}; C.int x[][] D.int x[10][10]={0};

85.若定义了一个4行3列的数组,则第8个元素是( )

A.a[1][3] B.a[2][3] C.a[3][1] D.a[2][1] 86.判断两个字符串(分别用a,b表示)是否相等的操作为( )

A.a==b B.if (a==b) C.if(strcmp(a,b)) D.if (strcpy(a,b)) 87.定义一个一维数组,正确的语句是( )

A.ina a(10) B. int n=10; int a[n]; C.int n; cin>>n; int a[n] D.const int n=10;int a[n]; 88.下面数组定义错误的是( )

char a[n]={“good”} A.#define n 5

第 9 页 共 31 页

B. const int n=5;

char a[n]={“good”} C. int n=5; D.const int n=5;

char a[n]={“good”}; char a[n+2]={“good”};

.执行下列语句:int c[4]={0,1,2,3}; for(int i=0;i<4;i++) c[i]=c[i]+i;则 c[3]的值是( )。 A.0 B.4 C.6 D.8 90.数组int area[4]={1,2,3,4};执行程序

for (int i=1;i<=4;i++) area[i-1]=1;

那么area[4]的值是( )。

A.4 B.3 C.1 D.不确定值 91.对字符数组进行初始化,下列语句正确的是( ) A.char a[]=”abcd”; B.char a[][]=”abcd”;

C.char a[4]=”abcd”; D.char a[2][2]={“ab”,”cd”}; 92.下列关于指针运算的描述错误的是( )

A.指针变量是用于存储变量地址的变量 B.指针变量是用于存储变量值的变量 C.在一定条件下,指针变量可以为空值 D.可以使用指针变量来访问数组

93.若已经定义了a为int 型变量,则对指针变量p的定义及初始化正确语句是( )。

A.int *p=a; B.int p=a; C.int *p=*a; D.int *p=&a

94. 已知一运行正常的程序中有下面的语句,由此可知,变量a和b的类型分别是( )

int *p2=&x,*p1=a;*p2=*b;

A.int和int B.int *和int C.int 和int* D.int *和int * 95.设有如下程序段,程序段运行后输出的结果是( )。

{ int a=1, b=3, c=5;

int *p1=&a,*p2=&b,*p=&c; *p=*p1*(*p2); cout<A.1 B.3 C.5 D. 15 96.设有如下程序段:

int x=8,*p=&x; cout<<*p++<A.8 B.9 C.8的地址 D. 9的地址

97.设有定义语句: int *point,a=4 ;和 point=&a;下面均代表地址的一组选项是( )

A.a, point B.&a,*point C.point , &a D. a , *point 98.设有定义语句:int a[10],*p=a ;对数组元素正确使用的语句是( )

A.a[p] B.p[a] C.*(p+2) D.p+2

99. 设有定义语句:int a[10]={ 0,1,2,3,4,5,6,7,8,9} ,*p=a ;则数值不为3的表达式是(A.a[3] B.p[3] C.p+=2,*(p++) D. p+=2,*(++p) 100.设int x[]={1,2,3,4,5,6} ; *p=x ;则数值为3的表达式是( )

A.p+=2,*++p B.p+=2,*p++ C.p+=3,*p D. p+=2,++*p

第 10 页 共 31 页

101.设int x[10]={10,9,8,7,6,5,4,3,2,1} ; *p=x ;则数值为2的表达式是( )

A.a[9] B.*p[8] C. *(a+8) D. p+8 101.设有如下程序段:

char *s=\"abcde\"; s+=2; cout<<*s<A.一个指向整型变量的指针 B.一个指向整型的指针数组名

C.一个指针,它指向一个含有四个整型元素的一维数组 D.一个非法的定义语句

103.设有如下程序段:输出的值为( ) int a[3][3]={9,8,7,6,5,4,3,2,1}; int *p[3]; p[1]=a[1];

cout<<*(p[1]+2)<A.4 B.5 C.6 D.7 104.C++中函数返回值的类型是由( )

A.return语句中的表达式类型所决定 B.调用该函数时的主调函数类型所决定 C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型所决定 105.以下叙述中正确的是( )

A.构成C++程序的基本单位是函数 B.可以在一个函数中定义另一个函数 C.主函数必须放在其他函数之前

D.所有被调用的函数一定要在调用之前进行定义 106.以下正确的函数定义形式是( )

A.int fun(int x; int y) B.int fun(int x, int y) C.int fun(int x, y) D.int fun(int x ; )

107.若有函数原型int sum(int x, int y) ; 则使用语句cout<A.指针传递 B.引用传递 C.值传递 D.变量传递

108.要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。能实现正确交换功能的函数是( )。

A.void funa(int &x, int &y) B.void funb(int x, int y) { int p; { int t; p=x; x=y; y=p;} t=x; x=y; y=t;} C. void func(int *x, int *y) D. void funb(int x, int y) { *x=*y; *y=*;} { x=x+y ; y=x-y ; x=x-y ;}

109.关于引用下列说法正确的是( )

A.引用是一种特殊类型的变量,是另一个变量的别名 B.引用在函数调用中传递的是变量的值

第 11 页 共 31 页

C.在声明引用时,要给它另开辟内存单元 D.在声明引用时,可以不进行初始化

110.在C++函数头定义中,若省略了返回值的数据类型,其默认的返回值的数据类型为( )

A.int B.void C.float D. double 111.下面描述中,不正确的是( )。

A.在关键字private后面声明的成员,只允许本类中的函数访问 B.在类的外部只能访问类的公有成员

C.面向对象程序设计方法具有四个基本特征:抽象.封装.继承.多态性 D.函数的重载体现了面向对象程序设计的继承性 112.类Time的构造函数名是( )

A.class B.public C.private D. Time 113.类创建的对象称为( )

A.属性 B.类的实例 C.基类 D.派生类 114.下面描述中,不正确的是( )

A.构造函数定义创建对象的方法,提供了初始化对象的一种简便手段 B.析构函数完成对象被删除前的一些清理工作

C.如果程序中未声明构造函数,则系统自动产生出一个缺省形式的构造函数

D.析构函数允许重载,但析构函数不得返回任何值,即使关键字void也不允许有。 115.以下哪项创建了名为dog的Animal对象( )

A.Animal “dog” ; B.Animal dog; C.dog “Animal” D.dog Animal 116.类Animal的构造函数名是( )。

A.Animal B.AnimalConstructor

C.ConstAnimal D.以上任何一项都可作为构造函数名 117.以下哪项表明displayBreed()函数是Animal类的成员函数( )

A.Animal::displayBreed() B.Animal.displayBreed() C.displayBreed()::Animal D.displayBreed()&&Animal

118.为了使类中的某个成员不能被类的对象通过成员选择运算符访问,则不能把该成员的访问权限定义为( )

A.public B.protected C.private D.static 119.类的构造函数的作用是( )

A.一般成员函数 B.类的初始化 C.对象的初始化 D.删除对象 120.类具有哪四个基本特征( )

A.抽象 隐藏 继承 多态 B.抽象 封装 继承 多态 C.抽象 隐藏 继承 封装 D.重装 封装 继承 多态 121.由类创建的对象称为( )

A.属性 B.类的实例 C.基类 D.派生类 122.类的析构函数的作用是( )。

A.一般成员函数 B.类的初始化 C.对象的初始化 D. 删除对象 123.以下不正确的说法是( )。

A.在C++中,一个程序中的函数名不一定是唯一的。 B.在C++中定义函数时,在返回值数据类型的前面加上关键字inline,这种函数称为内联函数。 C.在C++中不允许有两个及以上的函数使用同一个函数名

第 12 页 共 31 页

D.在定义函数时,还可以对形式参数进行初始化,即给该形式参数指定默认值。 124.以下正确的说法是( )

A.全局变量如果没有指定初值,则其初值为0 B.静态变量如果没有指定初值,则其初值为0 C.局部变量如果没有指定初值,则其初值为0

D.函数中的静态变量在函数每次调用时都会重新设置初值 125. 若程序中定义了以下函数

double myadd(double a,double b) { return (a+b) ;}

并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是 A. double myadd(double a,b) ; B. double myadd(double,double); C. double myadd(double b,double a) ; D. double myadd(double x,double y);

126.若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2)表示的数组元素是( ) int t[3][3],*pt[3],k; for(k=0;k<3;k++) pt[k]=&t[k][0]; A. t[2][0] B. t[2][2] C. t[1][2] D. t[2][1] 127.若有以下的说明: struct person {char name[20]; int age; char sex;

}a={\"li ning\

则对字符串li ning的引用方式不可以是( )

A. (*p).name B. p.name C. a.name D. p->name 128.执行下列程序段后,变量i的值为( )。 #define MA(x,y) ((x)*(y))

int i=5;

i=MA(i,i+1)-7;

A. 30 B. 23 C. 19 129.对以下结构定义: struct

{ int len; char *str;

} *p;

*p->str++中的++加在( )。

第 13 页 共 31 页

D. 1

A. 指针str上 B. 指针p上 C. str所指的内容 D.以上均不是 130. 执行下面程序段后,a的值为( )。

int a,b;

for(b=1,a=1;b<=20;b++) {

if(a>=10) break; if (a%2==1) { a+=5; continue;} a-=3; }

A. 2

B. 6

C. 10

D. 8

131.以下选项中,( )是合法的C++语言的长整型常量。

A.0L B.5712700 C.0.083874 D.2.18159e+9 132.有如下函数

void sFun(int *p) {

*(++p)=0; }

则执行以下程序段后,结果是( ) int a[2]={5,5}; sFun(a);

cout<A. 5 ,5 B. 0, 5 C. 5, 0 D. 0 ,0 133.有以下函数

char *fun(char *p) {

return p; }

该函数的返回值是( ) A. 无确切的值 C. 形参p自身的地址值

B. 形参p中存放的地址值 D. 编译有错

134.下面程序的执行结果是( )

#include

第 14 页 共 31 页

void main()

{ char a[]={‘H’,’e’,’l’,’l’,’o’,’\\0’}; int i,j;

i=sizeof(a)/sizeof(char); j=strlen(a); cout<A. 6 6 B. 5 6 C. 1 5 D. 6 5 135.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是

A. if((a>b) &&(b>c) ) k=1; B. if((a>b) ||(b>c) ) k=1

else k=0;

C. if(a<=b) k=0;

D. if(a>B) k=1;

else if(b<=c) k=1; else if(b>C) k=1; else k=0; 136.下面各语句中,能正确进行赋字符串操作的语句是( )

A. char s[5]={\"ABCDE\B.char s[5]={'A','B','C','D','E'};

C. char *s; s=\"ABCDE\"; D.char *s; cout<int x,y; x=10;y=0; do {

x+=2;y+=x;

cout<<\"x=\"<20) break; } while(x=14);

A. x=12 ,y=12 B.x=12,y=12 C.x=12;y=24 D.x=12,y=12

X=14 ,y=12 x=14,y=26 x=16,y=28 x=16,y=28

138. 下面程序段中正确的语句是( )

class AA{

int i; public: void ~AA(int);

第 15 页 共 31 页

void AA();

void AA(int x){i=x;}; };

A. int i; B.void ~AA(int); C.void AA(int); D.void AA(int x) {i=x;}; 说明:构造函数和析构函数不允许有参数和返回值,void也不行。 139.设int a=4,b=8;则++a*b的结果是( ) A.33 B.40 C.32 D.41

140. 有以下定义,则此数组的元素中不正确的一个赋值结果是( )。 static int a[10]={1,2,3,4,5};

A. a[10]=2 B. a[0]=1 C. a[3]=4 D.a[7]=0 141. 执行语句for(i=1;i++<4; ); 后变量i的值为( )。

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

142. 若变量a、i 已正确定义,且i已正确赋值,下列语句合法的是( )。

A. a==1; B. ++i; C. a=a+==5; D. a==int(i); 143. 类的构造函数是在( )调用的。

A. 类创建时 B. 创建对象时 C. 删除对象时 D. 不自动调用时

144. 设C++语言中,一个int型数据在内存中占2个字节,则unsigned int 数据的取值范围是( )。

A. 0~255 B. 0~32767 C. 0~65535 D. 0~127 145. 对中断语句break的说法不正确的是( )。

A.用户可以指定中断位置 B. 用户可以指定转移的位置 C.break语句可以跳出本循环 D. continue语句可以结束本次循环

146. 下面程序中说明的私有成员是( )。

class Location

{ int x; public:

void init(int initX,int initY); private: int y; public: int SetX();

第 16 页 共 31 页

int SetY() ;

}

A. x B. y C. SetX(),SetY() D. B和A都是 147. 下列各项中不符合函数重载必须满足的条件是( )。

A.必须有不同的参数个数 B. 对应的参数类型必须不相同 C. A和B必须同时满足 D. A和B只要满足一个即可

148. 有关类和对象的说法不正确的是( )。

A.对象是类的一个实例 B. 一个类只能有一个对象

C. 任何一个对象只能属于一个具体的类 D. 类与对象的关系与数据类型和变量的关系相似

149. 类的说明如下,请指出错误的地方( )。 class Myclass

{

int a=111; public:

Myclass(int x,int y); Myclass(int val) ; ~Myclass() ; } ;

A. int a=111; B. Myclass(int x,int y); C. Myclass(int val) ; D. ~Myclass() ; 150. ( )不是构造函数的特征。

A.构造函数的函数名与类名相同 B. 构造函数可以重载 C. 构造函数可以设置缺省参数 D. 构造函数必须指定类型说明

二.写出下列表达式的值(每题2分,共10分)

1.3.5*3+2*7-‘a’ -92.5

2. 45/2+(int)3.14159/2 23

3. int a=3;a=b=(c=a+=6) 9

第 17 页 共 31 页

4. (int)(a+6.5)%2+(a=b=5) 设a的初值为3 6

5. int a=12; a+=a-=a*=a 0

6.int e=1,f=4,g=2;

double m=10.5,n=4.0,k;

k=(e+f)/g+sqrt(n)*1.2/g+m 7.2

7.double x=2.5,y=4.7; int a=7;

x+a%3*(int)(x+y)%2/4 2.5

8.int a,b;

a=2,b=5,a++,b++,a+b; 9

9.int x=13,y=15;

x++,y+=2,x/y; 0

10.float x;

x=(float)(7/3); 2.0

三.填空题

1. 关系表达式x+y > 5的相反表达式为 x+y<=5 。

bb24ac2. 数学算式的C++表达式为 (b+sqrt(b*b-4*a*c))/(2*a) 。

2a3. 已知语句cout<ple 。”

4. 在C++中存储字符串”a+b=c”至少需要 6 个字节。

5. 设有int a[4],pa是指向该数组的指针,则pa应初始化为____pa=a______。

6. 假定AA是一个类,“int abc();”是该类中一个成员函数的原型,则在类外定义时的函数头为

int AA:: abc() 。

7. 假定x是一个逻辑量,则x && true的值为 x 。

第 18 页 共 31 页

8. 定义一个函数模板要用到的第一个修饰符是 template 。

9.下面函数是求两个整型参数a和b的最小公倍数。

int f2(int a, int b) {

int i=2, p=1; do {

while(a%i==0 && b%i==0 )

{

p*=i; a/=i; b/=i; } i++;

} while(a>=i && b>=i); return p*a*b; }。

10.若x = 5, y = 10, 则计算y*=++x表达式后,x + y的值是 60 。

11.生存期与存储区域关系密切,一般存储区域分为代码区(code area).数据区(data area).栈区(stack area)和堆区(heap area)。代码区用来存放【1】 。与其它存储区相对应的生存期分别为 【2】. 【3】. 【4】。(静态生存期.局部生存期.动态生存期)

12.面向对象程序设计的特点是 【5】 .【6】 .【7】 和多态性 。抽象性.封装性.继承性 13.(3*3+2.5*4)/2, 则表达式的值是 【8】 。9.5

14.若a是一个字符数组,则cin>>a表示从键盘上读一个 【9】 到数组a 中。字符串 15.面向对象的模型中,最基本的概念是对象和 【10】 。类 16.可以赋给指针的唯一整数是 【11】 。 NULL

17. C++语言中的函数分为三种。一是主函数main(),二是系统提供的 【12】,又称库函数,三是用户 【13】 。自定义函数

18. 设a=3,b=4,c=5,(a*=!a)&&(b+=c)||(c++);则a= 0【14】,b= 4【15】,c= 6【16】。 19. 若a是int型变量,则计算表达式a=25/3%3后a的值是【17】。2

20.设x,y,z均为int型变量,且x=3,y=-4,z=5,请在下面对应的【】 中写出表达式的值。 ①(x&&y)= =(x||z) 【18】 1 ② !(x>y)+(y!=z)||(x+y)&&(y-z) 【19】 1

③ x++ -y+(++z) 【20】 13 21.在C++中函数参数传递方式有值传递和 地址传递 .引用传递。

22.C++语言的标识符只能由___字母____.__数字__和_下划线__三种字符组成,且打头字符不能是__数字____。

23.C++程序的目标文件的扩展名是.OBJ。

24.在C++程序中,使用输入输出流需要包含的头文件是 iostream.h。

第 19 页 共 31 页

25.当执行cin时,从键盘上输入每个数据后必须输入一个空格,然后才可以接着输入下一个数据。 26.转义字符序列中的首字符是 \\ 字符。

27.空字符串在内存中的存储空间是 1 个字节。 28.以/*开始,*/结束,在/*和*/之间的部分即为 注释。

29.C++语言的基本数据类型有 int .float.double.char.bool五种。 30.功能:将若干个数按从小到大顺序排序。 #include using namespace std; void main() { int i,j; double temp; double a[11];

cout<<\"输入需排序的10个数:\"<>a[i]; for(i=1;i<=9;i++)

for( 1 )

if( 2 ) { temp=a[i]; 3 ;} cout<<\"排序后的10个数为:\"<(1) j=i+1; j<11;j++ (2) a[i]>a[j]

(3) a[i]=a[j];a[j]=temp

31.声明类的成员为私有类型的关键字是 private 。

32.对象通过成员运算符只能调用类的 公有(public)成员。 33.通过类定义对象时,对象会自动调用类的 构造 函数 。 34.对象消亡时,类的 析构 函数会被自动调用。

35.在类A的基础上,通过增加成员可以产生新的类B。由类A产生类B的过程称为 派生 ,此时通过称类A为了 基 类 ,类B为 派生 类。

36.继承方式关键字为private时,基类的公有成员在派生类中是 私有 成员。

37.下列程序是用递归的方法计算fun(5)*10的值。其中fun(k)=fun(k-1)*k,当k=0时,fun(0)=3。请填空完成程序。 #include

void main()

{ 【1】 int fun(int); cout<int fun( 【2】 ) int k {

第 20 页 共 31 页

if(k==0) 【3】 3 else

return fun(k-1)*k; }

38. 设a的初值为3,则表达式 (int)(a+6.5)%2+(a=b=5) 的值是 6【7】 。

四.阅读程序,写出程序运行结果。(每题5分,共25分)

1.#include

void main() {

int m,n=4,k; long int t,s=0; for(m=1;m<=n;m++) {

for(t=1,k=1;k<=m;k++) t*=m; s+=t; }

cout<<”s=”<写出该程序求解的表达式(3分)及结果(2分)。

2.以下程序的执行结果是:

#include

void fun(int *s,int n1,int n2)

{

int i,j,t;

i=n1; j=n2; while (it=*(s+i); *(s+i)=*(s+j); *(s+j)=t; i++; j--; } }

void main()

{

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

第 21 页 共 31 页

cout<3.有如下程序

#include using namespace std; void main() { int x=20; int &y=x;

cout<<(x==y)<<” “; cout<<(&x==&y)<4.#include int count(double *a) {

double *p=a;

while (*p!=0) p++; return (p-a); }

void main() {

double a[]={1.0,2.0,8.0,3.0,0.0,4.0,7.0}; cout<5.#include class A {

private:

int a,b;

public: A() {

a=b=0;

cout<<”con1 called.\\n”; }

A(int m)

第 22 页 共 31 页

{

a=b=m;

cout<<”con2 called.\\n”; }

A(int m,int n) {

a=m;b=n;

cout<<”con3 called.\\n”; }

void print() {

cout<<”a=”<void main() {

A a1,a2(10),a3(10,20); a1.print(); a2.print(); a3.print(); }

6. 写出下列程序的结果

#define M 1.5 #define A(a) M*a

void main() {

int x=5,y=6;

cout<} 7. 写出以下程序的运行结果。

#include void main() {

char a[]=”abcdabcabfgacd”; int i1=0,i2=0,i=0; while(a[i])

{

if (a[i]==’a’) i1++; if (a[i]==’b’) i2++;

第 23 页 共 31 页

i++; }

cout << i1 << ‘ ’<< i2 << endl;

}

8.写出以下程序的功能。

#include template T min(T a[],int n) { int i; T v = a[0]; for(i=1;iif(v > a[i]) v = a[i];

} return v;

}

9. 以下程序的输出结果是( #include int a=1; int f() {

static int i=0; a+=i; i++; return a;

}

void main(){ int i,s=0;

for(i=0;i<4;i++) s+=f(); cout<10. 有下列程序:

#include

14 第 24 页共 31 页

) int func(char s[]){ int length=0;

while (*(s+length)) length++; return length; }

void main(){

char a[10],*ptr=a; cin>>ptr;

cout<如果输入字符串Hello !并回车,则输出结果是( 6 )。

11. 以下程序的输出结果是( ) #include class Teample{ int a,b; public:

Teample(int x,int y) { a=x;b=y;} void disp()

{ cout<<\"a=\"<void main()

{ Teample s(1,2); s.disp(); }

a=1,b=2 12. 有以下程序执行后结果是( 2041 2044 )

struct STU

{ char name[10]; int num; };

void f1(struct STU c)

{ struct STU b={\"LiSiGuo\ c=b; }

void f2(struct STU *c)

{ struct STU b={\"SunDan\ *c=b; }

main( )

{ struct STU a={\"YangSan\

第 25 页 共 31 页

f1(a) ;f2(&b) ;

cout<13.#include void main()

{ int a[4],i,j,k; for(i=0;i<4;i++) a[i]=1; k=3;

for(i=0;icout<结果:11 1

14.#include #include using namespace std; void main()

{ int s[3][3],i,j,k; for(i=0;i<3;i++) for(j=0;j<3;j++) s[i][j]=i-j; for(i=0;i<2;i++) for(j=i+1;j<3;j++)

{ k=s[i][j];s[i][j]=s[j][i];s[j][i]=k;} for(i=0;i<3;i++) { for(j=0;j<3;j++)

cout<0 1 2 -1 0 1 -2 -1 0

15.#include #include using namespace std;

第 26 页 共 31 页

void main()

{ int a[2][3],j,k; for(k=0;k<3;k++) for(j=0;j<2;j++)

a[j][k]=(j+1)*(k+1); for(j=0;j<2;j++) { for(k=0;k<3;k++)

cout<<\"**\"<**1**2**3 **4**5**6

16.比较难

#include

using namespace std; void main()

{int a[10],i,j,pos=1; for(i=0;i<10;i++) cin>>a[i];

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

{ for(j=0; jif ( i==j ) { a[pos]=a[i];pos++;} /*pos记录在数组中重新填数的位置*/ }

for(i=0;i17.#include using namespace std; void fun(int *a ,int b) { int *k;

k=a; *a=b; b=*k;} void main()

{ int a=3, *x=&a; int y=5; fun(x, y);

cout<第 27 页 共 31 页

5 5

18.#include using namespace std; void fun(char *c,int d) { *c=*c+1;d=d+1;} void main()

{ char a='A', b='a'; fun(&b,a);

cout<A b

19.#include using namespace std;

void fun(char *a,char *b) { a=b; (*a)++;} void main()

{ char c1='A', c2='a',*p1,*p2; p1=&c1; p2=&c2; fun(p1,p2);

cout<20. 以下程序的输出结果是( )

main() {

int k,p,s[]={1,-19,7,3,-10,5}; k=s[0];

for(p=0;p<6;p++) if(s[p]-19

五.编程题(共25分)

1.编一程序,实现下列分段函数的求值:

第 28 页 共 31 页

|x|, x<5

2

Y= 3x-2x+1, 5≤x<20 x/5, x≥20

2.编一程序,求100∽1000之间有多少个整数,其各个数位数字之和等到于5?

3.编一程序,打印输出下列图形。

A A A A A A A A A A A A A A A A

4.编一程序,求:(9分)

C181318!的值。

13!(1813)!

5.编一程序,求1000之内的所有“完数”。所谓“完数”是指一个数恰好等于它的包括1在内的所有不同因子之和。例如:6是完数,因为6=1+2+3

6.编一程序,打印输出下列图形。

A$ A$A$A$ A$A$A$A$A$ A$A$A$A$A$A$A$

7.写一个判别素数的函数,在主函数中输入一个整数,输出是否为素数的信息。 8.定义一个名为rectangle的矩形类,矩形左上角为(x1,y1),右下角为(x2,y2),试用面向对象的程序设计方法计算矩形的面积。 参考代码1:

#include using namespace std; class Rectangle {

int x1,y1,x2,y2; public:

第 29 页 共 31 页

Rectangle(int a,int b,int c,int d) { x1=a;y1=b;x2=c;y2=d;} int cularea() { int s;

s=(x2-x1)*(y2-y1); return s; } };

void main()

{ Rectangle rect(100,100,300,300); cout<参考代码2:

#include using namespace std; class Rectangle {

int x1,y1,x2,y2; public:

void setdata() {

cin>>x1>>y1>>x2>>y2;}

int cularea() { int s;

s=(x2-x1)*(y2-y1); return s; } };

void main()

{ Rectangle rect; rect.setdata();

cout<9. 求10~100之内能同时被3和5整除的数的和。

10.输入一个正方形的边长,计算并输出该正方形的周长。

11.设计一个程序,用来将以小时为单位表示的时间转为以秒为单位表示的时间。要求:用自定义函数timechange()实现时间转换,用来实现小时转换秒。请编程实现输入为小时数,输出为秒数。 12.设计一个程序,用来计算输入的两个整数的乘积,计算乘积要单独用一个用户自定义有返回值

第 30 页 共 31 页

的函数来实现。

13.编程求能被3整除余1,被4整除余3的大于100的三位数并统计其个数。

14.设计一个正方形类,该类数据成员有边长a,成员函数有输入函数:inputa(),输出函数outputa(),用面向对象的方法任意输入边长,计算该正方形的周长。

第 31 页共 31 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务