阅读以下C代码,回答问题(1)~(6),将解答填入答题纸的对应栏内。【说明】函数insertElem的功能是在元素升序排列的数组中加入一个新元素并保持数组元素升序排列的特点。在main函数中输入若干表示价格的实数,输入为0或负数或实数个数超出限定数量时终止,调用insertElem将价格按升序保存在数组pdata中,最后输出所输入的实数

阅读以下C代码,回答问题(1)~(6),将解答填入答题纸的对应栏内。【说明】函数insertElem的功能是在元素升序排列的数组中加入一个新元素并保持数组元素升序排列的特点。在main函数中输入若干表示价格的实数,输入为0或负数或实数个数超出限定数量时终止,调用insertElem将价格按升序保存在数组pdata中,最后输出所输入的实数


参考解析

解析:(1)arr[n](2)arr[i+1]=arr[i](3)arr[i+1](4)break(5)pdata,n,price(6)idx【解析】

1空如果所有元素都比带插入元素小,那么带插入元素排在最后。23空插入元素并将其他元素后移4空如果price小于等于0,则break终止循环5空调用inserElem函数时填写的参数6遍历所有元素并输出结果。

相关考题:

●在C语言中,若函数调用时实参是某个数组元素,则传递给对应形参的是 (40) 。(40) A.数组空间的首地址B.数组中第一个元素的元素值C.数组中元素的个数D.数组中所有的元素

在C语言中,若函数调用时实参是某个数组元素,则传递给对应形参的是(55)。A.数组空间的首地址B.数组中此元素的元素值C.数组中元素的个数D.数组中所有的元素

在主函数中,从键盘输入若干个数放入数组x中,用0结束输入但不计入数组。下列给定程序中,函数fun()的功能是:输出数组元素中小于平均值的元素。请补充函数fun()。例如:数组中元素的值依次为1,2,2,12,5,15,则程序的运行结果为1,2,2,5。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:include<conio.h>include<stdio.h>void fun( 【 】,int n){double sum=0.0;double average=0.0;int i=0;for(i=0;i<n;i++)【 】;average= 【 】;for(i=0;i<n;i++)if(x[i]<average){if(i%5==0)printf("\n");printf("%d/",x[i]);}}main(){int x[1000];int i=0;clrscr();printf("\nPlease enter some data(end with 0):");do{scanf("%d",x[i]);}while(x[i++]!=0);fun(x,i-1);}

阅读以下说明和流程图,回答问题将解答填入对应栏。[说明]本流程图实现采用递归函数来求一个整数数组中从元素0到元素n中的最小值。该算法思想是这样的,首先我们假设有一个求数组中最小元素的函数,然后,在求某一具有n的元素的数组的最小值时,只要求将前n-1的元素的最小值与第n个元素比较即可。不断地重复这一过程,直到数组中只剩下一个元素,那么它必定是最小值。注:int min(int X,int y)为返回两数中最小数的函数。int minInArray(int a[],int n)为返回数组中最小数的函数。minA为数组中最小值。[问题l]将流程图的(1)~(4)处补充完整。[问题2]min()函数的定义为(5)。

阅读以下说明和流程图,填补流程图中的空缺(1)~(9),将解答填入对应栏内。【说明】假设数组A中的各元素A(1),A(2),…,A(M)已经按从小到大排序(M≥1);数组B中的各元素B(1),B(2),…,B(N)也已经按从小到大排序(N≥1)。执行下面的流程图后,可以将数组A与数组B中所有的元素全都存入数组C中,且按从小到大排序 (注意:序列中相同的数全部保留并不计排列顺序)。例如,设数组A中有元素:2,5, 6,7,9;数组B中有元素2,3,4,7:则数组C中将有元素:2,2,3,4,5,6,7, 7, 9。【流程图】

在文件in.dat中已存有200个正整数,且每个数均在1 000至9999之间。函数readDat是读取这200个数存放到数组aa中。请编制函数jsSort,其函数的功能是:要求按每个数的后三位的大小进行降序排列,如果出现后三位相等的数值,则对这些数值按原始4位数据进行升序排列,将排序后的前10个数存入数组bb中。 最后调用函数writeDat把结果bb输出到文件out.dat中。

已知在文件in.dat中存有N个实数(N200),函数ReadDat是读取这N个实数并存入数组xx中。请编制函数CalValue,其功能要求:1.求出这N个实数的平均值aver;2.分别求出这N个实数的整数部分值之和sumint以及小数部分值之和sumdec,最后调用函数WriteDat把所求的结果输出到文件out.dat中。 注意:部分源程序存放在test.c文件中。 请勿改动主函数main、读函数ReadDat和输出函数WriteDat的内容。

