程序设计基础(C语言版)课件 第2章 数据类型、运算符和表达式_第1页
程序设计基础(C语言版)课件 第2章 数据类型、运算符和表达式_第2页
程序设计基础(C语言版)课件 第2章 数据类型、运算符和表达式_第3页
程序设计基础(C语言版)课件 第2章 数据类型、运算符和表达式_第4页
程序设计基础(C语言版)课件 第2章 数据类型、运算符和表达式_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章数据类型、运算符和表达式2.1数据类型2.2常量2.3变量2.4数据的基本运算本章主要内容2.5数据类型转换2.1数据类型数据是运算的对象,数据类型是按照数据的表示形式和特性对数据进行的分类。运算符如加、减、乘、除等数学运算符和与、或等逻辑运算符。数据与运算符一起构成了表达式。数据类型基本类型构造类型指针类型整型空类型实型(浮点型)字符类型数组类型枚举类型结构体类型共用体类型布尔类型(C99)复数类型(C99)整型、实型、字符类型、布尔类型和复数类型最基本最常用的数据类型,由系统提供。构造数据类型是由基本数据类型按照一定规则组合而成,由用户根据需要定义。2.2常量常量是指在程序的执行过程中,其值不能发生变化的量和具有固定值的量。2.2.1字面常量1.整型常量整型常量也就是整数。在C语言中,整数有十进制、八进制和十六进制三种表示形式。2.实型常量十进制形式:例如,2.5,-5.8,3.0,.123,123.等。指数形式:它由十进制数和阶码标志“e”或“E”以及阶码组成。例如,123e+3或123E+3。2.2常量2.2.1字面常量3.字符常量C语言中的字符常量是用单引号括起来的一个字符。如:'a','A','6'等。字符型数据在内存中是以相应的ASCII码形式存放的。C语言中字符型数据和整型数据之间可以通用。2.2常量【例2-1】字符型数据按整数形式输出示例。#include<stdio.h>intmain(){charch;ch='a';printf("%c,%d\n",ch,ch);return0;}2.2常量2.2.1字面常量3.字符常量在C语言中,还使用一种特殊形式的字符常量,就是以一个“\”开头的字符序列,称为“转义字符”。字符形式含义ASCII代码\n换行,将当前位置移到下一行的开头10\t横向跳格,跳到下一个Tab位置9\b退格8\r从当前位置移到本行的开头13\f换页,将当前位置移到下页的开头12\\反斜杠字符“\”92\'单引号字符39\"双引号字符34\ddd1~3位八进制数所代表的字符

\xhh1~2位十六进制数所代表的字符

表2-1转义字符及其含义2.2常量【例2-2】转义字符的输出。#include<stdio.h>intmain(){printf("*");printf("\b#\n");

return0;}2.2常量2.2.1字面常量4.字符串常量字符串常量是用一对双引号括起来的若干字符序列。如:"abcd"、"name"、"123"等。双引号作为字符串定界符是不能出现在字符串中的,如果要在字符串中插入双引号和“\”,必须使用转义字符。字符串中的字符个数称为该字符串的长度。字符串常量在机器内存储时,系统自动在字符串的末尾加上一个结束标志,它是转义字符“\0”。这个字符是系统在存储时自动加上的。字符串常量与字符常量是不同的。2.2常量2.2.2符号常量符号常量,也称宏常量,是指用一个标识符号代表的一个常量,此时该标识符号与此常量是等价的。符号常量是由C语言中的宏定义编译处理命令来定义的。宏定义的一般形式为:#define标识符字符串宏定义中的标识符被称为宏名(MacroName),将程序中出现的宏名替换成字符串的过程称为宏替换。宏名与字符串之间可以有多个空白符,但字符串后只能以换行符终止,且除非特殊需要一般不出现分号。2.2常量【例2-3】求圆面积。#include<stdio.h>#definePI3.14intmain(){floatr,s;

r=2.5;

s=PI*r*r;

printf("%f",s);

