C++语言程序设计课程试卷
- 格式:doc
- 大小:85.00 KB
- 文档页数:10
中央广播电视大学2007
C++语言程序设计课程试卷(5)
题 号 一 二 三 四 五 总 分
得 分
2008年7月已考
一、单选题(每小题2分,共20分)
1. 下面的保留字( )不能作为函数的返回类型。
A. void B. int C. new D. long
2. C++源程序文件的默认扩展名为( )。
A. cpp B. exe C. obj D. lik
3. 在下列的标识符常量的定义语句中,错误的定义语句是( )。
A. const double PI=3.14159; B. const int N=20;
C. const char ch; D. const bool mark=true;
4. for循环语句一定能够被改写为( )语句。
A. 复合 B. if C. switch D. while
5. 假定a为一个数组名,则下面的( )表达式有语法错误。
A. a[i] B. *++a C. *a D. *(a+1)
6. 在下面的二维数组定义中,只有( )语句是正确的。
A. int a[5][]; B. int a[](10);
C. int a[][]; D. int a[][5]={{1,2,3},{4,5}};
7. 下面( )的函数声明格式不正确。
A. AA(int a, int b); B. AA(int a=0, int b);
C. AA(int a=0, int b=0); D. AA(int a, int b=0);
8. 假定指针变量p定义为“int *p=new int[30];”,要释放p所指向的动态数组空间,则使用下面的( )语句。
A. delete p; B. delete *p; C. delete &p; D. delete []p;
9. 假定要对类AB定义加号运算符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为( )。
A. AB operator +(AB& a, AB& b); B. AB operator +(AB& a);
C. operator +(AB a); D. AB& operator +();
10. 当需要使用ifstream流类定义一个流对象并联系一个磁盘文件时,应在文件开始使用#include命令,使之包含( )头文件。 A. strstrea.h B. stdlib.h C. iostream.h D. fstream.h
二、填空题(每小题2分,共20分)
1. 执行“cout<<”x1=”<<18*3;”语句后得到的输出结果为________。
2. 在c++语言中,用转义字符序列________表示输出一个换行。
3.int类型的大小为________个字节。
4.假定y的值为5,则增量表达式++y的值为__________。
5.假定a的值为25,则算术表达式a%3的值为________。
6. 结束所在循环类语句或switch语句执行的中断语句的保留字为__________。
7.函数调用时,实参向形参的传送分为________传送和值传送两种方式。
8. 假定a是一个一维数组,则a[i]的指针访问方式为________。
9. 假定一个结构类型的定义为 ”struct C{double a[5]; int n;};”,则该类型的大小为________个字节。
10. 若要在程序中进行___________的输入输出操作,则必须在开始的#inlude预处理命令中使用fstream.h头文件。
三、写出下列每个程序运行后的输出结果(每小题6分,共30分)
1. #include
void main() {
int n=5, sum=0;
while(n) {sum+=n; n--;}
cout<<”sum=”<
}
运行结果:
2. #include
const int N=6;
void main() {
int a[N]={76,83,54,62,40,65};
int c1, c2;
c1=c2=a[0];
for(int i=1;i
if(a[i]>c1) c1=a[i]; else if(a[i]
cout<
}
运行结果:
3. #include
void main() {
int a[8]={4,8,15,16,20,30,48,62};
int *p=a;
do {
cout<<*p<<' ';
p+=3;
} while(p
cout<
}
运行结果:
4.#include
int LF(int x, int y) {
x=x+y; y=x+y;
return x+y;
}
void main() {
int x=5, y=8;
cout<
}
运行结果:
5. #include
class A {
int a,b;
public:
A() {a=b=0;}
A(int aa, int bb) {
a=aa; b=bb;
cout<
}
}; void main() { A x,y(2,3);}
运行结果:
四、写出下列每个函数的功能(每小题8分,共24分)
1. double FI(double n) { //n为大于等于1的整数
double x,y=0;
for(int i=0; i
cin>>x; y+=x;
}
return y;
}
函数功能:
2. int WG(int a, int b) {
if(a>b) return 1;
else if(a==b) return 0;
else return -1;
}
函数功能:
3. 假定结构类型StrNode带有一个字符串域name[20]和一个结点指针域next。
void QB(StrNode*& f, int n) { //f为单链表的表头指针
if(n==0) {f=NULL; return;}
f=new StrNode; //由f指向一个新结点
cin>>f->name;
StrNode* p=f;
while(--n) {
p=p->next=new StrNode;
cin>>p->name;
}
p->next=NULL;
}
函数功能:
五、按题目要求编写函数(6分)
假定一个函数声明为“int fun(int n);”,要求判断出n是否为一个素数,若是则返回1否则返回0;特别地,若n小于等于1则返回-1。
中央广播电视大学2007
C++语言程序设计课程试卷答案及评分标准(5)
(供参考)
一、单选题(每小题2分,共20分)
1.C 2. A 3. C 4. D 5.B
6.D 7.B 8. D 9. B 10. D
二、填空题(每小题2分,共20分)
1. x1=54 2. ’\n’
3. 4 4. 6
5. 1 6. break
7. 引用 8. *(a+i)
9. 44 10. 文件
三、写出下列每个程序运行后的输出结果(每小题6分,共30分)
1. sum=15
2. 83 40 //每个数据3分
3. 4 16 48 //每个数据2分
4. 34 38 //每个数据3分
5. 2 3 //每个数据3分
四、写出下列每个函数的功能(每小题8分,共24分)
评分标准:每题与参考答案的叙述含义相同者得8分,否则酌情给分。
1. 求出并返回从键盘上输入的n个实数之和。
2. 比较两个整型参数a和b的大小,若a>b则返回1,若a==b则返回0,若a
3. 根据从键盘上依次输入的n个字符串建立一个具有n个结点的链表,链表的表头指针由引用变量f带回。
五、按题目要求编写函数(6分)
评分标准:根据编程的完整程度酌情给分。
int fun(int n) {
if(n<=1) return -1; //2分
for(int i=2; i<=sqrt(n); i++)
if(n%i==0) break; //4分
if(i<=sqrt(n)) return 0; else return 1; //6分
}
徐孝凯:往届试卷之二供参考!
中央广播电视大学2007年秋
C++语言程序设计课程试卷2