admin 管理员组

文章数量: 1087139


2024年4月22日发(作者:电动机接线图)

—南 昌 大 学 考 试 试 卷—

课程编号:

T61050004

试卷编号:

课程名称: C++程序设计

开课学院: 信息工程学院

全校非计算机专业

考试形式:

考试时间:

闭卷

120分钟

适用班级:

试卷说明:

1、本试卷共 8 页。

2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。

题号

题分

得分

30

20

30

20

总分

累分人

100

签 名

考生姓名:

考生学号:

所属班级:

考试日期:

所属学院:

所属专业:

考 生

须 知

考 生

承 诺

1、请考生务必查看试卷中是否有缺页或破损。如有立即举手报告以便更换。

2、严禁代考,违者双方均开除学籍;严禁舞弊,违者取消学位授予资格;

严禁带手机等有储存或传递信息功能的电子设备等入场(包括开卷考试),

违者按舞弊处理;不得自备草稿纸。

本人知道考试违纪、作弊的严重性,将严格遵守考场纪律,如若违反则愿意

接受学校按有关规定处分!

考生签名:

(说明:请将第1-3大题的答案写到答题纸上,第4大题的答案写在原题位置。)

得 分

一、单项选择题:(每小题2分,共 30 分)

1、以下叙述中正确的是( )。

A.在对一个C++程序进行编译的过程中,可发现注释中的拼写错误

B.在C++程序中,main函数必须位于程序的最前面

C. C++本身没有输入输出语句

D. C++程序的每一行只能写一条语句

2、以下叙述中不正确的是( )。

A.在C++程序中,逗号运算符的优先级最低

B.在定义变量时,必须给变量赋初值

C.在C++程序中,count和Count是两个不同的变量

D.表达式1/3+1/3+1/3的结果为0

3、用C++语言编写的代码程序( )。

A.可以执行 B.经过编译解释才能执行

C.经过编译可执行 D.是一个源程序

4、以下关于函数参数的叙述不正确的是( )。

A.实参只能是常数

B.函数的形参命名可以任意,只要符合标识符规则

C.形参的值与实参的值不一定时刻保持一致

D.函数参数的值可以是内存单元地址

5、设”int a=12;”,则执行完语句”a+=a-=a*a;”后,a的值是( )。

A.-132 B.144 C.-264 D.288

6、以下函数的功能是( )。

int function(char *x)

{ char *p=x; while(*p++); return(p-x-1); }

A. 求字符串的长度 B. 将字符串x连接到字符串p后面

C. 将字符串x复制到字符串p中 D. 将字符串x反向存放

7、已知教师记录的描述为:

struct teacher

{int id;

char name[20];

struct{int y:int m:int d:}birth;

}t;

将变量t中的d成员赋值为12的语句为( )。

A.d=12 .d=12 C.t.d=12 .d=12

评阅人

8、在以下选项中,与k=n++完全等价的表达式是( )。

A. k=n,n=n+1 B. n=n+1,k=n C. k=++n D. k+=n+1

9、已定义int a,b;下列switch语句中格式正确的是( )。

A. switch(a) B. switch(a==b)

{ case b+1:a--;break; {default:a-b}

case b+2:a++;break;}

C. switch(a/10+b) D. switch(a*a)

{case 5:a-b; {case 1,2:++a;

default:a+b; } case 3,4:++b; }

10、以下正确的函数原型声明语句是( )。

A. double fun(int x,int y) B. double fun(int x;int y)

C. double fun(int,int); D. double fun(int x,y);

11、已知 char c; char * const pc=“How are you !”,正确的是( )。

A. pc="Nanchang" B. *pc=‘A’

C. *pc++=‘B’ D. pc=&c

12、在下面的二维数组定义中,正确的是( )。

A. int a[5][]; B. int a[][5];

C. int a[][3]={{1,3,5},{2}}; D. int a[](10);

13、以下有关类和对象的叙述,不正确的是( )。

A.任何一个对象都归属于一个具体的类

B.类的数据成员不允许是另一个类的对象

C.类与对象的关系和数据类型与变量的关系相似

D.一个类可被实例化成多个对象

14、复制构造函数的形参是( )。

A.某个对象名 B.某个对象的成员名

C.某个对象的引用名 D.某个对象的指针名

15、下列关于构造函数的叙述,错误的是( )。

A.构造函数可以设置默认参数

B.构造函数在创建对象时由系统自动调用

C.构造函数可以重载

D.构造函数可以对静态数据成员进行初始化

得 分

二、填空题:(每空1分,共 20 分)

1、C++程序中只有一个函数,则这个函数的名称是 【1】 。

2、设有定义:int x,y;则执行y=(x=2, x++,x+3);语句后,y的值是 【2】 。

3、设有定义:int n=2;则n++的值是【3】 ,n的值是【4】 。

4、表达式18/4*sqrt(9.0)/5的值的数据类型是 【5】 ,其值是 【6】 。

5、与m%n等价的C++表达式为 【7】 。

6、写出定义结构体类型时所用的C++关键字 【8】 。

7、已知以下枚举类型定义,枚举量Fortran的值是【9】 。

enum language{Basic=3,Assembly,Ada=10,Cobol,Fortran};

8、在c++中,除具有【10】 、【11】 语句的函数不能说明为内联函数外,其它函数都可

以说明为内联函数。

9、在定义类的对象时,C++程序将自动调用该对象的【12】 _函数初始化对象;

