c语言常见笔试题总结.DOC

上传人:国*** 文档编号:1112085 上传时间:2018-12-08 格式:DOC 页数:31 大小:201KB
下载 相关 举报
c语言常见笔试题总结.DOC_第1页
第1页 / 共31页
c语言常见笔试题总结.DOC_第2页
第2页 / 共31页
c语言常见笔试题总结.DOC_第3页
第3页 / 共31页
c语言常见笔试题总结.DOC_第4页
第4页 / 共31页
c语言常见笔试题总结.DOC_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、- - 1 - -c 语言常见笔试题总结【1 使用宏】1.1#ifdef NDEBUG#define TRACE(S) S#else#define TRACE(S) printf(“%s;n“, #S); S#endif 问:以上 TRACE()宏的作用是什么? 1.2 #error 的作用? 1.3 定义一个宏,求出给定数组中的元素的个数#define NELEMENTS(array) ? 1.4 定义一个宏,求出给定结构中给定成员的偏移量#define OFFSET(structure, member) ? 【2 数据声明和定义】 给定以下类型的变量 a 的定义式: a) An integ

2、erb) A pointer to an integer c) A pointer to a pointer to an integer d) An array of 10 integers e) An array of 10 pointers to integers f) A pointer to an array of 10 integers g) A pointer to a function that takes an integer as an argument and returns an integer h) An array of ten pointers to functio

3、ns that take an integer argument and return an integer 【3 复杂类型(1) 】 有如下表达式:char (*(*x()(); 请用文字描述 x 是什么。 【4 复杂类型(2) 】 jmp_buf 的定义: typedef struct _jmp_bufREG_SET reg;int extra3; jmp_buf1; setjmp 函数的原型: extern int setjmp (jmp_buf _env); 问:调用 setjmp 时传递_env 的内容,还是传递指针? 【5 头文件】 问:为什么标准头文件都有类似以下的结构? #if

4、ndef _INCvxWorksh#define _INCvxWorksh #ifdef _cplusplusextern “C“ #endif /*.*/ #ifdef _cplusplus#endif #endif /* _INCvxWorksh */ 【6 static 关键字】 - - 2 - -请说出 static 关键字的 3 种用处:(1)用于全局变量;(2)用于局部变量;(3)用于函数。 /* file.c */static int a;int b; static int fn()static int x;int y; 【7 const 关键字】 7.1 const 关键字的意

5、义是什么?7.2 解释以下的变量定义: const int a1; int const a2; const int *a3; int * const a4; int const * const a5; 【8 volatile 关键字 】 8.1 volatile 意义?例如volatile int *p; 8.2 volatile 能和 const 一起使用吗?例如volatile const int *p; 【9 sizeof()】 有以下定义: char *pmsg = “A“;char msg = “A“;char ch = A; 问:sizeof(pmsg) = ?sizeof(msg

6、) = ?sizeof(“A”) = ?sizeof(ch) = ?sizeof(A) = ? (在 C+中等于多少?) void f(char param100)/ sizeof(param) = ? 【10 字符串】 有以下代码 char *pmsg = “hello, world!“;strcpy(pmsg, “hi, there.“); 试评论该代码。 【11 混合运算】 有以下代码: void foo()unsigned int a = 6;int b = -20;(a+b 6) ? puts(“ 6“) : puts(“ 和“ “的区别?答案:只在指定的目录里寻找被包含文件;“ “

7、先在当前目录下查找 ,再在指定目录下查找;通常 方式用于系统的头文件,而一般用户的头文件用“ “ 的方式。16strunt S_Aint a10;void f()- - 6 - -int i;strunt S_A *s_ptr;for (i=0,i ai = i;请问这段代码正确否?答案:这段代码不正确,没有对 s_ptr 指针进行初始化,在编程中要注意此类低级错误的发生。coon 23:37:37 | 阅读全文 | 评论 0 | 引用 0 | 编辑c 语言笔试题(八)2006-09-06Tag: C 语言#pragma pack(8)struct s1short a;long b;struc

8、t s2char c;s1 d;long long e;#pragma pack()问 1.sizeof(s2) = ?2.s2 的 s1 中的 a 后面空了几个字节接着是 b?如果您知道答案请在讨论中写出,以下是部份网友的答案,供参考:网友 rwxybh(行云)的答案:内存布局是1* 11*1111 *1111 1111所以答案就是 24 和 3下面是一个测试的程序,试一试就知道了,我用的是 VC2005#pragma pack(8)struct s1short a; / 2 BYteslong b; / 4 Bytes;struct s2char c; / 1 Bytes1 d; / 8

9、Byteslong long e; / 8 Bytes;- - 7 - -/ 1* 11*/ 1111 */ 1111 1111/ 00 01 02 03 04 05 06 07/ 00 01 02 03 04 05 06 07/ 00 01 02 03 04 05 06 07/ #pragma pack()int main(int argc, char* argv)s2 a;char *p = (char *)for(int i=0;i=MAX_SRM)return (NULL_SRM);elsereturn SRM_no;3. 写出程序运行结果int sum(int a)auto int

10、c=0;static int b=3;c+=1;b+=2;return(a+b+C);void main()int I;int a=2;- - 10 - -for(I=0;I5;I+)printf(“%d,“, sum(a);4. int func(int a)int b;switch(a)case 1: 30;case 2: 20;case 3: 16;default: 0return b;则 func(1)=?5:int a3;a0=0; a1=1; a2=2;int *p, *q;p=a;q=则 aq-p=?6. 定义 int *a34, 则变量占有的内存空间为:_7.编写一个函数,要求

11、输入年月日时分秒,输出该年月日时分秒的下一秒。如输入 2004 年 12 月 31 日23 时 59 分 59 秒,则输出 2005 年 1 月 1 日 0 时 0 分 0 秒。coon 23:34:38 | 阅读全文 | 评论 0 | 引用 0 | 编辑c 语言笔试题(六)2006-09-06Tag: C 语言4. static 有什么用途?(请至少说明两种)1.限制变量的作用域2.设置变量的存储域7. 引用与指针有什么区别?1) 引用必须被初始化,指针不必。2) 引用初始化以后不能被改变,指针可以改变所指的对象。2) 不存在指向空值的引用,但是存在指向空值的指针。8. 描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性9. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。