复习题
一、单选题
1、以下选项中不能用做用户自定义标识符的是( )。C
A. length_ B. _length C. length.d D. For 2、以下选项中能用做用户自定义标识符的是( )。C
A. void B. if-else C. Name D. a+bc 3、下列字符串中,正确的C++标识符是( )。D
A. too-B B. 2b C. new D. _256 4、以下选项中不能用做变量名的是( )。A
A. for B. _length C. length D. Else 5、下列不正确的int型常数是( )。C
A. 32450 B. 0 C. 0387 D. 0xA1L 6、以下选项中不合法的常量是( )。B
A. ‘a’ B. 058 C. “a\\0b” D. 12L 7、下列的常量定义中,错误的是( )。A
A. const double dl; B. const char c=67; C. const int i=250; D. const long ld=0x326;
8、整型变量a、b的值分别为3和4,执行语句“a=a && b++ ;”后,a和b的值分别是( )。B A. 3 4 B. 1 5 C. 1 4 D. 0 5 9、设有变量说明: int a=3,b=4,c=5; 下列表达式中,值为0的表达式是( )。D
A. ‘a’&&‘b’ B. a<=b C. a | | b+c&&b–c D. !(cb&&c
C. a>b||c
A. (x<=y)&&(y<=z) B. (x<=y)AND(y<=z) C. (x<=y<=z) D. (x<=y)&(y<=z) 13、以下双目运算符中要求两个操作数均为整型的运算符是( )。D
A.|| B.&& C./ D %
14、设有定义int a;float f;double i;则表达式10+'a'+i*f值的数据类型是( )。C A. int B. float C. double D. 不确定 15、以下if语句的表达不正确的是( )。 A
A. if(a
cout<b?”a大于b”:”a小于b”< A. a大于b B. a小于b C. 1 D. 输出语句有错 17、以下程序段 if(x--<10) cout< A. 11 B. 10 C. 9 D. 8 18、下列关于语句 for(e1;e2;e3) s1; 描述中不正确的是( )。B A. 存在\的情况 B. 表达式e1和e3可为空,但e2不能为空 C. 表达式e3的值可增可减 D. 循环体s1可以为空,但分号(;)必须有 19、执行语句序列: int i=0; while (i<25) i+=3; cout< 输出结果是( )。C A. 24 B. 25 C. 27 D. 28 20、设有语句“for(int s=1,i=2;i<6;i++) s*=i/2;”,执行后s的值为( )。B A. 7 B. 4 C. 48 D. 96 21、设有语句“for(int s=1,i=2;i<=6;i++)s*=i/2 ;”,执行完该语句后,s的值为( )。B A. 1 B. 12 C. 22 D.24 22、下列do-while循环的循环次数为( )。D int i=5; do{cout< } while(i!=0); A. 0 B. 1 C. 5 D. 无限 23、设有语句:for(int s=0,i=0;!s&&i<=5;i++) ; 循环执行的次数为( )。A A. 6 B. 5 C. 0 D. 无数次 24、设有语句:for(int s=0,i=1; i<=5; s+=i) ; i++ ; 循环执行的次数为( )。D A. 6 B. 5 C. 0 D. 无数次 25、下列关于while和do ? while循环语句的叙述中正确的是( )。 A A. do?while 的循环体至少执行一次 B. while的循环体至少执行一次 C. do?while的循环体不能是复合语句 D. do?while 允许从循环体外跳转到循环体内 26、break语句只能用在( )。D A. 开关语句中 B. 函数体中允许语句出现的任一位置 C. 循环语句中 D. 开关语句或循环语句中 27、对于switch(t),表达式t不能是( )表达式。D A. 枚举型 B. 字符型 C. 整型 D. 浮点型 28、下列叙述正确的是( )。B A. 一个include可以用于包含一个或多个文件 B. 编译预处理命令必须以#开始 C. 使用include包含的文件一定要以.h为后缀 D. 程序执行时,宏展开只作替换,而不含计算过程 29、设有函数原型说明:“void test(int a,int b=2,char *c=\”,下面的函数调用存在语法错误的是(A. test(3) B. test(3,8.2) C. test(6,\ 30、考虑函数原型int f(char a,char *b=NULL,double c=0.0); 下面函数调用中,属于不合法调用的是( A. f(‘A’,4.5); B. f(99); C. f(‘A’,\123\ )。C 。A )31、在以下的函数原型说明语句中,存在语法错误的是( )。D A. void f1(int a , int ); B. void f2(int , int ); C. void f3(int , int =5); D. int f4( int x ; int y ); 32、下列关于C++函数的叙述中,正确的是( )。C A. 每个函数至少要具有一个参数 B. 每个函数都必须返回一个值 C. 函数在被调用之前必须先声明 D. 函数不能自己调用自己 33、以下叙述中,不正确的是( )。C A.一个函数中可以有多个return语句 B.一个函数中可以没有return语句 C.一个return语句可返回多个值 D.一个return语句可不返回值 34、下列函数定义中,存在语法错误的是( )。D A.void f5( ); f6( ){f5( ); cout<<200;} void f5( ){cout<<100;} B.void f3( ){cout<<100;} void f4( ){cout<<200; } C.void f7(int a) { if(a) f7(--a);cout< A. 1和3是重载函数 B. 都是重载函数 C. 1和2是重载函数 D. 都不是重载函数 36、下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( )合适。 B A. 重载函数 B. 内联函数 C. 递归调用 D. 嵌套调用 37、以下关于C++函数的描述中,正确的是( )。 C A. 内联函数就是定义在另一个函数体内部的函数 B. 函数体的最后一条语句必须是return语句 C. C++要求在调用一个函数之前,该函数已定义或已有该函数的原型说明 D. 编译器会根据函数的返回值类型区分函数的不同重载形式 38、若有宏定义# define s(x) x*x-x,设int k=3; 问cout< #define NUM(a,b) M*a+b int c=NUM(2,3)*NUM(4,5); 则变量c的值是( )。B A. 47 B. 19 C. 48 D. 20 41、下列关于数组定义中错误的是( )。D A. int a1[2]={1}; B. int a2[ ][2]={{1},{2}}; C. int a3[3]; D. int a4[ ][4]; 42、要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是30,50,-88,0和0,则下列定义语句中错误的是( )。A A. int vect[]={30,50,-88}; B. int vect[]={30,50,-88,0,0};