山东广播电视大学开放教育《C 语言程序设计》课程综合练习题(一)_第1页
山东广播电视大学开放教育《C 语言程序设计》课程综合练习题(一)_第2页
山东广播电视大学开放教育《C 语言程序设计》课程综合练习题(一)_第3页
山东广播电视大学开放教育《C 语言程序设计》课程综合练习题(一)_第4页
山东广播电视大学开放教育《C 语言程序设计》课程综合练习题(一)_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

山东广播电视高校开放教化《C++语言程序设计》课程综合练习题

一.选择题

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

A.voidB.intC.newD.long

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

A.a[ijB.*++aC.*aD.*(a+l)

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

A.inta[5][];B.intaU(10);

C.inia[][];D.inta[][5]={{1,2,3),(4,5));

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

A.AA(inta,intb)B.AA(inta=0,intb)

C.AA(inta=0.intb=0)D.AA(inta,intb=0)

5.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,

则该成员函数的声明语句为(B)。

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

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

6.当须要运用osirsiream流类定义一个流对象并联系一个字符串时,应在文件起先运用include

吩咐,使之包含(A)文件。

A.strstrea.hB.stdlib.hC.iostream.hD.fstream.h

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

ACHINABbyte-sizeCdoubleDA+a

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

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

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

A;Ba=17Cx+yDcoul«"\n"

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

A0BIC5D无限

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

Ag(f(3));Bf(g⑶):Cg(f(3)+2):Dp=f(g(3)+l);

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

Aini*和iniBini*和ini**

Cint和int*Dint*和ini*

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

Aint*px:Bintconst*px=&x;

Cint*constpx=&x;Dconstint*px=&x;

14.设voidfl(ini*m,long&n):inta:longb;则以下调用合法的是(B)。

Afl(a,b);Bfl(&a,b);

Cfl(a,&b);Dfl(&a,&b);

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

Astructaa{inta;int*b;};Bstructbb{inta;bb*b:};

Cstructcc{int*a:ccb:}:Dstructdd(int*a;aab:};

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

Aiostream.hBfstream.hCionianip.hDstdlib.h

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

AcharBintClongintDfloat

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

A_varBbye-byeCintD123_cc

19.设inia=3,*p=&a:»则*p的值是(D)。

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

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

Aint&x=m:Bint&y=l():Cint&z:Dfloat&t=&m

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

A5B6C1D无限

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

方式打开文件的。

AinBoutCappDate

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

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

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

Aint和intBint*和intCint和int*Dini*和int*

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

A—p++B—++pC—(p+5)D(p-5)++

26..设voidfl(ini&x,char*p);intm;chars[l="c++":以下调用合法的是(C)o

A&s);Bs);Cfl(m,s):Dfl(m,&s);

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

A.strlen()B.dtrcapO

C.Strcat()D.strcmpO

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

函数的次数为(A)o

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

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

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

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

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

A.iostream.hB.fstream.h

C.ionianip.hD.stdiib.h

二.填空题

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

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

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

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

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

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

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

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

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

10.假定AB为一个类,则执行“ABa⑻:“语句时,系统自动调用该类构造函数的次数为------0

11.已知‘A'一'7?的ASCII码为65—90,当执行"charch=14*5+2;coul«ch«cndl;"语句

序列后,得到的输出结果为一一。

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

13.假定一个二维数组的定义为“inia[3][6]:",则该数组所含元素的个数为一一,所占存储

空间的字节数为-----

14.执行“typedefintABQ20]:”语句把ABC定义为具有20个整型元素的----.

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

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

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

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

的一一实现。

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

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

0

答案:1.'5'2.++x3.x+y<=54.20

5.186."V'Hello,world!、""7.08.static

9.4910.811.H12.48

