C++语言程序设计Word文档格式.docx

上传人:b****5 文档编号:20470793 上传时间:2023-01-23 格式:DOCX 页数:14 大小:23.89KB
下载 相关 举报
C++语言程序设计Word文档格式.docx_第1页
第1页 / 共14页
C++语言程序设计Word文档格式.docx_第2页
第2页 / 共14页
C++语言程序设计Word文档格式.docx_第3页
第3页 / 共14页
C++语言程序设计Word文档格式.docx_第4页
第4页 / 共14页
C++语言程序设计Word文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C++语言程序设计Word文档格式.docx

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

C++语言程序设计Word文档格式.docx

7.设intx;

,则经过(C)后,语句*px=0;

可将x值置为0。

Aint*px;

Bintconst*px=&

x;

Cint*constpx=&

Dconstint*px=&

8.设voidf1(int*m,long&

n);

inta;

longb;

则以下调用合法的是(B)。

Af1(a,b);

Bf1(&

a,b);

Cf1(a,&

b);

Df1(&

a,&

9.以下结构类型可用来构造链表的是(B)。

Astructaa{inta;

int*b;

};

Bstructbb{inta;

bb*b;

Cstructcc{int*a;

ccb;

Dstructdd{int*a;

aab;

10.使用操作符setw对数据进行格式输出时,需要包含(C)文件。

Aiostream.hBfstream.hCiomanip.hDstdlib.h

三、回答问题(每题4分,共20分)

1.设int*p;

,判断下列表达式的正确性(用T表正确,用F表错误)。

--++p(T)++(p--)(F)p----(F)(++p)--(T)

2.请初始化一维指针数组color,其初值表初值为"

red"

,"

blue"

white"

和"

black"

char*color[]={"

3.设intx[]={99,98,97},&

y=x[1];

写出语句cout<

y--<

'

'

cout<

y*2<

endl;

执行结果。

98,194

4.设intfp(chara,intb=0,doublec=100.0);

,判断下列重载函数的正确性。

(用T表正确,用F表错误)。

intfp();

(T)voidfp(char);

(F)

intfp(char,int);

(F)voidfp(char,int,int);

(T) 

5.要使语句p1=newlong*;

p2=newfloat*[15];

能正常执行,写出p1和p2的定义。

 

long**p1;

float**p2;

四、(每题10分,共20分)

1.写出下列程序的执行结果。

#include<

iostream.h>

voidfun(int,int,int*);

voidmain()

{

intx,y,z;

fun(2,3,&

x);

fun(4,x,&

y);

fun(x,y,&

z);

x<

y<

z<

}

voidfun(inta,intb,int*c)

{b*=a;

*c=b-a;

}

4,12,44

2.下列程序向a盘上的文本文件aaa.dat输出0至100间的整数,请将程序补充完全。

stdlib.h>

fstream.h>

voidmain(void)

ofstreamf1("

a:

aaa.dat"

);

if(!

f1(或f1.fail())){

cerr<

aaa.datfilenotopen!

exit

(1);

for(inti=0;

i<

=100;

i++)f1<

'

f1.close();

五、(每题10分,共20分)

1.编程求数列1,

,……的所有大于等于0.000001的数据项之和并输出结果。

1、#include<

voidmain()

{

intn=1,d=1;

doubles=0.0,s0;

while((s0=double(n)/d)>

=0.000001)

s+=s0;

d++;

s<

endl;

2.用递归方法设计函数intArrayMin(intd[],intsize);

,其中d为数组,size为数组元素个数;

ArrayMin返回d中的最小元素。

intArrayMin(intd[],intsize)

intk=d[size-1];

if(size==1)returnk;

if(k<

=ArrayMin(d,size-1))returnk;

elsereturnArrayMin(d,size-1);

一、单项选择题

1.下列表达式中正确的是 

(B)

A. 

(k++)++ 

B. 

k---j

C. 

k--/=5 

D. 

(k+3)=5

2.已知 

int 

f(int);

和 

g(int);

分别是函数f和g的原型。

下列语句中,将函数f作为语句调用的有 

(D)

A. 

f(3)+g(3);

p/=f(3);

C. 

g(f(3));

f(g(3));

3.下面四个程序段中,输出23个*号的程序段是 

(C)

for 

(int 

i=1;

23;

i++) 

cout 

’*’;

i=23;

i>

=0;

i--) 

while 

(i>

0) 

i--;

i=0;

(0<

=23) 

i++;

4.要定义一个int型二维数组a,并使其各元素具有初值:

则正确的定义语句是 

A.int 

a[][]={2,3,0,0,4,0,5,0,0,0,0,0};

B.int 

a[][4]= 

{2,3,0,0,4,0,5,0,0,0,0,0};

C.int 

a[3][4]= 

{{2,3},{4,,5}};

D.int 

a[][]={{2,3,0,0},{4,0,5,0},{0,0,0,0}};

5.设有数组定义

a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

则表达式 

*(*(a+2)+1) 

的值是 

10

6关于析构函数的说法错误的是(C)

A析构函数只有一个

B析构函数无任何函数类型

C析构函数与构造函数一样可以有形参

D析构函数在对象被撤销是自动执行

7下列说法正确的是(C)

A使用new建立动态对象的语法和建立动态变量的情况完全不同

Bnew和构造函数不能一同使用

C使用new建立一个动态对象时,自动调用构造函数

D使用new建立的动态对象在不用时必须调用析构函数删除

8在使用不同类型的对象对一个对象赋值时,完成类型转换的事(A)

A构造函数 

B析构函数 

C友元函数 

D外部函数

9已知类myClass中的一个成员函数说明如下:

void 

SetMyClass(myClass&

myData)

其中,myClass&

myData 

的含义是(D)

A指向类myClass的指针为myData

B将myData的地址赋给SetMyClass

C变量myClass与myData按位相与作为SetMyClass的参数

DmyData是类myClass的对象引用,用来作为函数SetMyClass的形参。

10设置虚基类的主要目的是(B)

A简化程序 

B消除两义性 

C提高运行效率 

D减少目标代码

二.多项选择题

1有关析构函数说法正确的是(AD)

A析构函数在对象生存期结束时被自动调用

B析构函数名与类名相同

C定义析构函数时,可以指定返回类行为void

D析构函数不能指定参数

2一下类定义形式中正确的是(AB)

class 

MyClass1{}

MyClass2{}

Myclass3{int 

cc=’a’;

MyClass4{int 

cc;

3下面程序段完全正确的是(ABD)

struct 

myStruct{ 

myStruct 

myClass{ 

myClass{

num;

private:

float 

f1 

;

f1;

i;

};

myClass 

member;

p;

i=num;

4下列说法正确的是:

(ABC)

Amain函数内声明的局部对象的构造函数在对象声明时自动调用

Bmain函数内声明的局部对象的构造函数在main函数结束时自动调用

C全局对象和静态对象的构造函数在main函数执行之前被调用

D全局对象和静态对象的构造函数在main函数结束之后被调用

5下面说法正确的是(AB)

A构造函数可以进行类型转换

B构造函数用于确保编译器检出对象初始化方面的错误

C初始化和赋值是等价的

D程序必须用于定义的初始化和赋值进行操作

6对于下面的程序,有两义性的语句是(AD)

classA{public:

f1( 

);

classB{public:

f2 

( 

classC:

public 

A,private 

B{ 

public:

f2( 

f3( 

data

data 

.f1( 

data.A:

:

data.f2( 

C:

){ 

7关于多重继承两义性的描述中正确的是(ABD)

A一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现两义性

B解决两义性的最常用的方法是对成员名的限定法

C基类和派生类是派生类中同时出现的同名函数,也存在两义性问题

D一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现两义性

8抽象类应含有(CD)

A.至少一个虚函数 

B.至多一个虚函数是纯虚函数

C.至多一个虚函数 

D.至少一个虚函数是纯虚函数

二、填空题

1.表达式x=x+1表示成增量表达式为 

(++x 

2.关系表达式x+y>

5的相反表达式为 

(x+y<

=5)

3.执行语句 

i=10;

do 

(i+3);

后,将显示出 

个*号(14 

4.设有下面的定义

s[10]={1,2,3,4,5,6,7,8,9,10};

sum=0;

请完善下面的语句实现求数组s的所有元素之和,并保存在变量sum中:

j++ 

) 

(j=0 

j<

10 

sum+=s[j] 

5.假定a是一个二维数组,则a[i][j]的指针访问方式为 

(*(*(a+i)+j) 

或 

*(a[i]+j) 

三、下列程序运行后的输出结果

1. 

include 

a=5;

main() 

a=10,b=20;

a<

b<

a=0,b=0;

6;

a+=i;

b+=a;

}(10 

20

15 

35 

5

20)

2. 

iomanip.h>

LB(int 

*a,int 

n) 

s=1;

n;

i++)

s*=*a++;

return 

s;

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

b=LB(a,5)+LB(&

a[3],3);

b="

12)

3. 

string.h>

char 

*a[5]={"

student"

"

worker"

cadre"

soldier"

peasant"

*p1,*p2;

p1=p2=a[0];

5;

if 

(strcmp(a[i],p1)>

p1=a[i];

(strcmp(a[i],p2)<

p2=a[i];

template 

TT>

FF 

TT 

a1,a2,a3;

FF(TT 

b1,TT 

b2,TT 

b3) 

a1=b1;

a2=b2;

a3=b3;

Sum() 

a1+a2+a3;

main()

int>

x(2,3,4),y(5,7,9);

x.Sum()<

y.Sum()<

}(9 

2)

四、写出下列每个函数的功能

SA(int 

a,int 

b) 

(a>

1;

else 

(a==b) 

0;

-1;

}(比较两个整数a和b的大小,若a>

b则返回1,若a= 

=b则返回0,若a<

b则返回-1。

2.double 

SF(double 

x,int 

// 

n为大于等于0的整数

double 

p=1,s=1;

=n;

p*=x;

s+=p/(i+1);

}(计算 

1+X/2+X2/3+…+Xn/(n+1)的值并返回)

FH() 

x,y=0,n=0;

cin 

>

x;

(x!

=-1) 

n++;

y+=x;

(n==0) 

y;

y/n;

}(求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志)

4. 

Type>

WE(Type 

a[],Type 

b[],int 

b[n-i-1]=a[i];

}(模板函数,把数组a的每个元素按逆序放入数组b中)

五、编写程序

1.从键盘输入10个正整数据并累加求和。

x,s=0;

输入10个正整数:

=10;

do{ 

该循环控制输入的是正整数

}while 

(x<

=0);

+= 

2.一维数组元素求和。

a[10];

i,s=0;

输入10个整数:

(i=0;

10;

a[i];

3.在一维数组中查找给定的数据。

输入查找的数:

(a[i]==num) 

break;

(i<

10)

找到!

else

没有找到!

4.从键盘上输入一行字符串,然后将所有小写字母改写成大写字母,最后输出该字符串。

s[80];

c

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

当前位置:首页 > 农林牧渔 > 林学

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

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