上机填空题2124Word格式文档下载.docx

上传人:b****4 文档编号:6285606 上传时间:2023-05-06 格式:DOCX 页数:16 大小:19.32KB
下载 相关 举报
上机填空题2124Word格式文档下载.docx_第1页
第1页 / 共16页
上机填空题2124Word格式文档下载.docx_第2页
第2页 / 共16页
上机填空题2124Word格式文档下载.docx_第3页
第3页 / 共16页
上机填空题2124Word格式文档下载.docx_第4页
第4页 / 共16页
上机填空题2124Word格式文档下载.docx_第5页
第5页 / 共16页
上机填空题2124Word格式文档下载.docx_第6页
第6页 / 共16页
上机填空题2124Word格式文档下载.docx_第7页
第7页 / 共16页
上机填空题2124Word格式文档下载.docx_第8页
第8页 / 共16页
上机填空题2124Word格式文档下载.docx_第9页
第9页 / 共16页
上机填空题2124Word格式文档下载.docx_第10页
第10页 / 共16页
上机填空题2124Word格式文档下载.docx_第11页
第11页 / 共16页
上机填空题2124Word格式文档下载.docx_第12页
第12页 / 共16页
上机填空题2124Word格式文档下载.docx_第13页
第13页 / 共16页
上机填空题2124Word格式文档下载.docx_第14页
第14页 / 共16页
上机填空题2124Word格式文档下载.docx_第15页
第15页 / 共16页
上机填空题2124Word格式文档下载.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

上机填空题2124Word格式文档下载.docx

《上机填空题2124Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《上机填空题2124Word格式文档下载.docx(16页珍藏版)》请在冰点文库上搜索。

上机填空题2124Word格式文档下载.docx

t2[j]=s[i];

___1___;

}

else

t1[k++]=s[i];

t2[j]=0;

t1[k]=0;

i<

k;

___2___;

___3___;

s[k+i]=t2[i];

main()

chars[80]="

ba3a54j7sd567sdffs"

printf("

\nTheoriginalstringis:

%s\n"

s);

fun(s);

\nTheresultis:

22

在形参s所指字符串中的每个数字字符之后插入一个*号。

def3*5adh3*kjsdf7*。

inti,j,n;

___1___s[i]<

n=0;

while(s[i+1+n]!

=___2___)

n++;

for(j=i+n+1;

j>

i;

j--)

s[j+1]=___3___;

s[j+1]='

*'

i=i+1;

ba3a54cd23a"

23

在主函数中从键盘输入若干个数放入数组x中,用0结束输入但不计入数组。

下列给定程序中,函数fun的功能是:

输出数组元素中小于平均值的元素。

例如,数组中元素的值依次为1,2,2,12,5,15,则程序的运行结果为1,2,2,5。

conio.h>

voidfun(___1___,intn)

doublesum=0.0;

doubleaverage=0.0;

inti=0;

i<

n;

i++)

average=___3___;

for(i=0;

if(x[i]<

average)

if(i%5==0)

\n"

);

%d,"

x[i]);

intx[1000];

clrscr();

\nPleaseentersomedata(endwith0):

"

do

scanf("

%d"

&

x[i]);

while(x[i++]!

=0);

fun(x,i-1);

24

函数fun的功能是:

从三个形参a,b,c中找出中间的那个数,作为函数值返回。

例如,当a=3,b=5,c=4时,中数为4。

intfun(inta,intb,intc)

intt;

t=(a>

b)?

(b>

c?

b:

(a>

c:

___1___)):

((a>

c)?

___2___:

((b>

___3___));

returnt;

inta1=3,a2=5,a3=4,r;

r=fun(a1,a2,a3);

\nThemiddlenumberis:

%d\n"

r);

更多更快的选择在淘宝

 

凉鞋与拖鞋的约会

天下女人事4-越聊越有事

众明星推荐护理诀窍变

超值内衣疯狂购全场5元起

只选对的不选贵的实用手机大PK

超级人气宝贝大展台

迎接3G时代

玩乐的OOU!

玩炫的乐活!

非买不可TOP鞋款

租房也精彩

暑期性价比最高MP4推荐

解答

分析:

题目要求将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。

例如,形参s所指的字符串为:

为了实现以上要求,题目中的程序使用了一下思路:

(1)定义两个数组t1、t2,准备分别存放原字符串s中的非数字字符、数字字符。

(2)逐一检查字符串s中每一个字符,如果是非数字字符,则将其放入t1数组中。

如果是数字字符,则将其放入t2数组中。

(3)以上过程结束之后,将t1数组中的字符(即非数字字符)和t2数组中的字符(即数字字符)按照顺序覆盖原字符串s。

这样就达到了题目的要求。

在程序中,需要判断某一个字符是否是非数字字符还是数字字符。

判断方法就是检查该字符的ASCII码是否大于"

0"

字符的ASCII码而小于"

9"

的ASCII码。

也就是说只要某字符的ASCII码值在"

字符和"

字符两个ASCII码值之间,该字符就是数字字符。

ASCII全称是美国标准信息交换码(AmericanStandardCodeforInformationInterchange)。

在这张表中,小写字母"

的ASCII码值为48,小写字母"

1"

的ASCII码值为49,小写字母"

2"

的ASCII码值为50,后面的数字字符的ASCII码值依次类推,最后的"

的ASCII码值为57。

所有的数字字符在ASCII码表中是按顺序排列的,它们在ASCII表的码值开始于48,结束于57。

