数据类型 第3章 3.1 C数据类型概述 3.2 常量 3.3 变量 3.4 基本输入与输出.

Slides:



Advertisements
Similar presentations
第6章 基本的程序语句 6.1 基本数据类型及取值范围 6.2 标识符、变量和常量 6.3 基本运算符、表达式及运算的优先级
Advertisements

没有规矩,不成方圆。.
第二章 基本数据类型及运算 数据类型 常量与变量 不同类型数据间的转换 运算符和表达式.
第三讲 数据输入与输出 数据输出 数据输入.
Chapter2 Constants, Variables, and Data Types
第四章 顺序结构程序设计.
第3章 顺序结构程序设计 本章要点: 格式化输出函数──printf() 格式输入函数——scanf() 字符输出函数——putchar()
第3章 最简单的C程序设计 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出.
C语言高级编程(第四部分) 字符串 北京大学 信息科学技术学院.
基础篇 基础知识 —C语言程序设计 学习目标 掌握C语言中三种常见的基本类型及其使用方法 掌握常见的算术运算符和表达式的使用
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
C语言程序设计 第四章 顺序程序设计.
C语言是结构化程序设计语言,提供了功能丰富的控制语句,本章开始陆续介绍C语言的控制语句:顺序结构、选择结构和循环结构。本章主要介绍三种结构化设计的基本概念,格式输入输出函数printf()和scanf(),字符输入输出函数putchar()和getchar()等内容,要求重点掌握顺序结构设计的基本思想及程序编写方法,熟练掌握常见输入、输出库函数的调用。
第四章 C 语言中的输入和输出.
第二章 基本数据类型与输入输出.
第三单元 数据的输入、赋值处理与输出 从现在开始,将详细讲述C语言的方方面面。第一章中的所有疑惑,都将一一消灭。
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C语言程序设计基础 刘新国.
C程序设计 第三章 简单的c程序——顺序结构
第2章 数据类型、运算符和表达式.
程序设计基础 谭浩强 著 清华大学出版社.
C卓越工程师班 授课老师:龚涛 信息科学与技术学院 2016年9月 教材:《C程序员成长攻略》 网络课程网址:
C语言大学实用教程 第三章 简单的C程序设计 西南财经大学经济信息工程学院 刘家芬
第三章 顺序结构程序设计 主讲教师 贾月乐 电话:
第3章 顺序结构程序设计 为了让计算机处理各种数据,首先就应该把源数据输入到计算机中;计算机处理结束后,再将目标数据信息以人能够识别的方式输出。C语言中的输入输出操作,是由C语言编译系统提供的库函数来实现。 3.1 格式化输出——printf()函数 3.2 格式化输入——scanf()函数.
目录 3.1结构化程序设计 3.2传统流程图及N-S结构化流程图 3.3C语句概述 3.4赋值语句 3.5数据输入输出函数调用语句
3 数据类型、运算符 和表达式.
第二章 数据类型、运算符与表达式.
第三章 数据类型、运算符与表达式.
2.1 C语言的数据类型 2.2 常量与变量 2.3 变量赋初值 2.4 各类数值型数据间的混合运算 2.5 C语言的运算符和表达式
第三章 数据类型、运算符与表达式.
第2章 数据的存储与运算 2.1 数据在计算机中是怎样存储的 2.2 整型数据的运算与分析 2.3 实型数据的运算与分析
第七章 函数及变量存贮类型 7.1 函数基础与C程序结构 7.2 函数的定义和声明 7.3 函数的调用 7.4 函数的嵌套与递归
第4章 顺序程序设计.
第三章 顺序结构程序设计 计算机科学学院.
C语言概述 第一章.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
C语言程序设计.
C程序设计.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
程序设计基础A(C语言) 主讲教师: 许 康 教师主页:
C程序设计.
第 二 章 数据类型、运算符与表达式.
C语言程序设计 教案 崔武子制作
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
本节内容 字符与字符串 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C语言程序设计 李祥 QQ:
第3章 数据类型、运算符与表达式.
第九节 赋值运算符和赋值表达式.
项目1 C程序设计起步 学习目标: 通过该项目你可以知道: C语言的用途。 C语言的基本符号和关键字。 C语言程序的结构及特点。
第2章 数据类型、运算符与表达式 本章要点: 基本数据类型 常量和变量 算术运算符和算术表达式 关系运算符和关系表达式
第2章 基本数据及其运算 本章学习的目标: 1、掌握基本数据的各种表示,基本数据常数的书写方法;
第二章 类型、对象、运算符和表达式.
第二章 基本数据类型 ——数据的表示.
第四章 C 语言中的输入和输出.
2.6 字符型数据 一、 字符常量 1、字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。 例如,‘A’、‘1’、‘+’等。
第4章 顺序结构程序设计 为了让计算机处理各种数据,首先就应该把源数据输入到计算机中;计算机处理结束后,再将目标数据信息以人能够识别的方式输出。C语言中的输入输出操作,是由C语言编译系统提供的库函数来实现。 4.1 格式化输出——printf()函数 4.2 格式化输入——scanf()函数.
C程序设计 实验二 数据类型、运算符和表达式 第6讲
第3章 最简单的C程序设计 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出.
第3章 顺序结构程序设计 为了让计算机处理各种数据,首先就应该把源数据输入到计算机中;计算机处理结束后,再将目标数据信息以人能够识别的方式输出。C语言中的输入输出操作,是由C语言编译系统提供的库函数来实现。 3.1 格式化输出——printf()函数 3.2 格式化输入——scanf()函数.
Introduction to the C Programming Language
Chap 6 数据类型和表达式 6.1 数据的存储和基本数据类型 6.2 常量和变量 6.3 数据的输入和输出 6.4 类型转换
基本知识 数据类型、变量、常量、运算符.
第二章 数据类型、运算符和表达式 §2.1 数据与数据类型 §2.2 常量、变量和标准函数 §2.3 基本运算符及其表达式 目 录 上一章
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
第二章 简单数据类型 §2.1 数据类型概述 §2.2 变量和常量 §2.3 简单数据类型 §2.4 简单数据类型的相互转换
学习目标 1、什么是列类型 2、列类型之数值类型.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

