中央广播电视大学2003-2004学年度第一学期"开放专科"期末考试
计算机专业C++语言程序设计试题
一、单选题(每小题2分,共北分)
1.在每个C++程序中都必须包含有这样一·个函数,该函数的函数名为( )。
A.maln B.MAIN
C.name D.functiOn
2.设x和y均为b001量,则x&&y为真的条件是( )。
A.其中一个为假 B.其中一个为真
C.它们均为假 D.它们均为真
3.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址
大( )。
A.1 B.2
C.4 D.8
4.设x和y均为bool量,则x??y为假的条件是( )。
A.它们均为真 B.它们均为假
C.其中一个为真 D.其中一个为假
5.假定a为一个整型数组名,则元素a[4]的字节地址为( )。
A.a+4 B.a+8
C.a十16 D.a十32
6.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 ( )。
A.iOS::in B.iOS::Out
C.iOs::in?iOs::Out D.没有
二、填空题(每小题2分,共24分)
1.若需要定义一个标识符常量,并且使C++能够进行类型检查,则应在定义语句的开始使用保留字--。
2.算术表达式+4b一1对应的c++表达式为--·
3.逻辑表达式x>y&&x!=l0的相反表达式为--。
4.逻辑表达式a<=b??b==15的相反表达式为--。
5.假定一个二维数组的定义为"char*a[5][4];",则该数组所含元素的个数为--,所占存储空间的字节数为--。
6.变量分为全局和局部两种,--变量没有赋初值时,将由系统自动置为o。
7.假定a是一个一维数组,则a[i]对应的存储地址(以字节为单位)为
----。
8.假定一个结构类型的定义为"struct A{double a,b,A*c;};",则该类型的大小为--字节。
9.假定要访问一个结构指针P所指对象中的b指针成员所指的对象,则表示方法为----。
10.在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先--,后--,最后为--。
11.假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为--。
12.若需要把一个函数"void F();"定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句
三、给出下列程序运行后的输出结果(每小题6分,共30分)
1. #include
include
double SD(int a, int b, char op) {
double x;
switch(op) {
case'+': x= double(a)+b; break;
case'-':x=double(a)-b; break;
case'*':x=double(a)*b; break;
ease'/' ;if(b)x=double(a)/b;
else exit(l);
break;
default: exit (1);
return x;
void main() {
int x=20, y=5;
eout<
eout<
2. #include
include
void main() {
char*a[5]={"student", "worker", "cadre", "soldier", "apen"};
char *pl,*p2;
pl=p2=a[0];
for(int i=l; i<5; i++) {
if(strcmp(a[i], p1)>0) pl=a[i];
if(strcmp(a[i], p2)<0) p2=a[i];
)
cout<
void WF(int x, int y) {
x=x+y;
y=x+y;
cout<<"subs:"<<"x, y="<
int x=8, y=l5;
cout<<"main:"<<"x, y="<
X=2*X;
cout<<"main:"<<"x, y="'<
4. # include
void LG(int*& a, int& m) {
a=new int[m]
int* p=a;
for(int i=0, i
}
void main() {
int * b, n=5,
LG(b, n);
for(int i=0; i
}
5. #include
#include
struct Worker {
char name[15]; //姓名
int age; //年龄
float pay; //工资
};
void main() {
Worker x;
char * t="WeiRong";
int d=45; float f=1235;
strcpy(x, name, t)
x. age=d; x. pay=f;
cout<
1. int SC(int a, int b, iht c) {
if(a>b) a=b;
i~(a>c) a=c;
return al
}
2. #include
template
TT WG(TT a, TT b) {
if(a>b) return 1;
else if(a==b) return 0;
else return --1;
}
3. struct StrNode {
char name[15];//字符串域
StrNode*next; //指针域
>;
void QB(StrNode * & f, int n) {
if(n==0) {f=NULL; return;}
f=new StrNode;
cin>>f->name;
StrNode 0, p=f;
while(--n) {
p=p->next = new StrNode;
cin>>p->name;
>
p->next=NULL;
}
4. //struct Worker {
// char name[15]; //姓名
// iht age; //年龄
// float pay; //工资
//};
istream & operator>>(istream & istr, Worker & x) {
cout<<"请输入一个职工记录:姓名、年龄、工资、"<
return istr;
}
五、(10分)
编一程序计算并输出12+22+...+n2的值,其中n值由键盘输入。
试卷代号:2058
中央广播电视大学2003-2004学年度第一学期"开放专科"期末考试
计算机专业C+十语言程序设计试题答案及评分标准(供参考)
一、单选题(每小题2分,共12分)
评分标准:选对者得2分,否则不得分。
1.A 2.D 3.C 4.B 5.C 6.D
二、填空题(每小题2分,共24分)
评分标准:每题与参考答案相同者得2分,否则不得分。
1.const
2.(x*y*y)/(3*a)十4*b一1
3.x<=y??x==10
4.a>b&&b!=15
5.20 80
6.全局
7.a十i*sizeof(a[i])
8.20
9.*(p一>b)
10. 基类成员 类对象成员 非类对象成员
11.AB(){}
12.friend void F();
三、给出下列程序运行后的输出结果(每小题6分,共30分)
评分标准:每题与参考答案的数据和显示格式完全相同者得6分,否则酌情给分。
1. 25 100 3
2. 2. worker apen
3.main:x,y=8,15
subs:x,y=23,38
main:x,y=16,15
4. 1 2 5 10 17
5.WeiRong 45 1235
四、写出下列每个函数的功能(每小题6分,共24分)
评分标准:每题与参考答案的叙述含义相同者得6分,否则酌情给分。
1.求出a,b,c三个数中的最小值并返回。
2.模板函数,比较两个变量a和b的大小,若a>b则返回l,若a==b则返回0,若a 3.建立一个具有n个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针由引用变量f带回。
4.重载提取操作符,用于从输入流中输入一个Worker类型的记录到引用参数x中。
五、(10分)
评分标准:根据编程情况酌情给分。
并include
void main()
{
int i;// 用i作为计数(循环)变量
int s=0; //用s作为累加变量
int n;
cin>>n;
for(i=1;i<=n;i十十)
s十=i*i;
cout<<"s="<
相关文章: