C程序设计试题及答案 2文档格式.docx

上传人:b****5 文档编号:19422032 上传时间:2023-01-06 格式:DOCX 页数:15 大小:53.51KB
下载 相关 举报
C程序设计试题及答案 2文档格式.docx_第1页
第1页 / 共15页
C程序设计试题及答案 2文档格式.docx_第2页
第2页 / 共15页
C程序设计试题及答案 2文档格式.docx_第3页
第3页 / 共15页
C程序设计试题及答案 2文档格式.docx_第4页
第4页 / 共15页
C程序设计试题及答案 2文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C程序设计试题及答案 2文档格式.docx

《C程序设计试题及答案 2文档格式.docx》由会员分享,可在线阅读,更多相关《C程序设计试题及答案 2文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

C程序设计试题及答案 2文档格式.docx

index(Array,2)++后,Array中各元素值为

A.{0,1,2}B.{l,1,2}

C.{1,2,4}D.{0,2,3}

6.类构造函数定义的位置是

A.类体内或体外B.只是在类体内

C.只在类体外D.在类的成员函数中

7.设存在数组a,其长度为Len,则下列哪项泛型算法用于在a中寻找值Value的位置

A.reverse(a,a+Len,Value);

B.sort(a,a+Len,Value);

C.find(a,a+Len,Value);

D.copy(a,a+Len,Value);

8.关于对象的性质,下列描述错误的是:

A.同一类对象间可相互赋值B.可以使用对象数组

C.对象不可以用作函数参数D.一个对象可以用作另一个类的成员

9.声明一个没有初始化参数的对象,需调用

A.指定参数构造函数B.拷贝构造函数

C.初始化函数D.默认构造函数

10.下列运算符不能重载的是

A.!

B.sizeof

C.newD.delete

11.如P是一指针类型表达式,则下列表达式中不是左值表达式的是

A.PB.*P

C.&

PD.P+1

12.使用下列流格式控制符能输出一个换行符的是

A.decB.oct

C.hexD.endl

13.下列表达式,能将P声明为常量指针的是

A.constint*P;

B.int*constP;

C.constint*constPD.int*P

14.C++程序文件扩展名为

A..cppB..h

C..libD..obj

15.对C++中主函数描述正确的是

A.名称为main,可为多个B.名称不限,可为多个

C.名称为main,必须有且只能有一个D.名称不限,必须有且只能有一个

16.假定有char*P="

Hello"

,要输出这个字符串的地址值的正确写法是

A.cout<

<

*PB.cout<

P

C.cout<

&

PD.cout<

(void*)P

17.下列描述错误的是

A.在没创建对象前,静态成员不存在

B.静态成员是类的成员,不是对象成员

C.静态成员不能是虚函数

D.静态成员函数不能直接访问非静态成员

18.对于友元描述正确的是

A.友元是本类的成员函数B.友元不是本类的成员函数

C.友元不是函数D.以上皆不正确

19.一个函数功能不太复杂,但要求频繁使用,则该函数适合作为

A.内联函数B.重载函数

C.递归函数D.嵌套函数

20.下列默认参数的声明不正确的是

A.intmax(inta,intb,intc,intd=0);

B.intmax(inta,intb,intc=0,intd=0);

C.intmax(inta=0,intb,intc=0,intd=0);

D.intmax(inta,intb=0,intc=0,intd=0);

 

非选择题部分

注意事项:

用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。

二、填空题(本大题共20小题,每小题1分,共20分)

21.C++程序的编译是以___文件___为单位进行的。

22.默认参数是在__函数原型____中说明的,默认参数可以多于一个。

23.通过C++语言中的___派生___机制,可以从现存类中构建其子类。

24.拷贝构造函数使用___引用对象___作为参数初始化创建中的对象。

25.基类的公有成员在通过公有派生得到的子类中访问权限是___公有类型___。

26.要关闭一个输出流对象myFile,所用的C++语句是___myFile.close()___。

27.执行下列代码:

doublepi=3.1415926;

cout<

setprecision(5)<

pi;

程序的输出结果是___3.1416___。

28.对象作为函数参数,就是将实参对象的___值___传递给形参对象,这种传递是单向的。

29.建立一个对象时,对象的状态是不确定的。

为了使对象的状态确定,必须对其进行正确的__初始化____。

30.C++类中的___析构___函数在对象的生存期结束时被自动调用。

31.C++语言中的整数常量有四种:

十进制常量、长整型常量、八进制常量和___十六进制常量___。

32.UML中对象之间的静态关系是通过对象属性之间的连接反映的,称之为___实例连接___。

33.声明一个常成员函数Fun,返回类型为char,第一个参数类型为int,第二个参数类型为double,则该函数的声明原型是___charFun(int,double)const;

___。

34.在C++语言中,利用向量类模板定义一个具有20个int类型且初值为1的向量C,实现此操作的语句是___vector<

int>

C(20,1)___。

35.执行下列代码:

inta=123,b=321;

setw(3)<

a<

b<

endl;

程序输出结果是:

__123321____。

36.将指向对象的指针作为函数参数,形参是对象指针,实参是对象的___地址值___。

37.vector类中用于返回向量中第一个对象的方法是___front()___。

