c c 软件开发面试题及答案.doc
cc软件开发面试题及答案
一、单项选择题(每题2分,共10题)
1.在C语言中,合法的字符常量是()。
A.084B.\x43C.abD.\0
答案:B
2.若有定义:inta=5;则表达式a++的值是()。
A.5B.6C.4D.7
答案:A
3.C语言中函数返回值的类型是由()决定的。
A.return语句中的表达式类型
B.调用该函数的主调函数类型
C.定义函数时指定的函数类型
D.以上说法都不对
答案:C
4.以下不能正确定义二维数组的选项是()。
A.inta[2][2]={{1},{2}};
B.inta[][2]={1,2,3,4};
C.inta[2][2]={{1},2,3};
D.inta[2][2]={1,2,3,4};
答案:C
5.在C语言中,对于逻辑表达式ab,当a为假时()。
A.不计算b的值
B.计算b的值
C.表达式的值为真
D.表达式的值为假
答案:A
6.若有定义:intp;则以下动态内存分配语句正确的是()。
A.p=(int)malloc(sizeof(int));
B.p=(int)calloc(1,sizeof(int));
C.以上两种都正确
D.以上两种都错误
答案:C
7.以下关于结构体的说法正确的是()。
A.结构体成员不能是结构体类型
B.结构体变量不能整体赋值
C.结构体成员可以是不同的数据类型
D.结构体大小等于各成员大小之和
答案:C
8.在C语言中,文件操作函数fopen的返回值是()。
A.文件指针
B.0表示成功,非0表示失败
C.1表示成功,0表示失败
D.非0表示成功,0表示失败
答案:A
9.若有函数定义:intfun(intx,inty){returnx+y;},调用函数fun(3,4)的返回值是()。
A.7B.1C.0D.不确定
答案:A
10.以下关于函数指针的说法错误的是()。
A.函数指针可以指向不同的函数
B.函数指针可以作为函数参数传递
C.函数指针只能指向特定类型的函数
D.函数指针可以直接调用函数
答案:D
二、多项选择题(每题2分,共10题)
1.C语言中的基本数据类型包括()。
A.整型
B.浮点型
C.字符型
D.数组型
答案:ABC
2.以下哪些是C语言中的循环语句()。
A.for循环
B.while循环
C.do-while循环
D.if-else循环
答案:ABC
3.关于指针的以下说法正确的是()。
A.指针可以指向数组元素
B.指针可以进行算术运算
C.指针可以为空指针
D.指针可以指向函数
答案:ABCD
4.以下关于宏定义的说法正确的是()。
A.宏定义是简单的文本替换
B.宏定义可以带参数
C.宏定义提高程序的运行效率
D.宏定义可以嵌套
答案:ABD
5.在C语言中,函数的参数传递方式有()。
A.值传递
B.地址传递
C.引用传递
D.指针传递
答案:AB
6.以下关于数组的说法正确的是()。
A.数组名是数组的首地址
B.数组可以动态分配内存
C.数组元素在内存中是连续存储的
D.二维数组可以看作是特殊的一维数组
答案:ABCD
7.关于结构体和联合体的区别,以下说法正确的是()。
A.结构体的所有成员都占用内存空间,联合体成员共享内存空间
B.结构体可以有多种数据类型的成员,联合体也可以
C.结构体变量大小是各成员大小之和,联合体大小是最大成员的大小
D.结构体和联合体都可以嵌套定义
答案:ABC
8.在C语言中,文件操作的模式有()。
A.r(只读)
B.w(只写)
C.a(追加)
D.rw(读写)
答案:ABC
9.以下哪些是C语言中的关键字()。
A.int
B.for
C.myvar
D.sizeof
答案:ABD
10.以下关于C语言中的函数的说法正确的是()。
A.函数可以递归调用
B.函数可以有多个返回值
C.函数内部可以定义局部变量
D.函数必须有返回值
答案:AC
三、判断题(每题2分,共10题)
1.在C语言中,变量必须先定义后使用。()
答案:正确
2.字符型数据在内存中是以ASCII码形式存储的。()
答案:正确
3.数组名作为函数参数时,传递的是数组的副本。()
答案:错误
4.宏定义中的参数没有类型。()
答案:正确
5.在C语言中,所