小米课
返回首页 | 淘宝问答 | 提交答案
关键字: 赤脚医生 优秀典型 理性情绪 情绪疗法 三个阶段 标杆管理 少数民族 省份 | 时间:2024-09-15 01:18

发布时间:2024-09-15 01:18

| 人浏览

【答案】山东广播电视大学开放教育电大《C++语言程序设计》课程

一.选择题

1. 下面的哪一个保留字不能作为函数的返回类型?( C )

A. void B. int C. new D. long

2. 假定a为一个数组名,则下面的哪一种表示有错误?( 了B )

A. a[i] B. *++a C. *a D. *(a+1)

3. 在下面的二维数组定义中,哪一个是正确的?( D )

A. int a[5][]; B. int a[](10);

C. int a[][]; D. int a[][5]={{1,2,3},{4,5}};

4.下面的哪一个函数头格式不正确?( B )

A. AA(int a, int b) B. AA(int a=0, int b)

C. AA(int a=0, int b=0) D. AA(int a, int b=0)

5.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为( B )。

A. AB operator +(AB& a, AB& b); B. AB operator +(AB& a);

C. operator +(AB a); D. AB& operator +();

6.当需要使用ostrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用#include命令,使之包含( A)文件。

A. strstrea.h B. stdlib.h C. iostream.h D. fstream.h

7.下列变量名中,( A )是合法的。

A CHINA B byte-size C double D A+a

8.下列各种函数中,( C )不是类的成员函数。

A 构造函数 B 析构函数 C 友元函数 D 拷贝构造函数

9.下列( A )是正确的语句。

A ; B a=17 C x+y D cout<<"/n"

10.循环while(int i=0) i--;执行次数是( A )。

A 0 B 1 C 5 D 无限

11.设int f(int);和int g(int);是函数f和g的原形,以下将f作为语句调用的是(B )。

A g(f(3)); B f(g(3)); C g(f(3)+2); D p= f(g(3)+1);

12.设int * p2=&x,* p1=a;p2= *b;则a和b的类型分别是( B )。

A int * 和int B int * 和int **

C int 和int * D int * 和int *

13.设int x;,则经过( C )后,语句*px=0;可将x值置为0。

A int * px; B int const * px=&x;

C int * const px=&x; D const int * px=&x;

14.设void f1(int *m,long &n);int a;long b;则以下调用合法的是( B )。

A f1(a,b); B f1(&a,b);

C f1(a,&b); D f1(&a,&b);

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

A struct aa{ int a;int * b;}; B struct bb{ int a;bb * b;};

C struct cc{ int * a;cc b;}; D struct dd{ int * a;aa b;};

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

A iostream.h B fstream.h C iomanip.h D stdlib.h

17.类型修饰符unsigned修饰( D )类型是错误的。

A char B int C long int D float

18.下列变量名中,( A )是合法的。

A _var B bye-bye C int D 123_cc

19.设int a=3,* p=&a;,则*p的值是( D )。

A 变量a的地址值 B 无意义 C 变量p的地址值 D 3

20.设int m=0;,下列表示引用的方法中,( A )是正确的。

A int &x=m; B int &y=10; C int &z; D float &t=&m

21.循环for(int i=0,x=0;!x&&i<=5;i++);的循环体执行次数是( B )。

A 5 B 6 C 1 D 无限

22.磁盘文件操作时,在打开磁盘文件的访问方式中,( C )是以追加数据

方式打开文件的。

A in B out C app D ate

23.类X中,若没有定义构造函数,则默认的构造函数是( A )。

A X ( ){ } B X (X & x){ *this=x;} C ~X ( ){ } D 不存在

24. int * p2=&x,* p1=a;*p2=*b;则变量a和b的类型分别是( D )。

A int和int B int * 和int C int和int * D int * 和int *

25.设p为指针变量,则以下表达式正确的是( B )。

A --p++ B --++p C --(p+5) D (p-5)++

26..设void f1(int &x,char * p);int m;char s[ ]="c++";以下调用合法的是( C )。

A f1(&m,&s); B f1(&m,s); C f1(m,s); D f1(m,&s);

