C语言面试题及答案.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

C语言面试题及答案

问题:C语言中,int、char、float、double这几种基本数据类型在32位系统下通常占用多少字节?

答案:int通常占4字节,char占1字节,float占4字节,double占8字节。

问题:什么是指针?如何定义一个指向int类型变量的指针?

答案:指针是存储另一个变量内存地址的变量。定义指向int类型变量的指针可以写成:int*p;

问题:数组名和指针有什么区别?

答案:数组名代表数组首元素的地址,是一个常量指针,不能被赋值;而指针是一个变量,可以指向不同的地址。另外,sizeof(数组名)得到的是整个数组的字节数,sizeof(指针)得到的是指针变量本身的字节数。

问题:使用malloc函数动态分配内存后,需要注意什么?

答案:使用malloc分配内存后,要检查是否分配成功(判断返回值是否为NULL);不再使用时需用free函数释放,否则会造成内存泄漏;释放后最好将指针置为NULL,避免野指针。

问题:C语言中,函数参数传递方式有哪几种?有什么区别?

答案:主要有值传递和地址传递。值传递时,函数接收的是实参的副本,对形参的修改不会影响实参;地址传递时,函数接收的是实参的地址,通过指针操作可以修改实参的值。

问题:static关键字在C语言中有哪些作用?

答案:修饰局部变量时,使其生命周期延长至整个程序运行期间,且只初始化一次;修饰全局变量时,使其只能在本文件中访问;修饰函数时,使其只能在本文件中被调用。

问题:什么是野指针?如何避免?

答案:野指针是指向已释放内存或非法内存地址的指针。避免方法:指针初始化时置为NULL;释放内存后将指针置为NULL;不使用未初始化的指针。

问题:写出一个简单的函数,实现两个int类型数的交换。

答案:

voidswap(int*a,int*b){

inttemp=*a;

*a=*b;

*b=temp;

}

问题:C语言中,define和typedef有什么区别?

答案:define是预处理指令,用于宏定义,在预处理阶段进行文本替换,没有类型检查;typedef是关键字,用于为已有类型定义别名,有类型检查,且定义的是类型而不是文本替换。

问题:简述C语言程序的编译过程。

答案:大致分为预处理、编译、汇编、链接四个阶段。预处理处理宏定义、头文件包含等;编译将预处理后的代码翻译成汇编语言;汇编将汇编代码转换成机器码(目标文件);链接将多个目标文件和库文件组合成可执行文件。

文档评论(0)

151****9429 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档