今天开始学习常量,变量,基本数据类型printf()函数和scanf()函数,算术运算符。

首先常量:是在程序中保持不变的量

变量:编写程序时,常常需要将数据存储在内存中,方便后面使用这个数据或者修改这个数据的值。通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需         要显示数据或执行数据操纵。

声明和使用变量

  • 声明变量:

Datatype variablename;

数据类型加上变量名;

定义时初始化变量;

Datatype variablename = value;

数据类型加上变量名=数值

  • 定义后初始化变量:

variablename = value;

示例

计算长方形的面积

//声明变量:数据类型  变量名;

int width;//长方形的宽

width=10;//为变量赋值

//声明并赋值

int length=50;//长方形的长

int s=width*length;// 面积

      printf("长方形的长是%d,宽是%d,面积是:%d\n",length,width,s);

     //%d:整形占位符

去掉注释以后练习时写的。

  #include <stdio.h>

  void main(){
 
    int chang = 500;
    int kuan = 200;
    int gao = 100;
    int ly = 22;
    int he = chang * kuan*gao*ly;
    printf("长方形的长是%d长方形的宽是%d长方形的总和是%d",chang,kuan,he);

  }

变量命名(标识符)

1.     什么是标识符

标识符就是在程序中自定义的一些符号和名称。要跟关键字区分开来:关键字是C语言默认提供的符号,标识符是程序员自定义的

2.     标识符的作用

1)         标识符,从字面上理解就是用来标识某些东西的符号,标识的目的就是为了将这些东西区分开来

2)         其实,标识符的作用就跟人类的名字差不多,为了区分每个人,就在每个人出生的时候起了个名字

3)         C语言是由函数构成的,一个C程序中可能会有多个函数,为了区分这些函数,就给每一个函数都起了个名称。函数的名称就是标识符的一种。除了函数,以后还会学到“变量”这个概念,变量的名称也是标识符

命名

命名规则(一定要遵守)

1.   只能由26个英文字母的大小写、10个阿拉伯数字0~9、下划线_组成。

2.   严格区分大小写,比如test和Test是2个不同的标识符。

3.  不能以数字开头。

4.  不可以使用关键字作为标识符。

命名规范(也要遵守)

1.   尽量起个有意义的名称,比如一个完整的英文单词,别人一看这个名称就能才能这个标识符的作用。如果不懂英文,你可以下载一个翻译工具,如有道,养成好的习惯,(目前正在努力改正中..)不然会显得比较low...不要起像abcde、sfsdfsdf等这类看起来没有意义的名称,即low又不好记,自己也容易出错。

2.   如果标识符中含有多个单词,可以使用驼峰标识(除开第一个单词,后面每个单词的首字母都是大写):firstName、myFirstName,或者使用下划线_来连接:first_name、my_first_name

不可以使用关键字作为标识符,如果命名以后显示为蓝色或者其他鲜艳的颜色的就不要用来命名了,基本都是有别的用处的。

下面是常见的标识符命名错误

合法标识符

非法标识符

注释

fromNo12

from#12

标识符中不能使用#符号

my_Boolean

my-Boolean

标识符中不能使用“-”符号,应使用下划线“_”代替

Obj2

2ndObj

标识符不能使用数字开头

myInt

int

“int”是内建关键字

jack_rose

jack&rose

符号“&”不能出现在标识符中

GUI

G.U.I

标识符内部需要出现“.”分隔符

基本数据类型

数值类型:  整型:(short,int,long), 非整型 (float,double)

//数值类型就是各种整数,short能容纳的数比较小,int比short大一点,long别另两个都大,大的多,平时int就够用。

//非整形就是各种小数,float能容纳的少点,称为单精度浮点数。double能容纳的多的多,称为双精度浮点数。

非数值型: char

//char是字符类型的,就是字母。

占位符:

每种类型的占位符都不同,占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号,short的占位符是%s, int的占位符是%d, long的占位符是%ld

float的占位符是%f, double的占位符是%lf, char的占位符是%c。

转换字符串

说 明

%d

将参数按整数形式转换输出,对应参数应是int 类型

%ld

将参数按长整数形式转换输出,对应参数应是long 类型

%c

输出一个字符,对应参数应该是一个字符

%s

输出一个字符串,对应参数应该是一个字符串

%lf

将参数按带小数点数形式输出,对应参数应是double 类型,默认情况下精确到
6 位小数

示例

//计算圆的面积

float pi=3.14;//圆周率

int r=3;//半径

float s=pi*r*r;

printf("圆的半径%d,圆周率%f,面积是:%f\n",r,pi,s); //%f:单精度浮点float占位符

练习  

                   #include <stdio.h>

                   void main(){

                    float pi = 3.14;
                    int r = 22;
                    float he = pi*r*r;
                    printf("圆的半径%d圆周率%f圆的面积%f\n",r,pi,he);

                   }

printf()函数和scanf()函数:

            printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。

            scanf()函数是C语言中的一个输入函数,一般用于获取printf()函数的数值。

