C语言基础面试题解析

需积分: 9 2 下载量 76 浏览量 更新于2024-09-12 收藏 37KB DOC 举报
"C语言面试题" C语言是计算机科学的基础,是许多程序员入门的语言。面试中,对于C语言的理解和熟练度通常是评估候选人技术能力的重要方面。以下是对给定题目中涉及的知识点的详细解释: 1. **选择题**: - A、B、C选项都是正确地引用了结构变量成员。选项D错误是因为应使用`&`取地址运算符来获取`age`的地址,而不是直接使用箭头运算符`.`。 - 2、在C语言中,二维数组的初始化必须指定第一维的大小。因此,D选项是错误的,因为它没有为第一维指定大小。 - 3、C语言中,函数默认的存储类别是`extern`,意味着函数的作用域超出它所在的文件。 - 4、指针变量`pb`应该指向`x`的地址,所以正确赋值表达式是A选项`pb=&x`。 - 5、动态分配内存时,应该为每个元素分配大小,所以正确的语句是B选项`p=(int*)malloc(2*sizeof(int))`。 2. **BOOL, float, 指针变量与“零值”比较的if语句**: - 对于BOOL类型的`flag`,通常在C语言中可以用`flag != 0`或`flag == TRUE`来检查是否为非零值,即真。 - 浮点数`x`与零值的比较通常写为`if (fabs(x) > epsilon)`,其中`epsilon`是一个非常小的正数,用来考虑浮点误差。 - 指针`p`与零值的比较可以写为`if (p != NULL)`,确保指针不是空指针。 3. **sizeof的计算**: - 在C语言中,`sizeof`运算符返回变量或类型所占的字节数。 - 在函数`Func`的参数列表中,`sizeof(str)`会计算数组的大小,即100个字符(包括结束符`\0`),因此`sizeof(str)=100`。 - `char str[]="Hello"`是一个字符串字面量,`sizeof(str)`计算整个字符串的大小,包含`\0`,所以`sizeof(str)=6`。 - 指针`p`的`sizeof`总是返回指针本身的大小,与指针指向的内容无关,所以`sizeof(p)`通常是4或8,取决于平台(32位还是64位)。 - `sizeof(n)`对于整型变量`n`,通常返回4字节。 - 分配100个字节的内存后,`sizeof(p)`仍保持不变,因为它是指针的大小,而不是分配的内存大小。 4. **简答题**: - `ifndef/define/endif`是预处理器指令,用于防止头文件被多次包含。如果`#ifndef`后的标识符未被定义,那么`#define`将定义该标识符,然后执行到`#endif`之间的代码。这样可以避免头文件在多个地方被包含时导致的重复定义问题。 这些知识点涵盖了C语言的基础,包括数据类型、内存管理、结构体操作、指针、数组以及预处理器指令等。理解和掌握这些内容对于准备C语言面试至关重要。