2007年885编程大题
第一题:
#include <stdio.h> #include <math.h> char str[100]; void ToUpper(){ int i; for(i=0;str[i]!='\0';i++){ if(str[i]>='a'&&str[i]<='z') str[i]=str[i]-32; } for(i=0;str[i]!='\0';i++) printf("%c",str[i]); } int main(){ printf("请输入字符串:\n"); scanf("%s",str); ToUpper(); return 0; }
第二题:
#include <stdio.h> #include <math.h> double fun(int n,double x){ if(n==0) return 1; else if(n==1) return x; else return ((2*n-1)*x*fun(n-1,x)-(n-1)*fun(n-2,x))/n; } int main(){ int n;double x; printf("请输入n和x的值:\n"); scanf("%d%lf",&n,&x); printf("n=%d,x=%lf时值为%lf\n",n,x,fun(n,x)); return 0; }
第三题:
#include <stdio.h> #include <math.h> int fun(int num){//判断这个是是不是完数 int sum=0,i; for(i=1;i<num;i++){ if(num%i==0) sum+=i; } if(sum==num) return 1;//是完数 else return 0;//不是完数 } int main(){ int i; printf("1000以内的完数如下:\n"); for(i=1;i<=1000;i++){ if(fun(i)) printf("%4d",i); } return 0; }
第四题:
#include <stdio.h> #include <math.h> #define N 10 int main(){ double h=100,s=100; int i; for(i=1;i<=10;i++){ h/=2; s+=2*h; } printf("第10次反弹高度是%lf,总共经过路程是%lf\n",h,s); return 0; }
第五题
#include <stdio.h> #include <math.h> #define N 20 int a[N]; int main(){ char str[100]; scanf("%s",str); int i,num=0,k=0; for(i=0;str[i]!='\0';i++){ if(str[i]>='0'&&str[i]<='9') num=num*10+str[i]-'0'; else{ if(num==0) continue; else{ a[k++]=num;num=0; } } } if(num!=0) a[k++]=num; for(i=0;i<k;i++){ printf("%6d",a[i]); } printf("\n共有%d个数值\n",k); return 0; }
一纸高中万里风,寒窗读破华堂空。
莫道长安花看尽,由来枝叶几相同?