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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

上机考试答案.docx

1、上机考试答案1 请编写函数long fun(long int x),功能是:将长整型数x中每一位上为奇数的数依次取出,并逆序构成一个新数返回。#includelong fun(long int x) long b = 0; while(x0) if(x%10)%2=1) b=b*10+x%10; x/=10; return b; int main()long a,b; printf(Please input a long int num:); scanf(%ld,&a); b=fun(a); printf(b=%ldn,b); 2 编写函数void fun(char *s,char *t,ch

2、ar *p)将未在字符串s中出现、而在字符串t中出现的字符, 形成一个新的字符串放在p中,p中字符按原字符串中字符顺序排列,但去掉重复字符。例如: 当s为12345, t为8624677时, p中的字符为: 867;当s为”good luck”,t为”thank you very much”时,输出:”thanyverm”#include#includeint test(char *s,int n,char ch) int i; for(i=0;in;i+) if(si=ch) return 1; return 0;void fun(char *s,char *t,char *p) int i

3、,j; for(i=j=0;ti!=0;i+) if(test(s,strlen(s),ti)=0&test(t,i,ti)=0) pj=ti; j+; pj=0;int main()char s150,s250,s350; gets(s1);gets(s2); fun(s1,s2,s3); puts(s3);3 编写函数int fun(int m),计算并返回满足表达式:1+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+n)=m最大的n。例如,当m=10000时,程序输出:n=38。#includeint fun(int m)int a,i,s; for(a=1,s=0;s=

4、m;a+) for(i=1;i=a;i+) s+=i; return a-2;int main()int x; scanf(%d,&x); printf(n=%dn,fun(x);4 编写函数void fun(int *x,int n),它的功能是:删除有n个数据的数组x中所有包含数字6的数据,后续的剩余元素赋值为-1。n为数组长度,规定x中数据都为正数。如程序运行时若输入:122 1461 6234 16 11 663 911 2671 381 6 删除后输出: 122 11 911 381 -1 -1 -1 -1 -1 -1 #define N 10#includevoid fun(int

5、 *x,int n) int i,j=0,k,t; for (i=0;in;i+) k=xi; while (k!=0) t=k%10; if(t=6) break; else k=k/10; if(k=0) xj+=xi; for(;jn;j+) xj=-1; return;int main() int aN,i; for(i=0;iN;i+) scanf(%d,a+i); fun(a,N); for(i=0;iN;i+) printf(%d ,ai); printf(n);5 编写函数long fun(int high,int n),功能是:计算并返回high以内(不包含high)最大的n

6、个素数之和。若不足n个,则到最小素数2为止。例如:若high=100,n=10,则函数的返回值为:732;若high=11,n=10,则函数返回:17。#includelong sushu(long m) int i; for(i=2;i=m) return 1; else return 0;long fun(int high,int n) int i,j=0; long s=0; if(high1;i-) if(sushu(i) s+=i; j+; if(j=n) return s; return s;int main()int k,n; scanf(%d%d,&k,&n); printf(

7、sum=%ldn,fun(k,n);6 请编写函数int fun(int *a,int n),它的功能是:把形参a所指数组中的偶数按原顺序依次存放到a0、a1、a2、中,把奇数从数组中删除,偶数个数通过函数值返回,以-1作为有效数据的结束标志。例:若输入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15,输出:2 4 6 8 10 12 14 n=7#includeint fun(int *a,int n) int i,j; for(i=0,j=0;in;i+) if(*(a+i)%2=0) aj=ai; j+; aj=-1; return j; int main()in

8、t x15,i,n; for(i=0;i15;i+) scanf(%d,x+i); n=fun(x,15); for(i=0;xi!=-1;i+) printf(%d ,xi); printf(n=%dn,n);7给定程序中,函数fun的功能是:有MN二维数组,分别将每一行的最大值与本行的最后一个数据(第N-1列数据)对调,其余数据保持不变。然后按每一行的最大值对二维数据各行降序排序。例如,有右侧数组数据:11 52 43 4 25 22 求最大值并对调后:11 22 43 4 25 5222 33 46 58 16 47 22 33 46 47 16 5883 42 54 26 47 0 0

9、 42 54 26 47 834 5 6 7 8 9 4 5 6 7 8 945 96 17 18 39 2 45 2 17 18 39 96排序后最终输出:45 2 17 18 39 960 42 54 26 47 8322 33 46 47 16 5811 22 43 4 25 524 5 6 7 8 9#define N 6#define M 5#includevoid fun(int aMN) int i,j,k,m,t; for(i=0;iM;i+) k=0; for(j=1;jN;j+) if(aikaij) k=j; t=aik; aik=aiN-1; aiN-1=t; for(

