计算机二级上机题库很有用 题目就是里面出的
【解题思路】
进入fun函数,根据前面的分析,采用循环分别对符合周边元素条件的元素进行统计求平均值。
【主要考点】二维数组;for循环语句。
第12套上机考试答案解析:
1、程序填空题
【答案及难度指数】★★
(1)str[j]<='z' (2)32 (3)str
【一起来审题】
(1)该程序功能是将小写字母都改为对应的大写字母。其中,将小写字母转换位对应的大写字母的方法是,小写字母对应的ASCII码值减去32就是其大写字母的ASCII码值。
(2)从已给部分源程序的main主函数开始入手,主函数printf语句中的"fun(str);"实现题干要求。
(3)进入fun函数,先判断输入的字母是否是小写字母,若是小写字母,将其转化为对应的大写字母。
【解题思路】
第一空:根据前面的分析知道,首先判断是否是小写字母,小写字母范围是a~z,if表达式中的前半部分为"(str[j]>='a')",所以第一空填"str[j]<='z'"。
第二空:根据转换方法的分析,这里是对小写字母的ASCII码减32的操作,所以第二空填"32"。
第三空:函数fun定义时,返回值为char*,这里是对操作后的字符串的返回,所以这里填"str"。
【主要考点】指针;数组;函数返回值。
2、程序改错题
【答案及难度指数】★
(1)if((n%11==0) || (n%19==0)) (2)}
【一起来审题】
该题中函数功能是求能被11或19整除的自然数之和。从已给定源程序的main主函数开始入手,"printf("%d\n",fun(300));"语句中的fun函数将300传给n,计算小于300的能被11或19整除的自然数之和。
【解题思路】
(1)第一个标识下的"if((n%11=0) || (n%19=0))"语句应该是判断n是否能被11或19整除,所以应该用逻辑符号"=="而不是赋值符号=,即"if((n%11==0) || (n%19==0))"。
(2)第二个标识下,"___填空___"明显没有函数结束括号,所以这里应该填"}"。
【主要考点】逻辑语法;函数返回值。
3、程序设计题
【答案及难度指数】★★★
int i,j=0,n;
n=strlen(str); //取字符串str长度
for(i=0;i<n;i++)
if(i%2==0&&str[i]%2==0)
//判断字符i是否符合条件
{
s[j]=str[i];
//将偶数下标及偶数ASCII码的字符放入新串
j++; //新串长度加1
}
s[j]='\0'; //新串添加尾符
【一起来审题】
该程序功能是将字符串中除了下标为偶数、ASCII值也为偶数的字符外,其余的全都删除。解题过程利用if条件判断表达式选择符合条件的字符,然后将符合条件的字符放入指定的字符串。
【解题思路】
(1)判断一个字符串中的某一字符下标i是否为偶数,可用"i%2==0"来判断,而判断字符中的ASCII码值是否为偶数,则可用"str[i]%2==0"来判定。
(2)对串str中各个字符串逐个进行考查,满足条件的字符就顺序放在新串s中,否则就不存放。
(3)所有字符处理完后,记得在新串s的末尾加上结束符"'\0'"。
【主要考点】数组操作;函数传值;if条件语句;for循环语句。