从0开始学习C语言

本文介绍了C语言的基础知识,包括编写第一个“HelloWorld”程序,实现求绝对值的两种方法以及计算长方体体积的两个选项。文章还探讨了算法的概念、特点和表示形式,如自然语言、伪代码、程序流程图和N-S流程图。
摘要由CSDN通过智能技术生成

一.我的第一个C语言程序——hello_world

//1-helloworld
#include<stdio.h>
//目的:调用与输入输出相关的头文件
//预处理指令: #表示预处理,后面的include表示本项目要包含stdio.h这个文件
//stdio.h是一个和输入输出操作相关的头文件,凡是需要进行输入输出操作,就需要通过预处理操作包含该文件
//std对应standard(标准) io对应input&output(输入&输出) h对应head(头文件)
#include<stdlib.h>
//目的:调用标准库的头文件
//std对应standard(标准) lib对应library(标准库)
int main()
//C语言中有且只有一个main函数
//main函数推荐的返回类型为int
{
	printf("Hello world!\n");
	// \n表示回车换行
	// \n中的n不再表达n原本的含义,而是与\作为转译字符起到回车换行的作用
	system("pause");
	//用系统命令让程序暂停一下
	//为了可以看到输出的"Hello world!",除了用系统命令system("pause"),也可以使用getchar()
	//getchar()的作用是读取键盘输入的一个数据再执行下一行代码
	return 0;
	//表示程序正常进行结束
}

二.求绝对值——absolute

1.Option1

//2-absolute(1)
#include<stdio.h>
//目的:调用与输入输出相关的头文件
//预处理指令: #表示预处理,后面的include表示本项目要包含stdio.h这个文件
//stdio.h是一个和输入输出操作相关的头文件,凡是需要进行输入输出操作,就需要通过预处理操作包含该文件
//std对应standard(标准) io对应input&output(输入&输出) h对应head(头文件)
#include<stdlib.h>
//目的:调用标准库的头文件
//std对应standard(标准) lib对应library(标准库)
int main()
//C语言中有且只有一个main函数
//main函数推荐的返回类型为int
{
	int numb;
	//numb对应number
	//定义一个名叫numb的变量,int表示numb这个变量是一个整数
	int abs;
	//abs对应absolute(绝对值)
	//定义一个名叫abs的变量
	scanf_s("%d", &numb);
	//通过scanf_s函数输入数据
	//格式字符"%d"与变量名称&numb之间用逗号分隔开
	//"%d"表示数据类型为整数
	//&numb表示输入的数据存入numb这个变量之中
	//numb前的&符号表示输入的数据要存在numb变量所在的地址空间里面
	if (numb > 0) abs = numb;
	else abs = -numb;
	//if后的括号内为判断条件
	//如果判断条件成立,则执行与if同行的命令
	//如果判断条件不成立,则执行与else同行的命令
	//if else语句有且仅有一条语句被执行
	printf("numb的绝对值是:%d\n", abs);
	//原样输出与abs变量之间用逗号分隔开
	//原样输出中的格式字符%d会被abs变量中储存的数据替换掉
	return 0;
	//表示程序正常进行结束
}

2.Option2

//2-absolute(2)
#include<stdio.h>
//目的:调用与输入输出相关的头文件
//预处理指令: #表示预处理,后面的include表示本项目要包含stdio.h这个文件
//stdio.h是一个和输入输出操作相关的头文件,凡是需要进行输入输出操作,就需要通过预处理操作包含该文件
//std对应standard(标准) io对应input&output(输入&输出) h对应head(头文件)
#include<stdlib.h>
//目的:调用标准库的头文件
//std对应standard(标准) lib对应library(标准库)
int main()
//C语言中有且只有一个main函数
//main函数推荐的返回类型为int
{
	int numb,absolute,r;
	//定义numb absolute r 三个变量,且数据类型均为整型
	printf("请输入一个整数:");
	//利用printf函数输出"请输出一个整数:"提示语句
	r = scanf_s("%d",&numb);
	//通过scanf_s函数输入数据
	//格式字符"%d"与变量名称&numb之间用逗号分隔开
	//"%d"表示数据类型为整数
	//&numb表示输入的数据存入numb这个变量之中
	//numb前的&符号表示输入的数据要存在numb变量所在的地址空间里面
	//scanf_s函数具有返回值,返回值为正整数时表示正确输入参数的个数;返回值为0时表示用户的输入不匹配,无法正确输入任何值;返回值为-1时,表示输入流已经结束.
	if (r == 1)
	//判断是否正确输入数据
	//如果判断条件成立,则执行大括号中的命令行
	{
		if (numb > 0) absolute = numb;
		else absolute = -numb;
		//if后的括号内为判断条件
		//如果判断条件成立,则执行与if同行的命令
		//如果判断条件不成立,则执行与else同行的命令
		//if else语句有且仅有一条语句被执行
		printf("%d的绝对值是%d\n",numb,absolute);
		//原样输出 abs变量 absolute变量之间用逗号分隔开
		//原样输出中的格式字符%d会被abs变量和absolute变量中储存的数据替换掉
	}
	else printf("输入错误!\n");
	//如果判断条件不成立,则利用printf函数输出"输入错误"提示语句
	system("pause");
	//用系统命令让程序暂停一下
	//为了可以看到输出结果,除了用系统命令system("pause"),也可以使用getchar()
	//getchar()的作用是读取键盘输入的一个数据再执行下一行代码
	return 0;
	//表示程序正常进行结束
}

