C语言程序设计A期末模拟试题14Word文件下载.docx
《C语言程序设计A期末模拟试题14Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计A期末模拟试题14Word文件下载.docx(33页珍藏版)》请在冰豆网上搜索。
![C语言程序设计A期末模拟试题14Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-10/23/e4c69451-bb46-4e87-94f8-c03649187f58/e4c69451-bb46-4e87-94f8-c03649187f581.gif)
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<
<
”的输出是“Hello!
”,则语句“cout<
*p;
”输出的是__________。
7.对类中常量成员的初始化是通过在构造函数中给出的______________来实现的。
8.在重载一个单目运算符时,参数表中没有参数,说明该运算符函数只能是类的_____________。
9.假定用户为类AB定义了一个构造函数“AB(intaa):
a(aa){}”,则定义该类的对象时,有________种定义格式。
10.在每个成员函数中,隐含的第一个参数的参数名为________。
三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面。
每小题6分,共24分)
1.斐波那契数列的第1和第2个数分别为0和1,从第三个数开始,每个数等于其前两个数之和。
求斐波那契数列中的前20个数,要求每行输出5个数。
#include<
iostream.h>
voidmain(){
intf,f1,f2,i;
cout<
”斐波那契数列:
\n”;
f1=0;
f2=1;
cout<
setw(6)<
f1<
f2;
for(i=3;
i<
=20;
i++){
f=______
(1)______;
cout<
f;
if(_____
(2)______)cout<
endl;
f1=f2;
f2=____(3)_______;
}
cout<
(1)
(2)(3)
2.对数组a[n]按升序进行的选择排序算法
voidSelectSort(inta[],___
(1)___)
{
inti,j,k;
for(i=1;
n;
i++){//进行n-1次选择和交换
k=i-1;
for(j=i;
j<
j++)
if(a[j]<
a[k])___
(2)___;
intx=a[i-1];
a[i-1]=a[k];
___(3)___;
(1)
(2)(3)
3.已知一个类的定义如下:
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<
i++)
if(a[i]>
x)___
(2)___;
}
(1)
(2)(3)
4.classA{
inta;
public:
A(){a=0;
___
(1)___{}//定义构造函数,用参数aa初始化数据成员a
};
main(){
___
(2)___;
//定义类A的指针对象p
___(3)__;
//用p指向动态对象并初始化为整数5
四、理解问答题(写出前两小题的程序运行结果和指出后两小题的程序(或函数)所实现的功能。
1.#include<
#include<
stdlib.h>
voidmain()
inta[8]={25,48,32,85,64,18,48,29};
intmax,min;
max=min=a[0];
for(inti=0;
8;
i++){
if(x>
a[i])max=a[i];
if(x<
a[i])min=a[i];
}
"
max:
max<
min:
min<
2.#include<
for(inti=1,s=0;
20;
if(i%2==0||i%3==0)continue;
’’;
s+=i;
s<
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<
a[i];
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'
;
elser[i]=s[i];
r[n]=’\0’;
returnr;
五、编程题(每小题6分,共12分)
1.求出从键盘上输入的10个整数中的最大值,要求输入变量用x表示,存储最大值的变量用max表示。
2.根据下面类中Reverse函数成员的原型和注释写出它的类外定义。
int*a;
intMS;
voidInitAA(intaa[],intnn,intms){
if(nn>
ms){cout<
Error!
exit
(1);
MS=ms;
n=nn;
a=newint[MS];
MS;
i++)a[i]=aa[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.
85
18
2.
157111337
3.
此函数用于把十进制整数x转换为十六进制数字串输出
4.
根据参数s所指向的字符串,生成一个由r所指向的新字符串并返回,该字符串使s字符串中的小写字母均变为大写。
五、编程题
1.#include<
voidmain()
intx,max;
cin>
>
x;
max=x;
9;
cin>
if(x>
max)max=x;
2.
AA*AA:
Reverse()
inti,x;
for(i=0;
n/2;
x=a[i];
a[i]=a[n-1-i];
a[n-1-i]=x;
returnthis;
C语言程序设计A期末模拟试题二
1.编写C++程序一般需经过的几个步骤依次