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

计算机二级C语言操作题(填空、修改、设计题)——真题库(16)附解析答案

1.程序填空题

程序中,函数fun的功能是:在3×4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。
例如,有下列矩阵:
1   2   13   4
7   8   10   6
3   5    9    7
程序执行结果为:find:a[2][2]=9

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。不得增行或删行,也不得更改程序的结构。

#include  <stdio.h>
#define   M   3
#define   N   4
void fun(int  (*a)[N])
{ int  i=0,j,find=0,rmax,c,k;while( (i<M) && (!find)){  rmax=a[i][0];  c=0;for(j=1; j<N; j++)if(rmax<a[i][j]) {
/**********found**********/rmax=a[i][j]; c= __1__ ; }  find=1; k=0;while(k<M && find) {
/**********found**********/if (k!=i && a[k][c]<=rmax)  find= __2__ ;  k++;}if(find) printf("find: a[%d][%d]=%d\n",i,c,a[i][c]);
/**********found**********/__3__ ;return a[i][c]}if(!find) printf("not found!\n");
}
void main()
{ int  x[M][N],i,j;printf("Enter number for array:\n");for(i=0; i<M; i++)for(j=0; j<N; j++) scanf("%d",&x[i][j]);printf("The array:\n");for(i=0; i<M; i++){  for(j=0; j<N; j++) printf("%3d",x[i][j]);printf("\n\n");}fun(x);
}

2.程序修改题

函数fun的功能是:根据整形参m的值,计算如下公式的值。
t=1-1/(2×2)-1/(3×3)-...-1/(m×m)
例如,若m中的值为5,则应输出0.536389.

请改正程序中的错误,使它能得出正确的结果。不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include <stdio.h>double fun ( int m )
{  double   y = 1.0 ;int  i ;
/**************found**************/for(i = 2 ; i < m ; i++)
/**************found**************/y -= 1 /(i * i) ;return( y ) ;
}void main( )
{  int n = 5 ;printf( "\nThe result is %lf\n", fun ( n ) ) ;
}

3.程序设计题

在此函数中,m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在被low所指的数组中。例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为10、20、30、40.

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号填入你编写的若干语句。

#include <stdio.h>
#include <string.h>
int fun(int score[], int m, int below[])
{}void main( )
{  int i, n, below[9] ;void NONO ();int score[9] = {10, 20, 30, 40, 50, 60, 70, 80, 90} ;n = fun(score, 9, below) ;printf( "\nBelow the average score are: " ) ;for (i = 0 ; i < n ; i++)  printf("%d ", below[i]) ;NONO() ;
}void NONO ()
{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/int i, j, n, below[10], score[10] ;FILE *rf, *wf ;rf = fopen("in.dat","r") ;wf = fopen("out.dat","w") ;for(i = 0 ; i < 10 ; i++) {for(j = 0 ; j < 10 ; j++) fscanf(rf, "%d", &score[j]) ;n = fun(score, 10, below) ;for(j = 0 ; j < n ; j++) fprintf(wf, "%d ", below[j]) ;fprintf(wf, "\n") ;}fclose(rf) ;fclose(wf) ;
}

附:参考答案

1.程序填空题
(1)j
(2)0
(3)i++
【解题思路】
(1)找出行上最大的数,并将该数的列数j保存到c中,故填j;
(2)使用while循环语句和控制变量find判断rmax是不是列中最小的元素,那么把find置0,故空2填0;
(3)变量 i 是最外层while的控制变量,所以每一次循环该数值都要加1,故空3填i++

2.程序修改题
(1)for(i=2;i<=m;i++)
(2)y-=1.0/(i*i)
【解题思路】
(1)使用for循环计算公式,必须计算到最后一项m,所以应改为for(i=2;i<=m;i++)
(2)在除法运算中如果除数和被除数都是整数,那么商也是整数,所以整数1改为浮点数1.0,应改为y-=1.0/(i*i)

3.程序设计题
int fun(int score[], int m, int below[])
{
int i,j=0;
double av=0.0;
for(i=; i<m; i++)
av=av+score[i]/m //求平均值
for(i=0; i<m; i++)
if(score[i] < av) //如果分数低于平均分,则将此分数放入below数组中
below[j++]=score[i];
return j; //返回低于平均分的人数
}
【解题思路】
要计算低于平均分的人数,首先是要求出平均分,然后通过for循环语句和if条件语句找出低于平均分的分数。该题第1个循环的作用是求出平均分av,第二个循环的作用是找出数组score低于平均分的成绩记录并存入below数组中。

http://www.xdnf.cn/news/1459243.html

相关文章:

  • C++基础——模板进阶
  • 【C++题解】关联容器
  • Linux的权限详解
  • 一次死锁的排查
  • 激活函数:神经网络的“灵魂开关”
  • 阅读论文神奇Zotero下载安装教程以及划词翻译(Translate for Zotero)的配置
  • 动态内存管理柔性数组
  • Vue 中绑定样式的几种方式
  • Process Explorer 学习笔记(第三章3.1.1):度量 CPU 的使用情况详解
  • 【Unity知识分享】Unity接入dll调用Window系统接口
  • 无限时长视频生成新突破!复旦联合微软、腾讯混元推出StableAvatar,仅需1张照片+1段音频实现真人说话视频
  • hutool的EnumUtil工具类实践【持续更新】
  • 揭秘23种设计模式的艺术与技巧之行为型
  • 美联储计划召开稳定币和代币化创新会议
  • 大数据框架Doris全面解析
  • 期权平仓后权利金去哪了?
  • 基于STM32的智能家居语音控制系统设计
  • Pycharm终端pip install的包都在C:\Users\\AppData\Roaming\Python\解决办法
  • 手写Spring框架
  • 前端跨域终极指南:3 种优雅解决方案 + 可运行 Demo
  • 解密注意力机制:为何它能在Transformer中实现高效并行计算?
  • STM32G4 速度环开环,电流环闭环 IF模式建模
  • 如何在Linux上部署1Panel面板并远程访问内网Web端管理界面
  • Kafka 开启 SASL_PLAINTEXT 双监听器认证(内网/外网)
  • 如何减少文档冗余和重复劳动
  • vite_react 插件 find_code 最终版本
  • MVCC是如何工作的?
  • bash自带的切片操作
  • 解锁“桐果云”的全链路能力矩阵,技术人必看的企业级数据应用方案
  • 阿里云轻量应用服务器部署WordPress与配置SSL 证书