C语言简单应用

使用的程序是VC++6.0开发。如有不同,请参考
既然是简单应用,那么先上一个很简单的小程序。计算圆的面积。

#include<stdio.h>
main()
{
  float r,s;         /* 定义变量存放数据 */
  scanf("%f",&r);    /* 输入圆的半径存入到r变量中 */
  s=3.14*r*r;        /* 求圆的面积 */
  printf("%f",s);    /* 输出圆的面积 */
}

1、主函数

main()称之为主函数,它是C语言程序的“主心骨”。任何C语言的程序必须要有且只有一个main()函数。任何一个C语言程序,只能有一个主函数。

2、语句

  1. 在C语言程序中某一行能否被当做语句,什么都不要看,就看分号;有分号就是一个语句,无分号则功能设计再巧妙也都不能称为语句。

  2. C语言的框架是:main(){……}

3、注释

C语言单行注释一般用“//”;多行注释一般用/……/。一般注释部分的位置是任意的,没有太多的要求。

4、标识符的命名规则

(1)命名的符号范围
‘a’-‘z’(小写字母)、’A’-‘Z’(大写字母)、

‘0’-‘9’(数字符号)、’_’(下划线)

(2)命名的要求
①严格区分字母的大小写。例如:a1和A1是两个不同标识符。

②不能以数字符号开头。例如:x1可以作为标识符,但是1x不可以作为标识符的。

③用户标识符不能和系统关键字相互冲突。也就是说系统已经把int作为
整型标识符,用户就不能再把“int”作为用户标识符来用了。

5、常量表示法

①在C语言的程序中,前面加“#”称为预处理,预处理的含义就是在源程序编译之前,先处理完,因此带有“#”的行一般都放在源程序的最前面。

②定义的格式:

define 符号组合 常量值

从上面的例子中大家要注意的是:#define pai 3.14不是语句,在其结尾没有语句结束的标志“;”。

在此程序中pai只能是一个固定不变的值,不允许像“pai=3.13;”“pai=2.3;”等语句出现,因为pai是常量,如果这两个赋值成立,就相当于“3.13=2.3”也成立,因此肯定是错误的。

常量符号组合的命名规则要满足前面介绍的标识符命名规则。

6、实型数据

其他的实数类型,一般都知道,但是指数形式相对了解较少。

由十进制小数形式加上指数部分组成,其形式如下:

十进制小数e指数 或 十进制小数E指数

格式中的e或E前面的数字表示尾数,e或E表示底数10,而e或E后面的指数必须是整数,表示10的幂次。例如:2.34e3表示2.34×103=2340。

以下都是合法的指数形式实型常量:
2.9e3,-12.9e-5,0.13E-5,-16.89E-6,0.6156e3

对于上述两种书写形式,系统均默认为是双精度实型常量,可表示15~16位有效数字,数的表示范围可达到10-308 ~ 10308。

注意:(1)指数必须是不超过数据表示范围的正负整数,并且在e或E前必须有数字。

(2)由于机器存储的限制,使用实型数据会产生一些误差,运算次数愈多,误差积累就愈大,所以要注意实型数据的有效位,合理使用不同的类型,尽可能减少误差。

以下都是不合法的指数形式实型常量:
e5,5.0e,E-8,10e3.5,.e7,e

强制转换的一般格式为:
(<要转换成的数据类型名>) (<被转换的表达式>)

7、数据类型变量输出控制符

这里写图片描述

有时为了输出的数据好看,通常在控制符的双引号(” “)中加一些提示信息,一般在两个控制符之间加什么,则输出数据之间就用什么隔开;相反,如果什么都不加,则数与数之间就没有隔开并连接在一起。

(1)示例1:输出变量的值。

main()
{
  int x,y;
  x=23;
  y=12;
  printf("%d%d",x,y);
}

输出结果:2312

如果把输出语句写成:printf(“%d,%d”,x,y);
则输出:23,12

如果把输出语句写成:printf(“x=%d,y=%d”,x,y);
则输出:x=23,y=12

(2)带有控制位小数输出

小数输出格式:
①只控制小数点后位数:
%.nf

②控制总位数和小数后有效位数:
%m.nf

main()
{
  float x;
  x=23.4;
  printf("%f,",x);
  printf("%.5f",x);
  printf("%10.5f,",x);
}

