- 单选25以下程序段的作用是______。 int a[]={4,0,2,3,1},i,j,t; for (i=1;i<5;i++) {t=a[i];j=i-1; while (j>=0&&t>a[j]) {a[j+1]=a[j];j- -;} a[j+1]=t; }做这题 →
- 填空下面函数用“折半查找法”从有 n 个数按升序排列的 a 数组中对关键字 x 查找,若找到,返回其下标值,否则返回-1,请填空使程序完整。 txt int search(int a[],int n,int x){ int x 1=0,x2=n-1,mid ; while(x1a[mid]) ________; else return ________; } return(-1); }做这题 →
- 填空编写程序将一个数组中的所有偶数存放于另一个数组中,并以每行 10 个数的格式输出原数组和存放偶数的数组元素值。做这题 →
- 单选在一个降序排列的数组中查找一个数 n,使用折半查找法效率低于顺序查找法,则 n 的值()。做这题 →
- 填空函数 fMinNum 的形参 a 所指数组中只存放正整数,函数的功能是查找数组中最小值,并作为函数值返回。请补全代码。 c int fMinNum (int a[],int n){ int i, min; min=a[0]; for(i=n-1; i>0;i--) if(________>a[i]) min=________; return min; }做这题 →
- 综合编写程序,在被调函数中删除一维数组中所有相同的数,使之只剩一个,数组中的数已按由小到大的顺序排列,被调函数返回删除后数组中数据的个数。例如: 原数组:22234456666789910101010 删除后:2345678910 #include <stdio.h> //函数首部,形参是数组,长度 int del(int array[ ], int n){ int i,j; for(i=0;i<n-1;i++){ if(array[i] == array[i+1]){ for(j=____________________;j<n;j++) array[j-1]=array[j]; ________; i--; } } return n; } void main(){ int a[]= {2,2,2,3,4,4,5,6,6,6,6,7,8,9,9,10,10,10,10}; int n= del(a, ______/sizeof(a[0])); int i; for(i=0;i<n;i++) printf("%d\t",a[i]); printf("\n"); system("pause"); }做这题 →
- 综合函数 fun 的功能是:逆置数组元素中的值。例如, n 给出数组中每个数组的个数, 则逆置后依次为:9、8、7、6、5、4、3、2、1。形参 n 给出数组中数据的个数。请在程序的下划处, ) 内容。 include <stdio.h> void fun(int a[], int n){ int i,t; i=0; while(i<____){ t=a[i]; a[i] = a[n-1-____]; a[____] = t; ________; }} main() { int b[9]={1,2,3,4,5,6,7,8,9}, i; printf("\nThe original data :\n"); for (i=0; i<9; i++) printf("%4d ", b[i]); printf("\n"); fun(b, 9); printf("\nThe data after invert :\n"); for (i=0; i<9; i++) printf("%4d ", b[i]); printf("\n"); getchar(); }做这题 →
- 综合程序段功能:冒泡排序(升序) int nums[10] = {4, 5, 2, 10, 7, 1, 8, 3, 6, 9}; int i, j; for (i = 0; i < len - 1; i++) { for (j = 0; j < _______; j++) { if (__________) { ________; } } }做这题 →
- 综合有以下程序 void sort(int_a[],int n){ int i;j,t; for(i=0;i<n-1;i+=2) for(j=i+2;j<n;j+=2) if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;} } main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10); for(i=0;i<10;i++) printf("%d,",aa[i]); printf("\n"); } 其输出结果是 9,2,_,4,_,6,_,8,1,_,。做这题 →
- 综合下列程序为从小到大的冒泡排序,请补齐代码 | #include<stdio.h>#define N 10int main(){ int *a*[N]={10,9,6,7,4,8,1,2,3,5},*i*, *j*, *t*;for(*i*=0; ;*i*++){for(*j*=0; ;*j*++){if( ){ *t*=*a*[*j*];*a*[*j*]=*a*[*j*+1];*a*[*j*+1]=*t*;}}}printf("冒泡排序后的输出结果为:\\n");for(*i*=0;*i*<N;*i*++)printf("%4d",*a*[*i*]);printf("\\n");return 0;} | | --- |做这题 →
- 综合以下程序的功能是用选择法对数组数值排序。下述程序的运行结果为:456789 #include<stdio.h> void main(){ int a[6] = {9,8,7,6,5,4}; int i,j,min,t; int n = sizeof(a)/sizeof(a[0]); for(j=0;j<n-1;j++){ ________; for(i = ________;i<n;i++) if(a[min]>a[i]) ________; t = a[min]; a[min] = a[j]; a[j]=t; } for(i=0;i<n;i++) printf("%d\t",a[i]); printf("\n"); system("pause"); }做这题 →
- 填空若有以下数组 a,数组元素:a[0]~a[9],其值为:9 4 12 8 2 10 7 5 1 3,该数组的元素中,数值最大的元素的下标值是 。做这题 →
- 单选以下程序中函数 sort 的功能是对 a 所指数给数据进行由大到小的排序。 void sort(int a[],int n) {int i,j,t; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[i]<a[j]) {t=a[i];a[i]=a[j];a[j]=t;} } main() {int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&aa[5],4); for(i=0;i<10;i++) printf("%d,",aa[i]); printf("\n"); } 程序运行后的输出结果是____。做这题 →
- 综合函数 fun 的功能是:逆置数组元素中的值。例如, n 给出数组中每个数组的个数, 则逆置后依次为:9、8、7、6、5、4、3、2、1。形参 n 给出数组中数据的个数。请在程序的下划处, ) 内容。 include <stdio.h> void fun(int a[], int n){ int i,t; i=0; while(i<____){ t=a[i]; a[i] = a[n-1-____]; a[____] = t; ________; }} main() { int b[9]={1,2,3,4,5,6,7,8,9}, i; printf("\nThe original data :\n"); for (i=0; i<9; i++) printf("%4d ", b[i]); printf("\n"); fun(b, 9); printf("\nThe data after invert :\n"); for (i=0; i<9; i++) printf("%4d ", b[i]); printf("\n"); getchar(); }做这题 →
- 填空函数 fMinNum 的形参 a 所指数组中只存放正整数,函数的功能是查找数组中最小值,并作为函数值返回。请补全代码。 int fMinNum (int a[],int n){ int i, min; min=a[0]; for(i=n-1; i>0;i--) if(________>a[i]) min=________; return min; }做这题 →
- 填空以下函数返回 a 所指数组中最小值所在的下标值: fun (int *a, int n){ int i,j=0,p; p=j; for (i=j;i<n;i++) if(a[i]<a[p])________; return(p); } 在下划线处应填入的是____。做这题 →
- 单选对于长度为 n 的线性表,在最坏情况下,做这题 →
- 单选对长度为 10 的线性表进行冒泡排序最坏情况下需要比较的次数为____。做这题 →
- 单选对长度为 n 的线性表作快速排序, 在最坏情况下,比较次数为做这题 →
- 判断二分(折半)法查找要求线性表结点按关键值推算。做这题 →
- 判断顺序查找要比二分(折半)查找,在最坏情况无法分析。做这题 →
- 综合函数 orderby 是排序的功能,根据传入的 flag 的值不同 ASC 升序,DESC 是降序。请根据已知代码完成空缺处代码填写。 #include <stdio.h> #define SWAP(A,B) A=A+B;B=A-B;A=A-B #define ARRLLEN(arr) (sizeof(arr)/sizeof(arr[0])) #define DESC 1 //升序 #define ASC 0 //降序 void standby(int a[],int len,int flag); //选择排序 flag :ASC 升序, DESC 降序 void print(int a[], int len);//输出数组元素 int main() { int arr[] = { 789,345,20,34,234,12,0,134,567,56}; int length = ARRLLEN(arr); printf("排序前:\n"); print(arr, length); standby(arr, length,DESC);//降序 printf("排序后:\n"); print(arr, length); return 0; } //实现数据的排序 flag: ASC 升序, DESC 降序 void standby(int a[], int len, int flag):{ int m,i,j; for (i = 0; i < len - 1; i++) { m = i; for (j = i + 1; j < len ; j++) { if (!flag&&(__________) || ______&&(a[j] > a[m])) { m = j; } } if (__________) { ________(a[i], a[m]); } } void print(int a[], int len) { int i; for (i = 0; i < len; i++) { printf("a[%d]=%d ", i, a[i]); } printf("\n"); system("pause"); }做这题 →
- 综合程序段功能:冒泡排序(升序) int nums[10] = {4, 5, 2, 10, 7, 1, 8, 3, 6, 9}; int i, j; for (i = 0; i < len - 1; i++) { for (j = 0; j < _______; j++) { if (__________) { ________; } } } void print(int a[], int len) { int i; for (i = 0; i < len; i++) { printf("a[%d]=%d ", i, a[i]); } printf("\n"); system("pause"); } int i, j, temp; //冒泡排序算法:进行 n-1 轮比较 for(i=0; i<10-1; i++){ //每一轮比较前 n-1-i 个,也就是说,已经排序好的最后 i 个不用比较 for(j=0; j<___________; j++){ if(nums[j] _________ nums[j+1]){ temp = nums[j]; nums[j] = nums[j+1]; _________; } } }做这题 →
- 综合下面函数用“折半查找法”从有 n 个数按升序排列的 a 数组中对关键字 x 查找,若找到,返回其下标值,否则返回 -1,请填空使程序完整。 int search(int a[],int n,int x){ int x 1=0,x2=n-1,mid ; while(x1<=x2){ mid=(x1+x2)/2; if (x<a[mid]) ________; else if (x>a[mid]) ________; else return ________; } return(-1); }做这题 →
- 填空39、用冒泡排序法对任意输入的10个数按照从小到大的顺序进行排序。 #include <stdio.h> int main(){ int i,j,t,a[11]; printf("请输入10个数:\n"); for(i=1;i<11;i++) scanf("%d",____); for(i=1;i<10;i++) for(j=1;j<____j++) if(____) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } printf("排序后的顺序是:\n"); for(i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); return 0; }做这题 →
- 填空用选择排序法对任意10个整数按照由小到大排序。 main() { int a[11],i,j,k,t; printf("Please input 10 numbers:\n"); for(i=1;i<11;i++) scanf("%d",&a[i]); printf("\n"); for(i=1;i<=9;i++) { (7)_; for(j=i+1;_(8)_;j++) if(a[j]>a[k]) k=j; if(k!=i) { t=a[k]; a[k]=a[i]; a[i]=t;} } printf("The sorted numbers:\n"); for(i=1;i<11;i++) printf("%d ",a[i]); }做这题 →
- 填空; for(i=0;i<4;i++) { if(*p2<*p3) p3=p2; (5) ; } min=*p1;*p1=*p3;*p3=min; } 2002试题2做这题 →
- 填空用冒泡法对任意10个整数排序。 main( ) { int a[11],i,j,t; for(i=1;i<11;i++) scanf("%d",&a[i]); printf("\n"); for(i=1; (1) ;i++) for(j=1; (2) ;j++) if(a[j+1]>a[j]) { t=a[j]; (3) ; (4) ;} printf("The sorted numbers:\n"); for(i=1;i<11;i++) printf("%4d",a[i]); printf(“\n”); }做这题 →
- 填空用“起泡法”对输入的10个字符排序后按从小到大的次序输出。 #define N 10 char str[N]; main() { int i,flag; for(flag=1;flag==1;) { scanf("%s",str); flag=0; printf("\n"); } sort(___(4)___); for(i=0;i<N;i++) printf("%c",str[i]); printf("\n"); } sort(char str[N]) { int i,j; char t; for(j=1;j<N;j++) for(i=0;(i<N-j)&&(str[i]!='\0');i++) if(str[i]>str[i+1]) { t=str[i]; ____(5)____; ____(6)____; } }做这题 →
- 填空下面程序的功能是输出数组 s 中最大元素的下标,请填空。 void main( ) { int k, p; int s[ ]={1,-9,7,2,-10,3}; for(p=0,k=p; p<6; p++) if(s[p]>s[k]) ; printf("%d\n" ,k); } k=p做这题 →
- 填空下面程序的功能是输出数组 s 中最大元素的下标。在括号中填上适当的内容,使它能得到正确的结果。 #include<stdio.h> int main() {int k,p,s[]={4,2,1,-10,8,-3}; for(p=0,k=p; p<6;p++) { if(s[p]>s[k]) ____;} printf("%d\n", k); return 0;}做这题 →
- 综合下面的程序是输出数组中最大元素的下标(p表示最大元素的下标)。 void main() { _______ int s[]={1,-3,0,-9,8,5,-20,3}; for(i=0,p=0;i<8;i++) if(s[i]>s[p]) ______; _______ }做这题 →
- 单选以下程序中函数 sort 的功能是对 a 所指数组中的数据进行由大到小的排序。 void sort(int a[],int n) {int i,j,t; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[i]<a[j]) {t=a[i];a[i]=a[j];a[j]=t;} } main() {int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&aa[5],4); for(i=0;i<10;i++) printf("%d,",aa[i]); printf("\n"); }程序运行后的输出结果是做这题 →
- 综合函数fun的功能是:逆置数组元素中的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9. 则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数据的个数。请在程序的下划线处填入正确的内容。 #include <stdio.h> void fun(int a[], int n){ int i,t; i=0; while(i<____){ t=a[i]; a[i] = a[n-1-____]; a[____] = t; ______; }} main() { int b[9]={1,2,3,4,5,6,7,8,9}, i;做这题 →
- 单选对长度为 n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是做这题 →
- 判断对长度为8的线性表进行冒泡排序,最坏情况下需要比较的次数为56。正确错误做这题 →
- 综合函数 orderby是排序的功能,根据传入的 flag的值不同 ASC 升序,DESC 是降序。请根据已知代码完成空缺处代码填写。 #include <stdio.h> #define SWAP(A,B) A=A+B;B=A-B;A=A-B #define ARRLEN(arr) (sizeof(arr)/sizeof(arr[0])) #define DESC 1 //升序 #define ASC 0 //降序 void standby(int a[],int len,int flag); //选择排序 flag :ASC 升序, DESC 降序 void print(int a[], int len);//输出数组元素 int main() { int arr[] = { 789,345,20,34,234,12,0,134,567,56}; int length = ARRLEN(arr); printf("排序前:\n"); print(arr, length); standby(arr, length,DESC);//降序 printf("排序后:\n"); print(arr, length); return 0; } /* 实现数据的排序 flag: ASC 升序, DESC 降序 */ void standby(int a[], int len, int flag) { int m,i,j; for (i = 0; i < len - 1; i++) { m = i; for (j = i + 1; j < len ; j++) { if (!flag&&(__________) || ______&&(a[j] > a[m])) { m = j; } } if (__________) { ________(a[i], a[m]); } } } void print(int a[], int len) { int i; for (i = 0; i < len; i++) { printf("a[%d]=%d ", i, a[i]); } printf("\n"); system("pause"); }做这题 →
- 综合如下代码中bubble函数是冒泡排序实现代码,需要实现降序。冒泡的排序算法原理: 如果排序是升序,则从前面往后开始,依此比较相邻的两个元素的大小,较大的下沉,较小的上升。第一轮过后,最大的元素就放在最后一位了。第二轮过后,次大的元素排序到倒第二个,以此类推。 如果排序是降序,则从前面往后开始,依此比较相邻的两个元素的大小,较小的下沉,较大的上升。第一轮过后,最小的元素就放在最后一位了。第二轮过后,次小的元素就放在倒数第二位了,之后依此类推。 #include <stdio.h> #define SWAP(A,B) A=A+B;B=A-B;A=A-B #define ARRLEN(arr) (sizeof(arr)/sizeof(arr[0])) void bubble(int a[],int len);// 冒泡排序 void print(int a[], int len);//输出数组元素 int main() { int arr[] = { 789,345,20,34,234,12,0,134,567,56}; int length = ARRLEN(arr); printf("排序前:\n"); print(arr, length); bubble(arr, length); // 冒泡排序 printf("排序后:\n"); print(arr, length); return 0; } /* 实现数据的排序 (降序) */ void bubble(int a[],int len) { int i, j; for (i = 0; i < len - 1; i++) { for (j = 0; j < _______; j++) { if (__________) { ________; } } } } void print(int a[], int len) { int i; for (i = 0; i < len; i++) { printf("a[%d]=%d ", i, a[i]); } printf("\n"); system("pause"); }做这题 →
- 综合二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与×做比较,如果x=a[n/2],则找到x,算法中止;如果 x<a[n/2],则只要在数组 a的左半部分继续搜索 x,如果 x>a[n/2],则只要在数组 a 的右半部搜索x。请补全以下代码。 #include <stdio.h> #include <stdlib.h> //二分查找,找不到返回-1,找到了返回元素值。 int binary_search(int list[],int len,int target){ int low = 0; int hight = len-1; int middle; while(low <= hight){ middle = ________; if(__________) printf("已找到该值,数组下标 为:%d\n",middle); return list[middle]; }else if(list[middle] > target){ hight = middle -1; }else if(list[middle] < target){ low = ________; } } printf("未找到该值"); return -1; } int main(){ int arr[] = {1,2,3,5,7,9,12,14,18,19,20}; int b = binary_search(arr,sizeof(arr)/sizeof(arr[0]),1); printf("要找的元素=%d\n",b); system("pause"); return 0; }做这题 →
- 填空下面程序用“快速顺序查找法”查找数组a中是否存在某一关键字。请分析程序填空。 main() {int a[9]={11,23,41,27,42,64,82,59}; int i=0,x; scanf("%d",&x); 【1】; while(a[i]!=x) i++; if(【2】) printf("Found! The index is:%d\n",i); else printf("Can't found!\n"); }做这题 →
- 综合从键盘输入n个数存放在数组中,将最小值与第一个数交换,输出交换后的n个数。 #include <stdio.h> int main(void){ int i,n,iIndex,temp; int a[10]; printf("Enter n: "); scanf("%d", &n); printf("Enter %d integers:\n "); for(i=0;i<n;i++) scanf("%d", &a[i]); iIndex=0; for(i=1;i<n;i++){ if(a[i]<a[iIndex]) iIndex=i; } temp=a[0];a[0]=a[iIndex];a[iIndex]=temp; for(i=0;i<n;i++) printf("%5d", a[i]); printf("\n"); return 0; } 第二种解法 利用函数 #include<stdio.h> int comp(int arry[], int n) { int i,index,temp; printf("为数组赋值:\n"); for(i=0;i<n;i++) { scanf("%d",&arry[i]); } for(i=1,index=0;i<=n-1;i++) { if(arry[i]<arry[index]) { index=i; } } temp=arry[0];arry[0]=arry[index];arry[index]=temp; for(i=0;i<n;i++) { printf("%d ",arry[i]); } return 0; } main() { int n; int a[10]; printf("为n赋值:\n"); scanf("%d",&n); comp(a,n);}做这题 →
- 综合编写 C 语言程序,功能是: 程序实现从 10 个数中找出最大值和最小值。含图做这题 →
- 综合从键盘输入 n 个数存放在数组中,将最小值与第一个数交换,输出交换后的 n 个数。做这题 →
- 综合有以下程序 void sort(int_a[],int n){ int i;j,t; for(i=0;i<n-1;i+=2) for(j=i+2;j<n;j+=2) if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;} } main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10); for(i=0;i<10;i++) printf("%d,",aa[i]); printf("\n"); } 其输出结果是 9,2,_,4,_,6,_,8,1,_,。做这题 →