第43题 (10.0分) 题号:417
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:利用全局变量计算长方体的体积及三个面的面积。 -------------------------------------------------------*/ int s1,s2,s3;
int vs(int a,int b,int c) {
int v;
/***********SPACE***********/ v=【?】; s1=a*b;
/***********SPACE***********/ s2=【?】; s3=a*c; return v; }
main() {
int v,l,w,h; clrscr();
printf(\: \ /***********SPACE***********/ scanf(\【?】,&w,&h); /***********SPACE***********/ v=【?】;
printf(\ s1=%d s2=%d s3=%d\\n\ getch(); }
答案:1). a*b*c 或 a * b * c 2). b*c 或 b * c
3). &l 4). vs(l,w,h) 或 vs( l , w , h )
第44题 (10.0分) 题号:30
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:输入字符串,再输入一个字符,将字符串中与输入字符相 同的字符删除。
-------------------------------------------------------*/ #include \
void fun(char a[],char c) {
36
int i,j;
/***********SPACE***********/ for(i=j=0; 【?】;i++) if(a[i]!=c) a[j++]=a[i];
/***********SPACE***********/ 【?】; }
main() {
char a[20],cc; gets(a);
/***********SPACE***********/ 【?】;
/***********SPACE***********/ 【?】; puts(a); }
答案:1). a[i] != '\\0' 或 a[i] 或 a[i]!=NULL 2). a[j]='\\0' 或 a[j]=NULL 或 a[j]=0 3). cc=getchar() 或 scanf(\ 4). fun(a,cc)
第45题 (10.0分) 题号:407
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:有五个学生,每个学生有3门课的成绩,从键盘输入以上数 据(包括学生号,姓名,三门课成绩),计算出平均成绩, 设原有的数据和计算出的平均分数存放在磁盘文件\ 中。
-------------------------------------------------------*/ #include \struct student {
char num[6]; char name[8]; int score[3]; float avr; } stu[5];
main() {
int i,j,sum; FILE *fp; /*input*/
for(i=0;i<5;i++)
37
{
printf(\ printf(\
scanf(\ printf(\
scanf(\ sum=0;
/***********SPACE***********/ for(j=0;【?】;j++) {
printf(\
scanf(\
/***********SPACE***********/ sum+=stu[i].【?】; }
stu[i].avr=sum/3.0; }
fp=fopen(\
/***********SPACE***********/ for(i=0;i<5;【?】)
/***********SPACE***********/
if(fwrite(&stu[i],sizeof(【?】),1,fp)!=1) printf(\ fclose(fp); }
答案:1). j<3 或 3>j 2). score[j] 3). i++ 或 ++i 或 i=i+1
第46题 (10.0分) 题号:471
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:给出一个正整数,找到一组连续的数,使之累加和等于给 定的正整数。输出存在多少组这样连续的数,及每组的左 右边界。
例如:15=1+2+3+4+5 15=4+5+6 15=7+8
所以结果有3组值分别是1->5, 4->6, 7->8 -------------------------------------------------------*/ #include
void main(void) {
4). struct student 38
long left, right; long sum; long GIVEN; int count = 0; char line[100];
printf(\
printf(\ printf(\ gets(line);
GIVEN = atol(line);
for (sum = 0, right = 1; sum < GIVEN; sum += right, right++) ;
for (left = 1, right--; left <= GIVEN/2; ) if (sum > GIVEN) {
sum -= left;
/***********SPACE***********/
【?】; } else {
if (sum == GIVEN) {
printf(\ GIVEN, left, right);
/***********SPACE***********/
【?】; }
/***********SPACE***********/
【?】; sum += right; }
if (count > 0)
printf(\ else
printf(\}
答案:1). left++ 或 left=left+1 或 ++left
2). count++ 或 count=count++ 或 ++count 或 count=count+1 3). right++ 或 right=right++ 或 ++right 或 right=right+1
第47题 (10.0分) 题号:451
/*------------------------------------------------------- 【程序填空】
39
---------------------------------------------------------
功能:编程求任意给两个日期(Y0年M0月DO日和Y1年M1月D1日) 相差的天数。
-------------------------------------------------------*/ main() {
int y1,m1,d1,y2,m2,d2,n,i; printf(\
scanf(\ /***********SPACE***********/
if(m1<1||m1>12||d1<1||d1>【?】) exit(0);
printf(\ /***********SPACE***********/
if(m2<1||m2>12||d2<1||d2>【?】) exit(0);
if(y1>y2||y1==y2&&m1>m2||y1==y2&&m1==m2&&d1>d2) {
n=y1; y1=y2; y2=n; n=m1; m1=m2; m2=n; n=d1; d1=d2; d2=n; } else {
/***********SPACE***********/ n=yend(y1,m1,d1)+【?】;
/***********SPACE***********/ for(i=【?】;i printf(\} int f(int y) { return(y%4==0&&y0!=0||y@0==0); } int mday(int y,int m) { return(31-((m==4)+(m==6)+(m==9)+(m==11))-(3-f(y))*(m==2)); 40