C语言上机实训.docx

上传人:b****8 文档编号:10338814 上传时间:2023-02-10 格式:DOCX 页数:22 大小:18.14KB
下载 相关 举报
C语言上机实训.docx_第1页
第1页 / 共22页
C语言上机实训.docx_第2页
第2页 / 共22页
C语言上机实训.docx_第3页
第3页 / 共22页
C语言上机实训.docx_第4页
第4页 / 共22页
C语言上机实训.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C语言上机实训.docx

《C语言上机实训.docx》由会员分享,可在线阅读,更多相关《C语言上机实训.docx(22页珍藏版)》请在冰豆网上搜索。

C语言上机实训.docx

C语言上机实训

C语言上机实训

试题2

所属语言:

C语言

试卷方案:

C语言上机实训

试卷总分:

100分

共有题型:

3种

 

一、程序填空共1题(共计30分)

第1题(30.0分)题号:

470

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

从两个数组中分别提取任意元素x[i],y[j],问|x[i]-y[j]|

的最小值是多少?

-------------------------------------------------------*/

#include

#include

/***********SPACE***********/

#definemin(x,y)(【?

】)x

x:

y

intmin_distance(intx[],inty[],intm,intn)

{

intminimum=INT_MAX;

intindex_x=0,index_y=0;

while(index_x

/***********SPACE***********/

if(【?

】)x[index_x]>=y[index_y]

{

minimum=min(minimum,x[index_x]-y[index_y]);

index_y++;

}

else

{

minimum=min(minimum,y[index_y]-x[index_x]);

/***********SPACE***********/

【?

】index_x++

;

}

returnminimum;

}

 

#include

voidmain(void)

{

intx[]={1,3,7,11,18};

intm=sizeof(x)/sizeof(int);

inty[]={4,5,8,13,22};

intn=sizeof(y)/sizeof(int);

inti,min_distance(int[],int[],int,int);

printf("\nComputeMinimumDistanceBetweenTwoSortedArrays");

printf("\n==================================================");

printf("\n\nGivenArray#1:

");

for(i=0;i

printf("%5d",x[i]);

printf("\n\nGivenArray#2:

");

for(i=0;i

printf("%5d",y[i]);

printf("\n\nMinimumDistance=%d",min_distance(x,y,m,n));

}

答案:

=======(答案1)=======

x

x:

y

=========或=========

y>x?

x:

y

=======(答案2)=======

x[index_x]>=y[index_y]

=========或=========

y[index_y]<=x[index_x]

=======(答案3)=======

index_x++

=========或=========

index_x=index_x+1

=========或=========

++index_x

 

二、程序改错共1题(共计30分)

第1题(30.0分)题号:

26

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

实现3行3列矩阵的转置,即行列互换。

------------------------------------------------------*/

#include

fun(inta[3][3],intn)

{

inti,j,t;

for(i=0;i

for(j=0;j

/**********FOUND**********/

scanf("%d",&a[i][j]);

for(i=0;i

{

for(j=0;j

printf("%4d",a[i][j]);

printf("\n");

}

for(i=0;i

/**********FOUND**********/

for(j=0;j

{

/**********FOUND**********/

a[i][j]=t;

a[i][j]=a[j][i];

/**********FOUND**********/

t=a[j][i];

}

for(i=0;i

{

for(j=0;j

printf("%4d",a[i][j]);

printf("\n");

}

}

main()

{

intb[3][3];

fun(b,3);

}

答案:

=======(答案1)=======

scanf("%d",&a[i][j]);

=========或=========

scanf("%d",(*(a+i)+j));

=======(答案2)=======

for(j=0;j

=========或=========

for(j=0;i>j;j++)

=========或=========

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

=========或=========

for(j=0;i>=j;j++)

=========或=========

for(j=i+1;j

=========或=========

for(j=i;j

=========或=========

for(j=0;j<=i-1;j++)

=========或=========

for(j=0;i-1>=j;j++)

=========或=========

for(j=i+1;j<=n-1;j++)

=========或=========

for(j=i;j<=n-i;j++)

=======(答案3)=======

t=a[i][j];

=======(答案4)=======

a[j][i]=t;

 

三、程序设计共1题(共计40分)

第1题(40.0分)题号:

341

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

删除所有值为y的元素。

数组元素中的值和y的值由

主函数通过键盘输入。

------------------------------------------------*/

#include

#include

#include

#defineM20

voidwwjt();

voidfun(intbb[],int*n,inty)

{

/**********Program**********/

inti,j;

for(i=0;i<*n;)

{

if(bb[i]==y)

{for(j=i;j<*n;j++)

bb[j]=bb[j+1];

*n=*n-1;

}

else

i++;

}

/**********End**********/

}

main()

{

intaa[M],n,y,k;

printf("\nPleaseentern:

");scanf("%d",&n);

printf("\nEnter%dpositivenumber:

\n",n);

for(k=0;k

printf("Theoriginaldatais:

\n");

for(k=0;k

printf("\nEnteranumbertodeletede:

");scanf("%d",&y);

fun(aa,&n,y);

printf("Thedataafterdeleted%d:

\n",y);

for(k=0;k

printf("\n");

wwjt();

}

voidwwjt()

{

FILE*IN,*OUT;

intn;

inti[10];

into;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFILEError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFILEError");

}

for(n=0;n<10;n++)

{

fscanf(IN,"%d",&i[n]);

}

fun(i,&n,3);

for(o=0;o

{

fprintf(OUT,"%d\n",i[o]);

}

fclose(IN);

fclose(OUT);

}

答案:

----------------------

inti,j;

for(i=0;i<*n;)

{

if(bb[i]==y)

{for(j=i;j<*n;j++)

bb[j]=bb[j+1];

*n=*n-1;

}

else

i++;

}

----------------------

 

试题1

所属语言:

C语言

试卷方案:

C语言上机实训

试卷总分:

100分

共有题型:

3种

 

一、程序填空共1题(共计30分)

第1题(30.0分)题号:

417

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

利用全局变量计算长方体的体积及三个面的面积。

-------------------------------------------------------*/

#include

ints1,s2,s3;

intvs(inta,intb,intc)

{

intv;

/***********SPACE***********/

v=【?

】;

s1=a*b;

/***********SPACE***********/

s2=【?

】;

s3=a*c;

returnv;

}

main()

{

intv,l,w,h;

printf("\ninputlength,widthandheight:

");

/***********SPACE***********/

scanf("%d%d%d",【?

】,&w,&h);

/***********SPACE***********/

v=【?

】;

printf("v=%ds1=%ds2=%ds3=%d\n",v,s1,s2,s3);

}

答案:

=======(答案1)=======

a*b*c

=========或=========

a*b*c

=======(答案2)=======

b*c

=========或=========

b*c

=======(答案3)=======

&l

=======(答案4)=======

vs(l,w,h)

=========或=========

vs(l,w,h)

 

二、程序改错共1题(共计30分)

第1题(30.0分)题号:

392

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

统计出若干个学生的平均成绩,最低分以及得最低分的人数。

例如:

输入10名学生的成绩分别为92,87,68,56,92,84,67,

75,92,66,则输出平均成绩为77.9,最低高分为56,得最

低分的人数为1人。

------------------------------------------------------*/

#include

floatMin=0;

intJ=0;

floatfun(floatarray[],intn)

{

inti;floatsum=0,ave;

Min=array[0];

for(i=0;i

{

if(Min>array[i])Min=array[i];

/**********FOUND**********/

sum=+array[i];

}

/**********FOUND**********/

ave=sum\n;

for(i=0;i

/**********FOUND**********/

if(array[i]=Min)J++;

return(ave);

}

main()

{

floata[10],ave;

inti=0;

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

scanf("%f",&a[i]);

ave=fun(a,10);

printf("ave=%f\n",ave);

printf("min=%f\n",Min);

printf("Total:

%d\n",J);

}

答案:

=======(答案1)=======

sum+=array[i];

=========或=========

sum=sum+array[i];

=======(答案2)=======

ave=sum/n;

=======(答案3)=======

if(array[i]==Min)J++;

 

三、程序设计共1题(共计40分)

第1题(40.0分)题号:

390

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

编写函数求1~100中奇数的平方和。

结果为166650.000000。

------------------------------------------------*/

#include

voidwwjt();

floatsum(intn)

{

/**********Program**********/

/**********End**********/

}

main()

{

printf("sum=%f\n",sum(100));

wwjt();

}

voidwwjt()

{

FILE*IN,*OUT;

inti;

floato;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFILEError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFILEError");

}

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

{

fscanf(IN,"%d",&i);

o=sum(i);

fprintf(OUT,"%f\n",o);

}

fclose(IN);

fclose(OUT);

}

答案:

----------------------

floats=0;

inti;

for(i=1;i<=n;i=i+2)

s=s+i*i;

return(s);

----------------------

 

试题3

所属语言:

C语言

试卷方案:

C语言上机实训

试卷总分:

100分

共有题型:

3种

 

一、程序填空共1题(共计30分)

第1题(30.0分)题号:

410

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

有n个整数,使其前面各数顺序向后移m个位置,最后m个数

变成最前面的m个数

-------------------------------------------------------*/

#include

 

/***********SPACE***********/

move(【?

】)

intn,m,array[20];

{

int*p,array_end;

/***********SPACE***********/

array_end=*(【?

】);

for(p=array+n-1;p>array;p--)

/***********SPACE***********/

*p=*(【?

】);

*array=array_end;

m--;

if(m>0)move(array,n,m);

}

main()

{

intnumber[20],n,m,i;

printf("thetotalnumbersis:

");

scanf("%d",&n);

printf("backm:

");

scanf("%d",&m);

for(i=0;i

scanf("%d,",&number[i]);

scanf("%d",&number[n-1]);

/***********SPACE***********/

move(【?

】);

for(i=0;i

printf("%d,",number[i]);

printf("%d",number[n-1]);

}

 

答案:

=======(答案1)=======

array,n,m

=======(答案2)=======

array+n-1

=========或=========

array+n-1

=======(答案3)=======

p-1

=========或=========

p-1

=======(答案4)=======

number,n,m

 

二、程序改错共1题(共计30分)

第1题(30.0分)题号:

413

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

读取7个数(1-50)的整数值,每读取一个值,程序打印

出该值个数的*。

------------------------------------------------------*/

#include

main()

{

inti,a,n=1;

/**********FOUND**********/

while(n<7)

{

do

{

scanf("%d",&a);

}

/**********FOUND**********/

while(a<1&&a>50);

/**********FOUND**********/

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

printf("*");

printf("\n");

n++;

}

}

答案:

=======(答案1)=======

while(n<=7)

=========或=========

while(n<8)

=======(答案2)=======

while(a<1||a>50);

=========或=========

while(a>50||a<1);

=======(答案3)=======

for(i=1;i<=a;i++)

 

三、程序设计共1题(共计40分)

第1题(40.0分)题号:

337

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

将两个两位数的正整数a、b合并形成一个整数放在

c中。

合并的方式是:

将a数的十位和个位数依次放

在c数的百位和个位上,b数的十位和个位数依次放

在c数的十位和千位上。

例如:

当a=45,b=12。

调用该函数后,c=2415。

------------------------------------------------*/

#include

voidwwjt();

voidfun(inta,intb,long*c)

{

/**********Program**********/

/**********End**********/

}

main()

{

inta,b;longc;

printf("inputa,b:

");

scanf("%d%d",&a,&b);

fun(a,b,&c);

printf("Theresult

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

当前位置:首页 > 求职职场 > 简历

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

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