2023年专升本C++考试A卷_第1页
2023年专升本C++考试A卷_第2页
2023年专升本C++考试A卷_第3页
2023年专升本C++考试A卷_第4页
2023年专升本C++考试A卷_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上海电机学院2023年专升本《C++程序设计》考试试卷A卷一、选择题(每题1分,共25分)1.编写C++程序一般需通过的几个环节依次是()。A.编译、编辑、连接、调试B.编辑、编译、连接、调试C.编译、调试、编辑、连接D.编辑、调试、编辑、连接2.可用作C++语言用户标记符的一组标记符是()。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2adosizeof3.设”inta=12;”,则执行完语句”a+=a*a;”后,a的值是()。A.12B.144C.156D.2884.x>0||y==5的相反表达式为()。A.x<=0&&y!=5B.x<=0||y!=5C.x>0||y!=5D.x>0&&y==55.在下面循环语句中循环体执行的次数为()。for(inti=0;i<n;i++)if(i>n/2)break;A.n/2B.n/2+1C.n/2-1D.n-16.switch语句可以改写为()语句。A.forB.ifC.doD.while7.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为()。A.0B.4C.8D.68.函数重载是指()。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.x.a16.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为()。A.abcB.*thisC.thisD.this&17.结构中定义的成员默认为()访问属性。A.publicB.privateC.protectedD.friend18.假定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.a.operator+(b)B.b.operator+(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.若采用x.abc(y)表达式调用一个成员函数,在成员函数中使用的__*this______就代表了类外的x对象。16.假定AB为一个类,则类定义体中的“AB(AB&x);”语句为该类______________的原型语句。17.在重载一个单目运算符时,参数表中没有参数,说明该运算符函数只能是类的_____________。18.派生类的成员函数可以直接访问基类的成员,不能直接访问基类的______成员。19.引进虚基类的主线目的是为了消除____________。20.设有如下定义:#include<iostream.h>classA1{inta1;protected:intb1;public:voidshow1(){cout<<”classA1”<<endl;}};classA2:publicA1{inta2;protected:intb2;public:voidshow2(){cout<<”classA2”<<endl;}};voidmain(){A1obj1;A2obj2;…}派生类A2的成员函数show2()中可以访问的成员涉及a1、b2、、。1.阅读下面的程序,写出输出结果#include<iostream.h>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<<s0<<'\t'<<s1<<'\t'<<s2<<endl;}2.阅读下面的程序,写出输出结果#include<iomanip.h>voidfun(int*&a,int&m){a=newint[m];ﻩint*p=a;for(inti=0;i<m;i++)*p++=i*i+1;}voidmain(){int*b,n=5;fun(b,n);for(inti=0;i<n;i++) cout<<b[i]<<’‘;cout<<endl;delete[]b;}3.阅读下面的程序,写出输出结果#include<iostream.h>intfun(intn){inta=1;staticintb=1;a=a+1;b=b*n;returna*b;}voidmain(){inti;for(i=1;i<5;i++) cout<<fun(i)<<endl;}4.阅读下面的程序,写出输出结果#include<iostream.h>classAA{intn;ﻩﻩﻩﻩﻩﻩ ﻩpublic:AA(inti){n=i;cout<<"调用类AA构造函数n:"<<n<<endl;}~AA(){cout<<"删除类AA"<<endl;}};classBB ﻩ ﻩ {intn;public:BB(intj){n=j;cout<<"调用类BB构造函数n:"<<j<<endl;}~BB(){cout<<"删除类BB"<<endl;}};classCC:publicBB,publicAA {public:ﻩCC(inta,intb,intc):AA(a),BB(b),n(c){cout<<"调用类CC构造函数n:"<<n<<endl;}~CC(){cout<<"删除类CC"<<endl;}private://派生类的私有对象成员intn;};voidmain(){CCobj(10,20,30);}四.改正错误(每题有几处错误,在错误处画线,并写出对的语句。)(每题3分,共9分)1.下列程序是输出设1-100之间素数,并且每行只输出5个数。#include<iostream.h>#include<math.h>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<<i<<'\t'; k++;ﻩif(k%5==0)cout<<endl;ﻩ}cout<<endl;}2.定义计数器类Counter。规定具有以下成员:计数器值;可进行增值和减值记数;可提供记数值。#include<iostream.h>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<<t.n<<endl;}};voidmain(){Countera(0);a.in_Counter();a.init_Counter(10);a.show();//show(a)a.de_Counter();cout<<a.get_Counter()<<endl;}3.用函数重载运算符,使对整形的运算符+、-合用于整数运算。#include<iostream.h>classFranction{intnume;//定义分子intdeno;//定义分母public:Franction(inta=1,intb=1)ﻩ{nume=a;deno=b;} friendFranctionoperator+(constFranction&x1,constFranction&x2)ﻩ{intc,d;ﻩc=x1.nume*x2.deno+x2.nume*x1.deno;ﻩd=x1.deno*x2.deno; returnFranction(c,d); }ﻩfriendFranctionoperator-(constFranction&x1,constFranction&x2)ﻩ{intc,d; c=x1.nume*x2.deno-x2.nume*x1.deno; d=x1.deno*x2.deno; returnFranction(c,d); } voidFranOutput() {cout<<nume<<'/'<<deno<<endl;}};voidmain(){Franctionc1(1,3),c2(1,4),c3,c4;cout<<"c1=";c1.FranOutput();cout<<"c2=";c2.FranOutput();ﻩc3=c1+c2;ﻩcout<<"c1+c2=";c3.FranOutput(); c4=c1-c2;ﻩcout<<"c1-c2=";c4.FranOutput();}五.程序填空(每空1.5分,共12分)1.求组合数值,如。n!/(n-m)!*m!#include<iostream.h>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("<<m<<","<<n<<")="<<c<<endl;}}intfun(intn){intp=1;inti;for(i=2;i<=n;i++)ﻩp*=i;returnp;}2.从建立的数据文献f1.dat中读入10个整数放在数组中,找出并输出10个数中的最大者和它在数组中的序号。#include<fstream>#include<iostream>usingnamespacestd;intmain(){inta[10

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论