清华大学c语言程序设计课件,c语言清华大学课件

701b0e80775461627f87fabf3dd6931b.png

PPT内容

这是c语言清华大学课件,关于C 语言基本语法元素,包括了数据型式,量与表达式,语句,基本输入输出,程序设计风格等内容,欢迎点击下载。

计算机程序设计基础

【提 纲】

1.1 数据型式

1.2 量与表达式

1.3 语 句

1.4 基本输入输出

1.5 程序设计风格

【提 纲】

1.1 数据型式

1.2 量与表达式

1.3 语 句

1.4 基本输入输出

1.5 程序设计风格

【数据型式】

整数型式:int

定义整型数据对象

有取值范围,仅能表示特定区间内整数值

浮点数型式:double 或 float

表示小数,同样具有取值范围

首选 double

字符串型式

字符序列以整体形式作为数据对象

使用配套 zylib 库中的 STRING 型式和 CSTRING 型式表示字符串

【数据型式】

整数型式

定义 a 为整数:int  a;

整数符号:确定是否表示负数

signed、unsigned

定义 b 为无符号整数:unsigned int  b;

整数长短:确定整数取值范围的大小

long、short

定义 c 为短整数:short int  c;

【浮点数型式】

例 1.1 编写程序,求用户输入的两个浮点数之和。

【浮点数型式】

【浮点数型式】

例 1.1 编写程序,求用户输入的两个浮点数之和。

【字符串型式】

例 1.2 接受用户输入的用户名,向用户问好。

【字符串型式】

【工程项目设置】

基本步骤

步骤 1:创建新工程,设置好工程项目的目录

步骤 2:编写程序代码,将文件保存在该目录下

步骤 3:将文件“zylib.h”与“zylib.c”拷贝到该目录

步骤 4:在工程项目中添加上述两个文件

步骤 5:在程序文件中使用双引号包含头文件“zylib.h”

工程项目意义

将程序组织成一个项目整体进行开发和管理

一般需要创建独立的工程项目才能开发程序

特别说明:不同编译器的工程项目设置并不相同

【工程项目设置】

避免多次拷贝库文件的方法

为全部练习题创建总目录,如“CExercises”

在“CExercises”目录下创建子目录“zylib”,将文件“zylib.h”与“zylib.c”拷贝到“zylib”目录下

创建新工程时,为每道练习题在“CExercises”目录下创建单独子目录(注意不要使用多级目录),如“Ex0101”与“Ex0102”,编写的程序文件都保存在该目录下

在工程项目中添加“zylib”子目录下的库文件“zylib.h”与“zylib.c”

在程序中使用相对路径包含头文件“../zylib/zylib.h”(Linux 和 OS X)或者“..\zylib\zylib.h”(Windows,单双反斜杠均可)

【提 纲】

1.1 数据型式

1.2 量与表达式

1.3 语 句

1.4 基本输入输出

1.5 程序设计风格

【量与表达式】

表达式

变 量

文字与常量

赋值与初始化

操作符与操作数

混合运算与型式转换

【表达式】

表达式定义

操作数与操作符序列,表达运算过程

操作数:文字、量、函数调用、括号

操作符:运算逻辑

表达式值:运算结果

表达式求值:计算表达式值的过程

按普通四则运算理解表达式求值过程,逐一计算表达式中所有操作符,直至完成

【变 量】

先定义再使用

定义格式:变量型式  变量名称[, 变量名称];

变量名称应具有唯一性:不允许重名

变量四大基本特征(VANT)

变量总是具有值(value)

变量总是与内存中地址(address)相对应

变量总是具有名称(name)

变量总是具有确定型式(type)

【文 字】

定义:程序中单独出现的值

例:3.14、100 等

整数型式文字

十进制、十六进制、八进制

浮点型式文字

字符串型式文字

【整型文字】

十进制表示:普通整数表示

十六进制表示:逢十六进一,无正负号

以“0x”或“0X”开头的 0~9、A/a~F/f 序列

例:0x55、0X1F、0x2a(0x5516 = 8510)

八进制表示:逢八进一,无正负号

以“0”开头的 0~7 序列

例:055(0558 = 4510 )

注意不要与十进制混淆

【浮点型文字】

一般形式:小数表示法

由整数部分、小数点与小数部分组成

例:3.1416、-2.718281828

指数形式:科学计数法

由尾数部分、字符‘E’/‘e’与指数部分组成

例:3.1416e3(3.14103)

例:-2.718281828E-2(-2.71828182810-2)

