- 在c/c++中,所有的函数在定义它的程序中都是可见的。(错误)
- 有如下模板定义:
1
2
3
4 template
T fun(T x,T y){
return xx+yy;
}
在下列对fun的调用中,错误的是(B)
A fun(1, 2) B fun(1.0, 2) C fun(2.0, 1.0) D fun(1, 2.0)
解析:首先这个题目有误,模板函数应该定义为(加返回值类似声明):
template
T fun(T x,T y){
return xx+yy;}
然后这里T要求类型一致
A,类型一致,为int型 B,类型不一致,错我 C,类型一致,为folat型
D,用进行声明,后面的实参会强制类型转换为float,所以也是类型一致的。
7.解析:UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节
Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节 - 下面叙述错误的是( D)
1
2
3
4 char acX[]=“abc”;
char acY[]={‘a’,‘b’,‘c’};
char *szX=“abc”;
char *szY=“abc”;
A acX与acY的内容可以修改
B szX与szY指向相同的地址
C acX占用的内存空间比acY占用的大
D szX的内容修改后,szY的内容也会被更改
解析:char *szX = “abc”;与char *szY = “abc”;
"abc"是保存在文字常量区,属于字符串常量,所以该数据不能修改,默认是只读属性。
因此不能通过指针szX或szY的指向来修改此值,而且szX和szY指向字符串常量"abc"相同的地址,可推出选D而不选B。
char acX[] = “abc”;
"abc"是保存在栈空间数组里. 其数组名为acX,,数组名为数组的首地址(属于指针常量),
因此可以通过 acX[i] = ‘x’ 或 *(acX+i) = ‘x’ 的形式来修改数组内容。 - 不能说明为虚函数的是( B)。
A 析构函数 B 构造函数 C 类的成员函数 D 以上都不对
解析:虚函数的作用在于通过父类的指针或者引用来调用它的时候能够变成调用子类的成员函数,而构造函数在创建对象时自动调用,不可能通过父类的指针或者引用去调用。 - 如果表达式++a中的"++"是作为成员函数重载的运算符,若运用运算符函数调用格式,则可表示为(D)
A a.operator++(1) B operator++(a)
C operator++(a,1) D a.operator++()
解析:调用成员函数运算符的格式如下:
<对象名>.operator <运算符>(<参数>)
它等价于
<对象名><运算符><参数>
例如:a+b等价于a.operator +(b)。一般情况下,我们采用运算符的习惯表达方式。
Java面试基础(二)
最新推荐文章于 2021-05-25 03:47:42 发布