c语言常见笔试题总结c语言常见笔试题总结 引导语:C语言之所以命名为C,是因为C语言源自KenThompson发明的B语言,而B语言则源自BCPL语言。以下是我整理的c语言常见笔试题总结,欢迎参考阅读! 【1使用宏】 1.1#error的作用? #error用于向编译器报错,并输出它后面带的错误信息。例如: #ifndefSOMETHING #errorSOMETHINGnotdefined! #endif 如果在这段代码之前未定义过SOMETHING,则在编译时出错,并给出SOMETHINGnotdefined!的错误信息。 1.2定义一个宏,求出给定数组中的元素的个数#defineNELEMENTS(array)(sizeof(array)/sizeof((array)[0])) 【2数据声明和定义】 给定以下类型的变量a的定义式: a)Aninteger inta; b)Apointertoaninteger int*a; c)Apointertoapointertoaninteger int**a; d)Anarrayof10integers inta[10]; e)Anarrayof10pointerstointegers int*a[10]; f)Apointertoanarrayof10integers int(*a)[10]; g)Apointertoafunctionthattakesanintegerasanargumentandreturnsanintegerint(*a)(int); h)Anarrayoftenpointerstofunctionsthattakeanintegerargumentandreturnanintegerint(*a[10])(int); 【3复杂类型(1)】 有如下表达式: char(*(*x())[])(); 请用文字描述x是什么。首先,确定标识符:x x是一个函数,没有参数:x() 返回值是一个指针:*x() 这个指针指向一个数组:(*x())[] 数组中的每个元素是指针:*(*x())[] 指向一个不带参数的函数:(*(*x())[])() 函数的返回值是char:char(*(*x())[])() 这里,要知道*、()和[]的优先级 【5头文件】 问:为什么标准头文件都有类似以下的结构? #ifndef__INCvxWorksh #define__INCvxWorksh#ifdef__cplusplusexternC{#endif/*...*/#ifdef__cplusplus}#endif#endif 在编译源文件时,C编译器和C++编译器都会对符号(函数或变量)名作某些修正,但两者采用的修正方法不同,所以两者生成的目标文件不能互相链接。在C++中使用externC可以让C++符号获得C链接特性。由于C++编译器会自动定义__cplusplus宏,所以在C语言头文件中采用这种结构可以保证无论使用何种编译器,生成的.目标文件都具有C链接特性,能够与标准C编译器所生成的目标文件相链接 【6static关键字】 请说出static关键字的3种用处: (1)用于全局变量;外部静态变量,只能在本源文件中被引用,不能被其它源文件所引用。 (2)用于局部变量;局部静态变量,在函数返回后存储单元不释放;下一次调用该函数时,该变量为上次函数返回时的值。 (3)用于函数。内部函数,只能被本源文件中的函数所调用,不能被其它源文件调用。/*file.c*/ staticinta; intb; staticintfn() { staticintx; inty; } 【7const关键字】 7.1const关键字的意义是什么? 7.2解释以下的变量定义:constinta1;a1是整型常量。 intconsta2;a2是整型常量。等同于constinta2。 constint*a3;a3是指针(a3是可变的),指向一个整型常量。等同于intconst*a3。int*consta4;a4是常量指针(a4不可变),指向一个整型变量。 intconst*consta5;a5是常量指针(a5不可变),指向一个整型常量。等同于constint*consta5。 【8volatile关键字】 8.1volatile意义? volatileint*p; 8.2volatile能和const一起使用吗? const关键字的意思是限制编程者自己不能修改变量的值;两者并不矛盾。 例如一个内存映射的、只读的硬件寄存器,假设它的地址是p,则可以这样声明: volatileconstUINT32*p;
本文档为【c语言常见笔试题总结】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。