




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、c 程序设计课程期末上机考试考试时间:50 分钟考试方式:从下面的20 题中随机抽取一题,再附加一题,共需完成2 道题。分值分配:第一题60 分,第二题40 分,共100 分考试时间:第十八周1 请编写函数long fun(long int x),功能是:将长整型数x 中每一位上为奇数的数依次取出,并逆序构成一个新数返回。例如:程序运行时输入123456789,输出:b=97531。#includelong fun(long int x)long m,n,i;n=x;m=0;while(n!=0)i=n%10;if(i%2=1)m*=10;m+=i;n-=i;n=n/10;return m;v
2、oid 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,char *p)将未在字符串s 中出现、而在字符串t 中出现的字符, 形成一个新的字符串放在p 中,p 中字符按原字符串中字符顺序排列,但去掉重复字符。例如: 当s 为12345, t 为8624677时, p 中的字符为: 867;当s 为”good luck”,t 为”thank you very much”时,输出:”thanyverm”
3、2#include#includevoid fun(char *s,char *t,char *p)int i,j,n;int flag;char *x,*y,*z;y=t;z=p;n=0;for(i=0;i50;i+)if(*y=0)*z=0;break;x=s;flag=0;for(j=0;j50;j+)if(*x=0)break;if(*x=*y)flag=1;break;x+;if(flag=0)x=p;for(j=0;jn;j+)if(*x=*y)flag=1;break;x+;if(flag=0)3*z=*y;z+;n+;y+;void main()char s150,s250,s
4、350;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 n=0,s=0,t=0;while(s=m)n+;t+=n;s+=t;return n-1;void main()int x;scanf(%d,&x);printf(n=%dn,fun(x);4编写函数void fun(int *x,int n),它的功能是:
5、删除数组x中所有包含数字6的数据,后续的剩余元素赋值为-1。规定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 *x,int n) int i,j,s=0; for(i=0;i10;i+)/查找含6的数据 for(j=xi;j!=0;j/=10) if(6=j%10) xi=-1; s+; break; for(i=0;i10 & s!=0;i+)/更改数据 if(-1=xi) for
6、(j=i;j10;j+) if(-1!=xj) break; xi=x-j; xj=-1; s-; void 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 个素数之和。若不足n 个,则到最小素数2 为止。例如:若high=100,n=10,则函数的返回值为:732;若high=11,n=10,则函数返回:17。#includ
7、e#includelong fun(int high,int n)int i,f;long max,s,m;if(high%2=1)max=high-2;elsemax=high-1;s=0;m=0;while(m2)f=0;for(i=3;i=sqrt(max);i+=2)if(max%i=0)f=1;break;if(f=0)s+=max;m+;max-=2;if(mn)s+=2;6return s;void main()int k,n;scanf(%d%d,&k,&n);printf(sum=%ldn,fun(k,n);6 请编写函数int fun(int *a,int n),它的功能是
8、:把形参a 所指数组中的偶数按原顺序依次存放到a0、a1、a2、中,把奇数从数组中删除,偶数个数通过函数值返回,以-1 作为有效数据的结束标志。例:若输入:1 2 3 4 5 6 78 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;i=0;for(j=0;ji)*(a+j)=-1;i+;return i;void main()int x15,i,n;for(i=0;i15;i+)scanf(%d,x+i);n=fun(x,15);for(i=0;xi!=-1;i+)printf(%
9、d ,xi);printf(n=%dn,n);77给定程序中,函数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 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
10、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(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=a
11、km; akm=aim; aim=t; void 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); 88. 函数void fun(int x,char * p)实现十进制整数x 到二进制的转换。转换后的二进制数以字符串的方式放置于p 所指向的数组中。如输入13,输出1101,输入-13,输出-1101。#includev
12、oid fun(int x,char *p)int m=0x40000000;unsigned int i=0;if(x1;while(m!=0)if(m&x)=0)*(p+i)=0;i+;else*(p+i)=1;i+;m=m1;*(p+i)=0;main()int a;char c18;scanf(%d,&a);fun(a,c);printf(%ds binary is: %sn,a,c);9. 编写函数int fun(char (*ss)n,int m,char *s),功能是:形参ss 指向一个m 行n 列的二维字符数组,每行存放一个字符串。求出最大的字符串,复制到s9所指的字符数组中
13、,然后返回此最大字符串的长度。#include#define n 30int fun(char (*ss)n,int m,char *s)int len20;int i,j,t,n;char *p;n=n;p=ss;for(i=0;im;i+)leni=0;while(*(p+i*n+leni)!=0)leni+;t=len0;j=0;for(i=1;it)t=leni;j=i;for(i=0;it;i+)*(s+i)=*(p+j*n+i);*(s+t)=0;return t;main()char a8n,bn;int i,len;for(i=0;i8;i+)gets(ai);len=fun(
14、a,8,b);printf(len=%d,str=%sn,len,b);10 给定程序中,函数void fun(char *s)的功能是:在形参s 所指字符串中的每个数字字符之后插入一个*号。例如,形参s 所指的字符串为:def35adh3kjsdf7。执行结果为:def3*5*adh3*kjsdf7*。10#include#include#includevoid fun(char *s)char str80;int i,j;i=0;j=0;while(*(s+i)!=0)strj=*(s+i);j+;if(*(s+i)=0x30 & *(s+i)0x40)strj=*;j+;i+;strj=
15、0;for(i=0;i80;i+)*(s+i)=stri;void main()char str80;gets(str);fun(str);puts(str);11给定程序中,函数void fun(char *s)的功能是:把形参s 所指字符串中下标为偶数的字符右移到下一个偶数位置,最右边被移出字符串的字符绕回放到第一个偶数位置,下标为奇数的字符不动(注:字符串的长度大于等于2)。例:若输入:abcd123,输出:3badc21#includevoid fun(char *s)int len=0;int i;11char t,r;while(*(s+len)!=0)len+;t=*(s);fo
16、r(i=0;ilen;i+=2)r=*(s+i);*(s+i)=t;t=r;*s=t;void 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 *s1,char *s2)char t80,c;int i,j,l
17、en=0;while(*(s1+len)!=0)tlen=*(s1+len);len+;for(i=len-1;i0;i-)for(j=0;jtj+1)c=tj;tj=tj+1;tj+1=c;12j=0;for(i=0;ilen;i+=2)*(s2+j)=ti;j+;*(s2+j)=0;void main()char a80,b80;gets(a);fun(a,b);puts(b);13函数void fun(char s)的功能是:将s 所指字符串中ascii 值为奇数的字符删除。例如,若s 所指字符串中的内容为:“abcdefg12345”,其中字符a 的ascii码值为奇数、字符1 的as
18、cii 码值也为奇数、都应当删除,其它依此类推。最后s 中内容是:“bdf24”。#includevoid fun(char s)int i,j;i=0;j=0;while(si!=0)if(si%2=0)sj=si;j+;elsesi=0;i+;sj=0;void main()13char a80;gets(a);fun(a);puts(a);14请编写一个函数int fun(long int x),它的功能是:判断整数x 是否是同构数。若是同构数,函数返回1;否则返回0。所谓“同构数”是指这样的数,它出现在它的平方数的右边。例如:输入整数5,5 的平方数是25,5 是25 中右侧的数,所以
19、5 是同构数,输出yes。要求x 的值不大于10000。#include#includeint fun(long int x)int n;long y;y=x*x;n=log10(x)+1;n=pow(10,n);if(y%n=x)return 1;elsereturn 0;void main()int x;scanf(%d,&x);if(fun(x)=1)puts(yes);elseputs(no);15编写取子字符串函数void fun(char s1,char s2,int m,int n),其作用是将字符数组s2 中从第m 个字符开始的共n 个字符拷贝到数组s1 中;若s2 中剩余字符
20、不足n 个,则取到尾部。程序运行时,当输入abcd123、4,3 时应输出d12;当我们输入abcd123、4,6 时应输出d123。注意,这里是将1 作为起始计数。#includevoid fun(char s1,char s2,int m,int n)14int 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:);gets(a);puts(enter starting positi
21、on 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 hf=1;char *p=str;while(*p!=0)if(*p=a & *p=a &
22、 *p=z)if(hf=0)p+;continue;else*p-=32;hf=0;p+;continue;switch(*p)case .:case ,:case :hf=1;default:p+;continue;void 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。#includevoi
23、d fun(int *p,int n,int m)int a80;int i;for(i=0;in;i+)ai=*(p+i);16for(i=0;in;i+)*(p+(i+m)%10)=ai;void 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,
24、输出a1b2c345,若输入abcde123,则输出a1b2c3de。#include#includevoid fun(char *s1,char *s2)char *p1,*p2;char c100;int i;p1=s1;p2=s2;i=0;while(*p1!=0 | *p2!=0)if(*p1!=0)ci=*p1;i+;p1+;if(*p2!=0)ci=*p2;i+;p2+;17ci=0;i=0;p1=s1;while(ci!=0)*p1=ci;p1+;i+;*p1=0;main()char a100,b100;void fun(char *,char *);gets(a);gets(b);fun(a,b);puts(a);19. 传说可以根据两个人的生日来计算其缘分.方法:将两个人的生日各位相加,将得到的数再一次各位相加,直到其值为一个一位数,此数即代表两个人的缘分.例如,两个生日为:19820523,19841111,则各
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度企业法人变更与股权收购合同
- 2025年度非婚生子女监护权及生活费用保障协议
- 2025年度知识产权交易付款委托三方协议
- 二零二五年度企业反垄断法律顾问服务协议
- 2025年度未成年人监护权委托代理合同模板
- 2025年度甲级写字楼办公室合租管理合同
- 二零二五年度汽车保险代理合同
- 二零二五年度花卉租摆与植物养护服务合同
- 二零二五年度信用卡透支贷款协议书
- 二零二五年度银行与交通企业物流金融合同标准
- GB/T 44718-2024城市轨道交通无障碍运营服务规范
- DB41T 2567-2023 消防技术服务机构服务规范
- 2024年职工普法教育宣讲培训课件
- 音乐鉴赏与实践 第一单元第四课音乐的力量(下)
- 自编冷库库容制冷量设备对照表
- 《外科护理学(第七版)》考试复习题库-上(单选题)
- 92枪械课件教学课件
- “全员安全风险辨识”活动实施方案
- (人教PEP2024版)英语一年级上册Unit 1 教学课件(新教材)
- 凝中国心铸中华魂铸牢中华民族共同体意识-小学民族团结爱国主题班会课件
- 2024义务教育2022版《道德与法治课程标准》真题库与答案
评论
0/150
提交评论