海南大学C语言程序设计考试试题及答案

更新时间:2023-11-19 06:49:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

以下程序是求矩阵a,b的乘积,结果存放在矩阵C中并按矩阵形式输出,请填(3)空使程序完整。 main ( )

{ int a[2][2]={-1,-2,-3,-4}, b[2][3]={2,10,9,4,5,119}; int i,j,k,s=0,c[2][3main ( )

{ int a[2][2]={-1,-2,-3,-4}, b[2][3]={2,10,9,4,5,119}; int i,j,k,s=0,c[2][3]={0}; for (i=0; i<2; i++) for (j=0; j<3; j++) { s=0;

for (k=0; k<2; k++) {s+=a[i][k]*b[k][j]; printf(\ c[i][j]=s; }

for (i=0; i<2; i++)

{for (j=0; j<3; j++) printf(\ printf(\ }

system(\}

]={0};

for (i=0; i<2; i++) for (j=0; j<3; j++) { s=0;

for (k=0; k<2; k++) {s+=a[i][k]*b[k][j]; printf(\;} c[i][j]=s; }

for (i=0; i<2; i++)

{for (j=0; j<3; j++) printf(\ printf(\; }

system(\}

以下程序是将字符串b的内容连接字符数组a的内容后面,形成新字符串a,请填(2)空使程序完整。

main ( )

{ char a[40]=\ int i=0,j=0 ;

while (a[i]!='\\0') i++ ; while (b[j]!='\\0')

{

a[i]=b[j] ; i++ ; j++ ; }

//【2 】;

printf(\ system(\}

del函数的作用是删除有序数组a中的指定元素x,n为数组a的元素个数,函数返回删除后的数组a元素个数,请填(2)空使程序完整。 int del (int a[10],int n,int x) {

int p=0,i ;

while (x>=a[p]&&p

for (i=p-1; i

以下程序的功能是计算函数f=x/y+y/z ,请填(3)空使程序完整。 # 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(float a,float b) { return (a/b) ; }

avg函数的作用是计算数组array的平均值返回,请填(3)空使程序完整。 float avg(float array[10]) {

int i;

float avgr,sum=0; for (i=0;i<10;i++) sum+=array[i]; 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.2f\\n”,z); }

以下程序输出x,y,z三个数中的最小值,请填(2)空使程序完整。 main ( )

{ int x=4,y=5,z=8 ; int u,v;

u = x

下述程序用“碾转相除法”计算两个整数m和n的最大公约数。该方法的基本思想是计算m和n相除的余数,如果余数为0则结束,此时的被除数就是最大公约数。否则,将除数作为新的被除数,余数作为新的除数,继续计算m和n相除的余数,判断是否为0,等等,请填(3)空使程序完整。 main ( ) { int m,n,w;

scanf(“%d,%d”,&m,&n); while (n) {

w=m%n; m=n; n=w; }

printf(“%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;

s+=m; m=m/10; }

if (k>s) printf(“M”,n); } }

下面程序段的功能是计算1000!的末尾有多少个零,请填(1)空使程序完整。 main ( ) {

int i,k,m;

for (k=0,i=5; i<=1000; i+=5) { m = i ;

while (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)空使程序完整。 main ( ) { Int a[3][3]={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+a[i][j]; printf(\}

下面程序将十进制整数base转换成n进制,请填(3)空使程序完整。 main ( )

{

int i=0,base,n,j,num[20]={0}; scanf(\ scanf(\ do { i++;

num[i]=base%n; base=base/n; } while (base!=0); for (j=i;j>0;j--)

printf(\

下面程序的功能是输入10个数,找出最大值和最小值所在的位置,并把两者对调,然后输出调整后的10个数,请填(3)空使程序完整。 main ( ) { int a[10],max,min,i,j,k=0; for (i=0; i<10; i++) scanf(\ max=min=a[0]; for (i=0; i<10; i++) {

if (a[i]max) { max=a[i]; j=i; } }

a[k]=max; a[j]=min;

for (i=0; i<10; i++) printf(\}

下面程序用“插入法”对数组a进行由小到大的排序,请填(3)空使程序完整。 经典算法提示:

简单插入排序算法的基本思想使将数组处理n-1次,第k次处理是将第k个元素插入到目前的位置。第k次的元素是这样插入的:在第k次处理时,前面的元素a[0],a[1],?,a[k-1]必定已排成了升序,将a[k]与a[k-1],a[k-2],?a[0]逐个比较(由后向前),若有a[j]

{ int a[10]={191,3,6,4,11,7,25,13,89,10} ; int i,j,k ;

for (i=1; i<10; i++) {

k = a[i]; //a[5] j = i-1; //a[4]

while (j>=0 && ka[5] a[3]>a[5] {

a[j+1]=a[j]; //a[5]=a[4]? a[4]=a[3] j--;//a[3] a[2] }

a[j+1]=k; //a[3]=a[5]最小的放后面 }

for (i=0; i<10; i++) printf(\}

下面程序用“两路合并法”把两个已按升序(由小到大)排列的数组合并成一个新的升序数组,请填(3)空使程序完整。 main ( ) {

int a[3]={5,9,10} ;

int b[5]={12,24,26,37,48} ; int c[10],i=0,j=0,k=0 ; while (i<3 && j<5) if (a[i]>b[j])

{c[k]=b[j] ; k++ ; j++ ;} else

{c[k]=a[i] ; k++ ; i++ ;} while (i==3 && j<5)

{ c[k]=a[i] ; i++ ; k++ ; } while (i>3 && j<5)

{ c[k]=b[j] ; j++ ; k++ ; }

for (i=0; i

下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的结果保存到b数组中,并按矩阵形式输出a和b,请填(3)空使程序完整。 main ( ) {

int a[2][3]={{4,5,6},{1,2,3}}, b[2][3]={0}, i,j; for (i=0; i<2 ; i++) {

for (j=0; j<3 ; j++ )

{

printf(\ b[i][j+1]=a[i][j]; }

printf(\ }

for (i=0;i<2;i++) b[i][0]=a[i][2]; for(i=0;i<2;i++) {

for (j=0; j<3 ; j++) {

printf(\ // 3 】;

下面程序的功能是在一个字符串中查找一个指定的字符,若字符串中包含该字符则输出该字符在字符串中第一次出现的位置(下标值),否则输出-1,请填(2)空使程序完整。 main ( )

{ char c='a' ; /* 需要查找的字符*/ char t[50] ; int i,j,k; gets(t) ;

i = strlen(t);

for (k=0; k

{ j = k ; break ;} else j=-1; printf(\ system(\}

下面程序用“顺序查找法”查找数组a中是否存在某一关键字,请填(2)空使程序完整。 main ( )

{ int a[10]={25,57,48,371,123,291,18,22,44}; int i=0,x ;

scanf(\

while (a[i]!=x &&i <10) i++ ; if (i<10) printf(\ else printf(\ system(\}

本文来源:https://www.bwwdw.com/article/7qxv.html

Top