计算机二级上机题库很有用 题目就是里面出的
第8套上机考试答案解析:
1、程序填空题
【答案及难度指数】★★
(1)(*x)++ (2)(*y)++ (3)cap,min
【一起来审题】
(1)该程序功能是统计字符串中大写字母和小写字母的个数。
(2)从已给部分源程序的main主函数开始入手,主函数执行"fun(str,&cap,&min);",将参数cap、min传递给fun函数的x、y参数,void fun(char *str,int *x,int *y)对大、小写字母进行统计。
(3)进入fun函数,通过while循环对字符串中的每一个字符进行判断,然后对其进行计数统计。
【解题思路】
第一空:"if(*str>='A' && *str<='Z')"是判断当前字符是否为大写字母,而且x是一个整型指针,要使x指向的数据实现递增,则要把指针改为实际数据,因此第一空应填(*x)++。
同理,第二空填(*y)++。
第三空:根据题意要输出统计的字符串中大、小写字母的个数,参照前面参数的对应关系,第三空填cap,min。
【主要考点】输入输出函数及指针的使用。
2、程序改错题
【答案及难度指数】★★
(1)temp=1.0; (2)while(temp>=eps)
【一起来审题】
该题中函数功能是根据公式计算π值。从已给定源程序的main主函数开始入手,通过键盘输入制定精度,然后通过"printf("\neps=%lf,Pi=%lf\n\n",x,fun(x));"语句来调用fun函数。
【解题思路】
(1)根据题目中的公式,应该从1开始加。如果temp起始为0,结果就少加一个1。又由于temp定义为浮点数,所以,第一个错误标识下应该将"temp=0;"改为"temp=1.0;"。
(2)根据题目知,当精度大于等于给定的精度变量eps时,就会继续进行计算,直到满足精度小于给定的eps,所以,第二个标识下应该将"while(temp<=eps)"改为"while(temp>=eps)"。
【主要考点】变量范围;逻辑关系。
3、程序设计题
【答案及难度指数】★★★
char *p,*t1=t,*s1=str;
int n=0,m=0;
while(*s1) //计算串str的长度n,其中s1为临时指针
{
n++;
s1++;
}
while(*t1) //计算串t的长度m,其中t1为临时指针
{
m++;
t1++;
}
if(n>=m) //比较m和n的值,设置p指向较大的指针
p=str;
else
p=t;
return p;
【一起来审题】
该程序功能是比较两个字符串的长度。解题过程是首先分别求得两个字符串的长度,然后对这两个值进行判断,实现两个字符串长度的比较。
【解题思路】
进入fun函数,根据前面的分析:
(1)首先求得字符串的长度,设变量n和m分别用来求字符串的长度,初值设为0,把字符串中的字符逐个访问,每访问一个字符,n和m分别加1,直到字符串结束。
(2)使用两个临时指针变量s1、t1分别作为访问字符串的变量。
(3)根据m和n的值返回串,设置指针p,指向返回串的开始地址。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库c上机模拟详细参考答案_whc0909(9)在线全文阅读。
相关推荐: