华为C语言笔试精华及全局变量详解

5星 · 超过95%的资源 需积分: 9 56 下载量 11 浏览量 更新于2024-07-23 收藏 84KB DOC 举报
华为C语言笔试主要考察了面试者对C语言基础和编程规范的理解。以下是部分题目详解: 1. 局部变量与全局变量重名:在C语言中,局部变量可以与全局变量同名,但局部变量会遮蔽全局变量。要在函数内部使用全局变量,需明确指定为"::",或者在头文件中声明全局变量,并在需要使用的地方用extern关键字。 2. 引用全局变量:使用extern关键字可以间接引用已定义的全局变量。头文件中声明的变量若出现错误,编译阶段会报错,使用extern时,编译阶段不会报错,链接阶段才会发现问题。 3. 全局变量的多文件使用:全局变量可以声明在多个.C文件中,但需要确保只有其中一个文件在首次定义时赋初值,以避免链接时的错误。静态全局变量的作用域仅限于声明它的源文件,其他文件中不可访问。 4. 循环结构的差异:for(;1;)和while(1)相同,它们都表示无限循环,直到遇到break跳出循环。do-while循环与while-do的区别在于,do-while先执行一次循环体再判断条件,而while-do则是先判断条件再执行循环体。 5. 输出结果分析:给出的代码片段中,a的初始值为10。b=a++会先取a的当前值10,然后递增a为11;c=++a先递增a为11,然后取新的值赋给c;d=10*a++中,d会被初始化为10*11=110,然后a递增为12。因此,输出结果为b=10, c=12, d=120。 6. 静态变量的特性:static全局变量和局部变量在存储方式上相同,均为静态存储,但全局静态变量的作用域限定于文件级别,而局部静态变量只在定义它的函数范围内有效。静态函数则是不形成新的作用域,且在其调用结束后自动销毁,与其他函数共享静态变量。 通过这些题目,可以看出华为C语言笔试注重对基础知识的掌握,包括变量的作用域、引用规则、循环结构的理解以及基本语法的运用。此外,还测试了考生对内存管理、代码逻辑推理及编译链接过程的了解。理解并掌握这些概念是准备此类笔试的关键。