C语言循环控制.docx

上传人:b****2 文档编号:11736405 上传时间:2023-06-02 格式:DOCX 页数:201 大小:52.38KB
下载 相关 举报
C语言循环控制.docx_第1页
第1页 / 共201页
C语言循环控制.docx_第2页
第2页 / 共201页
C语言循环控制.docx_第3页
第3页 / 共201页
C语言循环控制.docx_第4页
第4页 / 共201页
C语言循环控制.docx_第5页
第5页 / 共201页
C语言循环控制.docx_第6页
第6页 / 共201页
C语言循环控制.docx_第7页
第7页 / 共201页
C语言循环控制.docx_第8页
第8页 / 共201页
C语言循环控制.docx_第9页
第9页 / 共201页
C语言循环控制.docx_第10页
第10页 / 共201页
C语言循环控制.docx_第11页
第11页 / 共201页
C语言循环控制.docx_第12页
第12页 / 共201页
C语言循环控制.docx_第13页
第13页 / 共201页
C语言循环控制.docx_第14页
第14页 / 共201页
C语言循环控制.docx_第15页
第15页 / 共201页
C语言循环控制.docx_第16页
第16页 / 共201页
C语言循环控制.docx_第17页
第17页 / 共201页
C语言循环控制.docx_第18页
第18页 / 共201页
C语言循环控制.docx_第19页
第19页 / 共201页
C语言循环控制.docx_第20页
第20页 / 共201页
亲,该文档总共201页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言循环控制.docx

《C语言循环控制.docx》由会员分享,可在线阅读,更多相关《C语言循环控制.docx(201页珍藏版)》请在冰点文库上搜索。

C语言循环控制.docx

C语言循环控制

试卷编号:

8105

所属语言:

C语言

试卷方案:

C语言期末模拟练习

试卷总分:

100分

共有题型:

3种

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

第1题(30.0分)题号:

21

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

【程序填空】

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

功能:

将一个字符串中的前N个字符复制到一个字符数组中去,

不许使用strcpy函数。

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

#include

main()

{

charstr1[80],str2[80];

inti,n;

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

gets(【?

】);

scanf("%d",&n);

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

for(i=0;【?

】;i++)

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

【?

】;

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

【?

】;

printf("%s\n",str2);

}

答案:

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

str1

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

i

=========或=========n>i

=========或=========i<=n-1

=========或=========n-1>=i

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

str2[i]=str1[i]

=========或=========*(str2+i)=*(str1+i)

=========或=========*(str2+i)=str1[i]

=========或=========str2[i]=*(str1+i)

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

str2[n]='\0'

=========或=========str2[i]='\0'

=========或=========str2[n]=0

=========或=========str2[i]=0

=========或=========*(str2+n)='\0'

=========或=========*(str2+i)='\0'

=========或=========*(str+n)=0

=========或=========*(str2+i)=0

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

第1题(30.0分)题号:

441

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

【程序改错】

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

功能:

请输入星期几的第一个字母来判断一下是星期几,如果第一

个字母一样,则继续判断第二个字母。

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

#include"conio.h"

#include

voidmain()

{

charletter;

printf("pleaseinputthefirstletterofsomeday\n");

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

while((letter=getch())='Y')

{

switch(letter)

{

case'S':

printf("pleaseinputsecondletter\n");

if((letter=getch())=='a')

printf("saturday\n");

elseif((letter=getch())=='u')

printf("sunday\n");

elseprintf("dataerror\n");

break;

case'F':

printf("friday\n");

break;

case'M':

printf("monday\n");

break;

case'T':

printf("pleaseinputsecondletter\n");

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

if((letter=getch())!

='u')

printf("tuesday\n");

elseif((letter=getch())=='h')

printf("thursday\n");

else

printf("dataerror\n");

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

break

case'W':

printf("wednesday\n");

break;

default:

printf("dataerror\n");

}

}

}

答案:

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

while((letter=getch())!

='Y')

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

if((letter=getch())=='u')

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

break;

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

第1题(40.0分)题号:

347

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

【程序设计】

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

功能:

把20个随机数存入一个数组,然后输出该数组中的

最小值。

其中确定最小值的下标的操作在fun函数中

实现,请给出该函数的定义。

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

#include

#defineVSIZE20

voidwwjt();

intvector[VSIZE];

intfun(intlist[],intsize)

{

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

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

}

main()

{

inti;

for(i=0;i

{

vector[i]=rand();

printf("Vector[%d]=%6d\n",i,vector[i]);

}

i=fun(vector,VSIZE);

printf("\nMininum:

Vector[%d]=%6d\n",i,vector[i]);

wwjt();

}

voidwwjt()

{

inti,t;

FILE*fp;

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

for(i=0;i

{

fprintf(fp,"Vector[%d]=%6d\n",i,vector[i]);

}

t=fun(vector,VSIZE);

fprintf(fp,"\nMininum:

Vector[%d]=%6d\n",t,vector[t]);

fclose(fp);

}

答案:

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

inti,min=0;

for(i=1;i

if(list[min]>list[i])

min=i;

returnmin;

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

试卷编号:

8106

所属语言:

C语言

试卷方案:

C语言期末模拟练习

试卷总分:

100分

共有题型:

3种

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

第1题(30.0分)题号:

457

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

【程序填空】

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

功能:

功能:

定义一个结构变量(包括年、月、日)计算给定日

期是该年的第几天。

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

#include

#include

main()

{

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

【?

】date

{

inty,m,d;

}da;

intf,n,p,a[12]={31,28,31,30,31,30,31,31,30,31,30,31};

printf("y,m,d=");

scanf("%d,%d,%d",&da.y,&da.m,&da.d);

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

f=da.y%4==0&&da.y%100【?

】0||da.y%400==0;

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

if(da.m<1【?

】da.d>12)exit(0);

a[11]+=f;

if(da.d<1||da.d>a[da.m-1])exit(0);

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

for(n=【?

】,p=1;p

printf("n=%d\n",n);

}

答案:

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

struct

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

!

=

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

||

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

da.d

二、程序改错共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分)题号:

330

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

【程序设计】

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

功能:

计算出k以内最大的10个能被13或17整除的自然数之

和。

(k〈3000)。

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

#include

#include"conio.h"

voidwwjt();

intfun(intk)

{

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

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

}

main()

{

intm;

printf("Enterm:

");

scanf("%d",&m);

printf("\nTheresultis%d\n",fun(m));

wwjt();

}

voidwwjt()

{

FILE*IN,*OUT;

ints;

intt;

into;

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

if(IN==NULL)

{

printf("ReadFILEError");

}

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

if(OUT==NULL)

{

printf("WriteFILEError");

}

for(s=1;s<=5;s++)

{

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

o=fun(t);

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

}

fclose(IN);

fclose(OUT);

}

答案:

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

inta=0,b=0;

while((k>=2)&&(b<10))

{if((k%13==0)||(k%17==0))

{a=a+k;b++;}

k--;

}

returna;

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

试卷编号:

8134

所属语言:

C语言

试卷方案:

C语言期末模拟练习

试卷总分:

100分

共有题型:

3种

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

第1题(30.0分)题号:

470

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

【程序填空】

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

功能:

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

的最小值是多少?

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

#include

#include

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

#definemin(x,y)(【?

】)

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

{

intminimum=INT_MAX;

intindex_x=0,index_y=0;

while(index_x

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

if(【?

】)

{

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

index_y++;

}

else

{

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

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

【?

】;

}

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**********/

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2