C++笔试试题及答案(初级)1.从语法上看,()可以用做用户自定义标识符。A.-lengthB.func&xyzC.3dSpaceD.Main(正确答案)2.从语法上看,下列说法正确的是()。A.宏替换发生在程序运行时B.宏定义不可以嵌套C.宏替换是字符替换(正确答案)D.宏名必须用大写字母表示3.下面C++程序执行后,a的值是()。
#defineAREA(x)xx
voidmain()
{
inta=4,b=5,c=2;
a=AREA(b/c);
cout< } A.3B.16C.20(正确答案)D.254.函数调用“fun((exp1,exp2,exp3),(exp4,exp5))”中传递的实参是()。A.exp1,exp4B.exp1,exp2,exp3C.exp3,exp5(正确答案)D.exp4,exp55.a<3&&b&1的相反表达式为()。A.a<3||b&1B.a>=3&&b|1C.a>=3||b|1D.a>=3||b>>1<<1==b(正确答案)6.以下程序的输出是() voidfunc1(inta,intb){intc=a;a=b;b=c;} voidfunc2(int&a,int&b){intc=a;a=b;b=c;} voidmain(){ intx=19,y=92; func1(x,y); func2(x,y); cout< A.19,92B.92,19(正确答案)C.19,19D.92,927.设“intarray[3][5]={{2,4},{3,9,6}};”则array[1][1]的值为()。A.2B.4C.3D.9(正确答案)8.下列语句中,错误的是()。A.constinta=6;B.constdoublep;C.intconsta=6;D.doubleconstp;(正确答案)9.设“charx[]=”Hello”;chary[]={‘H’,’e’,’l’,’l’,’o’};”,则下列说法正确的是()。A.x数组和y数组的长度相同B.x数组的长度大于y数组的长度(正确答案)C.x数组的长度小于y数组的长度D.x数组与y数组等价10.在C++程序中,对象之间的相互通信通过()A.继承实现B.调用成员函数实现(正确答案)C.封装实现D.函数重载实现11.下面C++程序的输出结果是()。 classclassA private: staticintnum; public: classA(){num++;cout< ~classA(){num--;cout< }; intclassA::num=0; classAobject1; classAobject2; classBase{ virtualvoidfunction1(){} voidfunction2(){} classDerived:publicBase{ voidfunction1(){cout<<”classDerivedfunction1”< virtualvoidfunction2(){ cout<<”classDerivedfunction2”< A.Base::function2()和Derived::function1()都是虚函数B.Base::function2()和Derived::function1()都不是虚函数C.Derived::function1()是虚函数,而Base::function2()不是虚函数(正确答案)D.Derived::function1()不是虚函数,而Base::function2()是虚函数20.下列可以重载的运算符是()A.sizeof()B.->C.#D.!(正确答案)21.设“inta=3;intb=a<<3;”,那么b的值为()A.3B.9C.12D.24(正确答案)22.下面的C++程序执行后,输出的结果是() classExample{ intdata; voidSetData(inti); intdata=1; voidExample::SetData(intiData){data=iData;} Exampleobject1; intdata=5; object1.SetData(0); cout< object1.SetData(data); object1.SetData(::data); cout< A.0;1;5B.0;5;5C.0;5;1(正确答案)D.0;1;123.在WIN32平台下,sizeof(double)=(),sizeof(float)=(),sizeof(double)=(),括号内的值分别是()。A.4;8;8B.4;8;4C.8;4;4(正确答案)D.8;4;824.下列关于STL描述正确的是()A.STL容器是完全线程安全的B.std::sort是稳定的排序算法C.在vector容器中执行插入操作后以前保存的迭代器可能会失效(正确答案)D.在vector容器中,begin返回的是第一个元素的迭代器,end返回的是最后一个元素的迭代器25.下列编译过程顺序正确的是()A.语法分析、词法分析、语义分析、代码优化、中间代码生成、目标代码生成B.词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成(正确答案)C.语法分析、语义分析、词法分析、代码优化、中间代码生成、目标代码生成D.词法分析、语义分析、语法分析、中间代码生成、代码优化、目标代码生成26.下列C++程序执行后,如果输出为123,那么程序中空缺的语句是()。 inti=1; staticinti; intvalue(){returni-1;} intvalue()const{returni+1;} intExample::i=2; inti=3; Exampleexample1; constExampleexample2; ______ A.cout< inta=0; do{a+=3;cout<<’#’;}while(a<20); while(a-->0)cout<<’’; A.7和20B.8和20C.7和21(正确答案)D.8和2128.下列C++程序的输出结果是()。 voidmain(){ chars="121234342"; inta=0,b=0,c=0,d=0; for(inti=0;s[i]!=’\0’;i++) switch(s[i]){ case’1’:d++; case’2’:c++; case’3’:b++; case’4’:a++; cout< A.2,2,3,2B.9,6,5,3C.9,7,5,2(正确答案)D.2,2,2,229.下面C++程序执行的输出结果是()