C语言期末考试选择题解析与解答

版权申诉
0 下载量 50 浏览量 更新于2024-08-23 收藏 27KB PDF 举报
"C语言期末考试题及其答案借鉴.pdf" 这些题目涵盖了C语言的基础知识点,包括程序的基本单位、数据类型与运算、流程控制、函数的使用、数组与结构体等。让我们逐一解析: 1. C语言源程序的基本单位是(B)函数。C语言中的源程序由一个或多个函数组成,其中必须包含一个`main()`函数作为程序的入口。 2. 下列程序的输出结果是(C)0。这段代码执行`b=b/a`,由于7除以5的商为1余2,因此b的值变为0,并在输出时显示0。 3. 表达式`(a=5,b=2,a>b?a++:b++,a+b)`的值是(C)9。首先执行`(a=5,b=2)`,然后判断条件`a>b`不成立,执行`b++`使b变为3,最后计算`a+b`得9。 4. 设a为int型变量,执行下列赋值语句后,a的取值分别是(C)125,31,20。`a=125.534`将浮点数转换为整数125;`a=(int)125.521%4`取模结果为31;`a=5<<2`左移2位相当于乘以2的2次方,即20。 5. 程序段`while(k=0) k=k-1;`中,`while`循环会执行一次,因为`k=0`是一个赋值操作,结果为0,满足循环条件。 6. 以下程序的输出结果为(B)*** *** *** *** ***。`main()`函数中`for`循环会执行4次,每次调用`prt()`函数打印3个星号,所以总共打印12个星号。 7. 在C语言程序中,函数的定义不可以嵌套,但函数的调用可以嵌套,选项(B)正确。 8. 函数调用语句`func((e1,e2),(e3,e4,e5));`含有2个实参,每个括号内的逗号运算符表示参数列表,所以选项(A)正确。 9. 以下程序的输出结果为(D)d=700。`#define ADD(x) x*x`定义了一个宏,将`ADD(a+b)`替换为`(a+b)*(a+b)`,即`4+6*4`,结果为700。 10. 已知职工记录`struct worker`包含一个int型、一个20字节的字符数组、一个字符和一个联合体,联合体占用4字节(int型的大小)。总空间为:1(int)+ 20(name)+ 1(sex)+ 4(union)= 26字节,但由于对齐要求,通常变量会按照4字节对齐,所以实际分配的空间为28字节,但这道题目没有给出具体编译器的对齐规则,所以答案可能是28或32,具体取决于编译器的内存对齐策略。在TurboC中,可能会按照4字节对齐,因此分配32字节,但题目给出的答案选项中没有这个选项,所以可能需要确认编译器的具体设定。 以上是对C语言期末考试题目的详细解析,涵盖了许多C语言的基础知识点。通过这些题目,学生可以复习到变量、数据类型、运算符、流程控制语句、函数、数组、结构体以及预处理器等内容,有助于提高对C语言的理解和应用能力。