《第2章 C语言基础知识》由会员分享,可在线阅读,更多相关《第2章 C语言基础知识(17页珍藏版)》请在金锄头文库上搜索。
1、第二章 C 语言基础知识2.1 常量和变量【学习目标】(1) 掌握常用标识符的命名规则(2) 掌握常量和变量的定义与引用方法实例 5 常量和变量输出常量与变量的值【实例任务】 定义不同类型的几个变量,然后对应输出相应的常量值和变量值。程序的运行结果如图2-1 所示。图 2-1 程序运行结果【程序代码】#include stdio h#define A 10 /*定义一个整型常量A*/ #define B 0.1 /*定义一个单精度类型常量B*/ #define C x /*定义一个字符型常量C*/#define D 3.14E20 /*定义一个双精度类型常量D*/ #define E fals
2、e /*定义一个字符串常量E*/ main() int a=10;/*定义整型变量,同时为变量赋初值*/ float b;/*先定义单精度型变量,然后再赋初值*/ b=10 5;char c=x;/*定义字符型变量,同时赋初值*/ double d=314e15;/*定义双精度类型变量*/*输出常量和变量值*/printf(输出整型常量值为:d,输出变量a的十进制值为:dn,10,a);printf(输出变量a的八进制值为:o,输出变量a的十六进制值为:%xn,a,a);printf(输出单精度型常量值为:输出变量b的值为:%fn,105,b);printf(输出字符型常量值为:c,输出变量c
3、的值为:%cn,x,c);printf(输出双精度型常量值为:%lf,n输出变量d的值为:%lfnnn,314e15,d);/*输出符号常量的值*/printf(符号常量A的值为:%dn,A);printf(符号常量B的值为:%fn,B);printf(符号常量C的值为:%cn,C);printf(符号常量D的值为:%lfn,D);printf(符号常量E的值为:sn,E);getch ();【相关知识】1 标识符 标识符是用来标识变量名、符号常量名、函数名、数组名、文件名、类名、对象名等,其基本构成元素源自字符集。C语言的字符集包括英文字母、数字字符和一些特殊字符。用 这些基本元素单位命名标
4、识符时,一定要遵循以下四个原则:(1)必须由字母(az, AZ)或下画线(_)开头;(2)由字母、数字或下画线组成的长度不超过32 个字符;( 3)标识符中的大小写字母有区别;( 4)不能与关键字同名。 下面是不合法的标识符和变量名:M.d., John, y 123,#33, 3d642常量 常量是数据在内存中一种表示形式,在程序运行过程中值永远保持不变,常用的类型有5 种,包括整型常量、实型常量、字符型常量、字符串常量、符号常量。 整型常量就是整型,常用的表示形式有十进制,如10、 30 等。八进制常量表示形式要以0开头,如013、012等。十六进制常量表示形式要以Ox或0X开头,如0x1
5、3、0X12等。 实型常量就是指的是一些带小数点的数,包括指数。如3.14、-1.2、1.2e6、10.5E8等。其中,1.2e6表示数学上1.2X106, 10.5E8表示数学上10.5X108。 字符型常量是单引号引起来的单个字符,这些字符为 ASCII 字符,对应各有其 ASCII码值。字符常量包括一些转义字符,字符形式和输出结果对照如表2-1 所示。表 2-1 转义字符转义字符输出转义字符输出n换行a报警(铃声)t水平制表符反斜丝v垂直制表符?问号b退回一格单引号r退格双引号f换页符0空字符ooo八进制数xhhh十六进制字符串常量是用双引号引起来的0个或多个字符。字符串常量形式给出的是
6、字符串在存 储空间中的起始地址。如“Hello World!”就是一个字符串常量。符号常量,是指以标识符来代替一个值,这个标识符的值在程序运行过程中不能再改变。 它是在编译预处理阶段使用#define来进行定义,也就是程序的开头来定义。常量名的类型 由所给的常量值的类型来定,不再单独指明。符号常量的定义形式为:#define 常量名 常量值如实例中的定义语句“#define C x”定义了一个符号常量,常量名为C。3.变量变量是指在程序运行过程中其值可以被改变的量, C 语言变量遵循先定义后引用的原 则。变量的定义形式为:数据类型 变量名列表变量在定义时,可以先定后,后赋值,也可以定义的同时赋
7、初值。如实例中合法的定义 形式:int a=10; /*定义整型变量,同时为变量赋初值*/float b; /*先定义单精度型变量,然后再赋初值*/b=10.5;char c=x; /*定义字符型变量,同时赋初值*/double d=3.14e15; /*定义双精度类型变量*/ 变量定义时很灵活,允许在定义的同时对部分变量赋初值,如下列合法的定义语句:int a, b, c = 6;但不允许同时对几个变量赋同一个值,如下定义语句是错误的:int a = b = c=13; /*这是错误的语句*/【课堂精练】1.已知频率求波长。光的速度为3X108米/秒,已知频率为50HZ,求此频率光波的波长。
8、 程序的运行结果如图2-2 所示。图 2-2 程序的运行结果根据程序的运行结果,请将下面程序补充完整并调试。#include stdio.hmain() float f=50.0;x=c/f;printf(“此光波的波长为:2lf米,x);getch(); 2.摄氏温度和华氏温度的转换。已知摄氏温度与华氏温度的转换公式为:C=5(F-32)/9,输入摄氏温度的值,请输出华氏温度的值,程序的运行结果如图2-3 所示。图 2-3 程序的运行结果根据程序的运行结果,请将下面程序补充完整并调试#include stdio.hmain() float F,C;/*F为摄氏温度,C为华氏温度*/print
9、f(请输入摄氏温度的值:n);getchar();C=5*(F-32)/9;printf(”摄氏温度所对应的华氏温度为:1f,F,C); getch(); 2.2 数据类型学习目标】1) 掌握几种常用的数据类型2) 理解不同数据类型间的转换实例 6 基本数据类型输出不同数据类型的值【实例任务】 定义不同类型的变量,并进行一定的简单运算,要求输出不同类型表达式的值。程序的运行结果如图 2-4 所示。图 2-4 程序运行结果程序代码】#include stdio .hmain() int a=32767,b=1;long c=2147483647,d=1;unsigned e=65535,f=1;
10、/*定义a, b为整型变量*/*定义c, d为长整型变量*/*定义e, f为无符号整型变量*/int x=123,y=0123,z=0x123; /*定义整型变量,并赋不同进制的值*/ float m=5.4,n=2 2,sum,sep; /*定义单精度类型变量*/ char ch1=a,ch2=b;严定义字符型变量*/ char c1=A,c2=B;char *p=C language; /*定义指向字符串的指针变量*/printf(int:%d, %dn,a,a+b); printf(long:%ld, %ldn,c,c+d); printf(unsigned:%u, %unn,e,e+f
11、);printf(%d printf(%o printf(%x%d%o%x%dn,x,y,z);/*十进制格式输出*/ %on,x,y,z);/叭进制格式输出*/ %xnn,x,y,z); /*十六进制格式输出*/sum=m+n; sep=m/n; printf(%2f+%2f=%.2fn,m,n,sum); printf(%.2f/% 2f=%fnn,m,n,sep);printf(h1=%c,ch2=%cnch1,ch2);printf(ch1=%d,ch2=%dnn,ch1,ch2);c1=c1+32;c2=c2+32;printf(%c,%dn,c1,c1);printf(%c,%dn
12、,c2,c2);printf(%sn,p);getch();【相关知识】1整型数据根据占用内存字节数的不同,整型变量又分为4类:(1) 基本整型(类型关键字为 int)。(2) 短整型(类型关键字为 short int)。(3) 长整型(类型关键字为 long int)。(4) 无符号整型。无符号型又分为无符号基本整型(unsigned int)、无符号短整 型(unsigned short)和无符号长整型(unsigned long)三种,只能用来存储无符号整 数。整型数据或变量占用的内存字节数,随系统而异。在16位操作系统中,一般用2字节 表示一个int型变量,且long型(4字节)2in
13、t型(2字节)2short型(2字节)。显 然,不同类型的整型变量,其值域不同。占用内存字节数为n的(有符号)整型变量,其值 域为:-215(215-1);无符号整型变量的值域为:0(21 6-1 )。不同整型变量的长度和取值 范围如表 2-2 所示。表 2-2 整常数类型的字节长度和取值范围数据类型字节长度取值范围int2-3276832767即-215(215-1)short2-3276832767即215(215-1)long4-21474836482147483647即-231 (231-1)unsigned int2065535即 0(216-1)unsigned short2065
14、535即 0(216-1)unsigned long404294967295即 0(232-1)2实型数据c语言的实型变量,分为两种(1) 单精度型:类型关键字为float, 一般占4字节、提供7位有效数字。(2) 双精度型:类型关键字为double,一般占8个字节、提供1516位有效数字。 实型常量即实数,在C语言中又称浮点数,其值有两种表达形式:(1) 十进制形式:例如3.14、 10.5 等。(2) 指数形式:它靠字母e或E连接两边的数字组成,如2.3e-7代表2.3x10-7。e的 两边必须有数值,且e后的指数部分必须是整型数,6.1e、.e+5、e-3、1.3e4.8都是非法的。3字符型数据字符型数据是用一对单引号括起来的单个字符,如A、+、5等。另外,还有一类转义 字符,也属字符型数据。这在上一节已经讲解过。字符变量的类型关键字为c