C语言面试基础题以及答案

本文列举了多个C语言面试的基础题目,涵盖预处理指令、变量声明、关键字static和const的含义、位操作、字符串处理、类型转换、条件判断等方面。还提供了部分问题的解答,如静态变量的作用、位操作函数的编写、字符串复制的实现等,帮助读者巩固C语言基础知识。
摘要由CSDN通过智能技术生成

1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)。

#define ONE_YEAR_SENCENDS (365*24*3600)

2. 用预处理指令写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
#define MIN(a,b) ((a<b)?a:b)


3.你怎么样用C编写死循环呢?
for(;;){
    
}
while(1){
    
}


4. 用变量a给出下面的定义

a)一个整型数(An integer)

int a;

b)一个指向整型数的指针(A pointer to an integer)

int *a;

c)一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer)

int **a;

d) 一个有10个整型数的数组(An array of 10 integers)

int a[10];

e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers)

int *a[10];

f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers)

int (*a)[10]

g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)

int *a( int ){}

h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )

int (* a[10])( int )  //类似这种定义应该采用分解法来做。 先定义单个函数指针 int (*a)(int),然后再是有10个指针的数组 int (*a[10])(int)

5.关键字static的作用是什么?

1)在函数体内,一个被声明为静态的变量在这一函数被调用过程中维持其值不变(该变量存放在静态变量区)。

2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。

2,3统称为隐藏,自己动手写一下就记得住 http://www.cnblogs.com/dc10101/archive/2007/08/22/865556.html


 6.关键字const是什么含意? 分别解释下列语句中const的作用?

http://www.cppblog.com/xczhang/archive/2008/01/13/41092.html

const int a;  常量a
int const a;  常量a
const int *a;  指针指向的内容不可以被修改   但是指针指向的地址可以修改。
int * const a; 指针指向的地方不可以被改,但是指向的地址的内容可以修改。

int const * const a;  指针指向地址的内容和指针指向的地址都不可以修改。


7. 嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。

#define BIT3 (1<

  • 3
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值