1.循环简介

while循环

/*shoes2.c--计算多个不同鞋码的脚长*/
#include<stdio.h>
#define ADJUST 7.31      //字符常量
int main(void)
{
    const double SCALE = 0.333;//const变量
    double shoe, foot;

printf("shoe size (mwn's)  foot length\n");
    shoe = 3.0;
    while (shoe < 18.5)     /*while循环开始*/
    {                       /*块开始*/
        foot = SCALE *shoe + ADJUST;
        printf("%10.1f %15.2f inches\n", shoe, foot);
        shoe = shoe + 1.0;
    }                        /*块结束     */
    printf("if the shoe fits,wear it .\n");

return 0;
}

解释while循环原理

当程序第一次到达while循环时,会检查圆括号中的条件是否为真,表达条件如(shoe<18.5)

2.基本运算符

C用运算符(operator)表示算术运算,基本运算符有:“=,+,-,*和/".C语言中没有指数运算符,不过,C标准数学库提供了一个pow()函数用于指数运算。例如,pow(3.5,2.2)返回3.5的2.2次幂。

2.1   赋值运算符:=

在C语言中,=并不意味着“相等”,而是一个赋值运算符例如:bmw=2002,=左侧是变量名(实际上,赋值运算符左侧必须引用一个存储单位,最简单的方法为使用变量名,后面会学着使用指针),右侧是赋给该变量的值赋值行为从右往左进行,读作:把2002赋给变量bmw。

数据对象:赋值表达式语句的目的是把值储存到内存位置上。对于储存值的数据存储区域统称为数据对象(date objet)。使用变量名是标识对象的一种方法。除此之外换可以:可以指定数组元素,结构成员,或者使用指针表达式(指针中储存的是他所指向对象的地址)

左值:用于标识特定数据对象名称或表达式。他只的是一个对象,所以引用内存中的地址;他可以赋值在运算符左侧,再后来标准中新增的const限定符创建的变量不可修改。

//golf.c--高尔夫锦标赛记分卡
#include<stdio.h>
int main(void)
{
    int jane, tarzan, cheeta;

cheeta=tarzan=jane=68;
    printf("                cheeta  tarzan jane\n");
    printf("first round score %4d %8d %8d\n", cheeta, tarzan, jane);
    return 0;

}

许多其他语言都会回避该程序中的三重弄赋值,但是C完全没问题。赋值顺序从优往左看:首先把68赋给jane,然后再付给Tarzan,最后附个cheetah

加法运算符:printf("%d",4+20);打印的是24,并非4+20.

减法运算符:如把200.0赋给takehome;takehome=224.00-24.00

加和减都被称为二元运算符。,既这些对象需要连个运算对象才能完成操作。

减号还可用于表明或改变一个值的代数符号。例如执行smokey的值为12:rocky=-12;smokey=-rocky;以这种方式使用的负号被称为一元运算符,一元运算符只需要一个运算对象

//wheat.c--指数增长
#include<stdio.h>
#define SQUARES 64         //棋盘中的方格数
int main(void)
{
    const double CROP = 2E16;//世界小麦年产谷颗粒数
    double current,total;
    int count = 1;
    printf(" square        qrains         total      fraction of\n");
    printf("               added          qraind     world total\n");
    total = current = 1.0;
    printf ("%4d %13.2e %12.2e %12.2e\n", count, current,
        total,total/CROP);
    while (count < SQUARES)
    {
        count = count + 1;
        current = 2.0*current;//下一个方格谷粒翻倍
        total = total + current;//更新总数
        printf("%4d  %13.2e %12.2e %12.2e\n", count, current,
            total, total / CROP);

}
    printf("that's all.\n");
    return 0;

}

除法运算符:C使用符号/来 表示除法,/左侧的值是被除数,右侧的值是除数例如;four=12.0/3.0

运算符优先级:以下代码为例

butter=25.0+60.0*n/SCALE

处理原则:先执行乘除,在执行加减,同等级别时按从左到右顺序进行。(等号除外)

运算符优先等级(从高到低)

