C++习题.docx

上传人:b****4 文档编号:6010788 上传时间:2023-05-09 格式:DOCX 页数:39 大小:29.72KB
下载 相关 举报
C++习题.docx_第1页
第1页 / 共39页
C++习题.docx_第2页
第2页 / 共39页
C++习题.docx_第3页
第3页 / 共39页
C++习题.docx_第4页
第4页 / 共39页
C++习题.docx_第5页
第5页 / 共39页
C++习题.docx_第6页
第6页 / 共39页
C++习题.docx_第7页
第7页 / 共39页
C++习题.docx_第8页
第8页 / 共39页
C++习题.docx_第9页
第9页 / 共39页
C++习题.docx_第10页
第10页 / 共39页
C++习题.docx_第11页
第11页 / 共39页
C++习题.docx_第12页
第12页 / 共39页
C++习题.docx_第13页
第13页 / 共39页
C++习题.docx_第14页
第14页 / 共39页
C++习题.docx_第15页
第15页 / 共39页
C++习题.docx_第16页
第16页 / 共39页
C++习题.docx_第17页
第17页 / 共39页
C++习题.docx_第18页
第18页 / 共39页
C++习题.docx_第19页
第19页 / 共39页
C++习题.docx_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++习题.docx

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

C++习题.docx

C++习题

一.单项选择题

1.下列变量名中,A是合法的。

A)TANGSHANB)word-sizeC)floatD)M+m

2.下列表达式中,__D是合法的。

已知:

doublem=3.2;intn=3;

A)m<<2B)(m+n)|nC)!

m*=nD)m=5,n=3.1,m+n

3.下面有关break语句的描述中,C是错误的。

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

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

C)break语句可用于if体内,它将退出if语句

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

4.在intb[][3]={{1},{3,2},{4,5,6}{0}}中,数组元素b[1][2]的值是A。

A)0B)5C)6D)2

5.下列do-while循环的循环次数是D。

已知:

inti=5;

do{cout<

i--;

}while(i!

=0);

A)0B)1C)5D)无限

6.已知:

inta(5),b(3);表达式!

a&&b++的值和变量b的值分别是B。

A)1,3B)0,3C)0,4D)1,4

7.在位运算中,操作数每左移一位,其结果相当于:

A。

A)操作数乘以2B)操作数除以2

C)操作数除以4D)操作数乘以4

 

8.已知:

inta=-3,b=5;则下列表达式中值为1的是C。

A)b%=aB)b*=aC)b%=(a-1)D)b+=a

9.如有以下函数调用语句,在此函数调用语句中实参的个数是D。

fn(a+b,(y=10,y),fn(n,k,d));

A)6B)5C)4D)3

10.已知指针p的指向如下图所示,则表达式*p――的值是A。

a[0]a[1]a[2]a[3]a[4]

10

20

30

40

50

p↑

A)30B)20C)19D)29

11.以下说法中,D不是构造函数的特征。

A)构造函数的函数名与类名相同

B)构造函数可以重载

C)构造函数可以设置默认参数

D)构造函数必须指定说明类型

12.执行以下代码的结果是D。

constintA=20;

#ifA>10

cout<<“A>10”<

#elifA>11

cout<<“A>11”<

#else

cout<<“else”<

#endif

A)A>10B)A>11C)A>12D)else

13.已知“intm=10;”在下列定义引用正确的是A

A)int&x=m;B)inty=&m;

C)int&z;D)int&t=&m;

14.执行以下代码的结果是B。

inti(5);

switch(i)

{case0:

cout<<“0”<<’’

default:

cout<<“default”<<’’;

case1:

cout<<“1”<<’’;}

A)屏幕无任何显示B)default1

C)defaultD)0default1

15.下列定义中,定义指针数组p的是A

A)int*p[3]B)int(*p)[3]

C)(int*)p[3]D)int[]*p

16.字符串”\\\40a,0\n”的长度是C。

A)8B)7C)6D)5

 

17.下列存储类标识符中,C的可见性与存在性不一致。

A)外部类B)自动类C)内部静态类D)寄存器类

 

18.下面的函数声明中,B是”voidBC(inta,intb)”的重载函数。

A)intBC(inta,intb)B)voidBC(inta,charb)

C)floatBC(inta,intb,intc=0)D)voidBC(inta,intb=0)

19.关于函数的传值调用,下列说法正确的是A。

A)形参是实参的备份B)实参是形参的备份