27 .求一个字符串长度的标准函数为( A )。

A.strlen() B.dtrcap()

C.Strcat() D.strcmp()

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

函数的次数为( A )。

A.6 B.7 C.9 D.11

29.设int a=3,* p=&a;,则*p的值是( D )。

A.变量a的地址值 B.无意义

C.变量p的地址值 D.3

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

A.iostream.h B.fstream.h

C.iomanip.h D.stdlib.h



二.填空题


1.在c++语言中,用输出控制字符________表示输出一个换行。

2.表达式x=x+l表示成增量表达式为____________________。

3.关系表达式x+y>5的相反表达式为______________。

4.假定x=5,则执行“a=(x<0?10:20);”语句后a的值为________。

5.假定一个二维数组的定义为“int a[3][6];”,则该数组所含元素的个数为________.

6.要在屏幕上显示"Hello,world!"应执行语句cout<<____________________。

7.表达式8&3的结果是__________。

8.若一全局变量只允许本程序文件中的函数使用,则定义它时应加上修饰符_______________。

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

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

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

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

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

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

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

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

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

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

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

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

答案:1. ’/n’ 2. ++x 3. x+y<=5 4. 20

5. 18 6. "/"Hello,world!/"" 7. 0 8. static

9. 49 10. 8 11.H 12.4 8

13.18 72 14.数组类型 15. 49 16. *,(a[i]+”或*(*(a+i)十j)

17. *(x.a) 18.初始化表 函数体

19.析构函数 20. 8


三.写出下列每一个程序运行后的结果。


1.#include<iostream.h>

void main() {

int s1=0, s2=0;

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

if(i%2) s1+=i;

else s2+=i;

cout<<s1<<','<<s2<<endl;

}



2.#include<iostream.h>

void main() {

int i=1,s=0;

while(s<15)s+=i++;

cout<<i<<’,’<<s<<ednl;

}




3.#include<iostream.h>

void main() {

int a[10]={8,19,46,15,6,24,27,18,20,53};

int c1=0, c2=0;

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

if(a[i]>=20) c1++;

if(a[i]>=10 && a[i]<=40) c2++;

}

cout<<c1<<','<<c2<<endl;

}



4.#include<iostream.h>

Int LB(int *a,int n)

For(int i=0;i<n;i++){

p*=*a;a++;

}

Return p;

Inta[5]={1,2,3,4,3};

Cout<<LB(a,5)<<endl;

}



5.#include<iostream.h>

struct Worker {

char name[15]; //姓名

int age; //年龄

float pay; //工资

};

void main() {

Worker x={"wangfong",46,1640};

Worker y, *p;

y=x; p=&x;

cou<<p->age+5<<’ ’<<p->pay-300<<endl;

}


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]);

}

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

}


答案:1. 49,56

2.6,5

3.5,6

4.72

5.51,1340

6.well!

good!

pass!

well!

bad!

7. 13 15 17

19 2l 23

25 27

8.x=5,y=8

x=13,y=21

x=13,y=8

9.dec: 25 120

Oct: 31 170

hex: 19 78


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


1.double FI(double n) {

//n 为大于等于1的整数

double x,y=0;

do {

cin>>x;

n--; y+=x;

} while(n>0);

return y;

}

2.template<class Type>

bool WE(Type a[], Type b[], int n) {

int c=0;

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

if(a[i]==b[i]) c++;

if(c==n) return true; return false;

}

3.void LK(double a[], int n) {

double s=0;

int I,m=0;

for(i=0;i<n;i++) s+=a[i];

s=s/n;

for(i=0;i<n;i++) if(a[i]>=s) m++;

}

4. # 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

}

5. # 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( );

}

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


标准答案

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

2.模板函数,判断具有n个元素的两个数组a和b中对应元素值是否全部相等,若是则返回真,否则返回0。

3.统计出数组a的前n个元素中大于等于其平均值的元素个数并作为函数值m返回。

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

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

6.整个程序正确得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分

}



答案有错

上一篇:邓小平理论形考作业

下一篇:暂无

小米课手机端XML联系我们