成信大2021自动化专业-平时自主学习-C语言改错题解题参考-整理第05页

本文集通过具体案例,详细解析了C语言编程中的常见错误及改进方法,覆盖了函数定义、数组操作、指针使用等核心内容,并介绍了如何利用C语言解决实际问题。

第05页

题面如下:

在这里插入图片描述

题解如下:

D1021.c

原文件

#include<stdio.h>

/*****Found*****/
int f(n);

int main(void)
{
   
   
	int i;

	for (i=1; i<=5; i++)
	{
   
   
		printf("%d\n", f(3));
	}

	return 0;
}

int f(int n)
{
   
   
	/*****Found*****/
	int p = 1;

	p = p * n;
	return p;
}

改后文件

#include<stdio.h>

/*****Found*****/
int f(int n);

int main(void)
{
   
   
	int i;

	for (i=1; i<=5; i++)
	{
   
   
		printf("%d\n", f(3));
	}

	return 0;
}

int f(int n)
{
   
   
	/*****Found*****/
	static int p = 1;

	p = p * n;
	return p;
}

考查要点:

  1. 函数原型入参类型要标明
  2. 这里,做累乘,需要p具有记忆性,考查了static类型的变量

D1022.c

原文件

#include<stdio.h>

/*********Found************/
int add(float x, float y);

int main(void)
{
   
   
	float a, b;

	scanf("%f%f", &a, &b);
	/*********Found************/
	printf("sum=%f\n", add(x, y));

	return 0;
}

/*********Found************/
float add(float x, float y);
{
   
   
	return x + y;
}

改后文件

#include<stdio.h>

/*********Found************/
float add(float x, float y);

int main(void)
{
   
   
	float a, b;

	scanf("%f%f", &a, &b);
	/*********Found************/
	printf("sum=%f\n", add(a, b));

	return 0;
}

/*********Found************/
float add(float x, float y)
{
   
   
	return x + y;
}

考查要点:

  1. 函数原型的要点:返回类型,函数名,入口参数列表:参数类型,参数个数,参数顺序
  2. 形参和实参的关系:位置和占位

D1023.c

原文件

#include<stdio.h>

void outnum(void);

int main(void)
{
   
   
	int i;

	for (i=0; i<5; i++)
	{
   
   
		/*********Found************/
		outnum(i);
	}

	return 0;
}

void outnum(void)
{
   
   
	/*********Found************/
	int i = 0;

	i++;
	printf("%d\n", i);
}

改后文件

#include<stdio.h>

void outnum(void);

int main(void)
{
   
   
	int i;

	for (i=0; i<5; i++)
	{
   
   
		/*********Found************/
		outnum();
	}

	return 0;
}

void outnum(void)
{
   
   
	/*********Found************/
	static int i = 0;

	i++;
	printf("%d\n", i);
}

考查要点:

  1. 函数调用,要符合原型规范和要求,没有参数不可以乱添加入口参数
  2. 静态变量的记忆性

D1024.c

原文件

#include<stdio.h>

/*********Found*********/
int Average(x, y);

int main(void)
{
   
   
	int a = 12;
	int b = 24;
	int ave;

	/*********Found*********/
	ave = Average(int a, int b);
	printf("Average of %d and %d is %d.\n", a, b, ave);

	return 0;
}

/*********Found*********/
int Average(x, y)
{
   
   
	int result;

	result = (x + y) 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值