数据类型 第3章 3.1 C数据类型概述 3.2 常量 3.3 变量 3.4 基本输入与输出

3.1 C数据类型概述 数据类型是一个值的集合以及定义在这个值集上的一组操作的总称。如:整数类型int,其值为[-32768,32767],基本操作为:加、减、乘、整除和取模。 枚举类型 (Ch12) 数据类型 基本类型 整型 数组类型 (Ch6) 字符型 实型 结构体类型 (Ch9) 共用体类型 (Ch12) 指针类型 (Ch8、Ch11) 空类型(void) 构造类型 注:数据可分为常量和变量,它们分属上述类型。

? 3.2 常 量 常量——就是其值在程序运行过程中不能被改变的量,它相当于数学中的常数。 常量是什么呢 3.2 常 量 ? 常量——就是其值在程序运行过程中不能被改变的量,它相当于数学中的常数。 常量是什么呢 在C语言中常量可分为一般常量和符号常量共两类。

常量的使用 一般常量的使用 …… int year; year=1999; year=year+1; /* 1999 和 1 为一般常量 */

符号常量的使用 #define PI 3.14159 //定义符号常量 void main() { int r; float l; r=10; l=2*PI*r; printf(“周长=%f\n”, l); } void main() { int r; float l; r=10; l=2*3.14159*r; printf(“周长=%f\n”, l); } PI也是一个常量,称之为符号常量,由#define 命令定义,代表常数3.14159。编绎时编译系统自动将所有的PI替换成3.14159。 符号常量定义方法: #define 常量标识符 常量

3.3 变 量 变量——就是其值在程序运行过程中可以改变的量。 3.3 变 量 变量——就是其值在程序运行过程中可以改变的量。 变量就相当于图中用同一杯子装载不同的物质,当装载物质不同时,整个杯子的值也就发生了变化。

cup 物质性质 杯中物质 杯 子 液体 变量名 变量值 char ‘w’ ‘m’ ‘c’ ‘g’ 变量类型 水、牛奶 咖啡、汽油 杯 子 变量名 cup 变量值 ‘w’ ‘m’ ‘c’ ‘g’ 变量类型 char (字符型)

