第五章,运算符、表达式和语句

5.2  基本运算符

5.2.1  赋值运算符:=

术语:左值,右值,数据对象。

5.2.2  加法运算符:+

5.2.3  减法运算符:-

5.2.4  符号运算符:-和+

 

5.2.5  乘法运算符:*

5.2.6  除法运算符:/

5.2.7  运算符优先级

 

5.2.8  优先级和求值顺序

结合律只适合共享同一运算对象运算符。

5.3  其他运算符

5.3.1  sizeof运算符和size_t类型

C语言规定:sizeof返回size_t类型的值。这是一个无符号整型。但他不是新类型,是语言定义的标准类型。即typedef机制。

5.3.2  求模运算符:%

求模运算符给出其左侧整数除于右侧整数的余数。

当负数求模时,c99规定如果第一个运算对象是负数,那么求模结果为负数,如果第一个运算对象是正数,那么求模结果为正数,

5.3.3  递增运算符:++

++出现在其作用的变量前,这是前缀模式,即先加一

++出现在其作用的变量后,这是后缀模式。即先使用变量再加一。

 

5.3.4  递减运算符:--

5.3.5  优先级

递增和递减运算符都有很高的结合优先级,只有圆括号的优先级比他们高。(只能影响一个可修改的左值)

5.4  表达式和语句

5.4.1  表达式

表达式是由运算符和运算对象组成的,每个表达式都有一个值。

5.4.2  语句

语句是c程序的基本构建块

while是一种迭代语句有时也被称为结构化语句。

副作用和序列点

例:num=123;它副作用是将变量的值设置为123,主要目的是给表达式求值。

序列点:是程序执行的点

5.4.3  复合语句(块)

复合语句:是用花括号括起来的一条或多条语句

5.5  类型转化

1.当类型转化出现在表达式时,无论unsigned还是signed的char,short都会被转化为int,如有必要会转化为unsigned int,由于都是较小类型转化为较大类型,所以被称为升级。

2.设计到两种类型的运算,两个值会分别被转为更高的等级。

3.类型的级别依次是

4.赋值表达式语句中,计算结果最终会被转化为被赋值的类型,这个过程有可能导致降级。

5.当作为函数参数传递时char,short被转化为int,float被转化为double函数原型会自动覆盖升级。

5.5.1  强制类型转化运算符

其通用型式为:(type)

5.6  带参数的函数

我们可以说:形参是变量,实参是函数实际调用的值,实参被赋值给相应的形参。

5.11  编程练习

3.

#include <stdio.h>
// 输入天数改成周数和天数
int main(void)//
{
    int num=0;
    int week=0;
    int day=0;
    printf("please enter a numbers of days");
    scanf("%d",&num);
    week=num/7;
    day=num%7;
    printf("%d day are %d weeks,%d day ",num,week,day);
    return 0;
}

 

6.

#include <stdio.h>
// 输入天数改成周数和天数
int main(void)//
{
    int day=0;
    printf("please enter number of days");
    scanf("%d",&day);
    while(day<21)
    {
        int i=0;
        int money=0;
        while(i<day)
        {
            i++;
            money=(i*i)+money;
        }
        printf("you earn %d yuan in %d days \n",money,day);
        scanf("%d",&day);
    }
    return 0;
}

 

7.

#include <stdio.h>
void calculate_print(double n);
int main(void)//
{
    double num;
    printf("please enter a number");
    scanf("%lf",&num);
    calculate_print(num);
    return 0;
}
void calculate_print(double n)
{
    n=n*n*n;
    printf("cubic value is %f",n);
}

 

8.

#include <stdio.h>
void calculate_print(double n);
int main(void)//
{
    int num1=0;
    int num2=0;
    printf("please enter a number ");
    scanf("%d",&num2);
    printf("please enter a number ");
    scanf("%d",&num1);
    while(num1>0)
    {
        printf("%d",num1%num2);
        printf("please enter a number ");
        scanf("%d",&num1);
    }
    return 0;
}

9.while判断条件中,是需要输入值才能判断的。

#include <stdio.h>
void temperature(double n);
int main(void)//
{
    double num=0.0;
    printf("please enter a number\n");
    while(scanf("%lf",&num)==1)
    {
        temperature(num);
        printf("please enter a number\n");
    }
    return 0;
}
void temperature(double n)
{
    double celsius =0;
    double kelvin=0;
    celsius=5.0/9.0*(n-32.0);
    kelvin=celsius+273.16;
    printf("celsius is %f,kelvin is %f\n",celsius,kelvin);

}

 

posted @ 2020-02-11 17:25  苏文cjp  阅读(136)  评论(0编辑  收藏  举报