c程上机考试答案

上传人:m**** 文档编号:497906665 上传时间:2023-01-10 格式:DOC 页数:24 大小:114.50KB
返回 下载 相关 举报
c程上机考试答案_第1页
第1页 / 共24页
c程上机考试答案_第2页
第2页 / 共24页
c程上机考试答案_第3页
第3页 / 共24页
c程上机考试答案_第4页
第4页 / 共24页
c程上机考试答案_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《c程上机考试答案》由会员分享,可在线阅读,更多相关《c程上机考试答案(24页珍藏版)》请在金锄头文库上搜索。

1、1. 编写函数long fun(long x),它的功能是:将长整型参数x中每一位上为偶数的数依次取出,构成一个新数返回。高位仍在高位,低位仍在低位。例如:下面程序运行时输入:124578902,程序输出:24802. #includelong fun(long x)long i,m,sum=0; int j=0,n; for(i=x;i0;)m=i%10; i=i/10; if(m%2=0)j+; for(n=1;nj;n+) m=m*10; sum+=m; return sum;void main()long a,b; printf(Enter a number:);scanf(%ld,&

2、a);b=fun(a);printf(b=%ldn,b);2. 编写函数void fun(int k,int *p),功能是:将参数k(2k32767)所有的不相同质因子升序写入p所指的一维数组中,以-1作为所有质因子的结束标志。例如:下面程序运行时若输入200,输出:2 5;若输入27720,输出:2 3 5 7 11;若输入101,输出101。#include#includevoid fun(int k,int *p)int i,j,t=0;double b; for(i=2;i=k;i+) 先判断是不是质数,在判断是不是因子。b=sqrt(i); for(j=2;jb&k%i=0) pt

3、=i; t+; pt=-1; void main()int x,a17=0,i;do printf(Enter a number(2-32767):);scanf(%d,&x);while(x2);fun(x,a);for(i=0;ai!=-1;i+)printf(%d ,ai);printf(n);3. 编写函数void fun(int *x,int n),功能是:求出长度为n的数组x中的最大数与次最大数,并把最大数和a0对调,次最大数与a1对调,其余的数保持不变。下面程序运行时若输入:2 4 6 1 3 9 7 0 5 8,则输出:9 8 6 1 3 2 7 0 5 4。#include#

4、define N 10void fun(int *x,int n)int i,j,k,t; for(i=0;i2;i+) k=i; for(j=i+1;jxk)k=j; t=xk; xk=xi; xi=t; 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);4. 数组x中保存有n个整数, 编写函数int fun(int *x,int n,float *w),对数组x进行如下操作:从第0个元素起对每5个元素求一个平均埴,并将这些均值依次存放在w所指的数组中

5、。函数返回平均值的个数。例如:若输入n为14,14个数据为:11 21 35 24 55 16 27 58 18 0 11 12 13 14,则只为前10个求均值,输出结果为:29.20 23.80#includeint fun(int *x,int n,float *w)int num=n/5; 注意每个数的类型, int temp=0;int i;for(i=0;inum;+i)temp=5*i;wi=(float)(xtemp+xtemp+1+xtemp+2+xtemp+3+xtemp+4)/5;return num;void main()int a30,i,n,m;float b6;p

6、rintf(Input a number: );scanf(%d ,&n);for(i=0;in;i+)scanf(%d,&ai); m=fun(a,n,b); for(i=0;im;i+)printf(%0.2f ,bi); printf(n);5. 编写函数int fun(int x,long int y),功能:计算满足表达式x0+x1+x2+.+xny的最大的n并作为函数返回值带回。例如,当x=2,y=1000时,程序输出8。#includeint fun(int x,long int y)int i; long sum=0,k=1; for(i=0;sumy;i+) 注意每次执行完程

7、序其指数为多少。即i与指数的关系。 sum+=k; k=k*x; return i-2;void main()int x;long y;scanf(%d%ld,&x,&y);printf(n=%dn,fun(x,y);6. 编写函数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,j,t=0,x; f

8、or(j=0;jt) x=j;t=i;for(i=0;it;i+)si=ssxi;si=0;return(t);void main()char a8N,bN;int i,len;for(i=0;i8;i+)gets(ai);len=fun(a,8,b);printf(len=%d,str=%sn,len,b);7. 编写函数int countw(char *str),统计字符串str中单词的个数。单词之间以空格,逗号,句号作分隔,数字也看做单词。单词之间可能不止一个分隔符。如输入: Its 10:10 oclock ,I am late.屏幕上输出There are 6 words. #inc

9、ludeint countw(char *str) int w=0,i,k=0; for(i=0;stri!=0;i+) if(stri= |stri=,|stri=.) w=0; 前面一个是 或,或。且后面一个为 字母或数字就可以说明有一个单词。Else if(w=0) w=1; k+; return k;void main()char s200;gets(s);printf(There are %d words.n,countw(s);8. 编写函数void fun(char *str),功能:字符串str中单词以空格作分隔,如果单词之间不止一个空格,则删除多余的空格,使单词之间只保留一个

10、空格。字符串开始的空格也只保留一个。例如,程序运行时若输入: Its 10:10 oclock , I am late. 输出: Its 10:10 oclock , I am late.#includevoid fun(char *str)int i,t; for(i=0;stri!=0;i+) if(stri= &stri+1= ) for(t=i+1;strt!=0;t+) 发现两个空格则将后面的前移,前移后注意i后退一strt=strt+1; 位。strt+1=0; i-; void main()char s100;puts(Enter a string:);gets(s);fun(s);puts(s);9. 函数void fun(int x,int k,int *p)的功能是:求出比x大的最初k(k1000)个素数,放入p所指数组中。例如:程序运行时输入:10 10,输出:11 13 17 19 23 29 31 37 41 43 #include#includevoid fun(int x,int k,int *p) int t=0; long i,j; double m;if(x=1) for(i=x+1;tk;i+) m=sqrt(i); for(j=2;jm) pt=i;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号