c语言常见笔试总结.doc

c语言常见笔试总结.doc

ID:55550265

大小:107.50 KB

页数:33页

时间:2020-05-16

c语言常见笔试总结.doc_第1页
c语言常见笔试总结.doc_第2页
c语言常见笔试总结.doc_第3页
c语言常见笔试总结.doc_第4页
c语言常见笔试总结.doc_第5页
资源描述:

《c语言常见笔试总结.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、c语言常见笔试题总结【1使用宏】1.1#ifdefNDEBUG#defineTRACE(S)S#else#defineTRACE(S)printf("%s;",#S);S#endif问:以上TRACE()宏的作用是什么?如果NDEBUG为真则不打印信息,如果NDEBUG为假,则打印信息1.2#error的作用?1.2#error用于向编译器报错,并输出它后面带的错误信息。例如:#ifndefSOMETHING#errorSOMETHINGnotdefined!#endif如果在这段代码之前未定义过SOMETHING,则在

2、编译时出错,并给出"SOMETHINGnotdefined!"的错误信息。1.3定义一个宏,求出给定数组中的元素的个数#defineNELEMENTS(array)??#defineNELEMENTS(array)sizeof(array)/sizeof(array[0])1.4定义一个宏,求出给定结构中给定成员的偏移量#defineOFFSET(structure,member)??【2数据声明和定义】给定以下类型的变量a的定义式:a)Anintegerintab)Apointertoanintegerint*ac)Apo

3、intertoapointertoanintegerint**ad)Anarrayof10integersinta[10]={0x00};e)Anarrayof10pointerstointegersint*a[10];f)Apointertoanarrayof10integersint(*a)[10]g)Apointertoafunctionthattakesanintegerasanargumentandreturnsanintegerint(*a)(int)h)Anarrayoftenpointersto

4、functionsthattakeanintegerargumentandreturnanintegerint(*a[10])(int)【3复杂类型(1)】有如下表达式:char(*(*x())[])();请用文字描述x是什么。指向函数的指针数组,回答:声明x是一个函数指针数组,函数的返回值类型是字符指针,参数为空这道题来自"TheCProgrammingLanguage"中的一个例子。首先,确定标识符:xx是一个函数,没有参数:x()返回值是一个指针:*x()这个指针指向一个数组:(*x())[]数组中的每个

5、元素是指针:*(*x())[]指向一个不带参数的函数:(*(*x())[])()函数的返回值是char:char(*(*x())[])()这里,要知道*、()和[]的优先级。【4复杂类型(2)】jmp_buf的定义:typedefstruct_jmp_buf{REG_SETreg;intextra[3];}jmp_buf[1];setjmp函数的原型:externintsetjmp(jmp_buf__env);问:调用setjmp时传递__env的内容,还是传递指针?这个定义有点怪,它的意思是:jmp_buf这种类型是一个数

6、组,只有一个元素,元素类型为struct{...}。数组名作为函数参数时,应该是传递地址/指针。【5头文件】问:为什么标准头文件都有类似以下的结构?#ifndef__INCvxWorksh#define__INCvxWorksh#ifdef__cplusplusextern"C"{#endif/*...*/#ifdef__cplusplus}#endif#endif/*__INCvxWorksh*/在编译源文件时,C编译器和C++编译器都会对符号(函数或变量)名作某些修正,但两者采用的修正方法不同,所以两者生成的目标文件不能

7、互相链接。在C++中使用extern"C"可以让C++符号获得C链接特性。由于C++编译器会自动定义__cplusplus宏,所以在C语言头文件中采用这种结构可以保证无论使用何种编译器,生成的目标文件都具有C链接特性,能够与标准C编译器所生成的目标文件相链接。【6static关键字】请说出static关键字的3种用处:(1)用于全局变量;(2)用于局部变量;(3)用于函数。/*file.c*/staticinta;intb;staticintfn(){staticintx;inty;}(1)用于全局变量:外部静态变量,只能在

8、本源文件中被引用,不能被其它源文件所引用。(2)用于局部变量:局部静态变量,在函数返回后存储单元不释放;下一次调用该函数时,该变量为上次函数返回时的值。(3)用于函数:内部函数,只能被本源文件中的函数所调用,不能被其它源文件调用。【7const关键字】7.1const关键字的意义是什么?定

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。