C语言程序设计A期末模拟试题14docx.docx
- 文档编号:26111776
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:43
- 大小:67.15KB
C语言程序设计A期末模拟试题14docx.docx
《C语言程序设计A期末模拟试题14docx.docx》由会员分享,可在线阅读,更多相关《C语言程序设计A期末模拟试题14docx.docx(43页珍藏版)》请在冰豆网上搜索。
C语言程序设计A期末模拟试题14docx
C语言程序设计A期末模拟试题一
一、单项选择题(每小题2分,共20分)
1.由C++目标文件连接而成的可执行文件的缺省扩展名为()。
A.CPPB.exeC.ObjD.
Iik
2.x>0&&x<=10的相反表达式为()。
A.x<=0Ilx>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.当#“Clude后面的文件名用双引号括起来时,寻找
被包含文件的方式是(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->a
D.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(int
aa):
a(aa){}”,则定义该类的对象时,有种定
义格式。
10.在每个成员函数中,隐含的第一个参数的参数
名为。
三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面。
每小题6分,共24分)
1.斐波那契数列的第1和第2个数分别为0和1,从第三个数开始,每个数等于其前两个数之和。
求斐波那契数列中的前20个数,要求每行输出5个数。
#inClUdeVioStream.h>
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]按升序进行的选择排序算法 voidSeIeCtSort(inta[], (1)) { inti,j,k; for(i=1;i 和交换 k=i-1; for(j=i;j if(a[j] intx=a[i-1];a[i-1]=a[k]; —(3)—; } } (1) ⑶ 3.已知一个类的定义如下: #inClUdeVioStream.h> classAA{ inta[10]; intn; public: voidSetA(intaa[],intnn);// 化数据成员a, 用数组aa初始 用nn初始化数 进行从小到大排序 voidInSertA();//采用插入排序的方法对数组a 中前n个元素进行从小到大排序 voidPrintA();//依次输出数组a中的前n个元素 }; 该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。 int (1) { intx=a[0]; for(inti=1;i if(a[i]>x)— (2)—; —(3)—; } (1) ⑶ 4.classA{ inta; public: A(){a=0;} — (1)—{}//定义构造函数,用参数aa初 始化数据成员a }; main(){ —⑵—;//定义类A的指针对象P —(3)__;//用P指向动态对象并初始化为 整数5 } (1) (2)⑶ 四、理解问答题(写出前两小题的程序运行结果和指 出后两小题的程序(或函数)所实现的功能。 每小题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: "< "< } 2.#include voidmain() { for(inti=1,s=0;i<20;i++){ if(i%2==0Ili%3==0)continue;cout< s+=i; } cout< } 3.voidtrans(intx) { Chara[10]; inti=0,rem; do{ 2. 1.求出从键盘上输入的10个整数中的最大值,要求 max: 85 输入变量用X表示,存储最大值的变量用 max表示。 min: 18 根据下面类中ReVerSe函数成员的原型和注释写 出它的类外定义。 classAA{ int*a; intn; intMS; public: voidInitAA(intaa[],intnn,intms){if(nn>ms){cout<<"Error! "< exit (1);} MS=ms; n=nn; a=newint[MS]; for(inti=0;i } AA*ReVerSe();//对于调用该函数的对象,将其a 数组中前n个 //元素值按相反的次序排列,返回指向该对 象的指针。 }; 2. 157111337 3. 此函数用于把十进制整数X转换为十六进制数字串输出 4. 根据参数S所指向的字符串,生成一个由r所指向的 新字符串并返回,该字符串使S字符串中的小写字母均 变为大写。 五、编程题 1.#include { 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; } A.aB.AA: : aC.a()D. AA: : a() 7. 在一个用数组实现的队列类中,假定数组长度 Iength,则 为MS队首元素位置为first,队列长度为队尾(即最后一个)元素的位置为()。 A.Iength+1 first+length C.(first+length-1)%MS (first+length)%MS 8.假定AB为一个类,则执行“ABr1=r2;”句时将自动调用该类的()。 A.无参构造函数B.带参构造函数C.值重载函数D.拷贝构造函数 9.双目运算符重载为普通函数时,其参数表中应 带有()个参数。 B. D. A.0B.1C.2D.3 C 语言程序设计 A期末模拟试题二 10.当派生类中有和基类一样名字的成员时, 「般 一、单项选择题(每小题 2分,共20分) 来说,()。 1.编写 C++程序一般 需经过的几个步骤依次是 A.将产生二义性B. 派生类 ()。 的冋名成员将覆盖基类的成员 A. 编译、编辑、 连接、调试 C.是不能允许的D. 基类的 B. 编辑、编译、 连接、调试 冋名成员将覆盖派生类的成员 C. 编译、调试、 编辑、连接 二、填空题(每题2分,共20分) D. 编辑、调试、 编辑、连接 1.行尾使用注释的开始标记符为 。 2.假定 一个二维数组的定义语句为“int 2.设enumPrintstatus{ready=2,busy,error}; a[3][4]={{3,4},{2,8,6}}; ”,则兀素a[2][1]的值为 则cout< 1.统计字符串中英文字母个数的程序。 #ineludeVioStream.h> intcount(Charstr[]); voidmain(){ Chars1[80]; cout<<”Enteraline: ”; Cin>>s1; cout<<”CoUnt=”< } intcount(charstr[]){ intnum=0;//给统计变量赋初值 for(inti=O;str[i];i++) if(str[i]>='a'&&str[i]<='z' Il— (1)—) — (2)—; —(3)—; } { L=NULL;if(n<=O)return; inti=0; NODE*p; while(___ (1)—){ P=newNODE;p->data= (2) p->next=L; —(3)—;i++; } } (1) ⑶ 4.已知一个利用数组实现栈的类定义如下: 初始化栈为空 向栈中压入一个 从栈顶弹出一个元 true;elsereturn 返回栈的深度 (1) ⑶ 2.从键盘上输入一个正整数,然后把它转换成的二进制数的每一位存放到一维数组中,最后输出该二进制数。 注意二进制数的存放是按照从低位到高位的次序进行的。 #include voidmain() {int兀cout<<"输入一个整数: "; cin>>x; inta[20],k=0,r; do{ r=x%2;a[k++]=r;X=— (1)—; }while(—⑵—);for(--k;k>=0;k--)⑶; cout< } (1) (2)⑶ 3.假定有定义为“StrUCtNODE{intdata;NODE*next;};”,下面算法根据table数组中的n个元素建立一个表头指针为L的链表,链表中结点值的顺序与数组元素值的顺序正好相反。 voidf6(N0DE*&L,inttable[],intn) ConStintARRAY_SIZE=10;classStaCk{public: voidInit(){top=-1;}// voidPush(intnewElem);// intPop();// 素 boolEmPty(){//判栈空if(top==-1)return false;} 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)⑶ 四、理解问答题(写出前两小题的程序运行结果和指出后两小题的程序(或函数)所实现的功能。 每小题6 分,共24分) 1.#include ConStintN=5; voidmain() { inti,p=1,s=0;for(i=1;i s=s+p; 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.lnit(a,dx.Getb()+20); dx.0utput(); 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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 期末 模拟 试题 14 docx