10道C++输出易错笔试题收集
作者:网络转载 发布时间:[ 2015/1/5 11:16:38 ] 推荐标签:C++ net
下面代码的输出是什么?(非常考基础水平的一道题)
char *c[] = {"ENTER","NEW","POINT","FIRST"};
char **cp[] = { c + 3 , c + 2 , c + 1 , c};
char ***cpp = cp;
int main(void)
{
printf("%s",**++cpp);
printf("%s",*--*++cpp+3);
printf("%s",*cpp[-2]+3);
printf("%s
",cpp[-1][-1]+1);
return 0;
}
|
结构体
#include <stdio.h>
struct data
{
int a;
unsigned short b;
};
int main(void)
{
data mData;
mData.b = 0x0102;
char *pData = (char *)&mData;
printf("%d %d", sizeof(pData), (int)(*(pData + 4)));
return 0;
}
|
改变string变量的值?
#include <iostream>
#include <string>
using namespace std;
void chg_str(string str) {
str = "ichgit";
}
int main() {
string s = "sarrr";
chg_str(s);
printf("%s
", s.c_str());
cout << s << endl;
return 0;
}
|
静态变量的输出
#include <stdio.h>
int sum(int a) {
int c = 0;
static int b = 3; // 只执行一次
c++;
b += 2;
return (a + b + c);
}
int main() {
int i;
int a = 2;
for(i = 0; i < 5; ++i) {
printf("%d
", sum(a));
}
return 0;
}
|
返回值加const修饰的必要性
你觉得下面两种写法有区别吗?
int GetInt(void)
const int GetInt(void)
如果是下面的呢?其中A 为用户自定义的数据类型。
A GetA(void)
const A GetA(void)
第二部分:答案详细解析
如下函数,在32 bit系统foo(2^31-3)的值是:
int foo(int x)
{
return x&-x;
}
A:0 B: 1 C: 2 D: 4
答案:C
解释:我只想说注意运算符优先级,注意^是异或而不是幂次方。
运算符优先级
unsigned char i=0x80;
printf("0x%x
", ~i>>3+1);
输出什么?
输出:0xfffffff7(提示:+的优先级优于>>)
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11