c++题库Word文件下载.docx
《c++题库Word文件下载.docx》由会员分享,可在线阅读,更多相关《c++题库Word文件下载.docx(45页珍藏版)》请在冰点文库上搜索。
else
++d+1;
d<
endl;
}2
7.有以下程序:
inti
(1),j(0),m
(1),n
(2);
switch(i++)
case1:
m++;
n++;
case2:
switch(++j)
{
}
case3:
m++;
break;
case4:
m<
n<
程序执45
8.#include<
{inti=0,s=0;
for(;
;
)
{if(i==3||i==5)continue;
if(i==6)break;
i++;
s+=i;
}程序进入死循环
9.以下不构成无限循环的语句或语句组是
n=0;
do{++n;
}while(n<
=o);
10.以下程序中,while循环的循环次数是:
main()
inti=0;
while(i<
10)
if(i<
1)continue;
if(i==5)break;
}死循环
11.若变量已经正确定义,有以下程序段:
inti=0;
do
"
}while(i++);
其输出结果是01
12.以下程序段执行后的输出结果是:
inti;
for(i=0;
i<
3;
i++)
switch(i)
{case1:
i;
default:
}011122
13.#include<
intx=1,a=0,b=0;
switch(x)
case0:
b++;
a++;
a++;
b++;
a="
a<
b="
b;
}21
14.有以下程序:
intn=12345,d;
while(n!
=0)
{d=n%10;
n/=10;
程序输出结果是:
54321
15.以下程序段的输出结果是:
intk,j,s;
for(k=2;
k<
6;
k++,k++)
{s=1;
for(j=k;
j<
j++)
s+=j;
s;
10
16.以下程序段的输出结果为:
inti=1,sum=0;
10)sum=sum+1;
i++;
i="
sum="
sum;
程序陷入死循环
17.有以下程序:
inti=0,s=0;
if(i%2){i++;
continue;
s+=i;
while(i<
7);
程序运行输出结果为:
16
18.以下程序段执行后的输出结果是:
intn;
for(n=1;
=10;
n++)
if(n%3==0)continue;
n;
12457810
19.#include<
inti,j,m=55;
for(i=1;
=3;
i++)
for(j=3;
=i;
j++)
m=m%j;
m;
}1
20.以下程序段的输出结果是:
inti,j,m=0;
for(i=1;
i<
=15;
i+=4)
for(j=3;
=19;
j+=4)
20
21.有以下程序:
{inta=1,b=2,c=3;
if(c=a)cout<
c;
1
22.有以下程序:
{intv1=0,v2=0;
charch;
while((ch=getchar())!
='
#'
switch(ch)
case'
a'
:
h'
default:
v1++;
0'
v2++;
v1<
v2;
当程序执行,输入“china#”,程序的输出结果为55
23.以下程序段执行后的输出结果为:
0
inty=10;
do{y--;
}while(--y);
y--;
24.以下程序的输出结果是:
30
intx=3;
do
x<
"
x-=2;
}while(!
(--x));
25.以下程序段执行后的输出结果是:
987
intn=10;
while(n>
7)
{n--;
26.设变量j和k都是int型,则for循环语句
for(j=0,k=-1;
k=1;
j++,k++)无限循环
27.#include<
intx;
cin>
>
x;
if(x--<
5)cout<
x;
x++;
程序运行后,如果从键盘输入“5”,则输出结果是(4)。
28.若变量已正确定义,且有以下程序段:
inta=3,b=5,c=7;
b)a=b;
c=a;
if(c!
=a)c=b;
″,″<
b<
c<
endl;
其输出结果是(353)。
29.以下叙述中正确的是()。
break语句只能用在循环体内和switch语句体内
30.以下程序段执行后的输出结果是:
不确定
inti,sum;
for(i=1;
sum+=i;
1.inti=20;
switch(i/10)
{case2:
A"
case1:
B"
输出结果为AF
2.若有intⅰ=10,j=0;
则执行完语句
if(j=0)ⅰ++;
elseⅰ--;
ⅰ的值为11。
F
3.C++中,只有一个分号的语句是不允许出现的,编译时会报语法错误。
4.for语句中的三个表达式必须全部给出,不可省略。
5.C++的switch后面的表达式可以是任意类型F
6.循环结构中的continue语句是使整个循环终止执行F
7.break语句和continue语句只能出现在循环结构中。
8.while和do…while循环不论什么条件下它们的结果都是相同的F
9.switch结构中的break不是必须出现的语句。
T
填空
1.if语句的表达式可以是__任意合法_的表达式
2.循环语句的循环体如果是多条语句必须使用__复合语句_形式
3.__文件包含_命令是指一个源文件可以将另外一个源文件的全部内容包含进了
4.continue语句用于结束__本次_循环。
5.嵌套的if语句中,else总是与它上面最近的,尚未配对的__if_配对
6.switch结构的测试表达式只能是__整型_、字符型或枚举型
7.所有的预处理命令都是以__#_开头
8.break语句可出现在循环结构和_switch__结构中。
9._空语句__是指只有一个分号(;
)的语句。
10.switch结构中的case语句起到语句__标号_作用
程序设计
1.功能:
计算s=a+aa+aaa+…+aaa…a(n个a),期中a是一位整数,n由键盘输入,例如:
1+11+111+1111,其中,a=1,n=4。
#include<
inta,n,i=1,s=0,t=0;
qingshuruahen:
cin>
a>
=n)
/**********Begin**********/
t=t+a;
s=s+t;
a=a*10;
/**********End**********/
a+aa+aaa+...="
s<
2.功能:
求任意两个正整数的最大公约数和最小公倍数。
算法:
设两个数为m(大),n,r=m%n。
intm,n,r,temp,p;
qingshurulianggezhengshum,n:
m>
if(m<
n)
temp=m;
m=n;
n=temp;
p=m*n;
while(n!
r=m%n;
m=n;
n=r;
/**********End**********/
zuidagongyueshu:
zuixiaogongbeishu:
p/m<
程序改错
功能:
求水仙花数。
水仙花数是3位数,它的每位上的数字的3次幂之和等于它本身。
(例如:
1^3+5^3+3^3=153)
/**********ERROR**********/
inti,j,k【参考答案】inti,j,k;
for(n=100;
=999;
i=n\100;
【参考答案】i=n/100;
j=n%100/10;
k=n%10;
if(i*i*i+j*j*j+k*k*k=n)【参考答案】if(i*i*i+j*j*j+k*k*k==n)
是水仙花数!
\n"
【程序填空】
输入一个正整数,将其倒序输出,例如:
输入12345,输出:
54321。
/**********FILL**********/
intm,n=___0__;
intr;
请输入一个正整数:
m;
/**********FILL**********/
while(____)m>
0m
r=m%10;
n=n*10+r;
__m=m/10_;
该数字倒序后的数字为:
4到5
1.选择
1.已知学生记录描述为:
structstudent
intno;
charname[20];
charsex;
struct
intyear;
intmonth;
intday;
}birth;
};
structstudents;
设变量s中的“生日”应是“1984年11月11日”,下列对“生日”的正确赋值方式是
C.s.birth.year=1984;
s.birth.month=11;
s.birth.day=11;
2已知枚举类型声明语句为:
enumCOLOR{WHITE,YELLOW,GREEN=5,RED,BLACK=10};
则下列说法中错误的是( )。
A.枚举常量WHITE的值为1
3若整型变量a、b、c、d中的值依次为1、4、3、2。
则条件表达式a<
b?
a:
d?
c:
d的值为(A.1)。
4若x、i、j、k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。
B.32
5在16位PC机上使用C++语言,若有如下定义:
structdata
inti;
charch;
doublef;
}b;
则结构变量b占用内存的字节数是()。
C.11
6假定有以下变量定义:
intk=7,x=12;
则能使值为3的表达式是()。
C.(x%=k)-(k%=5)
7下列关于异常处理,错误的是()。
C.抛出异常与处理异常必须要放在不同的函数中
8设有以下说明语句:
structstu
inta;
floatb;
}stutype;
则下面的叙述不正确的是()。
B.stutype是用户定义的结构类型名
9如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须重复使用关键字()。
A.class
10下列运算符中,()结合性从左到右C.比较
11下面正确的字符串常量是()D."
12设有说明语句
structabc{intm;
floatn;
}stype;
则下面错误的叙述是()。
C.stype是结构体类型名
13以下叙述中错误的是()。
D.可以通过typedef增加新的类型
14以下选项中,不能作为合法常量的是()。
D.1.234e0.4
15类模板的使用实际上是将类模板实例化成为一个具体的()。
B.对象
16下列()是正确的标识符。
C._H3e
17C++语言中运算对象必须是整型的运算符是()。
B.%=
18下列十六进制的整型常量表示中,()是错误的。
B.0x4g
19下列对模板的声明,正确的是()。
C.template<
classT1,classT2>
20若有以下定义和语句,且0<
10,则对数组元素地址的正确表示是()。
inta[]={1,2,3,4,5,6,7,8,9,0},*p,i;
p=a;
D.&
p[i]
21下面程序的输出结果是()
string>
iostream>
usingnamespacestd;
inta[3][3]={{1,2},{3,4},{5}};
intsum=0;
for(inti=1;
i++)
for(intj=0;
=i;
j++)
sum+=a[i][j];
sum<
B.12
22若有以下说明,则数值为4的表达式是()。
B.a['
d'
-c]
23具有相同类型的指针变量p与数组a,不能进行的操作是().B.p=&
a;
24以下定义指向数组的指针p的语句是()B.int(*p)[5];
25已知有数组定义“chara[3][4];
”,下列表达式中错误的是( )。
B.a[2]=″win″
26下列各语句定义了数组,其中哪一个是不正确的()。
D.floatx[2][]={1,2,4,6,8,10};
27若有定义“inta[20];
”,则对数组元素的正确引用是( )。
A.a[10-10]
28设有定义:
charstr[100];
当执行cin>
str;
后,从键盘输入:
″C++programmingwindows″,系统显示()D.C++
29在“intb[][3]={{1},{3,2},{4,5,6},{0}};
”中,b[2][2]的值为()。
D.6
30下面选项中等价的是()。
D.inta[][3]={1,0,2,2,4,5}与inta[2][3]={1,0,2,2,4,5}
31设有如下说明语句:
typedefstruct
intn;
charch[8];
}PER;
D.PER是结构体类型名
32语句“int*p=&
k;
”定义了指针p,与这条语句等效的语句序列是()。
Int*p;
p=&
33下列声明结构体变量错误的是()C."
C"
1.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>
b)&
(n=c>
d)运算后,n的值为(B.2)。
3.定义如下枚举类型:
enumDay{Monday,Tuesday,Wednesday,Thursday,Friday=2};
则下列语句正确的是()。
Dayday;
day=Monday+3;
5.以下关于long、int和short类型数据占用内存大小的叙述中正确的是()。
由C++语言编译系统决定
9.设有条件表达式(EXP)?
i++:
j--,则以下表达式中(EXP)完全等价的是()。
(EXP!
=0)
10.若变量均已正确定义并赋值,以下合法的C语言赋值语句是(x=y==5;
)。
13.设a和b是两个结构体变量,下面正确的表达式是(a=b)。
17.关于结构体概念的叙述中,正确的说法是(数据的集合成为结构体)。
18.下列字符串中,不可以用作C++标识符的是(switch )。
19.下列运算符中,(*(单目))优先级最高。
20.若有以下定义和语句,且0<
&
21.以下能正确定义数组并正确赋初值的语句是().intd[3][2]={{1,2},{3,4}};
23.在C++语言中,引用数组元素时,其数组下标的数据类型允许是()。
整型常量或整型表达式
25.函数调用“strcat(strcpy(str1,str2),str3)”的功能是()
将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后
26.在数组中,数组名表示()
数组第1个元素的首地址
27.有如下说明:
inta[10]={1,2,3,4,5,6,7,8,9,0},*p=a;
则数值为9的表达式是()。
*(p+8)
28.以下关于对象数组的描述中,错误的是()。
对象数组只能赋初值,而不能在定义后赋值
29.对字符数组进行初始化,()形式是错误。
charc2[]=123;
30.下面选项中等价的是()inta[][3]={1,0,2,2,4,5}与inta[2][3]={1,0,2,2,4,5};
1函数模板是模板而非函数,而模板函数则是由模板实例化后产生的具体函数。
(对)
2既可以对结构体变量中的成员赋值,也可以对结构体类型赋值。
(错)
3结构体中的成员也可以是一个结构体变量。
4enumweek{"
MON"
TUE"
WED"
}是错误写法(对)
5为了解决命名冲突问题,引入关键字namespace有效控制标识符的作用域。
6若有定义和语句:
inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;
i++)sum+=a[i][2-i];
则sum=21.(对)
7有如下说明:
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是*(p+8).(对)
8inta[3][4]={{1},{5},{9}};
它的作用是将数组各行第一列的元素赋初值,其余元素值为0。
9假设有inta[10],*p;
则p=&
a[0]与p=a等价(对)
10char*p="
girl"
的含义是定义字符型指针变量p,p的值是字符串"
。
11封装性是一种信息隐蔽技术,是指将数据和算法捆绑成一个整体,C++语言通过建立“类”来支持封装性和信息隐蔽。
正确
12枚举类型数据可以象基本类型数据一样直接输入输出。
错误
13在C++中,异常处理机制可保证在程序运行中一旦发生异常,应该允许回复和继续运行。
14判断字符串a和b是否相等,可以使用if(strcmp(a,b))正确
15如果想使一个数组中全部元素的值为0,可以写成inta[10]={0*10};
16设有数组定义:
chararray[]="
hello"
则数组array所占的空间为5.错误
1若有如下定义:
charc;
intn=100;
floatf=10;
doublex;
则执行完下面语句后n=2、x=20。
x=f*=n/=(c=50);
2.C++程序由注释、编译预处理以及程序主体3部分组成。
3.C++语言具有面向对象程序设计的3个主要特征:
封装性、继承性及多态性
4.一个应用程序,既要保证其正确性,还应有容错能力,C++中,提供了一种异常处理的机制与一套方法。
5.下面程序运行结果是_1______
voidmain()
charch[7]={"
12ab56"
};
inti,s=0;
ch[i]>
ch[i]<
9'
i+=2)
s=10*s+ch[i]-'
6.下面程序