《c 语言程序设计》作业4_第1页
《c 语言程序设计》作业4_第2页
《c 语言程序设计》作业4_第3页
《c 语言程序设计》作业4_第4页
《c 语言程序设计》作业4_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

《C++语言程序设计》作业4

关于C++语言程序设计期末复习题的一些说明

适用对象:开放专科和普通专科计算机网络专业、计算机应用技术专业,以及其

他相关专业

教材版本:C++语言程序设计李宁编中央广播电视大学出版社

其它说明:在本期末复习题中规定整型(int)数据占用4个字节的存储单元。

一、单项选择题

1.下列符号中,不可以作为变量名的是。

A.Iist_p_9B.PA123

C.readyD.for

2.由C++目标文件连接而成的可执行文件的缺省扩展名为。

A.cppB.exe

C.objD.lik

3.在每个C++程序中都必须包含有这样•个函数,该函数的函数名为。

A.mainB.MAINC.nameD.function

4.设x和y均为bool量,则x&&y为真的条件是。

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

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

A.(k++)++B.k—j

C.k-/=5D.(k+3)=5

6.执行下面程序段的输出结果是.

intx=4,y=-55;

if(x>0)if(x>10)cout«,,AAMelsecoutvv“BB”

elseif(y<-8)if(y>-20)cout«"CC"elsecout«MDDM;

A.AAB.BBC.CCD.DD

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

A.for(inti=l;i<23;i++)coul

B.for(inti=23;i>=0;i-)cout«***;

C.inti=23;while(i>0){coutvv'*';i—;}

D.inti=0;while(0<=23){coutvv'*';i++;}

8.在下面的一维数组定义中,哪一个有语法错误。

A.inta[]={1,2,3}B.inta[10]={0}

C.inta[]D.inta[5]

9.假定a为一个整型数组名,则元素a[4]的字节地址为。

A.a+4B.a+8C.a+16D.a+32

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

2300

4050

0000

则正确的定义语句是0

A.inta[][]={2,3,0,0,4,0,5,0,0,0,0,0);

B.inta[][4]={2,3,0,0,4,0,5,0,0,0,0。};

C.inta[3][4]={{2,3},{4„5});

D.inta[][]={{2,3,0,0},{4,0,5,0},{0,0,0,0));

11.在下面的函数声明中,存在着语法错误的是o

A.voidBC(inta,int)B.voidBD(int,int)

C.voidBE(int,int=5)D.intBF(intx;inty)

12、下面的哪个保留字不能作为函数的返回类型?o

A.voidB.intC.newD.long

13.已知intf(int);和intg(int);分别是函数f和g的原型。下列语句中,将函数f作为语句调用的

有0

A.f(3)+g(3);B.p/=f(3);C.g(f(3));D.f(g⑶);

14.已知•函数的形参说明为intarr[5][6],在下列说明中,与此等效的形参说明为一。

A.intarr[][]B.int|5][]C.int*a[6]D.int(*a)[6]

15.已知函数f的原型是:intf(chara,char*b=NULL,doublec=0.0);

则卜列调用中,不能正确地调用f函数的是____。

A.f(99)B.f('A',4.5)C.f('A',"123”)D.f((char)65;,123")

16.已知函数的原型是:intf(int,int=0,double=0.0);

则下列函数中可以加以重载的是O

A.intf(int);B.intf(int,int);C.f(int,int,double);D.f(intdouble);

17.已知一函数中有下列变量定义,其中属于静态变量的是o

A.inta=5;B.staticdoubleb;C.registercharc;D.autoshortd;

18.已知一个运行正常的的程序中有下面两个语句:

int*pl,*p2=&a;

pi=b;

由此可知,变量a和b的类型分别是o

A.int和intB.int*和intC.int*和intD.int*和int*

19.假设p是一指针变量,下列表达式中正确的是。

A.++p++B.(++p)++C.++(p++)D.p++-=3

20.设有程序段如下:

intk;

intA[10];

则下列表达式中,与元素A[k]等效的是____o

A.A+kB.*A+kC.*(A+k)D.A+*k

21.设有数组定义

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

则表达式*(*(a+2)+l)的值是o

A.5B.6C.9D.10

22.要使语句:p=newint[10];能够正常执行,p应定义为:

A.intp;B.intp|10];C.int*p;D.int(*p)|10];

23.已知函数f的原型为:voidf(int&a,char*b);

变量s,t的定义是:ints;chart[]=HABCDM;

把s和t分别作为第一参数和第二参数来调用函数f,正确的调用语句是

A.f(&s,&t);B.f(&s,t);C.f(s,t);D.f(s,&t);

24.设有如下定义

