C语言计算机二级考题【改错题】

—改错题

创建带头节点的单向链表,并将个结点的数据域赋值0~m-1的值

NODE *Creatlink(int  n, int  m)
{  NODE  *h=NULL, *p, *s;
   int  i;
/**********found***********/
   p=(NODE)malloc(sizeof(NODE));    //(NODE)malloc改为(NODE *)malloc
   h=p;
   p->next=NULL;
   for(i=1; i<=n; i++)
   {  s=(NODE *)malloc(sizeof(NODE));
      s->data=rand()%m;      s->next=p->next;
      p->next=s;             p=p->next;
   }
/**********found***********/
   return  p;                      //p改为h
}

分子为1分母递增的分数累加求和

/*************found**************/
fun (int m)                             //fun改为double fun
{ double y=0, d;
  int i;
/*************found**************/
  for(i=100,i<=m,i+=100)                //","改为";"
     {d=(double)i*(double)i;
      y+=1.0/d;
     }
  return(y);
}

统计字符里的元音字符的个数

1 0 0 2 0代表有一个A和两个O

void fun(char *s, int num[5])                 //fun改为void fun
{ int k, i=5;
  for(k=0;k<i;k++)
/*************found**************/
      num[k]=0;                             //num[i]改为num[k]
  for(;*s!=0;s++)
      { i=-1;
/*************found**************/
        switch(s)                           //s改为*s
           { case 'a': case'A':{i=0;break;}
             case 'e': case 'E':{i=1;break;}
             case 'i': case 'I':{i=2;break;}
             case 'o': case 'O':{i=3;break;}
             case 'u': case 'U':{i=4;break;}
           }
       if(i>=0)
       num[i]++;
      }
}

输出标记为未删除的数

typedef struct dat
{
	char deleted;	//是否删除:0-未删除,1-删除
	int data;
	struct dat* next;
} MYDATA;
void list(MYDATA *h)
{
/******found******/
	MYDATA  p;              //p改为*p
	p=h->next;
	while(p!=NULL)
	{
	/******found******/
		if(p->data==0)      //p->data改为p->deleted
		{
			printf("%d  ",p->data);
		}
/******found******/
		p=next;             //p=next 改为 p->next
	}
}

自定义数据结构

在这里插入图片描述

int func(int (*p)[4], int m, int n, int *pRow, int *pCol)
{
	int i, j, max;
/**********found**********/
	max = *p;                              //**p
	*pRow = 0;
	*pCol = 0;
	for (i=0;i<m;i++)
	{
		for (j=0;j<n;j++)
		{
			if ( *(*(p+i)+j) > max)
			{
				max = *(*(p+i) + j);
				*pRow = i;
/**********found**********/
				*pCol =i+j;                //j
			}
		}
	}
/**********found**********/
	return *max;                           //max
}

输出不含删除标记的数

在这里插入图片描述

typedef struct dat
{
	char deleted;	//是否删除:0-未删除,1-删除
	int data;
	struct dat* next;
} MYDATA;
void list(MYDATA *h)
{
/******found******/
	MYDATA  p;                        //*p
	p=h->next;
	while(p!=NULL)
	{
	/******found******/
		if(p->data==0)                //p->deleted==0
		{
			printf("%d  ",p->data);
		}
/******found******/
		p=next;                       //p->next
	}
}
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值