vC++程序设计.docx

上传人:b****7 文档编号:9792632 上传时间:2023-02-06 格式:DOCX 页数:14 大小:23.09KB
下载 相关 举报
vC++程序设计.docx_第1页
第1页 / 共14页
vC++程序设计.docx_第2页
第2页 / 共14页
vC++程序设计.docx_第3页
第3页 / 共14页
vC++程序设计.docx_第4页
第4页 / 共14页
vC++程序设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

vC++程序设计.docx

《vC++程序设计.docx》由会员分享,可在线阅读,更多相关《vC++程序设计.docx(14页珍藏版)》请在冰豆网上搜索。

vC++程序设计.docx

vC++程序设计

南京理工大学课程考试试卷(VC++程序设计)

、选择题(1题1分,共20分)

1.下面标志符中,合法的用户标志符是()

A.longB.-acC._53D.ab

(1)

2.以下声明中错误的是()

A.inta=0xFFB.doublea=1.2e0.5;

C.longa=2L;D.chara=’72’;

3.设有说明”inta,b,k;”,则表达式”(a=4,b=2*a),k=a/b&&a+b>10”的值为()

A.0B.1C.4D.8

4.下列定义不正确的是()

A.chara[‘a’]=”fdfd”;

B.chara[]={”abcde”};

C.char*a=”ABCDE”

D.chars[][4]={”abcd”,”efg”,”hij”,”klm”}

5.在循环语句体中使用break和continue语句的作用是()

A.结束循环和结束本次循环;B.结束本次循环和结束循环;

C.两语句都结束本次循环;D.两语句都结束循环;

6.数组作为函数的形参时,把数组名作为实参,则传递给函数的是()

A.该函数的首地址;B.该数组的元素个数;

C.该数组的各元素值;D.该数组的大小;

7.若有声明”intn,x=2,y=3;”,则执行语句”n=x

x++:

--y;”后y的值是()

A.2B.3C.4D.5

8.若y的值在[m,n]范围内,则其c++语言中正确的表达式为()

A.m<=y

C.m<=y&&

9.设有说明chars[]=”ab\0\0678\\\n98”;则strlen(s)与sizeof(s)的值是()

A.2,2B.14,15C.2,9D.2,10

10.函数重载的正确概念是:

函数名相同,()

A.函数的参数个数或参数的类型不同

B.函数的返回值的类型不同

C.函数体不同

D.与参数的个数及类型无关

11.设有说明语句:

floatfun(int&,char*);intx;chars[10];则对函数的正确调用是()

A.fun(&x,s)B.fun(x,s)C.fun(x,*s)D.fun(&x,*s)

12.有关构造函数的正确概念是()

A.构造函数可以有一个或多个参数

B.不可以重载构造函数

C.构造函数可以定义为虚函数

D.必须显式自定义构造函数

13.下面有关基类与其派生类的叙述中,正确的是()

A,派生类对象不能赋给基类对象

B.派生类对象的地址不能赋给基类对象

C.基类对象不能赋给派生类对象

D.基类的指针变量不可访问基类对象中的成员

14.若a1是A类对象,则执行语句Aa2=a1;时要调用()

A.构造函数B.拷贝构造函数

C.operator=()函数D.operatorA()函数

15.对于运算符<<,其重载函数是一个()

A.用于输出的友元函数B.用于输入的成员函数

C.用于输入的友元函数D.用于输出的成员函数

16.下列叙述中不正确的是()

A.含有纯虚函数的基类在其派生类中一定要重载纯虚函数的函数体

B.C++允许单继承,也允许多重继承,但最多只能从两个基类继承

C.一个类的缺省构造函数只能有一个

D.虚函数可以实现动态多样性

17.说明语句enumcolor{red,green,blue=100,white};每个枚举量对应的实际值是()

A.01100101B.12100101

C.0123D.redgreenbluewhite

18.当包含头文件iostream.h后。

一个C++源程序中的cout是()

A.一个标准的语句B.预定义的类

C.预定义的函数D.预定义的对象

19.设有如下程序段:

#defineN2

#defineMN+1

#defineNUM(a,b)M*a+b

intc=NUM(2,3)*5;

则变量的值是()

A.47B.19C.48D.20

20.设有如下程序

#include

ClassT{

public:

staticintx;

};

intT:

:

x=1;

voidmain()

{Ta,b;

a.x=10;

b.x=20;

cout<

:

x<

}

则执行后的输出时()

A.202020B.10201

C.20201D.有语法或逻辑错误

二、基本概念填空题(一题2分,共二十分)

1.在C++中,函数实参与形参的结合方式有值结合、(_____)和引用结合三种

2.在类的定义中,若未说明类成员的访问权限,则其默认的访问权限是(____)

3.C++中规定:

在每一个字符串的结尾添加字符(_____),以便系统据此判定字符串是否结束。

4.C++语言中的每条基本语句以(____)作为结束符

5.设p是指向具有10个int型元素的一维数组的指针变量,则其定义为(_____)

6.定义结构体、类时使用的关键字分别是(____)

7.在C++语言中,但关系表达式中的关系成立时,则该关系表达式的值为(_____)

8当一个成员函数被调用时,该成员函数的(____)指向调用它的对象

9.在C++中,编译预处理命令有三种,分别是宏定义、文件包含和(____)

10.语句float(*p)(float);说明的含义是(____)

三、阅读程序填空题(每小题三分,共30分)

注意:

为了减少程序长度,以下程序中均省去了#include

1.inta=1,b=2,c=3;

