C语言笔试系列一

废话不多说,请看笔试题:

1、如何在C语言中初始化一个字符数组。

          最简单的方法是char array[];。更为全面的初始化方式为char array[5]={'a','s','d','f','3'};或者char array[5]={"china"};或者char array[2][10]={"china","shanghai"};

2、如何在C中为一个数组分配空间。

         栈的形式:char array[5];           堆的形式:char *array;  array=(char *)malloc(5);            //c++: array[]=new array(5);

3、如何初始化一个指针数组。

           首先区分指向数组的指针和存放指针的数组。

            指向数组的指针:char  (*array)[5];  指向一个存放五个字符数组的指针。

            存放指针的数组:char *array[5];      存放五个字符型指针的数组。

           char *array[2]={"china","shanghai"};存放两个分别指向“china”和“shanghai”的指针的数组。

4、如何定义有15个整形指针元素的数组。

           int *array[15];

5、s[10]的另外一种表达方式是什么。

         s[0]=*s; s[10]=*(s+10);

6、如何让局部变量具有全局生命周期。

        static修饰就可以了,但只是延长了生命周期,范围并没有扩大,除非把这个变量定义在函数体外的静态区,不过那样就变成全局变量了。

7、C中的常量字符串应在何时定义。

         一种是预处理阶段,用#define 定义;还有就是使用const修饰词。

8、如何在.c文件中引用对方的变量。

         为全局变量添加extern修饰词。

9、使用malloc之前需要做什么准备工作。

           需要这段空间的指针是否存在,若不存在,则定义一个指针用了被赋值,还要清楚返回什么类型的指针,分配的内存空间是否合理;如果指针已经存在,那么将新空间的地址赋值给指针之前,先判断指针是否为NULL,如果不是则要free一下,否则原有的空间就会被浪费,或者出错,free完就按前一种情形考虑。

10、realloc函数在使用上需要注意什么。

           这个函数的作用是重新分配空间大小,返回的头指针不变,只改变空间大小。变大不能大到内存溢出,变小,部分空间会被征用,原有数据不存在;如果想挪作他用,需要先free一下。

11、如何定义Boolean变量的TRUE和FALSE。

             #define TRUE 1;

             #define FALSE 0;

12、C语言的volatile的含义是什么,使用时会对编译器有什么影响。

           volatile本意是易变的。由于访问寄存器的速度快过RAM,所以编译器一般会做减少存取外部RAM的优化,但有可能会读脏数据。当要求使用volatile声明变量时,系统总是重新从所在内存中读取,而不是使用寄存器中备份的数据。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值