海南大学C语言程序设计考试试题及答案_第1页
海南大学C语言程序设计考试试题及答案_第2页
海南大学C语言程序设计考试试题及答案_第3页
海南大学C语言程序设计考试试题及答案_第4页
海南大学C语言程序设计考试试题及答案_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、for (i=0; i<2; i+)for (j=0; j<3; j+)printf(m,cij);system(pause);=0;for (i=0; i<2; i+)for (j=0; j<3; j+)s=0;for (k=0; k<2; k+) s+= aik*bkj; printf(%d %d %dn,aik,bkj,s);cij=s;for (i=0; i<2; i+)for (j=0; j<3; j+) printf(m,cij););system(pause);以下程序是将字符串b的内容连接字符数组a的内容后面,形成新字符串a,请填(2)

3、空使程序完整。main ( ) char a40=Great , b =Wall;int i=0,j=0 ;while ( ai!='0') i+ ;while (bj!='0')ai=bj ; i+ ; j+ ;/【 2 】 ;printf(%sn,a);system(pause);del 函数的作用是删除有序数组a 中的指定元素x, n 为数组 a 的元素个数,函数返回删除后的数组 a 元素个数,请填(2) 空使程序完整。int del (int a10,int n,int x)int p=0,i ;while (x>=ap&&p<

4、;n)p+;for (i=p-1; i<n; i+)ai=ai+1;return (n-1) ;/ 只能删除升序序列以下程序的功能是计算函数f=x/y+y/z , 请填 (3) 空使程序完整。# include <stdio.h>#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(float a,float b) return (

5、a/b) ;avg 函数的作用是计算数组array 的平均值返回,请填(3) 空使程序完整。float avg(float array10)int i;float avgr,sum=0;for (i=0;i<10 ;i+)sum+=arrayi;avgr=sum/10 ;return(avgr) ;下列程序的输出结果是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);以下程序输出x,y,z 三个数中的最小值,请填(2)空使程序完整。main

6、 ( ) int x=4,y=5,z=8 ;int u,v;u = x<y ? x:y ;v = u<z ? u:z ;printf (“ %d” ,v);下述程序用“碾转相除法”计算两个整数m和n的最大公约数。该方法的基本思想是计算m和n相除的余数,如果余数为0 则结束,此时的被除数就是最大公约数。否则,将除数作为新的被除数,余数作为新的除数,继续计算m和n相除的余数,判断是否为0,等等,请填(3)空使程序完整。main ( ) int m,n,w;scanf( “ %d,%d” ,&m,&n); while (n)w=m%;nm=n;n=w; printf( “

7、 %d” ,m);下面程序的功能是输出1 至 100 之间每位数的乘积大于每位数的和的数,请填(3)空使程序完整。main ( ) int n,k=1,s=0,m ; for (n=1 ; n<=100 ; n+) k=1 ; s=0 ;m=n;while (m>1)k*=m_x0010_;s+=m_x0010_;m=m/10;if (k>s) printf(“ %4d” ,n);下面程序段的功能是计算1000!的末尾有多少个零,请填(1) 空使程序完整。main ( )int i,k,m;for (k=0,i=5; i<=1000; i+=5) m = i ;whil

8、e (m%5) 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 ;下面程序可求出矩阵a 的主对角线上的元素之和,请填(2) 空

9、使程序完整。main ( )Int a33=1,3,5,7,9,11,13,15,17 , sum=0,i,j;for (i=0;i<3;i+)for (j=0;j<3;j+)if (i=j)sum=sum+ aij ;printf(sum=%d,sum);下面程序将十进制整数base 转换成 n 进制,请填(3) 空使程序完整。main ( )int i=0,base,n,j,num20=0;scanf(%d,&n);scanf(%d,&base);do i+;numi= base%n ; base=base/n; while (base!=0);for ( j=

10、i;j>0;j -)printf(%d,numj);下面程序的功能是输入10 个数,找出最大值和最小值所在的位置,并把两者对调,然后输出调整后的 10 个数,请填(3) 空使程序完整。main ( )int a10,max,min,i,j,k=0;for (i=0; i<10; i+) scanf(%d,&ai);max=min=a0;for (i=0; i<10; i+)if (ai<min) min=ai; k=i ; if (ai>max) max=ai; j=i ; ak=max;aj=min;for (i=0; i<10; i+) prin

11、tf(%d,ai);下面程序用“插入法”对数组 a 进行由小到大的排序,请填(3) 空使程序完整。经典算法提示:简单插入排序算法的基本思想使将数组处理n-1 次, 第 k 次处理是将第k 个元素插入到目前的位置。第k次的元素是这样插入的:在第k次处理时,前面的元素 a0,a1,ak-1必定已排成了升序,将ak与ak-1,ak-2,a0逐个比较(由后向前),若有aj<ak, 则ak插入到 aj 之后,否则ak 维持原位不变。main ( ) int a10=191,3,6,4,11,7,25,13,89,10 ;int i,j,k ;for (i=1; i<10; i+)k = ai

12、;/a5 /a4i-1; j =while (j>=0 && k<aj) /a4>a5 a3>a5 /a5=a4? a4=a3 aj+1=aj;j-;/a3 a2=k; /a3=a5 最小的放后面aj+1for (i=0; i<10; i+) printf(%d,ai);排列的数组合并成一个新的升序数(由小到大)下面程序用“两路合并法”把两个已按升序 空使程序完整。组,请填(3) main ( )int a3=5,9,10 ;int b5=12,24,26,37,48 ;int c10,i=0,j=0,k=0 ;while (i<3 &

13、;& j<5) if ( ai>bjck=bj ; k+ ; j+ ;elseck=ai ; k+ ; i+ ;i=3 && j<5 ) while ( ck=ai ; i+ ; k+ ; )while ( i>3 && j<5 ck=bj ; j+ ; k+ ; for (i=0; i<k; i+) printf(%d ,ci);system(pause);移后的结最右一列换到最左一列,下面程序的功能是将二维数组a 中每个元素向右移一列,空使程序完整。请填(3)b 数组中,并按矩阵形式输出a 和 b, 果保存到mai

14、n ( )2,3, b23=0, i,j;for (i=0; i<2 ; i+)for (j=0; j<3 ; j+ )printf(,aij);bij+1=aij;);for ( i=0;i<2;i+ ) bi0=ai2;for(i=0;i<2;i+)for (j=0; j<3 ; j+)printf(,bij);/ 3 】 ;下面程序的功能是在一个字符串中查找一个指定的字符,若字符串中包含该字符则输出该字符在字符串中第一次出现的位置(下标值),否则输出1,请填(2) 空使程序完整。main ( ) char c='a' ; /* 需要查找的字符*/char t50 ;int i,j,k;gets(t) ;i = strlen(t);for (k=0; k<i; k+)if (tk -1=c) j = k ; break ;else j=-1;printf(%d,j);system(pause);下面程序用“

温馨提示

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

评论

0/150

提交评论