三.求长方体的体积——Find the volume of Rectangular cuboid

1.Option1

//3-Find the volume of Rectangular cuboid(1)
//方式:利用多个变量及一系列运算求得立方体的体积
#include<stdio.h>
//目的:调用与输入输出相关的头文件
//预处理指令: #表示预处理,后面的include表示本项目要包含stdio.h这个文件
//stdio.h是一个和输入输出操作相关的头文件,凡是需要进行输入输出操作,就需要通过预处理操作包含该文件
//std对应standard(标准) io对应input&output(输入&输出) h对应head(头文件)
#include<stdlib.h>
//目的:调用标准库的头文件
//std对应standard(标准) lib对应library(标准库)
int main()
//C语言中有且只有一个main函数
//main函数推荐的返回类型为int
{
	int a,b,c,r,volume;
	//定义a b c r volume五个变量,且数据类型均为整型
	//同种数据类型的多个变量名称可以在同一行进行定义
	printf("请输入立方体的三边长:");
	//利用printf函数输出"请输入立方体的三边长:"提示语句
	r = scanf_s("%d%d%d",&a,&b,&c);
	//通过scanf_s函数输入数据
	//格式字符"%d"与变量名称&a &b &c之间用逗号分隔开
	//"%d"表示数据类型为整数
	//&a &b &c表示输入的数据分别存入a b c这三个变量之中
	//a b c前的&符号表示输入的数据要分别存在a b c这三个变量所在的地址空间里面
	//scanf_s函数具有返回值,返回值为正整数时表示正确输入参数的个数;返回值为0时表示用户的输入不匹配,无法正确输入任何值;返回值为-1时,表示输入流已经结束
	if (r == 3 && a > 0 && b > 0 && c > 0)
	//判断数据个数是否正确且三个数据是否均大于0
	//本行代码的目的是确保输入的数据个数正确的同时保证立方体的三边长都是正数(ps:立方体的三边长只能为正数)
	//&&是一种双目运算符,表示与运算,此时在&&两侧的判断条件需同时满足返回结果才为真,若&&两侧有任意一个判断条件不成立则返回结果为假
	//如果返回结果为真,则执行大括号中的命令行
	{
		volume = a * b * c;
		//将a b c中的数据相乘所得到的结果存入volume变量中
		printf("立方体的体积是:%d\n",volume);
		//原样输出与volume变量之间用逗号分隔开
		//原样输出中的格式字符%d会被volume变量中储存的数据替换掉
	}
	else printf("error\n");
	//如果返回结果为假,则利用printf函数输出"error"提示语句
	system("pause");
	//用系统命令让程序暂停一下
	//为了可以看到输出结果,除了用系统命令system("pause"),也可以使用getchar()
	//getchar()的作用是读取键盘输入的一个数据再执行下一行代码
	return 0;
	//表示程序正常进行结束
}

2.Option2

