计算机二级上机题库很有用 题目就是里面出的
第7套上机考试答案解析:
1、程序填空题
【答案及难度指数】★
(1)a<b (2)a<c
【一起来审题】
该题中函数功能是把从键盘输入的三个整数按从大到小的顺序输出。本题中函数的实现过程是通过if语句分别对三个整数进行两两判断。
【解题思路】
第一空:根据第一空下面的三条赋值语句,可以很清楚地知道第一个if条件语句中是对a与b进行比较。题干要求对三个数按从大到小的顺序输出,if下面的交换关系表明,当a小于b时要对a与b的位置进行交换,所以第一空填"a<b"。
同理,第二空填"a<c",第三空填"b<c"。
【主要考点】if条件语句。
2、程序改错题
【答案及难度指数】★★
(1)for(k=2;k<=m;k++)
(2)c-=1.0/(k*k);
【一起来审题】
该程序功能是根据题目要求计算公式。从已给定源程序的main主函数开始入手,"printf("\nThe result is%1f\n",fun(para));"语句中的fun(para)将参数para传给函数double fun(int m)中的m,实现公式的计算结果。
【解题思路】
(1)第一个标识下面,"for(k=2;k<m;k++)"中的循环条件根据题干中的公式,可以知道要计算的公式中应包括k=m时的值,所以循环条件应该改为"for(k=2;k<=m;k++)"。
(2)第二个标识下面,因为c被定义为浮点型,k被定义为整型,所以"1/(k*k)"的计算结果为整型,即"c-=1/(k*k);"的返回值为整型,随着k的增加,计算结果一直为0,因此改为"c-=1.0/(k*k);"。
【主要考点】C语言基本语法;变量类型。
3、程序设计题
【答案及难度指数】★★★
long s=0,t;
int i=0,j,n=strlen(str),k,s1;
//求得字符串长度n
if(str[0]=='-')
i++;
for(j=i;j<=n-1;j++)
{
t=str[j]-'0';//把字符变成数值
s1=10;
for(k=j;k<n-1;k++)
t*=s1; //把t中原来的数值增加10倍,即向左移动一位
s+=t; //把转换后的数值t加在个位
}
if(str[0]=='-')
//判断数字字符是否为负数
return-s; //负数返回-s
else
return s; //正数返回s
【一起来审题】
该程序功能是将一个数字字符串转换为一个整数。其中,解题思路是将每位数字字符串的ASCII码减去48(字符"0"的ASCII码值),变成数值0~9。然后再不断进行高位乘以10加低位的运算,或者反过来从低位向高位求,即不断进行低位加高位乘以10的运算。
【解题思路】
进入fun函数,根据前面的分析:从左到右移动指针str,利用上一步不断把t中的数据左移一位,把str当前所指字符转换成数字再加上低位,从而把数字字符串转换成一个整数。
【主要考点】数组操作;for循环语句。 (3)b<c
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库c上机模拟详细参考答案_whc0909(8)在线全文阅读。
相关推荐: