第2章 C程序设计基础
C语言基础知识第二章概述

2019/3/14
C语言程序设计教程
第2章 C语言的基本数据类型与表达式
12
例如:字符A的ASCII码为: 65D(十进制)=41H(十六进制)=101Q(八 进制) ∴字符A可以表示为‘A’、’\x41’、’\101’。 2、分类: char 和 unsigned char; 3、值域: 每个字符型数据在内存中占一个字节;包括 ASCII字符表中的所有字符(可显示字符和非显 示字符)。
– 例如: 某计算机允许表示具有七位有效数字的十进制数,计算 333.3333+0.0002222222,若计算时没有位数的限制,则结果应当 是3.3335222222。 计算机由于字长位数的限制,只能表示七位有 效数字,于是只得将小数点后的七个数字全部删掉,而仅保留其 整数部分,得到和值333.3335。 (4)根据实际要求选择单精度或双精度。
2019/3/14
C语言程序设计教程
13
• 注意: • • • • (1)字符常量只能用单引号括起来,不能用双引号 或其他括号。 (2)字符常量只能是单个字符, 不能是字符串。 ‘ab’ 不是字符常量 (3)字符可以是字符集中任意字符,但数字被定义为 字符型之后就以ASCII码值参与数值运算。 如,‘6’和6是不同的,‘6’是字符常量,而6是整型 常量。
注意
‘a’与“a”的区别。
2019/3/14
C语言程序设计教程
15
• 字符常量与字符串常量的区别:
– ⑴ 定界符不同。 – 字符常量使用单引号,而字符串常量使用双引号。 – ⑵ 长度不同。 – 字符常量的长度固定为1,而字符串常量的长度可以是0,也可以 是某个整数。 – ⑶ 存储要求不同。 – 字符常量存储的是字符的ASCII码值,而字符串常量除了要存储 字符串常量的有效字符外,还要存储一个字符串结束标志‘\0’。
第02章C语言程序设计基础

序 设
个什么样子,它的结构特点是什么,这是我们进行C语言程序设
计 计必须遵循的规范。
教 程
最后,我们应该掌握的是如何来编写和调试一个C语言程序,
第 这是我们每一个C语言程序员所必须具备的基本功。
二
版 学习目标
了解程序设计语言的发展及其特点;
第
二 掌握机器语言、汇编语言和高级语言的差异;
章 了解C语言
面向对象
第 二 章
程
C如P:U指1100令面0010系向00用如00统机00助00A,器记D由的D程符加减0语序、号客对对言A设1描,观象象序计述B世是间列关的界数通构键指可据过成是令以和发的定系分方送指义统类法和令类,的接码,对封受组并象装消成由是息类类发派的生生实联对例系象
序
设
计
基
11
础
C 语
版
Dennis.M.Ritchie
C标准
第
标准C: K&R合著《The C
二
Programming Language》
章
ANSI C: 1983年
程
87 ANSI C: 1987年
序 设
1990年国际标准的ANSI C
计
基
14
础
C
语 C语言版本
言
程 序
C语言有不同的版本,常用的编译软件有Microsoft
3
教材、参考书与课时安排
教材 C语言程序设计教程(第2版) 王敬华编著 清华大 学出版社
参考书 C语言程序设计教程(第2版)习题解答与实验指 导 王敬华编著 清华大学出版社 C语言程序设计(第2版)谭浩强 高等教育出版 社 C高级实用程序设计 王士元 清华大学出版社
《C语言程序设计》(软件技术11级)(第2章)

