无论你学什么编程语言,都不能仅仅停留在看的层面。最终还是要自己实际敲代码才能成长。以下是Programming Lionc整理的十大语言编程面试题及其答案。
1。变量/函数的声明和定义有什么区别
答:变量/函数的声明只是声明该变量/函数存在于程序中的某处,但并不为其分配内存。但变量/函数的声明起着重要的作用。这是变量/函数的类型。因此,当声明一个变量时,程序就知道该变量的数据类型。在声明函数的情况下,程序知道函数的参数是什么、它们的数据类型、参数的顺序以及函数的返回类型。这就是声明。关于定义,当我们定义一个变量/函数时,除了它声明的内容之外,它还为该变量/函数分配内存。因此,我们可以将定义视为声明的超集。 (或声明为定义的子集)。
2.C 中有哪些不同的存储类说明符?
答案:自动、寄存器、静态、外部
3。变量的范围是什么? C语言中变量的作用域是什么?
答:变量的作用域是程序的一部分,可以直接访问该变量。在 C 中,所有标识符都在词法(或静态)范围内。
4。如果没有分号,如何打印“Hello World”?
#包括
int main(void)
{
if (printf("Hello World")) {
}
}
5。 C 程序中什么时候应该使用指针?
答案:
1。获取变量的地址
2。在C中实现引用传递:指针允许不同的函数共享和修改它们的局部变量。
3。通过大型结构来避免完全复制结构。
4。实现“链接”数据结构,例如链表和二叉树。
6。什么是NULL指针?
答案:NULL用于表示指针没有指向有效的位置。理想情况下,如果在声明时不知道指针的值,则应将指针初始化为 NULL。另外,当程序中途释放指针所指向的内存时,我们应该将指针设置为NULL。
7.什么是悬空指针?
答案:悬空指针是指未指向有效内存位置的指针。当对象被删除或释放时,如果不修改指针的值,就会出现悬空指针,因此指针仍然指向被释放的内存的存储位置。以下是示例。
//示例1
int* ptr = (int*)malloc(sizeof(int));
........................免费(ptr);
//ptr是悬空指针,以下操作无效
*ptr = 10;
//示例2
int* ptr = NULL { int x = 10; ptr = &x; }
//x 超出范围,分配给 x 的内存现在可用
//所以ptr现在是一个悬空指针
8。什么是内存泄漏?为什么你应该避免使用它
答案:当程序员在堆中创建内存并忘记删除它时,就会发生内存泄漏。对于守护程序和服务器等程序来说,内存泄漏是一个特别严重的问题,根据定义,这些程序永远不会终止。
9。什么是局部静态变量?它们有什么用?
答案:局部静态变量是指其生命周期不随声明它的函数调用而结束的变量。它延长了整个程序的寿命。对此函数的所有调用共享局部静态变量的相同副本。静态变量可用于计算函数被调用的次数。另外,静态变量的默认值为0。例如,以下程序输出“0 1”
#包括
void fun()
{
//静态变量默认值为0
静态 int x;
printf("%d", x);
x = x + 1;
}
int main()
{
有趣();
有趣();
返回0;
}
//输出:0 1
10.什么是静态函数?它们有什么用?
答:C语言中,函数默认是全局的。函数名前的“static”关键字使其成为静态的。与 C 中的全局函数不同,对静态函数的访问仅限于声明它们的文件。因此,当我们想要限制对函数的访问时,我们将它们设为静态。将函数设置为静态的另一个原因可能是在其他文件中重复使用相同的函数名称。