C语言第八次上机试验
2013-05-17 08:40
190 查看
上机题1:任意输入两个整数(-1000<n<10000),将两数分别反转(逆序)后两相加,相加后的结果再反转后输出
-----------------------分割线-----------------------
上机题2:求1+2!+3!+...+20!的和
要求:利用递归函数
在C-FREE3.5 版本中 全局静态变量居然不自动初始化为零。。。!!!
上机题3:编写程序,输入一个正整数N,如果N 是质数则输出Yes,否则输出No。另,由于最小的质数是2,所以先检查它是否小于2,如果是的话,则提示“质数是不能小于2,请重新输入”
要求:利用自定义函数P(N)检查N 是不是质数
-----------------------分割线-----------------------
#include<stdio.h> int fun(int a); int main(void) { int a,b,num; while(scanf("%d%d",&a,&b)!=EOF) { a=fun(a); b=fun(b); num=a+b; num=fun(num); printf("%d\n",num); } return 0; } int fun(int a) { int num=0,n=0; while(a!=0) { n=a%10; num=num*10+n; a=a/10; } return num; }
上机题2:求1+2!+3!+...+20!的和
要求:利用递归函数
#include<stdio.h> long fun(int a); long t[20]={0}; int main(void) { long sum=0; for(int i=0;i<20;i++) { t[i]=fun(i+1); sum+=t[i]; } printf("%ld",sum); } long fun(int a) { if(a==1)return 1; if(t[a-1])return t[a-1]; else return a*fun(a-1); }
在C-FREE3.5 版本中 全局静态变量居然不自动初始化为零。。。!!!
上机题3:编写程序,输入一个正整数N,如果N 是质数则输出Yes,否则输出No。另,由于最小的质数是2,所以先检查它是否小于2,如果是的话,则提示“质数是不能小于2,请重新输入”
要求:利用自定义函数P(N)检查N 是不是质数
#include<stdio.h> char fun(int n); int main(void) { int n; while(scanf("%d",&n)!=EOF) { if(n<2){ printf("质数是不能小于2,请重新输入\n"); continue; } printf("%c\n",fun(n)); } } char fun(int n) { int i; for(i=2;i*i<=n;i++) if(n%i==0)return 'N'; return 'Y'; }