①如果在输出时不加控制位,在VC++ 6.0平台下都是保留小数点后6位。

所以“printf(“%f,”,x);”输出结果是:
23.400000

②“printf(“%.5f”,x);”是控制小数点后5位,所以输出结果是:
23.40000

③对于单精度小数,最多只能是小数点后6位,而双精度小数可以控制到小数点后15位或者16位。在“printf(“%10.5f,”,x);”这条语句中,控制总位数为10位,如果总位数超过10位,则按照实际位数输出;反之,总位数小于10位则补空格。

本例中,整数位+小数点位+小数控制位为8,所以输出:
凵凵23.40000 /* 凵表示空格,实际显示中不会出现该符号 */

如果把“printf(“%10.5f,”,x);”写成“printf(“%-10.5f,”,x);”则实际输出为:
23.40000凵凵

(3)把十进制转换成其他进制输出

/* %o是按八进制输出 */
/* %x 是按十六进制输出 */

(4)小数及其格式输出

main()
{
  float x;
  x=12.3;
  printf("%e",x);
  printf("\n");
  printf("%g",x);
}

输出结果:
1.230000e+001 /* %e 是按照科学计数法输出 */
12.3 /* %g 是根据实际情况决定输出数据格式 */
注意:
①按“%e”的科学计数法输出时,基数部分总是保留一位整数,基数小数点有效位默认是6位,所以输出:1.230000e+001(001是VC++ 6.0显示规定,其实就是1)。

②对于“%g”输出时,必须等到数一定大才自动调整成科学计数法,在VC++ 6.0平台下整数达到8位才自动调整成科学计数法。

还有一点需要注意的是,当%g做正常小数输出时,如果小数点后没有到6位,不会补0。例如,“float x=12.45;”输出“printf(“%g”,x);”,得到的结果是:12.45。而不是12.450000。

8、数据输入

(1) scanf()函数的一般调用形式
scanf()函数是C语言提供的标准的输入函数,它的作用是:按照格式控制字符串中规定的格式,从键盘输入数据,依次赋予每个要输入的变量。

scanf()函数的一般调用形式如下:
scanf(“控制符系列”,变量列表);

【说明】
①类型控制符在前面讲解输出时已经讨论了,输出时控制符之间用什么隔开,输出的数就是用什么隔开的,如果控制符没有隔开的话,那么输出的数之间就不能被隔开。

②在输入的时候,控制符之间可以隔开,也可以不隔开。但是,需要注意的是,如果控制符之间没有隔开,输入数据时一定用空格、回车键或键隔开,否则输入的数不正确。还要记住千万不能用“,”隔开。反之,用什么符号隔开,则输入的数之间就用对应的符号隔开。

③变量列表中相对比较固定,只要大家记住两个方面:
v 不要忘记在变量名前加&(这个运算符叫作取地址符,后面讲到指针时再详讲)。

v 变量名之间必须要隔开,而且只能用“,”隔开。

④如果对字符型变量输入,它和数字类型是有点差别的。对字符的输入,如果控制符之间用某个符号隔开,输入的数就用对应的符号隔开,但不同的是,如果字符控制符之间没有隔开,则输入字符时,字符之间就不能隔开

(2)scanf()函数的输入格式特殊说明

scanf("%3d",&x);             /* ① */
scanf("%5f",&y);             /* ② */
scanf("%3d%5f",&x,&y);       /* ③ */

v 在语句①中:控制输入的数不能超过3位,如果输入超过3位,系统自动截取掉,只留3位。

v 在语句②中:小数的输入包含小数点在内,一共不能超过5位,如果输入多了也自动截取。

v 在语句③中:在输入过程中如果你输入的是:
12↙ /* ↙表示回车 */
12.3

这都能正常的接受,因为12没有超过3位,12.3没有超过5位。但是如果这样输入的话:
1234↙
123.145
这时x就是123,因为控制位为3位,y只能接受123.1,因为控制位为5位,其中小数点占1位。

(3)跳过某个输入数据——用“*”以使对应的输入数据不赋予任何值




都是一些总结性内容,偏向与初学者,希望对所有人有用。

posted on 2017-07-24 16:33  Grant-fu  阅读(468)  评论(0编辑  收藏  举报

导航