【字符串型文字】

双引号引起来的字符序列

例:"Programming in C"、"Hello World!\n"

双引号是字符串文字界定符,非字符串内容

转义序列

字符串不仅可以包含可打印字符,也可以包含表示特殊活动的特殊字符

用反斜杠开始转义序列,后跟一个或多个字符

转义序列整体作为单个字符处理,格式固定

例:"\n"、"\\"

【预定义转义序列】

【常 量】

常量的定义:程序运行期间值不可改变的量

格式:const 数据型式  常量名称 = 初始值;

例:const int  zero = 0;

常量的意义

解决直接出现的文字无法解释其意义的问题

文字?魔数也!

常量与变量

常量不可改变值,其他与变量同

定义常量时必须进行初始化

常量初始值必须能够在编译期间计算出来

【赋值与初始化】

赋值表达式

格式:变量名称 = 表达式

例:a = 0

赋值语句:赋值表达式加分号

格式:变量名称 = 表达式;

例:a = b + c;

变量初始化

在定义变量时直接设定初始值

例:int  a = 0;

【赋值流程】

【赋值流程】

【赋值流程】

【赋值流程】

【操作符与操作数】

操作符分类

一元操作符:只有单个操作数,例如负号

二元操作符:带有两个操作数,例如加减乘除等

三元操作符:带有三个操作数,例如条件表达式

操作符优先级与结合性

优先级确定计算顺序,结合性确定计算方向

操作符优先级仅具有参考价值,C 语言对于特殊表达式的计算有特别规定,并不完全遵照该规则

如果拿不准,使劲加括号

【混合运算与型式转换】

例 1.3 编写程序,询问用户姓名,向用户问好,然后将用户输入的整数和实数相加,输出结果。

【混合运算与型式转换】

【混合运算与型式转换】

【混合运算与型式转换】

隐式型式转换:自动进行,程序员无法干预

转换原则:一般以不损失精度为前提

赋值:右边表达式的值先转换为目标型式后赋值

显式型式转换:程序员手工进行的型式转换

格式:( 转换后的目标型式 )原表达式

例:int  a;    double  g = 9.80665;

a = g;    //  隐式型式转换,小数部分舍弃,a 值 9

a = ( int )g * 4;    //  显式型式转换,a 值 36

a = ( int )( g * 4 );    //  显式型式转换,a 值 39

【提 纲】

1.1 数据型式

1.2 量与表达式

1.3 语 句

1.4 基本输入输出

1.5 程序设计风格

【语 句】

简单语句:表达式后跟分号

例一:sum = n + d;

例二:n = GetIntegerFromKeyboard();

例三:printf( "%d + %lf = %lf\n", n, d, sum );

复合语句:花括号对封装的语句序列

例:{  a = 1;  b = a + 1;  }

空语句:单独出现的分号

满足程序特定语法规则的要求

作为未来添加程序代码的占位标记

【提 纲】

1.1 数据型式

1.2 量与表达式

1.3 语 句

1.4 基本输入输出

1.5 程序设计风格

【基本输入输出】

基本事实

输入输出是语言与算法必备功能

C 语言本身没有输入输出语句或命令

输入输出需使用标准库函数

输入输出函数原型位于头文件“stdio.h”中

典型输入输出函数

格式化输出函数 printf()

格式化输入函数 scanf()

【格式化输出】

格式化输出函数 printf() 调用格式

格式:printf( "输出格式规约字符串", 输出项列表 );

例一:printf( "Hello world!\n" );

例二:printf( "Hello, %s.\n", name );

例三:printf( "%f + %f = %f\n", a, b, sum );

例四:printf( "%d + %lf = %lf\n", n, d, sum );

%y:格式描述符

%d:十进制整数;%u:无符号整数

%f:float 型式浮点数; %lf:double 型式浮点数

%c:单个字符;%s:字符串

【格式化输出】

例 1.4 编写程序,按照下列格式输出下述部分省市统计数据。

【场宽 • 精度 • 对齐】

输出格式

%[对齐标志][场宽][.精度]格式描述符

对齐标志:确定每列左侧还是右侧对齐

缺省右对齐,左对齐使用“-”

例:“%-d”表示按照左对齐格式输出整数

场宽:确定每列占用多少字符宽度,数据输出一般不会截断

确定输出最小宽度,超出部分照常输出

例:“%3d”表示按照右对齐、占三位格式输出整数,若整数长度超出三位,则照常输出数据

