c语言中void f1(),c语言常见笔试题f1ryiedy.doc

c语言常见笔试题f1ryiedy

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 integer

b) 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 functions that take an integer argument and return an integer

【3 复杂类型(1)】

有如下表达式:

char (*(*x())[])();

请用文字描述x是什么。

【4 复杂类型(2)】

jmp_buf的定义:

typedef struct _jmp_buf

{

REG_SET reg;

int extra[3];

} jmp_buf[1];

setjmp函数的原型:

extern int setjmp (jmp_buf __env);

问:调用setjmp时传递__env的内容,还是传递指针?

【5 头文件】

问:为什么标准头文件都有类似以下的结构?

#ifndef __INCvxWorksh

#define __INCvxWorksh

#ifdef __cplusplus

extern "C" {

#endif

/*...*/

#ifdef __cplusplus

}

#endif

#endif /* __INCvxWorksh */

【6 static关键字】

请说出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关键字的意义是什么?

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) = ?

sizeof(“A”) = ?

sizeof(ch) = ?

sizeof(‘A’) = ? (在C++中等于多少?)

void f(char param[100])

{

// 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(" < = 6");

}

请问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值