2.1基本字符、标识符和关键字
2.1.3 关键字(保留字) 为系统预定义的标识符,在C语言中有特殊的 含义
void int return float double char long short unsigned if else switch case default break
do while continue for
2.3数据的格式化输出和输入
输入输出函数库: stdio.h printf() scanf() getchar() putchar() gets() puts()
2.3数据的格式化输出和输入
2.3.1数据的格式化输出
学一学
printf( 格式控制,【输出列表】) ;
格式控制是用双引号括起来的字符串,分两种情况: 1.字符串只含有普通字符或转义字符,则不包含输出 列表。(练一练:\*‟\n‟为转义字符,表示换行*\)
结构类型 联合类型 枚举类型
struct union enum
空类型(无值类型) void
2.2数据类型及常数、变量
1.不同类型的数据在内存中占据不同长度的存 储区(字节),且采用不同的表示方式。 2.一种数据类型对应着一个取值的范围 3.一种数据类型对应着一组允许的操作 4.构造类型数据是由基本类型按照一定的规律 构造出来的。 5.C语言的数据又可分为常量和变量,他们都 分别属于上述类型中得一种。
iSum=iPrize1+iPrize2;
printf("该同学的奖学金为:%d\n",iSum);
return 0;
}
2.3数据的格式化输出和输入
第二章C语言基础-语句-编写简单的C程序

