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

上传人:b****2 文档编号:3315070 上传时间:2023-05-05 格式:DOCX 页数:40 大小:33.52KB
下载 相关 举报
C语言程序设计A期末模拟试题14.docx_第1页
第1页 / 共40页
C语言程序设计A期末模拟试题14.docx_第2页
第2页 / 共40页
C语言程序设计A期末模拟试题14.docx_第3页
第3页 / 共40页
C语言程序设计A期末模拟试题14.docx_第4页
第4页 / 共40页
C语言程序设计A期末模拟试题14.docx_第5页
第5页 / 共40页
C语言程序设计A期末模拟试题14.docx_第6页
第6页 / 共40页
C语言程序设计A期末模拟试题14.docx_第7页
第7页 / 共40页
C语言程序设计A期末模拟试题14.docx_第8页
第8页 / 共40页
C语言程序设计A期末模拟试题14.docx_第9页
第9页 / 共40页
C语言程序设计A期末模拟试题14.docx_第10页
第10页 / 共40页
C语言程序设计A期末模拟试题14.docx_第11页
第11页 / 共40页
C语言程序设计A期末模拟试题14.docx_第12页
第12页 / 共40页
C语言程序设计A期末模拟试题14.docx_第13页
第13页 / 共40页
C语言程序设计A期末模拟试题14.docx_第14页
第14页 / 共40页
C语言程序设计A期末模拟试题14.docx_第15页
第15页 / 共40页
C语言程序设计A期末模拟试题14.docx_第16页
第16页 / 共40页
C语言程序设计A期末模拟试题14.docx_第17页
第17页 / 共40页
C语言程序设计A期末模拟试题14.docx_第18页
第18页 / 共40页
C语言程序设计A期末模拟试题14.docx_第19页
第19页 / 共40页
C语言程序设计A期末模拟试题14.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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

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

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

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

A.cppB.exeC.objD.lik

2.x>0&&x<=10的相反表达式为()。

A.x<=0||x>10B.x<=0&&x>10

C.x<=0||x<=10D.x>0&&x>10

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

(C)

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

C.inta[];D.inta[5];

4.假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加(C)。

A.1B.4C.sizeof(double)D.sizeof(p)

5.当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是(B)。

A.直接按系统设定的标准方式搜索目录

B.先在源程序所在目录搜索,再按系统设定的标准方式搜索目录

C.仅仅搜索源程序所在目录

D.搜索当前逻辑盘上的所有目录

6.假定指针变量p定义为“int*p=newint(100);”,要释放p所指向的动态内存,应使用语句(A)。

A.deletep;B.delete*p;C.delete&p;D.delete[]p;

7.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为()。

A.px(a)B.px[a]C.px->aD.px.a

8.栈具有()的操作特性。

A.先进先出B.先进后出C.进出无序D.进出任意

9.对于任一个类,用户所能定义的构造函数的个数至多为()。

A.0B.1C.2D.任意个

10.下列对派生类的描述中错误的说法是:

()。

A.派生类至少有一个基类

B.派生类可作为另一个派生类的基类

C.派生类除了包含它直接定义的成员外,还包含其基类的成员

D.派生类所继承的基类成员的访问权限保持不变

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

1.C++语言是在_________语言的基础上发展起来的。

2.当执行cin语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。

3.假定x是一个逻辑量,则x&&false的值为__________。

4.元素类型为char的二维数组a[10][30]共占用________字节的存储空间。

5.局部变量具有局部生存期,存放在内存的______栈______区中。

6.已知语句“cout<

”,则语句“cout<<*p;”输出的是__________。

7.对类中常量成员的初始化是通过在构造函数中给出的______________来实现的。

8.在重载一个单目运算符时,参数表中没有参数,说明该运算符函数只能是类的_____________。

9.假定用户为类AB定义了一个构造函数“AB(intaa):

a(aa){}”,则定义该类的对象时,有________种定义格式。

10.在每个成员函数中,隐含的第一个参数的参数名为________。

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

每小题6分,共24分)

1.斐波那契数列的第1和第2个数分别为0和1,从第三个数开始,每个数等于其前两个数之和。

求斐波那契数列中的前20个数,要求每行输出5个数。

#include

voidmain(){

intf,f1,f2,i;

cout<<”斐波那契数列:

\n”;

f1=0;f2=1;

cout<

for(i=3;i<=20;i++){

f=______

(1)______;

cout<

if(_____

(2)______)cout<

f1=f2;

f2=____(3)_______;

}

cout<

}

(1)

(2)(3)

2.对数组a[n]按升序进行的选择排序算法

voidSelectSort(inta[],___

(1)___)