structPerson{

char*name;

char*sex;

intage;

floatpay;

}p={“李小莉",“女”,23,370};

则下列语句中正确的是

A.cout«(*p).name«endlB.cout«p->name«endl

«(*p).sex«endl«p->sex«endl

«(*p).age«endl«p->age«endl

«(*p).pay«endl;«p->pay«endl;

C.cout«p[name]«endlD.cout«p.name«endl

«p[sex]«endl«p.sex«endl

«p[age]«endl«p.age«endl

«p[pay]«endl;«p.pay«endl;

25.设有定义如下:

unionABC{

charch;

intia;

int*ipa;

doubledb;

};

则表达式sizeof(ABC)的值是.

A.17B.8C.4D.1

26.假定AB为一个类,则该类的拷贝构造函数的声明语句为o

A.AB&(ABx)B.AB(ABx)

C.AB(AB&)D.AB(AB*x)

27.对于结构中定义的成员,其隐含访问权限为o

A.publicB.protected

C.privateD.static

28.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为—。

A.ios::inB.ios::out

C.ios::intIios::outD.没有

29.假定AB为一个类,则执行'ABa(4),b⑶,*p⑵;”语句时,自动调用该类构造函数的次数为<

A.3B.4C.6D.9

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

成员函数的声明语句为:o

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

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

二、填空题

1.执行“cout«43«,-,«l8«,=>«43-18«endl;w语句后得到的输出结果为_。

2.已知'A'〜Z的ASCII码为65~90,当执行“charch=14*5+2;cout«ch«endl;M

语句序列后,得到的输出结果为O

3.使用const语句定义一个标识符常量时,则必须对它同时进行o

4.表达式x=x+l表示成增量表达式为o

5.若x=5,y=10,则x>y和x<=y的逻辑值分别为和。

6.C++语言中的每条基本语句以作为结束符,每条复合语句以

作为结束符。

7.执行“cout«charC'A',+2)«endl;w语句后得到的输出结果为。

8.float和double类型的大小分别为和。

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

11.表达式:x=625,i=(x>100?10:100)的值是。

12.执行intx=4,y;y=x-+3;语句后,变量x的值是__,y的值是«

13.执行程序段

intx=5,y=10;

x+=y;y=x-y;x-=y;

后变量X的值是____,y的值是。

14.与赋值语句:y=OK?(READY?-l:0):l:等效的嵌套的if语句为:

15.执行语句i=10;do{couti";}while(i+3);后,将显示出个*号。

16.设有下面的定义

ints[10]=(1,2,3,4,5,6,7,8,9,10);

intsum=0;

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

for(int;;j++);

17.执行语句序列

charstrl[10]="ABCD",str2[10]="XYZxyz";

for(inti=0;strl[i]=str2[i];i++);

后,数组strl中的字符串是,数组str2中的字符串是。

18.执行下面程序段

charstrl[10]="ABCD”,str2[10]="XYZxyz";

if(strcmp(strl,str2)>0)

cout«strl«endl;

else

cout«str2«endl;

后的输出结果是。

19.执行“typedefintABC[10]:"语句把ABC定义为具有10个整型元素的__。

20.假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为。

21.已知函数f的定义是:

intf(intn){n*=2;returnn+1;}

则执行

intm=5,n=3;

m=f(n);

后,变量m的值是,n的值是o

22.如果在一函数定义中使用修饰符,则声明该函数不允许其它程序文件中的函

数调用。

23.已知一函数模板定义为

template<classType>Typeincre(Typen)(returnn+1;}

则函数调用incre(5.0)使用得该函数模板产生的实例化函数为:

24.已知文件fileA.cpp中的一些函数需要访问在另一个文件fileB.cpp中定义的全局整型

变量var,则在文件fileAcpp的首部对变量var应声明为。

25.变量分为全局和局部两种,变量没有赋初值时,其值是不确定的。

26.假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)++;”语句后,p所

指对象的值为.

27.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为一

28.假定一个一维数组的定义为“char*a[8];",则该数组所含元素的个数为,

所占存储空间的字节数为。

