优题选
题目:山东广播电视大学开放教育电大《C++语言程序设计》课程


一、单选题(每小题2分,共12分)

1.设x和y均为b。。1量,则x&&y为真的条件是( )。

A.它们均为真 B.其中一个为真

C.它们均为假 D.其中一个为假

2.设x和y均为bool量,则x||y为假的条件是( )。

A.它们均为真 B.其中一个为真

C.它们均为假 D。其中一个为假

3.声明或定义一个内联函数时,必须在函数开始使用保留宇( )。

A. static B.const

C. inline D。extern

4.在下面的函数声明中,存在着语法错误的是( )。

A.BC(int a, int); B. BC(int,int);

C. DC(int,int=5); D. BC(int x; inl y);

5.假定AB为一个类,则执行“ABa(4),b[5],*p[2]:”语句时,自动调用该类构造函数的次数为( )。

A.6 B.7

C. 9 D. 11

6.假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行“delete[]px;”语句时,自动调用该类析构函数的次数为( )。

A.1 B.n

C n—l D.n+l

二、填空题(每小题2分,共24分)

7.已知’A’一’Z’的ASCII码为65—90,当执行"charch=14*5+2;cout<<ch<<endl;”语句序列后,得到的输出结果为——。

8.float和double类型的长度分别为——和——。

9.表达式x=x+l表示成增量表达式为——。

10.关系表达式x+y>5的相反表达式为——.

11.假定一个二维数组的定义为“int a[3][6];”,则该数组所含元素的个数为——,所占存储空间的字节数为——.

12.执行“typedef int ABC[20];”语句把ABC定义为具有20个整型元素的 ———.

13.假定p所指对象的值为36,p+l所指对象的值为49,则*++p的值为——

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

15.假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为———。

16.对一个类中的数据成员的初始化可以通过构造函数中的——实现,也可以通过构造函数中的——实现。

17.当一个类对象离开它的作用域时,系统将自动调用该类的——。

18.假定AB为一个类,则执行"ABa[8];”语句时,系统自动调用该类构造函数的次数为————。


三、给出下列程序运行后的输出结果(每小题6分,共30分)

19. #include<iostream.h>

void SB(char ch) {

switch(ch) {

case 'A': case 'a':

cout<<"well !"; break;

case 'B': case 'b'

cout<<"good !"; break;

case 'C': case 'c':

cout<<"pass ! "; break

default:

cout<<"bad! "; break;

)

cout<<endl;

}

void main() {

char a[6] ="Abcaf'

for(int i=0; a[i]; i++) SB(a[i]);

}

20. #include<iostream. h>

void main() {

int a[10]= {36,25,48,14,55,40,72,40,86,27};

int b1, b2;

b1 = b2 = a[O];

for(int i= 1;i<lO;i++)

if(a[i]>b1) {

if(bi>b2) b2=bl;

b1 = a[i]

}

cout<<b1<<' '<<b2<<endl;

}

21. #include<iomanip. h>

void main() {

int a[8]= {3,5,7,9,11,13,15,17};

int * p=a;

for(int i=0;i<8;i++) {

p+=l0;

cout<<setw(5)<< * p++;

if((i+1} %3= =0} cout<<endl;

}

22. # inelude<iomanip, h>

void LF(int& x, int y) {

x=x+y;

y= x+y;

cout<<"x="<<x<<", y="<<y<<endl;

}

void main() {

int x=5, y=8,

cout<<"x="<<x<<'', y="<<y<<endl;

LF(x, y);

cout<<"x="<<x<<", Y="<<Y<<endl;

}

23.# include<iomanip, h>

void main() {

int x=25,y= 120;

cout<<"dec:"<<dec<<setw(l0) <<x<<setw(l0)<<y<<endl;

cout<<"oct: "<<oct<<setw(l0) <<x<<setw(l0)<<y<<endl;

cout<<"hex:"<<hex<<setw(10) <<x<<setw(10) <<y<<dec<<endl

}

四、写出下列每个函数的功能(每小题6分,共24分)

24. double FI(double n) {

/In 为大雨等于1的整数

double x,y=0;

do {

ein>>x;

n--; y+=x;

} while(n>O);

return y;

}

25. int LK(int a[], int n) {

float s--0; iht i,

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

s+= a[i];

s/=n;

int m=0;

{or(i=O ;i<n;i++)

if(alii<s) m++

return m;

}

26. # inelude<iostream, h>

template<class Type>

Type WD(Type a[], int n) {

Type m= a[0] ;

for(int i=l;i<n;i++)

if(a[i]>m) re=a[i];

return m

}

27. # include<iomanip, h>

include< fstream, h>

void JD(char* fname)

//可把以fname所指字符串作为文件标识符的文件称为fname文件,

//假定该文件保存着一批整数。


{

ifstream fin(fname, ios: :in |ios: :nocreate | ios: :binary)

int x, s=O, n=O;

while(fin, read((char * ) &x, size of(x))) {

s+=x; n++

}

cout<<n<< ' ' <<s<<' ' << float(s)/n<<endl;

fin. close( );

}

28.已知6≤a≤30,15≤b≤36,编一程序求出满足不定方程2a十5b=126的全部整数组解。如(13,20)就是其中的一组解。











计算机专业 C++语言程序设计

一、单选题(每小题2分,共12分);

评分标准:选对者得2分,否则不得分。

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

二、填空题(每小题2分,共24分)

评分标准:每题与标准答案相同者得2分,否则不得分。

7.H

8. 4 8

9.++x

10.x+y<=5

11.18 72

12.数组类型

13. 49

14. *,(a[i]+”或*(*(a+i)十j)

15. *(x。a)

16.初始化表 函数体

17.析构函数

18. 8

三、给出下列程序运行后的输出结果(每小题6分,共30分)

评分标准:每题与标准答案的数据和显示格式完全相同者得6分,否则酌情给分。

19.well!

good!

pass!

well!

bad!

20. 86 72

21. 13 15 17

19 2l 23

25 27

22.x=5,y=8 //2分

x=13,y=21 //2分

x=13,y=8 //2分

23.dec: 25 120 //2分

Oct: 31 170 //2分

hex: 19 78 //2分

四、写出下列每个函数的功能(每小题6分,共24分)

评分标准:每题与标准答案的叙述含义相同者得6分,否则酌情给分。

24.求出从键盘上输入的n个实数之和。

25.求出数组a的n个元素中小于平均值的元素个数并返回。

26.模板函数,从数组a的n个元素中求出最大值并返回。

27.从二进制文件中输入所有整数,计算并显示出所有整数的个数、总和与平均值。

五、(10分)

28.整个程序正确得10分,否则按下面参考程序中语句后的注释给分。

#include<iostream.h>

void main( )

{

inta,bi //定义变量正确得2分

for(a=6;a<=30;a++) //外循环次数正确得2分

for(b=15;b<=36;b++) //内循环次数正确得2分

if(2xa+5,b==126)coul<<’(’<<a<<’,’<<b<<’)’<<endl;

//条件正确得2分,输出语句正确得2分

}

关键字:
返回顶部