Last revision on 21 December 2020
Last revision on 21 December 2020
C语言程序改错及填空题
下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在
每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。
#define NULL 0
struct stud
{
long num;
char name[10];
float score;
struct stud *next;
};
/* …………… comment …………… */
int n;
struct stud create() 序中有两处错误代码,请改正.注意,不得改变程序结构。
#include <>
main()
{
int a[8],*p=a;
int i,j;
int tempmin,tempcode;
printf("\n input the numbers:\n");
for (i=0;i<8;i++)
scanf("%d",p+i);
tempmin=*p;
for (i=0;i<7;i++)
{
for (j=i;j<8;j++)
if (j==i||*(p+j)
{ tempmin=*(p+i); comment one */
if(j==ls2) return(s1+j); comment two */
c=find_str(a,b);
if(c!=NULL) printf("%s\n",c);
else printf("未找到字符串%s\n",b);
}
程序的功能是:计算并输出从键盘输入的任一正整数的各位数字之和s以及各位数字之积t。
例如,当输入的正整数为237时,
s的值为12,t的值为42。
请改正程序中的两个错误,使它能得出正确的结果。注意:不得增行或删行,也不得修改程序的
结构。
#include ""
main()
{
int n, yw, s=0, t=0; void inv(x,n)
int *x,n;
{int *p,t,*i,*j,m=(n-1)/2;
i=x;
j=n; . * ( (2*k*2*k)/((2*k-1)*(2*k+1)) )
请改正函数fun中的两个错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include ""
#include ""
fun( int k ) ment 1*/
n=10; ment 2*/
for(j=0;j<=n/2-abs(i);j++)printf("%c",s[j]);
for(j=n/2-abs(i); j<19;j++)printf("%c",s[j]); comment one */
for(i=0; i < st; i++)
t[st] = s[i]; comment two */
t[st] = '\0'; 意,不得改变程序结构。
#include <>
main()
{
int a[10],b[10],i;
for(i=0;i<=10;i++)
注意:不得改变程序的结构和算法,也不能增加或删除程序行。
#include ""
int yanghui(int x,int y) #include <>
main()
{
int i,s,k,count=0;
for(i=100;i<=1000;i++)
{
s=0;
k=i;
while(k==0) #include <>
main()
{ char *p, s[6];
int n;
p=&s; #include <>
#include <>
void swap(char *a,char *b)
{
char c;
c=*a;
*a=*b;
*b=c;
}
void reverse(char *s,char *