《第2章 数据类型 变量和输入函数》由会员分享,可在线阅读,更多相关《第2章 数据类型 变量和输入函数(37页珍藏版)》请在金锄头文库上搜索。
1、高二上学期:程序设计基础第二章 数据类型、变量和输入函数本章内容学习语言的数据类型学习语言的变量及其用途学习语言输入函数scanf()的详细用法数据类型 数据类型基本类型空型字符型整型实型单精度浮点 型双精度浮点 型构造类型数组类型结构体类型基本数据类型 空型(void)字符型(char)整型(int)单精度浮点型(float)双精度浮点型(double)变量的主要特征就是会受到其他后面的语句改变而改变,即在同一个函数内同一个变量在不同的位置,其值是可能不同的。 变量的主要特征举例#include “stdio.h“ main() int a; a=10; printf(“这时a变量中存放的值
2、是:%dn“,a); a+; printf(“这时a变量中存放的值是:%dn“,a); a-=3; printf(“这时a变量中存放的值是:%dn“,a); a=a+10; printf(“这时a变量中存放的值是:%dn“,a); 什么是变量?是用数据类型在内存中开辟的空间。一个变量应该有一个名字,也就是我们程序员给该空间取的名叫变量名。它在内存中占据一定的存储单元。变量定义必须放在变量使用之前,即先定义后使用,一般都放在函数体的开头部分。定义变量的语法 一行只定义一个变量:一行定义多个变量:注:表示必须的意思,表示非必须的。变量名的取名规则1. 第一个字符只能是字母或下划线( _ );2.
3、第一个字符的后而只能跟字母、数字和下划线( _ );3. 关键字(写上去会变色的那些单词)不能用作变量名;4. 区分大小写; 变量名的取名规则举例#include “stdio.h“main()int _a,a,a1,a_1;/正确的一组变量int 1a,a,a?1,a/错误的一组变量整型变量 整型变量的分类1.基本型:类型说明符为int,在内存中占2个字节。2.短整量:类型说明符为shortint或short。所占字节和取值范围均与基本型相同。3.长整型:类型说明符为longint或long,在内存中占4个字节。整型数据在内存中的存入形式1.先定义后赋值:int i;i=A;/赋予比int型
4、小的单字符型值Ai=10; /赋予int型的值101.定义时赋值;int i=A;int i=10; 整型变量举例整型变量的数据溢出实型变量实型变量的分类: 1.单精度(float型):占4个字节(32位)内存空间 2.双精度(double型):双精度型占8个字节(64位)内存空间 3.长双精度(long double型) 单精度型数据在内存中的存入形式: 1.先定义后赋值: float i; i=A;/赋予比float型小的单字符型值A i=10;/赋予比float型小的整型值10 i=10f;/赋予float型的值10f1.定义时赋值; float i=A; float i=10; 实型变
5、量举列实数型变量的数据溢出 实型变量2双精度型数据在内存中的存入形式: 1. 先定义后赋值: double i; i=A;/赋予比float型小的单字符型值A i=10;/赋予比float型小的整型值10 i=10f;/赋予float型的值10f i=10.0;/赋予double型的值101. 定义时赋值; double i=A; double i=10; 双精度型变量举例 实型数据的舍入误差 字符常量 字符常量是用单引号括起来的一个字符。 1. 例如: 2. a、b、=、+、? 在语言中,字符常量有以下特点: 1. 字符常量只能用单引号括起来,不能用双引号或其它 括号。 2. 字符常量只能是
6、单个字符,不能是字符串。 3. 字符可以是字符集中任意字符。但数字被定义为字符 型之后就不能参与数值运算。如5和5是不同的。5 是字符常量,不能参与运算。 字符变量 字符变量用来存储字符常量,即单个字符。字符变量的类型说明符是char。字符变量类型定义的格式和书写规则都与整型变量相同。1. 例如:char a,b;字符的存储形式及使用方法 每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符值是以ASCII码的形式存放在变量的内存单元之中的。1.如x的十进制ASCII码是120,y的十进制ASCII码是121。对字符变量a,b赋予x和y值:2.a=x;3.b=y;所以也可以把它们看
7、成是整型量。语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。整型量为二字节量,字符量为单字节量,当整型量按字符型量处理时,只有低八位字节参与处理 00011110a: 10011110b: 向字符变量赋以整数 向字符变量赋以字符值输入函数scanf() scanf函数,与printf函数一样,都被定义在stdio.h里,因此在使用scanf函数时要加上#include它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其关键字最末一个字母f即为“格式”(format)之意 scanf函数的语法格式
8、scanf(“格式控制“,地址列表); 1. “格式控制”的含义同printf函数;2. “地址列表”是由若干个地址组成的表列,可以是变量的地址,或字符串首地址 使用scanf函数输入数据1 输入:3空格1空格2,输出: 使用scanf函数输入数据2输入:3Tab键1Tab键2,输出: 输入:3回车1回车2,输出: 格式占位符在scanf()函数中的含意 %c从键盘接收一个字符 %d从键盘接收十进制整数 %s从键盘接收一个字符串,遇空格、制表符或 换行符表示接收完毕。 %从键盘接收一包含在括号内的字符,只要遇 到有一个不在其内的字符,便表示接收完毕。使用scanf函数要注意的问题 1. sac
9、nf()中的变量必须使用地址,除用%s接收字 符串外 2. scanf()的格式控制串可以使用其它非空白字符 ,但在输入时必须输入这些字符。 3. 在用“%c”输入时,空格、回车和“转义字符”均 作为有效字符。 4. scanf()函数接收输入数据时,遇以下情况完毕 一个数据的输入: .遇空格、“回车”、“TAB”键。 .遇宽度结束。 .遇非法输入。 问题一 scanf()函数不能正确接受有空格的字符串:输入:Ilove you 输出: 解决问题一问题二 键盘缓冲区残余信息问题 如果输入:A空格B空格C,输出: 解决问题二输入:A回车B回车C,输出: 问题三scanf()函数误输入造成程序死锁或出错 如上程序,如果正确输入a,b的值,那么没什么问题,但是, 你不能保证使用者每一次都能正确输入,一旦输入了错误 的类型,你的程序不是死锁,就是得到一个错误的结果, 呵呵,这可能所有人都遇到过的问题吧? 解决问题三总结1. 学习语言的数据类型2. 学习语言的变量及其用途3. 学习语言输入函数scanf()的详细用法