计算机二级上机题库很有用 题目就是里面出的
第14套上机考试答案解析:
1、程序填空题
【答案及难度指数】★★
(1)!= (2)s[1]
【一起来审题】
(1)首先审题,要了解程序要实现的功能,该题中函数功能是判断串s中的某个字符是否与字符ch相同,最后将符合条件的字符进行连接。
(2)进入fun函数,利用while循环对字符串中的每一个字符进行判断。
【解题思路】
第一空:根据题干要求,如果字符ch和串s中的字符相同什么都不做,根据逻辑这里应该是字符ch和串s中的字符不同,所以第一空填"!="。
第二空:如果没有找到字符ch,则在while循环结束后,s指针指向串的结束符'\0',此时应将字符ch写入这里,并在下一地址写入一个串结束符,所以这里应该是"s[1]"。
第三空:根据主函数中的"gets(str);"、"c=getchar();"语句和函数的定义"void fun(char *s,char ch)",知道函数的调用表达式中fun的参数应该是str和c,所以第三空填"str,c"。
【主要考点】if条件语句;函数调用。
2、程序改错题
【答案及难度指数】★
if((i+1)%5==0)
【一起来审题】
本题函数的功能是对每五个元素求一个平均值。首先要依顺序读取每五个元素,并对这五个元素取平均值。
【解题思路】
错误标识下的if判断语句是依顺序取五个字符,if中的逻辑表达式语法有误,由于1%5恒等于1,所以i+1%5也就等价于i+1了,所以将"if(i+1%5==0)"改为"if((i+1)%5==0)",此处主要注意的是运算符的优先级。
【主要考点】if条件语句。
3、程序设计题
【答案及难度指数】★★★
int r=0,temp,p,sign=1;
for(temp=x+1;temp<x*x;temp++)
//从temp开始循环,判断紧靠temp的整数
{
for(p=2;p<temp;p++)
{
if(temp%p!=0) //判断temp是否为素数
sign=1;//若是素数,标志设为1
else
{
sign=0; //若不是素数,标志设为0
break;
}
}
if(sign==1&&p>=temp)
{
if(sum>=0)
//判断已有的素数个数是否已经满足sum个
{
select[r++]=temp;//将素数temp存入数组select
sum--;//将题目中要求的素数个数减1
}
else
break;
} (3)str,c