{

inti,j,k;

for(i=1;i

k=i-1;

for(j=i;j

if(a[j]

(2)___;

intx=a[i-1];a[i-1]=a[k];___(3)___;

}

}

(1)

(2)(3)

3.已知一个类的定义如下:

#include

classAA{

inta[10];

intn;

public:

voidSetA(intaa[],intnn);//用数组aa初始化数据成员a,

//用nn初始化数据成员n

intMaxA();//从数组a中前n个元素中查找最大值

voidSortA();//采用选择排序的方法对数组a中前n个元素

//进行从小到大排序

voidInsertA();//采用插入排序的方法对数组a中前n个元素进行从小到大排序

voidPrintA();//依次输出数组a中的前n个元素

};

该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。

int____

(1)_____

{

intx=a[0];

for(inti=1;i

if(a[i]>x)___

(2)___;

___(3)___;

}

(1)

(2)(3)

4.classA{

inta;

public:

A(){a=0;}

___

(1)___{}//定义构造函数,用参数aa初始化数据成员a

};

main(){

___

(2)___;//定义类A的指针对象p

___(3)__;//用p指向动态对象并初始化为整数5

}

(1)

(2)(3)

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

每小题6分,共24分)

1.#include

#include

voidmain()

{

inta[8]={25,48,32,85,64,18,48,29};

intmax,min;

max=min=a[0];

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

if(x>a[i])max=a[i];

if(x

}

cout<<"max:

"<

cout<<"min:

"<

}

2.#include

voidmain()

{

for(inti=1,s=0;i<20;i++){

if(i%2==0||i%3==0)continue;

cout<

s+=i;

}

cout<

}

3.voidtrans(intx)

{

chara[10];

inti=0,rem;

do{

rem=x%16;

x=x/16;

if(rem<10)a[i]=48+rem;//’0’字符的ASCII码为48

elsea[i]=55+rem;//’A’字符的ASCII码为65

i++;

}while(x!

=0);

while(i>0)cout<

cout<

}

4.char*f(char*s){

intn=strlen(s);

char*r=newchar[n+1];

for(inti=0;i

if(s[i]>='a'&&s[i]<='z')r[i]=s[i]-'a'+'A';

elser[i]=s[i];

r[n]=’\0’;

returnr;

}

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

1.求出从键盘上输入的10个整数中的最大值,要求输入变量用x表示,存储最大值的变量用max表示。

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

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*Reverse();//对于调用该函数的对象,将其a数组中前n个

//元素值按相反的次序排列,返回指向该对象的指针。

};

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

参考答案

一、单选题

1.B2.A3.C4.B5.C6.A7.C8.B9.D10.D

二、填空题

1.C2.空白3.false(或0)4.3005.栈6.H7.初始化表

8.成员函数9.110.this

三、程序填充题

1.

(1)f1+f2

(2)i%5==0(3)f

2.

(1)intn

(2)k=j(3)a[k]=x

3.

(1)AA:

:

MaxA()

(2)x=a[i](3)returnx

4.

(1)A(intaa):

a(aa)

(2)A*p(3)p=newA(5)

四、理解问答题

1.

max:

85

min:

18

2.

157111337

3.

此函数用于把十进制整数x转换为十六进制数字串输出

4.

根据参数s所指向的字符串,生成一个由r所指向的新字符串并返回,该字符串使s字符串中的小写字母均变为大写。

五、编程题

1.#include

voidmain()

{

intx,max;

cin>>x;

max=x;

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

cin>>x;

if(x>max)max=x;

}

cout<<"max:

"<

}

2.

AA*AA:

:

Reverse()

{

inti,x;

for(i=0;i

x=a[i];a[i]=a[n-1-i];a[n-1-i]=x;

}

returnthis;

}

 

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

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

1.编写C++程序一般需经过的几个步骤依次是()。

A.编译、编辑、连接、调试

B.编辑、编译、连接、调试

C.编译、调试、编辑、连接

D.编辑、调试、编辑、连接

2.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为(A)。

A.0B.4C.8D.6

3.函数重载是指(A)。

A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同

B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同

C.两个以上的函数名字不同,但形参的个数或类型相同

D.两个以上的函数取相同的函数名,并且函数的返回类型相同

4.假定p指向的字符串为”string”,若要输出这个字符串的地址值,则使用(D)。

A.cout<<*s;B.cout<

5.在类作用域中能够通过直接使用该类的()成员名进行访问。

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

6.假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为()。

A.aB.AA:

:

aC.a()D.AA:

:

a()

7.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾(即最后一个)元素的位置为()。

A.length+1B.first+length

C.(first+length-1)%MSD.(first+length)%MS

8.假定AB为一个类,则执行“ABr1=r2;”语句时将自动调用该类的()。

A.无参构造函数B.带参构造函数C.赋值重载函数D.拷贝构造函数

9.双目运算符重载为普通函数时,其参数表中应带有()个参数。

A.0B.1C.2D.3

10.当派生类中有和基类一样名字的成员时,一般来说,()。

A.将产生二义性B.派生类的同名成员将覆盖基类的成员

C.是不能允许的D.基类的同名成员将覆盖派生类的成员

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

1.行尾使用注释的开始标记符为__________。

2.设enumPrintstatus{ready=2,busy,error};则cout<

3.重载一个函数的条件是:

该函数必须在参数的个数或参数的___类型_上与其它同名函数有所不同。

4.定义一个函数模板要用到的第一个修饰符是_template_。

5.与结构成员访问表达式p->name等价的表达式是____________。

6.如果一个派生类的基类不止一个,则这种继承称为____________。

7.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则插入一个新元素的位置为__________。

8.向一个队列中插入元素就是把该元素放到________元素的后一位置上。

9.假定用户只为类AB定义了一个构造函数“AB():

a(0),b(0){}”,则定义该类对象x的定义语句“ABx;”是_________(正确/错误)的。

10.除了__________运算符外,其他重载的运算符都可以被派生类继承。

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

每小题6分,共24分)