10、i=0;iM-1;i+) k=i; for(j=i+1;jM;j+) if(akN-1ajN-1) k=j; if(i!=k) for(m=0;mN;m+) t=akm; akm=aim; aim=t; int main()int xMN=11,52,43,4,25,22,22,33,46,58,16,47,83,42,54,26,47,0,4,5,6,7,8,9,45,96,17,18,39,2,i,j;fun(x);for(i=0;iM;i+) for(j=0;jN;j+) printf(%3d,xij); printf(n); 8. 函数void fun(int x,char * p)实

11、现十进制整数x到二进制的转换。转换后的二进制数以字符串的方式放置于p所指向的数组中。如输入13,输出1101,输入-13,输出-1101。#include void fun(int x,char *p) char *q,t; if(x0) *p+=-;x=-x; if(x=0) *p+=0; *p=0; return; q=p; for(;x!=0;x/=2) *p+=x%2+0; *p=0; for(p-;qp;q+,p-) t=*q; *q=*p; *p=t; int main()int a; char c18; scanf(%d,&a); fun(a,c); printf(%dS BIN

12、ARY IS: %sn,a,c);9. 编写函数int fun(char (*ss)N,int m,char *s),功能是:形参ss指向一个m行N列的二维字符数组,每行存放一个字符串。求出最大的字符串,复制到s所指的字符数组中,然后返回此最大字符串的长度。#include#include#define N 30int fun(char (*ss)N,int m,char *s) int i,max; max=0; for(i=1;i0)max=i; strcpy(s,ssmax); return strlen(ssmax);int main()char a8N,bN;int i,len;fo

13、r(i=0;i8;i+)gets(ai);len=fun(a,8,b);printf(len=%d,str=%sn,len,b);10 给定程序中,函数void fun(char *s)的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:def3*5*adh3*kjsdf7*。#include#includevoid fun(char *s) int i,j; char a100; for(i=0,j=0;*(s+i)!=0;i+,j+) aj=*(s+i); if(*(s+i)=0&*(s+i)=9) *(a+

14、j+1)=*; j+; aj=0; strcpy(s,a); int main()char str80; gets(str); fun(str); puts(str);11给定程序中,函数void fun(char *s)的功能是:把形参s所指字符串中下标为偶数的字符右移到下一个偶数位置,最右边被移出字符串的字符绕回放到第一个偶数位置,下标为奇数的字符不动(注:字符串的长度大于等于2)。例:若输入:abcd123,输出:3badc21#include#includevoid fun(char *s) int i,t,l; l=strlen(s); if(l%2=1) t=sl-1; for(i

15、=l-1;i0;i-=2) si=si-2; s0=t; else t=sl-2; for(i=l-2;i0;i-=2) si=si-2; s0=t; int main()char str80; gets(str); fun(str); puts(str);12编写函数void fun(char *s1,char *s2),功能是:对形参s1所指字符串升序排序,并将排序后下标为偶数的字符取出,写入形参s2所指字符数组中,形成一个新串。例如,下面程序若输入:The C Programming Language,输出:LTaegghmnor。(表空格)#includevoid fun(char *

