最简朴的C程序计划--顺序程序计划

打印 上一主题 下一主题

主题 882|帖子 882|积分 2646

顺序程序计划举例

例一

有人用温度计测量出华氏法表示的温度(如69℉)现要求把它转换为以摄氏法表示的温度(如20℃)
转换公式:
  1. //有人用温度计测量出华氏法表示的温度(69℉)今要求把它转换为以摄氏法表示的温度(20℃)
  2. #include <stdio.h>
  3. int main(void)
  4. {
  5.         float f, c;
  6.         printf("请输入华氏度f\n");
  7.         scanf("%f", &f);
  8.         c = 5 * (f - 32) / 9;
  9.         printf("f=%f\nc=%f\n", f, c);
  10.    
  11.         return 0;
  12. }
复制代码
在VS编译器内会报C4996错误,办理见下文:(下同)
C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. - EricsT - 博客园 (cnblogs.com)
运行结果:

例二

计算存款利息。有1000元,想存一年。有三种方法可选:(1)活期,年利率为r1(2)一年定期,年利率为r2(3)存两次半年定期,年利率为r3。请分别计算一年后按三种方法所得到的本息和。
  1. //计算存款利息。有1000元,想存一年。有三种方法可选:(1)活期,年利率为r1(2)一年定期,年利率为r2(3)存两次半年定期,年利率为r3。请分别计算一年后按三种方法所得到的本息和。
  2. //本息和=本金+本金×利率×时间
  3. #include<stdio.h>
  4. int main(void)
  5. {
  6.         float p0, r1, r2, r3, p1, p2, p3;
  7.        
  8.         printf("请输入本金p0\n");
  9.         scanf("%f", &p0);
  10.         printf("请输入方法1年利率r1\n");
  11.         scanf("%f", &r1);
  12.         printf("请输入方法2年利率r2\n");
  13.         scanf("%f", &r2);
  14.         printf("请输入方法3年利率r3\n");
  15.         scanf("%f", &r3);
  16.         p1 = p0 + p0 * r1 * 1;
  17.         printf("方法1本息和%f\n", p1);
  18.         p2 = p0 + p0 * r2 * 1;
  19.         printf("方法2本息和%f\n", p2);
  20.         p3 = p0 + p0 * r3 * 0.5;
  21.         p3 = p3 + p3 * r3 * 0.5;
  22.         printf("方法3本息和%f\n", p3);
  23.         return 0;
  24. }
复制代码
运行结果:

数据的表现情势及其运算

常量和变量

在计算机高级语言中,数据有两种表现情势:常量和变量
常量

在程序运行过程中,其值不能被改变的量称为常量。
数值常量就是数学中的常数。
从字面情势上即可识别的常量称为“字面常量”或“直接常量”。
字面常量是没有名字的不变量。
常用的常量有以下几类:

  • 整型常量
  • 实型常量。有两种表现情势:

    • 十进制小数情势,由数字和小数点组成
    • 指数情势,由底数和指数以及字母E或字母e组成

  • 字符常量。用单撇号括起来的一个字符的常量。有两种情势的字符常量

    • 普通字符
    • 转义字符

  • 字符串常量。用双撇号把若干字符括起来的常量
  • 符号常量,用#define指令,指定用一个符号名称代表一个常量
使用符号常量有以下利益:

  • 含义清楚
  • 在必要改变程序中多处用到的同一个常量时,能做到“一改全改”
要区分符号常量和变量,不要把符号常量误认为变量。
符号常量不占内存,只是一个暂时符号,在预编译之后这个符号就不存在了,故不能对符号常量赋予新值。
为与变量名区分,风俗上符号常量用大写表示。
转义字符及其作用转义字符字符值输出结果\'一个单撇号具有此八进制码的字符\"一个双撇号输出此字符\?一个问号输出此字符\\一个反斜线输出此字符\a警告产生声音或视觉信号\b退格将当前位置退却一个字符\f换页将当前位置移到下一页开头\n换行将当前位置移到下一行开头\r回车将当前位置移到本行开头\t水平制表符将当前位置移到下一个tab位置\v垂直制表符将当前位置移到下一个垂直制表符对齐点\o、\oo、\ooo
其中o代表一个八进制数字
与该八进制码对应的ASCII字符与八进制码对应的字符\xh[h...]
其中h代表一个十六进制数字
与该十六进制码对应的ASCII字符与十六进制码对应的字符变量