C 语 言 程 序 设 计
putchar函数
调用格式为: putchar(表达式); 功能:将指定表达式的值所对应的字符输出到标准输出设备上
参数 字符变量 字符常量 数值常量 转义序列 函数 putchar(c) putchar(‘#') putchar('5') putchar('\n') 效果 显示字符变量 c 的内容 显示字符# 显示字符# 显示数字 5 在光标位置插入回车
关键是如何分离个位、十位、百位数字? 关键是如何分离个位、十位、百位数字?
ቤተ መጻሕፍቲ ባይዱ
153 153 % 10 = 3 153 / 100 = 1 153 - 1*100 = 53 53 / 10 = 5
C 语 言 程 序 设 计
#include <stdio.h> main() { int x, b0, b1, b2, sum; x = 153; b2 = x / 100; /*计算百位数字 计算百位数字*/ 计算百位数字 b1 = (x - b2 * 100) / 10; /*计算十位数字 计算十位数字*/ 计算十位数字 b0 = x % 10; /*计算个位数字 计算个位数字*/ 计算个位数字 sum = b2 + b1 + b0; printf("b2=%d, b1=%d, b0=%d, sum=%d\n", b2, b1, b0, sum); }
C 语 言 程 序 设 计
任务三
#include <stdio.h> void main() { int n1; char n2; float n3; scanf("%d%c%f",&n1,&n2,&n3); printf("n1=%f,n2=%c,n3=%f\n",n1,n2); } (1)键盘如何输入? )键盘如何输入? 如何输入? (2)修改 )修改scanf(“%d%f%c”,&n1,&n3,&n2);如何输入? “ ” 如何输入
c语言程序设计基础教程课后答案

c语言程序设计基础教程课后答案C语言程序设计基础教程课后答案第一章:C语言概述1. 简述C语言的特点。
- C语言是一种结构化编程语言,具有高效、灵活、功能强大等特点。
- 它支持多种编程范式,如过程式编程、结构化编程、面向对象编程等。
- C语言具有较低的抽象级别,接近硬件,因此执行效率较高。
2. C语言的发展历史。
- C语言在1972年由丹尼斯·里奇(Dennis Ritchie)在贝尔实验室开发。
- 它最初是作为UNIX操作系统的系统编程语言而设计的。
第二章:C语言环境和基本语法1. 如何设置C语言的开发环境?- 选择一个C语言编译器,如GCC、MSVC等。
- 安装编译器并配置环境变量,以便在命令行中直接调用编译器。
2. C语言的基本语法结构是什么?- C语言的基本结构包括预处理指令、函数定义、变量声明和语句。
第三章:数据类型、运算符和表达式1. C语言中的基本数据类型有哪些?- 整型(int)、字符型(char)、浮点型(float和double)等。
2. 运算符的分类及其用法。
- 算术运算符:+、-、*、/、%等。
- 赋值运算符:=、+=、-=等。
- 比较运算符:==、!=、>、<等。
- 逻辑运算符:&&、||、!等。
第四章:控制语句1. 条件语句的用法。
- if语句用于基于条件执行代码块。
- switch语句用于多条件选择。
2. 循环语句的用法。
- while循环用于在满足条件时重复执行代码块。
- for循环用于已知迭代次数的循环。
- do-while循环先执行代码块再判断条件。
第五章:数组和字符串1. 数组的基本概念和使用。
- 数组是相同数据类型的元素集合,存储在连续的内存位置。
- 声明数组:int arr[10]; 表示一个包含10个整数的数组。
2. 字符串的表示和操作。
- 在C语言中,字符串是以空字符('\0')结尾的字符数组。
- 使用标准库函数如strcpy、strlen等操作字符串。
《程序设计基础》PPT课件

• 数值型 货币型比较 • 日期型和日期时间型比较 • 逻辑型比较 • 子串包含测试 • 例题2.9
设置字符的排序次序
• Machine 大写小于小写 • Pinyin 大写大于小写 • Stroke 按照笔画算 • Set collate to ”<pinyin|machine|stroke>”
例题2.1 ?'计算机','123',[数据],['ABC'"abc"] ??"学习",'字符串'," ",[表示方法]
4.日期型常量(Data)
• 日期型数据是存储和表示年、月、日等日 期的数据类型,其内部存储格式为 “yyyy/mm/dd”,其中yyyy代表年份, mm代表月份,dd代表日子,共占8个字符。 年份的取值范围为:100至9999;月份的取 值范围为:1至12;日子的取值范围随年份 和月份的不同而不同,最大范围为:1至31。
STORE <表达式> TO <变量名表> 其中变量名表是用逗号“,”分开的多个变量名。与 等号赋值命令不同的是一条store命令可以同时给多个 变量赋相同的值。
• 功能注释见书本
例如为a,b,c赋相同的值34,需输入命令: store 34 to a,b,c
数组
• 数组是内存中连续的一片区域,它由一系 列元素组成,每个数组元素可通过数组名 及相应的下表来访问
数据类型及其存储方式
6.日期时间型(DateTime) 日期时间型数据用于存储日期和时间值。日期时间型数据存储格式为 “yyyymmdd hhmmss”,其中yyyy表示年,mm(第一个)表示月,dd表示 日,hh表示小时,mm(第二个)表示分钟,ss表示秒(必须为整数)。日 期时间型可以表示一个日期值,也可以表示一个时间值,或者表示一个日 期时间值。日期时间型数据与日期型数据一样在内存中用8个字节存储。 7.双精度型(Double) 双精度型数据是指精度要求较高的数据,或真正的浮点数。双精度型数 据占用8个字节存储空间,取值范围为0.904 656 458 412 47×10 324~ ±0.988 456 743 115×10307。 8.整数型(Integer) 整数型数据用于存取不包含小数部分的数值。整数型数值不用转换成 ASCII字符来存 储,而数值型数据是要进行二进制转换的。整数型占用4个 字节,取值范围为 2 147 483 647~2 147 483 646。
第02章 C语言程序设计基础

带有三个参数, 分隔。 表 带有三个参数,以“,”分隔。&表 分隔 示取变量的地址。 示取变量的地址。
运行结果:the sum of two integer is 30 运行结果:
2.4 C语言程序的基本结构
C语言程序的函数由两部分构成:一部分定义变量(变量 语言程序的函数由两部分构成:一部分定义变量( 代表数据),称为声明部分;另一部分代表操作, ),称为声明部分 代表数据),称为声明部分;另一部分代表操作,由C语句 构成,称为执行部分。 构成,称为执行部分。 程序中,要求函数的声明部分在前面 执行在后面, 声明部分在前面, 在C程序中,要求函数的声明部分在前面,执行在后面, 再次强调: 再次强调:在C语言程 它们的顺序不能颠倒,也不能交叉。但在C++程序中, C++程序中 它们的顺序不能颠倒,也不能交叉。但在C++程序中,声明 序中, 序中,变量必须先定 部分和执行部分可以相互交叉,没有严格的界限,当然执行 部分和执行部分可以相互交叉,没有严格的界限, 后使用, 义,后使用,顺序不 部分中所使用的变量只要在其之前进行定义即可。 部分中所使用的变量只要在其之前进行定义即可。
{
}
主函数名 函数开始 main是主函数名 一个C 是主函数名, main是主函数名,一个C语言程序有且仅有 回车换行符 内部函数名 一个main函数。 程序执行时就是从main main函数 一个main函数。C程序执行时就是从main函 函数体 main函 printf ("Hello C Language!\n"); Language!\ 函数调用 数开始,具体讲就是从“ 开始 开始, 数开始,具体讲就是从“{”开始,到“}”结 结 语句结束标志 束。 参数 函数结束
第二章 C#程序设计基础

