=========或=========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;iif(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;pprintf("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;iprintf("%5d",x[i]);
printf("\n\nGivenArray#2:
");
for(i=0;iprintf("%5d",y[i]);
printf("\n\nMinimumDistance=%d",min_distance(x,y,m,n));
}
答案:
=======(答案1)=======
xx:
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;ifor(j=0;j/**********FOUND**********/
scanf("%d",a[i][j]);
for(i=0;i{
for(j=0;jprintf("%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;jprintf("%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**********/