请补充函数proc(),该函数的功能是把数组num中的数按从小到大的顺序排列(数组元素个数及值从主函数中输入)。例如,输入n=5,num[0]~num[4]依次为5 7 2 8 0,结果为0 2 5 7 8。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。试题程序:

从键盘输入一组小写字母,保存在字符数组str中。请补充函数proc(),该函数的功能是:把字符数组str中字符下标为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。例如,输入abcdefg,输出aBcDeFg。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proe()的横线上填入所编写的若干表达式或语句。试题程序:

在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果bb输出到文件OUT6.DAT中。例如:处理前 9012 5099 6012 7025 8088处理后 5099 8088 7025 6012 9012注意:部分源程序已给出。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。

阅读下面程序,则程序段的功能是 #include"stdio.h" main() { int c[]={23,1,56,234,7,0,34},i,j,t; for(i=1;i<7;i++) { t=c[i];j=i-1; while(j>=0 t>c[j]) { c[j+1]=c[j];j--;} c[j+1]=t;} for(i=0;i<7;i++) printf("%d",c[i]); putchar('\n');}A.对数组元素的升序排列B.对数组元素的降序排列C.对数组元素的倒序排列D.对数组元素的随机排列

阅读下列说明和代码,回答问题1和问题2,将解答卸载答题纸的对应栏内。【说明】某一本地口令验证函数(C语言环境,X86_32指令集)包含如下关键代码:某用户的口令保存在字符数组origPassword中,用户输入的口令保存在字符数组userPassword中,如果两个数组中的内容相同则允许进入系统。【问题1】用户在调用gets()函数时输入什么样式的字符串,可以在不知道原始口令“Secret”的情况下绕过该口令验证函数的限制?【问题2】上述代码存在什么类型的安全隐患?请给出消除该安全隐患的思路。

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

试题二 ( 共15 分)阅读以下问题说明、C 程序和函数,将解答填入答题纸的对应栏内。【 问题1 】分析下面的C 程序,指出错误代码(或运行异常代码)所在的行号。【C程序】【 问题2】函数inputArr(int a[], int n)的功能是输入一组整数(输入0或输入的整数个数达到n时结束)存入数组 a,并返回实际输入的整数个数。函数 inputArr 可以成功编译。但测试函数调用inputArr后,发现运行结果不正确。请指出错误所在的代码行号,并在不增加和删除代码行的情况下进行修改,写出修改正确后的完整代码行,使之符合上述设计意图。【C 函数】

试题三(共15分)阅读以下说明和C函数,回答问题 l和问题 2,将解答填入答题纸的对应栏内。【说明】对于具有n个元素的整型数组a,需要进行的处理是删除a中所有的值为 0的数组元素,并将a中所有的非 O元素按照原顺序连续地存储在数组空间的前端。下面分别用函数CompactArr_v1 和CompactArr v2来实现上述处理要求,函数的返回值为非零元素的个数。 函数CompactArr_vl(int a[],int n)的处理思路是:先申请一个与数组a的大小相同的动态数组空间,然后顺序扫描数组a的每一个元素,将遇到的非O元素依次复制到动态数组空间中,最后再将动态数组中的元素传回数组a中。函数CompactArr_v2(int a[],int n)的处理思路是:利用下标i(初值为 0)顺序扫描数组a的每一个元素,下标k(初值为0)表示数组 a中连续存储的非0元素的下标。扫描时,每遇到一个数组元素,i就增 1,而遇到非 0元素并将其前移后k才增 1。【问题1】 (12分)请根据说明中函数CompactArr_v1的处理思路填补空缺(1)~(3),根据CompactArr_v2的处理思路填补空缺(4)。【问题2】(3分)请说明函数CompactArr vl存在的缺点。

试题一(共 15 分)阅读以下说明和流程图,填补流程图中的空缺(1)~(9) ,将解答填入答题纸的对应栏内。[说明]假设数组 A 中的各元素 A(1),A(2) ,…,A(M)已经按从小到大排序(M≥1) ;数组 B 中的各元素 B(1),B(2),…,B(N)也已经按从小到大排序(N≥1) 。执行下面的流程图后, 可以将数组 A 与数组 B 中所有的元素全都存入数组 C 中, 且按从小到大排序 (注意:序列中相同的数全部保留并不计排列顺序) 。例如,设数组 A 中有元素:2,5,6,7,9;数组B 中有元素:2,3,4,7;则数组 C 中将有元素:2,2,3,4,5,6,7,7,9。[流程图]

