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

下载本文档

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

文档简介

试卷科目:C++开发基础C++开发基础(习题卷16)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesC++开发基础第1部分:单项选择题,共59题,每题只有一个正确答案,多选或少选均不得分。[单选题]1.下面程序执行后的输出结果是________。#includeusingnamespacestd;voidswap1(intc[]){intt;t=c[0];c[0]=c[1];c[1]=t;}voidswap2(intc0,intc1){intt;t=c0;c0=c1;c1=t;}intmain(){inta[2]={3,5},b[2]={3,5};swap1(a);swap2(b[0],b[1]);cout<A)5353B)5335C)3535D)3553答案:B解析:[单选题]2.在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值()。A)相同B)不同C)相容D)部分相同答案:A解析:[单选题]3.若在main函数中有声明staticinta[3][3]={{1,2},{3,4},{5}};,则数组a中元素a[1][2]的值是________。A)不能得到确定的值B)5C)0D)2答案:C解析:[单选题]4.在一个类体的下列声明中,正确的纯虚函数声明是()。A)virtualvoidvf()=0;B)voidvf(int)=0;C)virtualintvf(int);D)virtualvoidvf(int){}答案:A解析:[单选题]5.二叉树的第I层上最多含有结点数为A)2^IB)2^(I-1)-1C)2^(I-1)D)2^(I)-1答案:C解析:[单选题]6.数据的逻辑结构被形式地定义为B=(K,R),其中R是K上的__有限集合。A)操作B)映像C)存储D)关系答案:D解析:[单选题]7.有定义如下:inta[5],*p=a;则下列描述错误的是_______。A)表达式p=p+1是合法的B)表达式a=a+1是合法的C)表达式p-a是合法的D)表达式a+2是合法的答案:B解析:[单选题]8.用于包含C++标准库iostream的预处理指令是()A)#define<iostream>B)#include<iostream>C)#define?iostream?D)#include?iostream?答案:B解析:嵌入指令#include指示编译器将一个源文件嵌入到带有#include指令的原文件中该指令所在的位置处。当使用当程序中用到cin和cout时,需要在程序中包含头文件<iostream>。故综上,B符合。[单选题]9.下面四个程序中,完全正确的是________。A)#include<iostream>usingnamespacestd;intmain();{programming*/cout<<"programming!\n";return0;}B)#include<iostream>usingnamespacestd;intmain(){/programming/}cout<<"programming!\n";return0;}C)#include<iostream>usingnamespacestd;intmain(){programming*/cout<<"programming!\n";return0;}D)#include<iostream>usingnamespacestd;intmain(){programming*/cout<<"programming!\n";return0;}答案:D解析:[单选题]10.下面程序段的时间复杂度为______for(inti=0;iA)O(m2)B)O(n2)C)O(m*n)D)O(m+n)答案:C解析:[单选题]11.快速排序方法在()情况下最不利于发挥其长处A)要排序的数据量太大B)要排序的数据中含有多个相同值C)要排序的数据个数为奇数D)要排序的数据已基本有序答案:D解析:[单选题]12.若已经声明了函数原型"voidfun(intA,doubleb=0.0);",则下列重载函数声明中正确的是()。A)voidfun(inta=90,doubleb=0.0);B)intfun(intA,doubleB);C)voidfun(doubleA,intB);D)boolfun(intA,doubleb=0.0);答案:C解析:[单选题]13.下例用继承方式实现平面坐标体系下的线段类Line,一条线段由两个端点Point构成。程序运行时输出:0,01,1下列填空选项错误的是_______。A)第(1)空填cout<B)第(1)空填Point::Show();C)第(2)空填cout<D)第(2)空填Line::Show();答案:D解析:[单选题]14.对n个不同的排序码进行冒泡排序,在下列哪种情况下比较的次数最多。A)从小到大排列好的B)从大到小排列好的C)元素无序D)元素基本有序答案:B解析:[单选题]15.关于对象成员的构造函数的调用顺序,说法正确的是()。A)与它们在成员初始化列表中给出的顺序相同。B)与析构函数的调用顺序相同C)与它们在类中的说明顺序相同D)以上说法都不对答案:D解析:[单选题]16.设"char**s;",以下正确的表达式是A)s="computer";B)*s="computer";C)**s="computer";D)*s='c';答案:B解析:[单选题]17.下列有关函数重载的叙述中,错误的是()。A)函数重载就是用相同的函数名定义多个函数B)重载函数的参数列表必须不同C)重载函数的返回值类型必须不同D)重载函数的参数可以带有默认值答案:C解析:[单选题]18.C++函数中未指定存储类别的局部变量,其隐含的存储类别是________。A)autoB)staticC)externD)register答案:A解析:[单选题]19.语句ofstreamf(?TEMP.DAT?,ios::app|ios::binary)?的功能是建立流对象f,试图打开文件TEMP.DAT并与之连接,并且()A)若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B)若文件存在,将其置为空文件;若文件不存在,打开失败C)若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D)若文件存在,打开失败;若文件不存在,建立一个新文件答案:A解析:[单选题]20.锁机制是线程之间通信的常用方式,不包括?A)互斥量B)全局变量C)锁D)条件变量答案:B解析:[单选题]21.在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行A)q->next=s;s->next=p;B)s->next=p->next;p->next=s;C)p->next=s->next;s->next=pD)p->next=s;s->next=q;答案:A解析:[单选题]22.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为()。A)x(a)B)x[a]C)x->aD)x.a答案:D解析:[单选题]23.假设给出如下的函数声明:voidfunc(inta,intb=2,intc=3);,则下列函数调用正确的是()A)func(1,22,333);B)func();C)func("#",20);D)func(5,,9);答案:A解析:在C++语言中,可以在声明函数时为形参指定默认值。当调用有默认参数值的函数时,调用语句中可以不给出对应的实参,这就相当于调用该函数时以默认值作为参数。调用函数时,主调函数的实参与被调函数的形参按从左至右的顺序进行匹配对应。本题中,?func(1,22,333);?是正确的,调用时给出了所有实参,且参数的类型也是匹配的。?func();?是错误的,声明中参数a没有默认值,调用时必须给出实参值。?func("#",20);?是错误的,实参表中的字符型实参#赋值给int型形参b,会产生编译错误。?func(5,,9);?是错误的,调用时给出的实参应该是连续排列的。[单选题]24.C++对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是()A)增加了一些新的运算符B)允许函数重载,并允许设置缺省参数C)规定函数说明符必须用原型D)引进了类和对象的概念答案:D解析:[单选题]25.把一棵树转换为二叉树后,这棵二叉树的形态是A)唯一的B)有多种C)有多种,根结点没有左孩子D)有多种,根结点没有右孩子答案:A解析:[单选题]26.下列设置函数参数默认值的说明语句中,错误的是______。A)intfun(intx,inty=10)B)intfun(intx=5,int=10)C)intfun(intx=5,inty)D)intfun(intx,inty=a+b)答案:C解析:[单选题]27.对一个具有n个元素的线性表,建立其单链表的时间复杂度为A)O(n)B)O(1)C)O(n^2)D)O(log2n)答案:A解析:[单选题]28.下列对指针变量操作的语句中正确的是________。A)intA,*p,*q;p=q=&a;B)inta=20,*p;*p=a;C)inta=20,*p,*q=&a;*p=*q;D)intp,*q;p=*q;答案:A解析:[单选题]29.若有如下程序:intmain(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}运行该程序的输出结果是(A)34B)42C)43D)33答案:D解析:逗号表达的求值顺序是从左向右以此计算用逗号分隔的各表达式的值,最后一个表达式的值就是整个逗号表达式的值,所以(++x,y++)的值将是y++,因为是先输出y的值,再将y增1,所以轴线输出3,再输出Z+2的值,即3;所以应选择D[单选题]30.已知:charc='\010';则变量c中包含的字符个数为()。A)4B)1C)2D)3答案:B解析:正确答案B[单选题]31.表示一个语句是宏定义语句的标识符是()。A)includeB)#includeC)defineD)#define答案:D解析:[单选题]32.对于数据结构算法分析的两个主要方面是A)空间复杂性和时间复杂性B)正确性和简明性C)可读性和文档性D)数据复杂性和程序复杂性答案:A解析:[单选题]33.包含自定义头文件file.h的预处理指令是()A)#include"file.h"B)#define'file.h'C)#includefile.hD)#definefile.h答案:A解析:[单选题]34.this指针存在的目的是()A)保证基类私有成员在子类中可以被访问B)保证基类保护成员在子类中可以被访问C)保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码D)保证基类公有成员在子类中可以被访问答案:C解析:[单选题]35.下列选项中,正确的C++表达式为()。A)a++3B)i+C)a+=bD)'a'=b答案:C解析:A:++先与a结合,后边3无法解释,B:表达式缺操作数,D:不允许对常量赋值[单选题]36.执行下列程序后,输出的结果是()。Inta=-5,b=0;While(++a)b++;Cout<<b<<endl;A)0B)1C)4D)5答案:C解析:[单选题]37."以下函数的值的类型是()。f(floatx){floaty;y=3*x-4;returny;}"A)intB)不确定C)voidD)float答案:A解析:[单选题]38.对于基类型相同的两个指针变量之间,不合理的运算是________。A)<B)=C)+D)-答案:C解析:[单选题]39.下列选项中,正确的C++表达式是()。A)count++3B)a3+C)a+=bD)'a'=b答案:C解析:[单选题]40.进行初始化即可自动获取初值为0的变量是()。A)任何用static修饰的变量B)任何在函数外定义的变量C)局部变量和用static修饰的全局变量D)全局变量和用static修饰的局部变量答案:D解析:[单选题]41.下列关于return语句的叙述中,正确的是()。A)任何函数的函数体中至少有一个return语句B)任何函数的函数体中最后一条语句必须是return语句C)如果函数的返回类型为void,则其函数体中可以没有return语句D)如果函数的返回类型为int,则其函数体中可以没有return语句答案:C解析:[单选题]42.已知inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则不.能.表示数组a中元素的式子是()。A)*aB)*pC)aD)a[p-a]答案:C解析:[单选题]43.若x和y都是int型变量,x=100,y=200,且有下面的程序段:cout<<(x,y);上述程序段的输出结果是_____。A)100B)200C)100200D)编译出错答案:B解析:[单选题]44.下列语句中,不能对字符数组a进行正确初始化的是()。A)chara[5]="Happy";B)chara[5]={'H','a','p','p','y'};C)chara[]="Happy";D)chara[]={'H','a','p','p','y'};答案:A解析:[单选题]45.关于无向图的生成树说法正确的是A)一棵有n个顶点的生成树有且仅有n条边B)如果一个图有n个顶点和小于n-1条边,则是连通图;C)如果多于n-2条边,则一定有环;D)有n-1条边的图不一定是生成树。答案:D解析:[单选题]46.下述关于break语句的描述中,()是正确的。A)break语句可用于循环体内,它将退出该重循环。B)break语句可用于开关语句中,它将退出开关语句。C)break语句可用于if体内,它将退出if语句。D)break语句在一个循环体内可以出现多次。答案:C解析:[单选题]47.有如下程序:Intx=3;Do{X-=2;Cout<<x;}while(!(--x));执行这个程序的输出结果是()。A)1-2B)1C)30D)死循环答案:A解析:[单选题]48.下列关于变量数据类型转换的描述中,错误的是______。A)如果a为int型变量,b为char型变量,则a+b的值为int型B)如果a为float型变量,b为int型变量,则a-b的值为double型C)如果a为double型变量,b为float型变量,则a*b的值为double型D)如果a为int型变量,b为int型变量,则a=a/double(b)的值为int型答案:B解析:[单选题]49.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()。A)mainB)MAINC)nameD)function答案:A解析:[单选题]50.能在O(1)时间内访问线性表的第i个元素的结构是()A)顺序表B)单链表C)二分法D)以上都不对答案:A解析:[单选题]51.在具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是()A)O(1)B)O(n)C)O(n^2)D)O(nlog2n)答案:B解析:[单选题]52.有以下程序#include<iostream>Usingnamespacestd;Intmain(){inta;cin>>a;if(a++<9)cout<<a;elsecout<<a--;return0;}程序运行时从键盘输入9回车,则输出结果是()。A)10B)11C)9D)8答案:A解析:虽然条件不成立,但a++执行了。[单选题]53.C++中,cout函数的功能是A)标准输入B)标准输出C)标准打开D)标准关闭答案:B解析:[单选题]54.函数调用func((exp1,exp2),exp3,(exp4,exp5))中所含实参的个数为________。A)1B)2C)3D)5答案:C解析:[单选题]55.()的功能是对象进行初始化。A)析构函数B)数据成员C)构造函数D)静态成员函数答案:C解析:[单选题]56.设intx=2,y=4,z=7;则执行x=y--A)0,3B)1,3C)2,3D)2,4答案:B解析:[单选题]57.静态数据成员的初始化必须在()。A)类内B)类外C)在构造函数内D)静态成员函数内答案:B解析:第2部分:多项选择题,共6题,每题至少两个正确答案,多选或少选均不得分。[多选题]58.在学习队列时,下列关于队列的叙述中正确的是()A)在队列中只能插入数据B)在队列中只能删除数据C)队列是先进先出的线性表D)在队列中既能插入数据又能删除数据答案:CD解析:[多选题]59.关于for(表达式1;表达式2;表达式3)循环语句,以下说法正确的是()。A)如果表达式1为空,会出现编译错误B)如果表达式2为空,会进入死循环C)如果表达式3为空,会进入死循环D)3个表达式都可以在for()语句外部执行答案:BD解析:[多选题]60.下列关于线性表在数据结构中的叙述,正确的有()A)线性表是n个结点的有穷序列B)线性表可以为空表C)线性表的每一个结点有且仅有一个前驱和后继D)线性表结点问的逻辑关系是1:1的关系答案:ABD解析:[多选题]61.下列选项中哪些符号属于C++输入中的分隔符。()A)逗号B)分号C)空格D)句号答案:AC解析:[多选题]62.冒泡排序和快速排序的比较分析中正确的是哪些A)对于n个记录的集合进行冒泡排序,在最坏的情况下所需要的时间是O(n^2)B)对于n个记录的集合进行冒泡排序,在最坏的情况下所需要的时间是O(nlogn)C)对于n个记录的集合进行快速排序,在最坏的情况下所需要的时间是O(n^2)D)对于n个记录的集合进行快速排序,在最坏的情况下所需要的时间是O(nlogn)答案:AC解析:[多选题]63.数据结构中数据的逻辑结构不包括A)数据的组织形式B)数据的存储形式C)数据的表示形式D)数据的实现形式答案:BCD解析:第3部分:填空题,共4题,请在空白处填写正确答案。[填空题]64.在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是___的头文件。答案:自定义解析:[填空题]65.在vector类中向向量尾部插入一个对象的方法是______。答案:push_back()解析:[填空题]66.假定AB为一个类,则执行?ABa[10];?语句时,系统自动调用该类构造函数的次数为________答案:10解析:[填空题]67.一个类的______函数通常用于实现释放该类对象中指针成员所指向的动态存储空间的任务。答案:析构解析:第4部分:判断题,共11题,请判断题目是否正确。[判断题]68.()运算符重载函数的参数至少应有一个是类对象或类对象的引用。A)正确B)错误答案:对解析:[判断题]69.运行下面的程序,最后输出的变量值为5。()inta[8]={1,2,3,4,5};inti=a[5];printf(""%d\n"",i);"答案:错解析:[判断题]70.查找相同结点的效率折半查找总比顺序查找高A)正确B)错误答案:错解析:[判断题]71.C++程序中,通常使用const来定义符号常量,定义时必须指出类型。A)正确B)错误答案:对解析:[判断题]72.外部排序的稳定性是指该排序算法不允许有相同的关键字记录。A)正确B)错误答案:错解析:[判断题]73.数组定义时不能使用变量来说明数组元素的数量,而在调用数组元素时可以使用变量答案:对解析:[判断题]74.C++语言中,所有的函数都必须有返回值答案:错解析:[判断题]75.树中有且仅有一个结点没有前驱A)正确B)错误答案:对解析:[判断题]76.数据结构的线性表中,取线性表的第i个元素的时间同i的大小有关A)正确B)错误答案:错解析:[判断题]77.constchar*p说明了p是指向字符串的常量指针。答案:错解析:[判断题]78.()C++类中的析构函数不能有参数,也不能被重载。A)正确B)错误答案:对解析:第5部分:问答题,共20题,请在空白处填写正确答案。[问答题]79.打印楼梯,同时在楼梯上方打印两个笑脸答案:1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。2.程序源代码:#include?stdio.h?#include?conio.h?main(){inti,j;printf(?\1\1\n?);/*输出两个笑脸*/for(i=1;i<11;i++){for(j=1;j<=i;j++)printf(?%c%c?,219,219);printf(?\n?);}getch();}解析:[问答题]80.输入一个整数x(非0),判断该数是偶数,还是奇数答案:略解析:[问答题]81.求1到100的奇数和答案:#include<iostream.h>intmain(){ints=0;for(inti=1;i<=100;i+=2){s+=i;}cout<<"s="<<s<<endl;return0;}解析:[问答题]82.类的公有成员和私有成员有何区别?答案:C++中的类里的成员函数是可以是私有函数或公有函数。两者的区别是,私有函数只可以在类里面调用,而公有函数其他类也可以调用私有成员只可以在本类中使用不能在其他类中使用,而公有成员都可以使用解析:[问答题]83.阅读下列程序,分析程序运行结果#include<iostream.h>classDate{public:Date(inty=2001,intm=1,intd=1){Year=y;Month=m;Day=d;}VoidPrintDate(){cout<<Year<<"/"<<Month<<"/"<<Day<<endl;}protected:intYear,Month,Day;};classTime{public:Time(inth=5,intm=30,ints=0){Houre=h;Minutes=m;Seconds=s;}voidPrintTime(){cout<<Houre<<":"<<Minutes<<":"<<Seconds<<endl;}protected:intHoure,Minutes,Seconds;};classDate_Time:publicDate,publicTime{public:Date_Time(){};Date_Time(inty,intmo,intd,inth=0,intmi=0,ints=0):Date(y,mo,d),Time(h,mi,s){}voidPrintDate_Time(){PrintDate();PrintTime();}};voidmain(){Date_Timea,b(2002,10,1,6,20,0),Date_Timec(2003,3,8,6,7);a.PrintDate_Time();b.PrintDate_Time();c.PrintDate_Time();}答案:2001/1/15:30:02002/10/16:20:02003/3/86:7:0解析:[问答题]84.编程计算:1*2*3+3*4*5+⋯+99*100*101的值.答案:packageeasy;publicclassThe22th{publicstaticvoidmain(String[]args){longsum=0;for(inti=1;i+2<=101;i=i+2){sum=sum+i*(i+1)*(i+2);}System.out.println(sum);}}解析:[问答题]85.有变量定义:inta=5,b=4,c=3;则表达式a>b>c的值为()。答案:0解析:(a>b)>c,a>b值为1,1>c值为0[问答题]86.请将下列类定义补充完整。#include<iostream.h>classbase{public:voidfun(){cout<<"base::fun"<<endl;}};classderived:publicbase{public:voidfun(){___________________//显式调用基类的fun函数cout<<"derived::fun"<<endl;}};答案:本题考查在继承过程中,如果基类与子类有同名成员时,如何完成各自的引用。如果基类与子类有同名成员时,子类的同名成员会屏蔽基类的同名成员,所以要在自类中引用该成员则需要使用作用域区分符确定要调用谁的成员。因此,本题答案为:base::fun();解析:[问答题]87.#include<iostream.h>voidfun1(int);voidmain(){voidfun1(double);fun1(1);}voidfun1(inti){cout<<"int:"<<i<<endl;}voidfun1(doublei){cout<<"double:"<<i<<endl;}答案:本题主要考查重载与作用域的关系问题。本程序中虽然定义了重载函数fun1。但是在主函数中仅声明了参数类型为double的函数fun1,然后就对fun1进行调用(调用前没有看到以整型数据作为形参的fun1函数的定义或声明)。那么尽管调用时赋的实参1是整型,也无法调用以整型数据作为形参的fun1函数。只能通过隐式数据类型转换与以double类型作为形参的fun1函数匹配。也就是说,在这里实际上没有实现重载。所以,结果为:double:1。解析:[问答题]88.改错题:以下程序中有一处错误,请抄写有错误的语句并改正。1/1文字题答案:voidswap(intx,inty)错误,改为voidswap(int&x,int&y)解析:指针变量中保存的是一个地址,有时也称指针指向一个地址。将指向对象的指针作为函数参数,形参是对象指针(指针可以指向对象的地址),实参是对象的地址值。传对象地址值要用到对象的指针。[问答题]89.在C++中,声明布尔类型变量所用的关键字是__1__。(填空题)答案:bool;解析:[问答题]90.windows系统中查看网卡信息使用哪个指令?A)ifconfigB)ipconfig答案:B解析:[问答题]91.编写一个函数,将字符数组a中的全部字符复制到字符数组b中.不要使用strcpy函数.主函数输入任意一个字符串,调该函数,复制出另一个字符串。将两个串输出。答案:packagemoreEasy;importjava.util.Scanner;publi

温馨提示

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

评论

0/150

提交评论