C和C++经典笔试题及答案
在C语言中,两个函数的名称不能相同,否则会导致编译错误。而在C++中,函数名相同而参数数据类型不同或参数个数不同或二者皆不同的两个函数被解释为重载。下面就由为大家介绍一下C和C++经典笔试题及答案的文章,欢迎阅读。
C和C++经典笔试题及答案篇1
1 用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)。
答案:#define SECONDS_PER_YEAR(60*60*24*365)UL
应该意识到表达式将使一个16位机的整形数溢出,因此要用到长整型符号L,表达式中UL表示无符号长整型。
2 写一个 标准 宏MIN,这个宏输入连个参数并返回较小的一个。
答案:#define MIN(A,B) ((A) =(B)?(A):(B));懂得在宏中小心的吧参数用括号扩起来
3 sizeof 的一些考察
char* ss1= 0123456789 char ss2[]= 0123456789 char ss3[100]= 0123456789
int ss4[100]; char q1[]= abc char q2[]= a\\n char* q3= a\\n
答案:ss1是一个字符指针,指针的大小是一个确定的值,就是4,sizeof(ss1)=4;
ss2是一个字符数组,这个数组最初的大小未定,填充值是 0123456789 ,一个字符占一位,再加上隐含的 \\0 一共是11位。
ss3是一个字符数组,这个数组开始预分配100,所以它的大小是100位。
ss4是一个整型数组,但是每个整型变量所占空间是4,所以它的大小一共是400位。
q1与ss2类似,占4位。Q2里面有一个 \\n , \\n 算作一位,加上隐含的,大小一共是3位。Q3是一个字符指针,指针得大小是一个定值,就是4
4 What is the output of the folloing code?
#include
using namespace std;
class A {};
class A2 {char d,e;};
struct B{};
struct C{ char x,y;};
struct D{int x,y;}; main() { cout cout
A *p1=ne A(); A p2; A*p3; cout cout cout cout