【场宽 • 精度 • 对齐】

精度:确定输出多少位数据以保证其精度

精度数字前有小数点标志,在场宽中占用 1 位

例:“%-5.2f”表示按照左对齐,整体占 5 位,且小数点后 2 位的格式输出浮点数

数据截断

例一:按“%-5.2f”格式输出 12.3456,结果为 12.35,注意四舍五入

例二:按“%-5.2f”格式输出 123.456,结果为 123.46,注意截断后的数据仍然超出场宽限制,照常输出

字符串截断输出特例:“%13.13s”表示字符串为 13 位宽,多余部分截断

【格式化输出示例代码】

【格式化输出示例代码】

【格式化输入】

格式化输入函数 scanf() 调用格式

格式:scanf( "输入格式规约字符串", 输入项列表 );

例:scanf( "%d,%d", &a, &b );

特别说明

输入格式码与输出格式码基本相同

用户在终端输入的数据逐一存放到输入项列表中变量所在的地址空间;普通变量的名称前需有取址操作符“&”

输入项之外的其他字符:格式描述串中其他字符需在输入数据时一并输入,不能遗漏、省略或不一致

【格式化输入】

特别说明

输入项的分隔:无分隔字符的相连项在输入时使用空格、Tab 键或回车键分隔

尽量不用 scanf()

使用 zylib 库中的三个函数代替

整数输入:GetIntegerFromKeyboard()

浮点数输入:GetRealFromKeyboard()

字符串输入:GetStringFromKeyboard()

【提 纲】

1.1 数据型式

1.2 量与表达式

1.3 语 句

1.4 基本输入输出

1.5 程序设计风格

【程序设计风格】

注 释

命名规范

宏与常量

赋值语句简写形式

源代码排版

【注 释】

注释目的:增强程序可读性、可维护性

注释格式

格式一:“/*”与“*/”对,注释其中的部分,可出现在程序任意位置

例一: int  /* 此处内容为注释 */  a;

格式二:“//”,注释从此直至文本行结束

例二: int  a;    //  此处内容为注释

特别说明

同一种注释标记不可以嵌套

“//”不跨行,“/*”与“*/”对可跨行

【命名规范】

字符集:ASCII 字符集

大小写英文字母、数字、部分特殊符号

标识符

以下划线或字母开头,由下划线、字母、数字组成,表示常量、变量、函数、型式等名称,区分大小写

关键字:系统专用的具有特定意义的标识符

预定义标识符:编译命令与库函数名,具有特定意义,一般不能重新定义

用户定义标识符:用户根据需要定义,主要是为了使程序容易阅读、理解与维护

【宏与常量】

宏定义:预处理命令 #define

一旦定义,可以代替常量使用

例:#define  PI  3.14

宏定义不是常量

应优先使用常量而不是宏

目的与意义

增强程序可读性

使用有意义的名字命名

增强程序可维护性

将值定义为符号常量,则程序中仅需要修改一次

【宏与常量】

宏定义:预处理命令 #define

一旦定义,可以代替常量使用

例:#define  PI  3.14

宏定义不是常量

应优先使用常量而不是宏

目的与意义

增强程序可读性

使用有意义的名字命名

增强程序可维护性

将值定义为符号常量,则程序中仅需要修改一次

【赋值语句简写形式】

加赋:x += a 等价于 x = x + a

减赋:x -= a 等价于 x = x - a

乘赋:x *= a 等价于 x = x * a

除赋: x /= a 等价于 x = x / a

除法作用于整数上时,结果也为整数

余赋: x %= a 等价于 x = x % a

%:两个整数进行整数除法,结果为余数

特别说明

x *= a + b 等价于 x = x * ( a + b )

【源代码排版】

递进层次应使用左缩进格式

每行代码不能过长,尽量不超过 80 个字符

函数代码尽量不超过 60 行

使用空行区分不同功能代码

复合语句书写格式要统一

除非特别必要,否则不要在一行书写多条语句

命名规范要一致

无论采用什么标准,都要一直遵照执行

【本章小结】

数据型式

数据对象存储格式、取值范围、可实施的操作集

量与表达式

操作符、操作数、表达式、赋值与初始化

语 句

简单语句、复合语句与空语句

基本输入输出

printf()、scanf();不建议使用 scanf()

程序设计风格

【作 业】

习题二:编程实践题

第 5 题

第 7 题

相关PPT

《c语言清华大学课件》是由用户城鱼于2017-08-14上传,属于课件PPT。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值