C++习题及参考答案文档格式.docx
《C++习题及参考答案文档格式.docx》由会员分享,可在线阅读,更多相关《C++习题及参考答案文档格式.docx(50页珍藏版)》请在冰点文库上搜索。
![C++习题及参考答案文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/6e2348de-0d40-45e2-a45b-c275789b32bf/6e2348de-0d40-45e2-a45b-c275789b32bf1.gif)
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++标点符号中表示一条预处理命令开始的是()。
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-32<
endl;
(A)a=A (B)a=33 (C)a=65 (D)a=A-32
四、阅读程序,写出运行结果
1.#include<
iostream.h>
voidmain()
{cout<
Thisisahelloworld"
program"
}
2.#include<
{constintR=10;
constdoublePI=3.14159;
doublea,b;
a=2*R*PI;
b=R*R*PI;
cout<
a<
"
b="
b<
五、程序改错
/*求三个整数的平均数
#include<
iostream>
intmian()
{inta,b,c,sum,avg;
请输入三个整数:
/n"
cin>
>
a>
b>
c>
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<
x<
20表示“大于10而小于20的数”。
()⒎表达式1<
3&
5<
7的值是1。
()⒏表达式!
(5<
8)||2<
6的值是1。
()⒐表达式a+b<
c&
d==5中运算符优先级由高到低的排列顺序是+、<
、==和&
。
()⒑表达式x*y>
z&
x*y<
100||x*y>
0中运算符优先级由高到低的排列顺序是:
*、<
和>
、&
、||。
()11.设”inta=3,b=4,c=5;
”;
表达式”(a+b)>
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<
5来描述。
()15.判断以下程序是否正确。
#include“iomanip”
usingnamespacestd;
voidmain()
{if(a>
b)
cout<
setw(4)<
a;
setw(4)<
b;
else
()16.不管是当型循环还是直到型循环,其循环体都可能在某种条件下一次也不执行。
()17.为了避免可能出现的歧义,C++对if…else语句配对规则规定为:
else总是与最近的那个if配对。
()18.要运行一个C++程序需要经过编辑、编译、链接和运行四个阶段。
其中编译阶段就是对源程序进行语法与语义分析,查找和排除程序错误,通常能够找出程序中的语法错误和逻辑错误。
()19.switch语句结构中必须有default语句。
()20.break语句只能结束包含该语句的一层循环结构。
二、单项选择题
1.for(i=0,x=0;
!
x&
=3;
i++)循环的次数为()。
(A)4(B)5(C)1(D)是无限循环
2.若有如下程序段:
{inta=2,b=-1,c=2;
if(a<
b)
if(b<
0)c=0;
elsec+=1;
“c="
c<
}
执行后输出到屏幕的结果是______。
(A
)2(B)1(C)3(D)0
3、若有如下程序段:
inti=10;
switch(i)
{case9:
i++;
case10:
case11:
default:
执行后变量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++)
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或m<
n为true的表达式为(m>
n&
m<
n)
(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;
4;
{if(i%2==0)continue;
“,”;
执行以上程序段的输出结果是()。
(A)1,(B)1,3,4,(C)1,3,(D)2,4,
16.下列运算符中优先级最高的是()。
(A)!
(B)%(C)-=(D)&
17.用逻辑表达式表示“大于10而小于20的数”,正确的是()。
(A)10<
20(B)x>
10||x<
20(C)x>
10&
20(D)!
=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)<
b==c的值是()。
(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--<
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++程序中,有定义:
数组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;
(D)constintn=10;
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<
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;
=9;
d[i]=i;
for(i=0;
d[i]=d[9-i];
(A)0(B)4(C)5(D)6
17.数组intarea[4]={1,2,3,4},执行程序
for(inti=1;
=4;
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<
{inta[4],i,j,k;
for(i=0;
a[i]=1;
k=3;
k;
for(j=0;
j<
j++)
a[j]=a[i]+2;
a[1]<
ㄩㄩ"
a[3]<
当执行以上程序时,输出结果是:
2.#include<
#include<
iomanip>
{ints[3][3],i,j,k;
3;
for(j=0;
s[i][j]=i-j;
2;
for(j=i+1;
{k=s[i][j];
s[i][j]=s[j][i];
s[j][i]=k;
{for(j=0;
s[i][j];
}
3.#include<
v