c 自考试题及答案.doc
c自考试题及答案
一、单项选择题(每题2分,共20分)
1.C语言中,基本数据类型不包括()
A.intB.floatC.structD.char
2.以下合法的标识符是()
A.3abB._abcC.intD.a-b
3.若inta=5;则表达式a++的值是()
A.5B.6C.4D.7
4.执行语句printf(%d,5%2);输出结果是()
A.0B.1C.2D.3
5.以下循环的执行次数是()
```c
for(inti=0;i5;i++){}
```
A.4次B.5次C.6次D.0次
6.函数调用时,实参和形参之间的数据传递是()
A.地址传递B.值传递C.既可以是值传递也可以是地址传递D.由用户指定传递方式
7.若有定义inta[5];则数组a的首地址是()
A.a[0]B.a+1C.a[5]D.a[0]
8.以下关于指针的说法正确的是()
A.指针变量可以直接存储常量B.指针变量只能指向变量C.指针变量可以指向函数D.指针变量不能进行算术运算
9.若有定义chars[10]=hello;则strlen(s)的值是()
A.5B.6C.10D.11
10.打开一个文件使用的函数是()
A.fcloseB.freadC.fopenD.fwrite
二、多项选择题(每题2分,共20分)
1.以下属于C语言运算符的有()
A.+B.C.%D.=
2.以下数据类型属于构造类型的有()
A.数组B.结构体C.共用体D.枚举
3.下列循环控制语句中,哪些可以实现无限循环()
A.for(;;)B.while(1)C.do{}while(1)D.for(inti=0;i10;i++)
4.以下关于函数的说法正确的有()
A.函数可以有返回值B.函数可以没有参数C.函数必须有参数D.函数可以嵌套定义
5.数组定义正确的有()
A.inta[3];B.intn=5;intb[n];C.charc[]={a,b,c};D.floatd[2][3];
6.指针运算包括()
A.指针与整数的加减运算B.指针与指针的减法运算C.指针的自增自减运算D.指针的赋值运算
7.以下能正确输出字符串的函数有()
A.printfB.putsC.fputsD.getchar
8.关于结构体说法正确的是()
A.结构体成员可以是不同数据类型B.结构体可以嵌套定义C.结构体变量可以整体赋值D.结构体可以作为函数参数
9.以下文件操作函数中,用于写入数据的有()
A.fputcB.fwriteC.fprintfD.fscanf
10.以下属于C语言预处理命令的有()
A.includeB.defineC.ifD.else
三、判断题(每题2分,共20分)
1.C语言中,变量必须先定义后使用。()
2.表达式5/2的结果是2.5。()
3.do-while循环至少会执行一次循环体。()
4.函数内部定义的变量只能在该函数内部使用。()
5.数组名代表数组的首地址。()
6.指针变量可以不初始化直接使用。()
7.字符串结束标志是\0。()
8.结构体变量不能作为函数的返回值。()
9.fopen函数打开文件失败时会返回NULL。()
10.C语言中,注释部分会参与程序的编译。()
四、简答题(每题5分,共20分)
1.简述C语言中变量的作用域分类。
答:变量作用域分为局部变量和全局变量。局部变量在函数内部或复合语句内定义,作用域在定义处到所在函数或复合语句结束;全局变量在函数外部定义,作用域从定义处到文件结束,部分可通过extern扩展作用域。
2.简述数组和指针的关系。
答:数组名是一个指针常量,指向数组首元素。可以用指针方式访问数组元素,如(p+i)访问数