川大高级语程序设计II复习题2Word格式.docx
《川大高级语程序设计II复习题2Word格式.docx》由会员分享,可在线阅读,更多相关《川大高级语程序设计II复习题2Word格式.docx(10页珍藏版)》请在冰点文库上搜索。
![川大高级语程序设计II复习题2Word格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/05dc8d42-7815-41cc-a808-1201b58b38ad/05dc8d42-7815-41cc-a808-1201b58b38ad1.gif)
D.9
6、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:
A.
AB
operator+(AB
a,AB
b)
B.
a)
C.
a)
D.
operator+()
二、填空题)
1、C++语言中的每条基本语句以
作为结束符,每条复合语句以
作为结束符。
2、执行“cout
<
<
char('
A'
+2)<
endl;
”语句后得到的输出结果为
。
3、float和double类型的大小分别为
和
4、算术表达式
对应的C++表达式为
5、关系表达式x+y>
5的相反表达式为
6、假定一个一维数组的定义为“char
*a[8];
”,则该数组所含元素的个数为
,所占存储空间的字节数为
7、变量分为全局和局部两种,
变量没有赋初值时,其值是不确定的。
8、假定a是一个二维数组,则a[i][j]的指针访问方式为
9、假定一个结构类型定义为
“struct
D{int
a;
union{int
b;
double
c;
};
D
*d[2];
”,
则该类型的大小为
字节。
10、对一个类中的数据成员的初始化可以通过构造函数中的
实现,也可以通过构造函数中的
实现。
11、假定AB为一个类,则执行“AB
a[10];
”语句时,系统自动调用该类的构造函数的次数为
12、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为
三、给出下列程序运行后的输出结果
1、#include<
iostream.h>
voidSB(charch){
switch(ch){
case'
:
a'
cout<
"
well!
;
break;
B'
b'
good!
C'
c'
pass!
default:
nad!
}
}
voidmain(){
chara1='
a2='
a3='
f'
SB(a1);
SB(a2);
SB(a3);
SB('
);
2、#include<
#include<
string.h>
char*a[5]={"
student"
"
worker"
cadre"
soldier"
peasant"
};
char*p1,*p2;
p1=p2=a[0];
for(inti=0;
i<
5;
i++){
if(strcmp(a[i],p1)>
0)p1=a[i];
if(strcmp(a[i],p2)<
0)p2=a[i];
p1<
'
'
p2<
3、#include<
inta=5;
inta=10,b=20;
a<
b<
{
inta=0,b=0;
for(inti=1;
6;
a+=i;
b+=a;
4、#include<
iomanip.h>
intLB(int*a,intn){
ints=1;
n;
i++)
s*=*a++;
returns;
inta[]={1,2,3,4,5,6,7,8};
intb=LB(a,5)+LB(&
a[3],3);
b="
5、#include<
structWorker{
charname[15];
//姓名
intage;
//年龄
floatpay;
//工资
Workerx;
char*t="
liouting"
intd=38;
floatf=493;
strcpy(x.name,t);
x.age=d;
x.pay=f;
x.name<
x.age<
x.pay<
6、#include<
classA{
inta;
public:
A(intaa=0){a=aa;
~A(){cout<
DestructorA!
classB:
publicA{
intb;
B(intaa=0,intbb=0):
A(aa){b=bb;
~B(){cout<
DestructorB!
Bx(5),y(6,7);
//后定义的变量将先被释放
四、写出下列每个函数的功能
intSA(inta,intb){
if(a>
b)return1;
elseif(a==b)return0;
elsereturn-1;
2、floatFI(intn){
//n为大于等于1的整数
floatx,y=0;
do{
cin>
>
x;
n--;
y+=x*x;
}while(n>
0);
return
y;
3、template<
classType>
voidWE(Typea[],Typeb[],intn){
b[n-i-1]=a[i];
4、structStrNode{
//字符串域
StrNode*next;
//指针域
voidQB(StrNode*&
f,intn){
if(n==0){f=NULL;
return;
f=newStrNode;
f->
name;
StrNode*p=f;
while(--n){
p=p->
next=newStrNode;
p->
p->
next=NULL;
五、编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a:
xxk1.dat”中。
*******************************************************************************
C++语言程序设计试题
答案及评分标准
(供参考)
2001年3月
一、单选题(每小题1分,共6分)
评分标准:
选对者得1分,否则不得分。
1、A
2、A
3、C
4、C
5、B
6、B
二、填空题(每小题2分,共24分)
每题与参考答案相同者得2分,否则不得分。
1、
:
}
2、
C
3、
4
8
4、
(x*y*y)/(3*a)+4*b-1
5、
x+y<
=5
6、
32
7、
局部
8、
*(a[i]+j)
或
*(*(a+i)+j)
9、
20
10、
初始化表
函数体
11、
10
12、
AB:
bb
三、给出下列程序运行后的输出结果(每小题6分,共36分)
每题与参考答案的数据和显示格式完全相同者得6分,否则酌情给分。
good!
pass!
bad!
well!
2、
worker
cadre
20
15
35
5
10
4、
b=240
liouting
38
493
6、
Destructor
B!
7
Destructor
A!
6
0
四、写出下列每个函数的功能(每小题6分,共24分)
评分标准:
每题与参考答案的叙述含义相同者得6分,否则酌情给分。
1、比较两个整数a和b的大小,若a>
b则返回1,若a==b则返回0,若a<
b则返回-1。
2、求出从键盘上输入的n个常数的平方和并返回。
3、模板函数,把数组a的每个元素按逆序放入数组b中。
4、建立一个具有n个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针由引用变量f带回。
(10分)
见参考程序中的注释。
//使用此命令得1分
fstream.h>
stdlib.h>
ofstreamfout("
a:
xxk1.dat"
//定义输出文件流并打开文件得2分
if(!
fout){
cerr<
文件没有打开!
exit
(1);
//可有可无
intx;
while(x!
=-1){
fout<
x<
//能够从键盘向文件正确输出数据得6分
fout.close();
//关闭输出文件流得1分