首页 > 其他分享 >C语言第二课学习笔记--运算符,流程控制和函数

C语言第二课学习笔记--运算符,流程控制和函数

时间:2022-12-06 00:45:39浏览次数:51  
标签:语句 第二课 -- max 运算符 int 执行 表达式 函数

<7>运算符

1)分类:一些基本的运算符分类有:算术、关系、逻辑、赋值

算术运算符有:+,-,*,/,%;

        对于/被除数和除数都是int则结果是int,有一个是float结果就是float;对于%,被余数和余数一定要是int,结果正负和被余数相同

关系运算符有:>,<,>=,<=,!=

逻辑运算符有:&&,||,!

        对于A&&B,只要A是假,则B不进行运算;对于A||B,只要A是真,则B不进行运算;C语言中对真假的判断,0为假,非0为真。

赋值运算符有:=,+=,-+,*=,/=

        比如A+=B,意思是A=A+B

 

2)优先级:算术>关系>逻辑>赋值

 

3)一些琐碎的运算符

逗号表达式

形式是(表达式A,表达式B,表达式C,表达式D),从左到右依次执行表达式A,B,C,D,假如是a=(A,B,C,D),结果是a为最后一个表达式D的值

3目运算符

形式是A?C:D,意思是,如果A是真,执行C,为假,执行D

自增自减

i++,++i。举例来说,如果int i=1;a=i++;b=++i;那么a为1,b为2。

 

<8>流程控制

顺序执行,选择执行,循环执行

1) 顺序执行

顺序执行也就是,从上往下,一条条依次执行

2) 选择执行

有两类,一是if,一是switch

先说if:基本格式是if(表达式)             

                                  语句A;

                              else 

                                      语句B;           表达式为真,执行A,否则执行B。

 

还有一种是:        if(表达式1)

                                    语句A;

                              else if(表达式2)

                                   语句B;

                              else if(表达式3)

                                  语句C;

                               else

                                  语句D;

如果A执行,则1成立;如果B执行,则1不成立2成立;如果C执行,则12不成立3成立;如果D执行,则123都不成立。

       几个注意点:

1、if和else的搭配,else可以省,if不能省;

2、只有if和else if后面加(表达式),else后面不能加;

3、if只能控制一条语句的执行与否,比如说:

                       if(表达式)

                            语句A;

                            语句B;            只能控制语句A的执行与否,而B一定执行。

那么要同时控制多条咋办呢?用{}括起来。比如说:

                       if(表达式)

                          {语句A;语句B}    同时控制语句A和B的执行与否。

现在说switch:格式是switch(表达式)

                               {

                                  case常量表达式1:语句A;break;

                                  case常量表达式2:语句B;break;

                                  case常量表达式3:语句C;break;

                                  default:语句D;break;

                                 }

有break的前提下:switch里面的表达式和常量表达式1相同,执行A;和2相同执行B;和3相同执行C;都不同执行D。

如果没有break,那么1的话执行ABCD,2的话执行BCD以此类推。也就是说,常量表达式提供的是一个入口,进入了之后就依次往下执行就是了。而在进入了之后,会屏蔽其他的case 常量表达式,只执行语句。

那么break的作用呢?有两个,一是退出switch,就像上面,二是退出循环,之后会介绍。

 

3) 循环执行

有两类,一是for,二是while

先说for:举个例子    for(i=1;i<4;++i)

                                  语句;

执行的顺序是先执行i=1,然后进行判断i<4是否为真,如果为真,那么就执行语句,再执行++i。++i完成就宣告完成了一次循环。第二轮就是直接判断++i之后i<4是不是还是真,如果是,执行语句后再++i,以此往复,直到i<4的判断为假,就退出循环。

 

再说while:格式是while(表达式)

                                          语句;

执行顺序是,判断表达式是否为真,为真就执行语句,语句执行结束后进行第二次判断,为真就再执行语句,以此往复,知道表达式为假退出循环。

还有一种是do...while,主要用于人机交互。格式为:

                              do{

                                      语句;

                                    }while(表达式)

执行顺序是,上来就执行语句,然后再进行表达式的判断,为真就再执行,如此往复,直到表达式为假时退出循环。

 

4) break和continue

break可以用来终止循环,跳出switch,终止和跳出的都是最近的一层循环或者switch。

continue用于跳过循环体的余下语句,转而判断是否要执行下次循环。

 

<9>函数

1) 什么是函数

逻辑上说,是能够完成特定功能的独立代码块

物理上说,能接受数据,对其进行处理后能将数据处理的结果输出返回

 

2) 为什么要函数

避免重复性操作,比如一个功能的代码重复敲;

有利于程序的模块化,比如一个非常问题可以可以分解为多个模块的细节实现

 

3) 函数的定义和执行

函数返回值 函数名(函数的形参列表)

                          {函数结构体}

举个例子:void max(int i,int j)

                            {if(i>j)

                                   printf(“%d\n”,i);

                            else

                             printf(“%d\n”,j);}

                int main(void)

                            {

                              int a=1,b=2,c=3,d=4;

                              max(a,b);

                              max(c,d);

                              return 0;

                             }

对于函数max来说 void说明没有返回值,max是函数名,i,j是形式参数。