在撤销类的对象时,C++程序将自动调用该对象的【13】 __函数。

10、外部函数应声明为类的【14】 才能访问这个类的private成员。

11、在C++类中,利用 【15】 描述对象的特征,利用 【16】 描述对象的行为。

12、语句段char c[20]="Nanchang "; c[3]=’0’; cout<

13、在用class定义一个类时,数据成员和成员函数的默认访问权限为 【18】 。

14、下列fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位放在

一维数组y中返回。二进制的最低位放在下标为0的元素中,请填空。(说明:将十进制数

转化为二进制数的方法是“除2取余法”)

void fun(int x, int y[ ])

{

int a=0,b;

do

{

b= 【19】 ;

y[a++]=b;

x= 【20】 ;

} while(x);

}

评阅人

得 分

三、程序阅读题:(每小题5分,共 30 分)

请写出下列程序的运行结果。

程序1:

#include

void main()

{ for(int i=1,s=0;i<=15;i++)

{if(i%2==0 || i%3==0) continue;

cout<

s+=i;}

cout<<”ns=”<

}

程序2:

#include "iostream.h"

class Myclass

{int A;

static int B;

public:

Myclass(int k)

{int i;

A=k;

for(i=0;i<5;i++) B+=k;}

static void Display(Myclass obj)

{cout<<"A="<

};

int Myclass::B=10;

void main()

{Myclass objA(2);

Myclass::Display(objA);

Myclass objB(3);

Myclass::Display(objB);

}

程序3:

#include

using namespace std;

#define M (x+y)

#define N x-y

void main()

{int s,x=4,y=6;

s=3*M+4*N;

cout<<"s="<

}

评阅人

程序4:

#include

using namespace std;

int count=0;

class Point

{int x,y;

public:

Point()

{x=1;y=1;count++;}

~Point(){count--;}

friend void display();

};

void display()

{cout<<”There are ”<

void main()

{Point a,b;

display();

{Point b[5];display();}

display();

}

程序5:

#include

void main()

{ int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,6,9,12},{5,4,3,6}};

int i,s=0;

for(i=0;i<4;i++) s+=aa[i][2];

cout<<"s="<

}

程序6:

#include

using namespace std;

long fun(int n)

{long f;

if(n<0)cout<<"input error!";

else if(n==0)f=1;

else f=n+(n-1)*fun(n-1);

return f;

}

void main()

{cout<

cout<

}

得 分

四、程序设计:(每小题10分,共 20 分)

1、编写一个程序,完成以下要求:

1)定义一个数组,用循环实现从键盘上输入10个正整数并放入数组;

2)输出该数组中元素的最大值及数组元素的平均值。

评阅人

2、定义一个矩形类Rect,该类有两个数据成员:长(Length,float 类型)、宽(Width,float

类型),定义一个构造函数,用于初始化矩形对象,设置矩形的长和宽,另外定义一个成员

函数用于计算矩形的面积,该函数原型为:double GetS( )。要求在主程序中定义并初始化

一个矩形对象,并输出该矩形的面积。

答题卡

得 分

一、单项选择题:(每小题2分,共 30 分)

1

6

11

得 分

二、填空题:(每空1分,共 20 分)

【1】 【2】 【3】 【4】

【5】 【6】 【7】 【8】

【9】 【10】 【11】 【12】

【13】 【14】 【15】 【16】

【17】 【18】 【19】 【20】

得 分

三、程序阅读题:(每小题5分,共 30 分)

评阅人

评阅人

2

7

3

8

13

4

9

14

5

10

15

评阅人

12

1、 2、

3、 4、

5、 6、

2011-2012-2学期《C++程序设计》期末考试参考答案(A卷)

一、 单项选择题

(每小题2分,共30分)

1

6

11

C

A

B

2

7

12

B

D

C

3

8

13

D

A

B

4

9

14

A

C

C

5

10

15

C

C

D

二、

题空

(每空1

分,共20分)

【1】 main 【2】 6 【3】 2 【4】 3

【5】 double 【6】 2.0 【7】m-(m/n)*n 【8】 struct

【9】 12 【10】 循环 【11】 switch 【12】 构造

【13】 析构 【14】 友元函数 15】 数据成员 【16】 成员函数

【17】 Nan 【18】 私有的(private)【19】 x %2 【20】 x/2

三、 程序阅读题 (每小题4分,共24分)

1、 1 5 7 11 13 17 19

S=73

2、 A=2, B=20

A=3, B=35

3、 S=40

4、 There are 2 Points.

There are 7 Points.

There are 2 Points.

5、 S=22

6、 31

129

四、 程序设计题(每小题10分,共20分)

1、

#include

using namespace std; // 1分

void main()

{int i,max,a[10]; //1分

float avg,s=0; //1分

for(i=0;i<10;i++)

cin>>a[i]; //1分

max=a[0]; //1分

for(i=0;i<10;i++) //1分

{s+=a[i]; //1分

if(a[i]>max)max=a[i]; //1分

}

avg=s/10; //分

cout<<"max="<

cout<<"avg="<

}

2、

#include"iostream.h" // 1分

class Rect // 1分

{

private:

float Length,Width; // 1分

public:

Rect (float L,float W) // 1分

{Length=L;Width=W;} // 1分

double GetS()

{return Length*Width;} // 2分

};

void main()

{

Rect obj(3.0,4.0); //2分

cout<<"S="<<()<

}


本文标签: 函数 对象 程序 字符串 成员