C)形参和实参是同一对象D)形参和实参无联系

20.已知:

inti,j=2;*p=&j;则完成i=j赋值功能的语句是A。

A)i=*p;B)p*=*&j;C)i=&j;D)i=**p;

21.下列运算符中,既可做单目运算符,又可以做双目运算符的是B。

A)newB)-C)<=D)&&

22.下列语句不是死循环的是D。

A)while(x=1){x--;cout<

B)for(j=0,i=0;j<10;i++){i=j+i}

C)intk=0;do{++k;}while(k>=0);

D)inti=100;while

(1){i=i%100+1;if(i==20)break;}

23.若以下变量均是整型,且num=7,sum=7;则执行语句“sum=num++;sum++;++num;”后,sum的值为B。

A)7B)8C)9D)10

24.对字符数组进行初始化时,B是正确的。

A)chars1[5]="abcde"B)chars2[]="xyz"

C)chars3[][3]={‘a’,’x’,’y’,’z’}

D)chars4[2][3]={"xyz","mnp"}

25.在程序中固定不变的值称为A。

A)常量B)变量C)关键字D)数组

26.下列程序段中对数组定义错误的是B。

A)inta[10+2]B)intlength=10;inta[length]

C)intconstlength=10;inta[length]D)inta[12];

27.下列符号中不能作为c++标识符的是C。

A)_wangB)tempC)elseD)quality

28.设有下列程序段

chars[]=”china”;char*p;p=s;则以下叙述正确的是D。

A)数组s中的内容和指针变量p的内容相等

B)s和p完全相同

C)s数组长度和p所指向的字符长度相等

D)*p和s[0]相等

29.在位运算中,操作数每右移一位,其结果相当于:

B

A)操作数乘以2B)操作数除以2

C)操作数除以4D)操作数乘以4

30.针对数组定义“intdata[10];”,下列表述中错误的是D。

A)用*data可访问到数组的首元素

B)用data[9]可访问到数组的尾元素

C)用data9[10]访问数组的首元素会超出数组边界

D)data中共有10个元素,其首元素是data[1]

 

31.以下程序的输出结果是C

main()

{inti,a[10];

for(i=9;i>=0;i--)a[i]=10-i;

cout<

}

A)258B)741C)852D)369

32.下列语句的输出结果是A

y=5;p=&y;x=*p++;

A)x=5,y=5B)x=5,y=6C)x=6,y=5D)x=6,y=6

33.若有说明:

inti,j=2;*p=&j;

则完成i=j赋值功能的语句是A。

A)i=*p;B)p*=*&j;C)i=&j;D)i=**p;

34.下列存储类标识符中,C的可见性与存在性不一致。

A)外部类B)自动类C)内部静态类D)寄存器类

35.下面程序段的运行结果是B

charstr[]="ABC",*p=str;cout<<*(p+3);

A)67B)0C)字符'C'的地址D)字符'C'

36.下列变量名中,A是合法的

A)_256B)classC)newD)a-1

37.下列不属于C++运算符的是B。

A)++B)#c)*D)%

38.下列表示引用的方法中,A是正确的。

已知:

intm=10;

A)int&x=m;B)int&y=10;

C)int&z;D)float&t=&m;

39.字符串”\\\40a,0\n”的长度是C。

A)8B)7C)6D)5

40.下列关于开关语句的描述中,A是正确的。

A)开关语句中default子句可以没有,也可以有一个

B)开关语句中的每个语句序列中必须有break语句

C)开关语句中default子句只能放在后面

D)开关语句中case子句后面的表达式可以是整型表达式

41.如果下面的变量都是int类型,则输出的结果是C。

sum=pad=5;pAd=sum++,pAd++,++pAd;

cout<

A)7B)6C)5D)4

42.下列各运算符中,D不能作用于浮点数。

A)/B)&&C)!

D)&

43.下列各运算符中,C运算的结合性从左到右。

A)?

B)=C)>=D)+=

44.下面程序段的运行结果是B

charstr[]="ABC",*p=str;cout<<*(p+3);

A)67B)0C)字符'C'的地址D)字符'C'

45.以下语句错误的是D

A)inta[]={1,2};B)char*a[3];C)chars[10]=”test”D)intn=5,a[n];

46.下面关于c++语言变量的叙述错误的是B

A)c++语言变量分为auto,static,extern和register四种存储类型

B)自动变量和外部变量的作用域是整个程序

