当前位置: 首页 > news >正文

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

一、程序填空题

在此程序中,函数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;

http://www.lryc.cn/news/1083.html

相关文章:

  • vue-router 源码解析(二)-创建路由匹配对象
  • 分布式新闻项目实战 - 10.Long类型精度丢失问题
  • 如何将本地jar包安装到maven仓库
  • C++:map和set的认识和简单使用/关联式容器
  • 网络工程师一定要学会的知识点:OSPF,今天给大家详细介绍
  • 企业管理的三大基石及其关系
  • 6个月软件测试培训出来后的感悟 —— 写给正在迷茫是否要转行或去学软件测试的学弟们
  • IoU Loss综述(IOU,GIOU,CIOU,EIOU,SIOU,WIOU)
  • Node=>Express中间件 学习3
  • 【STM32笔记】HAL库UART串口配置及重定向(解决接收中断与scanf不能同时工作的问题)
  • 【前端CSS面试题】2023前端最新版css模块,高频15问
  • Linux命令大全,赶紧收藏!
  • 大数据入门怎么学习
  • 用于异常检测的深度神经网络模型融合
  • 游戏服务器如何选择合适的服务器配置
  • 01-幂等性解释,问题及常用解决方案
  • SpringBoot配置文件
  • 基于蜣螂算法改进的DELM分类-附代码
  • FPGA纯verilog代码实现图像对数变换,提供工程源码和技术支持
  • 【Python百日进阶-Web开发-Vue3】Day516 - Vue+ts后台项目3:首页
  • 分析了 200 个 DeFi 项目,我发现了这些规律
  • 你领证了吗?各地2022下半年软考纸质证书发放中
  • 将群晖NAS变为本地盘
  • 以太坊上交易异常Pending的处理方法
  • 第三节 第一个内核模块
  • 从CNN到Transformer:基于PyTorch的遥感影像、无人机影像的地物分类、目标检测、语义分割和点云分类
  • 操作系统的奋斗(三)内存管理
  • 多选多的一种通用处理逻辑
  • Redis 的安装 + SpringBoot 集成 Redis
  • 为什么在容器中 1 号进程挂不上 arthas?