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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

上机填空题3740.docx

1、上机填空题374037题目: 从键盘输入一组无符号整数并保存在数组xxN中,以整数0结束输入,要求这些数的最大位数不超过4位,其元素的个数通过变量num传入fun函数。请补充fun函数,该函数的功能是:从数组xx中找出个位和十位的数字之和大于5的所有无符号整数,结果保存在数组yy中,其个数由fun函数返回。 例如:当xx8=123,11,23,222,42,333,14,5451时,bb3=42,333,5451。 注意:部分源程序如blank.c给出。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #include #define N 1

2、000 int fun(int xx,int bb,int num) int i,n=0; int g,s; for(i=0;i5) _2_; return _3_; main() int xxN; int yyN; int num=0,n=0,i=0; printf(Input number :n); do scanf(%u,&xxnum); while(xxnum+!=0); n=fun( xx,yy,num ); printf( nyy = ); for(i=0;in;i+) printf(%u ,yyi); printf(n); 38题目: 请补充fun函数,该函数的功能是判断一个数的

3、个位数字和百位数字之和是否等于其十位上的数字,是则返回yes!,否则返回no!。 注意:部分源程序如blank.c给出。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #include #include char *fun(int n) int g,s,b; g=n%10; s=n/10%10; b=_1_; if(g+b)=s) return _2_; else return _3_; main() int num=0; clrscr(); printf(*Input data *n ); scanf(%d,&num); printf(n

