C++开发基础(习题卷28)_第1页
C++开发基础(习题卷28)_第2页
C++开发基础(习题卷28)_第3页
C++开发基础(习题卷28)_第4页
C++开发基础(习题卷28)_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

试卷科目:C++开发基础C++开发基础(习题卷28)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesC++开发基础第1部分:单项选择题,共57题,每题只有一个正确答案,多选或少选均不得分。[单选题]1.Mysql的默认端口号是多少?A)80B)21C)3306D)8000答案:C解析:[单选题]2.下列选项中不是C++关键字的是()A)boolB)intC)floatD)var答案:D解析:bool布尔类型,int整型,float浮点型。var是JavaScript或C#等中的关键字,不是C++中的。故选D。[单选题]3.下列选项中,()的具有文件作用域。A)语句标号B)局部变量C)全局变量D)静态变量答案:C解析:[单选题]4.下面不能够判断字符串S是空串的是()A)if(S[0]==0)B)if(strlen(S)==0)C)if(strcmp(S,"")==0)D)if(S=='\0')答案:D解析:S字符串的第一个字符,即S[0]=0,说明S是空串,A正确。系统函数strlen()表示字符串S的长度,若等于0,则判断字符串S是空串,B正确。系统函数strcmp()表示比较两个字符串,若相等,返回0,故strcmp(S,"")==0可以判断字符串S是空串,C正确。S=='\0'这个表达式左边是字符串,右边是字符,显然是非法的,如果改写成if(S=="\0")就可以判断字符串S是否是空串。故D错。[单选题]5.能够从输入流中提取指定长度的字节序列的函数是()。A)getB)getlineC)readD)cin答案:C解析:[单选题]6.派生类的构造函数的成员初始化列中,不能包含()。A)基类的构造函数;B)派生类中子对象的初始化;C)基类的子对象初始化;D)派生类中一般数据成员的初始化答案:C解析:[单选题]7.有关运算符重载正确的描述是()A)C++语言允许在重载运算符时改变运算符的操作个数B)C++语言允许在重载运算符时改变运算符的优先级C)C++语言允许在重载运算符时改变运算符的结合性D)C++语言允许在重载运算符时改变运算符原来的功能答案:D解析:[单选题]8.在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为A)rear=rear->next;B)front=front->next;C)rear=front->next;D)front=rear->next;答案:B解析:[单选题]9.字符串常量?MY\nA?的长度为________。A)2B)1C)3D)4答案:D解析:[单选题]10.下面程序段:x=3;do{y=x--;if(!y){cout=1&&x<=2);A)将输出##B)是死循环C)将输出###D)含有不合法的控制表达式答案:C解析:[单选题]11.有函数intfunc(inti)的实现为intfunc(inti){if(i>1)returni*func(i-1);elsereturn1;}请问函数调用func(5)的返回值是多少()A)5B)15C)20D)120答案:D解析:[单选题]12.对于C++结构体(struct)中定义的成员,其隐含的访问权限为________。A)publicB)protectedC)privateD)static答案:A解析:[单选题]13.字面常量42、4.2、42L的数据类型分别是()。A)long、doubleintB)long、float、intC)int、double、longD)int、float、long答案:D解析:[单选题]14.有以下程序#include<iostream>Inti=0;Voidfun(){{staticinti=1;std::cout<<i++<<',?;}std::cout<<i<<?,?;}Intmain(){fun();fun();return0;}程序执行后的输出结果是()。A)1,2,1,2,B)1,2,2,3,C)2,0,3,0,D)1,0,2,0,答案:D解析:[单选题]15.下列选项中,两个条件语句语义等价的是()。A)if(x=0)cout<<x;和if(x==0)cout<<x;B)if(x)cout<<x;和if(x==0)cout<<x;C)if(x)cout<<x;和if(x>0)cout<<x;D)if(x)cout<<x;和if(x!=0)cout<<x;答案:D解析:[单选题]16.若运行时给变量输入12,则以下程序段的运行结果是()。intx,y;cin>>x;y=x>12?x+10:x-12;cout<<y;A)0B)22C)12D)10答案:A解析:[单选题]17.若有如下函数定义:doublefun(intx,inty){return(x+y);}return语句中表达式值的类型与说明的类型不一致,则以下叙述中正确的是______。A)运行时出错B)函数返回的值为double类型C)编译出错D)函数返回的值为int型答案:B解析:[单选题]18.执行后的输出结果是________。A)###123B)123###C)***123D)123***答案:A解析:[单选题]19.if语句的基本形式是:if(表达式)语句,以下关于?表达式?值的叙述中正确的是()。A)必须是逻辑值B)必须是整数值C)必须是正数D)可以是任意合法的数值答案:D解析:[单选题]20.关于break语句的描述不正确的是()。A)break语句可用在if语句中,它可使执行的流程跳出当前的if语句。B)break语句可用在循环体中,它将是执行的流程跳出本层循环。C)break语句可用在switch语句中,它使执行的流程跳出当前switch语句。D)break语句在一层循环体中可出现多次。答案:A解析:[单选题]21.当需要打开A盘上的以xxk.dat文件用于输入时,则定义文件流对象的语句为()。A)fstreamfin(?A:xxk.dat?,1)B)ifstreamfin(?A:xxk.dat?,ios::nocreate)C)ofstreamfin(?A:xxk.dat?)D)ifstreamfin(?A:xxk.dat?,ios::app)答案:B解析:[单选题]22.已知定义inta=1,b=2,c=3;则表达式a>b?(a>c?a:c):b的值为()。A)1B)2C)3D)不确定答案:B解析:[单选题]23.关于构造函数,下列说法不正确的是()。A)构造函数名字和类名相同B)构造函数在创建对象时自动执行C)构造函数无任何函数返回类型D)构造函数有且只有一个答案:D解析:[单选题]24.设有100个元素,用二分法查找时,最大比较次数是()A)25B)7C)10D)1答案:B解析:[单选题]25.如果待排序的数组近似递减排序,则此时使用快排算法进行递增排序的时间复杂度为()A)O(n)B)O(n^2)C)O(nlogn)D)O((n^2)*logn)答案:B解析:[单选题]26.设函数int&index(int*a,inti)返回数组a中下标为i的元素,如存在整型数组intArray[]={1,2,3},在执行index(Array,2)++后,Array中各元素值为()A){0,1,2}B){1,1,2}C){1,2,4}D){0,2,3}答案:C解析:数组的下标从0开始。函数int&index(int*a,inti)返回数组a中下标为i的元素,故index(Array,2)表示数组array中下标为2的元素,即array[2]=3。执行index(Array,2)++,即array[2]=array[2]+1=4,故array[2]的4替换了3,最终Array={1,2,4}。[单选题]27.下面有关for循环的正确描述是()。A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环的循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体中,可以包含多条语句,但必须用花括号括起来答案:D解析:[单选题]28.下列哪个编译指令属于条件编译指令()A)#includeB)#defineC)#elseD)#pragma答案:C解析:[单选题]29.已知n是一个int型变量,下列语句中错误的是()。A)long*p=newlong[n];B)longp[n];C)long*p=newlong(n);D)longp[10];答案:B解析:[单选题]30.用n个键值构造一棵二叉排序树,最低高度为A)n/2B)nC)lognD)logn+1答案:D解析:[单选题]31.下述对C++语言字符数组的描述中错误的是()。A)字符数组的下标从0开始B)字符数组中的字符串可以进行整体输入/输出C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D)字符数组可以存放字符串答案:C解析:[单选题]32.若有定义floatw;inta,b;,则合法的switch语句是________。A)switch(w){case1.0:cout<<"*\n";case2.0:cout<<"**\n";}B)switch(a){case1cout<<"*\n";case2cout<<"**\n";}C)switch(b){case1:cout<<"*\n";default:cout<<"\n";case1+2:cout<<"**\n";}D)switch(a+b);{case1:cout<<"*\n";case2:cout<<"**\n";default:cout<<"\n";}答案:C解析:[单选题]33.下列正确的字符常量为()。A)?a?B),name?C)aD),\101?答案:D解析:[单选题]34.对n个不同数进行冒泡排序,下面哪种比较次数最多A)从小到大排列好的B)从大到小排列好的C)元素无序D)元素基本有序答案:B解析:[单选题]35.命题?1020?的C++语言表达式是________。A)((m>10)&&(m20))B)((m>20)&&(m10))C)(m>10)||((m20))D)((m>10)||(m20))答案:A解析:[单选题]36.若磁盘上已存在某个文本文件,其全路径文件名为d:\nc\test.txt,下列语句中不能打开该文件的是________。A)ifstreamfile("d:\nc\test.txt");B)ifstreamfile;file.open("d:\\nc\\test.txt");C)ifstream*pFile=newifstream("d:\\nc\\test.txt");D)ifstreamfile("d:\\nc\\test.txt");答案:A解析:[单选题]37.下列表达式中表示int变量x可以被3整除的表达式是()。A)x/3==0B)x%3==0C)x%3!=0D)(x%3)答案:B解析:[单选题]38.已知X类,当程序执行到语句Xarray[3];时,调用了()次构造函数A)0B)1C)2D)3答案:D解析:[单选题]39.在下列对字符数组进行初始化中,______是错误的。A)chars1[]="abcd";B)chars2[3]="xyz";C)char*p="hello";D)chars3[2][4]={"xyz","mnp"};答案:B解析:[单选题]40.在二叉排序树中插入一个结点最坏情况下的时间复杂度为()A)O(1)B)O(n)C)O(log2n)D)O(n^2)答案:B解析:[单选题]41.若x是一个boo型变量,y是一个值为100的int型变量,则表达式x&&y>0的值()。A)为trueB)为falseC)与x的值相同D)与x的值相反答案:C解析:[单选题]42.在Windows环境下,由C++源程序文件编译而成的目标文件的扩展名是()。A)cppB)exeC)o或objD)lik答案:C解析:[单选题]43.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度()A)必定快B)必定不快C)在大部分情况下要快D)取决于表递增还是递减答案:C解析:[单选题]44.if与else在使用过程中为避免嵌套出现二义性,C++中规定与else子句配对的是()A)其之前最近的if语句B)其之前最近且尚未配对的if语句C)缩排位置相同的if语句D)其之后最近的if语句答案:B解析:if后面和else后面的语句可以再包含if语句,需要注意的是,else总是与前面最近的并且没有与其他else匹配的if相匹配。为了明确匹配关系,避免出现匹配错误,强烈建议将内嵌的if语句,一律用一对大花括号括起来。[单选题]45.表达式3*2^(4+2*2-6*3)-5在求值过程在,当扫描到6时,数字栈中内容为A)3,2,4,1,1B)3,2,8C)3,2,4,2,2D)以上都不对答案:B解析:[单选题]46.关于友元,下列说法错误的是________。A)如果类A是类B的友元,那么类B也是类A的友元。B)如果函数fun()被说明为类A的友元,那么在fun()中可以直接访问类A的私有成员。C)友元关系不能被继承。D)如果类A是类B的友元,那么类A的所有成员函数都是类B的友元函数。答案:A解析:[单选题]47.以下定义内联函数f()的语句,正确的是()。A)inlinevoidf();voidf(){}B)voidf();inlinevoidf(){}C)voidf():inline;voidf(){}D)voidf();voidf():inline{}"答案:B解析:[单选题]48.cin的功能是A)标准输入B)标准输出C)标准打开D)标准关闭答案:A解析:[单选题]49.关于动态存储分配,下列说法正确的是()。A)new和delete是C++语言中专门用于动态内存分配和释放的函数B)动态分配的内存空间也可以被初始化C)当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间D)当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new答案:B解析:[单选题]50.以下对于排序算法的稳定性的描述正确的是()A)经过排序之后,能使值相同的数据保持原顺序中的相对位置不变B)经过排序之后,能使值相同的数据保持原顺序中的绝对位置不变C)算法的排序性能与被排序元素的数量关系不大D)算法的排序性能与被排序元素的数量关系密切答案:A解析:[单选题]51.在inta=3;*p=&a;中,*p的值是()。A)变量a的地址值B)无意义C)变量p的地址值D)3答案:D解析:[单选题]52.设voidf1(int*m,long&n);inta;longb;则以下调用合法的是(B)。A)f1(a,B);B)f1(&a,B);C)f1(a,&b);D)f1(&a,&b)答案:B解析:[单选题]53.假定n的值为5,则表达式n++的值为()?A)6B)5C)4D)7答案:B解析:[单选题]54.已知inti=0,j=1,k=2;则逻辑表达式++i||--j&&++k的值为()。A)0B)1C)2D)3答案:B解析:[单选题]55.构造函数是在()时被执行的。A)程序编译B)创建对象C)创建类D)程序装入内存答案:B解析:[单选题]56.若有说明inta[3][4];则a数组元素的非法引用是()。A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]答案:D解析:[单选题]57.执行如下语句序列,不可能出现的情况是________。intn;cin>>n;switch(n){case1:case2:cout<<'A';case3:case4:cout<<'B';break;default:cout<<'C';}A)显示:AB)显示:BC)显示:CD)显示:AB答案:A解析:第2部分:多项选择题,共6题,每题至少两个正确答案,多选或少选均不得分。[多选题]58.若一棵二叉树的前序遍历序列和后序遍历序列分别为1,2,3,4和4,3,2,1,则该二叉树的中序遍历序列可能是A)1,2,3,4B)2,3,4,1C)3,2,4,1D)4,3,2,1答案:ABD解析:[多选题]59.已知函数A、B,以下调用构成递归调用的有()。A)A调用AB)B调用BC)A调用B,B调用AD)A调用B答案:ABC解析:[多选题]60.链表的基本操作包括:()A)添加B)删除C)排序D)搜索答案:ABD解析:[多选题]61.关于完全二叉树的概念,以下说法正确的是A)适合于顺序结构存储B)不一定适合顺序结构存储C)叶子结点可在任一层出现D)某些结点有右子树则必有左子树答案:AD解析:[多选题]62.关于Shell排序的说法正确的是A)Shell排序每的最后一趟排序的地址增量一定是1。B)Shell排序每的最后一趟排序的地址增量可能是1。C)Shell排序是一种插入排序D)Shell排序是一种选择排序答案:AC解析:[多选题]63.计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出()等5个特性A)可执行性B)有穷性C)易读性D)确定性答案:ABD解析:第3部分:填空题,共6题,请在空白处填写正确答案。[填空题]64.定义虚函数所用的关键字是答案:virtual解析:[填空题]65.抽象类中至少要有一个___函数。答案:纯虚解析:[填空题]66.在C++程序设计中,建立继承关系倒挂的树应使用___继承。答案:单解析:[填空题]67.当用户为一个类定义有_________时,则系统不会为该类再自动生成一个默认构造函数。答案:构造函数解析:第4部分:判断题,共11题,请判断题目是否正确。[判断题]68.表达式(x,(y,(a,b)))的值为b答案:对解析:[判断题]69.()C++语言,当在派生类中定义了和基类中函数名和参数表都相同的成员函数时,派生类中的成员函数会覆盖基类中的成员函数。A)正确B)错误答案:对解析:[判断题]70.在类中不能对所定义的数据成员进行初始化答案:对解析:[判断题]71.通常的拷贝初始化函数的参数是某个对象的成员名或对象的引用名。答案:对解析:[判断题]72.由二叉树的前序和后序遍历序列能唯一确定这棵二叉树A)正确B)错误答案:错解析:[判断题]73.()C++语言中,定义构造函数时可以指定返回类型。A)正确B)错误答案:错解析:[判断题]74.函数形参的作用域是该函数的函数体答案:对解析:[判断题]75.C++中函数可以嵌套调用,也可以嵌套定义。A)正确B)错误答案:错解析:[判断题]76.表达式x+=5等效于表达式x=x+5答案:对解析:[判断题]77.表达式:3/1.5,其结果的数据类型为整型答案:错解析:[判断题]78.结构体变量可以作数组元素。()A)正确B)错误答案:对解析:第5部分:问答题,共20题,请在空白处填写正确答案。[问答题]79.编写一个函数,实现strcmp函数的功能答案:#include<iostream>#include<string>usingnamespacestd;voidstrc(stringstring1,stringstring2);intmain(){stringstr1,str2;cout<<"enterstr1,str2:"<<endl;cin>>str1>>str2;strc(str1,str2);return0;}voidstrc(stringstring1,stringstring2){if(string1<string2)cout<<"str1<str2"<<endl;if(string1>string2)cout<<"str1>str2"<<endl;if(string1==string2)cout<<"str1=str2"<<endl;}解析:[问答题]80.改错题:以下程序中有一处错误,请抄写有错误的语句并指出错误原因。1/1文字题#include<iostream.h>main(){intx=5,y=6;constint*p=&x;*p=y;cout<<*p<<endl;答案:*p=y;错误,因为指向常量的指针p不能进行左值操作解析:C++语言也可以使用const限定访问权限,const修饰指针变量时,基本含义如下:1)如果唯一的const位于符号*的左侧,表示指针所指数据是常量,数据不能通过本指针改变。指向常量的指针p不能进行改变。2)如果唯一的const位于符号*的右侧,表示指针本身是常量,不能让该指针指向其他内存地址;指针所指的数据可以通过本指针进行修改。3)在符号*的左右各有一个const时,表示指针和指针所指数据都是常量,既不能让指针指向其他地址,也不能通过指针修改所指向的内容。[问答题]81.C++定义函数时函数首部后面不能有()答案:分号解析:[问答题]82.完成程序题:请按空格顺序填写答案。使其可以正确的初始化成员变量m和n。1/1文字题答案:n|point&t解析:定义成员函数的一般形式为:返回类型类名::成员函数名(参数列表){成员函数的函数体//内部实现}根据题意可知,两空分别填n和point&t[问答题]83.类和对象之间的关系是什么?答案:类是对象的抽象,对象是类的实例。解析:[问答题]84.C++中预定义标准输入流对象是__1__。(填空题)答案:cin;解析:[问答题]85.阅读下面的程序,写出程序运行的结果#include<iostream.h>classA{intn;charstr[100];public:A(char*p,intlen=0){inti;n=len;for(i=0;i<n;i++)str[i]=*p++;}friendvoidGetChar(A&a);};voidGetChar(A&a){inti;for(i=0;i<a.n;i++)if((a.str[i]<'0')||(a.str[i]>'9'))cout<<a.str[i];}voidmain(){Aa("wer33p8tr",10);GetChar(a);}答案:答:程序运行结果为:werptr解析:[问答题]86.linux系统中,关于进程说法正确的是?A)进程是资源分配的独立单位B)进程是资源调度的独立单位答案:A解析:[问答题]87.类和对象之间的关系是抽象和具体的关系,类是对多个对象进行综合抽象的结果,对象是类的--答案:一个实例解析:类是对现实世界中客观事物的抽象,通常将众多的具有相同属性的事物归纳、划分成为某个类。对象是类的一个实例。对象是类的一个具象,类是对象的一个抽象。[问答题]88.古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?答案:1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,212.程序源代码:#include?stdio.h?#include?conio.h?main(){longf1,f2;inti;f1=f2=1;for(i=1;i<=20;i++){printf(?%12ld%12ld?,f1,f2);if(i%2==0)printf(?\n?);/*控制输出,每行四个*/f1=f1+f2;/*前两个月加起来赋值给第三个月*/f2=f1+f2;/*前两个月加起来赋值给第三个月*/}getch();}解析:[问答题]89.C++编译器自动为类产生的四个缺省函数是什么?答案:默认构造函数,拷贝构造函数,析构函数,赋值函数。解析:[问答题]90.完成程序题:请按空格顺序填写答案。使下面程序实现:输入半径,输出其面积和周长。class="fr-ficfr-dibcursor-hover">答案:usingnamespacestd;|#definepi3.14159解析:using语句引用其他命名空间的标识符的语法格式有两种形式:using命名空间名::标识符;usingnamespace命名空间名;C++标准程序库中的所有标识符都定义在一个名为std的命名空间中。[问答题]91.输入20个整数,求最大数和最小数,以及去掉一个最大数且去掉一个最小数后的平均值答案:#include<iostream.h>intmain(){inta[20]={30,31,32,33,34,35,36,37,38,39,50,49,48,47,46,45,43,42,41,40};inti,max,min;floatavg,sum=0;max=a[0];min=a[0];for(i=0;i<20;i++){if(a[i]>max)max=a[i];if(a[i]<min)min=a[i];sum+=a[i];}avg=(sum-(max+min))/18;cout<<"max="<<max<<"min="<<min<<endl;cout<<"avg="<<avg<<endl;return0;}解析:[问答题]92.下列程序输出结果是第一行是____(1)____;第二行是__(2)___.#include#defineN3usingnamespaces

温馨提示

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

评论

0/150

提交评论