第 1 页:程序填空题 |
第 2 页:程序改错题 |
第 3 页:程序设计题 |
第 4 页:参考答案 |
上机考试试题答案与解析
一、程序填空题
【1】M-1【2】bb[n++]=arr[i]【3】i,bb[i]
【解析】由整个for循环可知,变量i为数组art的下标,题目中要求取出前一个元素比后一个元素小的元素,所以只需要判断前M-1个元素即可。因此,【1】处填“M-l”;如果第i个元素比第i+1个元素小,将第i个元素放入数组bb中,因此,【2】处填“bb[n++]=arr[i]”。最后,要输出数组bb中的每一个元素。因此,【3】处填“i,bb[i]”。
二、程序改错题
(1)错误:int proc(void)
正确:void proc(void)
(2)错误:printf("%f",m[j]%5);
正确:printf("%f",m[j]/5);
【解析】由主函数中的函数调用可知,函数proc()没有返回值。因此,“int proc(void)”应改为“void proc(void)”。题目中要求使数组中元素的值缩小到1/5,而不是对5取余。因此,“printf("%f",m[j]%5);”应改为“printf("%f",m[j]/5);”。
三、程序设计题
void proc(STREC a[])
{
int i,j;
STREC t:
for(i=1;i 排序
for(j=0;j if(a[j].s 的记录,高分在前
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
【解析】要按分数的高低排列学生的记录,可以使用冒泡排序法。将每一个学生的成绩与其他学生的成绩相比较,对不符合要求的记录交换位置。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |