1 / 30
文档名称:

软件工程师笔试面试题.docx

格式:docx   大小:240KB   页数:30页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件工程师笔试面试题.docx

上传人:63229029 2017/11/17 文件大小:240 KB

下载得到文件列表

软件工程师笔试面试题.docx

相关文档

文档介绍

文档介绍:C语言:
(1)什么是预编译,何时需要预编译:
答案:
1、总是使用不经常改动的大型代码体。
2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种
情况下,可以将所有包含文件预编译为一个预编译头。
预编译又称为预处理,是做些代码文本的替换工作。处理#开头的指令吗,比如拷贝#include包含的文件代码,#define宏定义的替换,条件编译等,就是为编译做的预备工作的阶段,主要处理#开始的预编译指令,预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。c编译系统在对程序进行通常的编译之前,先进行预处理。c提供的预处理功能主要有以下三种:1)宏定义 2)文件包含 3)条件编译。
(2)char* const p, char const* p,const char*p 上述三个有什么区别?
答案:
char * const p; //常量指针,p 的值不可以修改
char const * p;//指向常量的指针,指向的常量值不可以改
const char *p;//和char const *p等价
(3)char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc";
const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout < <( str1 == str2 ) < < endl; cout < < ( str3 == str4 ) < < endl; cout < < ( str5 == str6 ) < < endl; cout <
< ( str7 == str8 ) < < endl;
结果是:0 0 1 1 str1,str2,str3,str4 是数组变量,它们有各自的内存空间;而str5,str6,str7,str8
是指针,它们指向相同的常量区域。
(4)以下代码中的两个sizeof 用法有问题吗?
void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母
{
for( size_t i=0;i <sizeof(str)/sizeof(str[0]); ++i )
if( 'a' <=str[i] && str[i] <='z' )
str[i] -= ('a'-'A' );
}
char str[] = "aBcDe"; cout < < "str 字符长度为: " < < sizeof(str)/sizeof(str[0]) < < endl;
UpperCase( str ); cout < < str < < endl;
答案:函数内的sizeof 有问题。根据语法,sizeof 如用于数组,只能测出静态数组的大小,无法检测动态分配的或外部数组大小。函数外的str 是一个静态定义的数组,因此其大小为6,因为还有'\0',函数内的str 实际只是一个指向字符串的指针,没有任何额外的与数组相关的信息,因此sizeof 作用于上只将其当指针看,一个指针为4 个字节,因此返回4。
(5)一个32 位的机器,该机器的指针是多少位答案:
指针是多少位只要看地址总线的位数就行了。80386 以后的机子都是32 的数据总线。所以
指针的位数就是4 个字节了。
6
main()
{
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1);
printf("%d,%d",*(a+1),*(ptr-1));
}
答案:2,5
*(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5
&a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(本例是5 个int) int *ptr=(int *)(&a+1);则ptr 实际是&(a[5]),也就是a+5 原因如下:&a是数组指针,其类型为 int (*)[5]; 而指针加1 要根据指针类型加上一定的值,不同类型的指针+1之后增加的大小不同 a 是长度为5的int 数组指针,所以要加5*sizeof(int) 所以ptr 实际是a[5] 但是prt与(&a+1)类型是不一样的(这点很重要) 所以prt-1 只会减去sizeof(int*)。
a,&a的地址是一样的,但意思不一样,a是数组首地址,也就是a[0]的地址,&a 是对象(数组)首地址,a+1 是数组下一元

最近更新

商业综合体建设项目交通影响分析研究的开题报.. 2页

唐宫廷女性出行研究的开题报告 2页

2024年小学英语句子15篇 21页

2024年小学老师述职报告(精选5篇) 16页

2024年小学老师年度考核个人述职报告范文(通.. 16页

2024年小学老师个人工作计划 32页

员工忠诚度的影响因素研究的开题报告 2页

2024年小学精彩作文 17页

2024年小学的作文汇总3篇 4页

第十节内分泌功能检查 21页

2024年小学生运动会通讯稿(精选35篇) 17页

第十四章颌骨疾病2 38页

叶酸在肝癌发生发展过程中的防护作用及其分子.. 2页

右心室不同部位起搏的长期疗效及安全性研究的.. 2页

古田山5ha样地木本根萌植物影响因子数值分析的.. 2页

学生个人军训心得体会15篇 30页

第十七章牙源性肿瘤 29页

双频容性耦合等离子体中电子无碰撞反弹共振加.. 2页

双足机器人行走稳定性控制方法与实验研究的开.. 2页

双稳态永磁操动机构特性分析的开题报告 2页

第六章心脑血管意外急救与护理 75页

参与式教学法在高职英语教学中的研究与应用的.. 2页

2024年小学生关于感恩节的演讲稿(通用9篇) 14页

2024年小学生保护环境从我做起主题班会 12页

2024年重庆中考化学试题(A卷) 5页

国有企业管理人员处分条例(公开征求意见稿) 15页

2024年综合基础知识试题及答案 42页

新版《混凝土结构工程施工质量验收规范》(GB5.. 10页

井控环形防喷器详细讲解 25页

幼儿园工会职责 4页