视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
c++试卷D
2025-09-22 17:42:03 责编:小OO
文档
南京理工大学课程考试试卷(学生考试用)

课程名称:VC++程序设计学分:4大纲编号06000702

试卷编号:2010B考试方式:闭卷满分分值:100考试时间:120分钟组卷日期:2010年6月20日组卷教师(签字):严悍审定人(签字):

学生班级:学生学号:学生姓名:

说明:1.所有试题做在答卷纸上

2.考试完毕后连考卷一起交上

一、选择题(选择一个最合适的答案。每题2分,共40分)

1、下面哪一个可以作为合法标识符?

A default

B register

C extern

D Void

2、执行下面语句,输出结果是______。

int a=13,b=9,c;

c=a/b+0.8;

cout<A1.8B1C2.24444D2

3、执行下面语句,输出结果是______。

char c1=5;

c1^=3;

cout<<(int)c1<A1B3C5D6

4、执行下面语句,输出结果是______。

int a=5,b=6,c=7,d=8,m=2,n=2;

(m=ad);

cout<A3B2C1D0

5、下面for循环次数是________。

for(int i=1;i<=5;sum++)

sum+=i;

A.0

B.4

C.5

D.无数次

6、执行下面语句,输出结果是______。

int x=3;

do{

cout<<(x-=2)<<"";

}while(!(--x));

A1B30C1–2D死循环int x=1,i=1;

for(;x<50;i++){

if(x>=10)break;

if(x%2!=0){

x+=3;continue;

}

x-=-1;

}

cout<A127B116C126D117

8、执行下面程序,输出结果是______。

#include

int c_multiple(int a,int b){

for(int i=(a>b?a:b);i<=a*b;i++)

if(i%a==0&&i%b==0)

return i;

return a*b;

}

