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

  • Post author:
  • Post category:其他


一、程序填空题

在此程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。

例如,若s所指字符串”baacda”,中c的字符为a,执行后s所指字符串为”baaaacdaa”。

#include    <stdio.h>

void fun(char  *s, char  c)

{  int  i, j, n;

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

for(i=0; s[i]!=___1___ ; i++)

if(s[i]==c)

{

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

n=___2___ ;

while(s[i+1+n]!=’\0′)  n++;

for(j=i+n+1; j>i; j–)  s[j+1]=s[j];

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

s[j+1]=___3___ ;

i=i+1;

}

}

void main()

{  char  s[80]=”baacda”, c;

printf(“\nThe string:  %s\n”,s);

printf(“\nInput a character:  “);  scanf(“%c”,&c);

fun(s,c);

printf(“\nThe result is:  %s\n”,s);

}

答案:(1) 0 (2) 0 (3) c

二、程序修改题

在此程序中,主函数从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中函数fun的功能是:计算数组元素中所有值为正数的平均值(不包括0)。

例如,数组中元素中的值依次为:39,-47,21,2,-8,15,0,则程序的运行结果为19.250000。

#include <stdio.h>

double fun ( int x[])

{

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

int sum = 0.0;

int c=0, i=0;

while (x[i] != 0)

{ if (x[i] > 0) {

sum += x[i]; c++; }

i++;

}

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

sum \= c;

return sum;

}

void main( )

{  int x[1000];  int i=0;

printf( “\nPlease enter some data (end with 0): ” );

do

{  scanf(“%d”, &x[i]);  }

while (x[i++] != 0);

printf(“%f\n”, fun ( x ));

}

答案:(1) double sum = 0.0; (2) sum /= c;

三、程序设计题

在此程序中,编写函数fun,其功能是:根据以下公式计算s,并计算结果作为函数值返回,n通过形参传入。

例如,若n的值为11时,函数的值为1.833333。

#include <stdio.h>

float fun(int  n)

{

}

void main()

{  int n; float s;

void NONO (  );

printf(“\nPlease enter N:”); scanf(“%d”, &n);

s = fun(n);

printf(“the result is: %f\n”, s);

NONO();

}

void NONO (  )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */

FILE *fp, *wf ;

int i, n ;

float s;

fp = fopen(“in.dat”,”r”) ;

wf = fopen(“out.dat”,”w”) ;

for(i = 0 ; i < 10 ; i++) {

fscanf(fp, “%d”, &n) ;

s = fun(n) ;

fprintf(wf, “%f\n”, s) ;

}

fclose(fp) ;

fclose(wf) ;

}

答案:

int i,s1=0;

float s=0.0;

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

{s1=s1+i;        /*求每一项的分母*/

s=s+1.0/s1;     /*求多项式的值*/

}

return s;



版权声明:本文为gly_technology原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。