1.
答案: 10 ,10。
解析:构造了一个对象数组,所以要调用十次构造函数,同时也要析构十次。
2.有以下程序,问输出结果为?
main()
{
int a=3,b=4,c=5,d=2;
if(a>b)
if(b>c)
printf("%d",d++ +1);
else
printf("%d",++d +1);
printf("%d\n",d);
}
答案:2。
解析:根据就近原则,此代码段等价于:
if(a>b)
{
if(b>c) printf("%d",d++ +1);
else printf("%d",++d +1);
}
printf("%d\n",d);
3.下列代码的执行结果?
int main(void)
{
char *p[]={“TENCENT”,”CAMPUS”,”RECRUITING”};
char **pp[]={p+2,p+1,p};
char ***ppp=pp;
printf(“%s”,**++ppp);
printf(“%s”,*++*++ppp);
return 0;
}
答案:CAMPUS CAMPUS。
错写为:CAMPUS RECRUITING。
(1)printf(“%s”,**++ppp);即,ppp当前所指向的位置,再往下移一个位置,即pp的位置2,而pp的位置2指向的是p的位置2,p的位置2指向的是CAMPUS,所以先输出CAMPUS
(2)printf(“%s”,*++*++ppp);这个语句等价于 printf(“%s”,*++(*++ppp));所以我们首先看,++ppp,第一个printf语句中ppp已经指向了pp的位置2,所以再往下移一个,指向了pp的位置3,而(*++ppp)则代表pp位置3所指向的内容,即p的位置1(pp的位置3指向的是p的位置1),在此基础上前面再加上一个++,则代表指针p在位置1的基础上再往下移动,即指针p的位置2,而p的位置2所指向的内容是CAMPUS,所以第二行输出的也是CAMPUS。
4.通用多态是指包含多态和参数多态。
5.
.
%d整型输出,%ld长整型输出,
%o以八进制数形式输出整数,
%x以十六进制数形式输出整数,
%u以十进制数输出unsigned型数据(无符号数)。
%c用来输出一个字符,
%s用来输出一个字符串,
%f用来输出实数,以小数形式输出,
%e以指数形式输出实数,
%g根据大小自动选f格式或e格式,且不输出无意义的零。
其中%o和%x都是二进制的延伸,即八进制和十六进制,可以适用于unsigned变量输出
6.
装载速度快是静态链接库的优点。