上机题1:任意输入两个大于10的整数,将两数分别反转(逆序)后两相乘,如果最后一位是0去掉0,再反转后输出;
#include<stdio.h> void main() { int fine(int n); int x,y,z; printf("请输入两个大于十的数:"); scanf("%d%d",&x,&y); z=fine(x)*fine(y); z=fine(z); printf("输入的值为%d",z); } int fine(int n) {int a,b=0; while (n!=0) { a=n%10; n=n/10; b=b*10+a; } return b; }
上机题2:假设一个数列K表的前两项是0,1,而之后的每一项为KN= 2 * KN-1+3 KN-2,输入一个正整数N,计算和输出该数列的第Ñ项
要求:利用递归函数
# include<stdio.h> int Kn(int x) { int a; if(x==1) a=0; if(x==2) a=1; if(x>2) a=2*Kn(x-1)+3*Kn(x-2); return a;} int main() { int m, n; printf("输入的要求:"); scanf("%d",&m); n=Kn(m); printf("答案为%d\n",n); }
上机题3:编写程序,输入一个正整数n,如果n+1是质数则输出Yes,否则输出No。另,由于最小的质数是2,所以先检查它是否小于2,如果是的话,则提示“质数是不能小于2,请重新输入”
要求:利用自定义函数z(n)检查是不是质数
#include<stdio.h> void main() { int n,i,y; printf("请输入一个正整数:"); scanf("%d",&n); n=n+1; if(n<2) printf("质数是不能小于2,请重新输入\n"); else {for(i=2;i<n;i++) { y=n%i; if(y==0) break; } if(i==n) printf("yes\n"); else printf("no\n"); } }