C语言程序设计讲解_第1页
C语言程序设计讲解_第2页
C语言程序设计讲解_第3页
C语言程序设计讲解_第4页
C语言程序设计讲解_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

注意:编译系统将大写字母和小写字母认为是两个不同的字符。例如:Class和class是两个不同的变量名。

建议变量名的长度最好不要超过8个字符。在选择变量名和其它标识符时,应注意做到“见名知意”,即选有含义的英文单词(或其缩写)作标识符。C语言程序设计讲解全文共23页,当前为第1页。(1)整型数据在内存中的存放形式

数据在内存中是以二进制补码形式存放的。

如:inti;/*定义为整型变量*/i=10;/*给i赋以整数10*/

图3-2100000000000001010ii2

整型变量十进制数10的二进制形式为1010,TurboC2.0和TurboC++3.0为整型变量分配2个字节的内存存储单元。C语言程序设计讲解全文共23页,当前为第2页。不同的编译系统为整型数据分配的字节数是不相同的,

TurboC2.0和TurboC++3.0为整型变量分配2个字节内存存储单元,VC++6.0则分配4个字节。数值是以补码(complement)表示的。一个正整数的补码和该数的原码(即该数的二进制形式)相同。而一个负数的补码是:将该数的绝对值的原码,按位取反再加1。例如i=-10时:说明:-101111111111110110iiC语言程序设计讲解全文共23页,当前为第3页。如果在程序中定义a和b两个变量:

inta;

unsignedintb;

则变量a的数值范围为-32768(-215)~32767(215-1),而变量b的数值范围为0~65535(216-1)。1111111111111111有符号整型变量a0111111111111111无符号整型变量b符号位代表数据的第1位=32767(215-1)=65535(216-1)C语言程序设计讲解全文共23页,当前为第4页。整数类型的有关数据:

类型类型说明符长度数的范围基本型int

2字节

-32768~32767(215-1)

短整型short

2字节

-215~215-1

长整型long4字节

-231~231-1

无符号整型unsigned2字节

0~65535(216-1)

无符号短整型unsignedshort2字节

0~65535

无符号长整型unsignedlong4字节

0~(232-1)C语言程序设计讲解全文共23页,当前为第5页。(3)整型变量的定义

C语言规定在程序中所有用到的变量都必须在程序中定义,即“强制类型定义”。

变量的定义一般放在一个函数的开头的声明部分。

例如:

inta,b;(指定变量a、b为整型)

unsignedshortc,d;(指定变量c、d为无符号短整型)longe,f;

(指定变量e、f为长整型)

C语言程序设计讲解全文共23页,当前为第6页。例3.2整型变量的定义与使用

#include<stdio.h>

voidmain()

inta,b,c,d;/*指定a、b、c、d为整型变量*/

unsignedu;/*指定u为无符号整型变量*/

a=12;b=-24;u=10;

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

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

}说明:可以看到不同种类的整型数据可以进行算术运算。本例中是int型数据与unsignedint型数据进行加减运算。

运行结果:

a+u=22,b+u=-14

C语言程序设计讲解全文共23页,当前为第7页。(4)整型变量的溢出

在TurboC和TurboC++中,一个int型变量的最大允许值为32767,如果再加1,会出现什么情况呢?C语言程序设计讲解全文共23页,当前为第8页。例3整型数据的溢出

#include<stdio.h>

voidmain()

{

inta,b;

a=32767;

b=a+1;

printf(“%d,%d\n”,a,b);

}

说明:数值是以补码表示的。一个整型变量只能容纳-32768~32767范围内的数,无法表示大于32767或小于-32768的数。遇此情况就发生“溢出”。运行结果:

32767,-327680111111111111111100000000000000032767-32768abC语言程序设计讲解全文共23页,当前为第9页。(1)浮点型数据在内存中的存放形式

浮点型数据在内存中按照指数形式存储。系统把一个浮点型数据分成小数和指数部分分别存放。一个浮点型数据一般在内存中占4个字节(32位)。4个字节(32位)中,多少位来表示小数部分,多少位表示指数部分,由编译系统自定。不少C语言编译系统以24位表示小数部分,以8位表示指数部分。2

浮点型变量C语言程序设计讲解全文共23页,当前为第10页。小数部分占的位数越多,数的有效数字越多,精度也就越高。指数部分占的位数越多,则能表示的数值范围越大。

实数3.14159在内存中的存放形式用图表示为:图3-7+.314159+1数符小数部分指数+.314159×1013.14159C语言程序设计讲解全文共23页,当前为第11页。类型位数数的范围有效数字float32

-3.4×10-38~3.4×1038

