首页 试题详情
问答题

阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 [说明] 下面的函数sort(int n,int a[])对保存在数组a中的整数序列进行非递减排序。由于该序列中的元素在一定范围内重复取值,因此排序方法是先计算出每个元素出现的次数并记录在数组b中,再从小到大顺序地排列各元素即可得到一个非递减有序序列。例如,对于序列6,5,6,9,6,4,8,6,5,其元素在整数区间[4,9]内取值,因此使数组元素b[0]~b[5]的下标0~5分别对应数值4~9,顺序地扫描序列的每一个元素并累计其出现的次数,即将4的个数记入b[0],5的个数记入b[1],依此类推,9的个数记入b[5]。最后依次判断数组b的每个元素值,并将相应个数的数值顺序地写入结果序列即可。 对于上例,所得数组b的各个元素值如下: 1.jpg 那么在输出序列中写入1个4、2个5、4个6、1个8、1个9,即得4,5,5,6,6,6,6,8,9,从而完成排序处理。 [C函数] void sort(int n,int a[]) { int *b; int i, k, number; int minimum=a[0],maximum=a[0]; /*minimum和maximum分别表示数组a的最小、最大元素值*/ for(i=1; i<n; i++){ if(______) minimum=a[i]; eiSe if (______) maximum=a[i]; } number=maximum-minimum+1; if(number<=i)return; b=(int*)calloc(number,sizeof(int)); if(!b) return; for(i=0;i<n; i++){/*计算数组a的每个元素值出现的次数并记入数组b */ k=a[i]-minimum; ++b[k]; } /*按次序在数组a中写入排好的序列*/ i=______; for(k=0; k<number; k++) for(; ______; --b[k] ) a[i++]=minimum+______; }

正确答案:A (备注:此答案有误)

相似试题

  • 问答题

    阅读以下说明C代码,填充代码中的空缺,将解答填入答题纸的对应栏内。[说明1]下面的函数countChar(char*text)统计字符串text中不同的英文字母数每个英文字母出现的次数(英文字母不区分大小写)。[C代码1] int countChar(char *text) { int i,sum=0; /*sum保存不同的英文字母数*/ char *ptr; int c[26]={0); /*数组C保存每个英文字母出现的次数*/ /*c[0]己录字母A或a的次数,c[1]记录字母B或b的次数,依此类推*/ ptr=______; /*ptr初始时指向字符串的首字符*/ while (*ptr) { if (isupper(*ptr) ) c [*ptr-A]++; else if (islower(*ptr)) c[*ptr-a]++; ______; /*指向下一个字符*/ } for(i=0;i<26; i++) if(______)sum++;

    答案解析

  • 问答题

    第四题 阅读以下说明C函数问题,回答问题1问题2将解答填入答题纸的对应栏内。【说明】当数组中的元素已经排列有序时,可以采用折半查找(二分查找)法查找一个元素。下面的函数biSearch(int r[],int low,int high,int key)用非递归方式在数组r中进行二分查找,函数biSearch_rec(int r[],int low,int high,int key)采用递归方式在数组r中进行二分查找,函数的返回值都为所找到元素的下标;若找不到,则返回-1。【C函数1】int biSearch(int r[],int low,int high,int key)//r[low..high] 中的元素按非递减顺序排列//用二分查找法在数组r中查找与key相同的元素//若找到则返回该元素在数组r的下标,否则返回-1{ int mid; while((1)) { mid = (low+high)/2 ; if (key ==r[mid]) return mid; else if (key<r[mid

    答案解析

  • 问答题

    阅读以下说明C函数,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明1]函数isPrime(int n)的功能是判断n是否为素数。若是,则返回1,否则返回0。素数是只能被1自己整除的正整数。例如,最小的5个素数是2,3,5,7,11。[C函数] int isPrime(int n) { int k, t; if (n==2) return 1; if(n<2 ______)return 0; /*小于2的数或大于2的偶数不是素数// t=(int)Sqrt(n)+1; for(k=3; k<t; k+=2) if(______) return 0; return 1; }[说明2]函数int minOne(int art[],int k)的功能是用递归方法求指定数组中前k个元素中的最小者,并作为函数值返回。[C函数]int minOne(int arr[],int k){int t;assert(k>0);if(k==1)return ______;t=minOne(arr+1,______);if(arr

    答案解析

  • 问答题

    阅读以下说明C++代码,填充代码中的空缺,将解答填入答题纸的对应栏内。[说明]某应急交通控制系统(TraficControlSystem)在红灯时控制各类车辆(Vehicle)的通行,其类图如下图所示,在紧急状态下应急车辆红灯时也可通行,其余车辆按正常规则通行。下面的C++代码实现以上设计,请完善其中的空缺。[C++代码]#include<typeinfo>#include<iostream>using namespace std;class Vehicle {/*抽象基类,车辆*/public:virtual void run()=0;};class Emergency { /*抽象基类,可在红灯时通行的接口,函数均为纯虚函数*/public:______=0; //isEmergent()函数接口______=0; //runRedLight()函数接口};clasS Car:public Vehicle{public:~Car(){}void run(){/*代码略*/ ));class Truck:public Vehicle{public:~Truck(){

    答案解析

  • 多选题

    以下哪些属于numpy中的聚合函数?

    答案解析

热门题库