当先锋百科网

首页 1 2 3 4 5 6 7

C语言程序设计总结

一. 程序设计和C语言

什么是计算机程序?

  • 计算机的一切操作都是由程序控制,离开程序,计算机将一事无成。计算机的本质是程序的机器,程序和指令是计算机系统中最基本的概念。

什么是计算机语言?

  • 语言分为:机器语言 符号语言 高级语言(非结构化语言,结构化语言,面向对象的语言)。

最简单的C语言程序

#include<sidio.>
int main()
{
	printf("Holle world");
	return 0;
}

C语言程序的结构

  • 一个程序由一个或多个源文件组成。
    1. 预处理指令
    2. 全局声明
    3. 函数的定义
  • 函数是C程序的组要组成部分。
  • 一个函数包括两个部分。
  1. 函数首部
  2. 函数体
   * 声明部分
   * 执行部分
  1. 程序总是从main函数开始执行。
  2. 程序中要求计算机完成的操作是由函数中的C语句完成的。
  3. 在每个数据声明和语句的最后必须有一个分号。
  4. C语言本身不提供输入输出语句。
  5. 程序应当包含注释。

程序设计的任务

  1. 问题分析 。
  2. 设计算法。
  3. 编写程序。
  4. 对源程序进行编辑、编译和连接。
  5. 运行程序,分析结果。
  6. 编写程序文档。

二.算法–程序的灵魂

算法+数据结构=程序

算法的特性

  • 有穷性
  • 确定性
  • 有零个或多个输出
  • 有一个或多个输出
  • 有效性

三种基本结构

  • 顺序结构
  • 选择结构
  • 循环结构
    1. 当型(while型)循环结构。
    2. 知道型(until型)循环结构。

结构化程序设计方法

  • 自顶向下,逐步细化。

三.最简单的C程序设计–顺序程序设计

数据的表现形式及其运算

  1. 常量和变量
  2. 常量
    整型常量
    实型常量
    字符常量(普通字符、转义字符)
    字符串常量
    符号常量
  3. 变量(先定义,后使用)
  4. 常变量(定义变量时,前面加一个const)
  5. 标识符
  6. 数据类型
    1. 基本类型
      基本整型(int)
      短整型(short int)
      长整型(long int)
      *双长整型(long long int)
      字符型(char)
      *布尔型(boot)
      单精度浮点型(float)
      双精度浮点型(double)
      复数浮点型(float_complex,double_complex,long long_complex)
    2. 枚举类型(enum)
    3. 空类型(void)
    4. 派生类型
      指针类型(*)
      数组类型([])
      结构体类型(struct)
      共用体类型(union)
      函数类型

整型数据常见的储存空间和值的范围

类型字节数和取值范围
int(基本整型)4 ,-2 147 483 648~2 147 483 647
unsigned int(无符号基本整型)4,0~4 294 967 295
short(短整型)2,-32 768~32 768
unsigned short(无符号短整型)2,0~65 535
long(长整型)4,-2 147 483 648~2 147 483 647
unsigned long(无符号长整型)4,0~4 294 967 295
long long (双长型)8,-9 223 372 036 854 775 808~9 223 372 036 854 775 808
unsigned long long(无符号双长整型)8,0~18 446 744 073 709 551 615

为了充分利用变量的值的范围,可将变量定义为“无符号”类型
如果既未指定为signed也未指定为unsigned的,默认为“有符号类型”

字符型数据的储存空间和值范围

类型字节数和取值范围
signed char(有符号字符型)1, -128~127
unsigned char(无符号字符型)1,0~255

在使用有符号字符型变量时,允许使用储存值为-128-127,但字符的代码不可能为负值,所以在储存字符时实际上只用到0-127这一部分,其第一位都是0。

实型数据的有关情况

类型字节数和取值范围(绝对值)
float4,0以及1.2e-38~3.4e38
double8,0以及2.3e-308~1.7e308

用有限的储存单位不可能完全精确得储存一个实数。

最常用的算数运算符
|

运算符举例和结果
++a,a的值
--a,a的算数负值
*a*b,a和b的乘积
/a/b,a除以b的商
%a%b,a%b的余数
+a+b,a和b的和
-a-b,a和b的差
  • %运算符要求参加运算对象(即操作数)为整数,结果也是整数。
  • 除%以外的运算符的操作数都可以是任何算数类型。

自增(++)、自减(–)运算符
++i,–i(在使用i之前,先使i的值加(减)1)
i++,i–(在使用i之后,使i的值加(减)1)
把它们作为单独的表达式,而不要在一个复杂的表达式中使用++或–运算符。

算数表达式和运算符的结合性:
算数运算符是自左至右(左结合性),赋值运算符是自右至左(右结合性)。

强制类型转换运算符
(double)a (将a转换成double型)
(int)(x+y) (将x+y的值转换成int型)
(float)(5%3) (将5%3的值转换成float型)
其一般形式为:
(类型名)(表达式)

  • 注意表达式要用括号括起来。

C语句

  • 控制语句
    1. if()···else··· (条件语句)
    2. for()···(循环语句)
    3. while()···(循环语句)
    4. do···while()(循环语句)
    5. continue(结束本次循环语句)
    6. break(中止执行switch或循环语句)
    7. switch(多分支选择语句)
    8. return(从函数返回语句)
  • 函数调用语句(由一个函数调用加一个分号构成)
  • 表达式语句(一个表达式的最后加一个分号就成了一个语句)
  • 空语句(可以作为流程的转向点,也可以用来作为语句中的循环体)
  • 复合语句(复合语句常用在if语句或循环中,此时程序需要连续执行一组语句)
    注意符复合语句中最后一个语句末尾的分号不能忽略不写。

复合的赋值运算符

  1. a+=3等价于a=a+3
  2. x*=y+8等价于x=x*(y+8)
  3. x%=3等价于x=x%3

赋值表达式
一般形式为:
变量 赋值运算符 表达式

赋值过程中类型转换

  1. 将浮点型数据赋给整型变量时,先对浮点数取整,即舍弃小数部分,然后赋予整型变量。
  2. 将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式储存到变量中。
  3. 将一个double型数据赋给float变量时,先将双精度数转换为单精度,储存到float型变量的4个字节中。
  4. 字符型数据赋给整形变量时,将字符的ASC||代码赋给整型变量。

数据的输入和输出
要在程序文件的开头用预处理指令#include把有关头文件放在本程序中

printf函数的一般格式
printf(格式控制,输出列表)
printf(参数1,参数2,参数3,···,参数n)

格式字符

格式字符说明
d,i以带符号的十进制形式输出整数
o以八进制无符号形式输出整数
x,X以十六进制无符号输出形式输出整数
u以无符号十进制形式输出整数
c以字符形式输出,只输出一个字符
s输出字符串
f以小数形式输出单、双精度数,隐含输出6位小数
e,E以指数形式输出实数

除了X,E,G外,其他格式字符必须用小写字母

scanf所用到函数字符参考printf函数字符

字符输入输出函数

  • 用putchar函数输出一个字符
    一般形式:putchar(c)
  • 用getchar函数输出一个字符
    一般形式:getchar()

四.选择结构程序设计

*if语句的一般形式

持续更新,未完待续···