| 本帖最后由 09927306 于 2011-1-8 19:05 编辑 
 
 第2章:基本数据类型 【例2-1】 字符常量的表示方法。 
 复制代码
#include <stdio.h>
main()
{ printf("%d\\n",\'B\');
printf("%c\\n",\'B\');
printf("%c\\n",66);
printf("%c\\n",\'B\'+32);
printf("%d,%c,%d,%c\\n",\'\\n\',\'\\0\', \'\\0\',\'\\x41\');
}
程序运行结果如下。
 66
 B
 B
 b
 10, ,0,A
 从以上结果可以看出,字符常量\'\\0\',若按\"%c\"输出时,则留出一个字符的空位;按\"%d\"输出时,则输出数值0。 【例2-2】 局部变量的作用域。 复制代码
main()
{ int a,b,c;
a=1;b=2;c=3;
a=a+1;b=b+1;c=c+b;
/* a=2,b=3,c=6 */
{ int b,c;
b=4;
/* b=4 */
c=b*3;
/* c=12 */
a=a+c;
/* a=14 */
printf("first:%d,%d,%d\\n",a,b,c);
a=a+c;
/* a=26 */
printf("second:%d,%d,%d\\n",a,b,c);
}
printf("third:%d,%d,%d\\n",a,b,c);
}
 注意到main函数的函数体内有一个用花括号括住的程序段作为一个复合语句。程序第2行定义了变量a,b,c,它们的作用域是从定义处开始,直到最外层右花括号结束;第5行定义了变量b和c,它们的作用域是从定义处开始,直到内层右花括号结束。因此,内花括号中对变量b和c的赋值和引用都是针对第5行定义的b、c,而与第2行定义的b、c无关;当程序执行到内层右花括号外面时,第5行定义的变量b、c失效,因此,第3个printf()函数输出的b、c引用的是第2行定义的b、c。对变量a而言,由于内层花括号内未另行定义,所以它的作用域是在整个函数体内,因此程序中3个printf()函数对a的引用全部都是针对第2行定义的a的。由此得到程序的运行结果为:
 first:14,4,12
 second:26,4,12
 third:26,3,6
 【例2-3】
 用宏定义的方式定义符号常数。 复制代码
#include <stdio.h>
#define PI 3.141 592 653 5
#define RADIUS 2.5
main()
{ float c,a,s,v;
c=2*PI*RADIUS;
a=PI*RADIUS*RADIUS;
s=4*a;
v=4*a*RADIUS/3;
printf("Circuference=%f",c);
printf("Area=%f",a);
printf("Surface Area=%f",s);
printf("Volume=%f",v);
}
程序中定义了两个符号常数,PI代表圆周率,RADIUS代表圆半径。在程序编译前,PI被替换成3.1415926535,RADIUS被替换成2.5。由于使用了符号常数,程序中的几个计算公式的物理含义可以看得很清楚;如果要修改半径的大小,只要修改#define命令就可以了。程序运行结果如下。
 Circumference=15.707965
 Area=19.634 956
 Surface Area=78.539825
 Volume=65.449 852
 【例2-4】 假设a和b是整型变量(a=123,b=1455),c是浮点型变量(c=3.141 592 65),则 printf(\"a = %d,b = %,x = %f\",a,b,c); 
 的控制关系如下: 格式控制字符串中包含格式转换说明符、转义字符和普通字符。其中,格式转换说明符“%d”、“%x”和“%f”分别用来控制整型变量a和b及浮点型变量c的数据显示格式:变量a的值以十进制整数形式显示,b的值以十六进制整数形式显示,c的值则以小数形式显示,保留6位小数;转义字符“\\t”的作用是控制下一个显示的字符进入下一个制表位,转义字符“\\n”控制下一个输出项将在下一行显示;普通字符“a =”、“,”、“b =”和“c =”则照原样显示。因此,该语句的输出结果为: a=123,b=5af
 c=3.141593
 【例2-5】 用putchar()函数输出一个字符。 
 复制代码
#include <stdio.h>
main()
{ int c;
char d;
c=65; d=\'A\';
putchar(c);
putchar(d);
putchar(\'A\');
putchar(65);
}
程序中的4个putchar()函数输出完全相同的结果,屏幕显示为:
 AAAA 【例2-6】 用getchar()函数输入一个字符。 
 复制代码
#include <stdio.h>
main()
{ char c;
c=getchar();
printf("%c\\n",c);
printf("%d\\n",c);
}
程序运行时,等待用户从键盘输入字符,假设用户按了字母a及回车键,则屏幕显示:
 a↙
 a
 (printf()函数按字符格式显示c的值)
 97
 (printf()函数按整数格式显示c的值)
 【例2-7】 getche()函数的使用。 复制代码
      #include <conio.h>
      main()
        { char c;
          c=getche();
          printf("%c\\n",c);
        }
 
 程序运行时,用户只要按字母a,屏幕立即显示:aa,其中,第一个a是getche()函数回显的,第二个a是printf()函数按字符格式显示的。 
 上一章:C语言案例教程 - 第一章 C程序设计的初步知识
 下一章:C语言案例教程 - 第三章 数 据 运 算
 
 |