国家开放大学(中央广播电视大学)2014年春季学期“开放本科”期末考试
2014年7月 试卷代号:1075 C++语言程序设计 试题
一、单选题(每小题2分,共20分)
1.循环体至少被执行一次的语句为( )语句。
A.for循环 B.while循环
C.do循环 D.任一种循环
2.假定a为一个整型数组名,则元素aL4]与( )的表示等价。
A.a+4 B. * a+4
C *(a+4) D *(a+16)
3.由C++源程序文件编译而成的目标文件的缺省扩展名为( )。
A.obj B.lik
C.exe D. cpp
4.在下面的一维数组定义中,( )语句有语法错误。
A.int a[]={1,2,3}; B.int a[10]={0};
C.int a[ ]; D.int a[[5];
5.程序运行中需要从键盘上输人多于一个数据时,各数据之间应使用( )符号作为分隔符。
A.空格或逗号 B.逗号或回车
C.逗号或分号 D.空格或回车
6.设x是一个bool型的逻辑量,y的值为10,则表达式x && y的值为( )。
A.1 B.0
C. 与x值相同 D.与x值相反
7.若函数声明为double function(),则该函数的返回值为( )。
A.实数型 B.实数指针型
C. 函数指针型 D. 数组型
8.假定变量m定义为”int m=7;”,则定义变量p的正确语句为( )。
A.int p=&m; B·int * p=&m;
C.int &p=*m; D.int * p=m;
9.假定AB为一个类,p为指向该类动态对象数组的指针,该数组长度为n,则执行
一”delete[]p;”语句时,自动调用该类析构函数的次数为( )。
A.1 B.n
C.n-1 D.n+1
10.当需要使用ifstream流类定义一个流对象并联系一个磁盘文件时,应在文件开始使
用#include命令,使之包含( )头文件。
A.strstrea.h B.stdlib.h
C.iostream.h D.fstream.h
二、填空题(每小题2分,共20分)
11.假定一个枚举类型的定义为”enum RA{ab,ac,ad,ae};”,则ac的值为——。
12.若x=5,y=15,则x>y的逻辑值为——·
13.假定x=10,则表达式2+x++的值为——·
14.假定一个一维数组的定义为“char * a[8]”,则该数组所占用存储空间的字节数为
————。
15.设p指向一个类的动态分配的对象,则执行”delete p;”语句时,将自动调用该类的————。
16.执行”cout<<char(’A’+4);”语句后得到的输出结果为——。
17.在C++每个程序行的后面或单独一行的开始使用注释的标记符为——。
18.假定一个结构类型的定义为”struct A{double a,b;A*c;};”,则该类型占用的存储空间的大小为——字节。
19.假定一个二维数组的定义为”int a[3][6]”,则该数组含有——个元素。
20.在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的
————使其初始化。
三、写出下列每个程序运行后的输出结果(每小题6分,共36分)
21. # include<iostream, h>
int WF(int x,int y) {
x=x+y;
y=x+y;
return x+y; }
void main() {
cout<<WF(8,5)<<endl
运行结果:
22. #include
void main() {
int a[6]= {36,25,48,14,55,40}
int b1 =a[O];
for(int i=l;i<6;i++) if(a[i]>bl) bl=a[i];
cout<<”bl =”<<bl<<endl;
运行结果:
23. #include<iostream, h>
void main() {
int a[9]= {3,5,7,9,11,13,15,17,25};
int *p=a;
for(int i=O;i<9;i++)
if((i+l)%3= =O) cout<<* (p+i)<<‘ ‘;
cout<<endl;
)
运行结果:
24. # include<iostream, h>
void main() {
int a[3][4]={{-1,2,7,8},{5,6,11,15},{9,20,3,4 };
int m=a[[0][0];
for(int i=O;i<3;i++)
for(int j=0;j<4;j++) if(a[i][j]>m) m=a[i][j];
cout<<m<<endl;
}
运行结果:
25. #include
44 include<string, h>
void main() {
char * a[5] = {“student”, “worker”, “cadre”, “soldier”, “apen” };
unsigned int n=strlen(a[0]);
for(int i=l;i(5;i++) {
if(strlen(a[i]) >n) n=strlen(a[i]);
}
cout<<n<<endl;
}
运行结果:
26. #include
struct AB {
char aa[15];
int bb;
};
void main() {
AB a[4] = { {“Apple” ,25}, {“Peach” ,40}, {“Pear” ,36}, {“Tomato” ,62} };
for(int i=0 ;i<4;i++)
if(a[i], bb<35) cout<<a[i], aa<<‘ ‘;
cout<<endl;
}
运行结果:
四、写出下列每个函数的功能(每小题8分,共24分)
27. int Fun(int a[],int n) {
double s = 0
int i,m=0;
for(i=0;i<n;i++) s+ =a[i];
s=s/n;
for(i=0;i<n;i++) if(a[i]>=s) m++;
return m;
函数功能:
28. int WG(int a, int b) {
if(a>0 && b>0)return 1
else if(a else return 0
函数功能:
29.假定结构类型DNode中的data域为结点值域,next域为结点指针域,f指向单链表的表头结点。
void QB(DNode * f)
if(f== NULL) return
while(f! = NULL) {
cout<data<<‘ f= f-> next
函数功能:
暂无评论内容