阅读下列说明和流程图,填补流程图中的空缺(1)~(9),将解答填入答题纸的对应栏内。【说明】假设数组A中的各元素A⑴,A (2),…,A (M)已经按从小到大排序(M>1):数组B中的各元素B(1) , B (2) . B (N)也已经按从小到大排序(N≥1)。执行下面的流程图后,可以将数组A与数组B中所有的元素全都存入数组C中,且按从小到大排序(注意:序列中相同的数全部保留并不计排列顺序)。例如,设数组A中有元素: 2,5,6,7,9;数组B中有元素: 2,3,4,7;则数组C中将有元素: 2,2,3,4,5,6,7,7,9.

阅读以下说明和流程图,填补流程图中的空缺(1)~(9),将解答填入对应栏内。1、【说明】 假设数组A中的各元素A(1),A(2),…,A(M)已经按从小到大排序(M≥1);数组B中的各元素B(1),B(2),…,B(N)也已经按从小到大排序(N≥1)。执行下面的流程图后,可以将数组A与数组B中所有的元素全都存入数组C中,且按从小到大排序 (注意:序列中相同的数全部保留并不计排列顺序)。例如,设数组A中有元素:2,5, 6,7,9;数组B中有元素2,3,4,7:则数组C中将有元素:2,2,3,4,5,6,7, 7, 9。【流程图】

阅读以下说明和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+______; }

阅读以下问题说明、C 程序和函数,将解答填入答题纸的对应栏内。【问题 1】分析下面的C 程序,指出错误代码(或运行异常代码)所在的行号。 【C 程序】【问题 2】函数inputArr(int a[], int n)的功能是输入一组整数(输入0或输入的整数个数达到n时结束)存入数组 a,并返回实际输入的整数个数。函数 inputArr 可以成功编译。但测试函数调用inputArr后,发现运行结果不正确。请指出错误所在的代码行号,并在不增加和删除代码行的情况下进行修改,写出修改正确后的完整代码行,使之符合上述设计意图。【C 函数】

第四题 阅读以下说明、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 (2); else (3); }/*while*/ return -1;}/*biSearch*/【C 函数 2】int biSearch_rec(int r[],int low,int high,int key)//r[low..high]中的元素按非递减顺序排列//用二分查找法在数组r中查找与key相同的元素//若找到则返回该元素在数组r的下标,否则返回-1{ int mid; if((4)) { mid = (low+high)/2 ; if (key ==r[mid]) return mid; else if (key return biSearch_rec((5),key); else return biSearch_rec((6),key); }/*if*/ return -1;}/*biSearch_rec*/ 问题:4.1 (12分)请填充C函数1和C函数2中的空缺,将解答填入答题纸的对应栏内。 问题:4.2 (3分)若有序数组中有n个元素,采用二分查找法查找一个元素时,最多与( )个数组元素进行比较,即可确定查找结果。(7)备选答案:A.[log2(n+1)] B.[n/2] C.n-1 D.n

阅读下列说明和代码,回答问题1和问题2,将解答写在答题纸的对应栏内。 ?【说明】 ?某本地口令验证函数(C语言环境,X86 32指令集)包含如下关键代码;某用户的口令保存在字符数组origPassword中,用户输入的口令保存在字符数 组userPassword中,如果两个数组中的内容相同则允许进入系统。 【问题1】(4分) 用户在调用gets()函数时输入什么样式的字符串,可以在不知道的原始口令“Secret”的情况下绕过该口令验证函数的限制? 【问题2】(4分) 上述代码存在什么类型的安全隐患?请给出消除该安全隐患的思路

如果要将两个升序排列的整型顺序表a中的元素合并到b中(b的空间足够大),合并后表中元素依然升序排列,可以通过多次调用查找函数查找插入位置,再调用()函数来实现插入。

编一个程序,从键盘输入10个实数,存入一个数组,用冒泡法对这个数作升序排序。

编一个程序,定义一个数组,用for语句输入10个实数存入这个数组,然后按逆序重新存放后再输出。

问答题编一个程序,从键盘输入10个实数,存入一个数组,用冒泡法对这个数作升序排序。

问答题编一个程序,定义一个数组,用for语句输入10个实数存入这个数组,然后按逆序重新存放后再输出。