2023年海南大学C语言考试大题题库

上传人:回**** 文档编号:166656829 上传时间:2022-11-01 格式:DOCX 页数:25 大小:47.26KB
收藏 版权申诉 举报 下载
2023年海南大学C语言考试大题题库_第1页
第1页 / 共25页
2023年海南大学C语言考试大题题库_第2页
第2页 / 共25页
2023年海南大学C语言考试大题题库_第3页
第3页 / 共25页
资源描述:

《2023年海南大学C语言考试大题题库》由会员分享,可在线阅读,更多相关《2023年海南大学C语言考试大题题库(25页珍藏版)》请在装配图网上搜索。

1、/*-【程序填空】-下面程序接受键盘上的输入,直到按键为止,这些字符被原样输出,但若有连续的一个以上的空格时只输出一个空格,请填(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元素个数。主函数调用del删

2、除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)空使程序完整。-*/#includevoid

3、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*/ 【?】; /*函数原型声明*/ float x,y

4、,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*/ while (【?】) a

5、i=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,11,7,25,13,89,

6、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;j+)/*SPACE*/

7、 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(【?】); front=cx ; /

8、*-【程序填空】-以下程序是将字符串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次解决是将第k个元素插入到目前的

9、位置。第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);/*-【程序填空】-已知程序的功能是输出数组a 中的最大值

10、,及该元素所在的行号和列号,请填(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,5,7,9,11,13,

11、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=【2 】; while

12、(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 a10,max,min,i,

13、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逐个比较(由后向前),若有ajak,

14、则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+) printf(“%d”,ai);ma

15、in ( ) 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 ( ) int a3=5,9,

16、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(%5

17、d,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数组中,并按矩阵形式输出a和b,请填(3)空使程序完整。main ( ) int a234,5,6,1,2,3, b23, i,j;for (i=0; i2 ; i+)for (j=0; j3 ; j+ ) printf(“%5d”,aij);【1 】;printf(“n”)

18、;for (【2 】) bi0=ai2;for (i=0; i2 ; i+) for (j=0; j3 ; j+) printf(“%5d”,bij);【3 】;printf(“n”);下面程序的功能是在一个字符串中查找一个指定的字符,若字符串中包含该字符则输出该字符在字符串中第一次出现的位置(下标值),否则输出1,请填(2)空使程序完整。# include main ( ) char c=a ; /* 需要查找的字符*/ char t50 ; int i,j,k; gets(t) ; i = strlen(t); for (k=0; ki; k+) if (tk=c) j = k ; bre

19、ak ; else j=-1; printf(%d,j); main ( ) char c=a ; /* 需要查找的字符*/char t50 ; int i,j,k;gets(t) ;i = 【1 】;for (k=0; ki; k+)if (【2 】) j = k ; break ;else j=-1;printf(“%d”,j);下面程序用“顺序查找法”查找数组a中是否存在某一关键字,请填(2)空使程序完整。main ( )main ( ) int a10=25,57,48,371,123,291,18,22,44; int i=0,x ; scanf(%d,&x); while (ai!

20、=x &i 10) i+ ; if(i10) printf(found=%dn,i); else printf(cant found!n); int a10=25,57,48,371,123,291,18,22,44;int i=0,x ;scanf(“%d”,&x);while (ai!=x&【1 】) i+ ;if (【2 】) printf(“found=%dn”,i);else printf(“cant found!n”);习题二main ( ) int a22=-1,-2,-3,-4, b23=2,10,9,4,5,119; int i,j,k,s=0,c23=0; for (i=0

21、; i2; i+) for (j=0; j3; j+) s=0; for (k=0; k2; k+) s+=aik*bkj; cij=s; for (i=0; i2; i+) for (j=0; j3; j+) printf(%6d,cij); printf(n); 以下程序是求矩阵a,b的乘积,结果存放在矩阵C中并按矩阵形式输出,请填(3)空使程序完整。main ( ) int a22=-1,-2,-3,-4, b23=2,10,9,4,5,119;int i,j,k,s,c23;for (i=0; i2; i+)for (j=0; j3; j+) 【1 】for (k=0; k2; k+)

22、 s+=【2 】;cij=s;for (i=0; i3; i+)for (j=0; j2; j+) printf(“%6d”,cij);【3 】;main ( ) char a40=Great , b =Wall; int i=0,j=0 ; while (ai!=0) i+ ; while (bj!=0) ai=bj ; i+ ; j+ ; ai+1=0; printf(%sn,a); 以下程序是将字符串b的内容连接字符数组a的内容后面,形成新字符串a,请填(2)空使程序完整。main ( ) char a40=”Great ”, b =”Wall”;int i=0,j=0 ;while (

23、ai!=0) i+ ;while (【1 】) ai=bj ; i+ ; j+ ;【2 】;printf(“%sn”,a);下面函数用“折半查找法”从有10个数的a数组中对关键字m查找,若找到,返回其下标值,否则返回1,请填(2)空使程序完整。经典算法提醒:折半查找法的思绪是先拟定待查元素的范围,将其提成两半,然后比较位于中间点元素的值。假如该待查元素的值大于中间点元素的值,则将范围重新定义为大于中间点元素的范围,反之亦反。int search(int a10,int m)int search(int a10,int m) int x1=0,x2=9,mid ; while (x1=x2) m