运算符 结合律
() 从左往右
+ -(一元) 从右往左
* / 从左往右
+ -(二元) 从左往右
= 从右往左

应注意加号与减号的两种不同用法。例如一元负号应与她右侧的量相结合,在除法中用出号左侧的运算对象除以右侧的运算对象。

其他运算符

  • sizeof运算符和size.t类型
  • 求模运算符:%

求模运算符运用于整数运算,求模运算符给出其左侧的整数除以右侧整数的余数。例如:13%5(读作:13求模5)得3,求模运算只能运用于整数,不呢被用于浮点数。

  • 递增运算符:++

前缀模式:q=2*++a,首先a递增1然后*2,并将结果赋给Q;

缀模式:q=2*a++,首先2*a,并将结果赋予q 然后a递增1。

  • 递减运算符:--
  • 关系运算符:><

表达式和语句

表达式:表达式是由运算符和运算对象组成。灭个表达式都有一个值。

语句:语句是C程序的基本构建块,一条语句相当于一条完整的计算机指令。

复合语句(块):

复合语句(compound statement)是用花括号括起来的一条或多条语句,复合语句也成为快。

类型转换

强制类型转换运算

强制类型转换运算符将其右侧的值转换成括号中指定的类型,如(float)9把整数9转换成浮点数9.0

带参数的函数

实参:是函数调用提供的值,实参被赋予相应的形参。

形参:是变量

