电大C语言程序设计A期末模拟试题14 参考Word文档格式.docx
《电大C语言程序设计A期末模拟试题14 参考Word文档格式.docx》由会员分享,可在线阅读,更多相关《电大C语言程序设计A期末模拟试题14 参考Word文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
false的值为__________。
元素类型为char的二维数组a[10][30]共占用________字节的存储空间。
局部变量具有局部生存期,存放在内存的______栈______区中。
已知语句“coutp;
”的输出是“Hello!
”,则语句“cout*p;
”输出的是__________。
对类中常量成员的初始化是通过在构造函数中给出的______________来实现的。
在重载一个单目运算符时,参数表中没有参数,说明该运算符函数只能是类的_____________。
假定用户为类AB定义了一个构造函数“ABintaa:
aaa”,则定义该类的对象时,有________种定义格式。
在每个成员函数中,隐含的第一个参数的参数名为________。
三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面。
每小题6分,共24分)
1.斐波那契数列的第1和第2个数分别为0和1,从第三个数开始,每个数等于其前两个数之和。
求斐波那契数列中的前20个数,要求每行输出5个数。
#include
voidmain
intf,f1,f2,i;
cout”斐波那契数列:
\n”;
f10;
f21;
coutsetw6f1setw6f2;
fori3;
i20;
i++
f______1______;
coutsetw6f;
if_____2______coutendl;
f1f2;
f2____3_______;
coutendl;
123
2.对数组a[n]按升序进行的选择排序算法
voidSelectSortinta[],___1___
inti,j,k;
fori1;
in;
i++//进行n-1次选择和交换
ki-1;
forji;
jn;
j++
ifa[j]a[k]___2___;
intxa[i-1];
a[i-1]a[k];
___3___;
123
3.已知一个类的定义如下:
classAA
inta[10];
intn;
public:
voidSetAintaa[],intnn;
//用数组aa初始化数据成员a,
//用nn初始化数据成员n
intA;
//从数组a中前n个元素中查找最大值
voidSortA;
//采用选择排序的方法对数组a中前n个元素
//进行从小到大排序
voidInsertA;
//采用插入排序的方法对数组a中前n个元素进行从小到大排序
voidPrintA;
//依次输出数组a中的前n个元素
;
该类中A函数的实现如下,请在标号位置补充适当的内容。
int____1_____
intxa[0];
forinti1;
in;
i++
ifa[i]x___2___;
___3___;
123
4.classA
inta;
Aa0;
___1___//定义构造函数,用参数aa初始化数据成员a
main
___2___;
//定义类A的指针对象p
___3__;
//用p指向动态对象并初始化为整数5
四、理解问答题(写出前两小题的程序运行结果和指出后两小题的程序(或函数)所实现的功能。
1#include
voidmain
inta[8]25,48,32,85,64,18,48,29;
int,min;
mina[0];
forinti0;
i8;
ifxa[i]a[i];
ifxa[i]mina[i];
cout"
:
"
endl;
min:
minendl;
2.#include
forinti1,s0;
ifi%20||i%30continue;
couti’’;
s+i;
coutsendl;
3voidtransintx
chara[10];
inti0,rem;
do
remx%16;
xx/16;
ifrem10a[i]48+rem;
//’0’字符的ASCII码为48
elsea[i]55+rem;
//’A’字符的ASCII码为65
i++;
whilex!
0;
whilei0couta[?
?
i];
4.char*fchar*s
intnstrlens;
char*rnewchar[n+1];
i++
ifs[i]'
a'
&
s[i]'
z'
r[i]s[i]-'
+'
A'
;
elser[i]s[i];
r[n]’\0’;
returnr;
五、编程题(每小题6分,共12分)
1.求出从键盘上输入的10个整数中的最大值,要求输入变量用x表示,存储最大值的变量用表示。
2.根据下面类中Reverse函数成员的原型和注释写出它的类外定义。
int*a;
intMS;
voidInitAAintaa[],intnn,intms
ifnnmscout"
Error!
exit1;
MSms;
nnn;
anewint[MS];
iMS;
i++a[i]aa[i];
AA*Reverse;
//对于调用该函数的对象,将其a数组中前n个
//元素值按相反的次序排列,返回指向该对象的指针。
参考答案
单选题
1.B2.A3.C4.B5.C6.A7.C8.B9.D10.D
填空题
1.C2.空白3.false或04.3005.栈6.H7.初始化表
8.成员函数9.110.this
三、程序填充题
1.1f1+f22i%503f
2.1intn2kj3a[k]x
3.1AA:
A2xa[i]3returnx
4.1Aintaa:
aaa2A*p3pnewA5
四、理解问答题
1:
85
min:
18
2157111337
3.
此函数用于把十进制整数x转换为十六进制数字串输出
4.
根据参数s所指向的字符串,生成一个由r所指向的新字符串并返回,该字符串使s字符串中的小写字母均变为大写。
五、编程题
1.#include
intx,;
cinx;
x;
i9;
ifxx;
2.
AA*AA:
Reverse
inti,x;
fori0;
in/2;
xa[i];
a[i]a[n-1-i];
a[n-1-i]x;
returnthis;
C语言程序设计A期末模拟试题二
编写C++程序一般需经过的几个步骤依次是。
A.编译、编辑、连接、调试
B.编辑、编译、连接、调试
C.编译、调试、编辑、连接
D.编辑、调试、编辑、连接
假定一个二维数组的定义语句为“inta[3][4]3,4,2,8,6;
”,则元素a[2][1]的值为(A)。
A.0B.4C.8D.6
函数重载是指(A)。
A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
C.两个以上的函数名字不同,但形参的个数或类型相同
D.两个以上的函数取相同的函数名,并且函数的返回类型相同
假定p指向的字符串为”string”,若要输出这个字符串的地址值,则使用(D)。
A.cout*s;
B.couts;
C.cout&
s;
D.coutvoid*s;
在类作用域中能够通过直接使用该类的()成员名进行访问。
A.私有B.公用C.保护D.任何
假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为()。
A.aB.AA:
aC.aD.AA:
a
在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾(即最后一个)元素的位置为。
A.length+1B.first+length
C.first+length-1%MSD.first+length%MS
假定AB为一个类,则执行“ABr1r2;
”语句时将自动调用该类的。
A.无参构造函数B.带参构造函数C.赋值重载函数D.拷贝构造函数
双目运算符重载为普通函数时,其参数表中应带有()个参数。
A.0B.1C.2D.3
当派生类中有和基类一样名字的成员时,一般来说,()。
A.将产生二义性B.派生类的同名成员将覆盖基类的成员
C.是不能允许的D.基类的同名成员将覆盖派生类的成员
行尾使用注释的开始标记符为__________。
设enumPrintstatusready2,busy,error;
则coutbusy的输出结果是________。
重载一个函数的条件是:
该函数必须在参数的个数或参数的___类型_上与其它同名函数有所不同。
定义一个函数模板要用到的第一个修饰符是_template_。
与结构成员访问表达式p-name等价的表达式是____________。
如果一个派生类的基类不止一个,则这种继承称为____________。
在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则插入一个新元素的位置为__________。
向一个队列中插入元素就是把该元素放到________元素的后一位置上。
假定用户只为类AB定义了一个构造函数“AB:
a0,b0”,则定义该类对象x的定义语句“ABx;
”是_________正确/错误的。
除了__________运算符外,其他重载的运算符都可以被派生类继承。
三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面。
1.统计字符串中英文字母个数的程序。
#include
intcountcharstr[];
chars1[80];
cout”Enteraline:
”;
cins1;
cout”count”counts1endl;
intcountcharstr[]
intnum0;
//给统计变量赋初值
str[i];
i++
ifstr[i]’a’&
str[i]’z’||___1___
123
2.从键盘上输入一个正整数,然后把它转换成的二进制数的每一位存放到一维数组中,最后输出该二进制数。
注意二进制数的存放是按照从低位到高位的次序进行的。
intx;
输入一个整数:
inta[20],k0,r;
rx%2;
a[k++]r;
x___1___;
while___2___;
for--k;
k0;
k--___3___;
3.假定有定义为“structNODEintdata;
NODE*next;
”,下面算法根据table数组中的n个元素建立一个表头指针为L的链表,链表中结点值的顺序与数组元素值的顺序正好相反。
voidf6NODE*&
L,inttable[],intn
LNULL;
ifn0return;
inti0;
NODE*p;
while___1___
pnewNODE;
p-data___2___;
p-nextL;
123
4.已知一个利用数组实现栈的类定义如下:
constintARRAY_SIZE10;
classStack
voidInittop-1;
//初始化栈为空
voidPushintnewElem;
//向栈中压入一个元素
intPop;
//从栈顶弹出一个元素
boolEmpty//判栈空
iftop-1returntrue;
elsereturnfalse;
intDepthreturntop+1;
//返回栈的深度
voidPrint;
//按照后进先出原则依次输出栈中每个元素,直到栈空为止
private:
intelem[ARRAY_SIZE];
//用于保存堆栈元素的数组
inttop;
//指明栈顶元素位置的指针
该类的Pop和Print函数的实现分别如下:
___1___
iftop-1
栈空!
//中止运行
return___2___;
voidStack:
Print
while!
Empty
cout___3___'
'
123
constintN5;
inti,p1,s0;
iN;
pp*i;
ss+p;
coutsetw5isetw5p;
coutsetw5sendl;
2.#include
classCD
char*a;
intb;
voidInitchar*aa,intbb
anewchar[strlenaa+1];
strcpya,aa;
bbb;
char*Getareturna;
intGetbreturnb;
voidOutputcouta'
bendl;
CDdx,dy;
chara[20];
dx.Init"
abcdef"
30;
strcpya,dx.Geta;
strcata,"
xyz"
dy.Inita,dx.Getb+20;
dx.Output;
dy.Output;
3.#include
inti10,a;
whilei0
arand%100+10;
intj,kintsqrta+1e-5;
//sqrtx为求x的平方根函数
forj2;
jk;
j++
ifa%j0break;
ifjkcouta'
i--;
4.intf8constchar*str1,constchar*str2
inti0;
whilestr1[i]&
str2[i]
ifstr1[i]str2[i]i++;
elseifstr1[i]str2[i]return1;
elsereturn-1;
ifstr1[i]str2[i]return0;
1.按照下面函数原型语句编写一个函数,返回二维数组a[m][n]中所有元素的平均值,假定采用变量v存放平均值。
2.根据下面类中Min函数成员的原型和注释写出它的类外定义。
intMinint&
x,int&
y;
//从数组a的前n个元素中求出
//最大值和最小值,并分别由引用参数x和y带回,
//同时若n大于0则返回1,否则返回0。
1.B2.A3.A4.D5.B6.A7.C8.D9.C10.B
1.//233.类型4.template5.*p.name6.多继承
7.first+length%MS8.队尾9.正确10.赋值
1.1str[i]’A’&
str[i]’Z’2num++3returnnum
2.1x/22x!
03couta[k]
3.1in2table[i]3Lp
4.1intStack:
Pop2elem[top--]3Pop
1
111
223
369
42433
2abcdef30
abcdefxyz50
3.随机产生出10个10至100之间的素数并显示出来。
4.实现strcmp函数的功能,比较两个字符串str1和str2的大小,若str1较大则返回1,若str2较大则返回-1,若两者相等则返回0。
1.doubleMeandoublea[M][N],intm,intn;
doubleMeandoublea[M][N],intm,intn
inti,j;
doublev0.0;
fori0;
im;
forj0;
jn;
v+a[i][j];
v/m*n;
returnv;
intAA:
Minint&
y
intmx,my;
mxmya[0];
ifa[i]mxmxa[i];
ifa[i]mymya[i];
xmx;
ymy;
ifn0return1;
elsereturn0;
C语言程序设计A期末模拟试题三
C++程序的基本模块为()。
A.表达式B.标识符C.语句D.函数
设x和y均为bool量,则x&
y为真的条件是。
A.它们均为真B.其中一个为真
C.它们均为假D.其中一个为假
函数调用不可以(D)。
A.出现在一个表达式中
B.出现在执行语句中
C.作为一个函数的实参
D.作为一个函数的形参
假定变量m定义为“intm7;
”,则定义变量p的正确语句为(B)。
Aintp&
m;
Bint*p&
Cint&
p*m;
Dint*pm;
假定有“structBOOKchartitle[40];
floa