示例:

      int bottom,height;

        printf("请输入三角形的底边长:");

      scanf("%d",&bottom);//将用户输入的值赋值给bottom变量 : &:取地址

       printf("请输入三角形的高:");

       scanf("%d",&height);//将用户输入的值赋值给height变量

     double s=bottom*height/2;

     printf("三角行的面积为:%7.2lf",s);//%lf:double的占位符  l7.2f:七位有效数字,精确到小数点后2位

练习:

    int gao,di;

printf("请输入三角形的高;");

scanf("%d",&gao);

printf("请输入三角形的底;");

scanf("%d",&di);

double as=gao*di/2;

printf("三角形的面积是%lf",as);//千万不能忘记所有的符号!

算术运算符:

二元运算: +,-,*,/,%(取模或求余)//两个数的预算如1+1=2

一元运算符:
++num,--num,num++,num--   //一个数的运算,如++6=7。++num和num++的区别是前者先自加再走下一条指令,后者先走下一条指令再自加。

--和++相同。

示例:

  int num1 = 10;

int num2= ++num1+num1--;

printf("num2=%d",num2);//打印结果22

printf("num1=%d",num1);//打印结果10

表达式

如何计算

结果 (num1=5)

num2 = ++num1;

num1 = num1 + 1;

num2 = num1;

num2 = 6;

num1 = 6;

num2 = num1++;

num2 = num1;

num1 = num1 + 1;

num2 = 5;

num1 = 6;

num2 = --num1;

num1 = num1 - 1;

num2 = num1;

num2 = 4;

num1 = 4;

num2 = num1--;

num2 = num1;

num1 = num1 - 1;

num2 = 5;

num1 = 4;

小练习:通过中间变量实现变量交换

         int num1,num2;

         int temp;//中间变量

         printf("请输入的num1的值");

        
scanf("%d",&num1);

         printf("请输入的num2的值");

        scanf("%d",&num2);

         printf("交换前num1=%d,num2=%d\n",num1,num2);

         temp=num1;

          num1=num2;

         num2=temp;//通过中间变量实现交换

         printf("交换后num1=%d,num2=%d\n",num1,num2);

自己的练习:

          int num1,num2,num3;

      printf("输入一个数");

      scanf("%d",&num1);

      printf("再来一个数");

      scanf("%d",&num2);

      printf("变身前num1=%d,num2=%d\n",num1,num2);

      num3=num1;

      num1=num2;

      num2=num3;

      printf("变身后num1=%d,num2=%d\n",num1,num2);

类型转换

•       自动类型转换

•       原则:把表示范围小的类型的值转换到表示范围大的类型的值就可以自动转换。把大的转换成小的就得用下面的强制转换。

•        short à int 
à
long  à 
float  à double

•       强制类型转换

•       语法:(类型名) 变量或数值

•       例如:

int a = 5, b = 3;

float qu = float(a) / b;

getchar()和putchar():getchar()和printf()效果相同,但不如printf()效果强大,putchar()和scanf()效果相同,同样的不如scanf()效果强大。

示例:    fflush(stdin)等同刷新,在这个例子中没有  fflush(stdin)的话就完全不行,用户输入的数据储存在缓存区,如果不用fflush清空缓存区的话就没办法在获取新的数据。

char a,b;

printf("请输入第一个字符:");

a=getchar();//获取输入字符

fflush(stdin);

printf("请输入第二个字符:");

b=getchar();//获取输入字符

fflush(stdin);

putchar(a);//输出字符

putchar(b);

putchar("\n");

自己的小练习:

   char a,b;

printf("输入一个字母:");

a = getchar();

fflush(stdin);

printf("再输入一个字母:");

b = getchar();

fflush(stdin);

putchar(a);

putchar(b);

putchar("\n");

*/

char a,b;

printf("输入一个字母:");

scanf("%c",&a);

fflush(stdin);

printf("输入另一个字母:");

scanf("%c",&b);

fflush(stdin);

printf("a=%c,b=%c\n",a,b);

课后作业:根据用户输入的底和高计算梯形的面积(精确到小数点后两位)。

    #include <stdio.h>

    void main(){

//首先获取上下底及高的数值,然后进行运算。

      double sdi,xdi,gao,he;

      printf("输入上底长度;");

      scanf("%lf",&sdi);

      printf("输入下底长度;");

      scanf("%lf",&xdi);

      printf("输入高度;");

      scanf("%lf",&gao);

         he = (sdi+xdi)*gao/2;

      printf("梯形的面积是;%7.2lf",he);

    }

转换字符串

说 明

%d

将参数按整数形式转换输出,对应参数应是int 类型

%ld

将参数按长整数形式转换输出,对应参数应是long 类型

%c

输出一个字符,对应参数应该是一个字符

%s

输出一个字符串,对应参数应该是一个字符串

%f

将参数按带小数点数形式输出,对应参数应是double 类型,默认情况下精确到
6 位小数

