优秀学习资料 欢迎下载
(2)掌握函数中参数传递的两种方式和函数的相互调用。 (3)编写实验报告。
2、实验内容(参考实验指导书):
(1)写一个函数int digit( int n , int k ),它返回数n的从右向左的第k个十进数字值。例如,函数调用digit(1234,2)将返回值3。
#include
int x,y;
printf(\请输入一个数据\\n\ scanf(\ digit(x,y); }
void digit(int n,int k) {
int i,j,a,b; b=n; a=(n/10); j=(n/100); i=(n/1000);
n=1000*i+100*j+10*a+b; if(k==1)
printf(\ else if(k==2)
printf(\ else if(k==3)
printf(\ else if(k==4)
printf(\}
(2)写一个函数int isprime(int n),当n是质数时,函数返回非零值;当n是合数时,函数返回零值。
优秀学习资料 欢迎下载
#include
int x;
printf(\请输入一个整 数\\n\
scanf(\
printf(\ }
int isprime(int n) {
int i=2;
 while(i   if(n%i==0)    return 0;   i++;  }   return 1; }    (3)写一个函数reverse( char s[]),将字符串s[]中的字符串倒序输出。试分别用递归和非递归两种形式编写。 递归型:  #include void res(char s[],int len); void reverse(char b[]); void main() {   char a[100];     printf(\请输入一串字符:\\n\gets(a); reverse(a);  优秀学习资料   欢迎下载   printf(\}  void res(char s[],int len) {   if(len>=0)  {     printf(\  len--;   res(s,len);  }  }  void reverse(char b[]) {   res(b,strlen(b)); }      非递归型:  #include  char s[100];   printf(\请输入一串字符\\n\ gets(s);  reverse(s);  printf(\}  void reverse(char s[]) {   int j,i=0;  do  {    i++;   }while(s[i]!='\\0');  for(j=i-1;j>=0;j--)   printf(\}  优秀学习资料   欢迎下载    (4)写一个主函数输入测试数据(自己指定),并调用上述函数,检查函数功能的正确性。 判断奇偶性:  #include int parity(int n) {      }  if(n%2==0)   printf(\int x;  printf(\scanf(\parity(x);    else   printf(\ return 0;  优秀学习资料   欢迎下载    (5)一个数如果从左到右和从右到左读,数字是相同的,则称这个数字为回文数,比如898、1221、15651都是回文数。求:既是回文数又是质数的5位十进制数有多少个?要求:回文判断和质数判断都需要通过子函数实现,输出的时候要求5个数字一行。  #include   int i;  int cnt=0;   for(i=10000;i<100000;i++)  {    if(hw(i))   {     if(isprime(i)==1)    {      cnt++;      printf(\   }   }  }   printf(\合计:%d个\\n\}  int isprime(int n) {      int i=2;   while(i   if(n%i==0)    return 0;   i++;  }   return 1; }  int hw(int n) {   int m=0;  int t=n;