C++试题1.docx
《C++试题1.docx》由会员分享,可在线阅读,更多相关《C++试题1.docx(14页珍藏版)》请在冰豆网上搜索。
C++试题1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
试卷编号:
8741所属语言:
C++所属方案:
C++期末考试-批次1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
〖第1题〗『判断』(1分)(题号:
606)
派生类是从基类派生出来,它不能再生成新的派生类.
答案:
N
〖第2题〗『判断』(1分)(题号:
673)
开关语句中的default关键字,只能放在该语句的末尾,不能放在开头或中间.
答案:
N
〖第3题〗『判断』(1分)(题号:
692)
计算函数参数顺序引起的二义性完全是由不同的编译系统决定的.
答案:
N
〖第4题〗『判断』(1分)(题号:
712)
为了减轻使用者的负担,与C语言相比,C++语言中减少了一些运算符.
答案:
N
〖第5题〗『判断』(1分)(题号:
651)
流的状态包含流的内容、长度和下一次提取或插入操作的当前位置.
答案:
Y
〖第1题〗『单项选择』(1分)(题号:
1452)
在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()比较合适.
A:
内联函数
B:
重载函数
C:
递归调用
D:
嵌套调用
答案:
A
〖第2题〗『单项选择』(1分)(题号:
1450)
下列标识符中,()不是局部变量.
A:
register类
B:
外部static类
C:
auto类
D:
函数形参
答案:
B
〖第3题〗『单项选择』(1分)(题号:
734)
下列各运算符中,()可以作用于浮点数.
A:
++
B:
%
C:
>>
D:
&
答案:
A
〖第4题〗『单项选择』(1分)(题号:
742)
下列各表达式中,()有二义性.已知:
inta(5),b(6);
A:
a+b>>3
B:
++a+b++
C:
b+(a=3)
D:
(a=3)-a--
答案:
D
〖第5题〗『单项选择』(1分)(题号:
1404)
关于多继承二义性的描述中,()是错误的.
A:
一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性
B:
解决二义性的最常用的方法是对成员名的限定法
C:
基类和派生类中同时出现的同名函数,也存在二义性问题
D:
一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性
答案:
C
〖第6题〗『单项选择』(1分)(题号:
729)
在inta=3,*p=&a;中,*p的值是().
A:
变量a的地址值
B:
无意义
C:
变量p的地址值
D:
3
答案:
D
〖第7题〗『单项选择』(1分)(题号:
1390)
关于read()函数的下列描述中,()是对的.
A:
该函只能从键盘输入中获取字符串
B:
该函数所获取的字符多少是不受限制的
C:
该函数只能用于文本文件的操作中
D:
该函数只能按规定读取所指定的字符数
答案:
B
〖第8题〗『单项选择』(1分)(题号:
1455)
定义函数模板使用的关键字是().
A:
class
B:
inline
C:
template
D:
operator
答案:
C
〖第9题〗『单项选择』(1分)(题号:
1437)
下述关于break语句的描述中,()是不正确的.
A:
break语句可用于循环体内,它将退出该重循环
B:
break语句可用于开关语句中,它将退出开关语句
C:
break语句可用于if体内,它将退出if语句
D:
break语句在一个循环体内可以出现多次
答案:
C
〖第10题〗『单项选择』(1分)(题号:
1423)
下列说明中,constchar*ptr;ptr应该是().
A:
指向字符常量的指针
B:
指向字符的常量指针
C:
指向字符串常量的指针
D:
指向字符串的常量指针
答案:
C
〖第11题〗『单项选择』(1分)(题号:
726)
在inta[5]={1,3,5};中,数组元素a[1]的值是().
A:
1
B:
0
C:
3
D:
2
答案:
C
〖第12题〗『单项选择』(1分)(题号:
731)
下列关于指针的运算中,()是非法的.
A:
两个指针在一定条件下,可以进行相等或不等的运算
B:
可以用一个空指针赋值给某个指针
C:
一个指针可以加上两个整数之差
D:
两个指针在一定条件下,可以相加
答案:
D
〖第13题〗『单项选择』(1分)(题号:
1383)
关于纯虚函数和抽象类的描述中,()是错误的.
A:
纯虚函数是一种特殊的虚函数,没有具体实现
B:
抽象类是指具有纯虚函数的类
C:
抽象类可以定义对象
D:
抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出
答案:
C
〖第14题〗『单项选择』(1分)(题号:
723)
下列字符常量表示中,()是错误的.
A:
'\105'
B:
'*'
C:
'\4f'
D:
'\a'
答案:
C
〖第15题〗『单项选择』(1分)(题号:
736)
下列各运算符中,()优先级最高.
A:
+(双目)
B:
*(单目)
C:
<=
D:
*=
答案:
B
〖第16题〗『单项选择』(1分)(题号:
1421)
下列关于对象数组的描述中,()是错误的.
A:
对象数组的下标是从0开始的
B:
对象数组的数组名是一个常量指针
C:
对象数组的每个元素是同一个类的对象
D:
对象数组只能赋初值,而不能赋值
答案:
D
〖第17题〗『单项选择』(1分)(题号:
1414)
下述静态数据成员的特性中,()是错误的.
A:
说明静态数据成员时前面要加修饰符static
B:
静态数据成员要在类体外进行初始化
C:
引用静态数据成员时,可在静态数据成员名前加<类名>和作用域运算符
D:
静态数据成员不是所有对象共用的
答案:
D
〖第18题〗『单项选择』(1分)(题号:
718)
下列符号中,()不可作为分隔符.
A:
B:
:
C:
?
D:
;
答案:
C
〖第19题〗『单项选择』(1分)(题号:
1406)
在带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化().
A:
与虚基类下面的派生类个数有关
B:
多次
C:
二次
D:
一次
答案:
D
〖第20题〗『单项选择』(1分)(题号:
1441)
在函数说明时,下列()项是不必要的.
A:
函数的类型
B:
函数参数类型和名字
C:
函数名字
D:
返回值表达式
答案:
D
〖第1题〗『WINDOWS操作』(15分)(题号:
17)
---------------------------------------------------------------------
请在打开的窗口中,进行下列操作,完成所有操作后,请关闭窗口。
---------------------------------------------------------------------
1:
将文件夹“ds”内的文件夹“bf”剪切到文件夹“ew”。
2:
将文件夹“ds”的属性设为“只读”。
3:
在文件夹“ds”内新建一个名称为“aq”的文本文档。
〖第1题〗『程序填空』(10分)(题号:
302)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
以下程序通过调用自定义函数scopy()将字符串s1复制到
字符串s2,并输出显示。
-------------------------------------------------------*/
#include
/***********SPACE***********/
voidscopy(【?
】,char*q)
{
while(*p!
='\0')
{
/***********SPACE***********/
【?
】;
p++;
/***********SPACE***********/
【?
】;
}
*q='\0';
}
voidmain()
{
char*s1="Nanjing,China";
chars2[20];
cout<<"\nThes1is:
"</***********SPACE***********/
【?
】;
cout<<"\nThes2is:
"<}
答案:
1).char*p
2).*q=*p
3).q=q+1或q++或q+=1或++q
4).scopy(s1,s2)
〖第2题〗『程序填空』(10分)(题号:
338)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
求N个任意数的最大值和最小值之差。
-------------------------------------------------------*/
#include
voidmain()
{
floatx[100],max,min,r;
inti,n;
cin>>n;
/***********SPACE***********/
for(i=0;i<【?
】;i++)
cin>>x[i];
/***********SPACE***********/
max=min=【?
】;
for(i=0;i/***********SPACE***********/
{if(【?
】)
max=x[i];
/***********SPACE***********/
if(【?
】)
min=x[i];
}
r=max-min;
cout<}
答案:
1).n
2).x[0]
3).maxmax
4).min>x[i]或x[i]〖第1题〗『程序改错』(10分)(题号:
76)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
题目:
计算并输出100—200之间的所有素数的平方根之和.
--------------------------------------------------------
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
#include
#include
voidmain()
{floats,sn;
intn,k,f,m;
s=0.0;
for(n=101;n<=199;n+=2)
{sn=sqrt(n);
m=sn;
k=3;
f=0;
/***********FOUND***********/
while(k<=m&&f=0)
{
/***********FOUND***********/
if(n%k==0)f=0;
/***********FOUND***********/
m++;
}
/***********FOUND***********/
if(f)s=s+sn;}
cout<
答案:
1).while(k<=m&&f==0)
2).if(n%k==0)f=1;
3).k++;
4).if(!
f)s=s+sn;}或if(f==0)s=s+sn;}或if(!
f)s+=sn;}或if(f==0)s+=sn;}
〖第2题〗『程序改错』(10分)(题号:
55)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
题目:
以下程序的输出结果为:
调用构造函数
10:
20
调用复制构造函数
10:
20
调用析构函数
调用析构函数
--------------------------------------------------------
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
#include
classcopy
{
private:
intx;inty;
public:
/***********FOUND***********/
copy(inta,b)
{
x=a;y=b;
cout<<"调用构造函数"<}
/***********FOUND***********/
copy(constcopyc)
{
x=c.x;
/***********FOUND***********/
y=c;
cout<<"调用复制构造函数"<}
~copy(){cout<<"调用析构函数"<voidprint(){cout<"<};
voidmain()
{
copyobj1(10,20);
obj1.print();
/***********FOUND***********/
copyobj2;
obj2.print();
}
答案:
1).copy(inta,intb)
2).copy(constcopy&c)
3).y=c.y;
4).copyobj2(obj1);
〖第3题〗『程序改错』(10分)(题号:
72)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
题目:
计算分段函数的值
0(x=0)
y=2x+20(x>0)
3x(x<0)
--------------------------------------------------------
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
#include
voidmain()
{floatx,y;
cin>>x;
/***********FOUND***********/
if(x=0)
y=0;
/***********FOUND***********/
elseif(x<0)
/***********FOUND***********/
y=2x+20;
else
/***********FOUND***********/
y=3x;
cout<}
答案:
1).if(x==0)
2).elseif(x>0)
3).y=2*x+20;
4).y=3*x;
〖第1题〗『程序设计』(10分)(题号:
124)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
题目:
编写一个函数voidSelectSort(inta[],intn),
采用选择排序的方法按升序排列数组a中的n个元素。
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数main和其它
函数中的任何内容,仅在函数的花括号中填入所编
写的若干语句。
------------------------------------------------*/
#include
#include
voidSelectSort(inta[],intn)
{
/**********Program**********/
/**********End**********/
}
voidwwjt(int[]);
voidmain()
{
inta[]={3,4,5,2,1,7,9,6,10};
SelectSort(a,9);
for(inti=0;i<9;i++)
cout<wwjt(a);
}
voidwwjt(inta[])
{
intk;
fstreammyfile;
myfile.open("out.txt",ios:
:
out);
for(k=0;k<9;k++)
myfile<myfile.close();
}
答案:
----------------------
inti,j,k;
for(i=1;ik=i-1;
for(j=i;jif(a[j]intx=a[i-1];a[i-1]=a[k];a[k]=x;
}
----------------------