13.187214.数组类型15.4916.*,(a[i]+”或*(*(a+i)十j)

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

19.析构函数20.8

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

1.#includc<iostrcam.h>

voidmain(){

intsl=O,s2=0;

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

if(i%2)sl+=i;

elses2+=i;

cout«sl«','«s2«endl;

}

2.#include<iostream.h>

voidmain(){

inti=I,s=0;

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

cou(«i«,,,«s«cdnl;

3.#includc<iostrcani.h>

voidmain(){

inta(10]={8,l9.46.15,6,24,27,18,20,53};

intcl=0,c2=0;

fbr(inti=0;i<10;i++){

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

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

}

cout«cl«','«c2«endl;

)

4.#include<iostream.h>

IntLB(int*a,intn)

For(inti=O;i<n;i++){

p*=*a;a++;

Returnp;

Inta[5]=[1,2,343};

Cout«LB(a,5)«endl;

5.#include<iostream.h>

structWorker{

charnanie[l5];〃姓名

intage;〃年龄

floatpay;〃工资

);

voidmain(){

Workerx={"wangfbng",46,1640);

Workery,*p;

y=x;p=&x:

cou«p->age+5«,,«p->pay-3(X)«endl;

I

19.#include<iostream.h>

voidSB(charch){

switch(ch){

case'A':case'a':

cout«"well!";break;

case'B':case'b'

cout«"goodbreak;

case'C:case'c':

cout«"pass!break

default:

cout«"bad!break:

)

cout«endl;

voidmain(){

chara[6]="Abcaf

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

)

21.#include<iomanip.h>

voidmain(){

in(a[8]={3.5,7.9,1133,15,17);

int*p=a;

for(inti=O;i<8;i++){

p+=10;

cout«selw(5)«*p++;

if((i+l}%3==0}cout«endl;

)

22.#includc<ioinanip,h>

voidLF(int&x,inty){

x=x+y;

y=x+y;

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

}

voidmain(){

intx=5,y=8,

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

LF(x,y);

cout«"x=,'«x<<",Y=H«Y«endl;

)

23.#includc<iomanip,h>

voidmain(){

intx=25,y=120;

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

cout«"oct:"«oct«setw(10)<<x«setw(IO)«y«endl;

cout«"hex:"«hex«setw(10)«x«set\v(IO)<<y<<dec«endl

)

答案:1.49,56

2.6,5

3.5,6

4.72

5.51,1340

6.well!

good!

pass!

well!

bad!

7.131517

192123

2527

8.x=5,y=8

x=13»y=21

x=13,y=8

9.dec:25120

Oct:31170

hex:1978

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

1.doubleFI(doublen){

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

doublex,y=0:

do{

cin»x;

n-;y+=x;

}while(n>0);

returny;

}

2.template<classType>

boolWE(Typea[].Typeb[],intn){

intc=0;

fbr(inti=0;i<n;i++)

if(ali]==b[i])C++;

if(c==n)returntrue;returnfalse;

3.voidLK(doublea[],intn){

doubles=0;

in(I.m=0;

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

s=s/n;

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

)

4.#inckidc<iostrcam,h>

teniplate<c!assType〉

TypeWD(Typea[],intn)(

Typem=a[0];

for(inli=l;i<n:i++)

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

returnm

}

5.#include<iomanip,h>

inckide<fslream.h>

voidJD(char*fname)

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

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

(

ifstreamfin(fname,ios::in|ios::nocreate|ios::binary)

inix,s=0,n=0;

while(fin,read((char*)&x,sizeof(x))){

s+=x;n++

}

cout«n«''«s«''«fioat(s)/n«endl;

fin.closc();

}

6.已知6WaW30,15WbW36,编一程序求出满意不定方程2a十5b=126的全部整数组解。如

(13,20)就是其中的一组解。

参考答案

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

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

否则返回0o

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

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

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

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

#include<iostream.h>

voidmain()

{

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分

I

五、编写一个函数,统计出具有n个元素的一维数组中大于等于全部元素平均值的元素个数并返

回它。(12分)

intCount(doublea[],intn):〃此为该函数的声明。

参考答案:

答案评分标准见参考程序中的注释。

intCount(doublea[],intn){

doub1em=0;

inti;

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论