变量代表一个有名字的、具有特定属性的一个存储单元。
用来存放数据,也就是存放变量的值。
在程序运行期间变量的值是可以改变的。
变量必须先定义后使用。
在定义时指定该变量的名字和范例。
一个变量应该有一个名字以便被引用。
变量名现实上是以一个名字代表的一个存储地址。
变量值即存放在内存单元中的数据。

在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。
从变量中取值,现实上是通过变量名找到相应的内存地址,从该存储单元中读取数据。
常变量

常变量和常量的异同是:常变量具有变量的基本属性:有范例,占存储单元,只是不允许改变其值。可以说,常变量是有名字的不变量,而常量是没有名字的不变量。有名字就便于在程序中被引用。
定义符号常量是用#define指令,它是预编译指令,它只是用符号常量代表一个字符串,在编译时仅是进行字符替换,在预编译后,符号常量就不存在了,对符号常量的名称是不分配存储单元的。而常变量是要占用存储单元的,有变量值,只是该值不改变而已。
常变量有符号常量的优点,而且使用起来更方便。
标识符

在计算机语言中,用来对变量、符号常量名、函数、数组、范例等定名的有效字符序列统称为标识符。
标识符就是一个对象的名字。
C语言规定标识符只能由字母、数字和下划线3种字符组成,且第1个字符必须为字母或下划线。
编译系统将大写字母和小写字母认为是两个差别的字符。
一般而言,变量名用小写字母表示。
数据范例

在计算机中,数据是存放在存储单元中的,它是具体存在的,存储单元是由有限的字节构成的,每一个存储单元中存放数据的范围是有限的。
所谓范例,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储情势。
差别的范例分配差别的长度和存储情势。

其中基本范例(包括整型和浮点型)和枚举范例变量的值都是数值,统称为算术范例。
算术范例和指针范例统称为纯量范例,因为其变量的值以数字来表示。
枚举范例是程序中用户定义的整数范例。
数组范例和布局体范例统称为组合范例,共用体范例不属于组合范例,因为在同一时间内只有一个成员具有值。
函数范例用来定义函数,形貌一个函数的接口,包括函数的返回值的数据范例饿参数的范例。
差别范例的数据在内存中占用的存储单元长度是差别的。
整型数据

整型数据的分类

基本整型(int)

编译系统分配给int型数据2个字节或4个字节。
在存储单元中的存储方式是:整数的补码
正数的补码:二进制
负数的补码:绝对值的二进制,每一位都按位取反,再加1
在存放整数的存储单元中,最左面一位是用来表示符号的,如果该位是0,则为正数,如果该位是1,则为负数
如果给整型变量分配2个字节,则一个整型变量的值的范围是【-215,215-1】即【-32768, 32767】
如果给整型变量分配4个字节,则一个整型变量的值的范围是【-231,231-1】即【-2147483648, 2147483647】
短整型(short int)

范例名为 short int 或 short 
在VC6.0中,编译系统给 int 数据分配4个字节,给 short 数据分配2个字节。
存储方式同int
一个短整型变量的值的范围:【-215,215-1】即【-32768, 32767】
长整型(long int)

范例名为 long int 或 long
一个长整型变量的值的范围:【-231,231-1】即【-2147483648, 2147483647】(VC6.0编译系统给long数据分配4个字节)
双长整型(long long int)

范例名为 long long int 或 long long
一般分配8个字节
是C99新增的范例
 
C标准没有具体规定各种范例的数据所占存储单元的长度,这是由编译系统自行决定的。
C标准只要求long型数据长度不短于int型,short型不长于int型,即:

sizeof(short)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

伤心客

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表