1.统计字符串中英文字母个数的程序。

#include

intcount(charstr[]);

voidmain(){

chars1[80];

cout<<”Enteraline:

”;

cin>>s1;

cout<<”count=”<

}

intcount(charstr[]){

intnum=0;//给统计变量赋初值

for(inti=0;str[i];i++)

if(str[i]>=’a’&&str[i]<=’z’||___

(1)___)

___

(2)___;

___(3)___;

}

(1)

(2)(3)

2.从键盘上输入一个正整数,然后把它转换成的二进制数的每一位存放到一维数组中,最后输出该二进制数。

注意二进制数的存放是按照从低位到高位的次序进行的。

#include

voidmain()

{

intx;

cout<<"输入一个整数:

";

cin>>x;

inta[20],k=0,r;

do{

r=x%2;

a[k++]=r;

x=___

(1)___;

}while(___

(2)___);

for(--k;k>=0;k--)___(3)___;

cout<

}

(1)

(2)(3)

3.假定有定义为“structNODE{intdata;NODE*next;};”,下面算法根据table数组中的n个元素建立一个表头指针为L的链表,链表中结点值的顺序与数组元素值的顺序正好相反。

voidf6(NODE*&L,inttable[],intn)

{

L=NULL;

if(n<=0)return;

inti=0;

NODE*p;

while(___

(1)___){

p=newNODE;

p->data=___

(2)___;

p->next=L;

___(3)___;

i++;

}

}

(1)

(2)(3)

4.已知一个利用数组实现栈的类定义如下:

constintARRAY_SIZE=10;

classStack{

public:

voidInit(){top=-1;}//初始化栈为空

voidPush(intnewElem);//向栈中压入一个元素

intPop();//从栈顶弹出一个元素

boolEmpty(){//判栈空

if(top==-1)returntrue;elsereturnfalse;}

intDepth(){returntop+1;}//返回栈的深度

voidPrint();

//按照后进先出原则依次输出栈中每个元素,直到栈空为止

private:

intelem[ARRAY_SIZE];//用于保存堆栈元素的数组

inttop;//指明栈顶元素位置的指针

};

该类的Pop和Print函数的实现分别如下:

___

(1)___{

if(top==-1){

cout<<"栈空!

"<

exit

(1);//中止运行

}

return___

(2)___;

}

voidStack:

:

Print(){

while(!

Empty())

cout<<___(3)___<<'';

}

(1)

(2)(3)

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

每小题6分,共24分)

1.#include

constintN=5;

voidmain()

{

inti,p=1,s=0;

for(i=1;i

p=p*i;

s=s+p;

cout<

cout<

}

}

2.#include

#include

classCD{

char*a;

intb;

public:

voidInit(char*aa,intbb)

{

a=newchar[strlen(aa)+1];

strcpy(a,aa);

b=bb;

}

char*Geta(){returna;}

intGetb(){returnb;}

voidOutput(){cout<

};

voidmain()

{

CDdx,dy;

chara[20];

dx.Init("abcdef",30);

strcpy(a,dx.Geta());

strcat(a,"xyz");

dy.Init(a,dx.Getb()+20);

dx.Output();

dy.Output();

}

3.#include

#include

#include

voidmain()

{

inti=10,a;

while(i>0){

a=rand()%100+10;

intj,k=int(sqrt(a)+1e-5);//sqrt(x)为求x的平方根函数

for(j=2;j<=k;j++)

if(a%j==0)break;

if(j>k){cout<

}

}

 

4.intf8(constchar*str1,constchar*str2)

{

inti=0;

while(str1[i]&&str2[i])

if(str1[i]==str2[i])i++;

elseif(str1[i]>str2[i])return1;

elsereturn-1;

if(str1[i]==str2[i])return0;

elseif(str1[i]>str2[i])return1;

elsereturn-1;

}

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

1.按照下面函数原型语句编写一个函数,返回二维数组a[m][n]中所有元素的平均值,假定采用变量v存放平均值。

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

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

}

intMaxMin(int&x,int&y);//从数组a的前n个元素中求出

//最大值和最小值,并分别由引用参数x和y带回,

//同时若n大于0则返回1,否则返回0。

};

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

参考答案

三、单选题

1.B2.A3.A4.D5.B6.A7.C8.D9.C10.B

四、填空题

1.//2.33.类型4.template5.(*p).name6.多继承

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2