//3-Find the volume of Rectangular cuboid(2)
//方式:新定义一个volume函数,利用volume函数对存于volume函数中的数据进行一系列运算求得立方体的体积
#include<stdio.h>
//目的:调用与输入输出相关的头文件
//预处理指令: #表示预处理,后面的include表示本项目要包含stdio.h这个文件
//stdio.h是一个和输入输出操作相关的头文件,凡是需要进行输入输出操作,就需要通过预处理操作包含该文件
//std对应standard(标准) io对应input&output(输入&输出) h对应head(头文件)
#include<stdlib.h>
//目的:调用标准库的头文件
//std对应standard(标准) lib对应library(标准库)
int volume(int x,int y,int z)
//新定义一个volume函数(返回值的数据类型为整型),它有三个参数并且三个参数的数据类型均为整型
{
	return(x * y * z);
	//volume函数的返回值为三个参数相乘所得到的结果
}
int main()
//C语言中有且只有一个main函数
//main函数推荐的返回类型为int
{
	int a,b,c,r,v;
	//定义a b c r v五个变量,且数据类型均为整型
	//同种数据类型的多个变量名称可以在同一行进行定义
	printf("请输入立方体的三边长:");
	//利用printf函数输出"请输入立方体的三边长:"提示语句
	r = scanf_s("%d%d%d",&a,&b,&c);
	//通过scanf_s函数输入数据
	//格式字符"%d"与变量名称&a &b &c之间用逗号分隔开
	//"%d"表示数据类型为整数
	//&a &b &c表示输入的数据分别存入a b c这三个变量之中
	//a b c前的&符号表示输入的数据要分别存在a b c这三个变量所在的地址空间里面
	//scanf_s函数具有返回值,返回值为正整数时表示正确输入参数的个数;返回值为0时表示用户的输入不匹配,无法正确输入任何值;返回值为-1时,表示输入流已经结束
	if (r == 3 && a > 0 && b > 0 && c > 0)
	//判断数据个数是否正确且三个数据是否均大于0
	//本行代码的目的是确保输入的数据个数正确的同时保证立方体的三边长都是正数(ps:立方体的三边长只能为正数)
	//&&是一种双目运算符,表示与运算,此时在&&两侧的判断条件需同时满足返回结果才为真,若&&两侧有任意一个判断条件不成立则返回结果为假
	//如果返回结果为真,则执行大括号中的命令行
	{
		v = volume(a,b,c);
		//将a b c中的数据存入volume函数中,并通过volume函数进行一系列运算,最终将所得到的结果存入v变量中
		printf("立方体的体积是:%d\n",v);
		//原样输出与v变量之间用逗号分隔开
		//原样输出中的格式字符%d会被v变量中储存的数据替换掉
	}
	else printf("error\n");
	//如果返回结果为假,则利用printf函数输出"error"提示语句
	system("pause");
	//用系统命令让程序暂停一下
	//为了可以看到输出结果,除了用系统命令system("pause"),也可以使用getchar()
	//getchar()的作用是读取键盘输入的一个数据再执行下一行代码
	return 0;
	//表示程序正常进行结束
}

四. 算法与流程图

//4-Algorithm and flowchart
/*
一.程序构成公式
    1.Nikiklaus Wirth提出的公式:程序 = 数据结构 + 算法
    2.目前已经修改为:算法 + 数据结构 + 程序设计方法 + 语言工具和环境
二.算法及其表示
    1.概念:解决问题所采取的一系列步骤
    2.特点:
        1)有输入:算法可以有零个或多个输入.在一个算法的执行过程中,提供需处理的数据或控制算法执行过程的信息.
        2)有输出:算法必须具有一个或多个执行结果的输出.没有输出的算法是一个无效的算法.
        3)有穷性:任何算法都应该在执行有穷步骤之后结束.
        4)确定性:算法不能具有二义性.算法中每一步的语义都应该清晰明了,明确指出应该执行什么操作,如何执行操作.
        5)高效性:根据算法编写出来的程序应具有较高的时空效率:执行时间短;不占用过多内存.
    3.算法的表示(描述)
        1)自然语言表示:易理解和交流,但易产生二义性.
        2)伪代码表示:伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法.
        3)程序流程图:用图形符号和文字说明来表示数据处理的过程和步骤.
        4)N-S流程图:也称方框图;是一种适用于结构化程序设计的算法描述工具.
三.程序流程图
    1.程序流程图是描述算法的良好工具.
    2.程序流程图由逻辑框和流向线组成.
    3.逻辑框是表示功能的图形符号.
    4.流向线指示逻辑处理顺序.
四.逻辑框和流向线
    PS:详情请查看屏幕截图
    1.起止框(又称为输入输出框)
    2.处理框
    3.选择框(又称为判断框)
    4.连接框
    5.流向线
五.N-S流程图
    1973年美国学者Nassi和Schneiderman提出N-S流程图(也称为方框图),它是一种适用于结构化程序设计的算法描述工具.
    由于流程图各步骤之间一般总是按照从上到下顺序执行,所以N-S流程图中取消了流向线.
六.二选一结构的表示
    PS:详情请查看屏幕截图
*/

 屏幕截图1:逻辑框和流向线

 屏幕截图2:程序流程图(左)&N-S流程图(右)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值