教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 小学教育 >

c上机模拟详细参考答案_whc0909(4)

来源:网络收集 时间:2026-08-14
导读: 【解题思路】 第一空:switch(___1___)语句下面的case语句是判断switch中的表达式中的数字是否为5、6、7,因此这里的表达式应该是取长整数的一位,根据前面的分析,这里填test%10; 第二空和第三空:因为一位数字只

【解题思路】

第一空:switch(___1___)语句下面的case语句是判断switch中的表达式中的数字是否为5、6、7,因此这里的表达式应该是取长整数的一位,根据前面的分析,这里填"test%10";

第二空和第三空:因为一位数字只可能是5、6、7其中的一种情况,因此为了防止已知条件中的三个数之外的多余输出,这里应配合break语句,跳出选择,因此第二、三空应填"break"。

【主要考点】switch分支语句。

2、程序改错题

【答案及难度指数】★★

(1)if((str[i]>='a') && (str[i]<='z'))

(2)str[i]-=32;

【一起来审题】

本题中函数的功能是将字符串中的小写字母改为对应的大写字母。首先判断字母是否为小写字母,如果是小写字母则进行转换。

【解题思路】

(1)第一个错误标识下的if判断语句中的逻辑有误,应该是与(&&)的关系,不是或(||)的关系,所以if判断语句改为"if((str[i]>='a') && (str[i]<='z'))"。

(2)第二个标识下小写字母转换为大写字母的转换算法有误,小写转换为大写应该是减去32,而不是加上32,所以"str[i]+=32;"改为"str[i]-=32;"。

【主要考点】大小写字符之间的转换。

3、程序设计题

【答案及难度指数】★★★

int i;

*min=b[0]; //设置最小值初值

*d=0; //设置最小值标志位初值

for(i=0;i<n;i++)

if(b[i]<*min) //在循环中,对每一个元素与最小值标志值进行比较

{

*min=b[i]; //对最小值进行赋值

*d=i; //对最小值标志位进行赋值

}

【一起来审题】

该程序功能是求一维整型数组元素中最小的值和它所在的下标。其中,求最小元素的方法:用最小值变量min标记第一个待找数据,逐个把所有待找数据和min进行比较,并用min标记其当前最小值及其所在位置,从而找出最小值。

【解题思路】

进入fun函数,根据前面的分析:

(1)*min指针变量首先指向数组b的第一个数据,同时将标志位*d初始值赋为0。

(2)然后利用for循环对每一个当前数组数据与min标记的数据进行比较。

(3)循环中将求得的最小数据b[i]赋值给*min,并将该数据项数组标志位赋给标志位*d。

【主要考点】数组操作;指针操作。

计算机二级上机题库很有用 题目就是里面出的

1、程序填空题

【答案及难度指数】★★

(1)&n[i] (2)MAX<n[i]? (3)n[i]!=-1

【一起来审题】

(1)该程序功能是使用条件表达式找出最大的整数。从已给部分源程序的main主函数开始入手,主函数执行"int i=-1; int

MAX=-1;"初始化参数定义。

(2)进入do-while循环语句从键盘输入整数,并且通过条件表达式找出最大值。

【解题思路】

第一空:scanf("%d",___1___);是从键盘输入,取值。根据上一句"printf("n[%d]=",i);"输出语句,可知该空应填&n[i]。

第二空:MAX=___2___ n[i] : MAX;是使用条件表达式判断当前输入的n[i]和MAX值的大小,根据printf("The MAX=%d\n",MAX);循环外的输出语句,可知MAX用来存储最大值,因此根据条件表达式语法,第二空应填MAX<n[i]?。

第三空:while(___3___);是循环执行的条件,根据题意当输入-1时结束,因此,循环执行的条件是,当前输入不是-1,第三空应填n[i]!=-1。

【主要考点】while循环;选择语句。

2、程序改错题

【答案及难度指数】★

(1)n=*s-'0'; (2)n=n*8+*s-'0';

【一起来审题】

(1)该题中函数功能是实现八进制到十进制的转换。其中,八进制与十进制之间的转换关系是:八进制就是逢8进1。八进制数采用 0~7这8个数来表达一个数。八进制数第1位的权值为8的0次方,第2位权值为8的1次方,第3位权值为8的2次方,等等。

(2)从已给定源程序的main主函数开始入手,首先通过if语句判断串是否过长,是否符合题干要求;然后循环判断串中的每一位是否都在0~7之间,是否符合八进制要求,最后调用fun(str)实现八进制到十进制的转换。

【解题思路】

(1)第一个标识下面:语句"n=*s-'o';"中的'o'不是数字零,而是字母'o',根据前面的分析因此改为:"n=*s-'0';"。

(2)第二个标识下面:语句"n=n*7+*p-'o'",首先进行同(1)相同的修改,然后根据题干要求,要进行八进制到十进制的转换,它的权值为8,而不是7,因此是n*8而不是n*7,所以此句改为:"n=n*8+*s-'0';"。

【主要考点】字符;数制。

3、程序设计题【答案及难度指数】★★★

int i,j,k=0;

double r=0.0;

for(j=0;j<N;j++) //统计第一行进行统计

{

r+=b[0][j];

k++;

}

for(j=0;j<N;j++) //对第n-1行进行统计

{

r+=b[N-1][j];

k++;

}

for(i=1;i<=N-2;i++) //对第一列进行统计

{

r+=b[i][0];

k++;

}

for(i=1;i<=N-2;i++) //对第n-1列进行统计

{

r+=b[i][N-1];

k++;

}

return r/=k; //求平均数

【一起来审题】

该程序功能是求出数组周边元素的平均值。其中周边元素是指第一行的元素的行下标为0,或者第n行的元素行下标为n-1,或者第一列元素的元素列下标为0,或者第n列的元素的列下标为n-1。

计算机二级上机题库很有用 题目就是里面出的

【解题思路】

进入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 …… 此处隐藏:2595字,全部文档内容请下载后查看。喜欢就下载吧 ……

c上机模拟详细参考答案_whc0909(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/41768.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)