38.C++语言中动态分配内存的关键字是__new____。

39.C++类成员的访问权限有___私有___、公有和保护三种。

40.写出声明一个复数对象num的语句,并使对象被初始化为单精度2.2+1.3i,此声明语句是__complex<

float>

num(2.2,1.3)____。

三、改错题(本大题共5小题,每小题4分,共20分)

下面的每题中有一处错误,请在答题纸上写出错误所在行并给出修改意见

41.#include<

iostream.h>

main(){

intx=5,y=6;

constint*p=&x;

*p=y;

指向常量的指针P不能进行左值操作

cout<

*p<

}

42.#include<

classf{

private:

Tx,y;

模板没有声明

public:

f1(Ta,Tb){x=a;

y=b;

}

Tmax(){return(x>

y)?

x:

y;

};

main(){

fa;

a.f1(1.5,3.8);

a.max()<

43.#include<

classpoint{

private:

floatx,y;

public:

point(floata,floatb){x=a;

f(){x=0;

y=0;

voidgetx(){cout<

x<

voidgety(){cout<

y<

pointa(3.5);

没有定义一个参数的构造函数

a.getx();

44.#include<

classf{

private:

floatget(){returnx+y;

f1(floata,floatb){x=a;

a.f1(1,3.8);

a.get()<

get()函数为私有类型

45.#include<

classtestl{

Intx;

testl(){x=2;

voidset(inta){x=a;

voidget(){cout<

classtest2{

intx;

test2(){x=3;

voidget(){cout<

classtest:

publictestl,publictest2.{

voidset(inta){x=a;

voidgettest(){cout<

testa;

a.get();

get()存在二义性,使用时需要指出使用哪个基类的函数。

例如:

a.test1:

:

get()

四、完成程序题(本大题共5小题,每小题4分,共20分)

46.完成下面类中的成员函数的定义。

classpoint

{

intm,n;

point(int,int);

point(point&);

point:

point(inta,intb)

m=a;

___n__=b;

point(___point&

t___)

m=t.m;

n=t.n;

47.#include<

iostream>

usingnamespacestd;

classbase

base(inta){x=a;

intget(){returnx;

voidshowbase(){cout<

"

x="

classDerived:

publicbase

{private:

inty;

Derived(inta,intb):

base(a){y=b;

voidshowderived()

{cout<

get()<

,y="

voidmain()

baseb(3);

Derivedd(6,7);

b.showbase();

d.showderived();

________b=d__________;

_______base&

b1=b___________;

b1.showbase();

base*pb=&b1;

pb->

showbase();

输出结果如下:

x=3

x=6,y=7

x=6

x=6

48.#include<

#include<

fstream>

classcomplex

intreal:

intimag;

complex(intr=0,inti=0)

real=r;

imag=i;

complexoperator+(____complex&

a______,complex&b)

intr=a.real+b.real:

inti=a.imag+b.imag;

return____complex(r,i)______:

voidmain()

complexx(1,2),y(3,4),z;

z=x+y;

z.real<

+"

z.imag<

i"

49.下面程序的运行结果如下:

Thisisline1

Thisisline2

Thisisline3

将下列程序补充完整,答案写在答题纸上。

源程序如下:

#include<

#include___<

___

fstreamfin,fout;

fout.open("

my.txt"

,ios:

out);

if(!

fout.is_open())

return;

for(inti=0;

i<

3;

i=i+1)

fout<

Thisisline"

i+1<

fout.close();

fin.open("

in);

fin.is_open())

charstr[100];

while(_!

fin.eof_____)

fin.getline(str,100);

str<

fin.close();

50.求两个浮点数之差的cha函数的原型声明、调用方法。

floata,b;

___floatcha(float,float)___;

∥函数cha的原型声明

a=12.5;

b=6.5;

floatc=____cha(a,b)______;

∥调用函数cha

c<

floatcha(floatx,floaty)

floatw;

w=x-y;

returnw;

五、程序分析题(本大题共2小题,每小题5分,共1O分)

51.#lnclude<

voidfunc();

for(inti=0;

6;

i++)

func();

voidfunc()

intx=0;

x++;

staticinty=0;

y++;

y="

答:

x=1;

y=1

y=2

y=3

y=4

y=5

y=6

52.#include<

lostream.h>

classA

A();

voidShow();

~A();

staticintc;

intA:

c=O;

A:

A()

constructor."

c+=10;

voidA:

Show()

c="

~A()

destrucator."

endl:

Aa,b;

a.Show();

b.Show();

constructor.

c=20

destrucator.

六、程序设计题(本大题共1小题,共10分)

53.在三角形类tri实现两个函数,功能是输入三个顶点坐标判断是否构成等边三角形

math.h>

classpoint{point

f(floata,floatb){x=a;

Voidset(floata,floatb){x=a;

floatgetx(){returnx;

noatgety(){returny;

classtri{

pointx,y,z;

floats1,s2,s3;

public....settri(....);

∥用于输入三个顶点坐标

....test(....);

∥用于判断是否构成等边三角形

请写出两个函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)

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

当前位置:首页 > 工程科技 > 冶金矿山地质

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

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