二级C语言操作例题(十八)

一、程序填空题

在此程序中,函数fun的功能是:判断形参s所指字符串是否是”回文”(Panlindrome),若是,函数返回值为1;不是,函数返回值0。”回文”是正读和反读都一样的字符串(不区分大小写字母)。

例如,LEVEL和Level是”回文”,而LEVLEV不是”回文”。

#include  <stdio.h>

#include  <string.h>

#include  <ctype.h>

int fun(char  *s)

{ char  *lp,*rp;

/**********found**********/

  lp= __1__ ;

  rp=s+strlen(s)-1;

  while((toupper(*lp)==toupper(*rp)) && (lp<rp) ) {

/**********found**********/

     lp++; rp __2__ ; }

/**********found**********/

  if(lp<rp) __3__ ;

  else   return 1;

}

void main()

{ char  s[81];

  printf("Enter a string:  ");  scanf("%s",s);

  if(fun(s)) printf("\n\"%s\" is a Palindrome.\n\n",s);

  else printf("\n\"%s\" isn't a Palindrome.\n\n",s);

}

答案:(1) s (2) -- (3) return 0

二、程序修改题

在此程序中,函数fun的功能是:求出如下分数列的前n项之和。

和值通过函数返回main函数。例如,若n=5,则应输出8.391667。

#include  <stdlib.h>

#include  <conio.h>

#include  <stdio.h>

/*************found**************/

fun (int n)

{ int a,b,c, k;

  double s;

  s=0.0;a=2;b=1;

  for(k=1;k<=n;k++)

     {

/*************found**************/

      s=s+(Double)a/b;

      c=a;a=a+b;b=c;

     }

  return s;

}

void main()

{ int n=5;

  system("CLS");

  printf("\nThe value of function is:%lf\n",fun(n));

}

答案:(1) double fun(int n) (2) s=s+(double)a/b;

三、程序设计题

在此程序中,编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的数组中。

例如,若输入17.5,则应输出19、23、29、31、37。

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

void fun(int m,int k,int xx[])

{

   

}

void main()

{

  FILE *wf;

  int m,n,zz[1000];

  system("CLS");

  printf("\nPlease enter two integers: ");

  scanf("%d%d",&m,&n);

  fun(m, n, zz);

  for(m=0;m<n;m++)

     printf("%d ",zz[m]);

  printf("\n ");

/******************************/

  wf=fopen("out.dat","w");

  fun(17,5,zz);

  for(m=0;m<5;m++)

     fprintf(wf,"%d ",zz[m]);

  fclose(wf);

/*****************************/

}

答案:

int i,j,n;

for(i=m+1,n=0;n<k;i++)     /*找大于m的素数,循环k次,即找出紧靠m的k个素数*/

  {for(j=2;j<i;j++)     /*判断一个数是否为素数,如果不是,跳出此循环,判断下一个数*/

     if(i%j==0) break;

   if(j>=i)               /*如果是素数,放入数组xx中*/

      xx[n++]=i;

  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值