面试模拟题1(C语言)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面试模拟题1 (C)

面试题1:用find 写出查找/opt/kernel目录下(包括子目录)文件名为Kconfig的命令。

cd /opt/kernel; find –name Kconfig 或find /opt/kernel –name Kconfig

面试题2:用 Vi 编译器底行命令模式实现字符串替换,把当前文件中的“xiaodai”全部替换成“banzhang”。

%s/xiaodai/banzhang/g

面试题3:变量的声明和定义有什么区别?

答:变量的定义:为变量分配地址和存储空间,只在一个地方定义

变量的声明:不为变量分配地址,可以在多个地方声明,加入extern 修饰的变量的声明,说明此变量将在文件以外被定义。

很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,如外部变量。

面试题4:sizeof是库函数吗?sizeof 和 strlen 的区别?

sizeof 不是库函数,sizeof 是计算变量类型的大小,即占存储区多少个字节;

而 strlen 是计算字符串字面值的实际长度,如字符串“hello”,它的长度是5,则strlen(“hello”) = 5;

sizeof 是一个操作符,strlen 是库函数

sizeof 的参数可以是数据的类型,也可以是变量,而strlen 只能以结尾为‘\0’的字符作为参数。

编译器在编译时就计算出了sizeof 的结果,而 strlen 函数必须在运行时才能计算出

来,并且sizeof 计算的是数据类型占内存的大小,而 strlen 计算的是字符串实际

的长度。

数组做 sizeof 的参数不退化,而传递给 strlen 做参数就退化指针了,计算出的是数组中字符串中的实际长度。

如: char num[10] = “hello”

sizeof(num) = 10, 而 strlen(num) = 5;

又如:char num[] = “helloworld”

sizeof(num) = 11, strlen(sum) = 10

注意:sizeof 是最容易混淆为函数名的操作符。

面试题5:链表和数组有什么区别

面试题6:简述队列和栈的异同

面试题7:有以下语句: char a=3, b=6, c; c = a^b<<2; 则c的二进制值是_____。

面试题8:如何打印出当前源文件的文件名以及源文件的当前行号?

面试题9:假设某个函数的原型为:void foo( int x, int y ); 该函数分别被C编译器和C++编译器编译后在符号库中的名字是什么?

面试题10:在QT程序中可以调用被C 编译器编译后的函数吗?如果可以怎么实现?

面试题11:.h头文件中的ifndef/define/endif 的作用?#i nclude 与#i nclude "file.h"的区别?

面试题12:结构与联合有和区别?

面试题13:全局变量和局部变量可否同名,他们是否有区别?如果有,是什么区别?

面试题14:static有什么用途?static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?

面试题15:什么是预编译,何时需要预编译?

面试题16:有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为多少?。

面试题17:请计算sizeof的值

char str[] = “Hello” ;

char *p = str ;

int n = 10;

请计算

sizeof (str ) =_____

sizeof ( p ) =_____

sizeof ( n ) =_____

void Func ( char str[100])

{

请计算sizeof( str ) =

}

void *p = malloc( 100 ); 请计算sizeof ( p ) =

char *str[]={“Hello”,”HI”,“\x0”};

请计算:

sizeof(str) =

sizeof(str[0]) =

面试题18:头文件中有如下宏定义,

#define DECLARE_TASKLET(name, func, data) \

struct tasklet_struct name = { NULL, 0, ATOMIC_INIT(0), func, data }

.c源文件中有如下语句,static DECLARE_TASKLET(btn_tasklet,

btn_tasklet_func,

(unsigned long)&mydata);

请写出预编译后,该语句展开的结果.

面试题19:写一个程序,以递归方式反序输出一个字符串。如给定字符串“abc”输出“cba ”。

面试题20:对于一个字节(8bit)的无符号整形变量,求二进制表示中“1”的个数,要求算法执行效率尽可能地高。

面试题21:参数传递有哪些形式?寄存器和堆栈传递各有什么优缺点? 面试题22:Define宏语句和inline函数有什么区别?

面试题23:char a[5][4],a的地址为0,问printf(“%d”,a[4]+3)值

面试题24:编写一个宏,实现判断数组a元素的个数。

面试题25:.#define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?

面试题26:i++一下代码的输出结果是?

int i = 1;

int j = 2;

int k = i+++j;

cout << k << endl;

面试题27:下面代码输出是什么?为什么

void foo(void)

{

unsigned int a = 6;

int b = -20;

(a+b > 6) puts("> 6") : puts("<= 6");

}

面试题28:关于动态申请内存的问题

void GetMemory(char *p)

{

p = (char *)malloc(100);

}

void Test(void)

相关文档
最新文档