变量定义(声明) 变量定义(声明)的格式: 类型标识符 变量表列; 例如:int a, b, sum; 注意变量标识符的命名规则。 类型标识符 变量表列; 例如:int a, b, sum; 注意变量标识符的命名规则。 C语言严格区分大小写,大小写为不同字符,标识符有效长度为31个字符。

变量定义(声明) #include <stdio.h> void main() { int num1, num2, sum; sum=num1+num2; printf(“sum=%d\n”, sum); num1=-5; // 变量赋值 num2=num1+3; } 变量定义(声明) 程序中的num1, num2和sum都是变量,它们的值在程序运行过程中都发生了变化。 变量定义(声明)之后,各变量的初值都是不确定的。 num1的第一个确切值是10,当再次给num1赋值后,它的值就变成了-5。变量num2和sum的变化情况类似。如下图所示: 初始状态: 第1次赋值后: 第2次赋值后: 不确定 10 -5 num1 25 -2 num2 35 -7 sum

变量赋值与初始化 变量初始化 变量赋值格式 例如: int k=1000; 变 量 = 表达式 例如: i=10; j=100; 并且初值为1000 */ 变 量 = 表达式 例如: i=10; j=100; i=j+30; sum=100+j; int k; k=1000;

整型数据 整型常量 1. 十进制整数:30,100,70 2. 八进制整数 3 . 十六进制整数 例如: void main() { 1. 十进制整数:30,100,70 2. 八进制整数 3 . 十六进制整数 例如: void main() { int a, b, c; a=50; b=35; c=10; printf(“a=%d, b=%d, c=%d\n”, a, b, c); } a=50,b=35, c=10

整型变量 整型变量类型 基本型:int 短整型:short [int] 长整型:long [int] 无符号型:unsigned [int] , unsigned short , unsigned long 例如: int a=-2; short int b=32765; long int c=-2; unsigned int d=65534; unsigned short e=32765; unsigned long f=-2;

整型变量存储形式及范围 对于有符号整数: 最高位为1表示负数; 最高位为0表示正数。 对于无符号整数: 最高位也是数值位! 类型 字节 数据范围 在内存中的存储情况 int ▊ ▊ -215~(215-1) -32768 ~ 32767 1111111111111110 [-2] short int ▊ ▊ -215~(215-1) 0111111111111101[32765] long int ▊ ▊ ▊ ▊ -231~(231-1) 1111111111111111 1111111111111110 [-2] unsigned int ▊ ▊ 0~(216-1) 1111111111111110[65534] unsigned short ▊ ▊ 0~(216-1) 0111111111111101[32765] unsigned long ▊ ▊ ▊ ▊ 0~(232-1) 0000000000000000 1111111111111111[65535] 对于有符号整数: 最高位为1表示负数; 最高位为0表示正数。 对于无符号整数: 最高位也是数值位!

整型数据的输出格式 %d 十进制带符号整数形式 %u 十进制无符号整数形式 %ld 十进制带符号长整数形式 %lu 十进制无符号长整数形式 void main() { int a=-1, b=32767; long c=-1; printf("a=%d, %u\n", a, a); printf("b=%d, %u\n", b, b); printf("c=%ld, %lu\n", c, c); } 输出结果是:

整型常量的类型 值在-32768 ~ +32767之间为int型,可赋给int、long int型变量 值在-231 ~ -32769或32768 ~ (231-1)之间为long型,可赋给long 型变量 若short int 与int在内存中长度相等 ,int型常量也是short int型,可以赋给int、short int型变量 常量中无unsigned型

实型数据 实型常量 实型变量 实型数据的输出格式:%f 1. 十进制:.678, 798., 123.0, 0.123 (必须有小数点) 1. 十进制:.678, 798., 123.0, 0.123 (必须有小数点) 2. 指数形式:数 e或E 整数 123E3, 123e3 相当于123103 实型变量 float 4B 6~7位有效数字 3.4×10-38 ~ 3.4×1038 double 8B 15~16位有效数字 1.7×10-308 ~ 1.7×10308 long double 10B 18~19位有效数字 3.4×10-4932 ~ 3.4×104932 实型数据的输出格式:%f

字符型数据 字符常量 1、用单引号括起来的1个字符:‘a’ ‘A’ ‘#’ ‘*’ 2、以“\”开头的转义字符 \n \r \t \\ \v 功 能 \n 换行 \r 回到同行首部 \t 横向跳格 (跳到下一个输出区) \\ 反斜杠字符 \v 竖向跳格 \' 单引号字符 \b 退格 \" 双引号字符

字符型数据 例如 void main() { printf(“□c\t□de\ra\tY\b=\n”); printf(“\376”); } 结果 123456789 显示结果:a =de ■ □c □de a Yde a =de 变化情况

字符变量 字符数据在内存中存储形式及使用方法: 定义(声明):char 变量名; 注:只能存放一个字符,不能存放若干个字符 如:char c1=‘A’, c2=‘#’; 字符数据在内存中存储形式及使用方法: char数据在内存中占1B,存储该字符的ASCII码,可以以字符或整数输出 如:c1=‘a’ ASCII为97 内存存储形式: 01100001 c2=‘A’ ASCII为65 内存存储形式: 01000001 注:在TC中字符型变量最高位被当成符号位; 在TC中允许使用unsigned char即无符号字符型变量

字符串常量 由一对双引号括起来的字符(或转义字符)序列。 如:“How are you ?” “Hello World !\n” 区 别: ‘a’ “a” 存储形式: ┌─┐ ┌─┬─┐ │97│ │97│\0│ └─┘ └─┴─┘ 存放变量: 字符变量 字符数组 实际长度: 1 2

3.4 基本输入与输出 例:输入两个字符并回显这两个字符。 # include <stdio.h> void main() { 3.4 基本输入与输出 例:输入两个字符并回显这两个字符。 # include <stdio.h> void main() { char c1, c2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); } 使用命令:#include <stdio.h> 字符I/O:getchar / putchar 格式化I/O:scanf / printf 字符输出函数: putchar() 字符输入函数: getchar() 不能按如下形式输入: x<CR> y<CR> 因为输入x<CR>后,c1得‘x’,c2得‘\n’,因此输出结果为: x 运行情况如下: xy<CR> xy

格式化输出函数printf 格式:printf(“格式控制”,输出参数表列) 例:printf(“a=%d,b=%d\n”, a, b); 格式控制: 格式字符:%格式字符 (如%d、%s、%c、%f ) 普通字符:字母、汉字、数字等 转义字符:\n,\t 等 输出参数表列: 变量:printf(“x=%d, y=%d\n”, x, y); 字符串:printf(“%s\n”, “How do you do?”); 表达式:printf(“%d%d\n”, x+y/10, x*y);

格式字符 u 以无符号十进制形式输出整数 c 以字符形式输出,只输出一个字符 s 输出字符串 格式字符 说 明 d 以带符号的十进制形式输出整数(正数不输出符号) u 以无符号十进制形式输出整数 c 以字符形式输出,只输出一个字符 s 输出字符串 f 以小数形式输出单、双精度数,隐含输出六位小数 e 以标准指数形式输出实数,尾数部分保留六位有效数字 g 自动选用%f或%e格式输出,不输出无意义的0

整型数据格式字符 基本整型数据格式字符: (1) d格式符,以十进制形式输出基本整型数据; (2) ld格式符,以十进制形式输出长整型数据; (3) lu格式符,以十进制形式输出无符号长整型数据。 例如: int a=-2; printf("%d, %ld, %lu\n", a, a, a); 输出结果为: -2, -2, 4294967294

指定输出宽度 两个附加格式字符m和-。其中m为一正整数,用来指定输出宽度,如果数据的实际宽度比指定输出宽度小,则补上空格后按指定宽度输出,如果数据的实际宽度比指定输出宽度大,则按实际宽度输出; 附加格式符“-”是用来说明采用左对齐方式,没有“-”时默认是右对齐方式。附加格式符放在%和格式符之间使用。 运行结果为: a=□-4,□b=□45,□c=456,□d=4567 a=-4□,□b=45□,□c=456,□d=4567 u=456□□,□u=□□456,□l=456□□,□l=□□456 【例】 void main() { int a=-4, b=45, c=456, d=4567; unsigned u=456; long l=456; printf("a=%3d, b=%3d, c=%3d, d=%3d\n", a, b, c, d); printf("a=%-3d, b=%-3d, c=%-3d, d=%-3d\n", a, b, c, d); printf("u=%-5u, u=%5u, l=%-5ld, l=%5ld\n", u, u, l, l); }

字符和字符串类型数据格式字符 字符类型数据格式字符: c c格式符用来输出字符类型数据,亦可以对整型数据进行输出。例如: char c1='A', c2='B'; int a=97, b=98; printf("%c%c%c%c%c\n", c1, c2, '\n', a, b); 的输出结果为: AB ab 字符串类型数据格式字符: s s格式符是用来输出字符串类型数据,如: printf("%s\n%s\n", "Jiang Xi", "Nan Chang"); 的输出结果为: Jiang Xi Nan Chang

指定输出宽度 【例】 void main() { char c1='A'; int c2=98; printf("c1=%-3c, c2=%3c\n", c1, c2); printf("str1=%-8s, str2=%8s\n", "JXCJDX", "JXCJDX"); printf("str3=%-8.2s, str4=%8.4s\n", "JXCJDX", "JXCJDX"); printf("str5=%-.4s, str6=%.4s\n","Information","Information"); } .n的作用时只取字符串左端n个字符输出 运行结果如下: c1=A□□, c2=□□B str1=JXCJDX□□, str2=□□JXCJDX str3=JX□□□□□□, str4=□□□□JXCJ str5=Info, str6=Info

实型数据格式字符 格式符: f 指定输出宽度: (1) %m.nf m列,保留n位小数 (2) %-m.nf m列,保留n位小数,左对齐

注意: 1.数据类型与格式说明字符要匹配,否则将会出现错误。 2.Turbo C要求格式字符要用小写字母 3.可以在格式控制字符串内包含转义字符 4.上面介绍的d,, u, c, s, f, e, g等字符,如用在“%”后面就作为格式符号,否则作为普通字符。 5.如果想输出字符‘%’,则应该在格式控制字符串中用连续两个%表示 6.不同的系统在实现格式输出时,输出结果可能会有一些小的差异。

指定输出宽度 【例】 void main() { float a=34.567898765; double b=12345678.87654321; printf("a=%f, a=%8.2f, a=%8.2f, a=%.2f\n",a,a,a,a); printf("a=%e, a=%-12.3e, a=%12.3e, a=%.3e\n ",a,a,a,a); printf("a=%10e,b=%f, b=%e, b=%g, b=%8.4g\n", a,b,b,b); } 运行结果如下:

格式输入函数 scanf 一般形式: scanf(“格式控制”, 地址表列); “格式控制”的含义同printf函数,地址表列是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。 【例】 void main() { int a, b, c; scanf("%d%d%d", &a, &b, &c); printf("a=%d, b=%d, c=%d\n", a, b, a+b); }

注意: 1、格式控制中的普通字符照原样输入: scanf(“a=%d, b=%d”, &a, &b); 输入:a=12, b=4↙ 2、对于格式符“%c%c”,输入的若干字符之间不必使用分隔符,它会读取遇到的任何字符,包括换行符’\n’及空格符’□’。 3、在输入数值数据(整数或实数)时,遇以下情况结束该数据: (1) 遇空格符,或回车换行符或跳格(Tab健)符。 (2) 遇宽度结束,如“%3d”,只取3列。 (3) 遇非法输入。如: scanf("%d%c%f", &a, &b, &c); scanf("%c%f", &d, &e); 若输入:1234a123o.26<CR> 则:将1234送给变量a;字符'a'送给变量b;123送给变量c;'o'赋给变量d,将.26赋给变量e。

根本无法实现正确输入!!! 运行情况如下: Please input 2 int number: a=12, b=24<CR> Please input 2 real number: c=3.14, d=2.5<CR> a=12, b=24 c=3.14, d=2.50 例:带分隔符的整型数据的格式输入。 #include <stdio.h> void main() { int a, b; float c, d; printf("Please input 2 int numbers:\n"); scanf("a=%d, b=%d", &a, &b); getchar(); /* 用来读取给变量a, b输入数据后的回车换行符 */ printf("Please input 2 real nembers:\n"); scanf("c=%f, d=%f", &c, &d); printf("a=%d, b=%d\n", a, b); printf("c=%.2f, d=%.2f\n", c, d); } 建议在输入函数的格式控制中,不要使用普通字符。特别是如下语句: scanf(“%d\n”, &x); 根本无法实现正确输入!!!