中国计量学院C语言课程考试试卷与解题分析

版权申诉
0 下载量 146 浏览量 更新于2024-08-06 收藏 71KB DOC 举报
本次提供的文档是中国计量学院2007-2008学年第二学期《C语言程序设计(1)》课程的考试试卷及答案,涉及两道编程题。以下是详细解析: **试题1**(每小题3分,共12分) 题目要求编写一个程序来统计1000以内的水仙花数。水仙花数是指一个n位数,其各位数字的n次幂之和等于该数本身。例如,153(1^3 + 5^3 + 3^3)就是一个水仙花数。 - 程序部分: (1) 选择循环变量初始化:正确答案是`i=100, i<1000, i++`或`i=100; i<1000; i++`,因为我们需要从100开始遍历到999,这里使用自增操作符`i++`表示每次循环后i加1。选项D多了一个逗号,因此排除。 (2) 将当前数字赋值给`t`:由于我们需要取当前数字的各位,所以正确答案是`t=i`,将当前数值传递给下一个步骤。 (3) 计算每位数字:由于题目要求每位的立方,`s`应该存储一位的立方,因此应该是`s=t%10`,保留个位数字。 (4) 判断条件:根据水仙花数定义,`i`应该等于各位数字的立方和,即`i==g*g*g + s*s*s + b*b*b`,其中`b`是百位数。因此正确答案是`C`。 **试题2**(每小题3分,共12分) 本题目标是连续输入十个整数,找出最大值及其下标。 - 程序部分: (5) 定义数组大小:由于需要存储10个整数,正确答案是`inta[10]`,选项B。 (6) 初始化最大值:在读取第一个元素后,我们需要将`max`设置为第一个元素,因此正确答案是`max=a[1]`,选项A。 (7) 比较当前元素与已知最大值:使用`if`语句判断`a[i] > max`,表示如果当前元素更大,则更新`max`。 (8) 更新最大值下标:当发现新最大值时,用`imax`记录当前下标,正确答案无动作,用分号表示,即`;`。 通过这两道题目,可以看出考试主要考察了对C语言基本语法的理解,如循环控制、变量声明、数组使用、条件判断等,以及简单的算法设计。解答这类问题需要扎实的编程基础和对C语言的深入理解。