6~7位double型64

-1.7×10-308~1.7×1030815~16位longdouble128-1.2×10-4932~1.2×104932

18~19位(2)浮点型变量的分类

浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(longdouble)三类形式。C语言程序设计讲解全文共23页,当前为第12页。例4浮点型数据的舍入误差

#include<stdio.h>

voidmain()

{

floata,b;

a=123456.789e5;

b=a+20;

printf(“%f,%f\n”,a,b);

}

说明:一个单精度浮点型变量的有效数字是7位,后面的数字是无意义的。因此应当避免将一个很大的数和一个很小的数直接相加或相减,否则就会“丢失”小的数。与此类似,用程序计算1.0/3.0×3的结果并不等于1。运行结果:12345678848.000000,12345678848.000000(3)浮点型数据的舍入误差C语言程序设计讲解全文共23页,当前为第13页。

C编译系统将浮点型常量作为双精度来处理。

例如:floatf;

f=2.45678*4523.65;

系统把2.45678和4523.65作为双精度数(64位)进行相乘的运算,得到的乘也是一个双精度数。最后取其前7位赋给单精度浮点型变量f。如果在数的后面加字母f或F(如1.65f,654.87F),编译系统就会把它们按单精度(32位)处理。浮点型常量的类型C语言程序设计讲解全文共23页,当前为第14页。一个浮点型常量可以赋给一个float型、double型或longdouble型变量,根据变量的类型截取常量中相应的有效位数字。

假如指定a为单精度浮点型变量:

floata;a=111111.111;

由于float型变量只能接收7位有效数字,因此最后两位小数不起作用。如果a改为double型,则能全部接收上述9位数字并存储在变量a中。C语言程序设计讲解全文共23页,当前为第15页。\ddd

1到3位八进制数所代表的字符注意:八进制数代表的是字符的ASCII码。例如:“\101”代表大写字母‘A’,八进制101相当于十进制的65,从附录A可以查到ASCII码为65的字符是大写字母‘A’。

“\0”或“\000”代表ASCII码为0的控制字符,即“空操作字符”,它常用在字符串中。\xhh

hh表示1到2位十六进制数所代表的字符C语言程序设计讲解全文共23页,当前为第16页。例5转义字符的使用

#include<stdio.h>

voidmain()

{

printf(“abc\tde\rf\tg\n”);

printf(“h\ti\b\bjk\n”);

程序运行时输出以下结果:fabcgdehjik显示屏上的运行结果:fgdehjk说明:

实际上,屏幕上完全按程序要求输出了全部的字符,只是因为在输出前面的字符后很快又输出后面的字符,在人们还未看清楚之前,新的已取代了旧的,所以误以为未输出应输出的字符。而在打印机输出时,不像显示屏那样会“抹掉”原字符,能真正反映输出的结果。C语言程序设计讲解全文共23页,当前为第17页。字符型变量用来存放字符常量,注意只能放单个字符。字符变量的定义形式如下:

charc1,c2;

/*c1、c2为字符型变量,各可以放一个字符*/定义后就可以用下面语句对c1,c2赋值:

c1=‘a’;c2=‘b’

;在所有编译系统中都规定以一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。

2

字符变量C语言程序设计讲解全文共23页,当前为第18页。将一个字符常量放到一个字符变量中,实际上并不是存放字符本身,而是将该字符的相应的ASCII代码放到存储单元中。(附录A)

例如:charc1,c2;

c1=‘a’;c2=‘b’;因此一个字符数据既可以以整数形式输出(直接输出其ASCII码),也可以以字符形式输出(将ASCII码转换成相应字符然后输出)。图3-8011000019798c1c2c1c201100010字符数据在内存中的存储形式及其使用方法C语言程序设计讲解全文共23页,当前为第19页。例6向字符变量赋以整数。

#include<stdio.h>

voidmain()

{

charc1,c2;

c1=97;

c2=98;

printf(“%c

%c\n”,c1,c2);

printf(“%d%d\n”,c1,c2);

说明:在第5和第6行中,将整数97和98分别赋给c1和c2,它的作用相当于两个赋值语句:c1=‘a’;c2=‘b’;因为‘a’和‘b’的ASCII码为97和98。程序的第5和第6行是把97和98两个整数直接存放到c1和c2的内存单元中,而c1=‘a’和c2=‘b’则是先将字符化成ASCII码,再放到内存单元中。二者的结果是相同的。运行结果:ab

9798C语言程序设计讲解全文共23页,当前为第20页。一个字符型数据既可以以字符形式输出(%c),也可以以整数形式输出(%d)。

温馨提示

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

评论

0/150

提交评论