C)内部静态变量的作用域是定义它的函数

D)外部静态变量的作用域是定义它的文件

47.若有以下说明,0

inta[4][10];*p,*q[4];

A)p=a;B)q[i]=a[i];C)p=a[i];D)q[i]=&a[2][0];

48.表达式0x13|0x17的值是A。

A)0x17B)0x13C)0xf8D)0xec

 

49.下列存储类标识符中,C的可见性与存在性不一致。

A)外部类B)自动类C)内部静态类D)寄存器类

50.若运行时,给变量x输入12,则以下程序的运行结果是

A

voidmain()

{intx,y;

cin>>x;

y=x>12?

x+10:

x-12;

cout<

}

A)0B)22C)12D)10

51、以下选项中合法的用户标识符是(B)。

A.long

B._2Test

C.3Dmax

D.A.dat

52、已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则字符常量’\102’是(C)

A.字符A

B.字符a

C.字符B

D.字符b

53、在inta[][3]={{1,0},{3,2},{4,5,6},{0}};中a[2][2]的值是( C )。

A.0;B.5;C.6;D.2

54、设有数组定义:

chararray[]=”China”;则数组array所占的空间为(C)

A.4个字节

B.5个字节

C.6个字节

D.7个字节

55、设有如下说明

typedefstruct

{intn;charc;doublex;}STD;

则有以下选项,能正确定义结构体数组并赋初值的语句是(A)

A.STDtt[2]={{1,'A',62},{2,'B',75}};

B.STDtt[2]={1,”A”,62,2,”B”,75};

C.structtt[2]={{1,'A'},{2,'B'}};

D.structtt[2]={{l,”A”,62.5},{2,”B”,75.0}};

56、对于int*p[5];的描述,( B )是正确的。

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

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

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

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

57、若已定义inta[]={1,2,3,4,5,6,7,8,9,10),*p=a,i=5;则对数组元素的不正确的引用是(D)

A.a[p-a]

B.*(&a[i])

C.p[i]

D.*(*(a+i))

58、已知语句intm=10;则下列表示引用的表示中正确的是(A)

A.int&x=m;

B.int&v=10;

C.int&z;

D.float&t=&m;

59、执行语句x=5*4,x+5,3+4;x的值是(C)。

A.20B.24

C.7D.51

60、下面对宏定义的描述中不正确的是(C)

A.宏不存在类型问题,宏名无类型,它的参数也无类型

B.宏替换不占用运行时间

C.宏替换时先求出实参表达式的值,然后代入形参数运算求值

D.其实,宏替换只不过是字符替代而已

61、以下非法的赋值语句是(C)

A.n=(i=2,++i);B.j++;

C.++(i+1);D.x=j>0;

62、现已定义整型变量inti=3;

执行循环语句“while(i-->0);”后,i的值为(C)。

A.1B.0

C.-1D.以上三个答案均不正确

63、下面程序的输出结果是(B)

#include

inti=0;

intfun(intn)

{

staticinta=2;

a++;

returna+n;

}

voidmain()

{

intk=5;

{

inti=2;

k+=fun(i);

}

k+=fun(i);

cout<

}

A.13B.14

C.15D.16

64.执行下列语句,输出的结果是(C)

inti=0;

while(i<25)i+=3;

cout<

A)24B)25C)27D)28

65.for(intx=0,y=0;!

x&&y<=5;y++)语句执行循环的次数是(C)

A)0B)5C)6D)无次数

66.下列程序段中对数组定义错误的是(B)

A)inta[10+2]B)intlength=10;inta[length]

C)intconstlength=10;inta[length]D)inta[12];

67.下列关于do……while语句叙述正确的是(D)

A)do……while语句不可以转换为等价的while循环

B)do……while语句所构成的循环只能用break语句跳出

C)do……while语句所构成的循环只有在while后面的表达式为零时才结束

D)do……while语句先执行循环内容后判断条件

68.表达式0x13&0x17的值是(B)

A)0x17B)0x13C)0xf8D)0xec

69.在位运算中,操作数每左移一位,其结果相当于:

(A)

A)操作数乘以2B)操作数除以2

C)操作数除以4D)操作数乘以4

 

70.运行时给变量x输入12,则以下程序的运行结果是(A)

voidmain()

{intx,y;

cin>>x;

y=x>12?

x+10:

x-12;

cout<

}

A)0B)22C)12D)10

