C++习题及参考答案.docx

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

C++习题及参考答案.docx

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

C++习题及参考答案.docx

C++习题及参考答案

习题

第1章

1.什么是软件?

2.简述软件的开发过程。

3.什么是程序设计?

4.简述程序设计过程。

5.数据结构的含义是什么?

6.简述算法的表示方法。

7.什么是结构化算法?

8.简述结构化程序设计思想。

第2章C++的基础知识

一、填空题

1.C++语言中的标识符只能由、和三种字符组成,且打头字符不能是。

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

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

4.当执行cin时,从键盘上一次输入多个数据时,每个数据后必须输入一个,然后才可以接着输入下一个数据。

5.转义字符序列中的首字符是字符。

6.空字符串在内存中的存储空间是个字节。

7.以/*开始,*/结束,在/*和*/之间的部分即为。

8.赋值表达式y=x++的含义是,y=++x的含义是。

9.cout输出转义字符是使光标移到屏幕上的下一行。

10.C++语言的基本数据类型有、、、、五种。

二、判断题

()1.“C”是字符常量。

()2.在命名标识符时,大小写字母是不加区分的。

()3.C++程序中,对变量一定要先说明再使用,说明只要在使用之前就可以。

()4.C++程序必须有return语句。

()5.执行语句constintx=10;后,可以重新对x赋值。

()6.语句a_char=‘\n’表示将小写字母n赋值给字符变量a_char。

()7.short,int都是C++语言的关键字。

()8.C++编译系统对源程序编译时,可以检查出注释语句中的语法错误。

()9.将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存变量中去,而是将该字符相应的ASCII代码放到存储单元中。

()10.语句intanswer=3+2*9/(10-6);执行完毕后,变量answer的值是7.5。

三、单项选择题

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

(A).CPP(B).OBJ(C).C(D).EXE

2.下列变量名中,()是合法的。

(A)double(B)A+a(C)CHINA(D)5s

3.下列符号能用作C++标识符的是()

(A)xyz/2(B)2xsale(C)x-sale(D)x_sale

4.下列各运算符中,()只能用于整型数据的运算。

(A)+(B)/(C)*(D)%

5.()不是C++的基本数据类型。

(A)字符类型(B)数组类型(C)整数类型(D)布尔类型

6.下列运算符中,优先级最高的是()。

(A)%(B)!

(C)>=(D)/

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

(A)4(B)3(C)2(D)1

8.在C++语言中,080是()。

(A)八进制数(B)十进制数(C)十六进制数(D)非法数

9.整型变量i定义后赋初值的结果是()。

inti=2.8*6;

(A)12(B)16(C)17(D)18

10.如有intm=31;则表达式(m++*1/2)的值是()。

(A)0(B)15(C)15.5(D)16

11.每个C++程序都必须有且仅有一个()。

(A)预处理命令(B)主函数(C)函数(D)语句

12.在C++语言中,自定义的标志符()。

(A)能使用关键字并且不区分大小写(B)不能使用关键字并且不区分大小写

(C)能使用关键字并且区分大小写(D)不能使用关键字并且区分大小写

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

(A)#(B)//(C)}(D);

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

(A)#(B)//(C)}(D);

15.定义如下变量:

inti=2;intj=3;则i/j的结果为()。

(A)0.7(B)0.66667(C)0.…(D)0

16.已知inta=2,a+=a-=a*a的值是()。

(A)-4(B)-2(C)0(D)4

17.下列关于C++关键字的说法中正确的是()。

(A)关键字是用户为程序中各种需要命名的“元素”所起的名字。

(B)关键字是对程序中的数据进行操作的一类单词。

(C)关键字是在程序中起分割内容和界定范围作用的一类单词。

(D)关键字是C++中预先定义并实现一定功能的一类单词。

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

(A)3,4   (B)3,3   (C)2,3  (D)2,4

19.字符型数据在内存中的存储形式是()。

(A)补码(B)ASCII码(C)反码(D)原码

20.下列程序段执行后输出结果为(   )

chara='a';cout<<"a="<

