专升本C考试A卷.docx
- 文档编号:6165065
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:11
- 大小:23.73KB
专升本C考试A卷.docx
《专升本C考试A卷.docx》由会员分享,可在线阅读,更多相关《专升本C考试A卷.docx(11页珍藏版)》请在冰豆网上搜索。
专升本C考试A卷
Preparedon21November2021
专升本C考试A卷
上海电机学院2011年专升本《C++程序设计》考试试卷A卷
一、选择题(每题1分,共25分)
1.编写C++程序一般需经过的几个步骤依次是()。
A.编译、编辑、连接、调试B.编辑、编译、连接、调试
C.编译、调试、编辑、连接D.编辑、调试、编辑、连接
2.可用作C++语言用户标识符的一组标识符是()。
A.voiddefine+WORDB.a3_b3_123YN
C.for-abcCaseD.2adosizeof
3.设”inta=12;”,则执行完语句”a+=a*a;”后,a的值是()。
A.12B.144C.156D.288
4.x>0||y==5的相反表达式为()。
A.x<=0&&y!
=5B.x<=0||y!
=5
C.x>0||y!
=5D.x>0&&y==5
5.在下面循环语句中循环体执行的次数为()。
for(inti=0;i if(i>n/2)break; A.n/2B.n/2+1C.n/2-1D.n-1 6.switch语句能够改写为()语句。 A.forB.ifC.doD.while 7.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为()。 A.0B.4C.8D.6 8.函数重载是指()。 A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C.两个以上的函数名字不同,但形参的个数或类型相同 D.两个以上的函数取相同的函数名,并且函数的返回类型相同 9.若用数组名作为函数调用的实参,传递给形参的是()。 A.数组的首地址B.数组中第一个元素的值 C.数组全部元素的值D.数组元素的个数 10.将两个字符串连接起来组成一个字符串时,选用()函数。 A.strlen()B.strcap()C.strcat()D.strcmp() 11.C++语言的编译系统对宏命令的处理是()。 A.在程序运行时进行 B.在程序连接时进行 C.和C++程序的其它语句同时进行编译 D.在对源程序中其它成分正式编译之前进行 12.在下面存储类中,()的对象不是局部变量。 A.函数形参B.自动类C.外部静态类D.寄存器类 13.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为()。 A.int*p=newint[30];B.int*p=newint(30); C.int*p=new[30];D.*p=newint[30]; 14.关于封装,下列说法中不正确的是()。 A.通过封装,对象的全部属性和操作结合在一起,形成一个整体 B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见) C.通过封装,每个对象都成为相对独立的实体 D.通过封装,对象的属性都是不可见的 15.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为()。 A.x(a)B.x[a]C.x->aD. 16.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为()。 A.abcB.*thisC.thisD.this& 17.结构中定义的成员默认为()访问属性。 A.publicB.privateC.protectedD.friend 18.假定AB为一个类,则执行“ABr1=r2;”语句时将自动调用该类的()。 A.无参构造函数B.带参构造函数 C.赋值重载函数D.复制构造函数 19.一个类的静态数据成员所表示属性()。 A.是类的或对象的属性B.只是对象的属性 C.只是类的属性D.类和友元的属性 20.当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的()。 A.只能是公有成员B.只能是保护成员 C.只能是除私有成员之外的任何成员D.具有任何权限的成员 21.如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为()。 A.+(b)B.+(a) C.operator+(a,b)D.operator(a+b) 22.从一个基类派生出的各个类的对象之间()。 A.共享所有数据成员,每个对象还包含基类的所有属性 B.共享部分数据成员,每个对象还包含基类的所有属性 C.不共享任何数据成员,但每个对象还包含基类的所有属性 D.共享部分数据成员和函数成员 23.对于公有继承,基类的公有和保护成员在派生类中将()成员。 A.全部变成公有B.全部变成保护 C.全部变成私有D.仍然相应保持为公有和保护 24.C++中的虚基类机制可以保证: ()。 A.限定基类只通过一条路径派生出派生类 B.当一个类多次间接从基类派生以后,其基类只被一次继承 C.当一个类多次间接从基类派生以后,派生类对象能保留多份间接基类的成员 D.允许基类通过多条路径派生出派生类,派生类也就能多次继承该基类 25.派生类的对象对其基类中()可直接访问。 A.公有继承的私有成员B.公有继承的公有成员 C.公有继承的保护成员D.私有继承的公有成员 二、填空题(25%) 1.用于从键盘上为变量输入值的标准输入流对象是________。 2.程序文件的编译错误分为________和________两类。 3.十进制常数245对应的八进制的C++表示为_0_________。 4.字符串”This\’sabook.\n”的长度为__________。 5.数学算式 的C++表达式为________________。 6.若while循环的“头”为“while(i++<=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。 7.strlen(”apple”)的值为_______,strcmp(”a”,”A”)的值为________。 8.在C++语言中,一个函数由函数头和__________组成。 9.全局变量和静态局部变量具有静态生存期,存放在内存的____________区中。 10.假定p所指对象的值为25,p+1所指对象的值为42,则*p++的值为________。 11.执行int*p=newint操作得到的一个动态分配的整型对象为__*p______。 12.以面向对象方法构造的系统,其基本单位是__________。 13.C++支持两种多态性: _________时的多态性和__________时的多态性。 14.为了使类中的成员不能被类外的函数通过成员操作符访问,则应把该成员的访问权限定义为________。 15.若采用(y)表达式调用一个成员函数,在成员函数中使用的__*this______就代表了类外的x对象。 16.假定AB为一个类,则类定义体中的“AB(AB&x);”语句为该类______________的原型语句。 17.在重载一个单目运算符时,参数表中没有参数,说明该运算符函数只能是类的_____________。 18.派生类的成员函数可以直接访问基类的成员,不能直接访问基类的______成员。 19.引进虚基类的根本目的是为了消除____________。 20.设有如下定义: #include<> classA1 {inta1; protected: intb1; public: voidshow1(){cout<<”classA1”< }; classA2: publicA1 {inta2; protected: intb2; public: voidshow2(){cout<<”classA2”< }; voidmain() {A1obj1; A2obj2; … } 派生类A2的成员函数show2()中可以访问的成员包括a1、b2、、。 1.阅读下面的程序,写出输出结果 #include<> inta[8]={6,11,13,4,12,7,16,15}; voidmain() {ints0,s1,s2; s0=s1=s2=0; for(inti=0;i<8;i++){ switch(a[i]%3){ case0: s0+=a[i];break; case1: s1+=a[i];break; case2: s2+=a[i];break; } } cout< } 2.阅读下面的程序,写出输出结果 #include<> voidfun(int*&a,int&m) {a=newint[m]; int*p=a; for(inti=0;i *p++=i*i+1; } voidmain() {int*b,n=5; fun(b,n); for(inti=0;i cout< cout< delete[]b; } 3.阅读下面的程序,写出输出结果 #include<> intfun(intn) {inta=1; staticintb=1; a=a+1; b=b*n; returna*b; } voidmain() {inti; for(i=1;i<5;i++) cout< } 4.阅读下面的程序,写出输出结果 #include<> classAA {intn; public: AA(inti){n=i;cout<<"调用类AA构造函数n: "< ~AA(){cout<<"删除类AA"< }; classBB {intn; public: BB(intj){n=j;cout<<"调用类BB构造函数n: "< ~BB(){cout<<"删除类BB"< }; classCC: publicBB,publicAA { public: CC(inta,intb,intc): AA(a),BB(b),n(c) {cout<<"调用类CC构造函数n: "< ~CC(){cout<<"删除类CC"< private: 下列程序是输出设1-100之间素数,并且每行只输出5个数。 #include<> #include<> voidmain() {inti,j,t,k=0; inta[101]; for(i=1;i<=100;i++) a[i]=1; a[1]=0;i=2; while(i<=100) {for(j=i*i;j<=100;j=j+i) a[j]=0; i++; } cout<<"\n"; for(i=2;i<=100;i++) if(a[i]==1) {cout< k++; if(k%5==0)cout< } cout< } 2.定义计数器类Counter。 要求具有以下成员: 计数器值;可进行增值和减值记数;可提供记数值。 #include<> classCounter {intn; public: Counter(inti=0) {n=i;} voidinit_Counter(intm){n=m;} voidin_Counter(){n++;} voidde_Counter(){n--;} intget_Counter(){returnn;} friendvoidshow(Countert){cout<<< }; voidmain() {Countera(0); (); (10); ();用函数重载运算符,使对整形的运算符+、-适用于整数运算。 #include<> classFranction{ intnume;序填空(每空分,共12分) 1.求组合数 值,如 。 n! /(n-m)! *m! #include<> intfun(intn); voidmain() {intc,n,m; cin>>n>>m; if(m>n)cout<<"输入数据错误。 \n"; else{c=fun(n)/(fun(n-m)*fun(m)); cout<<"c("< } intfun(intn) {intp=1; inti; for(i=2;i<=n;i++) p*=i; returnp; } 2.从建立的数据文件中读入10个整数放在数组中,找出并输出10个数中的最大者和它在数组中的序号。 #include #include usingnamespacestd; intmain() {inta[10],max,i,order; fstreaminfile("",ios: : in); if(! infile) {cerr<<"openerror!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考试