第二章 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 "false" /*定义一个字符串常量E*/ main() { int a=10;/*定义整型变量,同时为变量赋初值*/ float b;/*先定义单精度型变量,然后再赋初值*/ b=10.5; char c='x';/*定义字符型变量,同时赋初值*/ double d=3.14e15;/*定义双精度类型变量*/ /*输出常量和变量值*/ printf("输出整型常量值为:%d,输出变量a的十进制值为:%d\n",10,a); printf("输出变量a的八进制值为:%o,输出变量a的十六进制值为:%x\n",a,a); printf("输出单精度型常量值为:%f,输出变量b的值为:%f\n",10.5,b); printf("输出字符型常量值为:%c,输出变量c的值为:%c\n",'x',c); printf("输出双精度型常量值为:%lf,\n输出变量d的值为:%lf\n\n\n",3.14e15,d); /*输出符号常量的值*/ printf("符号常量A的值为:%d\n",A); printf("符号常量B的值为:%f\n",B); printf("符号常量C的值为:%c\n",C); printf("符号常量D的值为:%lf\n",D); printf("符号常量E的值为:%s\n",E); getch (); } |
【相关知识】浮点型变量float
1. 标识符
标识符是用来标识变量名、符号常量名、函数名、数组名、文件名、类名、对象名等,其基本构成元素源自字符集。C语言的字符集包括英文字母、数字字符和一些特殊字符。用这些基本元素单位命名标识符时,一定要遵循以下四个原则:
(1)必须由字母(a~z,A~Z)或下画线(_)开头;
(2)由字母、数字或下画线组成的长度不超过32个字符;
(3)标识符中的大小写字母有区别;
(4)不能与关键字同名。
下面是不合法的标识符和变量名:
M.d.,John,y 123,#33,3d64
2.常量
常量是数据在内存中一种表示形式,在程序运行过程中值永远保持不变,常用的类型有5种,包括整型常量、实型常量、字符型常量、字符串常量、符号常量。
整型常量就是整型,常用的表示形式有十进制,如10、30等。八进制常量表示形式要以0开头,如013、012等。十六进制常量表示形式要以0x或0X开头,如0x13、0X12等。
实型常量就是指的是一些带小数点的数,包括指数。如3.14、-1.2、1.2e6、10.5E8等。其中,1.2e6表示数学上1.2×106,10.5E8表示数学上10.5×108。
字符型常量是单引号引起来的单个字符,这些字符为ASCII字符,对应各有其ASCII码值。字符常量包括一些转义字符,字符形式和输出结果对照如表2-1所示。
表2-1 转义字符
转义字符 | 输出 | 转义字符 | 输出 |
\n | 换行 | \a | 报警(铃声) |
\t | 水平制表符 | \\ | 反斜丝 |
\v | 垂直制表符 | \? | 问号 |
\b | 退回一格 | \' | 单引号 |
\r | 退格 | \" | 双引号 |
\f | 换页符 | \0 | 空字符 |
\ooo | 八进制数 | \xhhh | 十六进制 |
字符串常量是用双引号引起来的0个或多个字符。字符串常量形式给出的是字符串在存储空间中的起始地址。如“Hello World!”就是一个字符串常量。
符号常量,是指以标识符来代替一个值,这个标识符的值在程序运行过程中不能再改变。它是在编译预处理阶段使用#define来进行定义,也就是程序的开头来定义。常量名的类型由所给的常量值的类型来定,不再单独指明。符号常量的定义形式为:
#define 常量名 常量值
如实例中的定义语句“#define C 'x'”定义了一个符号常量,常量名为C。
3.变量
变量是指在程序运行过程中其值可以被改变的量,C语言变量遵循先定义后引用的原则。变量的定义形式为:
数据类型 <变量名列表>
变量在定义时,可以先定后,后赋值,也可以定义的同时赋初值。如实例中合法的定义形
式:
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.已知频率求波长。光的速度为3×108米/秒,已知频率为50HZ,求此频率光波的波长。程序的运行结果如图2-2所示。
图2-2 程序的运行结果
根据程序的运行结果,请将下面程序补充完整并调试。
#include "stdio.h"
main()
{ _________________________________
float f=50.0;
x=c/f;
printf("此光波的波长为:%.2lf米",x);
getch(); }
2.摄氏温度和华氏温度的转换。已知摄氏温度与华氏温度的转换公式为:C=5(F-32)/9,输入摄氏温度的值,请输出华氏温度的值,程序的运行结果如图2-3所示。
图2-3 程序的运行结果
根据程序的运行结果,请将下面程序补充完整并调试。
#include "stdio.h"
main()
{ float F,C; /*F为摄氏温度,C为华氏温度*/
printf("请输入摄氏温度的值:\n");
___________________________________
getchar();
C=5*(F-32)/9;
printf("摄氏温度%.1f所对应的华氏温度为:%.1f",F,C);
getch(); }
2.2 数据类型
【学习目标】
(1) 掌握几种常用的数据类型
(2) 理解不同数据类型间的转换
实例6 基本数据类型——输出不同数据类型的值
【实例任务】
定义不同类型的变量,并进行一定的简单运算,要求输出不同类型表达式的值。程序的运行结果如图2-4所示。
图2-4 程序运行结果
【程序代码】
#include "stdio.h" main() { int a=32767,b=1; /*定义a,b为整型变量*/ long c=2147483647,d=1; /*定义c,d为长整型变量*/ unsigned e=65535,f=1; /*定义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, %d\n",a,a+b); printf("long:%ld, %ld\n",c,c+d); printf("unsigned:%u, %u\n\n",e,e+f); printf("%d %d %d\n",x,y,z);/*十进制格式输出*/ printf("%o %o %o\n",x,y,z);/*八进制格式输出*/ printf("%x %x %x\n\n",x,y,z); /*十六进制格式输出*/ sum=m+n; sep=m/n; printf("%.2f+%.2f=%.2f\n",m,n,sum); printf("%.2f/%.2f=%f\n\n",m,n,sep); printf("ch1=%c,ch2=%c\n",ch1,ch2); printf("ch1=%d,ch2=%d\n\n",ch1,ch2); c1=c1+32; c2=c2+32; printf("%c,%d\n",c1,c1); printf("%c,%d\n",c2,c2); printf("%s\n",p); getch(); } |
【相关知识】
1.整型数据
根据占用内存字节数的不同,整型变量又分为4类:
(1)基本整型(类型关键字为int)。
(2)短整型(类型关键字为short [int])。
(3)长整型(类型关键字为long [int])。
(4)无符号整型。无符号型又分为无符号基本整型(unsigned [int])、无符号短整型(unsigned short)和无符号长整型(unsigned long)三种,只能用来存储无符号整数。
整型数据或变量占用的内存字节数,随系统而异。在16位操作系统中,一般用2字节表示一个int型变量,且long型(4字节)≥int型(2字节)≥short型(2字节)。显然,不同类型的整型变量,其值域不同。占用内存字节数为n的(有符号)整型变量,其值域为:-215~(2
15-1);无符号整型变量的值域为:0~(21 6-1)。不同整型变量的长度和取值范围如表2-2所示。
表2-2 整常数类型的字节长度和取值范围
数据类型 | 字节长度 | 取值范围 |
int | 2 | -32768~32767 即-215~(215-1) |
short | 2 | -32768~32767 即-215~(215-1) |
long | 4 | -2147483648~2147483647 即-231~(231-1) |
unsigned int | 2 | 0~65535 即0~(216-1) |
unsigned short | 2 | 0~65535 即0~(216-1) |
unsigned long | 4 | 0~4294967295 即0~(232-1) |
2.实型数据
C语言的实型变量,分为两种:
(1)单精度型:类型关键字为float,一般占4字节、提供7位有效数字。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论