c二级试题及答案
一、单项选择题(每题2分,共10题)
1.在C语言中,以下哪个关键字用于声明函数?
A.int
B.void
C.return
D.struct
2.C语言中,用于定义全局变量的关键字是?
A.auto
B.static
C.extern
D.register
3.在C语言中,哪个运算符用于取模运算?
A.%
B./
C.*
D.-
4.下列哪个选项不是C语言的基本数据类型?
A.int
B.float
C.string
D.double
5.C语言中,哪个函数用于将字符串复制到另一个字符串?
A.strcpy
B.strncpy
C.strcat
D.strcmp
6.在C语言中,哪个函数用于动态内存分配?
A.malloc
B.free
C.calloc
D.realloc
7.C语言中,以下哪个是正确的二维数组声明方式?
A.inta[2][3];
B.inta[][];
C.inta[2][];
D.inta[3,2];
8.C语言中,哪个函数用于获取当前时间?
A.time
B.localtime
C.mktime
D.gmtime
9.在C语言中,哪个关键字用于声明指针?
A.int
B.char
C.*
D.void
10.下列哪个选项是C语言中的逻辑运算符?
A.||
B.
C.+=
D.--
二、多项选择题(每题2分,共10题)
1.在C语言中,以下哪些是合法的变量名?
A.2variable
B.variable2
C._variable
D.variable$
2.C语言中,哪些是合法的常量?
A.123
B.0x1A
C.3.14e2
D.0b1010
3.在C语言中,哪些是合法的字符串字面量?
A.Hello,World!
B.Hello,World!
C.HelloWorld!
D.Hello
4.下列哪些是C语言中的控制流语句?
A.if
B.while
C.switch
D.case
5.在C语言中,哪些是合法的函数声明?
A.intfunc(inta);
B.intfunc();
C.voidfunc(inta){}
D.intfunc(inta,intb){returna+b;}
6.在C语言中,哪些是合法的数组声明?
A.intarr[5];
B.intarr[]={1,2,3};
C.int*arr=malloc(5*sizeof(int));
D.intarr[5]={0};
7.在C语言中,哪些是合法的指针操作?
A.int*ptr=NULL;
B.int*ptr=someVar;
C.intvalue=*ptr;
D.ptr=malloc(sizeof(int));
8.下列哪些是C语言中的输入输出函数?
A.printf
B.scanf
C.fgets
D.fputs
9.在C语言中,哪些是合法的宏定义?
A.definePI3.14159
B.defineSQUARE(x)((x)*(x))
C.defineTRUE1
D.definemainintmain()
10.下列哪些是C语言中的预处理指令?
A.include
B.define
C.ifdef
D.pragma
三、判断题(每题2分,共10题)
1.C语言中的数组下标是从0开始的。(对/错)
2.C语言中,函数可以返回一个数组。(对/错)
3.在C语言中,所有的变量必须在使用前声明。(对/错)
4.C语言中的指针可以存储任何类型的数据。(对/错)
5.C语言中的switch语句可以用于字符串类型的变量。(对/错)
6.C语言中,sizeof运算符可以用来获取任何类型的数据的大小。(对/错)
7.C语言中,全局变量的生命周期是整个程序运行期间。(对/错)
8.C语言中,函数的参数默认是按值传递的。(对/错)
9.C语言中,宏定义可以包含复杂的逻辑表达式。(对/错)
10.C语言中,使用malloc分配的内存必须使用free函数释放。(对/错)
四、简答题(每题5分,共4题)
1.请简述C语言中指针和数组的区别。
2.解释C语言中宏定义的