ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:18.39KB ,
资源ID:4077834      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4077834.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(上机填空题4548.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

上机填空题4548.docx

1、上机填空题4548上机填空题45-48.txt36母爱是一缕阳光,让你的心灵即便在寒冷的冬天也能感受到温暖如春;母爱是一泓清泉,让你的情感即使蒙上岁月的风尘仍然清澈澄净。45题目: 请补充fun函数,该函数的功能是:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。 例如,s中的字符串为ABCDE时,则t中的字符串应为EDCBAABCDE。 注意:部分源程序如blank.c给出。 请勿改动主函数main和其它函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #include #include #include void fun(char *

2、s,char *t) int s1, i; s1 = strlen(s); for (i=0; is1; i+) ti = s_1_; for (i=0; is1; i+) ts1+i = si; t_2_ = 0; main() char s100, t100; clrscr(); printf(nPlease enter string s:); scanf(%s, s); fun(s, t); printf(The result is: %sn,t); 46题目: 请补充fun函数,该函数的功能是:用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。 例如,输入如下整数:876

3、 675 896 101 301 401 980 431 451 777,则输出结果为:6,980。 注意:部分源程序如blank.c给出。 请勿改动主函数main和其它函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #include #include void fun(int *s, int t , int _1_) int i ,max; max=s0; for (i=0;it;i+) if (_2_) max=si; *k=_3_; main() int a10=876,675,896,101,301,401,980,431,451,777, k ; clrscr

4、(); fun(a,10,&k); printf(%d, %dn, k, ak); 47题目: 数组xxN保存着一组3位数的无符号正整数,其元素的个数通过变量num传入fun函数。请补充fun函数,该函数的功能是:从数组xx中找出个位和百位的数字相等的所有无符号整数,结果保存在数组yy中,其个数由fun函数返回。 例如,当xx8=123,231,232,222,424,333,141,544时,bb5=232,222,424,333,141。 注意:部分源程序如blank.c给出。 请勿改动主函数main和其它函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #inclu

5、de #include #define N 1000 int fun(int xx,int bb,int num) int i,n=0; int g,b; for(i=0;inum;i+) g=_1_; b= xxi/100; if(g=b) _2_; return _3_; main() int xx8=123,231,232,222,424,333,141,544; int yyN; int num=0,n=0,i=0; num=8; clrscr(); printf(*original data *n ); for(i=0;inum;i+) printf(%u ,xxi); printf

6、(nnn); n=fun( xx,yy,num ); printf(nyy= ); for(i=0;in;i+) printf(%u ,yyi); printf(n); 48题目: 请补充fun函数,该函数的功能是:把一个整数转换成字符串,并倒序保存在字符数组str中。 例如:当n=12345678时,str=87654321。 注意:部分源程序如blank.c给出。 请勿改动主函数main和其它函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #include #include #define N 80 char strN; void fun(long int n) i

7、nt i=0; while(_1_) stri=_2_; n/=10; i+; _3_; main() long int n=1234567; clrscr() ; printf(* the origial data *n); printf(n=%ld,n); fun(n); printf(n%sn,str); 躺在床上购物,上淘宝网站 解答45分析: 程序注解如下: #include #include #include void fun(char *s,char *t) int s1, i; /* strlen函数的作用是取得参数s字符串中包含的字符个数 */ /* strlen函数定义在s

8、tring.h中,所以需要#include */ s1 = strlen(s); /* 先将在字符串s中的字符按逆序存放到t串中 */ for (i=0; is1; i+) ti = ss1-i-1; /* 然后把s中的字符按正序连接到t串的后面 */ for (i=0; is1; i+) ts1+i = si; /* 在t字符串结尾处设置t字符串结束标记 */ t2*s1 = 0; main() char s100, t100; /* clrscr函数的作用是清屏,清除输出窗口中所有已经显示的内容 */ /* clrscr函数定义在conio.h中,所以需要#include */ clrsc

9、r(); printf(nPlease enter string s:); scanf(%s, s); fun(s, t); printf(The result is: %sn,t); 46分析: 题目要求在fun函数中求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。为了找出最大元素的下标,程序预先设置一个存放最大值的变量max。 程序注解如下: #include #include /* s为所要处理的数组,t为s数组中元素的个数 */ /* k指针指向的地址将存放求出的数组的最大元素在数组中的下标 */ void fun(int *s, int t , int *k) int i

10、 ,max; /* max记录碰到的数组中的最大元素 */ max=s0; /* 逐一检查数组s中所有的元素 */ for (i=0;imax) /* 如果发现有元素大于max,就将发现的大元素覆盖max的值 */ max=si; /* 同时k指针指向的地址里的内容记录下发现的新的大元素的下标 */ *k=i; main() int a10=876,675,896,101,301,401,980,431,451,777, k ; /* clrscr函数的作用是清屏,清除输出窗口中所有已经显示的内容 */ /* clrscr函数定义在conio.h中,所以需要#include */ clrscr