29.假定a是一个二维数组,则a[i皿的指针访问方式为«

30.设px是指向一个类动态对象的指针变量,则执行“deletepx;”语句时,将自动调用

该类的。

31.若需要把一个函数“voidF();”定义为一个类AB的友元函数,则应在类AB的定义

中加入一条语句:。

32.若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用

___________头文件。

33.假定一个结构类型定义为

"structD{inta;union{intb;doublec;};D*d⑵;},

则该类型的大小为字节。

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

以通过构造函数中的实现。

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

数为。

36.假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb

的写法为.

37.请完成下面的一个类的定义:

classABC{

private:

inta,b;

public:

ABC(intaa,intbb=5)

{

;//将aa的值赋给a

:〃将bb的值赋给b

)

1:

intABC::fA(){returna+b;)

intABC::tB(){returna*b;}

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

1.#include<iostream.h>

voidmain()

ints=0;

for(inti=l;;i++){

if(s>50)break;

if(i%2=0)s+=i;

1

cout«"i,s="«i«M,"«s«endl;

)

2.#include<iostream.h>

inta=5;

voidmain(){

inta=l0,b=20;

cout«a«M,,«b«endl;

{inta=0,b=0;

for(inti=l;i<6;i++){

a+=i;b+=a;

)

cout«a«""«b«n"«::a«endl;

1

cout«a«HH«b«endl;

1

3.#include<iostream.h>

voidSB(charch){

switch(ch){

case"A":case"a":

cout〈〈"well!”;break;

case"B":case"b":

cout«ngood!";break;

case"C":case"cn:

cout«"pass!n;break;

default:

cout«nnad!";break;

1

)

voidmain(){

charal="b,,,a2="C",a3=Hf";

SB(al);SB(a2);SB(a3);SB("A");

cout«endl;

)

4.#include<iostream.h>

voidmain()

(

chara[]="abcdabcabfgacd";

intiI=O,i2=O,i=O;

while(a[ij){

if(a[i]="a")il++:

if(a[i]="b")i2++;

i++;

)

cout«il«n"«i2«endl;

)

5.#include<iomanip.h>

voidmain()

{

inta[9]={2,4,6,8,10/2,14,16,18};

for(inti=0;i<9;i++){

cout«setw(5)«*(a+i);

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

)

}

6.#include<iomanip.h>

voidLE(int*a,int*b){

inix=*a;

*a=*b;*b=x;

cout«*a«n"«*b«endl;

I

voidmain()

(

intx=10,y=25;

LE(&x,&y);cout«x«""«y«endl;

)

7.#include<iostream.h>

#include<string.h>

voidmain(){

char*a[5]={"studentn,"worker","cadre","soldier"."peasant");

char*pl,*p2;

pl=p2=al0];

for(inti=0;i<5;i++){

if(strcmp(a[i],pl)>0)pl=a[i];

if(strcmp(a|i],p2)<0)p2=a[i|;

}

cout«pl«""«p2«endl;

}

8.#include<iomanip.h>

intLB(int*n){

ints=l;

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

s*=*a++;

returns;

)

voidmain(){

inta[]={1,2,3,4,5,67,8);

intb=LB(a,5)+LB(&a[3],3);

cout<<"b="«b«endl;

)

9.#include<iostream.h>

classA{

inta.b;

public:

A(){a=b=0;}

A(intaa,intbb){

a=aa;b=bb;

cout«a«"H«b«endl;

)

};

voidmain()

(

Ax,y(2,3),z(4,5);

)

10.#includev沁slream.h>

template<classTT>

classFF{

TTal,a2,a3;

public:

FF(TTbl,TTb2,TTb3){

al=bl;a2=b2;a3=b3;

)

TTSum(){returnai+a2+a3;}

};

voidmain()

(

FF<int>x(2,3,4),y(5,7,9);

cout«x.Sum()«n"«y.Sum()«endl;

)

11.#include<iostream.h>

#include<string.h>

structWorker(

charname[15];//姓名

intage;//年龄

floatpay;〃工资

};

voidmain(){

Workerx;

char*t=nliouting";

intd=38;floatf=493;

strcpy(,t);

x.age=d;x.pay=f;

cout«x.name«""«x.age«",'«x.pay«endl;

}

12.#include<iostream.h>

classA{

inta;

public:

A(intaa=O){a=aa;}

~A(){cout«"DestructorA!n«a«endl;}

};

classB:publicA{

intb;

public:

B(intaa=0,intbb=0):A(aa){b=bb;}

~B(){cout«"DestructorB!n«b«endl;}

};

voidmain(){

Bx(5),y(6,7);〃后定义的变量将先被释放

)

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

1.#include<iostream.h>

intSA(inta,intb){

if(a>b)return1;

elseif(a==b)return0;

elsereturn-1;

}

2.floatFI(intn){

〃n为大于等于1的整数

floatx,y=0;

do{

cin»x;

n--;y+=x*x;

}while(n>0);

returny;

3.doubleSF(doub!ex,intn)(

〃n为大于等于0的整数

doublep=l,s=l;

for(inti=l;i<=n;i++){

p*=x;

s+=p/(i+l);

)

returns;

}

4.floatFH(){

floatx,y=0,n=0;

cin»x;

while(x!=-l){

n++;y+=x;

cin»x;

)

if(n==0)returny;elsereturny/n;

)

5.#include<iostream.h>

voidWA(inla[],intn){

温馨提示

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

评论

0/150

提交评论