2025c语言程序设计考试题及答案2019
单项选择题(每题2分,共10题)
1.C语言源文件的后缀名是()
A..exeB..cC..objD..h
2.以下哪个是合法的C语言变量名()
A.1abcB._abcC.intD.ab
3.执行语句“inta=5;a+=a-=aa;”后,a的值是()
A.-40B.25C.0D.5
4.以下哪种循环结构至少会执行一次循环体()
A.forB.whileC.do-whileD.都有可能
5.若有定义“inta[5]={1,2,3,4,5};”,则a[3]的值是()
A.3B.4C.5D.0
6.函数调用时,实参和形参之间的数据传递是()
A.地址传递B.值传递C.既可以值传递也可以地址传递D.由用户指定传递方式
7.以下关于指针的说法正确的是()
A.指针变量只能指向变量B.指针变量可以不初始化
C.指针变量的值是它所指向变量的地址D.两个指针变量不能进行减法运算
8.若有定义“charstr[]=hello;”,则数组str的长度是()
A.5B.6C.7D.8
9.以下哪个头文件用于输入输出操作()
A.stdlib.hB.string.hC.stdio.hD.math.h
10.以下关于结构体的说法错误的是()
A.结构体可以包含不同类型的成员B.结构体成员可以是结构体类型
C.结构体变量不能作为函数参数D.可以定义结构体数组
多项选择题(每题2分,共10题)
1.以下属于C语言数据类型的有()
A.intB.floatC.doubleD.char
2.以下哪些运算符属于算术运算符()
A.+B.-C.D./
3.以下哪些语句可以用于终止循环()
A.breakB.continueC.returnD.goto
4.以下关于数组的说法正确的有()
A.数组名代表数组的首地址B.数组可以在定义时初始化
C.数组元素可以通过下标访问D.不同类型的数组元素可以存储在同一个数组中
5.以下哪些函数属于字符串处理函数()
A.strlenB.strcpyC.strcmpD.printf
6.以下关于函数的说法正确的有()
A.函数可以有返回值B.函数可以没有参数
C.函数可以嵌套定义D.函数可以递归调用
7.以下哪些属于指针的运算()
A.指针与整数的加法B.指针与指针的减法
C.指针的自增自减D.指针与整数的乘法
8.以下关于文件操作的函数有()
A.fopenB.fcloseC.freadD.fwrite
9.以下哪些关键字可以用于定义结构体()
A.structB.unionC.typedefD.enum
10.以下关于C语言的特点描述正确的有()
A.简洁紧凑B.运算符丰富C.可移植性好D.数据类型丰富
判断题(每题2分,共10题)
1.C语言中,变量必须先定义后使用。()
2.表达式“5/2”的结果是2.5。()
3.for循环的三个表达式都可以省略。()
4.数组名作为函数参数时,传递的是数组的首地址。()
5.指针变量可以指向任何类型的数据。()
6.字符串“abc”和字符数组{a,b,c}完全一样。()
7.函数中没有return语句,该函数就没有返回值。()
8.结构体变量之间可以直接进行赋值操作。()
9.文件操作结束后,不需要关闭文件。()
10.C语言是一种面向对象的编程语言。()
简答题(每题5分,共4题)
1.简述C语言中变量的存储类别有哪些?
答案:C语言变量存储类别有auto(自动变量,默认)、register(寄存器变量)、static(静态变量)、extern(外部变量)。
2.简述数组和指针的关系。
答案:数组名本质是指针常量,指向数组首元素。指针可指向数组元素,通过指针可像操作数组一样访问数组元素,指针运算可遍历数组。
3.简述函数调用过程中参数传递的方式。
答案:有值传递和地址传递。值传递是将实参值复制给形参;地址传递是将实参地址传给形参,函数可通过地址修改实参值