1、海南大学C语言考试大题题库/*-【程序填空】-下面程序接受键盘上的输入,直到按键为止,这些字符被原样输出,但若有连续的一个以上的空格时只输出一个空格,请填(3)空使程序完整。-*/#includevoid main( ) char cx , front=0 ;/*SPACE*/ while (【?】)!=n) if (cx!= ) putchar(cx) ; if (cx= )/*SPACE*/ if (【?】)/*SPACE*/ putchar(【?】); front=cx ; /*-【程序填空】-del函数的作用是删除有序数组a中的指定元素x,n为数组a的元素个数,函数返回删除后的数组a元
2、素个数。主函数调用del删除5,输出删除后的数组,请填(3)空使程序完整。-*/#includevoid main() int del (int a10,int n,int x); int x10=1,2,3,4,5,6,7,8,9,10; int i,y;/*SPACE*/ y=【?】; for(i=0;i=ap&pn)/*SPACE*/ 【?】; for (i=p-1; in; i+)/*SPACE*/ 【?】; return (n-1) ;/*-【程序填空】-下面程序的功能是输入10个数,找出最大值和最小值所在的位置,并把两者对调,然后输出调整后的10个数。请填(4)空使程序完整。-*/
3、#includevoid main() int a10,max,min,i,j,k ; k=0;j=0; for (i=0; i10; i+) scanf(%d,&ai);/*SPACE*/ 【?】=a0; for (i=0; i10; i+) /*SPACE*/ if (aimax) max=ai;【?】; aj=max;/*SPACE*/ 【?】; for (i=0; i10; i+) printf(%d ,ai);/*-【程序填空】-以下程序的功能是计算函数f=x/y+y/z ,请填(3)空使程序完整。-*/# include main ( )/*SPACE*/ 【?】; /*函数原型声
4、明*/ float x,y,z,f ; scanf(%f,%f,%f,&x,&y,&z);/*SPACE*/ f = fun (【?】);/*SPACE*/ f += fun (【?】); printf(f=%f,f);float fun(float a,float b) return (a/b) ;/*-【程序填空】-以下程序是将字符串b的内容连接字符数组a的内容后面,形成新字符串a,请填(2)空使程序完整。-*/#includevoid main ( ) char a40=Great , b =Wall; int i=0,j=0 ; while (ai!=0) i+ ;/*SPACE*/
5、while (【?】) ai=bj ; i+ ; j+ ; /*SPACE*/ 【?】; printf(%sn,a);/*-【程序填空】-下面程序用插入法对数组a进行由小到大的排序,请填(3)空使程序完整。经典算法提示:简单插入排序算法的基本思想使将数组处理n-1次,第k次处理是将第k个元素插入到目前的位置。第k次的元素是这样插入的:在第k次处理时,前面的元素a0,a1,ak-1必定已排成了升序,将ak与ak-1,ak-2,a0逐个比较(由后向前),若有ajak,则ak插入到aj之后,否则ak维持原位不变。-*/#includevoid main ( ) int a10=191,3,6,4,1
6、1,7,25,13,89,10 ; int i,j,k ; for (i=1; i=0 & kaj ) /*SPACE*/ 【?】; j-; /*SPACE*/ 【?】=k ; for (i=0; i10; i+) printf(%d ,ai);/*-【程序填空】-已知程序的功能是输出数组a 中的最大值,及该元素所在的行号和列号,请填(3)空使程序完整。-*/#includevoid main( ) int i,j,row=0,col=0,max;int a43=4,5,6,10,1,23,2,-8,9,9,7,18; max=a00;/*SPACE*/ for(【?】) for(j=0;j3
7、;j+)/*SPACE*/ if(【?】) /*SPACE*/ 【?】; row=i; col=j; printf(%d,%d,%d n,max,row,col);/*-【程序填空】-下面程序接受键盘上的输入,直到按键为止,这些字符被原样输出,但若有连续的一个以上的空格时只输出一个空格,请填(3)空使程序完整。-*/#includevoid main( ) char cx , front=0 ;/*SPACE*/ while (【?】)!=n) if (cx!= ) putchar(cx) ; if (cx= )/*SPACE*/ if (【?】)/*SPACE*/ putchar(【?】);
8、 front=cx ; /*-【程序填空】-以下程序是将字符串b的内容连接字符数组a的内容后面,形成新字符串a,请填(2)空使程序完整。-*/#includevoid main ( ) char a40=Great , b =Wall; int i=0,j=0 ; while (ai!=0) i+ ;/*SPACE*/ while (【?】) ai=bj ; i+ ; j+ ; /*SPACE*/ 【?】; printf(%sn,a);/*-【程序填空】-下面程序用插入法对数组a进行由小到大的排序,请填(3)空使程序完整。经典算法提示:简单插入排序算法的基本思想使将数组处理n-1次,第k次处理
9、是将第k个元素插入到目前的位置。第k次的元素是这样插入的:在第k次处理时,前面的元素a0,a1,ak-1必定已排成了升序,将ak与ak-1,ak-2,a0逐个比较(由后向前),若有ajak,则ak插入到aj之后,否则ak维持原位不变。-*/#includevoid main ( ) int a10=191,3,6,4,11,7,25,13,89,10 ; int i,j,k ; for (i=1; i=0 & kaj ) /*SPACE*/ 【?】; j-; /*SPACE*/ 【?】=k ; for (i=0; i10; i+) printf(%d ,ai);/*-【程序填空】-已知程序的功
10、能是输出数组a 中的最大值,及该元素所在的行号和列号,请填(3)空使程序完整。-*/#includevoid main( ) int i,j,row=0,col=0,max;int a43=4,5,6,10,1,23,2,-8,9,9,7,18; max=a00;/*SPACE*/ for(【?】) for(j=0;j3;j+)/*SPACE*/ if(【?】) /*SPACE*/ 【?】; row=i; col=j; printf(%d,%d,%d n,max,row,col);习题一下面程序可求出矩阵a的主对角线上的元素之和,请填(2)空使程序完整。main ( ) int a33=1,3
11、,5,7,9,11,13,15,17 , sum=0, i, j ;main ( ) Int a33=1,3,5,7,9,11,13,15,17 , sum=0,i,j; for (i=0;i3;i+) for (j=0;j3;j+) if (i=j) sum=sum+aij; printf(sum=%d,sum);for (i=0 ; i3 ; i+)for (j=0 ; j=1;j-) printf(%d,numj);main ( ) int i=0,base,n,j,num20=0;scanf(“%d”,&n);scanf(“%d”,&base);do i+;numi=【1 】;base
12、=【2 】; while (base!=0);for (【3 】) printf(“%d”,numj) ;main ( ) int a10,max,min,i,j,k=0; for (i=0; i10; i+) scanf(%d,&ai); max=min=a0; for (i=0; i10; i+) if (aimax) max=ai; j=i; ak=max; aj=min; for (i=0; i10; i+) printf(%d,ai);下面程序的功能是输入10个数,找出最大值和最小值所在的位置,并把两者对调,然后输出调整后的10个数,请填(3)空使程序完整。main ( ) int
13、a10,max,min,i,j,k ;for (i=0; i10; i+)scanf(“%d”,&ai);max=min=a0;for (i=0; i10; i+) if (aimax) max=ai; 【2 】; 【3 】;for (i=0; i10; i+)printf(“%d”,ai);下面程序用“插入法”对数组a进行由小到大的排序,请填(3)空使程序完整。经典算法提示:简单插入排序算法的基本思想使将数组处理n-1次,第k次处理是将第k个元素插入到目前的位置。第k次的元素是这样插入的:在第k次处理时,前面的元素a0,a1,ak-1必定已排成了升序,将ak与ak-1,ak-2,a0逐个比较
14、(由后向前),若有ajak,则ak插入到aj之后,否则ak维持原位不变。main ( )main ( ) int a10=191,3,6,4,11,7,25,13,89,10 ; int i,j,k ; for (i=1; i=0 & kaj) aj+1=aj; j-; aj+1=k; /a3=a5最小的放后面 for (i=0; i10; i+) printf(%d,ai); int a10=191,3,6,4,11,7,25,13,89,10 ;int i,j,k ; for (i=1; i=0 & kaj ) 【2 】;j-;【3 】=k ;for (i=0; i10; i+) prin
15、tf(“%d”,ai);main ( ) int a3=5,9,10 ; int b5=12,24,26,37,48 ; int c10,i=0,j=0,k=0 ; while (i3 & jbj) ck=bj ; k+ ; j+ ; else ck=ai ; k+ ; i+ ; while (i=5) ck=ai ; i+ ; k+ ; while (i=3 & j5) ck=bj ; j+ ; k+ ; for (i=0; ik; i+) printf(%d ,ci); 下面程序用“两路合并法”把两个已按升序(由小到大)排列的数组合并成一个新的升序数组,请填(3)空使程序完整。main (
16、 ) int a3=5,9,10 ;int b5=12,24,26,37,48 ;int c10,i=0,j=0,k=0 ;while (i3 & j5)if (【1 】) ck=bj ; k+ ; j+ ; else ck=ai ; k+ ; i+ ;while (【2 】) ck=ai ; i+ ; k+ ; while (【3 】) ck=bj ; j+ ; k+ ; for (i=0; ik; i+) printf(“%d ”,ci); main ( ) int a23=4,5,6,1,2,3, b23=0, i,j; for (i=0; i2 ; i+) for (j=0; j3 ; j+ ) printf(%5d,aij); bij+1=aij; printf(n); for (i=0;i2;i+) bi0=ai2; for(i=0;i2;i+) for (j=0; j3 ; j+) printf(%5d,bij); printf(n); 下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的结果保存到b数组中,并
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1