C语言程序设计A期末模拟试题三.docx

上传人:b****5 文档编号:7308597 上传时间:2023-01-22 格式:DOCX 页数:9 大小:18.71KB
下载 相关 举报
C语言程序设计A期末模拟试题三.docx_第1页
第1页 / 共9页
C语言程序设计A期末模拟试题三.docx_第2页
第2页 / 共9页
C语言程序设计A期末模拟试题三.docx_第3页
第3页 / 共9页
C语言程序设计A期末模拟试题三.docx_第4页
第4页 / 共9页
C语言程序设计A期末模拟试题三.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

C语言程序设计A期末模拟试题三.docx

《C语言程序设计A期末模拟试题三.docx》由会员分享,可在线阅读,更多相关《C语言程序设计A期末模拟试题三.docx(9页珍藏版)》请在冰豆网上搜索。

C语言程序设计A期末模拟试题三.docx

C语言程序设计A期末模拟试题三

C语言程序设计A期末模拟试题三

一、单项选择题(每小题2分,共20分)

1.C++程序的基本模块为()。

A.表达式B.标识符C.语句D.函数

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

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

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

3.函数调用不可以(D)。

A.出现在一个表达式中

B.出现在执行语句中

C.作为一个函数的实参

D.作为一个函数的形参

4.假定变量m定义为“intm=7;”,则定义变量p的正确语句为(B)。

A.intp=&m;B.int*p=&m;C.int&p=*m;D.int*p=m;

5.假定有“structBOOK{chartitle[40];floatprice;};BOOK*book;”,则不正确的语句为(A)。

A.BOOK*x=newbook;B.BOOKx={"C++Programming",27.0};

C.BOOK*x=newBOOK;D.BOOK*x=book;

6.假定变量x定义为“intx=5;”,要使rx成为x的引用(别名),rx应定义为(D)。

A.intrx=x;B.intrx=&x;C.int*rx=&x;D.int&rx=x;

7.面向对象方法的多态性是指()。

A.一个类可以派生出多个特殊类

B.一个对象在不同的运行环境中可以有不同的变体

C.针对一消息,不同的对象可以以适合自身的方式加以响应

D.一个对象可以是由多个其他对象组合而成的

8.面向对象软件开发中使用的OOD表示()。

A.面向对象分析B.面向对象设计

C.面向对象语言D.面向对象方法

9.在关键字private后面定义的成员为类的()成员。

A.私有B.公用C.保护D.任何

10.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为()。

A.intAA:

:

a()B.intAA:

a()

C.AA:

:

a()D.AA:

:

inta()

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

1.C++语言的编译单位是扩展名为_CPP__的_____程序_____文件。

2.C++常数0345对应的十进制值为__________。

3.假定x是一个逻辑量,则!

x||false的值为__________。

4.若a是一个字符数组,则从键盘上向该数组输入一个字符串的表达式为____cin>>a____。

5.当定义一个结构体变量时,系统分配给该变量的内存大小等于各成员所需内存大小的____总和___。

6.若p指向x,则____*p____与x的表示是等价的。

7.已知语句“cout<

8.若采用p->abc(y)表达式调用一个成员函数,在成员函数中使用的________就代表了类外的p指针。

9.重载插入运算符<<或抽取运算符>>时,其运算符函数不能被定义为类的________函数。

10.在一个或若干个类的基础上构造一个新类,被称为___________。

三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面。

每小题6分,共24分)

1.把从键盘上输入的一个大于等于3的整数分解为质因子的乘积。

如输入24时得到的输出结果为“2223”,输入50时得到的输出结果为“255”,输入37时得到的输出结果为“37”。

#include

voidmain()

