【C】C语言复习_第八天_编译和预处理

学习内容:

8、编译和预处理


学习时间:

2020年12月06日20:00-21:00

学习产出:

/*
编译和预处理
	C语言的运行机制
		主要过程:源代码,预处理,编译,链接,可执行文件。
	程序错误分析
		错误分类
			语法错误
				编译错误
					语法问题
					上下文关系有误
				链接错误
			逻辑错误
		排错
			静态排错
			动态排错
	预处理命令-宏定义
		宏定义是最常用的预处理功能之一,它用于将一个标识符定义为一个字符串,这样,在源程序被编译器处理之前,预处理器会将标识符替换成所定义的字符串
		不带参数的宏定义
			#define 标识符字符串
			宏定义中参数的替换
			#undef指令取消宏定义
		带参数的宏定义
			#define 标识符(形参表) 字符串
	预处理命令-文件包含
		文件包含命令的形式
			#include<文件名>
			#include"文件名"
		文件包含的实例
			定义头文件date.h
			定义文件date.c
			使用date.c中的函数
			运行函数
	预处理命令-条件编译
		#if/#else/#endif指令
			根据常数表达式来决定某段代码是否执行
			#if 判断表达式
				程序段1
			#else
				程序段2
			#endif
		#ifdef指令
			判断某个宏是否被定义
			#ifdef 宏名
				程序段1
			#else
				程序段2
			#endif
		#ifndef指令
			判断某个宏是否没有被定义
			#ifndef 宏名
				程序段1
			#else
				程序段2
			#endif
*/
/*
1、输入圆的半径,输出圆的面积和周长。(要求圆周率采用宏定义)
*/
#include<stdio.h>
#define IP 3.1415926535789 
int main()
{
    double r;
	printf("请输入半径:"); 
	scanf("%lf",&r);
	printf("圆的面积为:%f\n",IP*r*r);
	printf("圆的周长为:%f\n",2*IP*r);
	return 0;
}
/*
2、从键盘输入六个实数。
请采用宏设计输出实数输出的格式。包括(1)一行输出一个实数  (2)一行输出两个实数
(3)一行输出三个实数。实数用“6.2f”格式输出
*/
#include<stdio.h>
#define q "%f\n"
#define w "%f\t%f\n"
#define e "%6.2f%6.2f%6.2f\n"
int main()
{
	int i;
	double a[6];
	printf("请输入6个小数:");
	for(i=0;i<=5;i++)
	scanf("%lf",&a[i]);
	printf("每行输出一个小数\n");
	for(i=0;i<=5;i++)
	printf(q,a[i]); 
	printf("每行输出两个小数\n");
    for(i=0;i<=5;i+=2)
	printf(w,a[i],a[i+1]); 
	printf("每行输出三个小数\n");
    for(i=0;i<=5;i+=3)
	printf(e,a[i],a[i+1],a[i+2]); 
	return 0;
}
/*
3、定义一个结构体类型名称为dog,它有数字类型:狗类型、年龄、体重等数据成员。用这个类型定义一个结构体变量“xiaohei”。输入信息,之后输出。
*/
#include<stdio.h>
struct dog
	{
	char a[100]; 
	int b;
	float c;
	};
int main()
{
	struct dog xiaohei;
	printf("请输入小黑的类型:"); 
	scanf("%s",&xiaohei.a);
	printf("请输入小黑的年龄:");
	scanf("%d",&xiaohei.b);
	printf("请输入小黑的体重:");
	scanf("%f",&xiaohei.c);
	printf("小黑的简历表:\n");
	printf("类型\t年龄\t体重\n");
	printf("%s\t%d\t%.2f\n",xiaohei.a,xiaohei.b,xiaohei.c);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值