C语言学习第二章的更多相关文章

  1. oracle学习 第二章 限制性查询和数据的排序 ——03

    这里.我们接着上一小节2.6留下的问题:假设要查询的字符串中含有"_"或"%".又该如何处理呢? 開始今天的学习. 2.7  怎样使用转义(escape)操作符 ...

  2. Java基础知识二次学习-- 第二章 基础语法与递归补充

    第二章 基础语法与递归补充   时间:2017年4月24日10:39:18 章节:02章_01节,02章_02节 视频长度:49:21 + 15:45 内容:标识符,关键字与数据类型 心得:由字母,下 ...

  3. 最小正子序列(序列之和最小,同时满足和值要最小)(数据结构与算法分析——C语言描述第二章习题2.12第二问)

    #include "stdio.h" #include "stdlib.h" #define random(x) (rand()%x) void creat_a ...

  4. Asp.Net MVC4 + Oracle + EasyUI 学习 第二章

    Asp.Net MVC4 + Oracle + EasyUI 第二章 --使用Ajax提升网站性能 本文链接:http://www.cnblogs.com/likeli/p/4236723.html ...

  5. Ruby学习-第二章

    第二章 类继承,属性,类变量 1.如何声明一个子类 class Treasure < Thing 这样Thing类中的属性name,description都被Treasure继承 2.以下三种方 ...

  6. C#高级编程 (第六版) 学习 第二章:C#基础

    第二章 基础 1,helloworld示例: helloworld.cs using System; using System.Collections.Generic; using System.Li ...

  7. C语言进阶学习第二章

    本章重点记录指针的各种概念: 1.地址与内容 2.非法的赋值 3.NULL指针:NULL指针作为一个特殊的指针变量,表示不指向任何东西,在对指针进行解引用操作之前,首先必须 确保它并非NULL指针. ...

  8. Struts2框架学习第二章——Struts2下的HelloWorld

    本章要点 —  Struts 2的下载和安装 — 纯手工创建一个Web应用 — 纯手工创建一个Struts 2应用 — 实现Struts 2的Action — 配置Struts 2的Action — ...

  9. C语言学习第九章

    学习C语言的最后一节课了,原因嘛上一章的末尾说过了,其实写这篇博客的时候以后开始学习Java一个多月了,一直因为各种各样的原因没有坚持做到每天一篇学习记录,可能主要因为懒吧....也有点笨,Java的 ...

随机推荐

  1. 算法模板——Dinic网络最大流 1

    实现功能:同sap网络最大流 今天第一次学Dinic,感觉最大的特点就是——相当的白话,相当的容易懂,而且丝毫不影响复杂度,顶多也就是代码长个几行 主要原理就是每次用spfa以O(n)的时间复杂度预处 ...

  2. ViewPager 滑动一半的判断方法以及左滑右滑判断

    做项目的时候,会碰到用viewpager + fragments去实现多页滑动.有些时候需要完成:界面在滑动到一半或是一半以上的时候,需要把title之类的切换到下一个页面.这个时候仅仅依赖Viewp ...

  3. mysql 索引篇

    一.索引优化   索引优化主要还是依赖explain命令,关于explain命令相信大家并不陌生,具体用法和字段含义可以参考官网explain-output,这里需要强调rows是核心指标,绝大部分r ...

  4. Python中的日期和时间

    感觉C语言作为一门编程的入门语言还是很好的,相比较之下,Python为代表的一些语言,适合很多非计算机专业的编程入门学习. Python 日期和时间 Python 程序能用很多方式处理日期和时间,转换 ...

  5. 樱花的季节,教大家用canvas画出飞舞的樱花树

    又到了樱花的季节,教大家使用canvas画出飞舞的樱花树效果. 废话少说,先看效果. 演示效果地址:http://suohb.com/work/tree4.htm 查看演示效果 第一步,我们先画出一棵 ...

  6. Zookepper(2015.08.16笔记)

    2015.08.16zookepper   Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务(如同小区里面的供水.电的系统) 它包含一个简单的原 ...

  7. 十分钟搭建redis单机版 & java接口调用

    本次单机版redis服务器搭建采用的包为redis-3.0.0.tar.gz,主要是记录下安装的心得,不喜勿喷! 一.搭建redis服务器单机版 1.上传redis-3.0.0.tar.gz到服务器上 ...

  8. MIT 计算机科学及编程导论 Python 笔记 1

    计算机科学及编程导论在 MIT 的课程编号是 6.00.1,是计算机科学及工程学院的经典课程.之前,课程一直使用 Scheme 作为教学语言,不过由于 Python 简单.易学等原因,近年来已经改用 ...

  9. lsb_release 命令找不到

    yum install redhat-lsb -y 参考:http://blog.chinaunix.net/uid-20606164-id-3485376.html

  10. javascript 数组的部分常用属性用法

    数组 检测数组(返回布尔类型 a. instanceof(); 检测是否是数组对象 console.log(arr instanceof Array) ; b. Array.isArray() ,H5 ...