C语言经典笔试题总结
本篇笔试题涵盖了C语言的多个方面,包括变量、函数、循环和存储方式等。下面是对每个问题的详细解释和总结:
1. 局部变量和全局变量的命名冲突
局部变量可以与全局变量同名,但是在函数内引用这个变量时,会使用同名的局部变量,而不会使用全局变量。要使用全局变量,需要使用"::"运算符。局部变量的作用域只在函数内,而全局变量的作用域是整个源程序。
2. 引用已经定义过的全局变量
可以使用extern关键字来引用已经定义过的全局变量,也可以使用引用头文件的方式来引用。如果使用引用头文件方式来引用某个在头文件中声明的全局变量,假定你将那个变写错了,那么在编译期间会报错。如果用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
3. 全局变量的定义和声明
可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值。此时连接不会出错。在不同的C文件中以static形式来声明同名全局变量,可以限制其作用域在该源文件内。
4. for语句和while语句的区别
for语句和while语句都是循环语句,但它们的作用域和使用方式不同。for语句通常用于遍历数组或集合,而while语句用于条件循环。例如,语句for(;1;)和while(1)相同,它们都是死循环。
5. do-while循环和while循环的区别
do-while循环和while循环都是循环语句,但它们的执行顺序不同。do-while循环先执行循环体,然后再判断条件,而while循环先判断条件,然后再执行循环体。
6. 变量的赋值和输出
变量的赋值和输出是C语言的基本操作。例如,代码#include<stdio.h> main() { int a, b, c, d; a = 10; b = a++; c = ++a; d = 10 * a++; printf("b, c, d: %d, %d, %d", b, c, d); return 0; }的输出结果是10, 12, 120。
7. static变量和函数的作用域
static变量和函数的作用域是限制在该源文件内的。static全局变量和普通全局变量的区别在于非静态全局变量的作用域是整个源程序,而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效。在同一源程序的其它源文件中不能使用它。
这些笔试题涵盖了C语言的多个方面,包括变量、函数、循环和存储方式等。通过这些问题的解释和总结,希望能够帮助读者更好地理解C语言的基础知识。