71.下列关于c++函数的叙述中,正确的是(D)

A)每个函数至少要具有一个参数B)函数必须返回一个值

C)函数被调用之前必须先说明D)函数可以自己调用自己

72.下列说法正确的是(B)

A)指针只要赋给一个地址就可以

B)数组大小必须在编译的时候确定

C)使用引用的时候可以不必初始化

D)引用可以指向不同的变量,只要类型一致就可以

73.下列各运算符中,三元运算符是(C)

A)?

B)=C)>=D)++

 

74.下面关于c++语言变量的叙述错误的是(B)

A)c++语言变量分为auto,static,extern和register四种存储类型

B)自动变量和外部变量的作用域是整个程序

C)内部静态变量的作用域是定义它的函数

D)外部静态变量的作用域是定义它的文件

二、填空题

1.以下程序的功能是:

输出100以内能被3整除且个位为6的所有整数。

#include

voidmain()

{inti,j;

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

{j=i*10+6;

if(j%3!

=0)continue;

cout<

}

}

2.下列函数的功能是计算并输出5!

+4!

+3!

+2!

+1!

的结果。

#include

intfac(inta);

voidmain()

{ints(0);

for(inti

(1);i<=5;i++)s+=fac(i);

cout<<"5!

+4!

+3!

+2!

+1!

="<

}

intfac(inta)

{staticintb=1;

b*=a;

returnb;}

3.以下程序中,函数fun()的功能是:

将数组元素的值反序存放,例如:

若某数组中的元素值依次为1、2、3、4、5、6、7、8、9,则反序存放后依次为9、8、7、6、5、4、3、2、1。

形参n给出数组元素的个数。

#include

voidfun(inta[],intn)

{inti,t;

for(i=0;i

{t=a[i];

a[i]=a[n-1-i];

a[n-1-i]=t;

}

}

voidmain()

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

fun(b,9);

for(inti=0;i<9;i++)cout<

}

4.下面程序的功能是求数组中大于0的元素之和,请将空格内的语句补充完整。

voidmain()

{intnum[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};

intsum=0,i;

for(i=0;i<=9;i++)

{if(num[i]>0)

sum=sum+num[i];}

cout<<”sum=”<

}

5.下列程序段的功能为输入一个正整数,要求以相反顺序输出,例如,输入123,输出321。

#include

voidmain()

{

unsignedn;

cout<<"输入一个正整数:

";

cin>>n;

cout<<"相反顺序:

";

do

{

cout<

n=n/10;

}while(n!

=0);

cout<

}

6.下面程序是判断一个数是不是素数,请填空。

#include

#include

voidmain()

{

intm,i,k;

cin>>m;

k=sqrt(m);或k=m-1

for(i=2;i<=k;i++)

if(m%i==0)break;

if(i>k)cout<

elsecout<

}

7.下面程序的功能是将字符串b复制到字符串a。

请填空。

#include

voids(char*s,char*t)

{inti=0;

while(t[i]!

='\0')

{s[i]=t[i];i++;}

s[i]='\0';

}

voidmain()

{chara[20],b[10];

cin>>b;

s(a,b);

cout<

}

8.下面程序的功能是求数组中大于0的元素之和,请将空格内的语句补充完整

voidmain()

{intnum[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};

intsum=0,i;

for(i=0;i<10或i<=9_;i++)

{if(num[i]>0)

sum=sum+num[i];}

cout<<”sum=”<

}

9.下列程序段的功能为,使用递归调用方法将一个n位整数转换成字符串。

#include

#include

voidconvert(intn)

{intm;

m=n/10;

if(n/10)或(m)convert(m);

cout<

}

voidmain()

{intnum;

cout<<"请输入一个整数:

";

cin>>num;

cout<

";

convert(num);

cout<

}

10、十进制28和3.26的类型分别是int和double。

11、执行语句序列

charstrl[10]=”ABCD'’,str2[10]=”XYZxyz'’;

for(inti=0;strl[i]=str2[i];i++);

后,数组str1中的字符串是XYZxyz。

12、将以下if-else语句改写成switch语句,请填空。

if(s>0&&s<10)

 if(s>5)x=2;

 elsex=1;

elsex=0;

改写成的switch语句:

switch(s>0&&s<10)

{case1:

switch(s>5)

 {case1:

x=2;break;

       case0:

x=1;

       }break;

 case0:

x=0;

 }

13、程序的功能是用递归算法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大2岁,求第5

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2