4、nn); printf(* The result *n ); printf(%sn,fun( num ); 39题目: 请补充main函数,该函数的功能是:从一个字符串中截取前面若干个给定字符数的子字符串。其中,str1指向原字符串,截取后的字符串存放在str2所指的字符数组中,n中存放预截取的字符个数。 例如,当str1=abcdefg,然后输入3,则str2=abc。 注意:部分源程序如blank.c给出。 仅在横线上填入所编写的若干表达式或语句,请勿改动函数中的其它任何内容。 #include #include # define LEN 80 main() char str1LEN,st

5、r2LEN; int n,i; clrscr() ; printf(Enter the string:n); gets(str1); printf(Enter the position of the string deleted:); scanf(_1_); for(i=0;in;i+) _2_; str2i=0; printf(The new string is:%sn,_3_); 40题目: 请补充main函数,该函数的功能是:从键盘输入一个字符串并保存在字符str1中,把字符串str1中下标为偶数的字符保存在字符串str2中并输出。 例如,当str1=abcdefg时,则str2=ace

6、g。 注意:部分源程序如blank.c给出。 仅在横线上填入所编写的若干表达式或语句,请勿改动函数中的其它任何内容。 #include #include # define LEN 80 main() char str1LEN,str2LEN; char *p1=str1,*p2=str2; int i=0,j=0; clrscr() ; printf(Enter the string:n); scanf(_1_); printf(* the origial string *n); while(*(p1+j) printf(_2_,*(p1+j); j+; for(i=0;ij;i+=2) *p

7、2+=*(str1+i); *p2=0; printf(nThe new string is:%sn,_3_); 逛商场走累了,上淘宝网也许会有惊喜! 解答37分析: 题目要求在fun函数中从参数x x数组中找出个位和十位的数字之和大于5的所有无符号整数,结果保存在参数bb数组中,其个数作为fun函数的返回值返回。此题关键的地方在于如何取得一个数字的个位和十位的数字。题目给出的程序使用了程序设计中常用的一种技巧。即使用整除运算(/)和取模运算(%)。 在程序设计方法中,整除运算(/)和取模运算(%)可以相互配合用于取得整数的各个位数上的数字。例如给出整数a,以下方法可以取得任意位数上的数字。

8、(1)取得个位上的数字,我们可以使用a%10即可。 (2)取得十位上的数字,我们可以使用a/10%10即可。注意这里a/10不一定能取得十位数上的数字,因为a如果大于等于100的情况下,a/10只是去掉个位上的数字而已。 (3)取得百位上的数字,我们可以使用a/100%10即可。 (4)取得千位上的数字,我们可以使用a/1000%10即可。 (5)取得万位上的数字,我们可以使用a/10000%10即可。 (6)更高位的数字依次类推。 从以上可以看出,取得整数的低位可以使用取模运算(%)。要取低位的几位数字可以通过取模10的倍数来控制。例如取12345的最低位通过12345%10=5,取1234

9、5的低两位通过12345%100=45,取12345的低三位通过12345%1000=345,其余的依次类推。 取得整数的最高位可以使用整除运算(/)。要取高位的几位数字可以通过整除10的倍数来控制。例如取12345的最高位通过12345/10000=1,取12345的高两位通过12345/1000=12,取12345的高三位通过12345/100=123,其余的依次类推。有的考生可能会问,12345除以100不是123.45吗?小数部分怎么没有了?这是由于C语言语法的规定,整除运算(/)用于两个整数之间,结果也为整数,即使存在小数部分也会被放弃。 程序注解如下: #include #defi

10、ne N 1000 /* 在x x数组中找出符合条件的整数,将它们保存在参数bb数组中 */ /* num参数为xx数组中整数的个数 */ int fun(int xx,int bb,int num) /* n指示数字放入bb数组的位置,由于数组从0开始,所以初始值设置为0 */ int i,n=0; /* g保存个位数字,s保存十位数字 */ int g,s; /* 使用for循环逐一检查xx数组中每一个整数 */ for(i=0;i5) /* 符否大于5的条件,则将该整数放入bb数组中 */ /* bbn+=xxi相当于bbn=xxi;n+;两句语句 */ bbn+=xxi; return

11、 n; main() int xxN; int yyN; int num=0,n=0,i=0; printf(Input number :n); /* 反复输入整数放入xx数组中,直到输入0为止 */ /* num变量每输入一个整数则加一,最后num保存了xx数组中整数的个数 */ do scanf(%u,&xxnum); while(xxnum+!=0); n=fun( xx,yy,num ); printf( nyy = ); /* 输出符合条件的所有整数 */ for(i=0;in;i+) printf(%u ,yyi); printf(n); 38分析: 题目要求在fun函数中判断一个

12、数的个位数字和百位数字之和是否等于其十位上的数字,是则返回yes!,否则返回no!。实现以上要求的关键在于如何取得一个整数的个位、十位和百位数字。通过整除(/)和取模(%)运算,我们可以得到一个整数的任意位数上的数字。例如给出整数a,各个位数的数字可以通过以下方式得到: (1)取得个位的数字,可以通过a%10得到。例如12345%10=5 (2)取得十位的数字,可以通过a/10%10得到。例如12345/10%10=4 (3)取得百位的数字,可以通过a/100%10得到。例如12345/100%10=3 (4)取得千位的数字,可以通过a/1000%10得到。例如12345/1000%10=2

13、(5)其余位数的数字依次类推 所以,程序使用以上的方法在fun函数中分别得到个位数字g、十位数字s、百位数字b,然后将个位数字g加上百位数字b判断是否等于十位数字s。如果等于则返回字符串yes!,否则返回字符串no!。 程序注解如下: #include #include char *fun(int n) int g,s,b; /* 取得参数n的个位数字,保存在g变量中 */ g=n%10; /* 取得参数n的十位数字,保存在s变量中 * s=n/10%10; /* 取得参数n的百位数字,保存在b变量中 */ b=n/100%10; /* 判断个位数字和百位数字之和是否等于十位上的数字 */ i

14、f(g+b)=s) return yes!; else return no!; main() int num=0; /* clrscr函数的作用是清屏,清除输出窗口中所有已经显示的内容 */ /* clrscr函数定义在conio.h中,所以需要#include */ clrscr(); printf(*Input data *n ); /* 从键盘上输入要判断的整数 */ scanf(%d,&num); printf(nnn); printf(* The result *n ); /* 输出fun函数的返回值 */ printf(%sn,fun( num ); 39分析: 题目要求在main

15、函数中实现从字符串str1中截取前面n个字符数的子字符串,然后将截取的子字符串放入str2字符串数组中。 程序注解如下: #include #include # define LEN 80 main() char str1LEN,str2LEN; int n,i; /* clrscr函数的作用是清屏,清除输出窗口中所有已经显示的内容 */ /* clrscr函数定义在conio.h中,所以需要#include */ clrscr() ; printf(Enter the string:n); /* gets函数的作用是接收从键盘输入的字符串,将其放入str1参数中 */ /* gets函数定义

16、在stdio.h中,所以需要#include */ gets(str1); printf(Enter the position of the string deleted:); /* 输入要从str1字符串中截取的字符个数,将其放入n变量中 */ scanf(%d,&n); /* 使用循环将str1字符串前n个字符一个一个地复制到str2字符数组中 */ for(i=0;in;i+) str2i=str1i /* 设置str2的字符串结束标记 */ str2i=0; /* 根据The new string is:的提示信息得知要输出得到的新字符串str2 */ printf(The new s

17、tring is:%sn,str2); 40分析: 第一个填空处要注意str1是数组名,而数组名同时也是一个指针名称,所以不需要填写&str1的,即不需要针对str1取地址。 第二个填空处要注意*(p1+j)是取指针p1后第j个位置的地址存放的内容,即取出那个地址中的字符,所以填写%c。 第三个填空处输出得到的新的字符串,从nThe new string is:%sn中的%s也可以看出是填写一个字符串,所以填写str2。 程序注解如下: #include #include # define LEN 80 main() char str1LEN,str2LEN; /* p1初始值指向str1第一

18、个字符 */ /* p2初始值指向str2第一个字符 */ char *p1=str1,*p2=str2; int i=0,j=0; /* clrscr函数的作用是清屏,清除输出窗口中所有已经显示的内容 */ /* clrscr函数定义在conio.h中,所以需要#include */ clrscr() ; printf(Enter the string:n); /* 根据Enter the string:提示信息得知输入的是要进行处理的字符串str1 */ scanf(%s,str1); printf(* the origial string *n); /* 逐一输出str1字符串每一个字符,同时j记录str1字符串中的字符个数 */ /* while(*(p1+j)是while(*(p1+j)!=0)的简写方式 */ while(*(p1+j) printf(%c,*(p1+j); j+; /* 将str1字符串中数组下标为偶数的字符复制到str2数组中 */ /* p2初始值指向str2第一个字符,每复制一个字符p2往后移动一个字符位置 */ for(i=0;ij;i+=2) *p2+=*(str1+i); *p2=0; printf(nThe new string is:%sn,str2);

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

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