C期末复.docx
- 文档编号:25151876
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:91
- 大小:74.14KB
C期末复.docx
《C期末复.docx》由会员分享,可在线阅读,更多相关《C期末复.docx(91页珍藏版)》请在冰豆网上搜索。
C期末复
考试题型:
填空(10)
选择(30)
程序应用
程序填空(20)
读程序写结果(10)
编程(30)
或
填空(20)
选择(30)
程序应用
程序填空(10)
读程序写结果(10)
编程(30)
一、单项选择题
1.C++源程序文件的默认扩展名为。
A.cppB.exeC.objD.lik
2.由C++源程序文件编译而成的目标文件的默认扩展名为。
A.cppB.exeC.objD.lik
3.由C++目标文件连接而成的可执行文件的默认扩展名为。
A.cppB.exeC.objD.lik
4.C++程序从上机到得到结果的几个操作步骤依次是。
A.编译、编辑、连接、运行B.编辑、编译、连接、运行
C.编译、运行、编辑、连接D.编辑、运行、编辑、连接
5.以下标识符中不全是保留字的是。
A.caseforinB.defaultthenwhile
C.boolclasslongD.gotoreturnchar
6.能作为C++程序的基本单位是。
A.字符B.语句C.函数D.源程序文件
7.程序中主函数的名字为。
A.mainB.MAINC.MainD.任意标识符
8.C++程序的基本模块为。
A.表达式B.标识符C.语句D.函数
9.可用作C++语言用户标识符的一组标识符是。
A.voiddefine+WORDB.a3_b3_123YN
C.for-abcCaseD.2aDOsizeof
10.存储以下数据,占用存储字节最多的是。
A.0B.‘0’C.“0”D.0.0
11.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用符号作为分隔符。
A.空格或逗号B.逗号或回车
C.逗号或分号D.空格或回车
12.设“inta=12;”,则执行完语句“a+=a*a;”后,a的值是。
A.12B.144C.156D.288
13.假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式
的表达式是。
A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c
14.设“inta=15,b=26;”,则“cout<<(a,b);”的输出结果是。
A.15B.26,15C.15,26D.26
15.设x是一个bool型的逻辑量,y的值为10,则表达式x&&y的值为。
A.1B.0C.与x值相同D.与x值相反
16.x>0&&x<=10的相反表达式为。
A.x<=0||x>10B.x<=0&&x>10C.x<=0||x<=10D.x>0&&x>10
17.x>0||y==5的相反表达式为。
A.x<=0||y!
=5B.x<=0&&y!
=5
C.x>0||y!
=5D.x>0&&y==5
18.设x和y均为bool量,则x&&y为真的条件是。
A.它们均为真B.其中一个为真
C.它们均为假D.其中一个为假
19.设x和y均为bool量,则x||y为假的条件是。
A.它们均为真B.其中一个为真
C.它们均为假D.其中一个为假
20.字符串“a+b=12\n”的长度为。
A.6B.7C.8D.9
21.假定下列x和y均为int型变量,则不正确的赋值为。
A.x+=y++B.x++=y++C.x=++yD.++x=++y
22.下列的符号常量定义中,错误的定义是。
A.constM=10;B.constintM=20;
C.constcharch;D.constboolmark=true;
23.循环语句“for(inti=0;i A.1B.n-1C.nD.n+1 24.在下面循环语句中循环体执行的次数为。 for(inti=0;i if(i>n/2)break; A.n/2B.n/2+1C.n/2-1D.n-1 25.在下面循环语句中内层循环体S语句的执行总次数为。 for(inti=0;i for(intj=i;j A.n2B.(n+1)/2C.n(n-1)/2D.n(n+1)/2 26.在下面循环语句中循环体执行的次数为。 inti=0,s=0;while(s<20){i++;s+=i;} A.4B.5C.6D.7 27.在下面循环语句中循环体执行的次数为。 Inti=0;doi++;while(i*i<10); A.4B.3C.5D.2 28.当处理特定问题时的循环次数已知时,通常采用来解决。 A.for循环B.while循环C.do循环D.switch语句 29.循环体至少被执行一次的语句为。 A.for循环B.while循环C.do循环D.任一种循环 30.switch语句能够改写为语句。 A.forB.ifC.doD.while 31.do语句能够改写为语句。 A.复合B.ifC.switchD.while 32.在下面的一维数组定义中,哪一个有语法错误? A.inta[]={1,2,3};B.inta[10]={0};C.inta[];D.inta[5]; 33.在下面的字符数组定义中,哪一个有语法错误? A.chara[20]=”abcdefg”;B.chara[]=”x+y=55.”; C.chara[15];D.chara[10]=’5’; 34.在下面的二维数组定义中,正确的是。 A.inta[5][];B.inta[][5]; C.inta[][3]={{1,3,5},{2}};D.inta[](10); 35.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为。 A.2B.4C.6D.8 36.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为。 A.0B.4C.8D.6 37.若定义了函数double*function(),则函数function的返回值为 A.实数型B.实数的C.指向函数的指D.函数的地址 38.以下说法中正确的是。 A.C++程序总是从第一个定义的函数开始执行 B.C++程序总是从main函数开始执行 C.C++函数必须有返回值,否则不能使用函数 D.C++程序中有调用关系的所有函数必须放在同一个程序文件中 39.以下叙述中不正确的是。 A.在一个函数中,可以有多条return语句 B.函数的定义不能嵌套,但函数的调用可以嵌套 C.函数必须有返回值 D.不同的函数中可以使用相同名字的变量 40.函数重载是指。 A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C.两个以上的函数名字不同,但形参的个数或类型相同 D.两个以上的函数取相同的函数名,并且函数的返回类型相同41.以下关于函数模板叙述正确的是 A.函数模板也是一个具体类型的函数B.函数模板的类型参数与函数的参数是同一个概念 C.通过使用不同的类型参数,函数模板可以生成不同类型的函数 D.用函数模板定义的函数没有类型 42.下列的调用方式是引用调用。 A.形参和实参都是变量B.形参是指针,实参是地址值 C.形参是引用,实参是变D.形参是变量,实参是地址值 43.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择。 A.内联函数B.重载函数C.递归函D.函数模板 44.函数原型语句正确的是。 A.intFunction(voida);B.voidFunction(int); C.intFunction(a);D.voidint(doublea); 45.C++中函数返回值的类型是由决定的。 A.return语句中表达式的类型B.该函数定义时的类型 C.调用函数时的调用语句D.系统根据结果 46.以下函数的返回结果是。 intfunction(char*x){ char*p=x;while(*p++);return(p-x-1); } A.求字符串的长度B.将字符串x连接到字符串p后面 C.将字符串x复制到字符串p中D.将字符串x反向存放 47.函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为个。 A.1B.2C.4D.5 48.设有如下函数定义 intf(char*s){ char*p=s; while(*p! =’\0’)p++; return(p-s); } 在主函数中用cout< A.3B.4C.5D.6 49.以下正确的函数原型语句是。 A.doublefun(intx,inty)B.doublefun(intx;inty) C.doublefun(int,int);D.doublefun(intx,y); 50.以下正确的说法是。 A.用户调用标准库函数前,必须重新定义 B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C.系统不允许用户重新定义标准库函数 D.用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中 51.以下正确的描述是。 A.函数的定义可以嵌套,函数的调用不可以嵌套 B.函数的定义不可以嵌套,函数的调用可以嵌套 C.函数的定义和函数的调用均可以嵌套 D.函数的定义和函数的调用均不可以嵌套 52.以下错误的描述是。 A.被调用函数中可以不用return语句 B.被调用函数中可以用多个return语句 C.被调用函数中,如果有返回值,就一定要有return语句 D.被调用函数中,一个return语句可返回多个值给调用函数 53.采用重载函数的目的是。 A.实现共享B.减少空间C.提高速度D.使用方便,提高可读性54.以下叙述中正确的是。 A.使用#define可以为常量定义一个名字,该名字在程序中可以再赋给另外的值 B.使用const定义的常量名有类型之分,其值在程序运行时是不可改变的 C.在程序中使用内联函数使程序的可读性变差 D.在定义函数时可以在形参表的任何位置给出缺省形参值 55.当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是。 A.直接按系统设定的标准方式搜索目录 B.先在源程序所在目录搜索,再按系统设定的标准方式搜索目录 C.仅仅搜索源程序所在目录 D.搜索当前逻辑盘上的所有目录 56.关于局部变量,下面说法正确的是。 A.定义该变量的程序文件中的函数都可以访问 B.定义该变量的函数中的定义处以下的任何语句都可以访问 C.定义该变量的复合语句中的定义处以下的任何语句都可以访问 D.定义该变量的函数中的定义处以上的任何语句都可以访问 57.编译预处理命令在程序中都是以符号开头的。 A.*B.#C.&D.@ 58.用new运算符创建一维数组的正确语句是。 A.int*p=newa[10];B.int*p=newfloat[10]; C.int*p=newint[10];D.int*p=newint[5]={1,2,3,4,5}; 59.设有定义“staticintdata[5][6];”,又设该数组在静态存储区中的起始地址为十进制的100,若每个int型数占4个字节,则数组元素data[2][3]的字节地址为。 A.115B.124C.130D.160 60.假定k是一个double类型的变量,则关于变量p的正确定义语句为。 A.doublep=&k;B.int*p=&k; C.double&p=*k;D.char*p=“Thankyou! ”; 61.关于void指针,下列说法正确的是。 A.void指针就是未指向任何数据的指针 B.void指针就是已定义而未初始化的指针 C.指向任何类型数据的指针可直接赋给一个void指针 D.void指针值可直接赋给一个非void指针 62.假定有定义“intb[10];int*pb;”,则不正确的赋值语句为。 A.pb=b;B.pb=&b[0]; C.pb=newint;D.pb=b[5]; 63.假定指针p指向的字符串为“string”,则语句“cout< A.stringB.ringC.ingD.i 64.要使指针p指向动态空间中的包含30个整数单元的数组,使用的语句为。 A.int*p=newint[30];B.int*p=newint(30); C.int*p=new[30];D.*p=newint[30]; 65.假定有定义“structBOOK{chartitle[40];floatprice;};BOOK*book;”,则不正确的语句为。 A.BOOK*x=newbook; B.BOOKx={“C++Proaramming”,27.0}; C.BOOK*x=newBOOK; D.BOOK*x=book; 66.下列对引用的陈述中不正确的是。 A.每一个引用都是其所引用对象的别名,因此必须初始化 B.形式上针对引用的操作实际上作用于它所引用的对象 C.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行 D.不需要单独为引用分配存储空间 67.假定变量b和pb定义为“intb[10],*pb=b;”,要将24赋值给b[1]元素中,不正确的语句是。 A.*(pb+1)=24;B.*(b+1)=24; C.*++b=24;D.*++pb=24; 68.假定指针变量p定义为“int*p=newint[30];”,要释放p所指的动态内存,应使用的语句为。 A.deletep;B.delete*p;C.delete&p;D.delete[]p; 69.关于消息,下列说法中不正确的是。 A.发送消息的对象请求服务,接受消息的对象提供服务 B.消息的发送者必须了解消息的接收者如何使用消息 C.在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用 D.每个对象只能接收某些特定格式的消息 70.面向对象方法的多态性是指。 A.一个类可以派生出多个特殊类 B.一个对象在不同的运行环境中可以有不同的变体 C.针对一消息,不同的对象可以以适合自身的方式加以响应。 D.一个对象可以是由多个其他对象组合而成的 71.软件产品可被全部或部分地再用于新的应用的能力叫做软件的。 A.可维护性B.可复用性C.兼容性D.正确性 72.软件产品准确执行软件需求规格说明书中所规定的任务的能力叫做软件的。 A.可维护性B.可复用性C.兼容性D.正确性 73.面向对象软件开发中使用的OOD表示。 A.面向对象分析B.面向对象设计 C.面向对象语言D.面向对象方法 74.在一个类的定义中,包含有成员的定义。 A.数据B.函数C.数据和函数D.数据或函数 75.在关键字public后面定义的成员为类的成员。 A.私有B.公有C.保护D.任何 76.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为。 A.x(a)B.x[a]C.x->aD.x.a 77.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为。 A.px(a)B.px[a]C.px->aD.px.a 78.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类体外定义,则函数头为。 A.intAA: : a()B.intAA: a() C.AA: : a()D.AA: : inta() 79.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字放在函数原型或函数头的前面。 A.inB.inlineC.inLineD.InLiner 80.在多文件结构的程序中,通常把类中所有非内联成员函数的定义单独存放于。 A.主文件B.实现文件C.库文件D.头文件 81.一个C++程序文件的扩展名为。 A..hB..cC..cppD..cp 82.在C++程序中使用的cout标识符是系统类库中定义的类中的一个对象。 A.istreamB.ostreamC.iostreamD.fstream 83.假定AA为一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为。 A.abcB.*thisC.thisD.this& 84.假定AA为一个类,“AA*abc()const;”是该类中一个成员函数的原型,若该函数返回this值,当用x.abc()调用该成员函数后,x的值 A.已经被改变B.可能被改变 C.不变D.受到函数调用的影响 85.结构中定义的成员默认为访问属性。 A.publicB.privateC.protectedD.friend 86.对于一个类的析构函数,其函数名与类名。 A.完全相同B.完全不同C.只差一个字符D.无关系 87.类的析构函数是一个对象被时自动调用。 A.建立B.撤消C.赋值D.引用 88.一个类的析构函数通常被定义为该类的成员。 A.私有B.保护C.公有D.友元 89.假定AB为一个类,则执行“ABx(4,5);”语句时将自动调用该类的。 A.带参构造函数B.无参构造函数 C.拷贝构造函数D.赋值重载函数 90.假定AB为一个类,r2为AB类的一个对象,则执行“ABr1=2;”语句时将会自动调用该类的。 A.无参构造函数B.带参构造函数 C.赋值重载函数D.拷贝构造函数 91.假定一个类的构造函数为“A(intaa=1,intbb=0){a=aa;b=bb;}”,则执行“Ax(4);”语句后,x.a和x.b的值分别为。 A.1和0B.1和4C.4和1D.4和0 92.假定一个类的构造函数为“B(intax,intbx): a(ax),b(bx){}”,执行“Bx(1,2),y(3,4);x=y;”语句序列后x.a的值为。 A.1B.2C.3D.4 93.假定一个类AB只含有一个整型数据成员a,为该类定义的带参构造函数可以为。 A.AB(){}B.AB(): a(0){} C.AB(inta=0){a=aa;}D.AB(intaa){} 94.对于任一个类,为该类定义的析构函数的个数至多为。 A.0B.1C.2D.任意个 95.设px是指向一个类对象的指针变量,则执行“deletepx;”语句时,将自动调用该类的。 A.无参构造函数B.带参构造函数 C.析构函数D.拷贝构造函数 96.假定一个类对象数组为A[n],当离开它定义的作用域时,系统自动调用该类析构函数的次数为。 A.0B.1C.nD.n-1 97.假定AB为一个类,则执行“AB*px=newAB[n];”语句时调用该类无参构造函数的次数为。 A.nB.n-1C.1D.0 98.假定AB为一个类,则执行“ABa (2),b[3],*p[4];”语句时共调用该类构造函数的次数为。 A.3B.4C.5D.9 99.假定AB为一个类,则执行“AB*p=newAB(1,2);”语句时共调用该类构造函数的次数为A.0B.1C.2D.3 100.对类对象成员的初始化是通过构造函数中给出的实现的。 A.函数体B.初始化表C.参数表D.初始化表或函数体 101.类的析构函数可以带有参数。 A.0B.1C.2D.任意 102.类的静态成员访问控制定义的。 A.只允许是privateB.只允许是private或protected C.只允许是publicD.可允许是private、protected 103.当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的。 A.只能是公有成员B.只能是保护成员 C.只能是除私有成员之外的任何成员D.具有任何权限的成员 104.双目运算符重载为普通函数时,其参数表中应带有个参数。 A.0B.1C.2D.3 105.如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为。 A.a.operator==(b)B.b.operator==(a) C.operator==(a,b)D.operator(b,a) 106.从一个基类派生出的各个类的对象之间。 A.共享所有数据成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 期末