2.3.2 赋值运算符
复合赋值 运算符 += -= */ /= %/ &= 类别 描述 二元 二元 二元 二元 二元 二元 var1 += var2等价于var1 = var1 + var2,var1 被赋予var1 与 var2的和 var1 -= var2等价于var1 = var1 - var2,var1 被赋予var1 与 var2的差 var1 *= var2等价于var1 = var1 * var2,var1 被赋予var1 与 var2的乘积 var1 /= var2等价于var1 = var1 / var2,var1 被赋予var1 与 var2相除所得的结果 var1 %= var2等价于var1 = var1 % var2,var1 被赋予var1 与 var2相除所得的余数 var1 &= var2等价于var1 = var1 & var2,var1 被赋予var1 与 var2进行“与”操作 的结果 var1 |= var2等价于var1 = var1 | var2,var1 被赋予var1 与 var2进行“或”操作 的结果 var1 ^= var2等价于var1 = var1 ^ var2,var1 被赋予var1 与 var2进行“异或”操 作的结果 var1 >>= var2等价于var1 = var1 >> var2,把var1的二进制值向右移动var2位,就 得到var1 的值 var1 <<= var2等价于var1 = var1 << var2,把var1的二进制值向左移动var2位,就 得到var1 的值
C#语言概述 语言概述
C#提供了两种注释的类型: 第一种是:单行注释,注释符号是“//”,例如: int a; //一个整型变量,存储整数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)函数调用语句 由函数名、实际参数加上分号组成,其一般形式为: 函数名(实际参数表); (4)流程控制语句 用于控制程序流程,以实现程序的各种结构方式。 (5)复合语句 把多条语句用{}括起来组成一条复合语句。 (6)空语句。 只有分号组成的语句。
四、标准库函数
标准库函数不是C语言本身的组成部分,它是由C编译系 统提供的一些非常有用的功能函数。 在C语言处理系统中,标准库函数存放在不同的头文件 (也称标题文件)中, 例如,输入/输出函数printf和scanf等就存放在标准输 入输出头文件stdio.h中; 求各种数学函数存放在标准输入输出头文件math. h中。 使用时只要把头文件包含在用户程序中,就可以直接调用 相应的库函数了。即在程序开始部分用如下形式: #include <头文件名> 或 #include "头文件名"
2.3.4符号常量
符号常量:是用标识符来表示一个数据;在程序中不能 给它重新赋值。 定义形式: #define 标识符 常量数据 例如: #define PI 3.14159 在程序预处理时,凡是出现标识符PI的地方都将用 数据3.14159来替换。 如: 2*2.3*PI 就等价于 2*2.3*3.14159。 注意:符号常量不是变量,它所代表的值不能再改 变。也就是说,在程序中,不能再用赋值语句对它重 新赋值。
反斜杠字符
单引号字符
8进制数表示的ASCII码对应的字符
\xhh
16进制数表示的ASCII码对应的字符
2.3.3字符串常量
1.字符串常量的概念和字符串长度 字符串常量是用一对双引号括起来的若干字符序列。 字符串中字符的个数称为字符串长度。长度为0的字符串 (即一个字符都没有的字符串)称为空串,表示为“ ” (一 对紧连的双引号)。 例如,“How do you do.”、“Good morning.”等,都 是字符串常量,其长度分别为14和13(空格也是一个字符)。 如果反斜杠和双引号作为字符串中的有效字符,则必须使用 转义字符。 例如: (1)C:\msdos\v6.22 → "C:\\msdos\\v6.22" (2)I say:"Goodbye!" → "I say:\"Goodbye!\"“
3. 运算符
C语言中含有相当丰富的运算符。运算符与变量、 函数一起组成表达式,表示各种运算功能。 运算符由一个或多个字符组成。如: +、-、*、/、%、=、<、>、<=、>=、!=、 ==、<<、>>、&、|、 &&、||、^、~、()、
[]、->、.、!、?、:、,等。
4.分隔符
在C语言中采用的分隔符有逗号和空格两种。 逗号主要用在类型说明和函数参数表中,分隔各个变 量。 空格多用于语句各单词之间,作间隔符。 在关键字和标识符之间必须要有一个或一个以上 的空格符作间隔,否则将会出现语法错误。 例如: 把int a;写成 inta; C编译器会把inta当成一个标识符处理,其结果 必然出错。
2 、C语言的数据类型
2.3 常量
常量是指在程序执行过程中,其值不能发生变化的量。 2.3.1 数值常量 数值常量分为整型常量和实型常量 一、整型常量 整型常量即整常数,在C语言中可用三种形式表示: (1)十进制。例如10、36。 (2)八进制(以数字0开头)。例如012。 (3)十六进制(以0x开头)。例如0x36。 整型常数的后缀 由于基本整型的长度位16位,因而能够表示的数的范围 是有限的(-32768—32767)。如果使用的数超过了这个 范围,就必须用长整型数来表示。长整型数是用后缀L或l来表 示的。例如156L(十进制),013L(八进制),0x12L (十六进制)。 无符号数用后缀u表示,如158u,0x48u,041u等。
2.字符串的存储 C语言规定:在存储字符串常量时,由系统在字符串的末 尾自动加一个‘\0‟作为字符串的结束标志。 注意:在源程序中书写字符串常量时,不必加结束字符‘\0‟, 否则画蛇添足。 如果有一个字符串为“CHINA”,则它在内存中的实际 存储如下所示:
C H I N A \0
最后一个字符'\0'是系统自动加上的,它占用6字节而 非5字节内存空间。
2.转义字符 C语言还允许使用一种特殊形式的字符常量,就是以 反斜杠“\ ”开头的转义字符。 注意:如果反斜杠、单引号或者双引号本身作为字符常量, 必须使用转义字符:‘\\’、‘\’‘、‘\”’。
功能 字符 形式 \n 换行 \t 横向跳 格 \b 退格 \r 回车
字符 形式 \\ \’
\ddd
功能
5.常量
C 语言中使用的常量可分为数字常量、字符常 量、字符串常量、符号常量、转义字符等多种。在 以后的章节中将专门给予介绍。
6.注释符
C 语言的注释符是以“/*”开头并以“*/”结尾的串。 在“/*”和“*/”之间的即为注释。
程序编译时,不对注释作任何处理。注释可出现在程序
中的任何位置。注释用来向用户提示或解释程序的意义。在 调试程序中对暂不使用的语句也可用注释符括起来,使翻译 跳过不作处理,待调试结束后再去掉注释符。
说明:
(1)在C语言中,大小写字母不等效。因此,a 和A,I和i,Sum和sum,分别是两个不同的标 识符。 (2)C程序中,标识符的使用很多,使用时要 注意语法规则。定义标识符时,一般应尽量做到见 名知义,以提高程序的可读性。 (3)建议变量名的长度不要超过8个字符。 (4)C语言规定,用户选取的标识符不能是C 语言规定的关键字。
3.整型变量的定义
一般形式: 类型说明符 变量名标识符,变量名标识符……; 例如: int a,b,c,d; unsigned long x,y; 注意: 允许在一个类型说明符后,说明多个相同类型的变量。变 量名之间用逗号分隔。类型说明符与变量名之间至少用一 个空格间隔。 最后一个变量名后必须以“;”结尾。 变量说明必须放在变量使用之前,一般放在函数体的开头 部分。
第2章 C程序设计基础
本章主要介绍C语言的基本字符集、词 汇、数据类型;基本数据类型的使用;数 据类型之间的转换;运算符、表达式、优 先级和结合性的概念;表达式的书写方法 和值的计算。
2.1 C语言语法基础
一、基本字符集
1、英文字母:大小写各26个,共计52个; 2、阿拉伯数:0~9共10个数字; 3、其他一些可打印(可以显示)的字符,如各种标 点符号、运算符号、括号等; 4、一些特殊字符,如空格符、换行符、制表符和转 义字符等。
2.3.2字符常量 1.字符常量 用一对单引号括起来的单个字符,称为字符常量。 例如,‘A’、‘1’、‘+’等。 字符常量的特点: 1.字符常量只能用单引号. 2.字符常量中的单引号只起定界作用并不表示字 符本身.单引号中的字符不能是单引号和反斜杠. 3.字符常量只能是单个字符,不能是字符串. 4.字符可以是字符集中任意字符.
字符常量与字符串常量的区别: (1)定界符不同:字符常量使用单引号,而字符 串常量使用双引号; (2)长度不同:字符常量的长度固定为 1,而字 符串常量的长度,可以是0,也可以是某个整数; ( 3 )字符常量可以赋值给字符变量 , 但字符串常 量不能赋值给字符变量; ( 4 )存储要求不同:字符常量存储的是字符的 ASCII码值,而字符串常量,除了要存储有效的字符 外,还要存储一个结束标志’\0’。
2.2 数据与数据类型
ቤተ መጻሕፍቲ ባይዱ1、 数据与类型
数据是程序处理的对象。C语言把程序能处理
的基本数据对象分成一些集合。属于同一集合的
数据对象具有同样性质:采用统一的书写形式, 在具体实现中采用同样的编码方式(按同样规则 对应到内部二进制编码,采用同样二进制编码位 数),对它们能做同样操作等等。语言中具有这
样性质的一个数据集合称为一个类型。
三、语 句
语句是组成程序的基本单位,它能完成特定操作, 语句的有机组合能实现指定的计算机处理功能。 C语言的语句分为: (1)表达式语句 由表达式加上分号“;”组成。其一般形式为: 表达式; 执行表达式语句就是计算表达式的值。 例: a+b; i++ (2)赋值语句 将表达式或变量的值赋值给一个变量。 例:a=b+c; m=5;
二、实型常量
实型常量即实数,在C语言中又称浮点数,其值有两 种表达形式: (1)小数形式。例如3.14、9.8。 (2)指数形式:<尾数>E(e)<整型指数>。 例如3.0E+5等。 注意,以下不是合法的实数: 12(无小数点),E3(E前无数字),-4(无E标志), 56.-E7(负号位置不对),8.9E(无阶码)。 ☆规范化的指数形式 :1.345e5 实型常量不分单、双精度,都按双精度型处理。
2.4.2 整型变量
1.分类 根据占用内存字节数的不同,整型变量又分为4类: (1)基本整型(类型关键字为int)。 (2)短整型(类型关键字为short [int])。 (3)长整型(类型关键字为long [int])。 (4)无符号整型。无符号型又分为无符号基本整型 (unsigned [int])、无符号短整型(unsigned short) 和无符号长整型(unsigned long)三种,只能用来存储无 符号整数。 2.占用内存字节数与值域 上述各类型整型变量占用的内存字节数,随系统而异。 在16位操作系统中,一般用2字节表示一个int型变量,且 long型(4字节)≥int型(2字节)≥short型(2字节)。
2、关键字(保留字)
关键字就是具有特定含义的标识符,用户不能用来作 自定义标识符。由ANSI标准推荐的关键字有32个,常 用的有: 与数据类型有关的: char int float double signed unsigned short long void struct union typedef enum sizeof 与存储类别有关的: auto extern register static 与程序控制结构有关的: do while for if else switch case default goto continue break return