C语言面试题和答案
一、单选题部分
1、C语言程序的基本单位是____
A.语句
B.函数
C.程序行
D.字符
答案:B
2、C语言程序由()组成
A.子程序
B.过程
C.函数
D.主程序段程序
答案:C
3、算法的表示方法有______
A.自然语言,传统流程图,N-S流程图,伪代码,计算机语言
B.高级语言,汇编语言,机器语言
C.C语言,QBASIC语言,InterDev
D.图形图像法,描述法,编程法
E.计算机语言
答案:A
4、下列变量定义中合法的是
A.short_a=1-.le-1;
B.doubleb=1+5e2.5;
C.longdo=0xfdaL;
D.float2_and=1-e-3;
答案:A
5、下面说法中正确的是()
A.int型和long型运算先将int型转换成unsigned型,再转换
B.两个float型运算结果为double型
C.只要表达式中存在double型,所有其他类型数据都必须转
D.表达式中的类型转换与运算顺序有关
答案:C
6、以下不正确的叙述是
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
答案:D
7、以下说法中正确的是
A.#define和printf都是C语句
B.#define是C语句,而printf不是
C.printf是C语句,但#define不是
D.#define和printf都不是C语句
答案:D
8、若有条件表达式(exp)?a++:b–,则以下表达式中能完全等价于表达式(exp)的是
A.(exp==0
B.(exp!=0)
C.(exp==1)
D.(exp!=1)
答案:B
9、若有说明:inta[3][4]={0};则下面正确的叙述是
A.只有元素a[0][0]可得到初值0
B.此说明语句不正确
C.数组a中各元素都可得到初值,但其值不一定为0
D.数组a中每个元素均可得到初值0
答案:D
二、问答题
1、局部变量能否和全局变量重名?
答:能,局部会屏蔽全局。要用全局变量,需要使用\"::\"
局部变量可以与全局变量同名,在函数内引用这个变量时。会用到同名的局部变量,而不会用到全局变量;对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。
2、如何引用一个已经定义过的全局变量?
答:extern
可以用引用头文件的方式,也可以用extern关键字。如果用引用头文件方式来引用某个在头文件中声明的全局变理;假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错
3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
答:可以,在不同的C文件中以static形式来声明同名全局变量。
可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。
因篇幅问题不能全部显示,请点此查看更多更全内容