海大c程上机题附答案及附加题
更新时间:2024-05-03 02:57:01 阅读量: 综合文库 文档下载
- 泸沽湖大还是程海大推荐度:
- 相关推荐
1. 编写函数long fun(long x),它的功能是:将长整型参数x中每一位上为偶数的数依次取出,构成一个新数返回。高位仍在高位,低位仍在低位。例如:下面程序运行时输入:124578902,程序输出:24802. #include
for(n=1;n return sum; } void main() { long a,b; printf(\ scanf(\ b=fun(a); printf(\} 2. 编写函数void fun(int k,int *p),功能是:将参数k(2≤k≤32767)所有的不相同质因子升序写入p所指的一维数组中,以-1作为所有质因子的结束标志。例如:下面程序运行时若输入200,输出:2 5;若输入27720,输出:2 3 5 7 11;若输入101,输出101。 #include void main() { int x,a[17]={0},i; do{ printf(\ scanf(\ }while(x<2); fun(x,a); for(i=0;a[i]!=-1;i++) printf(\ printf(\} 3. 编写函数void fun(int *x,int n),功能是:求出长度为n的数组x中的最大数与次最大数,并把最大数和a[0]对调,次最大数与a[1]对调,其余的数保持不变。下面程序运行时若输入:2 4 6 1 3 9 7 0 5 8,则输出:9 8 6 1 3 2 7 0 5 4。 #include void fun(int *x,int n) { int i,j,k,t; for(i=0;i<2;i++) { k=i; for(j=i+1;j t=x[k]; x[k]=x[i]; x[i]=t; } } void main() { int a[N],i; for(i=0;i 采用打擂台法,找到最大数的下标。 4. 数组x中保存有n个整数, 编写函数int fun(int *x,int n,float *w),对数组x进行如下操作:从第0个元素起对每5个元素求一个平均埴,并将这些均值依次存放在w所指的数组中。函数返回平均值的个数。例如:若输入n为14,14个数据为:11 21 35 24 55 16 27 58 18 0 11 12 13 14,则只为前10个求均值,输出结果为:29.20 23.80 #include int fun(int *x,int n,float *w) { int num=n/5; 注意每个数的类型, int temp=0; int i; for(i=0;i void main() { int a[30],i,n,m; float b[6]; printf(\ scanf(\ for(i=0;i m=fun(a,n,b); for(i=0;i printf(\} 5. 编写函数int fun(int x,long int y),功能:计算满足表达式x0+x1+x2+...+xn for(i=0;sum return i-2; } void main() { int x;long y; scanf(\ printf(\} 6. 编写函数int fun(char (*ss)[N],int m,char *s),功能是:形参ss指向一个m行N列的二维字符数组,每行存放一个字符串。求出最长的字符串,复制到s所指的字符数组中,然后返回此最长字符串的长度。 #include int fun(char (*ss)[N],int m,char *s) { int i,j,t=0,x; for(j=0;j return(t); } void main() { char a[8][N],b[N]; int i,len; for(i=0;i<8;i++) gets(a[i]); len=fun(a,8,b); printf(\ } 7. 编写函数int countw(char *str),统计字符串str中单词的个数。单词之间以空格,逗号,句号作分隔,数字也看做单词。单词之间可能不止一个分隔符。如输入: It's 10:10 o'clock ,I am late.屏幕上输出\ #include for(i=0;str[i]!='\\0';i++) if(str[i]==' '||str[i]==','||str[i]=='.') { w=0; 前面一个是‘ ’或‘,’或‘。’且后面一个为 } 字母或数字就可以说明有一个单词。 Else if(w==0) { w=1; k++; } return k; } void main() { char s[200]; gets(s); printf(\} 8. 编写函数void fun(char *str),功能:字符串str中单词以空格作分隔,如果单词之间不止一个空格,则删除多余的空格,使单词之间只保留一个空格。字符串开始的空格也只保留一个。例如,程序运行时若输入: It's 10:10 o'clock , I am late. 输出: It's 10:10 o'clock , I am late. #include void main() { char s[100]; puts(\ gets(s); fun(s); puts(s); } 发现两个空格则将后面的前移,前移后注意i后退一 位。 9. 函数void fun(int x,int k,int *p)的功能是:求出比x大的最初k(k<1000)个素数,放入p所指数组中。例如:程序运行时输入:10 10,输出:11 13 17 19 23 29 31 37 41 43 #include void fun(int x,int k,int *p) { int t=0; long i,j; double m; if(x>=1) for(i=x+1;t void main() { int a,b,n[1000],i; scanf(\ fun(a,b,n); for(i=0;i } { printf(\} puts(\ 10. 编写函数int fun(int a,int b),在[a,b]范围内统计满足下面条件的数的个数。条件:该数是素数,且该数逆序后形成的数也是素数。例如,在[100,150]范围内101 107 113 131 149 满足条件,则下面程序运行时输入100 150,输出:num=5。 #include { for(w=i,sum=0;w>0;) { c=w; sum=10*sum+c; w=w/10; } d=sqrt(sum); for(n=2;n<=d;n++) if(sum%n==0)break; if(n>d) { k++; } } } return k; } void main() { int num,a,b; scanf(\ num=fun(a,b); printf(\} 判断原数是不是质数 倒序 倒序后是不是质数 11. 编写函数void fun(char *s),功能:在s所指字符串中每两个字母之间加一个*,其余字符保持不变。 例如,下面程序运行时,若输入:I had 123_book. 输出:I h*a*d 123_b*o*o*k. #include void main() { char x[80]; gets(x); fun(x); puts(x); } 12. 编写函数int fun(int k),功能:从5个红球, 6个白球,7个黑球中任意取出k(2≤k≤18)个球作为一组进行组合。在每组中,可以没有红球和白球,但必须要有黑球。不同组合的数目作为函数值返回。例如,若k为8时,正确的组合数是31;若k为2时,正确的组合数是3;或k为3时,正确的组合数是6 。 #include return sum; } void main() { int x,n; scanf(\ n=fun(x); printf(\} 13. 编写函数void fun(char *str),功能:对形参str所指字符串中的字符按ASCII码升序排序。例如,下面程序运行时输入:The C Programming Language<回车> 输出: CLPTaaaeegggghimmnnorru #include void main() { char s[100]; gets(s); fun(s); puts(s); } 也可以采用冒泡法进行排序。 这里用的是换位法排序。 14. 请编写函数void fun(int *a, int n, int y),它的功能是:把y值插入到有n个数的a数组中,a数组中的数已按由大到小的次序排好,y的值从键盘读入。 插入后,数组中的数仍然有序。对照下面三种情况运行程序: 1) 插在最前 2) 插在最后 3) 插在中间 若输入数11, 输出 20 18 16 14 12 11 10 8 6 4 2 输入数1, 输出 20 18 16 14 12 10 8 6 4 2 1 输入数33, 输出 33 20 18 16 14 12 10 8 6 4 2 #include void fun(int *a,int n,int y) { int i,j,t; a[n]=y; 将要插入的数放到最后,然后整体用冒泡法排序。 for(i=0;i 15. 编写函数int fun(char *s1,char *s2),在字符串s1中统计字符串s2出现的次数并返回。若s2在s1中未出现,则返回0。例如: 若输入的字符串s1为:abaaAabcaabbabca,字符串s2为:ab ,则程序输出:n=4 若输入的字符串s1为:abaaAabcaabbabca,字符串s2为:abd,则程序输出:No find #include int fun(char *s1,char *s2) { int i,j,m=0,n=0; for(i=0;i if(m==0) n++; m=0; } return n; } void main() { char a[80],b[40]; int n; printf(\ gets(a); printf(\ gets(b); n=fun(a,b); if(n==0) printf(\ else printf(\} i+j是为了再返回原来的起点。。。 每使用完一次m要将其归0. 16. 编写函数int fun(char *str),功能是:统计字符串str中不同字符的个数并做为函数值返回。例如,下面程序运行时若输入:One world,One dream! 输出:n=13 #include void main() { char s[80]; int n; gets(s); n=fun(s); printf(\} 采用嵌套循环,将每一个数和它前面的进行比较,如果没有重复则加一。 17. 编写函数int fun(int m,int n,int *p),要求将范围[m,n]之间所有的fibonacci数写入p所指的一维数组中,fibonacci数的个数通过函数返回值带回。例如,[0,30]之间的fibonacci数有7个,它们是:1 2 3 5 8 13 21 ;[1000,32767]之间有7个,它们是:1597 2584 6765 10946 17711 28657 。 #include int fun(int m,int n,int *p) { int t,num=0; long f,f1=1,f2=1; if(m>n){t=m;m=n;n=t;} for(f=1,t=0;f<=n;) { if(f>=m) { p[t]=f;t++;num++; } f1=f2; f2=f ; f=f1+f2; } return num; } void main() { int a,b,n,c[22],i; scanf(\ n=fun(a,b,c); for(i=0;i 18. 编写函数char *fun(char *s1,char *s2,int n),将字符串s1中后面的n个字符复制到s2所指数组中,若s1不足n个字符,则用*在前端补齐至n个字符,写入s2中。函数返回字符串s2的指针。例如,下面程序运行时, 若输入:“abcd1234”和6,则输出“cd1234” 若输入:“abcd1234”和10,则输出“**abcd1234” #include char *fun(char *s1,char *s2,int n) { int i,k; k=strlen(s1); if(n void main() { char c1[80],c2[80]; int n; gets(c1); } scanf(\fun(c1,c2,n); puts(c2); 19. 编写函数void fun(char *s,char *b,char *c),逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串应为:aBcdeFgH。 #include void fun(char *a,char *b,char *c) { int i,l,m,k=0; if(strlen(a)>strlen(b)) {l=strlen(a);m=strlen(b);} else {m=strlen(a);l=strlen(b);k=1;} for(i=0;i for(;i for(;i c[i]='\\0'; } void main() { char s1[80],s2[80],s3[80]; gets(s1); gets(s2); fun(s1,s2,s3); puts(s3); } 20. 编写函数void fun(char *s),将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符和非数字字符原有的前后次序。 例如,若输入:num is 0532-66ouc78,OK. 执行结果为:num is -ouc,OK.05326678 #include void swap(char *a,char *b) { char temp; temp=*a; *a=*b; *b=temp; } void fun(char *s) { char i; int n; int num,m=0,o=0; num=strlen(s); for (i=0;s[i]!='\\0';i++) { if ((s[i]>='0') && (s[i]<='9')) m++; } for (i=0;s[i]!='\\0';i++) { if ((s[i]>='0') && (s[i]<='9')) { o++; if(o>m) break; for (n=i;n+1 swap(&s[n],&s[n+1]); } i--; } } } void main() { } char a[80]; gets(a); fun(a); puts(a); 选做1:编写函数int fun(char *str,char ch),统计字符串str中指定字符ch的个数,统计结果作为函数返回值带回。 #include int fun(char *str,char ch) { int i=0,k,j; k=strlen(str); for(j=0;j if(ch==str[j])i++; } return(i); } void main() { char a[100],b; puts(\ gets(a); puts(\ b=getchar(); printf(\} 选做2 编写函数float fun(int m),功能是:根据正整型形参m,计算如下公式的值: y=1-1/2+1/3-1/4+1/5...+(-)1/m ,该值作为函数返回值。 #include float s=0; int i=1; for(i=1;i if (i%2 == 0) { printf(\ } else { printf(\ } } printf(\ } void main() {int x; scanf(\ fun(x); } 选做3. 编写函数 int fun(int (*p)[N],int m),功能:计算m行N列的二维数组外 围各数据之和。例如,下面程序输出:57 #include int fun(int (*p)[N],int m) { int s=0,i; for(i=0;i for(i=1;i return(s); } void main() { int a[4][N]={{3,2,5,4,2},{6,2,3,9,1},{4,6,1,8,6},{7,6,5,4,2}}; printf(\ } 选做4. 编写函数 int fun(float *p,int n) ,功能:统计有n个数据的一维数组p中 大于平均值的数组元素个数。例如,若输入:3 5 6 1 2 8 9 6 输出:n=4 #include int i,s=0,j=0; float a; for(i=0;i a=s/n; for(i=0;i return(j); } void main() { float a[8];int n,i; for(i=0;i<8;i++) scanf(\ n=fun(a,8); printf(\ } 选做5.编写函数 float fun(float *p,int n) ,功能:计算有n个数据的一维数组p 的平均值并返回。例如,若输入:3 5 6 1 2 8 9 6 输出: average=5.00 注:部分程序代码在 d:\\学号\\T2.C 文件中,请启动TC程序完成本题。 #include float fun(float *p, int n) { int i; float sum = 0; for (i = 0;i < n;i++) { sum+=p[i]; } return sum/n; } void main() { float a[8]; int i = 0; for (i = 0; i < 8 ;i++) { scanf(\ } printf(\ } 选做6 编写函数void fun(char *str), 功能: 对字符串str进行逆序操作. 例如,下面程序运行时若输入:abcd12 ,则逆序后输出:21dcba 注:部分程序代码在 d:\\学号\\T2.C 文件中,请启动TC程序完成本题。 #include int i = 0,end = 0; char temp; while (str[end] != '\\0' ) { end++; } end--; for (i = 0;i<(end/2)+1;i++) { temp = str[i]; str[i] = str[end-i]; str[end-i] = temp; } } main() {char a[80]; gets(a); fun(a); puts(a); } 选做7.编写函数 unsigned fun(unsigned x,unsigned y),计算参数x,y的最大公约数并返回。 x,y 互质时返回1。例如:若输入121 88 ,输出:11;若输入 39 28 ,输出1 注:部分程序代码在 d:\\学号\\T2.C 文件中,请启动TC程序完成本题。 #include unsigned fun(unsigned x,unsigned y) { unsigned z; if (x while (z>1) { if (x%z == 0 && y%z ==0) { return z; } z--; } return z; } main() {int a,b; scanf(\ printf(\ } 选做8. 一球从h米高度自由落下,每次落地后反弹回原高度的一半,再落下。编写函数 float fun(float h,int n),计算小球从h米原始高度开始,第n次触地后反弹 的高度,并作为函数值返回。 例如,当 h=100,n=2 时,函数返回 25.00 注:部分程序代码在 d:\\学号\\T2.C 文件中,请启动TC程序完成本题。 #include main() {float high;int t; scanf(\ printf(\ }
正在阅读:
海大c程上机题附答案及附加题05-03
2016数学必修4综合测试题(含答案)05-04
2015新东方40天突破6级笔记之词汇篇03-13
八下语文期中考试试卷07-06
审计局工作总结与2022年工作计划范文04-15
中学控辍保学学生和饮食卫生自查材料03-08
废除死刑制度毕业论文09-20
- 小学生造句大全
- 增压泵投资项目可行性研究报告(模板)
- 高中语文人教版粤教版必修1-5全部文言文知识点归纳
- 两学一做专题民主生活会组织生活会批评与自我批评环节个人发言提
- 管理处环境保洁工作操作标准作业指导书
- 2012六一儿童节活动议程 - 图文
- 移树申请报告
- 《贵州省市政工程计价定额》2016定额说明及计算规则
- 计算机长期没有向WSUS报告状态
- 汉语拼音教学策略研究
- 发展西部领先的航空货运枢纽
- 司法所上半年工作总结4篇
- 如何提高银行服务水平
- 发电厂各级人员岗位职责
- 丰田汽车的外部环境分析
- 2017—2018年最新冀教版四年级数学下册《混合运算》教案精品优质
- 中建八局样板策划 - 图文
- 戚安邦《项目管理学》电子书
- 2015年高级项目经理笔记
- 弯桥的设计要点
- 海大
- 上机
- 附加
- 答案
- 聊城市2015年中考数学试题含答案解析(word版)
- 城市规划原理 第1章城市与城市化
- 回答问题上
- 项目投资风险与防范对策
- 2014年注册咨询工程《现代咨询方法与实务》模拟试题
- 生化课后题目及答案
- 神经学导论期末考试
- 砷化镓电池基本介绍
- 中国毛巾染色市场发展研究及投资前景报告(目录) - 图文
- 高考英语听力模拟试题(5)试题、原文及答
- 报废评估
- 2015版机动车检验业务知识习题库
- 物理教学的基本课型与教学流程
- 油田地面工程管理规定
- 工信部啤酒行业清洁生产技术推行方案
- xx公司股权融资计划书 - 图文
- 浅析人脸检测之Haar分类器方法
- 新视野大学英语4期末考试范围
- 介休跨大运高速公路特大桥1-(80+128+80)m连续梁施工方案
- 铝模方案(新版) - 图文