C语言入门必读系列 - 1概述

C语言笔记 - 概述

基本概念


  • 程序设计语言:编写计算机程序的语言,按照特定的规则组织计算机指令,使计算机能够自动进行 各种操作处理
  • 程序:按照程序设计语言的规则组织起来的一组计算指令、语句序列
  • 程序设计语言分类
    机器语言:01代码;机器能够直接执行;人学习使用理解较难
    汇编语言:符号化的机器语言,汇编后可执行(编辑–汇编–链接)
    高级语言:类英文(编辑–编译–链接)
    超高级语言:运行效率较低
  • C语言:高级语言
    1972年由美国的Dennis Ritchie设计发明。
    1983年,美国国家标准协会(ANSI)根据C语言问世以来各种版本对C的发展和扩充,制定了C的标准,称为ANSI C。
    1987年ANSI公布了新的标准——87 ANSI C。

示例:输出Hello World!

#include <stdio.h> //#:表示预处理 <stdio.h>:标准输入输出头文件
void main(){ //():表示函数 {}:函数的开始和结束标记
	printf("Hello World!") //printf:输出函数 ;是语句的标记
}
  • #include<stido.h>:编译系统在系统头文件所在目录搜索包含头文件stdio.h。
  • #include“stdio.h”:编辑系统首先在当前源文件目录中查找stdio.h,找不到转系统头文件所在目录搜索。(用户写的优先)

示例:从 键盘输入一个整数,若其值小于0,输出-1;等于0,输出0;大于0,输出1

#include<stdio.h>
void main(){
	int x; //定义整数变量(刚定义后内存中的值为任意)
	scanf("%d",&x); //scanf:键盘输入 &:取地址 从键盘上给内存的x单元赋一个由%d决定的
整数
	if(x<0) //判断x的范围
		printf("\n-1\n"); // \n:换行
	else if(x==0)
		printf("\n0\n");
		else
			printf("\n1\n");
}


示例:求1到100的和

#include<stdio.h>
void main(){
	int i=1,s=0; 	//从1开始求和,和的初值为0
	while(i<=100){	 //循环控制
		s=s+i; 		//数据累加
		i=i+1;		 //生成下一个要累加的数字
	}
	printf("sum=%d\n",s); //输出结果
}

程序=数据结构+算法

  • 算法:为计算机处理问题而设计的解题步骤,最终实现是计算机程序

算法的描述方法:

  • 伪代码
  • 自然语言
  • 流程图
  • N-S图
  • PAD图

算法的伪代码描述:求1到100的和

void main(){
	int i=1,s=0;
	while(i<=100);{
		s=s+i;
		i=i+1;
	}
	printf(s);
}


算法的自然语言描述:求1到100的和

  • 步骤1:被求和的数i和s赋初值,i=1,s=0
  • 步骤2:由i的值决定是否求和,若i小于等于100,则执行步骤3,否则转步骤5
  • 步骤3:s加i
  • 步骤4:i增加1,给出下一个被求和的数,转步骤2
  • 步骤5:显示和s,算法结束

流程图符号说明

  • 长直边椭圆:开始、结束
  • 矩形:处理
  • 扁菱形:判断
  • 平行四边形:输入、输出
  • 箭头:流程方向

算法流程图描述:求1到100的和请添加图片描述


算法的三种结构:

  • 顺序结构
  • 分支结构
  • 循环结构
    三种结构互相结合,可实现任何逻辑控制

顺序结构

  • 各个步骤由前到后一次执行,每个步骤都执行一次。
    如:属于一个学生的两门课程成绩,计算并输出平均分

选择结构

  • 某些步骤是否执行,取决于当前条件
    如:输入某学生两门课成绩,若平均分不低于90,输出“优等生”,否则输出“加油!”

循环结构

  • 有条件的重复执行某些步骤,如求1到100的和

算法的的特性和评价


算法特性

  • 有穷性:算法必须经过有限步骤后结束。“有限步骤”指步骤有限,且合理。
  • 确定性:每一步所规定的的操作必须确定,不能有二义性。
  • 有效性:每一步所描述的操作必须能够通过已实现的基本运算有效执行,并且得到确定的结果
  • 输入和输出特性:有意义的算法有零个或多个输入,并且有一个或多个输出。(可0输入,至少1个输出)

算法评价

  • 时间复杂性:算法执行时间与问题规模的关系,为执行效率指标
  • 空间复杂性:算法对计算机内存的临时需求程度,越少越好、
  • 可读性:算法可供人们阅读的难易程度(加注释)
  • 健壮性(容错性):算法对不合理输入的反应和处理能力
  • 通用性:算法应适应某类问题,而不是某特定问题
  • 正确性:算法最根本的评价指标,执行结果是否满足预先规定的功能和性能

C语言基础知识


C语言程序结构

  • 预处理:编译时进行的处理,如:包含、宏
  • 函数
  • C语言程序由函数构成
  • 任何一个C程序均有且仅有一个主函数:main()
  • main()函数是C程序的执行起点和终点
  • 一个函数可以调用另一个函数
  • 函数可以递归调用,但不允许递归、嵌套定义
  • 被调用函数在调用函数之后定义,则需要在调用之前先声明
  • 变量定义
  • 格式:类型名 变量名
    类型:大小、取值范围
  • 语句组
  • 注释
  • 同一行://
    不同行:/* */

C语言的标识符、保留字

标识符:程序中使用的变量名、函数名等

  • 构成:字母(A-Z,a-z)、数字(0-9)、下划线“_”构成的,以字母下划线打头的字符串(区分大小写),尽量有意义
  • 合法标识符:符合构成规则的标识符,如:BOOK1 、_add等
  • 非法标识符:以数字开头,使用非法字符等不符合构成规则的标识符,如:3sum、ab#cd等

保留字:

  • C语言中已经定义过、不能作为用户变量名或过程名的标识符
    如:int、clear、float等等

C语言程序处理流程

  • 编辑:源程序,后缀:.c
  • 编译:目标程序,后缀:.obj
  • 链接:可执行文件,后缀:.exe/.com
  • 运行:输入可执行文件名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值