void main(){cout<A2B8C24D48

9、执行下面程序,输出结果是______。

#include

int f(int Int){

if(Int==1)

return1;

return(Int+f(Int-1));

};

void main(){cout<A1B37C45D46

10、执行下面程序,输出结果是______。

#include

#define P5

#define R2+P

void main(){

float a1=P*R*R;cout<}

输出结果为:

A75B245C49D25

11、下面哪一个数组说明语句是正确的?

A char s4[2][3]={"xyz

B char s1[]="xyz";

C char s3[][]={'x','y','z'};

D char s2[3]="xyz";int b[3][3]={0,1,2,0,1,2,0,1,2},t=1;

for(int i=0;i<3;i++)

for(int j=i;j<=i;j++)

t+=b[i][i]+b[j][j];

cout<A7B9C4D6

13、下面哪一条语句不正确:

enum Gender{female,male};//A

struct Person{

char name[20];

Gender sex;//B

Person father;//C

};

Person members[30];//D

14、设有以下枚举说明语句:

enum weekday{Mon=1,Tues,Wed,Thurs,Fri,Sat,Sun=0}week;

下面那一条赋值语句是错误的?

A week=weekday(1);

B week=1;

C week=Mon;

D week=(weekday)1;

15、尝试执行下面语句,输出结果是______。

int a=2,*pa=&a;

int b=3,*pb=&b;

*pa*=*pa**pb;

cout<A2B6C12D语法错

16、尝试执行下面语句,输出结果是______。

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

int*p=a+4;

int b=3+++*p++;

cout<A8B9C10D语法错

17、下面哪一个表达式不能访问二维数组b的第i行第j列元素?

A b[i][j]B*(*(b+i)+j)C*(b[i]+j)D*(b+i)[j]

18、对于缺省构造函数,下面哪一种说法是错误的?

A只有当类中没有显式定义任何构造函数时,编译器才自动生成一个公有的缺省构造函数。B无参构造函数一定是缺省构造函数。

C缺省构造函数一定是无参构造函数。

D一个类中最多只能有一个缺省构造函数。

19、假设对象a和b都是类A的对象,下面哪一条语句不会执行类A的拷贝构造函数?

A b=a;

B void f(A x);f(a);

C A b=a;

D return a;20、下面哪一行语句有错?

class A{

int i;

protected:

void setI(int a=2){i=a;} public:

int getI(){return i;}

};

class B:public A{

public:

void f(){

setI(3);//A

cout<};

void main(){

B b;

b.setI(4);//C

cout<b.f();

}

四、写程序,根据要求编写程序(30分)

1、如果一个正整数是其因子之和,则该数称为完数。例如6的所有因子为1,2,3,而6=1+2+3,因此6是一个完数。编程找出1000之内的所有完数。共14分

按要求实现下面函数:

1、int getFactors(int a,int f[])

计算整数a的所有不重复因子,从1开始,各因子放入到数组f中,返回因子个数。(4分) 2、int getSum(int a[],int num)

返回数组a中的num个元素之和。(3分)

3、void printArray(int a[],int num)

打印输出数组a中的num个元素。(3分)

4、main函数8分

找出1000之内所有完数,并按下面格式输出:6factors are123

要求调用前面定义的函数。(4分)

2、Course(课程)与SpecialtyCourse(专业课程)类。共16分

已有一个Date类表示日期,不需要编程实现。

class Date{

int year,month,day;

public:

Date(int y,int m,int d);

void print();//打印年-月-日

};

建立一个Course类表示大学课程,一门课程作为一个对象。

class Course{

char name[40];//课程名称

int credit;//学分数

Date setDate;//开设日期

public:

Course(char*name,int credit,int sYear,int sMonth,int sday);

void setName(const char*cname);

const char*getName();

virtual void show();

...

};

2.1实现构造函数Course::Course(char*name,int credit,int sYear,int sMonth,int sday);形参分别为名称、学分数、开设年、月、日。(4分)

2.2实现成员函数Course::show();输出课程名称、学分数、开设日期。(3分)

2.3建立一个SpecialtyCourse类表示专业课程,除了要表示课程的属性之外,还要求描述专业名称。注意利用已有的类。(9分)

1)实现该类的构造函数:

SpecialtyCourse(char*name,int credit,

int sYear,int sMonth,int sday,char*specname)形参分别为课程名称、学分数、开设年、月、日、专业名称。

2)实现该类的一个成员函数:void show(),要求显示所有属性。

编程题参:

1、

#include

/*

计算整数a的所有因子,从1开始,因子放入到数组f中,返回因子个数*/

int getFactors(int a,int f[]){

int index=0;

for(int i=1;i<=a/2;i++)

if(a%i==0)

f[index++]=i;

return index;

}

/*

返回数组a中num个元素之和

*/

int getSum(int a[],int num){

int sum=0;

for(int i=0;isum+=a[i];

return sum;

}

/*

打印输出数组a中num个元素

*/

void printArray(int a[],int num){

for(int i=0;icout<}

void main(){

for(int m=2;m<1000;m++){

int f[32];

int num=getFactors(m,f);

if(getSum(f,num)==m){

cout<printArray(f,num);

cout<}

}

}

以下是完整程序

#include

#include

class Date{

int year,month,day;

public:

Date(int y,int m,int d){

year=y;

month=m;

day=d;

}

void print(){

cout<}

};

class Course{

char name[40];//名称

int credit;//学分数

Date setDate;//开设日期

public:

Course(char*name,int credit,int sYear,int sMonth,int sday) :setDate(sYear,sMonth,sday){

this->credit=credit;

setName(name);

}

void setName(const char*cname){

if(strlen(cname)>=4&&strlen(cname)<=39)

strcpy(name,cname);

else

strncpy(name,cname,39);

}

const char*getName(){return name;}

virtual void show(){

cout<<"名称:"<cout<<"学分:"<cout<<"开设日期:";setDate.print();cout<}

};

class SpecialtyCourse:public Course{

char specialtyName[40];//专业名

public:SpecialtyCourse(char*name,int credit,int sYear,int sMonth,int sday,

char*specname)

:Course(name,credit,sYear,sMonth,sday){

setSpecialtyName(specname);

}

void setSpecialtyName(const char*sname){

if(strlen(sname)>=4&&strlen(sname)<=39)

strcpy(specialtyName,sname);

else

strcpy(specialtyName,"unknown");

}

const char*getSpecialtyName(){return specialtyName;}

void show(){

Course::show();

cout<<"专业名称:"<}

};

void main(){

SpecialtyCourse c1("面向对象分析与设计

c1.show();

}

第4页共4页下载本文

显示全文
专题