{

intx;

cout<<"请输入一个整数,若小于3则重输:

";

docin>>x;while(___

(1)___);

inti=2;

do{

while(___

(2)___){

cout<

x/=i;

}

___(3)___;

}while(i

if(x!

=1)cout<

cout<

}

(1)

(2)(3)

2.主函数调用一个fun函数将字符串逆序。

#include

#include

___

(1)___;

voidmain(){

chars[80];

cin>>s;

___

(2)___;

cout<<”逆序后的字符串:

”<

}

voidfun(charss[]){

intn=strlen(ss);

for(inti=0;___(3)____;i++){

charc=ss[i];

ss[i]=ss[n–1–i];

ss[n–1–i]=c;

}

}

(1)

(2)(3)

3.已知一维数组类ARRAY的定义如下,构造函数的作用是把参数n的值赋给s,给v动态分配长度为n的数组空间,接着利用数组参数a初始化v所指向的数组。

classARRAY{

int*v;//指向存放数组数据的空间

ints;//数组大小

public:

ARRAY(inta[],intn);

~ARRAY(){delete[]v;}

intsize(){returns;}

int&operator[](intn);

};

___

(1)___ARRAY(inta[],intn)

{

if(n<=0){v=NULL;s=0;return;}

s=n;

v=___

(2)___;

for(inti=0;i

}

(1)

(2)(3)

4.#include

#include

classA{

int*a;intn;intMaxLen;

public:

A():

a(0),n(0),MaxLen(0){}

A(int*aa,intnn,intMM){

n=nn;

MaxLen=MM;

if(n>MaxLen)exit

(1);

___

(1)___;//由a指向长度为MaxLen的动态数组

for(inti=0;i

}

~A(){delete[]a;}

intGetValue(inti)___

(2)___//函数体返回a[i]的值

};

voidmain()

{

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

Ar(b,10,10);

inti,s=0;

for(i=0;i<10;i++);___(3)___//把r对象的a数据成员中的每个

//元素值依次累加到s中

cout<<"s="<

}

(1)

(2)(3)

四、理解问答题(写出前两小题的程序运行结果和指出后两小题的程序(或函数)所实现的功能。

每小题6分,共24分)

1.#include

voidmain()

{

inta=2,b=5,c=0;

if(a+b>10)c=a*b;elsec=3*a+b;

if(c<=20)cout<

cout<

a=a+b;b=a+b;c+=a+b;

cout<<"a,b,c="<

}

2.#include

#include

voidmain(){

chara[5][10]={"student","worker","soldier","cadre","peasant"};

chars1[10],s2[10];

strcpy(s1,a[0]);strcpy(s2,a[0]);

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

if(strcmp(a[i],s1)>0)strcpy(s1,a[i]);

if(strcmp(a[i],s2)<0)strcpy(s2,a[i]);

}

cout<

}

3.#include

#include

voidmain()

{

intx,y;

cin>>x;

y=int(sqrt(x));//sqrt(x)为求x的算术平方根

for(inti=1;i<=y;i++)

if(x%i==0)cout<<”x=”<

}

4.IntNode*FindMax(IntNode*f)

{

if(!

f)returnNULL;

IntNode*p=f;

f=f->next;

while(f){

if(f->data>p->data)p=f;

f=f->next;

}

returnp;

}

假定IntNode的类型定义为:

structIntNode{

intdata;//结点值域

IntNode*next;//结点指针域

};

五、编程题(每小题6分,共12分)

1.计算1+3+32+...+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。

 

2.根据下面类中Reverse1函数成员的原型和注释写出它的类外定义。

classAA{

int*a;

intn;

intMS;

public:

voidInitAA(intaa[],intnn,intms){

if(nn>ms){cout<<"Error!

"<

(1);}

MS=ms;

n=nn;

a=newint[MS];

for(inti=0;i

}

AA*Reverse1();//通过动态存储分配得到一个对象,并动态分配

//a[MS]数组空间,要求该对象中的n和MS的值与*this中的

//对应成员的值相同,数组元素的值是按照*this中数组元

//素的相反次序排列得到的,要求该函数返回动态对象的地址。

};

C语言程序设计A期末模拟试题三

参考答案

一、单选题

1.D2.A3.D4.B5.A6.D7.C8.B9.A10.A

二、填空题

1.cpp、程序2.2293.!

x4.cin>>a5.总和6.*p

7.ple8.this9.成员10.继承(派生)

三、程序填充题

1.

(1)x<3(或x<=2)

(2)x%i==0(3)i++

2.

(1)voidfun(charss[])

(2)fun(s)(3)i

3.

(1)ARRAY:

:

(2)newint[n](3)v[i]=a[i]

4.

(1)a=newint[MaxLen]

(2){returna[i];}(3)s+=r.GetValue(i)

四、理解问答题

1.

121

a,b,c=7,12,30

2.

workercadre

3.把从键盘上输入的一个整数x分解为所有可能的每两个因子之积。

4.实现strcat函数的功能,把str2所指字符串连接到str1所指字符串的后面,并返回str1指针。

五、编程题

1.#include

voidmain()

{

inti;//用i作为循环变量

intp=1;//用p作为累乘变量

ints=1;//用s作为累加循环变量

for(i=1;i<=10;i++){p*=3;s+=p;}

cout<

}

 

2.

AA*AA:

:

Reverse1()

{

AA*px=newAA;

px->n=n;px->MS=MS;

px->a=newint[MS];

for(inti=0;i

px->a[n-1-i]=a[i];

}

returnpx;

}

 

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

当前位置:首页 > 工程科技 > 环境科学食品科学

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

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