11、(); /* 数组名同时也是指针 */ fun(a,10,&k); printf(%d, %dn, k, ak); 47分析: 题目要求在fun函数中从数组xx中找出个位和百位的数字相等的所有无符号整数,结果保存在数组bb中,其个数n由fun函数返回。这个题目的关键在于如何取得某一个整数的个位和百位的数字。通过整除(/)和取模(%)运算,我们可以得到一个整数的任意位数上的数字。例如给出整数a,各个位数的数字可以通过以下方式得到: (1)取得个位的数字,可以通过a%10得到。例如12345%10=5 (2)取得十位的数字,可以通过a/10%10得到。例如12345/10%10=4 (3)取得百位

12、的数字,可以通过a/100%10得到。例如12345/100%10=3 (4)取得千位的数字,可以通过a/1000%10得到。例如12345/1000%10=2 (5)其余位数的数字依次类推 题目中的程序通过a%10得到个位上的数字,通过a/100得到百位上的数字。为什么题目中可以使用a/100得到百位上的数字而不使用以上所说的a/100%10呢?这是由于题目限定xx数组中保存的整数都是3位数,所以使用a/100正好得到百位数字。而a/100%10是通用的,不管整数a是否是几位数字。 程序注解如下: #include #include #define N 1000 /* 数组xx存放着要处理的

13、整数,处理结果放入数组bb,num代表xx数组中成员个数 */ int fun(int xx,int bb,int num) /* n指示放入bb数组的位置,因为数组从0开始,所以n初始值设置为0 */ int i,n=0; /* g存放整数的个位数字,b存放整数的百位数字 */ int g,b; /* 逐一判断xx数组中每一个整数,判断个位和百位的数字是否相等 */ for(i=0;inum;i+) /* 得到个位的数字 */ g=xxi%10; /* 得到百位的数字 */ b= xxi/100; /* 判断个位和百位的数字是否相等 */ if(g=b) /* 如果个位和百位的数字相等,就将

14、该整数放入bb数组中 */ /* bbn+=xxi相当于bbn=xxi;n+; */ /* 当整数放入bb数组之后,n必须加一以指示下一个存放位置 */ bbn+=xxi; /* 当for循环结束的时候,n的值就是bb数组中成员的个数 */ /* 根据题意需返回bb数组中的成员个数,所以返回n的值 */ return n; main() int xx8=123,231,232,222,424,333,141,544; int yyN; int num=0,n=0,i=0; num=8; /* clrscr函数的作用是清屏,清除输出窗口中所有已经显示的内容 */ /* clrscr函数定义在co

15、nio.h中,所以需要#include */ clrscr(); printf(*original data *n ); /* 输出xx数组中的各个整数 */ for(i=0;inum;i+) printf(%u ,xxi); printf(nnn); n=fun( xx,yy,num ); printf(nyy= ); /* 输出存放结果的yy数组中的各个整数 */ for(i=0;in;i+) printf(%u ,yyi); printf(n); 48分析: 题目要求在fun函数中把整数n转换成字符串,并倒序保存在字符数组str中。为了实现以上要求,题目中的程序使用while循环从整数最

16、右边逐一提取整数n的每一个位数的数字,将其转化为字符串,然后一个一个字符放入str数组中。 以上过程涉及两个方面。第一个方面就是如何从整数最右边逐个提取整数的各个位数。在程序中使用n%10提取最低位的数字,也就是最右边的数字。然后使用n/=10将整数n的最低一位丢弃。例如n=1235,执行n/=10之后n为123,最低位的5就被丢弃了。丢弃整数的最低位之后,程序继续使用n%10提取最低位的数字,反复执行以上过程,直至整数n的各个位数的数字都处理完成。 另外一个方面就是如何将提取的各个位数上的数字转化为char类型。程序中使用数字加上0的方法使int类型的数字转化为char类型的字符。例如2+0

17、就能得到char类型的2。这是因为在C语言中,0至9之间的数字k和0至9任意一个字符m相加得到的值就是字符m之后第k个字符。例如8+0得到8。 程序注解如下: #include #include #define N 80 char strN; /* fun函数是将整数n转化为字符串,并倒序保存在字符数组str中*/ void fun(long int n) /* i变量指示在str数组中存放数据的位置,而数组从0开始,所以初始值为0 */ int i=0; /* 只有当整数n的每一个位数的数字都进行了处理才退出while循环*/ while(n0) /* 取得整数n的个位数字之后将其转化为字符

18、串 */ stri=n%10+0; /* 将n整除10从而丢弃最低位的数字,因为最低位数字已经处理过了 */ n/=10; /* i指示整数各个位数上的数字转化为字符型之后放入str数组中的位置 */ /* 由于stri=n%10+0将一个字符放入str数组了,所以i需要加一 */ /* 这样才能使i指示下一个存放位置 */ i+; /* 在字符串最后的位置加入字符串结束标记 */ stri=0; main() long int n=1234567; /* clrscr函数的作用是清屏,清除输出窗口中所有已经显示的内容 */ /* clrscr函数定义在conio.h中,所以需要#include */ clrscr() ; printf(* the origial data *n); /* 输出原有的整数 */ printf(n=%ld,n); fun(n); /* 输出处理得到的字符串 */ printf(n%sn,str);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1