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

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

来源:网络收集 时间:2026-08-14
导读: { s[i]=j;//将小于y的奇数存入数组s i++; //累加小于y的奇数个数 } for(j=0;ji;j++) if(y%s[j]==0) //判断y是否被s[j]整除 { b[k]=s[j];//将符合条件的结果存入数组b k++; //累加符合条件的结果个数 } *m=k; 【一起

{

s[i]=j;//将小于y的奇数存入数组s

i++; //累加小于y的奇数个数

}

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

if(y%s[j]==0) //判断y是否被s[j]整除

{

b[k]=s[j];//将符合条件的结果存入数组b

k++; //累加符合条件的结果个数

}

*m=k;

【一起来审题】

(1)该程序的解题思路可以分解为以下几步:从0开始逐个求得小于y的奇数→按顺序将这些奇数存入数组→逐个判断该数组中的值是否能整除y→累加能整除y的数值个数→最后按要求传回结果。由于采取的是按照小于y的所有整数按照j++逐个增加的顺序进行判断并依次进行存储的思路,所以最后求得的结果是符合要求的,是由小到大排列的。

(2)从已给部分源程序的main主函数开始入手,核心函数"fun(y,a,&m);",其中m返回这些数的个数,a传给函数中的参数存放计算结果的数组b。

【解题思路】

进入fun函数,根据(1)的分析:

首先,通过小于y的循环条件,判断小于y的每一个整数是否是奇数。其中的判断条件"if(j%2!=0)",并且累计这些奇数个数"i++;"。 (3)b

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

【答案及难度指数】★

(1)m-- (2)t[j]=t[m] (3)t[m]=s

【一起来审题】

(1)该程序功能实现字符串的逆置。把字符串中字符逆置就是把字符串中的第一个元素和最后一个元素交换,第二个元素和倒数第二个元素交换,直到所有的元素交换完成为止。

(2)从已给部分源程序的main主函数开始入手,主函数调用"fun(b);",通过键盘输入字符串b,作为参数传给函数void fun(char *t)中的t。

(3)进入fun函数,要想实现逆置,首先要求得字符串的长度。通过"m=strlen(t)-1;"求得m的值即为字符串的长度。然后通过for循环对字符串进行置换。

【解题思路】

第一空:for(j=0;j<m;j++,___1___)根据前面的分析,对字符串的置换是从第一个元素和最后一个元素(j<m,m是字符串的长度)开始进行循环交换,从第一个元素j=0开始向后增加为j++,所以从最后一个向前减少即为m--,第一空填m--。

第二空:"char s;"用来定义存放临时的字符,"s=t[j];"的目的是首先用s存放字符串t的第j个字符,这样将第m个字符存放在j的位置,就首先实现了将后面的第m个字符置换到前面的第j的位置,所以第二空填t[j]=t[m]。

第三空:前面实现了后面的第m个字符置换到前面的第j个字符,同时将第j个字符的内容存放在临时的字符s,现在就将这个临时字符s中的内容存放在第m个字符位置,这样就完成了j位置的字符与m位置字符的置换,所以第三空填t[m]=s。

【主要考点】字符数组。

2、程序改错题

【答案及难度指数】★★

(1)void fun(char *s,char c)

(2)if(*s=='\0')

(3)s[1]='\0';

【一起来审题】

该题中函数功能首先是查找子串再判断,最后是实现将符合条件的字符串进行连接。从已给定源程序的main主函数开始入手,通过"fun(str,ch);"语句调用fun函数,实现题干的要求。

【解题思路】

(1)第一个标识下,"void fun(char s,char c)"根据主函数中的定义,知道s为数组名,传的应该是数组地址,所以应改为"void fun(char *s,char c)"。

(2)while循环中对c与s进行匹配检查,第二个标识下,是当不同时执行连接操作,那么判断s是否为结尾的表达式应该是"if(*s=='\0')"。

(3)第三个标识下,连接后的新串要添加结尾符,所以正确的表达是将"s[1]='0';"改为"s[1]='\0';"。

【主要考点】函数定义语法;数组操作。

3、程序设计题

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

int i,j,s=0;

for(j=0;j<N;j++) //统计行元素

{

s+=b[0][j];

s+=b[M-1][j];

}

for(i=1;i<=M-2;i++) //统计列元素

{

s+=b[i][0];

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

}

return s;

【一起来审题】

该程序功能是求出二维数组周边元素之和。其中周边元素是指数组的最上和最下的两行,最左和最右的两列。数组第一行元素的行下标为0,最后一行元素的行下标为M-1,第一列的列下标为0,最后一列的列下标为N-1。

【解题思路】

进入fun函数,根据前面的分析:求周边元素的和,可以采用两个循环分别把行元素和列元素相加。但要避免把周边元素重复相加。

【主要考点】二维数组;for循环语句。

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

1、程序填空题

【答案及难度指数】★

(1)"%ld",&a (2)a=-a (3)"%ld",a

【一起来审题】

该题中函数功能是取长整数的绝对值。此类题的解题思路是判断键盘输入的长整数的正负,然后对其进行操作。

【解题思路】

第一空:获得由键盘输入的长整数,根据C语言提供的标准输入函数scanf函数格式,第一空填""%ld",&a"。

第二空:"if(a<0)"语句是判断输入的长整数是否为负数,如果为负数,则对其进行取绝对值操作,也就是第二空填"a=-a"。

第三空:printf语句输出操作后的绝对值结果,根据C语言标准输出函数printf格式,所以第三空填""%ld",a"。

【主要考点】C语言基本语法。

2、程序改错题

【答案及难度指数】★★

(1)s=NULL; (2)if(*r==*p)

【一起来审题】

该题中函数功能是求得字符串中某子串最后一次出现的地址。从已给定源程序的main主函数开始入手,通过调用"p=fun(str,t);"语句求得p的地址,然后通过判断p,判断串str中是否存在子串t。

【解题思路】

(1)第一个标识下面:语句"s=NuLL;"中的NuLL未定义。NULL代表空值,但程序中写成了NuLL。所以,改成"s=NULL;"。

(2)程序的主体是二重循环,其中外循环使指针str逐个指向字符串的字符,直到遇到串结束符退出循环,内循环检查指针p与r所指字符串是否匹配。因为这里p、r是指针,如果使用判断表达式"if(r==p)",那么比较的是地址,而题目要求比较它们所指的字符。所以,改为:"if(*r==*p)"。

【主要考点】C语言标识符;变量使用。

3、程序设计题

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

int k=0,i,j;

for(i=mm;i>1;i--)

{

for(j=2;j<i;j++)

if(i%j==0) //判断i是否是素数

break;

//若i能被j整除,则i为非素数

else

continue; //否则继续循环判断

if(j>=i) //若是素数,将其存入b

{

b[k]=i;

k++; //累加素数个数

}

}

return k++;

【一起来审题】

该程序功能是求一定范围内的素数。素数是只能被1和自身除尽的数。判断i是不是素数最简单的方法就是用2~(i-1)去除i,只要能除尽就不是素数。

【解题思路】

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

(1)首先,判断i是否是素数,即是否能被2~(i-1)整除。

(2)若是素数,就将i存入数组b,并对计数器k加1。

…… 此处隐藏:2816字,全部文档内容请下载后查看。喜欢就下载吧 ……

c上机模拟详细参考答案_whc0909(2).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)