计算机编程-知到答案、智慧树答案_第1页
计算机编程-知到答案、智慧树答案_第2页
计算机编程-知到答案、智慧树答案_第3页
计算机编程-知到答案、智慧树答案_第4页
计算机编程-知到答案、智慧树答案_第5页
已阅读5页,还剩22页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

计算机编程-知到答案、智慧树答案第一章单元测试1、问题:有定义inta=9,b=6,c;执行语句c=a/b+0.5;后,c的值为()。选项:A:1.4B:2.0C:1D:2答案:【1】2、问题:C++语言源代码文件扩展名为()。选项:A:.objB:.exeC:.cppD:.c++答案:【.cpp】3、问题:以下用户标识符中,合法的是()。选项:A:IntB:%123C:Ling@liD:moon答案:【moon】4、问题:intx=10,y=5;则表达式x+=x*=y+8的值为()。选项:A:230B:260C:150D:130答案:【260】5、问题:5、有定义inta=9,b=6,c;执行语句c=a/b+0.5;后,c的值为()。选项:A:1.4B:2C:2.0D:1答案:【1】6、问题:以下标识符中,不能作为合法的C++用户定义标识符的是()。选项:A:signedB:answerC:toD:_if答案:【signed】7、问题:下列字符串中可以用作C++标识符的是()。选项:A:deleteB:_256C:5charD:class答案:【_256】8、问题:下列C++标点符号中表示一条预处理命令开始的是()。选项:A://B:}C:;D:#答案:【#】9、问题:9、以下程序的运行结果是()。main(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);cout<选项:A:6,1B:2,1C:6,0D:2,0答案:【2,1】10、问题:语句while(!E);中的表达式!E等价于()选项:A:E!=0B:E!=1C:E==0D:E==1答案:【E==0】11、问题:下面程序段的运行结果是:()。inta=1;b=2;c=2;while(a选项:A:2,1,0B:1,2,0C:1,2,1D:2,1,1答案:【1,2,0】12、问题:设有程序段:intx=0,s=0;while(!x!=0)s+=++x;cout<选项:A:运行程序段后输出1B:程序段执行无限次C:运行程序段后输出0D:程序段中的控制表达式是非法的答案:【运行程序段后输出1】13、问题:以下程序的正确运行结果是()。#includevoidnum(){externintx,y;inta=15,b=10;x=a-b;y=a+b;}intx,y;voidmain(){inta=7,b=5;x=a+b;y=a-b;num();cout<选项:A:不确定B:12,2C:1,12D:5,25答案:【5,25】14、问题:已知:intm=5;下列表示引用的方法中,正确的是:()。选项:A:int&Z;B:int&X=m;C:float&f=&m;D:int&t=5;答案:【int&X=m;】15、问题:C++语言源程序的基本单位是()。选项:A:子程序B:标识符C:函数D:过程答案:【函数】16、问题:下面程序段的输出结果是()。chara[7]=”abcdef”;charb[4]=”ABC”;strcpy(a,b);cout<选项:A:eB:fC:bD:\0答案:【f】17、问题:下面程序段的输出结果是()。charc[]=”\t\v\\\0will\n”;cout<选项:A:6B:14C:9D:3答案:【3】第二章单元测试1、问题:结构化程序设计所规定的三种基本控制结构是:()。选项:A:顺序、选择、循环B:树形、网形、环形C:主程序、子程序、函数D:输入、处理、输出答案:【顺序、选择、循环】2{、问题:下面程序的输出结果是()。main(){charstr[]=”SSWLIA”,C;intk;for(k=2;(c=str[k])!=’\0’;k++)switch(c){case‘I’:++k;break;case‘L’:continue;default:putchar(c);continue;}putchar(‘*’);}}选项:A:W*B:WC:W*AD:SW答案:【W*】3、问题:C++语言中,while和do-while循环的主要区别是:()。选项:A:do-while的循环体至少无条件执行一次B:while的循环控制条件比do-while的循环控制条件严格C:do-while允许从外部转到循环体内D:do-while的循环体不能是复合语句答案:【do-while的循环体至少无条件执行一次】4、问题:下面程序段执行完后,x的值是()。intx=0;for(inti=0;i<90;i++)if(i)x++;选项:A:89B:0C:90D:30答案:【90】5、问题:以下关于do-while循环的不正确描述是()。选项:A:do-while的循环体可以是复合语句B:do-while循环由do开始,至while结束,在while(表达式)后面不能写分号C:do-while的循环体至少执行一次D:在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”))的操作答案:【do-while循环由do开始,至while结束,在while(表达式)后面不能写分号】6{、问题:运行下面程序,程序运行结果是()。#includeusingnamespacestd;intmain(){staticinta[4]={7,8,9},b[4]=4,5,6},c[4],i;for(i=0;i<3;i++)c[i]=a[i]+b[i];cout<选项:B:0D:15答案:【0】7、问题:以下程序的输出是()。#includemain(){intx=1;if(x=2)cout<<“OK”;elseif(x<2)cout<选项:A:1B:OKC:QuitD:无输出结果答案:【OK】8、问题:若均为int型变量,则执行下面语句后的m值为()。w=1;x=2;y=3;z=4;m=(w选项:A:2B:4C:1D:3答案:【1】9、问题:若u、w、x、y均是正整型变量,则以下正确的switch语句是()。选项:A:switch(x*x+y*y){case3:case3:w=x+y;break;case0:w=y-x;break;}{case1:case3:w=x+y;break;case0:case5:w=x-y;}C:switchx{default:u=x+y;case10:w=x-y;break;case11:u=x*y;break;}D:switch(x+y){case10:u=x+y;break;case11:w=x-y;break;}答案:【switch(x+y){case10:u=x+y;break;case11:w=x-y;break;}】10、问题:语句while(!E);中的表达式!E等价于()。A)E==0B)E!=1C)E!=0D)E==1选项:A:E!=1B:E==0C:E!=0D:E==1答案:【E==0】11、问题:以下程序段()。x=-1;do{x=x*x;}while(!x);选项:A:是死循环B:循环执行二次C:有语法错误D:循环执行一次答案:【循环执行一次】第三章单元测试1、问题:以下正确的说法是()。选项:A:系统根本不允许用户重新定义标准库函数B:用户可以重新定义标准库函数,若如此,该函数将失去原有含义C:用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调D:用户若需要调用标准库函数,调用前必须重新定义答案:【用户可以重新定义标准库函数,若如此,该函数将失去原有含义】2、问题:以下正确的描述是()。在C++语言中选项:A:函数的定义和函数的调用均可以嵌套B:函数的定义和函数的调用均不可以嵌套C:函数的定义可以嵌套,但函数的调用不可以嵌套D:函数的定义不可以嵌套,但函数的调用可以嵌套答案:【函数的定义不可以嵌套,但函数的调用可以嵌套】3、问题:以下程序的正确运行结果是()。voidmain(){inta=2,i;for(i=0;i<3;i++)cout<选项:A:789B:71013C:777D:答案:【789】4{、问题:以下程序的正确运行结果是()。#includefunc(inta,intb)staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}voidmain(){intk=4,m=1,p;p=func(k,m);cout<选项:A:8,20B:8,8C:8,16D:8,17答案:【8,17】5、问题:C++语言规定,函数返回值的类型是由()。选项:A:调用该函数时系统临时决定B:调用该函数时的主调函数类型所决定C:在定义该函数时所指定的函数类型所决定D:return语句中的表达式类型所决定答案:【在定义该函数时所指定的函数类型所决定】6、问题:下面函数调用语句含有实参的个数为()。func((exp1,exp2),(exp3,exp4,exp5));选项:A:2B:4C:5D:1答案:【2】7、问题:C++语言中,以下不正确的说法是()。选项:A:形参应与其对应的实参类型一致B:实参可以为任意类型C:形参可以是常量、变量和表达式D:实参可以是常量、变量和表达式答案:【形参可以是常量、变量和表达式】8、问题:在计算机高级语言C++中,下面对函数不正确的描述是()。选项:A:允许函数递归调用B:函数形参的作用范围只是局限于所定义的函数内C:当用数组名作形参时,形参数组元素值的改变可以使实参数组元素的值相应改变D:被调用函数必须位于主函数之前答案:【被调用函数必须位于主函数之前】9{、问题:对下面程序段的描述正确的是()。#includeusingnamespacestd;intFun(intx,inty){returnx+y;}intmain()inti=10;cout<选项:A:程序输出结果不能确定B:程序输出结果是22C:程序输出结果是21D:程序输出结果是20答案:【程序输出结果是20】10、问题:下列有关形式参数和实际参数的说法正确的是()。选项:A:即便是在发生函数调用时,函数中的形参也不会分配内存单元。B:一般情况下,在调用函数结束后,形参所占的内存单元不会被释放C:定义函数指定的形参,会一直占用内存中的存储单元。D:在定义函数时,必须在函数首部指定形参的类型。答案:【在定义函数时,必须在函数首部指定形参的类型。】11、问题:若使用一维数组名作为函数实参,则以下正确的说法是()。选项:A:实参数组类型与形参数组类型可以不匹配B:必须在主调函数中说明此数组的大小C:实参数组与形参数组名必须一致D:在被调函数中,不需要考虑形参数组的大小答案:【必须在主调函数中说明此数组的大小】12、问题:以下正确的说法是()。选项:A:实参和与其对应的形参共占用一个存储单元;B:实参和与其对应的形参各占用独立的存储单元;C:形参是虚拟的,不占用存储单元。D:只有当实参和与其对应的形参同名时才共同占用存储单元;答案:【实参和与其对应的形参各占用独立的存储单元;】13、问题:以下正确的说法是()。如果在一个函数的复合语句中定义了一个变量,则该变量()。选项:A:为非法变量B:在该函数中有效C:只在该复合语句中有效D:在本程序范围内均有效答案:【只在该复合语句中有效】第四章单元测试1、问题:下面关于C++字符数组的叙述中,错误的是()。选项:A:字符数组的字符可以整体输入、输出B:可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值C:可以用关系运算符对字符数组比较大小D:字符数组可以放字符串答案:【可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值】2、问题:若有数组名作为函数调用的实参,则传递给形式参数的是()。选项:A:数组元素的个数B:数组中全部元素的值C:数组的首地址D:数组第1个元素的值答案:【数组的首地址】3、问题:已定义一个数组intx[10];则对此数组元素正确的引用是()。选项:A:cout<B:intb;b=x[1]+x;C:cout<D:cout<答案:【cout<】4、问题:假定a为一个整型数组名,则元素a[4]的地址可表示为()。选项:A:a+16B:a+32C:a+4D:a+8答案:【a+4】5、问题:设有数组定义chara[]="China";则数组a所占的空间字节数为()。选项:A:6个字节B:7个字节C:5个字节D:4个字节答案:【6个字节】6、问题:设有定义语句inta[3][3],则以下叙述错误的是()。选项:A:a[1]是由3个整型元素组成的一维数组B:a[0]代表一个地址常量C:可以用a[2]=1;的形式给数组元素赋值D:a数组可以看成是由a[0]、a[1]、a[2]3个元素组成的一维数组答案:【可以用a[2]=1;的形式给数组元素赋值】7、问题:有如下声明语句intB[3][3]={{1,2,0},{3,2},{4,5,10}};那么B[1][1]的值是()。选项:A:3B:10C:2D:1答案:【2】8、问题:以下对一维数组a的正确定义是()。选项:A:intn=9,a[n];B:intn;cin>>n;inta[n];C:constintN=9;inta[N];D:inta(9);答案:【constintN=9;inta[N];】9{、问题:运行下面程序,程序运行结果是()。#includeusingnamespacestd;intmain(){staticinta[4]={7,8,9},b[4]=4,5,6},c[4],i;for(i=0;i<3;i++)c[i]=a[i]+b[i];cout<选项:B:0C:15答案:【0】10、问题:若有初始化chara[]="BASIC";则cout<<&a[3];的输出结果是()。选项:A:输出a[3]的地址B:"IC"C:'S'D:'I'答案:【"IC"】11、问题:在C++语言中,引用数组元素时,其数组下标的数据类型允许是()。选项:A:任何类型的表达式B:整型表达式C:整型常量D:整型常量或整型表达式答案:【整型常量或整型表达式】12、问题:在C++中一组同样类型的数据在内容中占用连续存贮空间的数据类型是()。选项:A:指向指针的指针B:指针C:数组D:引用答案:【数组】13、问题:运行以下程序的输出结果是()。intf(intb[],intn){inti,r=1;for(i=0;i<=n;i++)r=r*b[i];returnr;}intmain(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);cout<选项:A:120B:720C:24D:6答案:【120】14、问题:下列do-while循环的循环次数为().已知:intj=5;do{cout<选项:A:0B:1C:5D:无限答案:【无限】15、问题:若有定义charstr1[10]={"China"},str2[10];要将str1中的字符串复制到str2中去,正确的方法是().选项:A:strcpy(str2,str1);B:strcpy("China",str2);C:str2=str1;D:strcpy(str1,str2);答案:【strcpy(str2,str1);】第五章单元测试1、问题:下面结构体的定义语句中错误的是().选项:A:structst{intnum,charname[20];}sta;B:struct{intnum,charname[20];}a;C:structst{intnum,charname[20];}a;D:structst{intnum,charname[20];};sta;答案:【structst{intnum,charname[20];}sta;】2、问题:structabc{intx;inty;}data1=(2,3),data2;则以下赋值语句中错误的是()。选项:A:data2.x=data1.x;B:data2=data1;C:data2.y=data1.y;D:data2(9,10);答案:【data2(9,10);】3、问题:structabc{intx;chary[20];doublez;}data;则以下给结构体变量成员x赋值语句中正确的是()。选项:A:data->x=100;B:data.(*x)=100;C:*data.x=100;D:data.x=100;答案:【data.x=100;】4、问题:structs{inta,b;}data[2]={10,100,20,200};intmain(){sp=data[1];cout<选项:A:21B:20C:10答案:【20】5、问题:运行程序,程序输出结果是()。#includeusingnamespacestd;intmain(){structstud{charnum[5];ints[4];doubleave;}a;cout<选项:A:29B:32C:30D:31答案:【32】6{、问题:有下列结构体声明语句structstudent{intnum;charname[20];floatscore[3];};students[3]=123,"LiFang",67,89,90};要对第1个学生的成绩输出总分,下列表达式正确的是().选项:A:cout<B:cout<C:cout<D:cout<答案:【cout<】7{、问题:定义以下结构体类型,运行程序的输出结果是()。#includeusingnamespacestd;intmain()structs{inta;doubleb;};cout<选项:A:16B:18C:14D:12答案:【16】8、问题:当定义一个结构体变量时,系统为它分配的内存空间是().选项:A:结构体中占内存容量最大者所需的容量B:结构中第一个成员所需的内存容量C:结构中各成员所需内存容量之和D:结构中一个成员所需的内存容量答案:【结构中各成员所需内存容量之和】9、问题:运行程序,程序输出结果为()#includeusingnamespacestd;intmain(){structs{intx;}a[3];cout<选项:A:12B:18C:4D:6答案:【12】1{0、问题:定义以下结构体数组,运行程序,程序输出结果是()。#includeusingnamespacestd;intmain(){structcintx;inty;}s[2]={1,3,2,7};cout<选项:A:14B:21C:6D:2答案:【2】1{1、问题:运行程序,程序运行结果是()#includeusingnamespacestd;structKeyWord{charKey[20];intID;}kw[]="void",1,"char",2,"int",3,"float",4,"double",5};intmain(){cout<选项:A:l,4B:f,4C:n,3D:i,3答案:【f,4】12、问题:#includeusingnamespacestd;structstudent{charname[10];intscore[50];floataverage;}stud1;intmain(){cout<选项:A:128B:216C:64D:256答案:【216】13、问题:运行程序,程序运行结果是()。#includeusingnamespacestd;intmain(){structperson{charname[9];intage;};persona[5]={"John",17,"Paul",19,"Mary",18,"Adam",16};cout<选项:A:JohnB:AdamC:MaryD:Paul答案:【Mary】1{4、问题:运行程序,程序运行结果是()#includeusingnamespacestd;intmain()structdate{intyear;intmonth;intday;};structs{datebirthday;charname[20];}x[4]={{2008,10,1,"guangzhou"},{2009,12,25,"Tianjin"}};cout<<x[0].name<<","<选项:A:guangzhou,2009B:guangzhou,2008答案:【guangzhou,2009】1{5、问题:运行程序,程序输出结果是()。#includeusingnamespacestd;structcontry{intnum;charname[20];}x[5]=1,"China",2,"USA",3,"France",4,"Englan",5,"Spanish"};intmain(){inti;for(i=3;i<5;i++)cout<选项:A:4E5SB:F4EC:3F4E5SD:c2U3F4E答案:【4E5S】第六章单元测试1、问题:若有定义语句intc[5],*p=c;则以下对数组c第1个元素地址的正确引用是()。选项:A:p+5B:c++C:&c[0]D:&c+1答案:【&c[0]】2、问题:运行程序,程序输出结果是()。#includeusingnamespacestd;intmain(){inta[3][3],*p=&a[0][0],i;for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)cout<选项:A:123B:345C:234D:012答案:【345】3、问题:运行程序,程序输出结果是().#includeusingnamespacestd;intmain(){intfun(char*s);chary[]="abcd";cout<选项:A:6B:4C:0D:5答案:【4】4、问题:执行语句y=(*++p)--后,数组a中的元素的值变为().选项:A:0,1,3,4B:1,2,3,3C:1,1,3,4D:1,2,2,4答案:【1,1,3,4】5{、问题:运行程序,程序输出结果是()。#includeusingnamespacestd;intmain()charstr[100]="program",*p=str;cout<<(p+2)<选项:A:pB:ogramC:rogramD:pro答案:【ogram】6{、问题:运行程序,程序输出结果是()。#includeusingnamespacestd;intmain()charstr[100]="program",*p=str;cout<<*(p++)<选项:A:proB:rC:pD:rogram答案:【p】7、问题:运行程序,程序输出结果是().#includeusingnamespacestd;intmain(){charstr[100]="program",*p=str;str[3]=0;cout<选项:A:proB:ogramC:rD:o答案:【pro】8、问题:若有变量定义语句inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是().选项:A:*p+6B:*(p+5)C:p+5D:*p+=6答案:【*(p+5)】9、问题:己知inta[10]={3,7,9,15},*p=a;则不能表示a数组中元素的选项是().选项:A:aB:*pC:*aD:a[p-a]答案:【a】10、问题:己知inta[]={0,2,4,6,8,10},*p=a+1;其值等于0的表达式是().选项:A:*(p++)B:*(p--)C:*(--p)D:*(++p)答案:【*(--p)】1{1、问题:运行程序,程序运行结果是()。#includeusingnamespacestd;intmain(){staticinta[4]={7,8,9},b[4]=4,5,6},c[4],i;for(i=0;i<3;i++)c[i]=a[i]+b[i];cout<选项:A:15B:0答案:【0】12、问题:运行程序,程序运行结果是().#includeusingnamespacestd;intmain(){chara[3]={'a','b','c'},*p=a+1;cout<选项:A:不确定B:bcC:bD:abc答案:【不确定】13、问题:运行程序,程序运行结果是()。#include#includeusingnamespacestd;intmain(){stringa="string",*p=&a;cout<选项:A:变量a的地址B:stringC:变量p的地址D:s答案:【变量a的地址】14、问题:设voidf1(int*m,long&n);inta;longb;则以下调用合法的是()。选项:A:f1(a,b);B:f1(&a,&b);C:f1(&a,b);D:f1(a,&b);答案:【f1(&a,b);】15、问题:运行程序,程序运行结果是()。#includeusingnamespacestd;voidf(char*x){cout<<*x<选项:A:aB:abcdC:abcD:d答案:【d】16、问题:已知:intm=5;下列表示引用的方法中正确的是().选项:A:int&t=5;B:int&Z;C:int&X=m;D:float&f=&m;答案:【int&X=m;】1{7、问题:运行程序,程序输出结果是().voidsub(int*s,int*y){staticintt=3;*y=s[t];t--;}intmain(){inta[]=1,2,3,4},i,x=0;for(i=0;i<4;i++){sub(a,&x);cout<选项:A:1234B:4321C:0000D:4444答案:【4321】18、问题:已知有定义inta[5];a数组中最后一个元素的地址可表示为().选项:A:a+4B:&a[5]C:&a+4D:a+5答案:【a+4】19、问题:有定义inta[]={2,5,6,},*p=a;则*(p+1)所代表的数组元素是()。选项:A:a[2]B:a[1]C:a[0]D:a[3]答案:【a[1]】20、问题:已有定义inta[10],*p;则正确的赋值语句是().选项:A:p=a+2;B:p=a[2]+2;C:p=100;D:p=a[5];答案:【p=a+2;】第七章单元测试1、问题:在下列关于类概念的各个描述中,()是错误的。选项:A:类是创建对象的样板B:类是抽象的,对象是具体的C:客观世界中任何一个具体的物体都可以看成一个类D:类是对象的模板,是用来定义对象的一种抽象类型答案:【客观世界中任何一个具体的物体都可以看成一个类】2、问题:在下列关于类和对象的描述中,()是错误的。选项:A:类是对象的模板,对象是类的实例B:类是抽象的,对象是具体的,两者都占有内存空间C:客观世界中任何一个具体的物体都可以看成一个对象D:把某些具有共同属性和行为的对象抽象为一种类型被称为类答案:【类是抽象的,对象是具体的,两者都占有内存空间】3、问题:类的实例化是指()。选项:A:创建类的对象B:定义类C:指明具体类D:调用类答案:【创建类的对象】4、问题:下列说法中正确的是()。选项:A:类中的成员数据可以在类体中(类内)定义,也可以在类体之外(类外)定义B:类的成员函数既可以定义在类体中(类内),也可以定义在类体外(类外),但必须在类体中(类内)声明C:在类体之外定义的成员函数不能操作该类的私有数据成员D:类的成员函数只能在类体中(类内)定义答案:【类的成员函数既可以定义在类体中(类内),也可以定义在类体外(类外),但必须在类体中(类内)声明】5、问题:关于构造函数不正确的说法是()。选项:A:构造函数可以有返回值B:构造函数名与类名相同C:构造函数初始化时为对象开辟内存空间D:一个类可以有多个构造函数答案:【构造函数可以有返回值】6、问题:有如下定义和语句classcalc{public:voidshow(){cout<>a>>b;}};calct,*pt=&t;在main()函数中下面不正确的语句是()。选项:A:pt->show()B:t.show()C:(*pt).show()D:t.set()答案:【t.set()】7、问题:有如下定义和语句:classStudent{public:voiddisplay(){cout<选项:A:t->display();B:p->num=10101;C:p->display();D:(*p)->display();答案:【p->display();】8、问题:要让一个类中的所有对象的同一数据有不同的值,请不要使用()。选项:A:保护数据成员B:公有数据成员C:私有数据成员D:静态数据成员答案:【静态数据成员】9、问题:下面选项中不属于面向对象程序设计特征的是()。选项:A:多元性B:封装性C:继承性D:抽象性答案:【多元性】10、问题:已知类A是类B的友元,类B是类C的友元,则()。选项:A:类C一定是类A的友元B:类A一定是类C的友元C:类A的成员函数可以访问类B的对象的任何成员D:类C的成员函数可以访问类B的对象的任何成员答案:【类A的成员函数可以访问类B的对象的任何成员】11、问题:成员函数代码量很多,或具有多个成员函数,采用类内定义的方式比较合适。选项:A:错B:对答案:【错】12、问题:成员函数是一个类的成员,出现在类体中,也就是只能被类内其他成员函数调用。选项:A:对B:错答案:【错】13、问题:通过对象无法访问private和protected属性的成员变量和成员函数,而仅可以访问public属性的成员变量和成员函数。选项:A:对B:错答案:【对】14、问题:在C++语言中,可以通过传值方式作为函数的参数或函数返回值。选项:A:错B:对答案:【对】15、问题:构造函数可以有返回值也可以无返回值。选项:A:对B:错答案:【错】16、问题:构造函数可以有一个参数或多个参数,可以为参数设置一个默认值。选项:A:错B:对答案:【对】17、问题:任何一个对象只能属于一个具体的类。选项:A:对B:错答案:【对】18、问题:声明时加关键字static的类中所有的成员数据是属于类的,任何一个对象都可以共享该成员数据。选项:A:对B:错答案:【对】19、问题:友元函数是成员函数,友元函数可以访问类中的私有成员。选项:A:错B:对答案:【错】20、问题:无论什么方式的继承,基类的私有成员都不能被派生类成员函数访问(引用)。选项:A:对B:错答案:【对】第八章单元测试1、问题:下列对派生类的描述中,错误的是()。选项:A:一个派生类可以作为另一个派生类的基类B:派生类中继承的基类成员的访问权限到派生类保持不变C:派生类至少有一个基类D:派生类的成员除了它自己的成员之外,还包含了它的基类的成员答案:【派生类中继承的基类成员的访问权限到派生类保持不变】2、问题:下列有关继承和派生的叙述中,不正确的是()。选项:A:派生类的新增公用成员可以被该类创建的对象引用B:基类的成员函数可以访问基类成员C:派生类的成员函数可以访问派生类自己增加的成员D:基类的成员函数可以访问派生类的成员答案:【基类的成员函数可以访问派生类的成员】3、问题:下列对派生类的描述中,错误的是()。选项:A:派生类只继承了基类的公有成员和保护成员B:一个派生类可以作为另一个派生类的基类C:派生类至少有一个基类D:派生类的缺省(默认)继承方式是private答案:【派生类只继承了基类的公有成员和保护成员】4、问题:下列有关公共继承的继承和派生的关系描述中,不正确的是()。选项:A:基类的公用成员和保护成员在派生类中仍然保持其公用成员和保护成员的属性B:基类的私有成员,基类的成员函数可以引用它C:派生类的公用成员可以被派生类创建的对象引用D:基类的私有成员,因为是公用继承,可以被派生类的新增成员函数引用答案:【基类的私有成员,因为是公用继承,可以被派生类的新增成员函数引用】5、问题:下列有关继承和派生的叙述中,正确的是()。选项:A:基类的保护成员在派生类中仍然是保护成员B:基类的公用成员在派生类中仍然是公用成员C:私有继承的派生类作为基类继续派生,下一层的派生类无法访问它的任何成员D:派生类成员函数不能访问通过私有继承的基类的保护成员答案:【私有继承的派生类作为基类继续派生,下一层的派生类无法访问它的任何成员】6、问题:下列有关保护继承的继承和派生的叙述中,正确的是()。选项:A:基类的私有成员在派生类中变为是保护成员B:派生类成员函数不能访问通过保护继承的基类的保护成员C:派生类成员函数不能访问通过保护继承的基类的私有成员D:派生类成员函数不能访问通过保护继承的基类的公有成员答案:【派生类成员函数不能访问通过保护继承的基类的私有成员】7、问题:下列有关继承和派生的叙述中,正确的是()。选项:A:派生类的指针变量,可以访问基类的成员B:基类的指针变量可以指向派生类对象C:派生类的指针变量可以指向基类对象D:基类的指针变量,可以访问派生类新增加的成员答案:【基类的指针变量可以指向派生类对象】8、问题:一个派生类不仅可以从一个基类派生,也可以从多个基类派生。选项:A:错B:对答案:【对】9、问题:继承方式包括:public(公用的),private(私有的)和protected(受保护的),应用中public(公用的)最常见。选项:A:对B:错答案:【对】10、问题:当不需要对派生类新增的成员进行任何初始化操作时,派生类构造函数的函数体可以为空,即构造函数是空函数。选项:A:对B:错答案:【对】11、问题:在派生时,派生类不能继承基类的析构函数。选项:A:对B:错答案:【对】12、问题:派生类的指针变量也可以指向基类对象。选项:A:对B:错答案:【错】13、问题:派生类的继承方式有两种:公有继承和私有继承。选项:A:错B:对答案:【错】14、问题:在公有继承中,派生类对象只能引用基类中的公有成员和派生类新增的公共成员。选项:A:对B:错答案:【对】15、问题:在私有继承中,基类中只有公有成员可以被派生类成员函数引用。选项:A:对B:错答案:【错】16、问题:派生类是它的基类的组合。选项:A:对B:错答案:【错】17、问题:析构函数不能被继承。选项:A:对B:错答案:【对】第九章单元测试1、问题:下列描述中,()是抽象类的特性。选项:A:可以声明虚函数B:可以进行构造函数重载C:不能创建其对象D:可以定义友元函数答案:【不能创建其对象】2、问题:关于虚函数的描述中,()是正确的。选项:A:虚函数是一个static类型的成员函数B:虚函数是一个非成员函数C:基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数D:派生类的虚函数与基类的虚函数具有不同的参数个数和类型答案:【基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数】3、问题:实现运行时的多态性采用()。选项:A:虚函数B:重载函数C:构造函数D:析构函数答案:【虚函数】4、问题:以下基类中的成员函数表示纯虚函数的是()。选项:A:virtualvoidtt(int){}B:virtualvoidtt(int)C:voidtt(int)=0D:virtualvoidtt()=0答案:【virtualvoidtt()=0】5、问题:关于纯虚函数和抽象类的描述中,()是错误的。选项:A:抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出B:抽象类是指具有纯虚函数的类C:纯虚函数是一种特殊的虚函数,它不能实例化对象D:一个基类中声明有纯虚函数,该基类的派生类一定不再是抽象类答案:【一个基类中声明有纯虚函数,该基类的派生类一定不再是抽象类】6、问题:下列有关C++的面向对象方法的多态的概念的叙述中,不正确的是()。选项:A:存在基类类型的指针指向派生类对象,基类和派生类的同名虚函数的参数必须相同B:存在基类类型的指针指向派生类对象,且通过该指针调用虚函数C:必须存在着声明为虚函数的友元函数D:C++的面向对象方法的多态,必须存在基类指针指向派生类对象答案:【必须存在着声明为虚函数的友元函数】7、问题:执行以下程序代码后,将会输出的结果是()。#includeusingnamespacestd;classBase{public:voiddisplay(){cout<<"I'mBaseclass!";}};classDerived:publicBase{public:voiddisplay(){cout<<"I'mDerivedclass!";}};intmain(){Base*p;Derivedtest;p=&test;p->display();return0;}选项:A:I'mDerivedclass!B:I'mDerivedclass!I'mBaseclass!C:I'mBaseclass!I'mDerivedclass!D:I'mBaseclass!答案:【I'mBaseclass!】8、问题:下列有关C++的面向对象方法的多态和虚函数的叙述中,正确的是()。选项:A:构造函数和析构函数都不能声明为虚函数B:构造函数和析构函数都能声明为虚函数C:派生类的析构函数可以声明为虚函数D:基类析构函数可以声明为虚函数答案:【基类析构函数可以声明为虚函数】9、问题:如果一个类至少有一个纯虚函数,那么就称该类为()。选项:A:都不对B:抽象类C:派生类D:虚函数答案:【抽象类】10、问题:下列有关C++的面向对象方法的多态和虚函数的叙述中,不正确的是()。选项:A:包含纯虚成员函数的抽象基类的派生类,在派生类中可以重新定义纯虚函数为非纯虚成员函数B:包含纯虚成员函数的类即为抽象基类C:抽象基类的派生类,增加新的成员函数或成员数据后,可以用于创建对象D:抽象基类不能实例化答案:【抽象基类的派生类,增加新的成员函数或成员数据后,可以用于创建对象】11、问题:类的成员函数前面加virtual关键字,则这个成员函数称为虚函数。选项:A:错B:对答案:【对】12、问题:虚函数是一个成员函数。选项:A:对B:错答案:【对】13、问题:要想形成多态必须具备必须存在继承关系,继承关系中必须有同名的虚函数,并且基类和派生类的同名虚函数的参数必须不同。选项:A:错B:对答案:【错】14、问题:将基类中的成员函数通过virtual关键字声明为虚函数之后,即使在派生类中同名同参数函数声明时未加上virtual关键字,但它在所有的派生类中都将自动成为虚函数。选项:A:对B:错答案:【对】15、问题:纯虚函数是一个非成员函数。选项:A:错B:对答案:【错】16、问题:析构函数必须声明为虚函数。选项:A:对B:错答案:【错】17、问题:含有纯虚函数的类可以定义对象。选项:A:错B:对答案:【错】18、问题:纯虚成员函数可以被派生类继承,如果派生类不重新定义抽象基类中的所有纯虚成员函数,则派生类同样会成为抽象基类,因而也不能用于创建对象。选项:A:对B:错答案:【对】19、问题:如果派生类的成员函数的原型(函数的首部)与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性。选项:A:对B:错答案:【对】20、问题:纯虚函数是一个在基类中声明的没有具体内容的虚函数,为了实现多态(或接口功能),要求派生类定义自己的版本。选项:A:错B:对答案:【对】第十章单元测试1、问题:下列运算符中,()运算符在C++中不能重载。选项:A:[]B:::C:+=D:+答案:【::】2、问题:利用成员函数重载运算符:obj1*obj2被编译器解释为()。选项:A:*(obj1,obj2)B:obj2.operator*(obj1)C:operator*(obj1,obj2)D:obj1.operator*(obj2)答案:【obj1.operator*(obj2)】3、问题:如果对类对象使用逻辑运算符“==”重载,以下函数声明正确的是()。选项:::;::;::;::;答案:【::;】4、问题:在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是()。选项:A:作为成员函数重载的单目运算符B:作为成员函数重载的双目运算符C:作为友元函数重载的单目运算符D:作为友元函数重载的双目运算符答案:【作为成员函数重载的单目运算符】5、问题:在语句intn;cin>>n;中,cin是()。选项:A:对象名B:变量名C:函数名D:类名答案:【对象名】6、问题:关于运算符重载,下列表述中错误的是()。选项:A:不可以通过运算符重载来创建C++中原来没有的运算符B:C++已有的大部分运算符都可以重载C:C++中的运算符不能做多次重载定义D:运算符函数的返回类型不能声明为基本数据类型答案:【运算符函数的返回类型不能声明为基本数据类型】7、问题:C++流中重载的运算符<<是一个()。选项:A:用于输入操作的非成员函数B:用于输入操作的成员函数C:用于输出操作的成员函数D:用于输出操作的非成员函数答案:【用于输出操作的非成员函数】8、问题:若要对BigData类中用成员函数方式重载取模运算符,下列声明选项中正确的是()。选项:A:BigData%(constBigData);B:BigDataoperator%(constBigData);C:operator%(BigData,BigData);D:BigData%operator(constBigData);答案:【BigDataoperator%(constBigData);】9、问题:下列运算符中哪些是不能够被重载的()。选项:A:+=,new,/=,==B:*=,++,delete,=C:–>*,.*,sizeof,::,?:D:[],%,<=,--答案:【–>*,.*,sizeof,::,?:】10、问题:下面是重载为非成员函数的运算符的函数原型,其中错误的是()。选项:A:BigIntoperator-(BigInt,BigInt);B:BigInt&operator*(BigInt,BigInt);C:BigIntoperator+(BigInt,BigInt);D:BigInt&operator=(BigInt&,BigInt);答案:【BigInt&operator=(BigInt&,BigInt);】11、问题:如果表达式a>=b,中的“>=”是作为非成员函数重载的运算符,则可以等效地表示为()。选项:A:a.operator>=(b,a)B:a.operator>=(a)C:operator>=(a,b)D:a.operator>=(b)答案:【operator>=(a,b)】12、问题:在名为BigNumber类的类体中对运算符函数double进行如下声明:operatordouble(BigNumber);函数声明中有一个明显的错误,这个错误就是()。选项:A:函数声明中缺少函数体B:缺少对函数返回类型的说明C:参数表中不应该有任何参数D:参数声明中缺少参数变量答案:【参数表中不应该有任何参数】13、问题:下列关于运算符重载的描述中,正确的是()。选项:A:一元运算符只能作为成员函数重载B:运算符重载成为成员函数时,若参数表中无参数,重载是一元运算符C:二元运算符重载成为非成员函数时,参数表中有一个参数D:C++中可以重载所有的运算符答案:【运算符重载成为成员函数时,若参数表中无参数,重载是一元运算符】14、问题:下列关于运算符重载的描述中,()是正确的。选项:A:运算符重载可以改变优先级B:运算符重载不可以改变语法结构C:运算符重载可以改变操作数的个数D:运算符重载可以改变结合性答案:【运算符重载不可以改变语法结构】15、问题:下列关于C++流的叙述中,下面说法正确的是()。选项:A:cin是C++预定义的标准输入流函数B:cin是C++预定义的标准输入流对象C:cin是C++预定义的标准输入流类D:以上答案都不对答案:【cin是C++预定义的标准输入流对象】16、问题:若要在类中将*重载为一元运算符,下列重载函数声明中肯定有错的是()。选项:答案:【】17、问题:重载流插入运算符<<时,下列设计不合理的是()。选项:A:将运算符函数的第一个参数设为ostream&B:为运算符函数设置两个参数C:将运算符定义为类的成员函数D:将运算符函数的返回值类型设为ostream&答案:【将运算符定义为类的成员函数】18、问题:若为类MyNumber重载运算符“/”,下列声明中,错误的是()。选项:A:friendMyNumberoperator/(float,MyNumber);B:friendMyNumberoperator/(MyNumber,MyNumber);C:friendMyNumberoperator/(int,float);D:friendMyNumberoperator/(MyNumber,int);答案:【friendMyNumberoperator/(int,float);】19、问题:运算符重载时以下性质不一定会保持的是()。选项:A:返回值类型、操作数类型B:操作数的个数、结合性C:优先级、结合性D:操作数的个数、优先级答案:【返回值类型、操作数类型】20、问题:以下类中说明了“++”运算符重载函数的原型。{public:......};编译器把表达式”++d”解释为:()。选项:A:d.operator++()B:d.operator++(d)C:operator++(d)D:operator++()答案:【operator++(d)】第十一章单元测试1、问题:C++程序进行文件的输入,除了包含头文件iostream外,还要包含头文件()。选项:A:ostreamB:cstdioC:fstreamD:ifstream答案:【ifstream】2、问题:C++语言中,程序通过操纵符进行格式输出处理时,必须包含的头文件是()。选项:A:stdlib.hB:fstream.hC:iomanip.hD:iostream.h答案:【iomanip.h】3、问题:下列输出语句中,不正确的是()。选项:A:cout<<0x20;C:cout<<’\t\n’;D:cout.put('O');答案:【cout<<’\t\n’;】4、问题:在ios中提供控制格式的标志位中,转换为十六进制形式的标志位是()。选项:A:decB:octC:leftD:hex答案:【hex】5、问题:在执行语句intn,m;cin>>n>>m;中,输入数据的分隔符,错误的是()。选项:A:分号B:空格键D:换行符答案:【分号】6、问题:磁盘文件操作中,打开磁盘文件的访问方式常量中,以二进制方式打开文件的是()。选项:A:ios::inB:ios::outC:ios::binaryD:ios::ate答案:【ios::binary】7、问题:C++流中运算符>>是一个()。选项:A:用于输入操作的非成员函数B:用于输入操作的成员函数C:用于输出操作的非成员函数D:用于输出操作的成员函数答案:【用于输入操作的非成员函数】8、问题:执行以下C++程序:char*num;cin>>num;cout<选项:

温馨提示

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

评论

0/150

提交评论