C语言期末考试真题与答案解析

需积分: 28 10 下载量 182 浏览量 更新于2024-09-14 收藏 87KB DOC 举报
"C语言期末考试题及其答案,包含选择题和相关编程问题,涉及C语言的基础概念、运算符优先级、循环控制、函数调用、数组、结构体和枚举等知识点。" C语言是一门广泛应用的编程语言,对计算机科学的学习至关重要。以下是题目中涉及的一些关键知识点: 1. **C语言源程序的基本单位**:C语言源程序的基本单位是函数。程序由一个或多个函数组成,每个函数都有特定的功能。 2. **算术运算与类型转换**:在C语言中,表达式(a=5,b=2,a>b?a++:b++,a+b)会根据条件运算符的规则执行。首先,a=5,然后比较a>b,因为5>2,所以执行a++,a变为6,最后返回a+b的结果,即6+2,因此值为8。 3. **类型转换和位操作**:当执行a=125.534;a=(int)125.521%4;a=5<<2;时,a的取值分别为125, 1(因为125除以4的余数是1),最后20(5左移2位,相当于乘以2的2次方)。 4. **循环控制**:while(k=0)k=k-1;中的k=0是一个赋值表达式,它总是返回0,导致循环不会执行,所以循环体语句一次也不执行。 5. **函数调用与嵌套**:在C语言中,函数的定义不可以嵌套,但函数的调用可以嵌套,即在一个函数内部可以调用其他函数。 6. **递归调用与输出**:题目中的程序会连续调用函数三次,每次打印三个星号,因此输出结果是九个星号,即"******"。 7. **函数调用参数**:func((e1,e2),(e3,e4,e5))含有两个实参,每个括号内的逗号运算符用于分隔参数,所以第一个参数是(e1,e2)的值,第二个参数是(e3,e4,e5)的值。 8. **宏定义及计算**:预处理器指令#define ADD(x) x*x,将ADD替换为x*x。所以d=ADD(a+b)*c;计算为(4+6)*(4+6)*7,结果为700。 9. **联合体与内存分配**:在TurboC中,struct worker中的union占用一个int大小的空间,因为其成员day, month, year都是int类型,因此整个结构体w占用的内存空间为20(name)+ 1(sex)+ 4(union)= 25字节。 10. **枚举常量**:枚举enumweek定义了日历中的星期,其中mon被赋值为4,tue的值默认为5。 这些题目覆盖了C语言的基础知识,包括变量、数据类型、运算符、控制结构、函数、内存管理和预处理等核心概念,是学习C语言时需要掌握的重点内容。通过解答这些题目,考生可以检验自己的理解和应用能力,进一步巩固C语言的基础。