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

一、程序填空题

在此程序中,函数fun的功能是:把形参s所指字符串中最右边的n个字符复制到形参t所指字符数组中,形成一个新串。若s所指字符串的长度小于n,则整个字符串复制到形参t所指字符数组中。

例如,形参s所指的字符串为:abcdefgh,n的值为5,程序执行后t所指字符数组中的字符串应为:defgh。

#include  <stdio.h>

#include  <string.h>

#define   N   80

void fun(char  *s, int  n, char  *t)

{ int len,i,j=0;

  len=strlen(s);

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

  if(n>=len) strcpy(__1__);

  else {

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

     for(i=len-n; i<=len-1; i++)  t[j++]= __2__ ;

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

     t[j]= __3__ ;

  }

}

void main()

{ char  s[N],t[N];    int  n;

  printf("Enter a string:  ");gets(s);

  printf( "Enter n:");  scanf("%d",&n);

  fun(s,n,t);

  printf("The string t :  ");  puts(t);

}

答案:(1) t,s (2) s[i] (3) 0

二、程序修改题

在此程序中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。

#include  <stdlib.h>

#include  <conio.h>

#include  <stdio.h>

int fun( int m)

{ int i,k;

  for (i=m+1; ;i++)

     { for (k=2;k<i;k++)

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

          if (i%k!=0)

          break;

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

        if (k<i)

        return(i);

     }

}

void main()

{  int n;

   system("CLS");

   printf("\nPlease enter n: ");

   scanf("%d",&n);

   printf ("%d\n",fun(n));

}

答案:(1) if (i%k==0) (2) if (k>=i)

三、程序设计题

在此程序中,编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

例如,若x中的值为30,则有4个数符合要求,它们是1、3、5、15。

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

void fun (int x, int pp[], int *n)

{

  

}

void main ()

{

  FILE *wf;

  int  x,aa[1000], n, i ;

  system("CLS");

  printf("\nPlease enter an integer number : \n ") ;

  scanf ("%d", &x) ;

  fun (x, aa, &n) ;

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

      printf ("%d ", aa [i]);

  printf ("\n ") ;

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

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

  fun (30, aa, &n) ;

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

      fprintf (wf,"%d ", aa [i]);

  fclose(wf);

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

}

答案:

int i,j=0;

for(i=1;i<=x;i=i+2)    /*i的初始值为1,步长为2,确保i为奇数*/

if(x%i==0)      /*将能整除x的数存入数组pp中*/

pp[j++]=i;

*n=j;              /*传回满足条件的数的个数*/

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值