C语言考试的几道问题

关于填空改错设计的问题,总共有十八道。百度一次不能发太多,我会分几次发上来,争取每次都把分满上,答得好还有加分。

/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------

功能:下面的程序是求1!+3!+5!+……+n!的和。

-------------------------------------------------------*/
#include "stdio.h"
main()
{
long int f,s;
int i,j,n;
scanf("%d",&n);
/***********SPACE***********/
【?】;
/***********SPACE***********/
for(i=1;i<=n; 【?】)
{
f=1;
/***********SPACE***********/
for(j=1; 【?】;j++)
/***********SPACE***********/
【?】;
s=s+f;
}
printf("n=%d,s=%ld\n",n,s);
}

【程序填空】
---------------------------------------------------------

功能:输出100到1000之间的各位数字之和能被15整除的所有数,
输出时每10个一行。

-------------------------------------------------------*/
#include "stdio.h"
main()
{
int m,n,k,i=0;
for(m=100;m<=1000;m++)
{
/***********SPACE***********/
【?】;
n=m;
do
{
/***********SPACE***********/
k=k+【?】 ;
n=n/10;
}
/***********SPACE***********/
【?】;
if (k%15==0)
{
printf("%5d",m);i++;
/***********SPACE***********/
if(i%10==0) 【?】;
}
}
}

/*------------------------------------------------------
【程序改错】
--------------------------------------------------------

功能:编写input()和output()函数输入,输出5个学生的数据记录。

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

#include "stdio.h"
#define N 5

struct student
{
char num[6];
char name[8];
int score[4];
} stu[N];

input(stu)
struct student stu[];
{
/**********FOUND**********/
int i;j;
for(i=0;i<N;i++)
{
printf("\n please input %d of %d\n",i+1,N);
printf("num: ");
scanf("%s",stu[i].num);
printf("name: ");
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
{
/**********FOUND**********/
printf("score %d.",j);
scanf("%d",&stu[i].score[j]);
}
printf("\n");
}
}