而根据C语言的语法,判断两个字符之间的大小实际上是比较两个字符在ASCII表中的码值大小。

例如"

7"

字符大于"

6"

字符,因为"

的ASCII码值为55,"

的ASCII码值为54,"

的ASCII码值大于"

的ASCII码值。

使用C语言描述就是'

7'

>

'

6'

这个表达式成立。

综上所述,判断某个字符是否为数字字符只要判断该字符的ASCII码值是否在"

和"

之间即可。

如果在这范围之内,该字符就是数字字符,否则不是。

程序注解如下:

/*逐一检查s字符串中每一个字符*/

/*如果当前字符是数字字符的时候*/

/*将数字字符放入t2数组*/

/*j变量记录数字字符放入t2数组的位置*/

/*所以j需要加一,指示下一个数字字符存放的位置*/

j++;

/*如果是非数字字符,则将其放入t1数组*/

/*k变量记录非数字字符放入t1数组的位置*/

/*t1[k++]=s[i];

相当于以下两句:

t1[k]=s[i];

k++;

*/

/*设置t1、t2数组的结束标记,j记录数字字符的个数,k记录非数字字符个数*/

/*将t1数组中的非数字字符覆盖s数组内容*/

s[i]=t1[i];

/*将t2数组中的数字字符紧接着非数字字符覆盖s数组内容*/

j;

i++)

/*s数组中的字符串为要处理的字符串*/

/*输出提示信息:

Theoriginalstringis:

ba3a54j7sd567sdffs"

/*调用fun函数处理s字符串,使之符合题目要求*/

/*输出处理之后的s字符串*/

题目要求在fun函数的形参s所指字符串中的每个数字字符之后插入一个*号。

为了实现以上要求,题目的程序使用了以下思路:

(1)在s字符串中逐一检查每一个字符,如果发现某一个字符是数字字符就开始以下处理。

(2)发现数字字符之后就要在该数字字符之后插入一个*号。

插入之前必须将该数字字符后一个位置腾出来放入*号,所以将该数字字符之后所有的字符都往后移动一个位置。

(3)在腾出的位置放入*号。

在程序中,需要判断某一个字符是否是数字字符。

/*逐一检查s数组中每一个字符是否为数字字符*/

/*'

是s数组中字符串的结束标记*/

/*判断当前字符是否为数字字符*/

/*ASCII码值在'

和'

ASCII码值之间的就是数字字符*/

/*从i+1开始往后逐一寻找s字符串最后一个字符的位置*/

=0)

/*while循环结束之后i+n+1的值为s字符串最后一个字符的位置*/

/*腾出插入*号的位置,i+1为插入的位置*/

/*所有i位置之后的字符都往后移动一个位置,以腾出位置*/

s[j+1]=s[j];

/*在腾出的位置插入*号*/

/*处理完当前的数字字符之后继续在s字符串中查找数字字符*/

/*将s数组的内容输出*/

/*调用fun函数处理s字符串,以达到题目要求*/

/*输出处理过的s字符串*/

题目要求函数fun的功能是输出数组元素中小于平均值的元素。

题目中的程序使用了以下思路:

(1)首先要得到x数组中的元素的平均值。

所以程序首先将x数组中所有元素进行累加,然后除以元素个数得到平均值。

(2)得到平均值之后,再次逐一检查x数组中每一个元素,如果小于平均值则使用printf函数输出。

(3)程序中的if(i%5==0)printf("

语句的作用是为了美化输出结果。

它能够使每一行输出5个数字就换行。

/*intx[]表示x是一个数组,如果intx表示x是一个变量,所以必须加上[]*/

/*n参数为x数组中元素的个数*/

voidfun(intx[],intn)

/*average为记录平均值的变量*/

/*计算x数组中所有元素的总和,sum保存累加过的元素的总和*/

sum+=x[i];

/*将总和除以x数组中元素个数以便得到平均值,n为x数组中的元素个数*/

average=sum/n;

/*使用循环逐一检查x数组中的元素是否小于平均值*/

/*如果数组元素小于平均值则使用printf函数将该元素输出*/

/*在输出的时候如果一行已经输出5个元素则换行*/

/*保证每一行输出5个数组元素*/

/*clrscr函数用于清除输出窗口中已经显示的内容*/

/*clrscr函数定义在conio.h,所以需要#include<

/*输入x数组中的元素,用0结束输入但不计入数组*/

/*将x数组和x数组中元素个数传入fun函数*/

题目要求在fun函数中从三个形参(形式参数)a,b,c中找出中间的那个数,作为函数值返回。

为了实现以上要求,题目中的程序使用了?

:

运算符。

表达式1?

表达式2:

表达式3

相当于

if(表达式1成立)

整个表达式的值为表达式2的值

整个表达式的值为表达式1的值

例如(i<

j)?

i:

j的运算结果取i和j之间的较小者。

程序中首先判断a>

b是否成立。

(1)如果a>

b成立进入b>

a)再次判断b>

c是否成立。

(1.2)如果b>

c成立,则t=b,即a>

b>

c

(1.3)如果b>

c不成立,即b<

c时,则t=a>

a,即取a、c之间较小者。

(2)如果a>

b不成立(即a<

b)进入(a>

a:

b)再次判断a>

(2.2)如果a>

c成立,则t=a,即b>

a>

(2.3)如果a>

c不成立,即a<

c时,则t=(b>

b,即取b、c之间较小者。

/*取得a、b、c三者中间大小的数字*/

a)):

b));

/*输出fun的处理结果*/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2