2022年迅雷网络技术公司面试题(C++工程师岗位)
第1题:
一、单选题
下列for循环的循环体执行次数为 翻译 百度
for(int i=10, j=1; i=j=0; i++, j--)
颞颥
A 0
B 1
C 无限
画材
D 以上都不对
答案:A
解析:这个问题可以这样理解,在for(string1;string2;string3)中,string1用于设定循环变量处置,string2用于循环推断,string3用于转变循环变量到调整,一般状况下,我们采纳规律推断表达式来打算循环是否执行,而假如在这里采纳赋值语句,其规律值始终为假,导致循环不执行
第2题:
下面程序的输出结果是
char *p1= “123”, *p2 = “ABC”, str[50]= "xyz";
strcpy(str+2,strcat(p1,p2));
cout str;
A xyz123ABC
B z123ABC
C xy123ABC
D 出错
答案:D
解析:strcat(p1,p2)出错,由于p1只被安排了4个字节的地址空间,将p2拼接在p1后面会引起内存溢出。
第3题:
下面函数的执行结果是输出
digin
charstr[]=“xunlei”;
char*p=str;
intn=10;
printf(“%d,%d,%d/n”,sizeof(str),sizeof(p),sizeof(n));
ipv
A 4,4,4
B 7,4,4
ciw C 6,4,4
D 6,6,4
答案:B
解析:指针和int、float类型均占4个字节,而sizeof(str)包括'\0'所以是7个字节
第4题:
char*p,*q;
p=(char*)malloc(sizeof(char)*20);
q=p;
scanf(“%s%s”,p,q);
printf(“%s%s/n”,p,q);
若从键盘输入:abcdef,则输出结果是
A defdef
B abcdef
C abcd
D dd
简历翻译
答案:A
解析:q=p;因此p,q指向的是同一段内存.scanf先是把abc写到p指向的空间,再把def写到q指向的空间,也就是同一段空间,因此abc被def掩盖了。
第5题:
现在有以下语句:
struct_THUNDER{
intiVersion;
charcTag;
charcAdv;
intiUr;
charcEnd;
}Thunder;
intsz=sizeof(Thunder);
则执行后,变量sz的值将得到
A 11
B 12
C 13
D 16
四六级官网准考证打印入口官网
答案:D
解析:结构体默认对齐方式为8,则iVersion取4字节对齐,CTag、CAdv和cEnd取2字节对齐,结构体大小为14,14不为4的整数倍,补空字节,增至16时符合全部条件,则sizeof(Thunder)为16。
第6题:
有如下程序段:
voidGetMemeory(char*p)
{
p=(char*)malloc(100);
}
voidtest()
歧视英语 {
char*str=NULL;
GetMemory(str);
strcpy(str,”Thunder”);
strcat(str+2,“Downloader”);
printf(str);
foreign是什么意思 }
请问运行Test函数结果是:
A ThunderDownloader
B underDownloader
C Thunderownloader