您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > C++模考试卷1(含答案解析)
C++模考试卷1(含答案解析)一、单选题(总分:20.0,共20题)1.(本题分值:1.0)设a和b为整型变量,执行语句b=(a=2+3,a*4),a+5;后,a和b的值为__________。A.5,10B.20,25C.5,25D.5,20参考答案:D2.(本题分值:1.0)下面哪一C++语言表达式不能正确表示数学关系a<x≤b。选项为__________。A.ax&&x=bB.x=b&&axC.!(a=x)&&!(xb)D.ax=b参考答案:D3.(本题分值:1.0)x为int型,s为float型,x=3,s=2.5。表达式s+x/2的值为________。A.4B.3.5C.2.5D.3参考答案:B(因为x/2两个操作数均为整型,故结果也应该是整型,所以不是1.5而是1)4.(本题分值:1.0)结构化程序由三种基本结构组成,不包括__________。A.顺序结构B.选择结构C.控制结构D.循环结构参考答案:C5.(本题分值:1.0)在以下选项中,与k=n++完全等价的表达式是__________。A.k=n,++n;B.n=n+1,k=n;C.k=++n;D.k+=n+1;参考答案:A(n++表达式中自增算符后置,故此表达式的值是n的原值,将表达式的值使用之后n再自增1)6.(本题分值:1.0)有定义:inta;doubleb;则表达式a+4/b结果的数据类型为__________。A.intB.doubleC.floatD.unsigned参考答案:B(表达式结果的数据类型总是取所有操作数中精度最高的类型)7.(本题分值:1.0)在C++中,运算对象必须为整型数的运算符是()。A.%B./C.*D.%和*参考答案:A8.(本题分值:1.0)以下程序段的输出结果是__________。intx=5;do{coutx--;}while(!x);A.54321B.43210C.5D.4参考答案:C(当x是0时,!x的值才是非0—true)9.(本题分值:1.0)下面的for语句的循环次数为__________。for(x=1,y=0;(y!=19&&x6);x++);A.无限循环B.循环次数不定C.最多执行6次D.最多执行5次参考答案:D(当x取1、2、3、4、5时,循环条件(y!=19&&x6)表达式值为true,故循环5次)10.(本题分值:1.0)有以下程序段intk=0:while(k=1)k++;while循环执行的次数是A.无限次(死循环)B.有语法错,不能执行C.一次也不执行D.执行1次参考答案:A(注意while后面的表达式(k=1)是赋值表达式,该表达式的值恒为1(true),并不是将k与1比较相不相等;比较运算是k==1这种形式)11.(本题分值:1.0)C++语言中函数返回值的类型决定于A.return语句中的表达式类型B.调用函数的主调函数类型C.调用函数时变量的类型D.定义函数时所指定的函数类型参考答案:D12.(本题分值:1.0)若有如下的函数定义:intsum(inta,floatb){returna+(int)b;}则下列函数原型不正确的是()。A.intsum(int,float);B.intsum(intx,floaty);C.intsum(intb,floata);D.intsum(inta=10,floatb);参考答案:D(函数原型即函数声明的一种形式,可以只声明形参类型而省略形参名称,或形参名称可以任意;D选项是用带默认参数的函数定义形式做干扰)13.(本题分值:1.0)有如下的函数定义:intXfun(intx){inty=x;{intx=10;y+=x;}returnx+y;}通过表达式Xfun(5)调用该函数,则得到的返回值为A.20B.10C.5D.15参考答案:A14.(本题分值:1.0)在定义intx[3][2]以后,对x元素的引用正确的是__________。A.x[0,0]B.x[3][1]C.x[2][2]D.x[0][0]参考答案:D(注意下标不要越界,本题定义的数组,其行标最多到2,列标最多到1)15.(本题分值:1.0)设有数组定义:chararray[]=China;,则数组array所占的空间为__________。A.4个字节B.5个字节C.6个字节D.7个字节参考答案:C(字符串长度只算有效字符,不包括存储单元中的结束标记符’\0’)16.(本题分值:1.0)两个数组a和b进行如下初始化:chara[]=“abcde”;charb[]={'a','b','c','d','e'};则以下叙述正确的是__________。A.a与b数组完全相同B.a与b长度相同C.a和b中都存放字符串D.a数组比b数组长度长参考答案:D(a数组存储的是一个字符串,字符串必须在末尾加一个空字符’\0’,此空字符’\0’也要被数组a存储。而数组b保存的是一些独立的字符,并非字符串,故不需要’\0’做结束标记)17.(本题分值:1.0)设有inta[20],*p=a;则下面中哪个与a[1]不等价__________。A.p[1]B.*++pC.*++aD.*(a+1)参考答案:C(数组名是指针常量,不能施加++、--运算,也不能做赋值运算)18.(本题分值:1.0)若有:inta,*p=&a;则下面哪个表达式为假__________。A.*p==&aB.p==&*pC.p==&aD.*p==a参考答案:A(inta,*p=&a;是相当于:inta,*p;p=&a;)19.(本题分值:1.0)有关公用体与结构体不正确的说法是__________。A.都可有多个成员B.结构体可同一时刻保留多个数据C.公用体同一时刻只能保留一个数据D.结构体各成员的地址相同参考答案:D20.(本题分值:1.0)某结构体变量定义如下,结构体变量的成员的引用形式正确的是__________。structstr{intm,n;floata,b;}s,*pt;pt=&s;A.s-mB.pt.nC.*pt.aD.pt-b参考答案:D二:填空题(总分:38.0,共19空)1.执行语句inta=12;a+=a-=a*a;后,a的值是________。参考答案:-264(赋值运算是先右后左,a-=a*a—a=a-a*a,得到新a值为-132;接下来原式子变成a+=-132,等价于:a=a+(-132),得到新a值为a=-132+(-132),即:a=-2642.设有定义:intx,y;则执行y=(x=1,++x,x+2);语句后,y的值是________。参考答案:4(小括号里面是三个子式构成逗号表达式,逗号表达式的求值是从左向右的)3.求自然数1~100之和,即计算sum=1+2+3+⋯+100。#includeiostreamusingnamespacestd;intmain(){inti(1),sum(0);while(____(1)____){____(2)____;i++;}coutsum=sumendl;return0;}参考答案:(1)i=100,(2)sum+=i或sum=sum+i或sum=i+sum4.输入一个正整数,求该数的阶乘。#includeiostreamusingnamespacestd;intmain(){inti,n;longintfact=1;cout请输入一个正整数:;____(1)____for(i=2;i=n;i++)____(2)____coutn!=factendl;return0;}(1)cinn;(2)fact*=i;或fac=fac*i;5.以下程序显示输出倒三角图案。#includeiostream.hvoidmain(){inti,j;for(i=0;i4;i++){for(j=0;j____(1)____;j++)cout;for(j=0;j2*(3-i)-1;j++)cout*;cout____(2)____//要求使用格式控制符}}参考答案:(1)i,(2)endl;6.完成以下语句,使得当x10时,y值为5,否则y值为-5:intx,y;if(x10)y=5;________y=-5;参考答案:else7.设有定义:chars[]=d\ta\101bc;则调用函数strlen(s)的值为:________。参考答案:68.给定程序中函数fun的功能是:求出以下分数序列的前n项之和。和值通过函数值返回main函数。2/1+3/2+5/3+8/5+13/8+21/13⋯⋯例如,若n=5,则应输出:8.391667。#includeiostream.h____(1)____{inta,b,c,k;doubles;s=0.0;a=2;b=1;for(k=1;k=n;k++){____(2)____c=a;a=a+b;b=c;}returns;}voidmain(){intn=5;coutThevalueoffunctionis:fun(n)endl;}参考答案:(1)doublefun(intn)—函数定义的首行,(2)s=s+(double)a/b;9.有以下声明:intf3(inta[],intn);intx[10],y;要将数组名x、数组元素个数10作为函数参数的调用语句为:y=________;参考答案:f3(x,10)10.若有float型二维数组a[3][4],则与数组元素的指针表示方式*(*(a+2)+3)等价的下标表示方式表示为_______。参考答案:a[2][3]11.假定一个一维数组的定义为“chara[8],b;”,若把该数组的最后一个元素赋值给b,采取的表达式是________。参考答案:b=a[7];12.若有以下说明:inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc=′a′,g=′e′;则表达式a[g-c]的值是________。参考答案:5(即a[4])13.设有定义:charc[]=ab12cd34ef;则c数组中ASCII码值为99的元素是:________。参考答案:c[4]14.设有定义:charstr[]=ABC;则数组str有________个元素。参考答案:415.有下面的程序段char*s=abcde,*p;p=s+2;coutp;则运行结果是________。参考答案:cde(s指针指向字符串首地址,即字符a;p=s+2;使得p指向字符c,p存储了abcde中c字符的地址,“cout字符指针”这种句子要特别注意,它不是输出地址值,而是输出从该地址单元开始所对应的字符串。三:判断题(总分:12.0,共12题)1.(本题分值:1.0)只能对结构体变量中的成员赋值,而不能对结构体类型赋值。正确2.(本题分值:1.0)main函数能调用其它函数,其它函数也能调用main函数。错误3.(本题分值:1.0)如果一个函数没有形式参数,调用该函数时,可以省略括号对()。错误4.(本题分值:1.0)在一个程序中,全局变量的名称与局部变量的名称不能相同。错误5.(本题分值:1.0)对于一维数组a,a与&a[0]都表示数组中首元素的存储地址,该地址称为数组的首地址。正确6.(本题分值:1.0)对于如下代码:char*cp;cp=Iamastudent.;该语句将字符串首字符所占字节的地址赋给cp,不是将字符串赋给cp。正确7.(本题分值:1.0)若有定义:chars[]=student;则s包含8个元素。正确8.(本题分值:1.0)同一数组的各元素的数据类型相同。正确9.(本题分值:1.0)类中的函数成员可以在类体中定义,也可以在类体之外定义。正确10.(本题分值:1.0)一个被调函数的函数体中又可以出现函数调用语句,这种调用现象称为函数的嵌套调用。正确11.(本题分值:1.0)假设有:inta[5];则*a可表示a[0]。正确12.(本题分值
本文标题:C++模考试卷1(含答案解析)
链接地址:https://www.777doc.com/doc-2901703 .html