第99套:

函数fun的功能是:将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。
例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则调换后为:6、7、8、9、5、1、2、3、4。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:

#include <stdio.h>
#define N 9
void fun(int a[], int n)
{ int i, t, p;
p = (n%2==0)?n/2:n/2+___1___;
for (i=0; i<n/2; i++)
{
t=a[i];
a[i] = a[p+___2___];
___3___ = t;
}
}
main()
{ int b[N]={1,2,3,4,5,6,7,8,9}, i;
printf("\nThe original data :\n");
for (i=0; i<N; i++) printf("%4d ", b[i]);
printf("\n");
fun(b, N);
printf("\nThe data after moving :\n");
for (i=0; i<N; i++) printf("%4d ", b[i]);
printf("\n");
}

解题思路:
第一处:如果n是奇数,则中间的元素不动,所以应填:1。
第二处:使用for循环语句来交换数组元素的值,所以应填:i。
第三处:使用中间变量t来交换的,所以应填:t。


给定程序MODI1.C中函数fun的功能是:把主函数中输入的3个数,最大的放在 a中,最小的放在c中,中间的放在b中。
例如,输入的数为:55 12 34,
输出结果应当是:a=55.0 , b=34.0 , c=12.0。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
给定源程序:

#include <stdio.h>
void fun(float *a,float *b,float *c)
{
float *k;
if( *a<*b )
{ k=*a; *a=*b; *b=k; }
if( *a>*c )
{ k=*c; *c=*a; *a=k; }
if( *b<*c )
{ k=*b; *b=*c; *c=k; }
}
main()
{ float a,b,c;
printf("Input a b c: "); scanf("%f%f%f",&a,&b,&c);
printf("a = %4.1f, b = %4.1f, c = %4.1f\n\n",a,b,c);
fun(&a,&b,&c);
printf("a = %4.1f, b = %4.1f, c = %4.1f\n\n",a,b,c);
}

解题思路:
第一处:在函数fun体中,k是一个浮点型变量,所以应改为:float k;。
第二处:三个数比较大小,第1个条件是第1个比第2个小,则交换。第3个条件是第2个比第3个小,则也交换。第2个条件是应该第1和第3个小,则交换就符合题意了,所以应改为:
if(*a<*c)。


学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
给定源程序:

#include <stdio.h>
#define N 16
typedef struct
{ char num[10];
int s;
} STREC;
int fun( STREC *a, STREC *b )
{
}
main()
{ STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85}, {"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87}, {"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91}, {"GA011",77},{"GA017",64},{"GA018",64},{"GA016",72}};
STREC h[N];
int i,n;FILE *out ;
n=fun( s,h );
printf("The %d highest score :\n",n);
for(i=0;i<n; i++)
printf("%s %4d\n",h[i].num,h[i].s);
printf("\n");
out = fopen("c:\\test\\out.dat","w") ;
fprintf(out, "%d\n",n);
for(i=0;i<n; i++)
fprintf(out, "%4d\n",h[i].s);
fclose(out);
}

解题思路:
本题是找出最高成绩,再把N名学生的成绩等于最高成绩的记录存入b所指的数组中。具体
操作请看答案程序中的说明。
参考答案:

int fun( STREC *a, STREC *b )
{
int i, max = a[0].s, n=0;
for(i = 1; i < N; i++)
if(max < a[i].s) max = a[i].s ; /* 找出最高成绩 */
for(i = 0; i < N; i++)
if(max==a[i].s) b[n++] = a[i] ; /* 找相等的最高成绩并存入数组b中 */
return n; /* 返回符合条件的人数 */
}

全国计算机等级考试题库二级C操作题100套(第99套)相关推荐

  1. 全国计算机等级考试题库二级C操作题100套(第88套)

    第88套: 函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中:再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中: ...

  2. 全国计算机等级考试题库二级C操作题100套(第97套)

    第97套: 函数fun的功能是:逆置数组元素中的值.例如:若a所指数组中的数据依次为:1.2.3.4.5.6.7.8.9,则逆置后依次为:9.8.7.6.5.4.3.2.1.形参n给出数组中数据的个数 ...

  3. 全国计算机等级考试题库二级C操作题100套(第95套)

    第95套: 给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回.注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值.例如,若N=3,有下列 ...

  4. 全国计算机等级考试题库二级C操作题100套(第93套)

    第93套: 给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun 函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表 缩短. 请在程序的下划线处填入正确的 ...

  5. 全国计算机等级考试题库二级C操作题100套(第78套)

    第78套: 给定程序中,函数fun的功能是:将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换.例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 交换后为: 3 2 ...

  6. 全国计算机等级考试题库二级C操作题100套(第77套)

    第77套: 给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回. 例如,输入一个整数:27638496,函数返回值为:64 ...

  7. 全国计算机等级考试题库二级C操作题100套(第75套)

    第75套: 给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序.ss所指字符串数组中共有M个字符串,且串长<N.请在程序的下划线处填入正确的内容并把下划 ...

  8. 全国计算机等级考试题库二级C操作题100套(第58套)

    第58套: 给定程序中,函数fun的功能是:把形参s所指字符串中最右边的n个字符复制 到形参t所指字符数组中,形成一个新串.若s所指字符串的长度小于n,则将整个 字符串复制到形参t所指字符数组中.例如 ...

  9. 全国计算机等级考试题库二级C操作题100套(第53套)

    第53套: 函数fun的功能是:计算请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果. 注意:源程序存放在考生文件夹下的BLANK1.C中. 不得增行或删行,也不得更改程序的结构! ...

最新文章

  1. Struts(八)Strits2访问servlet API
  2. axios+vue实现动态渲染员工数据+数据是对象
  3. 二线城市,存款多少可以退休?
  4. Gitlab备份、升级、恢复
  5. EventBus,轻松实现跨组件跨线程通信
  6. 哪个服务器支持高并发,IIS Web服务器支持高并发设置方法详解
  7. AlphaGo算法论文 神经网络加树搜索击败李世石
  8. 撰写商业计划书的一些误区和建议
  9. 工频变压器和高频变压器
  10. 米的换算单位和公式_米的换算单位
  11. 点计算机图标就自动关机了,如何设置电脑到点自动关机
  12. RabbitMQ高可用--Quorum Queue(仲裁队列)的原理
  13. 日立6TB充氦硬盘详细规格、实物照片
  14. PPT画图(或排版)后保存为高清图片(可自定义分辨率)
  15. 人脸识别之insightface开源代码使用——自定义数据集制作
  16. 并发编程的艺术04-TAS自旋锁
  17. 怎么画思维导图?玩转MindNow六大思维结构
  18. Ubuntu服务器上运行mma,一、MMA概述
  19. web前端--Html4
  20. mmap和shmget的区别

热门文章

  1. 简单弄一个-个人主页
  2. c++ 11 override final
  3. JavaScript中OOP——面向对象中的继承/闭包
  4. oracle学习一二
  5. Fireflow 终于发布啦!
  6. 【TypeError: float() argument must be a string or a number, not ‘map’】
  7. 学习笔记(48):Python实战编程-grid布局
  8. python3版本无法加载reload解决办法NameError: name 'reload' is not defined
  9. 异形3×3魔方还原教程_【理论篇】三阶魔方4.33千亿亿种变化是怎么计算出来的?...
  10. SDM For Face Alignment流程介绍及Matlab代码实现之测试篇