C语⾔作业第⼆章C语⾔的数据类型
C语⾔作业 第⼆章 C语⾔的数据类型
2.1 引例
运⾏结果:
Programming is fun
说明
(1)程序中第⼀⾏:
/*Output:“Programming is fun.”*/
它是程序的注释,⽤于说明的功能,是为增加程序的可读性⽽设置的注释内容必须包含在/*和*/之间,其内容可以是任何可显⽰字符,注释部分可以出现在程序和执⾏结果没有任何影响。注意/和*之间不能有空格
(2)在程序的适当位置插⼈注释,可以使程序容易被⼈理解。注释可以出现在程序中任意合适的地⽅,但必须成对出现。注释出现在某--段代码的前⾯时,其作⽤为说明该段代码的功能;出现在-⾏代码的后⾯时,⽤于说明该⾏代码的功能。注意注释不能出现在语句的中间。
(3)程序中的第⼆⾏是 #include<stdio.h>
它是它是编译预处理命令,因为程序中调⽤了pinr()函数.该函数是c语盲提供的标准输出图数,在系统⽂件sdio. h(称为头⽂件)中声明,所以在程序开始处夔使⽤件包含进来。注意C语⾔有效的预处理命令总是以#开始的,预处理命令的末尾不加分号。
(4)程序中的第三⾏是
int main( void)
它是本程序中的“主函数”,在⼀个C程序中有且仅有⼀个main()函数,程序运⾏时.会⾸先从main()函数开始执⾏。该⾏的关键字int说明main()函数的返回值是整型数,括号中的void表⽰main()函数不需要参数。
(5)⼀对⼤括号将函数的所有语句括起来,构成了函数体。本程序中的函数体共有两条语句。第⼀条语句为
printf( "Programming is fun. ");
它由函数调⽤和分号两部分组成。printf("Programmingisfun.")调⽤了标准输出函数,将引号中的内容原样输出到屏幕上(C语⾔的默认输出设备为屏幕),语句末尾的分号表⽰该语句结束。注意C语⾔中除复合语句外的所有语句都必须以分号结束。
main()函数的第⼆条语句是:
return 0
它结束main()函数的运⾏,并向系统返回⼀个整数0,作为程序的结束状态。如果返回0,说明程序运⾏正常,返回其他值值则表⽰不同的错误情况。系统根据返回值判断程序是否运⾏成功。
指针变量的定义格式运⾏结果:
体积为:33.510292,表⾯积为50.265442
说明;
(1)程序中第2⾏语句;
#define PI 3.14159
定义了⼀个符号常量PI,这样程序中反是需要使⽤3.14159的地⽅,都⽤PI代替提⾼了程序的可读性(
2)main()函数前⾯ 的void表⽰该函数⽆返回结果值(3)程序中调⽤prinf()函数输出结果时,将引号内除%f以外的内容原样输出,并在第⼀个%f的位置上输出变量v的值,在第⼆个位置上输出变量f的值。
2.2 C语⾔的数据类型
C语⾔程序中所⽤到的每⼀⼀个常量、变量和函数等程序的基本操作对象都有⼀种数据类型与之相联系,数据类型决定了数据的取值范围、占⽤内存的字节数和所能进⾏的操作。
C语⾔提供了四种数据类型:基本类型、结构类型、指针类型和空类型 ,C语⾔中构造类型包括:数组类型、结构体类型、共⽤体类型和枚举类型。 (1)基本类型还可以分解为其他类型,主要为整型、字符型和浮点型。 (2)结构类型是根据已定义的⼀个或多个数据类型,⽤构造的⽅式来定义的可以理解为,⼀个构造类型的值由若⼲个“成员”或“分量”构成。每个“成员”都是⼀个基本类型或⼀个结构类型。(3)指针是C语⾔中⼀种特殊,同时⼜具有重要作⽤的数据类型。
2.3 C语⾔的常量
2.3.1 直接常量
1.直接常量
整型常量即整数,包括正整数、负整数和零。C语⾔中,整型常量可以⽤⼗进制、⼋进制和⼗六进制表⽰。
⼗进制表⽰:由数字0~9,正、负号组成,如369,- 663等;
⼋进制表⽰:以0(数字0)为前缀,其后由数字0~7组成,如0163,036等;⼋进制数⼀般是⽆符号数。如0192、-011 都是不合法的⼋进制常量。
⼗六进制表⽰:以0x或0X为前缀,其后由数字0~9和字母A~F(字母⼤⼩写均可)组成,如0x12cd,0X6Fa等。⼗六进制数-般是 ⽆符号数。
注意:
(1)在⼀个整型常量后⾯加⼀个字母u或U,认为是unsigned int型, 如246U。(2)在⼀⼀个整型常量后⾯加⼀个字母1或L,认为是long int型,如12L。2.实数常量
2.实数常量
实型常量即实数,⼜称为浮点数。C语⾔中,实数只能⽤⼗进制形式表⽰,实数的表⽰⽅法有两种:⼩数形式和指数形式。①⼩数形式:由整数部分、⼩数点和⼩数部分组成,当整数部分或者⼩数部分为0
时,可以省略不写,但是⼩数点不可省略。如12. 345,3. ,⼀.123等均为正确的实数。②指数形式:由尾数部分、字母E或e和指数部分组成,格式为:⼠尾数E指数。如1. 23E-2、3.14E+3等,它们表⽰的数值分别为1.23X10-2、3. 14X10.
注意:
(1)以⼩数形式表⽰实数时,必须有⼩数点,并且⼩数点的前、后⾄少-边要有数字。(2)以指数形式表⽰实数时,字母E (或e)的前后必须有数字,并且指数部分只能是整数。如12.-E3、1. 5E、E6都是不正确的实数。
在C语⾔中,实型常量默认为是double 型的实数,如果在数的后⾯加字母f或F(如1.65f、654.87F),则认为是float 型的实数。
3.字符型常量
字符常量指单个字养,⽤⼀对单引号及其拓号所括起的字符来表⽰。
(1)字符常量只能⽤单引号括起来,不能⽤双引号或其它括号。
(2)字符常量只能是单个字符,不能是字符串。
(3)字符可以是ASCII字符集中的任意字符。按ASCII码的⼤⼩,不同的字符之间存在着次序,以字符的ASCII码值按升序连续排列。如⼩写字母的ASCII码⼤于⼤写字母的ASCII码,⼤写字母的ASCII码⼤于数字字符的ASCII码。
使⽤字符常量时,每个字符在内存中占⽤⼀⼀个字节,⽤于存储它的ASCII码值。所以C语⾔中的字符常量具有数值特征可以像整数⼀样参加运算,此时相当于对字符的ASCII码
进⾏运算。
转义字符使⽤实例
分析:
(1)语句1处使⽤print[()函数分别输出char型变量b.c.d、e的值.由于b='\43'.即将转义字符\43'赋值给变⿎b.则系统会将"\43'转换为⼋进制数据43(⼗进制为35)所对应的字符“#”,因此b=井,其余变量的值可以采⽤同样的⽅法计算出来。
printf()函数的格式控制字符串中有-⼀个转义字符\n',编译系统会将它转换为回车换⾏符,即在输出⼀⾏内容后换⾏。程序运⾏后第⼀⾏的输出结果为:
b=#,c=C,d= * ,e=A
(2)语句2处使⽤printf()函数输出字符串“\" good\40morning!\b\"!\n”时.其中的转义字符会转换为相应的字符输出,即将“\"”转换为“"”输出,“\40”转换为空格,“\b”使光标回退⼀位,然后在此位置上使⽤“\”输出⼀个“",因此程序运⾏后第⼆⾏的输出结果为:" good morning" !
(3)语句3处使⽤printf函数输出字符串““\123456"时,其中的转义字符\123转换为相应的字符S输出,456原样输出.因此程序运⾏后第三⾏的输出结果为:“S456”
4.字符串常量
字符申常量是由⼀对双引号””括起来的零个或多个字符序列,如Hello Wordr .字符串中可以使⽤空格字符转义字符和其他字符,也可以使⽤汉字等⽂字符号。如:"china"、"你好Visual C"、"\tVisualC"等。字符串中还可以使⽤空字符,如:””表⽰空串,即不包含任何字符。字符串常量在内存中占⽤⼀段连续的存储单元,系统⾃动在每个字符串的尾部加上\0作为字符串的结束标志,因此,n个字符组成的字符串,在内存中要占⽤n+1个字节空间。可以使⽤sizeof 运算符,来计算字符串占⽤的内存空间⼤⼩。
如字符串常量"Hello\nWorld"占⽤12个字节的内存空间。
字符串的长度等于该字符串中所包含的有效的个数,如“Hello World”的长度为10,在字符串中如遇到'\0'('0'是表⽰字串结束符)则认为该字符串结束,如“Hello\0World”的长度为5.如果字符串中有转义字符,则⼀个转义字符作为⼀个字符,如“Hello
World\t”的长度为11.可以使⽤strlen()函数来计算字符串的长度。注意:
字符常量和字符串常量在内存中的存储情况是不同的,如'6'在内存中占储的是其ASCII码.⽽"6"在内存中占2个字节,⼀个字节存储'6',另⼀以把个字符常量赋⼦ -个字符变量,但 不能把⼀个字符申常量赋⼦⼀个字符变量’在⾔中.由于没有提供字符串类型的变量,字符串⼀般⽤字符数组来解决。
2.3.2 符号常量
在C语⾔中,可以⽤⼀个标识符来表⽰⼀个常量称之为符号常量.符号常量在使⽤之前必须先定义,其⼀般形式为:
# define标识符常量值
其中#define是⼀条编译预处理命令,称为宏定义命令,其功能是把该标识符定义为其后的常量值,该
标识符称为符号常量。⼀个#define命令只能定义⼀个 符号常量,若要定义多个符号常量,需使⽤多个#define命令。
运⽤符号常量计算价格
为编写程序提供好处:
(1)增加程序的可读性:通过标识符就知道该常量的意思,既见名知意(2)提⾼程序的可维护性:通过符号常量使得修改常量很⽅便,只需在常量的定⼜处修改即可。(3)简化程序代码:通过符号常量可以简化复杂表达          ’【-式的重复输⼈。(4)⽅便数组的定义:可以将整型符号常量作为数组
的长度。
2.4 C语⾔的变量

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。