voidfun(int*x,inty,int&z)

{z=*x;*x=y;y=z;z+=y;}

voidmain()

{inta=10,b=20;

fun(&a,b,c);

cout<

}

程序的输出是(____)

2.void(intn)

{if(n/10)

{cout<

elsecout<

}

voidmain()

{f(123);

cout<

}

程序的输出是(____)

3.voidmain()

{intx=1,y=0,a=0,b=0;

switch(x){

case1:

switch(y){case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

case3:

a++;b++;

cout<

}

程序的输出是(_____)

4.下面程序的输出是(_____)

voidmain()

{chars[2][5]={“8345”,”3967”},*p[2];

inti,j,t=0;

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

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

for(j=0;p[i][j]!

=’\0’;j+=2)t=10*t+p[i][j]-‘0’;

cout<

}

5.inta=2;

voidmain()

{intb=3;

if(++a||b--)cout<<”first:

”<

{inta=5;

b=a*3;

cout<<”second:

”<

}

a+=b;

cout<<”third:

”<

}

#include

voidmain()

{charp1[20]=”abcd”,*p2=”ABCD”;

charstr[50]=”xyz”;

strcpy(str+2,strcat(p1,p2+1));

cout<

}

程序的输出是(_____)

intf1(intx){returnx+1;}

intf2(intx){returnx*x;}

intfun(int(*f)(int),intn)

{for(inti=1,sum=0;i<=n;i++)sum+=f(i);

returnsum;

}

voidmain(void)

{cout<

程序的输出是(____)

8.下面程序的输出是(____)

classA

{inta;

public:

A(inti){a=i;cout<

};

classB:

publicA

{intb;

public:

B(inti,intj):

A(i){b=j++;cout<

};

classC:

publicB

{intc;

public:

C(intI,intj,intk):

B(j,k){c=i*I;cout<

}

voidmain()

{Cc1(4,5,6);}

9.下面程序的输出是(____)

classA

{public:

virtualvoidfun(){cout<<”A:

:

fun”<<’\n’;}

};

classB:

publicA

{public:

voidfun(){cout<<”B:

:

fun”<<’\n’;}

};

classC:

publicB

{public:

voidfun(){cout<<”C:

:

fun”<<’\n’;}

};

voidfun(A*obj)

{Cc;

obj->fun();

obj=&c;

obj->fun();

}

voidmain()

{Bb;fun(&b);}

10.下面程序的输出是(____)

classComplex

{private:

floatReal;

floatImage;

public:

Complex(floatreal=0;floatimage=0){Real=real;Image=image;}

Complexoperator+(Complex&com)

{Complexc;

c.Real=Real+com.Real;

c.Image=Image+com.Image;

returnc;

}

friendostream&opertor<<(ostream&os,Complex&com)

{os<<”real=”<

returnos;

}

};

voidmain()

(Complexc1(2,3),c2(3,4),c3;

cout<

c3=c1+c2;

cout<

四、完善程序(一空两分,共二十分)

1.下面的程序用于判断所输入的字符串是否为“回文”。

回文是顺读和倒读都一样的字符串。

请完善程序。

#include

#include

intf(char*a)

{char*p1,*p2;

intn=strlen(a);

p1=a;

p2=();

while(p1

{if()return0;

else{p1++;p2--;}

}

return1;

}

voidmain()

{

chars[101];

cin.getline(s,100);

if(___)cout<

”<

elsecout<

”<<”\n”;

}

2.函数sum的功能是:

求下列多项式前n项之和,请填空。

#include

doublesum(intn)

voidmain(_)

{

intn;

doublef;

cout<<”Inputn:

”;

cin<

f=sum(n);

cout<<”Theresultis:

”<

}

doublesum(intn)

{

doubles=____;

inta=1,b=1,t;

for(inti=1;____;i++)

{

s=_____;

t=a;

a=a+b;

b=t;

}

returns;

}

3.下列程序用于对输入的一批整数建立先进后出的链表,即先输入的放在表尾,后输入的放在表头,由表头至表尾输出的次序正好与输入的次序相反。

输入的一批整数以9999作为结束,但链表中不包含此数。

请完善程序。

#include

#defineNULL0

structnode{

intdata;

structnode*link;

};

voidmain()

{structnode*p,*q;

intm,n=1;

q=NULL;

cout<<”输入第”<

cin<

while(____)

{p=_______;

p->data=m;

p->link=_____;

q=p;

cout<<”输入第”<

cin<

}

n-=2;

while(n>0);

{cout<<”第”<data<<”\n”;

_______;

}

}

五.编程题

建立一个数组类ARR,求一个整型数组所有元素中的最大值及该最大值在数组中的序号(从1开始),具体要求如下:

(1)私有数据成员:

intn:

数组实际元素个数

inta[100]:

存放数组元素

intmax,maxindex:

存放整形数组元素中的最大值及最大值的序号

(2)共有成员函数

ARR(intx[],intsize):

构造函数,用参数size初始化n,用x数组初始化a数组。

voidfindMax();求整型数组元素中的最大值及最大值的序号

voidshow():

将数组元素以每行5个数的形式输出到屏幕上,同时输出数组中元素的最大值及最大值序号。

(3)在主函数中完成对该类的测试,定义一个整型数组b[]={3,4,6,8,10,34,2},定义一个ARR类的对象arr,用b数组及其元素个数初始化该对象,求其最大值及最大值的序号并输出程序的运行结果。

程序的运行结果为:

346810

342

max=34maxindex=6

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1