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