请大家帮忙看看几道C++二级题目

来源:百度知道 编辑:UC知道 时间:2024/06/20 14:48:29
1、以下赋值语句中,合法的是( )。
A.a=b=58; B.i++; C.a=58,b=58; D.k=int(a+b);
答案为什么是A,B、C、D怎么就不合法了?
2、下列关于break语句的描述中正确的是( )
A、break语句可用于循环体内,它将退出该次循环
B、break语句可用于switch语句中,它将退出switch语句
C、break语句可用于if体内,它将退出if语句
D、break语句在一个循环体内可执行几次
答案为什么是C?是不是答案错了?break语句不是只能用在switch语句和循环语句吗?而且在循环或switch的多层嵌套中,break一次只能跳出一层。
3、有下面程序段:
char a[3],b[] = "China";
a = b;
cout<<a<<endl:
则程序运行时输出( )
A)China B)Ch C)Chi D)Chin
答案是B,但是在Visual C++6.0中程序有错,根本无法运行。
4、内部静态变量的作用域是( )
A)定义改静态变量的函数外部
B)定义改静态变量的函数内部
C)定义改静态变量的文件外部
D)定义改静态变量的文件内部
答案为什么是B?静态变量的作用域不是整个程序吗?内部静态变量是什么东西?
5、下列关于成员访问权限的描述中,不正确的是( )
A、公有数据成员和公有成员函数都可以被类对象直接处理
B、类的私有数据成员只能被公有成员函数以及该类的任何友元类或友元函数访问
C、只有类或派生类的成员函数和友元类或友元函数可以访问保护成员
D、保护成员在派生类中可以被访问,而私有成员不可以
答案是B,B为何不正确?
对于第一题的D,肯定不是数组,也不是强制类型转换不对。
强制类型转换有两种应用形式,格式分别如下:
1、类型说明符(表达式);
2、(类型说明符)表达式;

1、B不是复职语句,只是自加而已,定义。
c中两个表达式之间用;逗号运算符职能用一个大的结构中。
D应试(int)(a+b)
2、abd错的不行了,至于c,是if中有for是,break直接退出if。(这点很易错,式一下你就明白了。)
3、字符串复制用strcpy,不能直接a=b(-_-||| 太恐怖了)
不过飞的理解题意的话,我觉得是由‘\0’所以少了一位。
4、静态变量的作用域不是整个程序吗?那是他的时间与整个程序一致,空间上只能在函数内。这题太基本了,好像。
5、还有protect(被保护成员函数)访问也可以的。

1. B.i++; 是一元运算,赋值是二元运算, C.a=58,b=58; 不应该有逗号. D.k=int(a+b); int是关键字.不能做数组名.
2. break语句可用于if体内,它将退出if语句
break可用于if while switch for 都是退出该函数运算.
3.ch是对的.因为字符还有一个结尾符.所以有三个元素.而VC里.不相同的数组元素不能赋值.
4.不同函数内部定义的变量是不能相互调用的.

5.类的私有数据成员不能被公有成员函数访问.

1,B是自加;C是逗号表达式;D看起来像赋值语句,但里面用了强制转化,强制转化的样子是k=(int)(a+b),int得加().
2,A中break不是退出该次循环,而是退出整个循环结构,continue才是退出该次循环;B、break语句可用于switch语句中,它将退出switch语句
C、break语句可用于if体内,它将退出if语句 就我觉得应该是没错的,D跟A一样,循环体一旦执行了break,它就完全跳出来了!
3,以C语言语法来说,定义两个数组,之后不能将两个数组相互赋值,如a=b,这是错误的!C++继承了C语言的特点!所以这道题不做也罢!
4,根本就不用想!在内部定义,你可以想一下在函数内部定义,肯定只能用在函数内部,把static改为extern就成外部变量,那么外面的也能引用,不过一般都没用到这个,要用的时候一般都是定义全局变量!
5.