24、id = (x1+x2)/2; if (mamid) x1=mid;/ 这是升序,若果是降序则是X2=MID, else return (mid) ; return (-1) ; int x1=0,x2=9,mid ;while (x1=x2) mid = (x1+x2)/2;if (mamid) 【2 】;else return (mid) ;return (-1) ;del函数的作用是删除有序数组a中的指定元素x,n为数组a的元素个数,函数返回删除后的数组a元素个数,请填(2)空使程序完整。int del (int a10,int n,int x) int p=0,i ;int del (

25、int a10,int n,int x) int p=0,i ;while (x=ap&pn) p+;for (i=p-1; i=ap&pn) 【1 】;for (i=p-1; in; i+) 【2 】;return (n-1) ;以下程序的功能是计算函数f=x/y+y/z ,请填(3)空使程序完整。# include # include #include “math.h”;main ( ) float x,y,z,f ;scanf(“%f,%f,%f”,&x,&y,&z);f = fun (x,y);f += fun (y,z);printf(“f=%f”,f);float fun(floa

26、t a,float b) return (a/b) ;【1 】;main ( ) float x,y,z,f ;scanf(“%f,%f,%f”,&x,&y,&z);f = fun (【2 】);f += fun (【3 】);printf(“f=%d”,f);/要改%f输出float fun(float a,float b) return (a/b) ;avg函数的作用是计算数组array的平均值返回,请填(3)空使程序完整。float avg(float array10) int i; float avgr,sum=0; for (i=0;i10;i+) sum+=arrayi; avgr

27、=sum/10 ; return(avgr);float avg(float array10) int i ;float avgr , sum=0 ;for (i=0; 【1 】; i+)sum+=【2 】;avgr = sum / 10 ;【3 】;习题三下列程序的输出结果是16.00,请填(1)空使程序完整。main ( ) int a=9,b=2;float x=6.6 , y=1.1 , z;z=a/2+b*x/y+1/2;printf(“%5.2fn”,z);main ( ) int a=9,b=2;float x=【1】 , y=1.1 , z;z=a/2+b*x/y+1/2;pr

28、intf(“%5.2fn”,z);main ( ) int x=4,y=5,z=8 ;int u,v;u = xy ? x:y;v = uz ? u:z ;printf (“%d”,v);以下程序输出x,y,z三个数中的最小值,请填(2)空使程序完整。main ( ) int x=4,y=5,z=8 ;int u,v;u = xy ? 【1 】 ;v = uz ? 【2 】 ;printf (“%d”,v);下述程序用“碾转相除法”计算两个整数m和n的最大公约数。该方法的基本思想是计算m和n相除的余数,假如余数为0则结束,此时的被除数就是最大公约数。否则,将除数作为新的被除数,余数作为新的除数

29、,继续计算m和n相除的余数,判断是否为0,等等,请填(3)空使程序完整。main ( ) int m,n,w;main ( ) int m,n,w;scanf(“%d,%d”,&m,&n);while (n) w=m%n;m=n;n=w;printf(“%d”,m);scanf(“%d,%d”,&m,&n);while (n) w=【1 】;m=【2 】;n=【3 】;printf(“%d”,m);main ( ) int n,k=1,s=0,m ;for (n=1 ; ns) printf(“%4d”,n);下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,请填(3)空使程序

30、完整。main ( ) int n,k=1,s=0,m ;for (n=1 ; ns) printf(“%4d”,n);main ( )int i,k,m;for (k=0,i=5; i=1000; i+=5) m = i ;while (m%5=0) k+; m=m/5 ; printf(“%d”,k);下面程序段的功能是计算1000!的末尾有多少个零,请填(1)空使程序完整。main ( )int i,k,m;for (k=0,i=5; i=1000; i+=5) m = i ;while (【1 】) k+; m=m/5 ; printf(“%d”,k);下面程序接受键盘上的输入,直到按键为止,这些字符被原样输出,但若有连续的一个以上的空格时只输出一个空格,请填(3)空使程序完整。main ( ) char cx , front=0 ;while (cx!=n) if (cx!= ) putchar(cx) ;if (cx= )if (cx!=)putchar();front=cx ;main ( ) char cx , front=0 ;while (【1 】!=n) if (cx!= ) putchar(cx) ;if (cx= )if (【2 】)putchar(【3 】);front=cx ;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!