c面试题及答案
一、单项选择题(每题2分,共10题)
1.C语言中,定义整型变量的关键字是()
A.floatB.intC.doubleD.char
2.以下哪个运算符优先级最高()
A.+B.C.=D.%
3.若有定义“inta=5;”,则表达式“a++”的值是()
A.5B.6C.4D.7
4.以下能正确定义数组的语句是()
A.inta[5]={1,2,3,4,5,6};
B.inta[]={1,2,3};
C.inta[5]=(1,2,3,4,5);
D.inta[5]=1,2,3,4,5;
5.函数返回值的类型由()决定。
A.return语句中表达式的类型
B.调用函数的主调函数类型
C.定义函数时函数首部所指定的函数类型
D.形参类型
6.以下哪种注释方式是C语言的多行注释()
A.//B./.../C.D.--
7.若有“intx=3,y=4;”,则表达式“xy?x:y”的值是()
A.3B.4C.7D.1
8.以下关于指针的说法正确的是()
A.指针就是地址
B.指针不能指向数组
C.指针只能指向整型变量
D.指针不能作为函数参数
9.以下哪个函数用于输出字符串()
A.printfB.scanfC.putsD.getchar
10.C语言中,字符串结束标志是()
A.\0B.\nC.0D.\r
二、多项选择题(每题2分,共10题)
1.以下属于C语言基本数据类型的有()
A.整型B.浮点型C.字符型D.结构体
2.以下哪些是合法的标识符()
A._abcB.123abcC.abc_123D.$abc
3.以下关于循环结构说法正确的有()
A.while循环先判断条件,后执行循环体
B.do-while循环先执行循环体,后判断条件
C.for循环的三个表达式都可以省略
D.可以使用break语句跳出循环
4.以下哪些运算符属于关系运算符()
A.B.==C.!=D.+=
5.以下关于数组的说法正确的是()
A.数组名代表数组的首地址
B.数组元素可以是不同类型的数据
C.可以通过下标访问数组元素
D.数组在内存中是连续存储的
6.以下哪些函数属于输入输出函数()
A.printfB.scanfC.fopenD.fclose
7.以下关于指针运算正确的有()
A.指针可以进行加法运算
B.指针可以进行减法运算
C.指针可以进行乘法运算
D.指针可以进行比较运算
8.以下哪些是C语言中的预处理指令()
A.includeB.defineC.ifD.else
9.以下关于函数的说法正确的有()
A.函数可以没有参数
B.函数可以没有返回值
C.函数可以嵌套定义
D.函数可以递归调用
10.以下哪些类型属于构造数据类型()
A.结构体B.共用体C.枚举D.数组
三、判断题(每题2分,共10题)
1.C语言中,变量必须先定义后使用。()
2.表达式“5/2”的结果是2.5。()
3.字符型变量只能存储一个字符。()
4.在C语言中,数组下标从1开始。()
5.函数体内可以定义另一个函数。()
6.指针变量可以不初始化。()
7.预处理指令在编译之前执行。()
8.do-while循环的循环体至少会执行一次。()
9.可以使用continue语句跳出整个循环。()
10.结构体变量中的成员可以是不同的数据类型。()
四、简答题(每题5分,共4题)
1.简述C语言中变量的存储类别有哪些?
答案:C语言变量存储类别有自动(auto)、静态(static)、寄存器(register)、外部(extern)。auto为默认,局部变量常用;static用于局部变量时延长生命周期,用于全局变量时限制作用域;register建议存寄存器以提高访问速度;extern用于声明外部变量。
2.简述指针和数组的关系。
答案:数组名本质是指向数组首元素的指针常量。可以通过指针访问数组元素,指针运算可遍历数组。指针和数组在访问内存连续区域上密切相关,但指针可灵