计算机二级上机题库很有用 题目就是里面出的
第13套上机考试答案解析:
1、程序填空题
【答案及难度指数】★★
(1)*p (2)j++
【一起来审题】
(1)该程序功能是取出字符串中所有大写字母。
(2)从已给部分源程序的main主函数开始入手,主函数语句"fun(str);"调用函数fun实现题目要求。
(3)进入fun函数,利用while循环对字符串中的每一个字符进行判断。
【解题思路】
第一空:根据fun函数的定义和while中if判断语句中的表达式,知道这里字符为指针型,即这里填"*p"。
第二空:如果字符*p符合条件语句中的表达式,即*p为大写字母,将*p的值赋于s[j],并且计算器j加1,所以第二空填"j++"。 第三空:对所有字符处理完后,要注意的就是在新字符串s的末尾加上串结束符'\0',所以第三空填"'\0'"。
【主要考点】while语句;字符串操作。
2、程序改错题
【答案及难度指数】★
(1)sum=0 (2)scanf("%d,",&aa[i][j]);
【一起来审题】
该题中函数功能是计算元素的和。从已给定源程序的main主函数开始入手,然后通过"fun();"语句调用fun函数的功能。
【解题思路】
(1)根据题意计算元素求和,所以函数fun中不仅要有用于存储累加和的变量sum,而且要给sum赋初值。因此,填空处填上"sum=0"。
(2)scanf()语句中的实参必须是地址型的,而下标aa[i][j]却是整型的变量。因此第二个标识下"aa[i][j]"应改为"&aa[i][j]"。
【主要考点】变量定义;输入函数的语法。
3、程序设计题
【答案及难度指数】★★★
int temp ,min;
min=s[0];
//将数组s的第一个元素s[0]赋于min
for(temp=0;temp<t;temp++)
if(s[temp]<min)
//判断min与数组每个元素的大小
{
min=s[temp]; //将小于min的数组元素赋值给min
*result=temp;//将结果下标赋值给指针result
}
【一起来审题】
(1)该程序功能是求最小元素在数组中的下标。它的解题思路是,用最小值变量min标记第一个待找数据,逐个把所有待找数据和min进行比较,并用min标记其当前最小值及其所在位置,从而找出最小值。
(2)从已给部分源程序的main主函数开始入手,核心函数"fun(store,10,&result);"中的参数store存放着试题给出的整数,fun函数实现查找最小元素的下标。
【解题思路】
进入fun函数,根据前面的分析:
函数fun中形参"*s"为指针变量,与主函数中的store相对应;t的实参值为10;形参"*result"为指针变量对应result的值。
首先,min赋值给数组s的第一个元素,通过"for(temp=0;temp<t;temp++)"循环将min与s数组中的元素依次比较,求出数组的最小元素值。
本题考点是函数用指针参数返回值。
【主要考点】数组操作;指针操作。
(3)'\0'