return0;}2.2常量2.2.3const常量const常量,其本质是使用const限定符声明的变量,与变量声明形式类似。定义const常量,用到关键词const。constdoublePI=3.14;const常量,其本质是使用const限定符声明的只读变量,是C语言的语句,其结尾需要加上;。2.3变量2.3.1变量的概念程序运行期间其值可以改变的量称为变量。数据被存储在一定的内存单元中,并连同存储它的内存单元一起被抽象为变量,每个变量都有一个名字,这个名字被称为变量名,它代表了某段存储单元及其所存储的数据。inta=5;它意味着,在程序中声明了一个整型变量,变量名为a,其值为5,它在内存中占据连续的4个字节用于存放数据,其首地址称为该变量的地址。2.3变量2.3.2标识符及其命名规则在C语言程序中,实体(如:变量、函数、数组、结构体以及文件)的名字统称为标识符,标识符的命名规则是:由字母、数字和下划线组成,且以字母或下划线开头。标识符的长度无统一规定,但考虑到程序的可移植性,建议标识符的长度最长不要超过8个字符。标识符不能与C语言提供的关键字同名。2.3变量2.3.2标识符及其命名规则在定义标识符时,建议遵循下列原则:尽量做到“见名知义”,以增加程序的可读性。如:sum、average、date、area等。变量名、函数名用小写字母,符号常量用大写字母。在容易出现混淆的地方尽量避免使用容易认错的字符。系统内部使用了一些用下划线开头的标识符(如:_fd,_cleft,_mode),为防止与用户自己定义的标识符冲突,建议用户在定义标识符时尽量不要以下划线开头。C语言区分大小写字母,因此大写字母和小写字母被看作是两个不同的字符。2.3变量2.3.3变量的声明与初始化C语言中,要求使用变量必须先声明。也就是在使用变量之前,必须先将变量的名字及其类型告诉编译器。如果使用一个未经声明的变量,编译器会生成一条错误信息。变量声明的格式为:变量类型变量名;可以先声明变量,然后再给它赋值,也可以在声明变量的同时,就给变量赋值。我们称在声明变量的同时给变量赋初值的操作为变量的初始化。在使用变量之前,一定要为其赋一个确定的值。没有默认值并且尚未在程序中被赋值的变量是未初始化的,如果试图访问未初始化的变量,可能会出现不可预知的结果。C89中要求函数中变量的声明要放在函数的开头,任何可执行语句之前。C99中则要求变量在第一次使用之前声明即可。2.3变量2.3.4整型变量1.整型变量的分类整型变量可分为五类:基本整型,用int表示。短整型,用shortint或short表示。长整型,用longint或long表示。长长整型,用longlongint或longlong表示。无符号整型,用unsigned表示。默认情况下,C语言中的整型变量都是有符号的,若要使用无符号整型,需要将其声明为unsigned的类型。2.3变量2.3.4整型变量2.整型变量的存储整数是以补码形式存储的C语言并未具体规定各种整型类型的长度,只要求short型不长于int型,int型不长于long型,long型不长于longlong型。因此,在不同C语言编译器中,各种整型数据所占内存空间大小,取值范围是有所不同的。C语言提供了一个测定变量或数据类型所占存储空间大小的运算符“sizeof”,它的格式为:sizeof(常量或变量名或类型名)2.3变量【例2-5】用sizeof运算符测定所用的C系统中各数据类型的长度。#include<stdio.h>intmain(){printf("short:%dbytes\n",sizeof(short));printf("int:%dbytes\n",sizeof(int));printf("long:%dbytes\n",sizeof(long));printf("longlong:%dbytes\n",sizeof(longlong));return0;}2.3变量整型变量运算结果超出取值范围会发生溢出。【例2-6】整型数据的溢出示例。#include<stdio.h>intmain(){inta,b;a=2147483647;b=a+2;printf("%d,%d",a,b);return0;}2.3变量3.整型变量的声明变量必须要先声明再使用。C语言中一行代码还可以同时声明多个同类型的变量。2.3变量【例2-7】整型变量的声明与使用示例。#include<stdio.h>intmain(){inta,b,c,d;unsignedu;a=12;b=-24;u=10;

c=a+u;d=b+u;

printf("a+u=%d,b+u=%d\n",c,d);

return0;}2.3变量2.3.5布尔变量在C99标准之前,C语言中没有原生的bool类型,通常会使用整数来代替bool类型,其中0表示false,非零表示true。C99标准添加了_Bool类型,用于表示逻辑值true和false。_Bool类型变量用值1表示true,值0表示false,所以_Bool类型实际上也是一种整数类型。C99标准里面提供了头文件<stdbool.h>,可以让bool成为_Bool的别名,这样就能在C语言里面正常使用bool变量。2.3变量2.3.6实型变量C语言的实型变量分为三种:单精度、双精度和长双精度,分别用float、double和longdouble表示。longdouble类型的长度随着机器的不同而变化,最常见的是80位和128位。浮点型常量默认是double类型,如果想让浮点型常量表示为float类型,则需要在浮点数后面加一个F或f。不同浮点数类型变量由于所占内存空间大小不同,会有不同的表示范围和表示精度。2.3变量【例2-8】float和double的有效位数示例。#include<stdio.h>intmain(){floata;doubleb;

