1、 1 C 程序设计课程期末上机考试 1. 编写函数 long fun(long x),它的功能是 :将长整型参数 x 中每一位上为偶数的数依次取出,构成一个新数返回。高位仍在高位,低位仍在低位。例如:下面程序运行时输入 :124578902,程序输出 :24802. #include long fun(long x) long i,a,b=1; long result=0; for(i=1;x=1;i=i+) a=x%10; if(a%2=0) result+=a*b;b=b*10; x=x/10; return(result); void main() long a,b; printf(“E
2、nter a number:“); scanf(“%ld“, b=fun(a); printf(“b=%ldn“,b); 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 fun(int k,int *p) int i,j,x=0; for(i=2;i=i) px=i;x+; for(i=x;i
3、#define N 10 void fun(int *x,int n) int *p,*t=x,s; for(p=x;p*t?p:t; s=*x;*x=*t;*t=s; t=x+1; for(p=x+1;p*t?p:t; s=*(x+1);*(x+1)=*t;*t=s void main() int aN,i; for(i=0;i int fun(int *x,int n,float *w) int a,i,j; float sum=0; a=n/5; for(i=0;i int fun(int x,long int y) int i; long a=x,sum=1; for(i=1;sum
4、int fun(char (*ss)N,int m,char *s) int i,j,max=0,imax=0; for(i=0;imax) max=j;imax=i; strcpy(s,ssimax); return max; 4 void main() char a8N,bN; int i,len; for(i=0;i int countw(char *str) int i,num=0,word=0; for(i=0;stri!=0;i+) if(stri= |stri=,|stri=.) word=0; else if(word=0) word=1; num+; return num;
5、void main() char s200; gets(s); printf(“There are %d words.n“,countw(s); 8. 编写函数 void fun(char *str),功能:字符串 str 中单词以空格作分隔,如果单词之间不止一个空格,则删除多余的空格,使单词之间只保留一个空格。字符串开始的空格也只保留一个。例如,程序运行时若输入 : Its 10:10 oclock , I am late. 输出: Its 10:10 oclock , I am late. #include void fun(char *str) int i,j; for(i=0;i vo
6、id fun(int x,int k,int *p) int count=0; int n,i; for(n=x+1;count 6 #include int fun(int a,int b) int num=0,x,x1,y,i,j; for(x=a;x void fun(char *s) int i,j=0,m; char a80; m=strlen(s); strcpy(a,s); for(i=1;i=a for(i=1;i 输出: CLPTaaaeegggghimmnnorru #include void fun(char *str) int i,j,t; for(i=0;stri!=
7、0;i+) 8 for(j=i+1;strj!=0;j+) if(strj void fun(int *a,int n,int y) int i,j; if(ya0) for(i=n;i=0;i-) ai=ai-1; a0=y; else for(i=0;iai+1) for(j=n;j=i+2;j-) aj=aj-1; ai+1=y; break; 9 void main() int i,a11=20,18,16,14,12,10,8,6,4,2,x; void fun(int *,int n,int y); scanf(“%d“, fun(a,10,x); for(i=0;i #inclu
8、de int fun(char *s1,char *s2) int i,j,p,n,num=0; for(i=0;s2i!=0;i+); n=i; for(i=0;s1i!=0;i+) if(s1i=s20) p=1; for(j=i+1;s2p!=0;j+,p+) if(s1j!=s2p) break; if(p=n) num+; return num; void main() char a80,b80; int n; printf(“Please input the first string:“); gets(a); printf(“Please input the second stri
9、ng:“); gets(b); n=fun(a,b); if(n=0) printf(“No findn“); else printf(“n=%dn“,n); 16. 编写函数 int fun(char *str),功能是:统计字符串 str 中不同字符的个数并做为函数值返回。例如,下面程序运行时若输入: One world,One dream! 输出: n=13 #include 10 int fun(char *str) int i,j,num=1; for(i=1;stri!=0;i+) for(j=0;j int fun(char *str) int i,j,flag,num=1; f
10、or(i=1;stri!=0;i+) flag=1; for(j=0;ji;j+) if(strj=stri) flag=0; if(flag=1) num+; return num; int main() char s80; int n; gets(s); n=fun(s); printf(“n=%dn“,n); return 0; 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