16、s1,char *s2) int i,j,n; char t; for(i=0;*(s1+i)!=0;i+) n=i; for(j=i;*(s1+j)!=0;j+) if(*(s1+n)*(s1+j) n=j; t=*(s1+n);*(s1+n)=*(s1+i);*(s1+i)=t; for(i=0;*(s1+i)!=0;i+) if(i%2=0) *s2=*(s1+i); s2+; *s2=0;int main()char a80,b80; gets(a); fun(a,b); puts(b);13函数void fun(char s)的功能是:将s所指字符串中ASCII值为奇数的字符删除。例

17、如,若s所指字符串中的内容为:“ABCDEFG12345”,其中字符A的ASCII码值为奇数、字符1的ASCII码值也为奇数、都应当删除,其它依此类推。最后s中内容是:“BDF24”。#includevoid fun(char s) int i,j; for(i=0;si!=0;i+) if(si%2=1) for(j=i;sj!=0;j+) sj=sj+1; i-; int main()char a80; gets(a); fun(a); puts(a);14请编写一个函数int fun(long int x),它的功能是:判断整数x是否是同构数。若是同构数,函数返回1;否则返回0。所谓“同

18、构数”是指这样的数,它出现在它的平方数的右边。例如:输入整数5,5的平方数是25,5是25中右侧的数,所以5是同构数,输出Yes。要求x的值不大于10000。#includeint fun(long int x) long s; s=x*x; while(x!=0) if(s%10!=x%10) return 0; x/=10; s/=10; return 1;int main()int x; scanf(%d,&x); if(fun(x)=1) puts(Yse); else puts(No);15编写取子字符串函数void fun(char s1,char s2,int m,int n),

19、其作用是将字符数组s2中从第m个字符开始的共n个字符拷贝到数组s1中;若s2中剩余字符不足n个,则取到尾部。程序运行时,当输入abcd123、4,3时应输出d12;当我们输入abcd123、4,6时应输出d123。注意,这里是将1作为起始计数.#includevoid fun(char s1,char s2,int m,int n)int i;for(i=0;in;i+)s1i=s2m+i-1;s1n=0;main()static char a100,b100;int s,len;void fun(char s1,char s2,int m,int n);puts(ENTER A STRING

20、:);gets(a);puts(ENTER STARTING POSITION AND LENGTH:);scanf(%d,%d,&s,&len);fun(b,a,s,len);printf(THE SRBSTING IS:%sn,b);16. 编写函数void fun(char *str),将参数字符串中各单词首字母变大写,其余字母变小写。输入输出在main中实现。如输入you HAVE 10 books,dont you? 输出You Have 10 Books,Dont You?。单词以空格、逗号、句号分隔。#includevoid fun(char *str) int i,j; for

21、(i=0;stri;i+) if(stri=A&stri=a&str0=a&stri+1=z) stri+1-=32; int main()char a100; gets(a);fun(a);puts(a);17. n个整数,前面各数循环顺序后移m个位置,最后m个数变成最前面m个数。写函数void fun(int *p,int n,int m),实现上述功能。在main()中输入与输出。如下面程序输出 7 8 9 10 1 2 3 4 5 6 。注意,m可能大于n。#include void fun(int *p,int n,int m) int i,j,k,t; k=m%n; for(i=0

22、;i=0;j-) pj+1=pj; p0=t; int main()void fun(int *,int ,int ); int x10=1,2,3,4,5,6,7,8,9,10,i; fun(x,10,14); for(i=0;i10;i+) printf(%d ,xi); printf(n); 18. 编写函数void fun(char *s1,char *s2),实现字符串s1与s2的交叉连接,连接后得到的新字符串放在s1中。如输入abc12345,输出a1b2c345,若输入abcde123,则输出a1b2c3de。 #include#includevoid fun(char *s1,

23、char *s2) int i,j,k; for(j=0,i=1;s2j!=0;) for(k=strlen(s1);k=i;k-) s1k+1=s1k; s1i=s2j; j+;i+; if(s1i) i+; int main()char a100,b100; void fun(char *,char *); gets(a); gets(b); fun(a,b); puts(a);19.#include int fun(long x,long y) int i,s,t; for(i=0,s=0;i=10) for(i=0,t=0;s;i+) t+=s%10; s=s/10; s=t; ret

24、urn s; int main()long x,y;int k;scanf(%ld%ld,&x,&y);k=fun(x,y);printf(yuan fen is %d,k);20. m个人围成一圈,1,2,3循环报数,报到3的人退出,并将退出的序号依次存到数组p中,包括最后一个人的序号。到最后只余1人,输出最后留下的是第几号(最初的序号,以1起始)。若m=6,则输出n=1 3 6 4 2 5 1;若m=10,则输出n=4 3 6 9 2 7 1 8 5 10 4;若m=100,则输出n=91 3 6 9100 58 91。函数int fun(int n ,int *p)实现上述功能,返回n个

25、人中最后余的1人的起始序号,并将退出的序号顺序写入p指向的数组中。#includeint fun(int n ,int *p)int a10000;int i,j,k,m;for(i=0;i0)if(j=3)if(ai=1)*(p+n-m)=i+1;ai=0;m-;k=i+1;j=1;i=(i+1)%n;elsei=(i+1)%n;elseif(ai=1)j+;i=(i+1)%n;elsei=(i+1)%n;return k;int main()int m,a10000,i,num;scanf(%d,&m);num= fun(m,a);printf(n=%dn,num);for(i=0;im;i+)printf(%-4d ,ai);printf(n);

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

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