计算机南理工级VC++程序设计A卷附答案Word下载.docx
- 文档编号:17620585
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:18
- 大小:21.51KB
计算机南理工级VC++程序设计A卷附答案Word下载.docx
《计算机南理工级VC++程序设计A卷附答案Word下载.docx》由会员分享,可在线阅读,更多相关《计算机南理工级VC++程序设计A卷附答案Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
5、若a、b、c、d、m、n均为整型变量,且a=3,b=2,c=14,d=5,m=6,n=7,则逻辑表达式(m=a<
b)&
&
(n=c<
d)执行后,n的值是()。
A.0
B.7
C.1
D.5
6、若定义floatx=1.2f;
inta=1,b=2;
则以下正确的switch语句是()。
A.switch(a+b)
{case1:
cout<
<
1;
break;
case3:
2;
}
B.switch(x)
case2:
C.switch(b-a)
case1:
D.switch(a+b)
{case1.0:
case3.0:
7、执行下面的程序,输出结果是()。
#include<
iostream.h>
voidmain()
{inti,j,x=0;
for(i=0;
i<
7;
i++)
{x+=2;
for(j=0;
j<
=3;
j++)
{if(j%2)continue;
x++;
}
x++;
break;
x;
}
A.3
B.6
8、以下语句段不是死循环的是()。
A.ints=33;
while(s++%2+3%2)
s++;
B.inti,sum=0;
for(i=1;
;
sum=sum+1;
C.inti=100;
while
(2)
{
i=i%100+1;
if(i==20)break;
D.intk=0;
do{
++k;
}while(k<
=0);
9、执行下面的程序后a的值是()。
#defineSQR(X)X*X*X
{inta=2,k=2,m=3;
a+=SQR(k+m)/SQR(k+m);
a;
B.32
C.24
D.127
10、以下对字符数组initarray进行初始化的语句,不正确的是()。
A.charinitarray[]='
word\0'
;
B.charinitarray[]={'
w'
'
o'
r'
d'
\0'
};
C.charinitarray[]={"
word\0"
D.charinitarray[]="
11、下面结构体成员说明中,哪一条语句是错误的。
structEmployee{
charidno[20];
//A
Employee*manager;
//B
Employeehead;
//C
Employee&
administrator;
//D
12、执行下面程序代码后的输出结果是()。
{char*u="
1243567"
*s;
int*v;
v=(int*)u;
v++;
s=(char*)v;
s<
endl;
A.4567
B.567
C.67
D.34567
13、下述定义中,()是定义指向二维int数组的行指针。
A.int(*p)[5]
B.int*p[]
C.int*p[5]
D.(int*)p[5]
14、若有如下函数说明和变量定义语句
voidfun(floatarray[10],float&
s);
floatt[10],*pt=t,n;
则对函数fun的调用语句正确的是()。
A.fun(pt[10],n);
B.fun(pt,n);
C.fun(*pt,n);
D.fun(pt,&
n);
15、假设类MyTestClass的定义如下:
classMyTestClass
{public:
MyTestClass(){value=0;
voidSetValue(inti){value=i;
private:
intvalue;
则当执行语句MyTestClass*p,test;
p=&
test;
后,以下描述正确的是()。
A.语句p=&
是把对象test赋值给指针变量p
B.语句MyTestClass*p,test;
的执行,会调用两次MyTestClass类的构造函数
C.对语句p.SetValue(5);
的调用不会产生错误
D.对语句p->
SetValue(5);
16、以下关于类的构造函数和析构函数的描述中,正确的是()。
A.类的构造函数和析构函数都不能重载
B.类的构造函数和析构函数都能重载
C.若类中没有定义任何构造函数,则编译器将提供一个缺省构造函数,函数体中是空语句
D.当一个对象被撤销时,系统不会自动调用并执行相应的析构函数
17、假设对象b1和b2都是类T的对象,下面的语句()不会执行类T的拷贝构造函数。
A.T&
b1=b2;
B.fun(b1,2);
//函数fun的原型说明为voidfun(Tx,inta);
C.Tb1=b2;
D.returnb2;
18、关于继承方式,基类的()在私有继承时在派生类中为私有成员,在公有和保护继承时在派生类中为保护成员。
A.私有成员
B.保护成员
C.私有数据成员
D.公有成员
19、当多继承派生类的构造函数被调用以构造对象时,最先执行()的函数体。
A.非虚基类的构造函数
B.虚基类的构造函数
C.派生类中成员对象所属类的构造函数
D.派生类自己的构造函数
20、对于友元函数,以下说法错误的是()。
A.一个类的友元函数中可以访问该类的保护成员,但不能访问私有成员。
B.一个类的友元函数可以是类外的某个函数。
C.一个类的友元函数可以是另一个类中的某个成员函数。
D.一个类的友元函数可以是另一个类中的所有成员函数。
二、读程序,写出输出结果(12分)
1、(2分)
voidadd(int*x,inti,intn)
if(n<
=i)add(x,i,2*n);
*x+=n++;
*x<
'
\t'
n<
1213
187
214
21
intx=0;
add(&
x,10,3);
x<
2、(2分)
intf1(int*px){
staticintcount=0;
*px+=10;
count+=*px;
returncount;
voidf2(int&
xx)
{xx+=10;
voidmain(void)
{intx=0;
x="
for(inti=0;
3;
X=0
103060
X=30
X=40
cout<
f1(&
x)<
f2(x);
3、(4分)
classBase
{inti;
public:
Base(intn){cout<
调用Base类的构造函数"
<
endl;
i=n+1;
~Base(){cout<
调用Base类的析构函数"
voidshowBasei(){cout<
i<
"
"
intGetBasei(){returni;
classDerived:
publicBase
{intj;
Baseaa;
Derived(intn,intm,intp):
Base(m),aa(p){
cout<
调用Derived类的构造函数"
j=n;
~Derived(){cout<
调用Derived类的析构函数"
voidshow()
{
showBasei();
j<
aa.GetBasei()<
调用Base类的构造函数
调用Derived类的构造函数
11,6,17
调用Derived类的析构函数
调用Base类的析构函数
{Derivedobj(6,10,16);
obj.show();
4、(4分)
classA{
A(){cout<
调用A类的构造函数"
virtual~A(){cout<
调用A类的析构函数"
virtualvoidfun(){cout<
调用A类的函数fun"
voidg(){fun();
}};
classB:
publicA{
B(){fun();
调用B类的构造函数"
~B(){cout<
调用B类的析构函数"
classC:
publicB{
调用A类的构造函数
调用A类的函数fun
调用B类的构造函数
调用C类的构造函数
调用C类的函数fun
调用C类的析构函数
调用B类的析构函数
调用A类的析构函数
C(){cout<
调用C类的构造函数"
~C(){cout<
调用C类的析构函数"
voidfun(){cout<
调用C类的函数fun"
{A*a=newC;
a->
g();
deletea;
三、填程序,在空格位置填入合适的代码(每空2分,共8分)
对于一个int单向链表结构
structnode{
intdata;
node*next;
下面一个函数从一个int数组来创建一个int单向链表,按数组中各元素次序建立一个链表,并保持相同次序。
形参a是数组名,形参n是数组a中元素个数,返回链表的头指针。
Node*create(inta[],intn){
Node*p1,*p2,*head=NULL;
for(inti=0;
n;
i++){
_______________;
p1->
data=a[i];
next=NULL;
if(______________)
head=p1;
else
_______________;
p2=p1;
_____________;
p1=newNode;
head==NULL
p2->
next=p1;
returnhead;
四、写程序,根据要求编写程序(20分)
1、输入任何一个字符串,计算并显示字符串中各个字符及其出现次数。
(10分)
例如,输入:
doorkeeper,输出:
d:
1
o:
2
r:
k:
e:
3
p:
各字符显示次序与串中首次出现次序一样。
按要求实现下面函数:
1.1:
intdupCount(constchara[],charb[],intc[])(7分)
形参a是一个输入字符串。
形参b保存了各个不重复的字符。
形参c保存了各字符对应的出现次数,即c[i]表示了字符b[i]的出现次数。
函数返回不重复的字符个数,上面例子返回6。
1.2:
voidmain()函数,输入一个字符串,调用上面函数得到结果,最后显示结果(3分)。
2、PC类(个人计算机)和NoteBook类(笔记本计算机)。
已有一个Date类表示日期:
classDate{
intyear,month,day;
Date(inty,intm,intd);
voidprint();
//打印年-月-日
建立一个PC类表示个人计算机。
classPC{
charbrand[40];
//品牌及型号
DatebuyDate;
//购买日期
intcost;
//价格,单位为元
PC(char*brand,intbuyy,intbuym,intbuyd,intcost);
virtualvoidshow();
要求:
2.1实现构造函数PC(char*brand,intbuyy,intbuym,intbuyd,intcost);
(2分)
2.2实现成员函数voidshow();
要求显示所有属性。
2.3建立一个NoteBook类表示笔记本计算机,除了计算机的属性之外,还要求描述电池容量:
intbatteryCapacity;
//电池容量,单位为毫安时
给出类的设计。
注意利用已有的类。
在类的设计中要求
1)实现NoteBook类的一个构造函数:
NoteBook(char*brand,intbuyy,intbuym,intbuyd,intcost,intbattCap)
2)实现NoteBook类的一个成员函数:
voidshow();
(6分)
4.1参考答案
#include<
string.h>
intdupCount(constchara[],charb[],intc[]){
intk=0;
strlen(a);
for(intj=0;
k;
if(a[i]==b[j])
break;
if(j==k){
b[k]=a[i];
c[k]=1;
for(intm=i+1;
m<
m++)
if(a[i]==a[m])
c[k]++;
k++;
returnk;
voidmain(){
charstr[200];
输入一个英文字符串,用回车结束:
cin.getline(str,200);
charch[100];
intcc[100];
intc=dupCount(str,ch,cc);
c;
ch[i]<
:
cc[i]<
4.2参考答案
Date(inty,intm,intd){
year=y;
month=m;
day=d;
voidprint(){//打印年-月-日
year<
-"
month<
day;
//购买日期
//价格,单位为元
PC(char*brand,intbuyy,intbuym,intbuyd,intcost)
:
buyDate(buyy,buym,buyd){
strcpy(this->
brand,brand);
this->
cost=cost;
virtualvoidshow(){
brand<
购买日期:
buyDate.print();
价格:
cost<
元"
classNoteBook:
publicPC{
intbatteryCapacity;
NoteBook(char*brand,intbuyy,intbuym,intbuyd,intcost,intbattCap)
PC(brand,buyy,buym,buyd,cost){
batteryCapacity=battCap;
voidshow(){
PC:
show();
电池容量:
batteryCapacity<
毫安时"
NoteBooknb1("
Dell"
2010,3,4,5600,4500);
nb1.show();
一选择题(每题2分,共40分)
1~10CDACBADCDBA
11~20CBABDCABBA
二读程题(共12分)
1(2分)
三填程题(每空2分,共8分)允许多种表示
1、p1=newNode;
或者p1=newnode;
2、head==NULL或者head==0或者!
head
3、p2->
4、returnhead;
或者return(head);
四编程题(共20分)允许不同的实现方式
1(10分)
c[k++]=1;
}else
c[j]++;
(7分)
(3分)
2(10分)允许不同的实现方式
}(2分)
}(2分)
publicPC{(以下6分)
NoteBook(char*brand
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 理工 VC 程序设计 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)