a=111111.111;b=111111.111;printf("a=%fb=%f\n",a,b);

return0;}2.3变量2.3.7字符型变量字符型变量是用来存放字符常量的。它只能保存一个字符,而不是一个字符串。C语言中有两种形式的字符型变量:字符变量和无符号型字符变量。charc1;unsignedcharc2;char型变量ASCII值的取值范围是0~127,unsignedchar型变量的取值范围是0~255。字符型数据和整型数据之间是可以通用的。2.3变量【例2-9】字符数据和整型数据之间的转换示例。#include<stdio.h>intmain(){charc1,c2,c3,c4;c1='a';c2='b';c3=97;c4=98;

printf("c1=%c,c2=%c\n",c1,c2);

printf("c1=%d,c2=%d\n",c1,c2);

printf("c3=%c,c4=%c\n",c3,c4);

printf("c3=%d,c4=%d\n",c3,c4);

return0;}2.3变量【例2-10】字符数据和整型数据之间的运算示例。#include<stdio.h>intmain(){

charc1,c2;

c1='a';c2='b';

printf("c1=%c,c2=%c\n",c1-32,c2-32);

return0;}2.4数据的基本运算2.4.1算术运算符和算术表达式1.基本算术运算符表2-5算术运算符操作符作用运算规则+加,一目取正只有一个操作数时为正号运算符,有两个操作数时为加号运算符-减,一目取负只有一个操作数时为负号运算符,有两个操作数时为减号运算符*乘乘号运算符,注意它的书写形式与数学中书写形式的区别/除除号运算符,注意当两个操作数均为整数时它表示整除,否则表示实数除法%模模运算符或称求余运算符,注意它要求两个运算数均为整数2.4数据的基本运算算术运算符与数学中基本相同“/”是除运算符,但是它与数学中的除运算有所不同。在C语言中,两个整数相除得到一个整数,实数相除得到一个实数。“%”是模运算符,即两数相除所得的余数。余数的符号与被除数的符号相同。用算术运算符和括号将运算对象(也称操作数)连接起来的符合C语法规则的式子,称为C算术表达式。运算对象包括常量、变量、函数等。2.4数据的基本运算【例2-11】输入两个整数,分别代表糖果的个数和小朋友的个数,要求输出平均每个孩子能得到多少颗糖果,不能平均分配的还有几颗。#include<stdio.h>intmain(){intcandies,kids;scanf("%d%d",&candies,&kids);

printf("每人分%d个\n",candies/kids);

printf("剩余%d个\n",candies%kids);

return0;}2.4数据的基本运算【例2-12】求一个三位正整数各位数字之和。#include<stdio.h>intmain(){intn,d0,d1,d2;scanf("%d",&n);d0=n%10; /*将个位存入d0*/d1=(n/10)%10; /*将十位存入d1*/d2=(n/100)%10; /*将百位存入d2,也可写为d2=n/100*/

printf("%d\n",d0+d1+d2);

return0;}2.4数据的基本运算2.4.1算术运算符和算术表达式2.运算符的优先级和结合性在表达式求值时,先按运算符的优先级高低次序进行,如果优先级相同,则按结合性处理。算术运算符的优先级与数学中相同,它们的顺序为:*、/、%同级别,+、-同级别但低于*、/、%。C规定了各种运算符的结合方向(结合性),算术运算符的结合方向为“自左至右”,即先左后右,称为“左结合”。2.4数据的基本运算2.4.2赋值运算符和赋值表达式1.赋值运算符赋值运算符为“=”,它的作用是给变量赋值。赋值运算符具有右结合性,正确理解赋值运算的最好方法是从右向左读。当表达式值的类型与被赋值变量的类型不一致时(但都是基本类型),系统自动将表达式的值转换成被赋值变量的数据类型。2.4数据的基本运算【例2-14】变量多次赋值示例。#include<stdio.h>intmain(){intx;x=2;

x=4;

printf("x=%d\n",x);

return0;}2.4数据的基本运算2.4.2赋值运算符和赋值表达式2.复合赋值运算符C语言允许在赋值运算符“=”之前加上其他运算符,构成复合运算符。复合

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论