//running.c--Auseful program for runners
#include <stdio.h>
const int S_PER_M = 60;            //1分钟的秒数
const int S_PER_H = 3600;           //1小时的秒数
const  int M_PER_K = 0.61237;                 //1公里的英里数
int  main(void)
{
    double distk, distm;                 //跑过的距离(分别以公里和英里为单位)
    double rate;                   //平均速度(以英里每小时为单位)
    int min, sec;                   //跑步用时(以分钟和秒为单位)
    int time;                         //跑步用时(以秒为单位)
    double mtime;                     //跑1英里需要的时间,以秒为单位
    int mmin, msec;                   //跑1英里所需要的时间,以分钟和秒为单位

printf("this program converts your time for a metric race\n");
    printf("to a time for running a mile and to your average \n");
    printf("speed in miles per hour.\n");
    printf("please enter ,in kilometers,the distance run.\n");
    scanf("%1f", &distk);                      //   %f读取一个double类型的值
    printf("next enter the time in minutes and seconds .\n");
    printf("begin by entering the minutes .\n");
    scanf("%d", &min);
    printf("now enter the second .\n");
    scanf("%d", &sec);

time = S_PER_M*min + sec;           //把时间转换成秒
    distm = M_PER_K*distk;        //把公里转换成英里
    rate = distm / time*S_PER_H;   
    mtime = (double)time / distm;
    mmin = (int)mtime / S_PER_M; //求出分钟数
    msec = (int)mtime  % S_PER_M;//求出剩余的秒数

printf("you ran %1.2f km (1.2f miles) in %d min ,%d sec.\n",
        distk, distm, min, sec);
    printf("that pace corresponds to running a mile in %d min,",
        mmin);

printf("%d sec.\nyour average speed was %1.2f mph.\n",
        msec, rate);
    return 0;

运算符、表达式和语句相关推荐

  1. 《C Primer Plus》第五章-运算符 表达式和语句(笔记、复习题、编程题,副作用和序列点,升降级)

    文章目录 运算符 表达式和语句 本章内容 循环简介 基本运算符 赋值运算符:= 几个术语:数据对象.左值.右值和运算符 加法运算符:+ 减法运算符:- 5.2.4 符号运算符:-和+ 乘法运算符:* ...

  2. 第五章运算符表达式和语句

    title: 第五章 运算符.表达式和语句 author: HardyDragon tags: C Notes 第五章 运算符.表达式和语句 5.1 循环简介 5.2 基本运算符 5.2.1 赋值运算 ...

  3. python基本对象_python基础教程:运算对象、运算符、表达式和语句

    编程的本质就是数据和运算,数据由基本数据类型.数据结构来表示,运算就是对这些数据的各种操作,基本的加减乘除.是非判断.流程控制等等.这些操作就是今天我们要讲的运算符.表达式和语句. 前面我们学习Pyt ...

  4. Java 运算符、表达式、语句

    文章目录 1. 运算符 2. 表达式 3. 语句 1. 运算符 赋值运算 = +, -, *, /, % 算术运算 +, -, !, ~ 一元运算 关系运算 >, <, >=, &l ...

  5. java表达式语句_Java基础知识笔记第三章:运算符表达式语句

    算术运算符与表达式 操作符描述例子 + 加法 - 相加运算符两侧的值 A + B 等于 30 - 减法 - 左操作数减去右操作数 A – B 等于 -10 * 乘法 - 相乘操作符两侧的值 A * B ...

  6. C | 运算符、表达式和语句

    目录 一.循环简介 二.基本运算符 2.1 赋值运算符:= 2.2 加法运算符:+ 2.3 减法运算符:- 2.4 符号运算符:-和+ 2.5 乘法运算符:* 2.6 除法运算符:/ 2.7 运算符优 ...

  7. C语言基础之5:运算符、表达式和语句

    Tips1: 关键字:while.typedef 运算符:=.-.*./.%.++.--.(类型名) C语言的各种运算符,包括用于普通数学运算的运算符 运算符优先级以及语句.表达式的含义 while循 ...

  8. 《C Prime Plus》(第六版) 第05章 运算符、表达式和语句 例题集和编程练习

    OS: Mac Catalina 10.15.4 Hardware: Intel Core i9/16G 2667MHz DDR4 编译器版本:Mac Xcode 11.6  第05章 运算符.表达式 ...

  9. 第5章 运算符、表达式和语句

    关键字:while.typedef 运算符:=.-.*./.%.++.--.(类型名) C语言的各种运算符,包括用于普通数学运算的运算符 运算符优先级以及语句.表达式的含义 while循环 复合语句. ...

最新文章

  1. php框架打印session,Session组件
  2. MusicXML 3.0 (7) - 连线、延音线
  3. 方舟修改显示服务器个数,方舟生存进化服务器模式设置教程
  4. 近世代数--素理想和极大理想--有单位元的交换环,每个极大理想都是素理想
  5. java jsp filename filepath 图片上传_SpringMVC实现文件上传与下载
  6. 伪类的使用之如何在一段文字前面添加一个点
  7. linux之pmap命令
  8. android 媒体库扫描,如何扫描出Android系统媒体库中视频文件
  9. 南京大学python_python split()函数
  10. 浅谈今日头条关键词下拉词框优化推广的优势
  11. 卡尔曼滤波和粒子滤波最直白的解释
  12. canopy java_在Windows上安装带有Enthought Canopy的Theano
  13. 移动互联软件技术与实践demo
  14. 共空间模式算法(CSP)
  15. 汉字转拼音多音字java_汉字转拼音多音字解决方案 搜索引擎分词细胞词库更新 搜狗词库提取TXT PHP高性能输出UNICODE正则汉字列表...
  16. Supermap机器学习功能实操
  17. 手机wifi延迟测试软件,测网速延迟(如何测试wifi延迟)
  18. librtmp推流到YouTube失败
  19. 智慧校园:校务助手微信小程序端源码
  20. 力扣88 - 合并两个有序数组【归并排序思维】

热门文章

  1. 获取java可用时区列表ZoneId
  2. 《Charles配置教程之Mac》
  3. 【CloudShell】阿里云壳EDR卸载指南
  4. 扡扫机器人_评测:不会满场乱飞奔 这台Anker扫拖机器人指哪儿扫哪儿
  5. PageAdmin CMS网站制作教程:如何创建及管理栏目?
  6. 计算机公司客户电话怎么打,企业微信公费电话怎么打多人通话【方法】
  7. orm查询方式与优化
  8. java 读取word 带格式_java读取word带格式_游戏下载_游戏攻略资讯_尽在搜狗爱玩
  9. 计算机基本组成及功能
  10. flink on yarn使用第三方jars的方法如何查看进程所持有jar包