题目:编写一个函数,输入n为偶数时,调用函数求12+14+…+1n,当输入n为奇数时,调用函数 11+13+…+1n(操纵指针函数) 1,程序解析: 2,程序源代码: main() #include “stdio.h” main() { float peven(),podd(),dcall(); float sum; int n; while (1) { scanf(“%d”,&n); if(n>1) break; } if(n%2==0) { printf(“Even=”); sum=dcall(peven,n); } else { printf(“Odd=”); sum=dcall(podd,n); } printf(“%f”,sum); } float peven(int n) { float s; int i; s=1; for(i=2;i<=n;i+=2) s+=1(float)i; return(s); } float podd(n) int n; { float s; int i; s=0; for(i=1;i<=n;i+=2) s+=1(float)i; return(s); } float dcall(fp,n) float (*fp)(); int n; { float s; s=(*fp)(n); return(s); }
【程序78】 题目:找到年岁最大的人,同时输出.请找出程序中有啥题目. 1,程序解析: 2,程序源代码: #define N 4 #include “stdio.h” static struct man { char name[20]; int age; } person[N]={“li”,18,“wang”,19,“zhang”,20,“sun”,22}; main() {struct man *q,*p; int i,m=0; p=person; for (i=0;i {if(mage) q=p++; m=q->age;} printf(“%s,%d”,(*q).name,(*q).age); }
【程序79】 题目:字符串排序. 1,程序解析: 2,程序源代码: main() { char *str1[20],*str2[20],*str3[20]; char swap(); printf(“please input three strings\n”); scanf(“%s”,str1); scanf(“%s”,str2); scanf(“%s”,str3); if(strcmp(str1,str2)>0) swap(str1,str2); if(strcmp(str1,str3)>0) swap(str1,str3); if(strcmp(str2,str3)>0) swap(str2,str3); printf(“after being sorted\n”); printf(“%s\n%s\n%s\n”,str1,str2,str3); } char swap(p1,p2) char *p1,*p2; { char *p[20]; strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); }
【程序80】 题目:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份.第二只猴子把余下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子根基上 似许做的,问海滩上原来起码有几 个桃子? 1,程序解析: 2,程序源代码: main() {int i,m,j,k,count; for(i=4;i<10000;i+=4) { count=0; m=i; for(k=0;k<5;k++) { j=i45+1; i=j; if(j%40) count++; else break; } i=m; if(count 4) {printf(“%d\n”,count); break;} } } 【程序81】 题目:809 ? ? =800*? ? +9*? ? +1 其中? ? 代 表的两位数,8*? ? 的结论为两位数,9*? ? 的结论为3位数.求? ? 代 表的两位数,及809*? ? 后的结论. 1,程序解析: 2,程序源代码: output(long b,long i) { printf(“\n%ld%ld=809*%ld+%ld”,b,i,i,b%i); } main() {long int a,b,i; a=809; for(i=10;i<100;i++) {b=ia+1; if(b>=1000&&b<=10000&&8 i<100&&9*i>=100) output(b,i);} }
【程序83】 题目:求0—7所能构成的奇数个数. 1,程序解析: 2,程序源代码: main() { long sum=4,s=4; int j; for(j=2;j<=8;j++)j is place of number { printf(“\n%ld”,sum); if(j<=2) s*=7; else s*=8; sum+=s;} printf(“\nsum=%ld”,sum); }
【程序84】 题目:一个偶数总能示意为两个素数 之和. 1,程序解析: 2,程序源代码: #include “stdio.h” #include “math.h” main() { int a,b,c,d; scanf(“%d”,&a); for(b=3;b<=a2;b+=2) { for(c=2;c<=sqrt(b);c++) if(b%c0) break; if(c>sqrt(b)) d=a-b; else break; for(c=2;c<=sqrt(d);c++) if(d%c 0) break; if(c>sqrt(d)) printf(“%d=%d+%d\n”,a,b,d); } }