对于main函数来说,int说明返回值是int类型(return 0),main是函数名,void说明主函数不能接收数据。

所有程序都是从main函数开始执行,就比如这个例子,先对abcd进行初始化,然后执行max(a,b),此时把a,b的值传给函数max的i和j,转而执行max函数。max函数执行结束后,形式参数i,j释放。回头去继续执行main函数,main函数中,此时到了执行max(c,d)的时候,又将c,d传给函数max的i和j,再次转去执行max函数,max执行结束后,形式参数i,j释放后返回main函数。main函数没东西执行了,这个程序结束。

 

4) 函数的声明

为什么需要函数声明?

调用必须在定义之后,但是如果在定义之前就调用之后,会报错,怎么处理呢?那就需要用到函数声明。也就是说,可以用来协调函数调用和函数定义的顺序。

举个例子:   int  f(void);//这个就是函数声明

                     int main(void)

                     {

                       int a;

                       a=f();//函数调用

                       return 0;

                      }

                       int f(void)//函数定义

                      {

                        return 1;

                       }

函数f,int表示函数返回值是int类型(return 1),void说明函数f不能接收数据。

这个程序,主函数先调用了f函数,而定义在后面。但是这个程序并不会报错,因为前面有函数声明的存在。这个声明,告诉编译器即将可能出现的若干个字母,表示的是一个函数,也说明了它的形参和返回值的具体情况。

 

5) 函数分类

有参无参,有返无返,库函数和用户自定义函数,普通函数和主函数

库函数的声明是通过#include<库函数所在的文件名.h>

主函数可以调用普通函数,普通函数不能调用主函数,普通函数之间可以相互调用。

 

6) return表达式返回值的类型和函数定义时候确定的函数返回值类型出现冲突

按照函数定义时候确定的返回值类型为准。

 

7) 如何在软件开发中合理地设计函数解决实际问题

功能要单一,多学习牛人的代码

 

8) 常用的系统函数

double sqrt(double x)//求x的平方根

int abs(int x)//求x的绝对值

double fabs(double x)//求x的绝对值

有本书推荐:《机械工业turboc2.0实用大全》

 

9) 变量的作用域和存储方式分类

作用域:全局变量和局部变量

        全局变量是定义在所有函数(包括主函数)外面的,作用的范围是从定义的位置往下到整个程序结束

        局部变量是在一个函数内部定义的,也包括局部变量也是局部变量,作用范围是从定义的位置往下到这个函数结束。

存储方式:静态变量、自动变量、寄存器变量

标签:语句,第二课,--,max,运算符,int,执行,表达式,函数
From: https://www.cnblogs.com/fjcz/p/16954006.html

相关文章

  • 第一章、chrome插件
    目录一、chromeextensions(扩展)1、introduction(介绍)2、tutorialstructure(教程结构)3、thebigpicture(大局)4、extensiontypes(扩展类型)5、mainfest(清单)二、helloworld1、......
  • 攻防世界-fileinclude
    一道简单的文件包含题目,源代码如下 一、代码分析此题中关键代码为  分析此处代码可知,$lan的值是cookie中language所对应的值,当该值不为english时,会将$lan的值与.p......
  • 请求返回数据中没有布尔类型值?
    循环遍历渲染出的DOM结构中,有时需要单独对每个元素进行标记,如果此时数据中没有布尔类型值,那么需要手动添加方法1:需要先把原数据进行修改页面才能响应,list没有set方......
  • react-native-modal-dropdown
    react-native-modal-dropdown1.0.2 • Public • Published ayearago Readme Explore BETA1Dependency32Dependents21Versionsreact-native-m......
  • ReactNative踩坑之旅: Unable to resolve module 和 Error: Plugin
    原文:https://blog.csdn.net/j550341130/article/details/81027700具体流程请看这个,感谢分享:https://blog.csdn.net/qiyei2009/article/details/78820207我是在windo......
  • ASP.NET Core上传文件 示例代码记录
    微软文档https://learn.microsoft.com/zh-cn/aspnet/core/mvc/models/file-uploads?view=aspnetcore-3.1 到下载页面如下: 下载代码后到3.x\SampleApp目录,vs打开该......
  • React-native link命令的详细讲解
    1.使用React-nativelink的背景并不是所有的APP都需要使用全部的原生功能,包含支持全部特性的代码会增大应用的体积。但我们仍然希望能让你简单地根据自己的需求添加需要......
  • CopyOnWrite简单使用
    在集合遍历的时候,向集合中添加元素这里的错误叫做fail-fast机制,当多个线程对同一集合的内容进行操作时,就可能会产生fail-fast事件    当modCount的数量和expecte......
  • 关于开发的一些总结
    常见的Java后端框架有:JavaServlet、SSM(Spring+SpringMVC+Mybatis)、SpringBoot(SpringBoot+MybatisPlus)常见的Python后端框架有:Django、Flask、Sanic(异步框架)、F......
  • JavaSE复习day1
    JavaSE复习day1胡家伟1.代码格式注释单行注释:通常用于解释方法内某单行代码的作用。多行注释:通常用于解释一段代码的作用。文档注释:通常用于生成Java开发文档。......