print(stu)
struct student stu[];
{
int i,j;
printf("\nNo. Name Sco1 Sco2 Sco3\n");
/**********FOUND**********/
for(i=0;i<=N;i++)
{
printf("%-6s%-10s",stu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%-8d",stu[i].score[j]);
printf("\n");
}
}

main()
{
input();
print();

}
程序改错那题我参考了几位的答案,但是电脑还是判我错啊,当然也可能是我看的不认真,请哪位标识一下哪里出错并给出解释吧。

1\
#include "stdio.h"
main()
{
long int f,s;
int i,j,n;
scanf("%d",&n);
/***********SPACE***********/
s=0;
/***********SPACE***********/
for(i=1;i<=n; i+=2)
{
f=1;
/***********SPACE***********/
for(j=1; j<=i;j++)
/***********SPACE***********/
f*=j;
s=s+f;
}
printf("n=%d,s=%ld\n",n,s);
}

2\
#include "stdio.h"
main()
{
int m,n,k,i=0;
for(m=100;m<=1000;m++)
{
/***********SPACE***********/
k=0;
n=m;
do
{
/***********SPACE***********/
k=k+n%10 ;
n=n/10;
}
/***********SPACE***********/
while(n!=0);
if (k%15==0)
{
printf("%5d",m);i++;
/***********SPACE***********/
if(i%10==0)
printf("\n");
}
}
}

3\
#include "stdio.h"
#define N 5

struct student
{
char num[6];
char name[8];
int score[4];
} stu[N];

void input(struct student stu[])
{
/**********FOUND**********/
int i,j;
for(i=0;i<N;i++)
{
printf("\n please input %d of %d\n",i+1,N);
printf("num: ");
scanf("%s",&stu[i].num);
printf("name: ");
scanf("%s",&stu[i].name);
for(j=0;j<3;j++)
{
/**********FOUND**********/
printf("score %d.",j);
scanf("%d",&stu[i].score[j]);
}
printf("input \n");
}
}

void print(struct student stu[])

{
int i,j;
printf("\nNo. Name Sco1 Sco2 Sco3\n");
/**********FOUND**********/
for(i=0;i<=N;i++)
{
printf("%-6s%-10s",stu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%-8d",stu[i].score[j]);
printf("\n");
}
}

main()
{
input(stu);
print(stu);

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-02-05
#include "stdio.h"
#define N 5

struct student
{
char num[6];
char name[8];
int score[4];
} stu[N];

void input()//stu是全局变量,函数不用参数
{
/**********FOUND**********/
int i, j;
for(i=0;i<N;i++)
{
printf("\n please input %d of %d\n",i+1,N);
printf("num: ");
scanf("%s",stu[i].num);
printf("name: ");
scanf("%s",stu[i].name);
for(j=0;j<4;j++)//总共有4门成绩
{
/**********FOUND**********/
printf("score %d.",j);
scanf("%d",&stu[i].score[j]);
}
printf("\n");
}
}

void print()//同理不用参数
{
int i,j;
printf("\nNo. Name Sco1 Sco2 Sco3 Sco4\n");
/**********FOUND**********/
for(i=0;i<=N;i++)
{
printf("%-6s%-10s",stu[i].num,stu[i].name);
for(j=0;j<4;j++)//同理改成4
printf("%-8d",stu[i].score[j]);
printf("\n");
}
}

main()
{
input();
print();
}本回答被提问者采纳
第2个回答  2010-03-26
首先要说的是:你的改错题是有问题的,已在下面给出说明。还有现在都用的是C++,可是有的c中的少部分已被扬弃了,如c 中的函数定义。
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------

功能:下面的程序是求1!+3!+5!+……+n!的和。

-------------------------------------------------------*/#include "stdio.h"
main()
{
long int f,s;
int i,j,n;
scanf("%d",&n);
/***********SPACE***********/
s=0;
/***********SPACE***********/
for(i=1;i<=n; i++)
{
f=1;
/***********SPACE***********/
for(j=1; j<=i;j++)
/***********SPACE***********/
f*=j;
s=s+f;
}
printf("n=%d,s=%ld\n",n,s);
}
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------

功能:编写input()和output()函数输入,输出5个学生的数据记录。

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

#include "stdio.h"
#define N 5

struct student
{
char num[6];
char name[8];
int score[4];
} stu[N];

input(struct student stu[])
//struct student stu[];这种定方式在C++中已被摒弃
{
/**********FOUND**********/
int i,j;//;改成,
for(i=0;i<N;i++)
{
printf("\n please input %d of %d\n",i+1,N);
printf("num: ");
scanf("%s",stu[i].num);
printf("name: ");
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
{
/**********FOUND**********/
printf("score %d.",j+1);//j改成j+1
scanf("%d",&stu[i].score[j]);
}
printf("\n");
}
}

print(struct student stu[])
//struct student stu[];这种定方式在C++中已被摒弃
{
int i,j;
printf("\nNo. Name Sco1 Sco2 Sco3\n");
/**********FOUND**********/
for(i=0;i<N;i++)//去掉=
{
printf("%-6s%-10s",stu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%-8d",stu[i].score[j]);
printf("\n");
}
}

main()
{
input(stu);//要有参数传入
print(stu);//要有参数传入

}
第3个回答  2010-03-24
程序已经经过验证,绝对正确;
(1)
#include "stdio.h"
main()
{
long int f,s;
int i,j,n;
scanf("%d",&n);
/***********SPACE***********/
s=0; //s赋初值;
/***********SPACE***********/
for(i=1;i<=n; i+=2)
{
f=1;
/***********SPACE***********/
for(j=1; j<=i;j++)
/***********SPACE***********/
f=f*j;
s=s+f;
}
printf("n=%d,s=%ld\n",n,s);
}
2./*功能:输出100到1000之间的各位数字之和能被15整除的所有数,
输出时每10个一行。

-------------------------------------------------------*/
#include "stdio.h"
main()
{
int m,n,k,i=0;
for(m=100;m<=1000;m++)
{
/***********SPACE***********/
k=0;//【?】;
n=m;
do
{
/***********SPACE***********/
k=k+n%10; //【?】 ;
n=n/10;
}
/***********SPACE***********/
while(n!=0); //【?】;
if (k%15==0)
{
printf("%5d",m);i++;
/***********SPACE***********/
if(i%10==0) printf("\n"); //【?】;
}
}
}
3.功能:编写input()和output()函数输入,输出5个学生的数据记录。

#include "stdio.h"
#define N 5

struct student
{
char num[6];
char name[8];
int score[4];
} stu[N];

void input(struct student stu[])
{
/**********FOUND**********/
int i,j;
for(i=0;i<N;i++)
{
printf("\n please input %d of %d\n",i+1,N);
printf("num: ");
scanf("%s",&stu[i].num);
printf("name: ");
scanf("%s",&stu[i].name);
for(j=0;j<3;j++)
{
/**********FOUND**********/
printf("score %d.",j);
scanf("%d",&stu[i].score[j]);
}
printf("input \n");
}
}

void print(struct student stu[])

{
int i,j;
printf("\nNo. Name Sco1 Sco2 Sco3\n");
/**********FOUND**********/
for(i=0;i<=N;i++)
{
printf("%-6s%-10s",stu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%-8d",stu[i].score[j]);
printf("\n");
}
}

main()
{
input(stu);
print(stu);
}
第4个回答  2010-04-09
改错题试试我这个

#include "stdio.h"
#define N 5

struct student
{
char num[6];
char name[8];
int score[4];
} stu[N];

void input()//stu是全局变量,函数不用参数
{
/**********FOUND**********/
int i, j;
for(i=0;i<N;i++)
{
printf("\n please input %d of %d\n",i+1,N);
printf("num: ");
scanf("%s",stu[i].num);
printf("name: ");
scanf("%s",stu[i].name);
for(j=0;j<4;j++)//总共有4门成绩
{
/**********FOUND**********/
printf("score %d.",j);
scanf("%d",&stu[i].score[j]);
}
printf("\n");
}
}

void print()//同理不用参数
{
int i,j;
printf("\nNo. Name Sco1 Sco2 Sco3 Sco4\n");
/**********FOUND**********/
for(i=0;i<=N;i++)
{
printf("%-6s%-10s",stu[i].num,stu[i].name);
for(j=0;j<4;j++)//同理改成4
printf("%-8d",stu[i].score[j]);
printf("\n");
}
}

main()
{
input();
print();
}
相似回答