(A)a=A   (B)a=33   (C)a=65   (D)a=A-32

四、阅读程序,写出运行结果

1.#include

voidmain()

{cout<<"Thisisahelloworld";

cout<<"program";

}

2.#include

voidmain()

{constintR=10;

constdoublePI=3.14159;

doublea,b;

a=2*R*PI;

b=R*R*PI;

cout<<"a="<

}

五、程序改错

/*求三个整数的平均数

#include;

intmian()

{inta,b,c,sum,avg;

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

/n";

cin>>a>>b>>c>>endl;

sum=a+b+c

avg=sum/3;

cout>>'平均数是:

'>>avg;

}

第3章基本程序设计

一、判断题

()⒈if语句结构中必须有else语句。

()⒉表达式7>=3+4||6<4&&2<5的求值结果为假。

()⒊算术运算符的优先级高于比较运算符。

()⒋表达式4>6||10>2*6&&2!

=!

5求值结果为真。

()⒌语句for(i=0,x=0;i<90;i++)if(i)x++;执行完后,x的值是89。

()⒍逻辑表达式10

()⒎表达式1<3&&5<7的值是1。

()⒏表达式!

(5<8)||2<6的值是1。

()⒐表达式a+b

()⒑表达式x*y>z&&x*y<100||x*y>0中运算符优先级由高到低的排列顺序是:

*、<和>、&&、||。

()11.设”inta=3,b=4,c=5;”;表达式”(a+b)>c&&b==c”的值是0。

()12.x,y,z为int类型的时候,下列语句执行之后,x的值为10,y的值为20,z的值为10。

x=10;y=20;z=30;

if(x>y)x=y;y=z;z=x;

()13.break和continue语句的作用都是终止本层循环的执行。

()14.判断变量x的数值是否在3到5之间可以用关系表达式3

()15.判断以下程序是否正确。

#include

#include“iomanip”

usingnamespacestd;

voidmain()

{if(a>b)

cout<

cout<

else

cout<

cout<

}

()16.不管是当型循环还是直到型循环,其循环体都可能在某种条件下一次也不执行。

()17.为了避免可能出现的歧义,C++对if…else语句配对规则规定为:

else总是与最近的那个if配对。

()18.要运行一个C++程序需要经过编辑、编译、链接和运行四个阶段。

其中编译阶段就是对源程序进行语法与语义分析,查找和排除程序错误,通常能够找出程序中的语法错误和逻辑错误。

()19.switch语句结构中必须有default语句。

()20.break语句只能结束包含该语句的一层循环结构。

二、单项选择题

1.for(i=0,x=0;!

x&&i<=3;i++)循环的次数为()。

(A)4(B)5(C)1(D)是无限循环

2.若有如下程序段:

{inta=2,b=-1,c=2;

if(a

if(b<0)c=0;

elsec+=1;

cout<<“c="<

}

执行后输出到屏幕的结果是______。

(A )2(B)1(C)3(D)0

3、若有如下程序段:

inti=10;

switch(i)

{case9:

i++;

case10:

i++;

case11:

i++;

default:

i++;

}

执行后变量i的正确结果是()。

(A)11(B)12(C)13(D)14

4.以下描述中正确的说法是()。

(A)break语句与continue语句完全一样,可以相互代替

(B)用break语句可以提前终止整个循环

(C)用continue语句可以提前终止整个循环

(D)用break语句与continue语句都不能提前终止执行循环

5.以下for循环的执行次数是()。

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

(A)执行1次(B)执行2次(C)执行3次(D)是无限循环

6.以下描述正确的是()。

(A)goto语句只能用于退出多层循环

(B)switch语句中不能出现break语句

(C)只能用continue语句来终止本次循环

(D)在循环中break语句不能独立出现

7.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。

(A)缩排位置相同的if(B)在其之前未配对的if

(C)在其之前未配对的最近的if(D)同一行上的if

8.break语句的作用是()。

(A)立即跳出包含该break语句的最小的各种循环语句和switch语句

(B)立即跳出包含该break语句的最小的各种循环语句

(C)立即跳出包含该break语句的switch语句

(D)立即跳出包含该break语句的各种循环语句和switch语句

9.下面程序段执行完后,x的值是()。

x=0;

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

if(i)x++;

(A)0(B)30(C)89(D)90

10.continue语句的作用是()。

(A)结束包含该continue语句的最小的各种循环语句

(B)结束包含该continue语句的各种循环语句

(C)结束本次循环,直接进行循环条件的判断

(D)循环执行完后,结束循环

11.下列程序段循环()次。

intx=-10;

while(++x){}

(A)9(B)10(C)11(D)无限

12.在下列运算符中,优先级最低的是()。

(A)||(B)!

=(C)<(D)+

13.下列描述正确的是()。

(A)表示m>n为false或mn&&m

(B)switch语句结构中必须有default语句

(C)if语句结构中必须有else语句

(D)如果至少有一个操作数为true,则包含||运算符的表达式为true

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

(A)case“2”:

(B)case2:

(C)case2;(D)case==2

15.有如下程序段:

……

for(inti=1;i<4;i++)

{if(i%2==0)continue;

cout<

执行以上程序段的输出结果是()。

(A)1,(B)1,3,4,(C)1,3,(D)2,4,

16.下列运算符中优先级最高的是()。

(A)!

(B)%(C)-=(D)&&

17.用逻辑表达式表示“大于10而小于20的数”,正确的是()。

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

(x<=10||x>=20)

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

(A)case“3”;(B)case‘3’;(C)case3;(D)case=3

19.设inta=10,b=11,c=12;(a+b)

(A)2(B)0(C)-2(D)1

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

(A)if语句结构中必须有else语句(B)switch语句结构中必须有default语句

(C)C++程序必须有return语句(D)C++中使用流来执行标准的输入输出操作

21.下列do-while循环的循环次数是()。

 已知:

inti=5;

 do{cout<

  i--;

 }while(i!

=0);

(A)0(B)2(C)5(D)无限次

22.若m是一个值为10的int型变量,n是一个bool型变量,则表达式!

m||n>0的值()。

(A)为true   (B)为false   (C)与n的值相反  (D)与n的值相同

第4章数组的应用

一、判断题

()1.在对全部数组元素赋初值时,不可以不指定一维数组的长度。

()2.在对全部二维数组元素赋初值时,可以不指定二维数组的行数。

()3.在C++程序中,有定义:

inta[10];数组a的最小下标是1。

()4.在C++程序中,有定义:

inta[10];数组a的最大下标是10。

()5.可以用同一个数组表示以一组数值型数据和字符型数据。

()6.有声明:

inta[3][2]={1,2,3,4,5,6};那么数组元素a[2][1]的初始值是6。

()7.有声明:

charch[10]={’a’,’b’,’c’,’d’,’e’};那么赋给数组ch的是字符串“abcde”。

()8.在对全部二维数组元素赋初值时,必须要指定二维数组的列数。

()9.字符串"hello,world"在内存中存放时,占用12个字节的空间。

()10.定义一个一维字符数组有50个元素,用该一维字符数组表示一个字符串数据最多允许有50个字符。

()11.C++中各种数据类型的变量在定义后会被自动初始化为0值。

()12.定义数组时可以用变量来定义数组的大小,但不能用表达式。

()13.定义一个有50个元素的一维字符数组,用该数组表示一个字符串数据最多允许有50个字符。

()14.定义一个数组后该数组的最小下标取值是0。

()15.静态数组被定义时,数组的所有元素自动获取初始值0。

()16.数组是C++的基本数据类型。

()17.数组不能用来存放字符串。

()18.同一数组的所有数组元素在内存中是连续存放的。

()19.在C++中数组是具有一定顺序关系的若干相同类型变量的集合体。

()20.在给全部数组元素赋初值时,可以不指定二维数组中的常量表达式,

例如:

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

二、单项选择题

1.若有以下定义语句:

inta[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]

2.对语句:

inta[3][4]={0};描述正确的是()。

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

(B)数组a中每个元素均可得到初值0

(C)此说明语句不正确

(D)数组a中各元素都可得到初值,但其值不一定为0

3.若有以下定义,则数组元素a[2][2]的值是()。

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

(A)4(B)5(C)2(D)6

4.在下面的一维数组定义中,()有语法错误。

(A)inta[]={1,2,3};(B)inta[];(C)inta[]={0};(D)inta[5];

5.在下面的一维数组的定义中,不正确的是()。

(A)intx[10][10];(B)intx[][10]={{1,3},5,7};

(C)intx[][];(D)intx[10][10]={0};

6.对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为()。

(A)N+1(B)N(C)(N+1)/2(D)N/2

7.将两个字符串连接起来组成一个字符串时,用()函数。

(A)strcat(B)strlen(C)strcpy(D)strcmp

8.希尔排序法属于哪一种类型的排序法()。

(A)交换类排序法(B)插入类排序法(C)选择类排序法(D)建堆排序法

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

(A)a[1][3](B)a[2][3](C)a[3][1](D)a[2][1]

10.判断两个字符串(分别用a、b表示)是否相等的操作为()。

(A)a==b(B)if(a==b)(C)if(strcmp(a,b))(D)if(strcpy(a,b))

11.定义一个一维数组,正确的语句是(   )。

(A)inta(10);(B)intn=10;inta[n]; 

(C)intn;cin>>n;inta[n];(D)constintn=10;inta[n];

12.以下那种说法错误?

()。

(A)数组中的元素在某些方面彼此相关;(B)数组中的所有元素具有相同的下标;

(C)数组中的所有元素具有相同的数据类型;(D)数组中的所有元素具有相同的名字;

13.语句inta[]={0,1,2}执行后,数组的元素个数是()。

(A)2(B)3(C)4(D)不知道

14.下面数组定义错误的是(   )。

(A)#definen5(B)constintn=5;

chara[n]={“good”};chara[n]={“good”};

(C)intn=5;   (D)constintn=5;

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

15.执行下列语句:

intc[4]={0,1,2,3};for(inti=0;i<4;i++)c[i]=c[i]+i;

则c[3]的值是()。

(A)0(B)4(C)6(D)8

16.下列程序执行后d[5]结果是()。

intd[10];intI;

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

d[i]=i;

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

d[i]=d[9-i];

(A)0(B)4(C)5(D)6

17.数组intarea[4]={1,2,3,4},执行程序

for(inti=1;i<=4;i++)

area[i-1]=1;

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

(A)4(B)3(C)1(D)错误

18.二维数组在内存中的存放顺序是()。

(A)按行存放(B)按列存放(C)由用户自己定义(D)由编译器决定

19.下面初始化不正确的是(   )。

(A)inta[2][3]={1,2,3,4,5,6};(B)inta[][2]={7,8,9};

(C)doublea[][3]={1,2,3,4,5,6,7}; (D)doublea[3][2]={{1.5,2.0},{3.5},{5,6,7}};

20.若有定义:

inta[3][4]={0};则以下描述中正确的是()。

(A)只有a[0][0]元素得到初值(B)不正确语句

(C)各元素均得到初值,但不一定为0(D)各元素均得到初值且为0

21.下列对字符数组进行初始化的语句正确的是(  )。

(A)chara[]=“abcd”;(B)chara[][]=“abcd”;

(C)chara[4]=“abcd”;(D)chara[2][2]={“ab”,“cd”};

22.二维字符数组[10][10]能够存储()个字符串,每个字符串的长度至多为()。

(A)10,10(B)10,9 (C)9,10(D)9,9

三、阅读程序题

1.#include

voidmain()

{inta[4],i,j,k;

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

a[i]=1;

k=3;

for(i=0;i

for(j=0;j

a[j]=a[i]+2;

cout<

}

当执行以上程序时,输出结果是:

2.#include

#include

usingnamespacestd;

voidmain()

{ints[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<

cout<

}

}

当执行以上程序时,输出结果是:

3.#include

usingnamespacestd;

v

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

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

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

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