海南大学C语言考试大题试题库Word文件下载.docx

上传人:b****5 文档编号:19361110 上传时间:2023-01-05 格式:DOCX 页数:26 大小:153.28KB
下载 相关 举报
海南大学C语言考试大题试题库Word文件下载.docx_第1页
第1页 / 共26页
海南大学C语言考试大题试题库Word文件下载.docx_第2页
第2页 / 共26页
海南大学C语言考试大题试题库Word文件下载.docx_第3页
第3页 / 共26页
海南大学C语言考试大题试题库Word文件下载.docx_第4页
第4页 / 共26页
海南大学C语言考试大题试题库Word文件下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

海南大学C语言考试大题试题库Word文件下载.docx

《海南大学C语言考试大题试题库Word文件下载.docx》由会员分享,可在线阅读,更多相关《海南大学C语言考试大题试题库Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。

海南大学C语言考试大题试题库Word文件下载.docx

printf("

%d”,x[i]);

}

intdel(inta[10],intn,intx){intp=0,i;

while(x>

=a[p]&

&

p<

n)

【?

for(i=p-1;

i<

n;

i++)

return(n-1);

下面程序的功能是输入10个数,找出最大值和最小值所在的位置,

并把两者对调,然后输出调整后的10个数。

请填(4)空使程序完整。

voidmain()

{inta[10],max,min,i,j,k;

k=O;

j=O;

for(i=0;

10;

seanf("

%d"

&

a[i]);

】=a[0];

a[j]=max;

【?

%d”,a[i]);

以下程序的功能是计算函数f=x/y+y/z,请填⑶空使程序完整。

#inelude<

main()

{【?

/*函数原型声明*/

floatx,y,z,f;

scanf("

%f,%f,%f"

&

x,&

y,&

z);

f=fun(【?

f+=fun(【?

printf("

f=%f'

f);

floatfun(floata,floatb)

return(a/b);

以下程序是将字符串b的内容连接字符数组a的内容后面,形成新

字符串a,请填

(2)空使程序完整。

voidmain()

{chara[40]="

Great"

b[]="

Wall"

inti=0,j=0;

while(a[i]!

)i++;

while(【?

】){

a[i]=b[j];

i++;

j++;

%s\n"

a);

下面程序用”插入法"

对数组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]<

a[k],则a[k]插入到a[j]之后,否则a[k]维持原位不变。

{inta[10]={191,3,6,4,11,7,25,13,89,10};

inti,j,k;

for(i=1;

i++){

k=a[i];

*********SPACE*********

while(j>

=0&

k<

a[j]){

j--;

】=k;

i++)printf("

%d"

a[i]);

已知程序的功能是输出数组a中的最大值,及该元素所在的行号

和列号,请填(3)空使程序完整。

voidmain(){inti,j,row=0,col=0,max;

max=a[O][O];

for(【?

for(j=0;

j<

3;

j++)

if(【?

row=i;

col=j;

%d,%d,%d\n"

max,row,col);

F面程序接受键盘上的输入,直到按/键为止,这些字符被原样

/*

j=【?

a[j]){

{inti,j,row=0,col=0,max;

inta[4][3]={{4,5,6},{10,1,23},{2,-8,9},{9,7,18}};

max=a[0][0];

习题一

F面程序可求出矩阵a的主对角线上的元素之和,请填

(2)空使程序完整。

main()

Inta[3][3]={1,3,5,7,9,11,13,15,17}sum=0,i,j;

for(j=0;

if(i==j)

sum=sum+a[i][j];

sum=%d"

sum);

{inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

for(i=0;

3;

for(j=0;

j<

j++)

if(【1】)

sum=sum+【2】;

printf(“sum=%d”,sum);

base转换成n进制,请填⑶空使程序完整。

下面程序将十进制整数

{inti=O,base,n,j,num[20]={0};

scanf(“%d”,&

n);

scanf(“%d”,&

base);

do{

i++;

num[i]=

【1]

inti=0,base,n,j,num[20]={0};

scanf("

do{

num[i]=base%n;

base=base/n;

}while(base!

=0);

for(j=i;

j>

=1;

j--)

num[j]);

base=【2】

for(【3])

printf(“%d”,num[j]);

下面程序的功能是输入10个数,找出最大值和最小值所在的

位置,并把两者对调,然后输出调整后的10个数,请填(3)

scanf(“%d”,&

max=min=a[0];

【1】;

【2】;

if(a[i]<

min){min=a[i];

if(a[i]>

max){max=a[i];

【3】;

printf(“%d”,a[i]);

F面程序用“插入法”对数组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]<

j=i-1;

while(j>

a[j])

a[j+1]=a[j];

a[j+1]=k;

〃a[3]=a[5]最小的放后面

j--;

【3】=k;

i++)printf(“%d”,a[i]);

下面程序用"

两路合并法”把两个已按升序(由小到大)组,请填(3)空使程序完整。

inta[3]={5,9,10};

intb[5]={12,24,26,37,48};

intc[10],i=0,j=0,k=0;

排列的数组合并成一个新的升序数

while(i<

3&

5)

if(a[i]>

b[j])

{c[k]=b[j];

k++;

else

{c[k]=a[i];

}while(i<

j>

=5)

{c[k]=a[i];

}while(i>

=3&

{c[k]=b[j];

}

k;

i++)printf("

c[i]);

while(i<

if(【1】){

c[k]=b[j];

}else{

c[k]=a[i];

while(【2]){

while(【3]){

i++)printf(“%d”,c[i]);

F面程序的功能是将二维数组

a中每个元素向右移

一列,最右一列换到最左一列,移后的结果保存到

b数组中,并按矩阵形式输出序完整。

a和b,请填⑶空使程

{inta[2][3]{{4,5,6},{1,2,3}},b[2][3],i,j;

2;

j++){

printf(“%5d”,a[i][j]);

inta[2][3]={{4,5,6},{1,2,3}},for(i=0;

j++)

%5d"

a[i][j]);

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

\n"

);

2;

i++)b[i][0]=a[i][2];

b[i][j]);

b[2][3]={0},i,j;

\n”);

printf(“\n”);

for(【2])b[i][0]=a[i][2];

j++){

printf(“%5d”,b[i][j]);

【3];

printf(“\n”);

下面程序的功能是在一个字符串中查找一个指定的字符,若字符串中包含该字符则输出该字

string.h>

{charc='

a'

;

/*需要查找的字符*/

chart[50];

符在字符串中第一次出现的位置(下标值),否则输出一1,请填

(2)空使程序完整。

{charc='

a'

/*需要查找的

字符*/

inti,j,k;

gets(t);

i=strlen(t);

for(k=0;

i;

k++)

if(t[k]==c)

{j=k;

break;

elsej=-1;

i=【1】;

if(【2】)

printf(“%d”,j);

F面程序用“顺序查找法”查找数组a中是否存在某一关键字,请填

(2)空使程序完整。

int

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

inti=0,x;

scanf("

,&

x);

=x&

i

i++;

if(i<

10)printf("

found=%d\in"

i);

can'

tfound!

{inta[10]={25,57,48,371,123,291,18,22,44};

scanf(“%d”,&

x);

=x&

【1】)i++;

if(【2】)printf(“found=%d\n”,i);

elseprintf(“can'

tfound!

\n”);

习题二

以下程序是求矩阵a,b的乘积,结果存放在矩阵

阵形式输出,请填(3)空使程序完整。

{inta[2][2]={-1,-2,-3,-4},b[2][3]={2,10,9,4,5,119};

inti,j,k,s,c[2][3];

k++)s+=【2】

c[i][j]=s;

{for(j=0;

printf(“%6d”,c[i][j]);

inti=0,j=0;

='

\0'

)i++;

while(【1】){

printf(“%s\n”,a);

下面函数用“折半查找法”从有10个数的a数组中对关键字m查找,若找到,返回其下

标值,否则返回—1,请填

(2)空使程序完整。

折半查找法的思路是先确定待查元素的范围,将其分成两半,然后比较位于中间点元素的值。

之亦反。

intsearch(inta[10],intm)

{intx1=0,x2=9,mid;

while(x1<

=x2){

mid=(x1+x2)/2;

if(m<

a[mid])【1】

elseif(m>

a[mid])【2]

elsereturn(mid);

return(-1);

=x2)

a[mid])x2=mid;

〃则是X仁MID

a[mid])x1=mid;

〃是降序则是X2=MID

这是升序,若果是降序

这是升序,若果

del函数的作用是删除有序数组a中的指定元素x,n为数组a的元素个数,函数返回删除

后的数组a元素个数,请填

(2)空使程序完整。

intdel(inta[10],intn,intx)

{intp=0,i;

=a[p]&

n)【1】

i++)【2];

intp=0,i;

n)p++;

i++)a[i]=a[i+1];

return(n-1);

}//只能删除升序序列

{floatx,y,z,f;

scanf(“%f,%f,%f”,&

y,&

f=fun(【2】);

f+=fun(【3】);

printf(“f=%d”,f);

}//要改%f输出

{return(a/b);

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

floatavg(floatarray[10]){

inti;

floatavgr,sum=0;

i++)sum+=array[i];

avgr=sum/10;

return(avgr);

floatavg(floatarray[10])

{inti;

floatavgr,sum=0;

【1】;

sum+=【2】

avgr=sum/10;

F列程序的输出结果是16.00,请填

(1)空使程序完整。

{inta=9,b=2;

floatx=【1】,y=1.1,乙

z=a/2+b*x/y+1/2;

printf(“%5.2f\n”,z);

inta=9,b=2;

floatx=6.6,y=1.1,乙z=a/2+b*x/y+1/2;

printf(“%5.2f\n”,z);

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

{intx=4,y=5,z=8;

intu,v;

u=x<

y

【1】

v=u<

z

【2】

printf(“%d”,v);

下述程序用“碾转相除法”计算两个整数m和n的最大公约数。

该方法的基本思想是计算

m和n相除的余数,如果余数为0则结束,此时的被除数就是最大公约数。

否则,将除数作为新的被除数,余数作为新的除数,继续计算m和n相除的余数,判断是否为0,等等,请填(3)空使程序完整。

{intm,n,w;

下面程序的功能是输出1至1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1