您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计A期末模拟试题(1-4)
C语言程序设计A期末模拟试题(1-4)1/14C语言程序设计A期末模拟试题一一、单项选择题(每小题2分,共20分)1.由C++目标文件连接而成的可执行文件的缺省扩展名为()。A.cppB.exeC.objD.lik2.x0&&x=10的相反表达式为()。A.x=0||x10B.x=0&&x10C.x=0||x=10D.x0&&x103.在下面的一维数组定义中,哪一个有语法错误。(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.a8.栈具有()的操作特性。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.已知语句“coutp;”的输出是“Hello!”,则语句“cout*p;”输出的是__________。7.对类中常量成员的初始化是通过在构造函数中给出的______________来实现的。8.在重载一个单目运算符时,参数表中没有参数,说明该运算符函数只能是类的_____________。9.假定用户为类AB定义了一个构造函数“AB(intaa):a(aa){}”,则定义该类的对象时,有________种定义格式。10.在每个成员函数中,隐含的第一个参数的参数名为________。三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面。每小题6分,共24分)1.斐波那契数列的第1和第2个数分别为0和1,从第三个数开始,每个数等于其前两个数之和。求斐波那契数列中的前20个数,要求每行输出5个数。#includeiostream.hvoidmain(){intf,f1,f2,i;cout”斐波那契数列:\n”;f1=0;f2=1;coutsetw(6)f1setw(6)f2;for(i=3;i=20;i++){f=______(1)______;coutsetw(6)f;if(_____(2)______)coutendl;f1=f2;f2=____(3)_______;}coutendl;}(1)(2)(3)2.对数组a[n]按升序进行的选择排序算法voidSelectSort(inta[],___(1)___)C语言程序设计A期末模拟试题(1-4)2/14{inti,j,k;for(i=1;in;i++){//进行n-1次选择和交换k=i-1;for(j=i;jn;j++)if(a[j]a[k])___(2)___;intx=a[i-1];a[i-1]=a[k];___(3)___;}}(1)(2)(3)3.已知一个类的定义如下:#includeiostream.hclassAA{inta[10];intn;public:voidSetA(intaa[],intnn);//用数组aa初始化数据成员a,//用nn初始化数据成员nintMaxA();//从数组a中前n个元素中查找最大值voidSortA();//采用选择排序的方法对数组a中前n个元素//进行从小到大排序voidInsertA();//采用插入排序的方法对数组a中前n个元素进行从小到大排序voidPrintA();//依次输出数组a中的前n个元素};该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。int____(1)_____{intx=a[0];for(inti=1;in;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.#includeiostream.h#includestdlib.hvoidmain(){inta[8]={25,48,32,85,64,18,48,29};intmax,min;max=min=a[0];for(inti=0;i8;i++){if(xa[i])max=a[i];if(xa[i])min=a[i];}coutmax:maxendl;coutmin:minendl;}2.#includeiostream.hvoidmain(){for(inti=1,s=0;i20;i++){if(i%2==0||i%3==0)continue;couti’’;s+=i;}coutsendl;}3.voidtrans(intx){chara[10];inti=0,rem;do{C语言程序设计A期末模拟试题(1-4)3/14rem=x%16;x=x/16;if(rem10)a[i]=48+rem;//’0’字符的ASCII码为48elsea[i]=55+rem;//’A’字符的ASCII码为65i++;}while(x!=0);while(i0)couta[i];coutendl;}4.char*f(char*s){intn=strlen(s);char*r=newchar[n+1];for(inti=0;in;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(nnms){coutError!endl;exit(1);}MS=ms;n=nn;a=newint[MS];for(inti=0;iMS;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)f2.(1)intn(2)k=j(3)a[k]=x3.(1)AA::MaxA()(2)x=a[i](3)returnx4.(1)A(intaa):a(aa)(2)A*p(3)p=newA(5)四、理解问答题1.max:85min:182.1571113373.此函数用于把十进制整数x转换为十六进制数字串输出4.根据参数s所指向的字符串,生成一个由r所指向的新字符串并返回,该字符串使s字符串中的小写字母均变为大写。五、编程题1.#includeiostream.hvoidmain(){intx,max;cinx;max=x;for(inti=0;i9;i++){cinx;C语言程序设计A期末模拟试题(1-4)4/14if(xmax)max=x;}coutmax:maxendl;}2.AA*AA::Reverse(){inti,x;for(i=0;in/2;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.63.函数重载是指(A)。A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C.两个以上的函数名字不同,但形参的个数或类型相同D.两个以上的函数取相同的函数名,并且函数的返回类型相同4.假定p指向的字符串为”string”,若要输出这个字符串的地址值,则使用(D)。A.cout*s;B.couts;C.cout&s;D.cout(void*)s;5.在类作用域中能够通过直接使用该类的()成员名进行访问。A.私有B.公用C.保护D.任何6.假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为()。A.aB.AA::aC.a()D.AA::a()7.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾(即最后一个)元素的位置为()。A.length+1B.first+lengthC.(first+length-1)%MSD.(first+length)%MS8.假定AB为一个类,则执行“ABr1=r2;”语句时将自动调用该类的()。A.无参构造函数B.带参构造函数C.赋值重载函数D.拷贝构造函数9.双目运算符重载为普通函数时,其参数表中应带有()个参数。A.0B.1C.2D.310.当派生类中有和基类一样名字的成员时,一般来说,()。A.将产生二义性B.派生类的同名成员将覆盖基类的成员C.是不能允许的D.基类的同名成员将覆盖派生类的成员二、填空题(每题2分,共20分)1.行尾使用注释的开始标记符为__________。2.设enumPrintstatus{ready=2,busy,error};则coutbusy的输出结果是________。3.重载一个函数的条件是:该函数必须在参数的个数或参数的___类型_上与其
本文标题:C语言程序设计A期末模拟试题(1-4)
链接地址:https://www.777doc.com/doc-7026085 .html