C++程序设计-模拟题答案 中国地质大学2022年12月_第1页
C++程序设计-模拟题答案 中国地质大学2022年12月_第2页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

《C++程序设计》模拟题一、单项选择题1.下列为合法的c++常量的是().A.'105'B.'Be'C."x-y"D.07ff[参考答案选择为]:C2.表达式18/4*sqrt(4.0)/8值的数据类型为().A.intB.floatC.doubleD.不确定[参考答案选择为]:C3.以下语句中无法正确赋值的是().A.charb[10]={'H','e','l','l','o','!'}B.charb[10];b="Hello!"C.char*b;b="Hello!"D.charb[10]="Hello!"[参考答案选择为]:B4.以下程序的输出结果是().#include<iostream.h>voidmain(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<3;j++){if(j%2)continue;x++;}x++;}cout<<x<<endl;}A.4B.8C.6D.12[参考答案选择为]:B5.设有定义:unsignedop=2,则与语句op<<=1等价的语句为().A.op*=2B.op/=2C.op*=4D.op/=4[参考答案选择为]:A6.c++语言源程序文件的扩展名是().A."cpp"B."obj"C."exe"D."c++"[参考答案选择为]:A7.c++语言程序中可以对程序进行注释,注释部分必须用符合()括起来.A."{"和"}"B."["和"]"C."(*"和"*)"D."/*"和"*/"[参考答案选择为]:D8.已知字符'b'的ascII码为98,执行printf("%d,%c",'b','b'+1);语句后输出为().A.98,bB.语句不合法C.98,99D.98,c[参考答案选择为]:D9.以下各项中,为非法常量数值的是().A.11B.18C.0xabcdD.5L[参考答案选择为]:B10.下列程序运行后,输出结果是().#include<iostream.h>voidmain(){inti=0,j=0,a=6;if((++i>0)||(++j>0))a++;cout<<"i="<<i<<",j="<<j<<",a="<<a<<endl;}A.i=0,j=0,a=6B.i=1,j=1,a=7C.i=1,j=0,a=7D.i=0,j=1,a=7[参考答案选择为]:C11.表达式-1?(0?0:-1):(10?10:1)的值为().A.10B.1C.0D.-1[参考答案选择为]:D12.以下关于函数的叙述正确的是().A.函数中必须要有return语句B.函数中可以有多个return语句,但只有一个被执行C.return语句中必须有一个表达式D.函数中定义的变量不能与其它函数中的变量同名[参考答案选择为]:B13.若有以下的定义和语句,则值为5的表达式是().inta[]={1,2,3,4,5,6,7,8,9,10};A.a[5]B.a[a[4]]C.a[a[3]]D.a[a[5]][参考答案选择为]:C14.设有以下结构体定义,则以下能输出字符串"grape"的语句为().structww{intno;charname[10];}cc[4]={1,"apple",2,"banana",3,"grape",4,"orange"};A.cout<<cc[2]&name[0]<<endlB.cout<<cc[2]name[0]<<endlC.cout<<cc[2]&name<<endlD.cout<<cc[2]name<<endl[参考答案选择为]:D15.下面程序段的输出结果是().charp1[10]="abc",p2[]="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));cout<<str<<endl;A.xyabcABCB.ZabcABCC.YzabcABCD.xyzabcABC[参考答案选择为]:A16.以下选项中不正确的实型常量是().A.2.3B.0.23C.1E3.6D.2.3[参考答案选择为]:C17.若a,b都是int类型变量,()不是正确的赋值语句.A.a=b=60B.a=30C.a=1,3D.b=0[参考答案选择为]:C18.下列各语句定义了数组,()是不正确的.A.inta[1][3]B.intx[2][2]={1,2,3,4}C.intx[2][]={1,2,4,6}D.intm[][3]={1,2,3,4,5,6}[参考答案选择为]:C19.a,b均为double型变量,且a=5.5,b=2.5,则(int)a+b/b的值是().A.6.5B.6C.5.5D.6[参考答案选择为]:D20.以下各标识符中,正确的标识符是().A.a-bB.123_C._123D.signed[参考答案选择为]:C21.以下不能用作标识符的是().A._26B.coutC.caseD.Double[参考答案选择为]:C22.满足x为奇数时值为真,x为偶数时值为假的表达式是().A.!(x%2==1)B.x%2==0C.x%2D.!(x%2)[参考答案选择为]:C23.在定义int*p[3];中,标识符p().A.是一个指向整型变量的指针B.是一个指针数组,包含3个指向整型数据的指针变量C.是一个函数指针,可以指向返回值类型为int型的函数D.是一个指针变量,它可以指向一个具有三个元素的一维数组[参考答案选择为]:B24.以下程序的输出结果是().charss[16]="test\0abc\n\t";cout<<strlen(ss)<<’,’<<sizeof(ss)<<endl;A.4,16B.11,16C.11,11D.4,11[参考答案选择为]:A25.以下程序段的输出结果为().unionu{char*name;intage;intincome;}s;="WangLing";s.age=28;s.income=1000;cout<<s.age<<endl;A.28B.1000C.0D.WangLing[参考答案选择为]:B26.在c++语言程序中,用关键字()定义无符号型变量.A.unsignedB.floatC.doubleD.char[参考答案选择为]:A27.以下语句不正确的语句是().A.if(x>y)1+2B.if(x=y)&&(x!=0)x+=yC.if(x!=y)cin>>x;elsecin>>yD.if(x<y){x++;y++;}[参考答案选择为]:B28.若变量已正确定义且k的值是4,计算表达式(j=k--)后,()是正确的.A.j=4,k=4B.j=4,k=3C.j=3,k=4D.j=3,k=3[参考答案选择为]:B29.以下叙述中不正确的是().A.在函数中,通过return语句传回函数值B.在函数中,可以有多条return语句C.在c++中,主函数main后的一对圆括号中可以带行参D.在c++中,调用函数,必须在一条独立的语句中完成[参考答案选择为]:D30.x为整型变量,执行语句x=(x=5,x*4,x+5)>10?20:(x+5);后,x的值为().A.10B.20C.25D.30[参考答案选择为]:A二、问答题1.标识符的命名规则是什么?[参考答案选择为]:由字母,数字,下划线组成(2分),第一个字符只能是字母或下划线(2分).2.在C++语言中,重载有哪几种方式?[参考答案选择为]:函数重载和运算符重载3.说明在派生类定义中,基类前public,private,protected是什么意思?[参考答案选择为]:不同的继承方式,导致不同访问属性的基类成员在派生类中的访问属性也有所不同:(1)public公有继承,使得基类公有和保护成员的访问属性在派生类中不变,而基类私有成员不可访问.(2)private私有继承,使得基类公有和保护成员都以私有成员身份出现在派生类中,而基类私有成员不可访问.(3)protected保护继承,基类公有和保护成员都以保护成员身份出现在派生类中,而基类私有成员不可访问.4.#include<iostream.h>voidmain(){intn=3,r(1);do{r*=n;n--;}while(n>=1);cout<<r<<endl;}[参考答案选择为]:65.#include<iostream.h>classCPoint{public:CPoint(intxx=0,intyy=0){X=xx;Y=yy;countP++;}~CPoint(){countP--;}voidGetC(){cout<<"countP="<<countP<<endl;}private:intX,Y;staticintcountP;};intCPoint::countP=0;voidmain(){CPointA(4,5),B;A.GetC();{CPointC(1,2);C.GetC();}B.GetC();}[参考答案选择为]:countP=2countP=3countP=26.#include<iostream.h>voidmain(){intn,r(1);for(n=4;n>=1;n--)r*=n;cout<<r<<endl;}[参考答案选择为]:247.#include<iostream.h>template<typenameT,typenameP>classCPlus{public:CPlus(Tm1,Pn1){m=m1;n=n1;}Pplus();Tm;Pn;};template<typenameT,typenameP>PCPlus<T,P>::plus(){Ps;s=(P)(m+n);return(s);}voidmain(){CPlus<double,int>a(12.345,6);cout<<"a="<<a.plus()<<endl;CPlus<int,float>b(14,2.56f);cout<<"b="<<b.plus()<<endl;}[参考答案选择为]:a=18b=16.568.如果下面程序输入5,输出是什么?#include<iostream.h>voidmain(){intn,r(1);cin>>n;while(n>=1){r*=n;n--;}cout<<r<<endl;}[参考答案选择为]:1209.class类类型中,拷贝构造函数应具有哪些特征?[参考答案选择为]:拷贝构造函数的特点如下:(1)该函数名与类名相同,因为它也是一种构造函数,并且该函数也不被指定返回类型;(1分)(2)该函数只有一个参数,并且是对同类的某个对象的引用;(1分)(3)每个类都必须有一个拷贝构造函数;(1分)(4)在新建对象时,对对象进行初始化时调用,对象之间赋值不调用.(1分)10.C++语言标准数据类型(即已有的)有哪些?[参考答案选择为]:char,int,short,long,float,double,bool,void.11.类定义体中,有些函数之前有关键字virtual的意义是什么?[参考答案选择为]:该函数为虚拟函数,指定为动态绑定方式.运行时该函数才与调用函数进行绑定.12.#include<iostream.h>intchange(intx,int&y,int&z,int*dp){z=x--+--y;*dp=x-y--;return(x+y);}voidmain(){inta=4,b=4,c=4,d=4;a=change(a,b,c,&d);cout<<a<<','<<b<<','<<c<<','<<d<<endl;}[参考答案选择为]:5,2,7,013.#include<iostream.h>voidmain(){inti,n=6,r(1);for(i=1;i<=n;i++)r*=i;cout<<r<<endl;}[参考答案选择为]:72014.#include<iostream.h>intchange(intx,int&y,int&z,int*dp){z=x--+--y;*dp=x-y--;return(x+y);}voidmain(){inta=8,b=8,c=8,d=8;a=change(a,b,c,&d);cout<<a<<','<<b<<','<<c<<','<<d<<endl;}[参考答案选择为]:13,6,15,015.#include<iostream.h>classCPoint{private:intX,Y;public:CPoint(inti,intj){X=i;Y=j;}virtualintArea(){return0;}};classCRectangle:publicCPoint{private:intW,H;public:CRectangle(inti,intj,intk,intl):CPoint(i,j){W=k;H=l;}intArea(){returnW*H;}};voidfun(CPoint&s){cout<<"Area="<<s.Area()<<endl;}voidmain(){CRectangler(2,3,6,8);fun(r);}[参考答案选择为]:Area=4816.#include<iostream.h>intfun(intn){intr;if(n==1||n==2)r=1;elser=fun(n-1)+fun(n-2);returnr;}voidmain(){cout<<fun(6)<<endl;}[参考答案选择为]:817.什么叫类?什么叫对象?[参考答案选择为]:类是封装了数据和方法的一种抽象数据类型(2分).对象是类的一个实例(2分).18.在C++语言中,请说明结构体和联合体的异同点.[参考答案选择为]:结构体数据类型的变量可以同时存储int,long,char和double型等已有数据类型的数据,这些数据使用不同的存储空间,而联合体虽然表面上可以存储int,long,char或double等已有数据类型的数据,但它们共享其占用空间最多的成员所分配的存储空间,对某个成员赋值将影响其它成员的数值.19.函数之间的参数传递的形式有哪几种?[参考答案选择为]:传值传递方式,地址传递方式,引用方式.20.#include<iostream.h>classB{public:B(inti){cout<<"constructingB"<<i<<endl;}};classC:publicB{public:C(inta,intb,intc):B(a),memberB(b){cout<<"constructingC"<<c<<endl;}private:BmemberB;};voidmain(){Cobj(1,2,3);}[参考答案选择为]:constructingB1constructingB2constructingC321.#include<iostream.h>classCPoint{private:intX,Y;public:CPoint(inti,intj){X=i;Y=j;}virtualintArea(){return0;}};classCTriangle:publicCPoint{private:intW,H;public:CTriangle(inti,intj,intk,intl):CPoint(i,j){W=k;H=l;}intArea(){returnW*H/2;}};voidfun(CPoint&s){cout<<"Area="<<s.Area()<<endl;}voidmain(){CTriangler(9,8,7,6);fun(r);}[参考答案选择为]:Area=2122.#include<iostream.h>classmyclass{private:inta,b;staticint

温馨提示

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

评论

0/150

提交评论