首页 > 其他分享 >C语言-运算符和分支循环语句

C语言-运算符和分支循环语句

时间:2023-12-02 21:33:16浏览次数:39  
标签:语句 10 判别 int scanf C语言 运算符 字符串 表达式


extern:
表示声明。 没有内存空间。 不能提升。

const:
限定一个变量为只读变量。

volatile:

防止编译器优化代码。

volatile int flg = 0;

register:

定义一个寄存器变量。没有内存地址。

register int a = 10;

字符串:

C语言中,用双引号引着的一串字符,称之为字符串。一定有一个结束标记'\0'

char ch = ‘A’; 一个字节

"abc" --> 'a''b''c''\0'

‘a’ 不等价 “a”('a''\0')

printf函数:

%s:打印字符串, 挨着从字符串的第一个字符开始打印,打印到'\0'结束。

%d:打印整数

%c:打印字符

%x:打印16进制数

%u:打印无符号

%m.n: 打印实型时用到,一共有 m 位(整数、小数、小数点),n位小数。

%0m.nf: 其中 f:表示打印实型,一共有 m 位(整数、小数、小数点),n位小数。 0:表示不足 m 位时,用0凑够m位。

%%: 显示一个%。 转义字符'\' 对 % 转义无效。

%Ns:显示N个字符的字符串。不足N用空格向左填充。

%0Ns:显示N个字符的字符串。不足N用0向左填充。

%-Ns:显示N个字符的字符串。不足N用空格向右填充。

putchar函数:

输出一个 字符 到屏幕。

直接使用 ASCII 码。

不能输出字符串。

‘abc’既不是一个有效字符,也不是一个有效字符串。

常用putchar('\n');来打印换行。

printf("\n");

scanf函数:

从键盘接收用户输入。

1. 接收 整数 %d

int a, b, c; 创建变量空间, 等待接收用户输入。

scanf("%d %d %d", &a, &b, &c);

2. 接收 字符 %c

char a, b, c;

scanf("%c %c %c", &a, &b, &c);

3. 接收 字符串 %s

char str[10]; // 定义一个数组,用来接收用户输入的 字符串。

scanf("%s", str); // 变量名要取地址传递给 scanf, 数组名本身表示地址,不用 & 符。

接收字符串:

1) scanf 具有安全隐患。如果存储空间不足,数据能存储到内存中,但不被保护。【空间不足不要使用】

2) scanf 函数接收字符串时, 碰到 空格 和 换行 会自动终止。不能使用 scanf 的 %s 接收带有空格的字符串。


将 #define _CRT_SECURE_NO_WARNINGS 添加到程序 第一行。 解决scanf 4996错误


getchar()函数:

从键盘获取用户输入的 一个字符。

返回该获取的字符的 ASCII 码。


算数运算符:

先 * / % 后 + -

除法运算后,得到的结果赋值给整型变量时,取整数部分。

除0 :错误操作。不允许。

对0取余:错误操作。不允许。

不允许对小数取余。余数不能是 小数。 35 % 3.4;

对负数取余,结果为余数的绝对值。10 % -3; --》 1

++ 和 --:

前缀自增、自减:

先自增/自减, 在取值。

int a = 10;

++a; // a = a+1;

后缀自增、自减:

int a = 10;

a++; // a = a+1;

先取值, 再自增/自减。

赋值运算:

int a = 5;

a += 10; // a = a+10;

a -= 30; // a = a-30;

a %= 5; // a = a % 5;

比较运算符:

== 判等。

!= 不等于.

< 小于

<= 小于等于

> 大于

>= 大于等于


13 < var < 16; ==> var > 13 && var < 16;

逻辑运算符:

0为假,非0为真。(1)

逻辑非:!

非真为假, 非假为真。

逻辑与: &&(并且)

同真为真,其余为假。

逻辑或:|| (或)

有真为真。同假为假。

运算符优先级:

[]() > ++ -- (后缀高于前缀) (强转) sizeof > 算数运算(先乘除取余,后加减)>

比较运算 > 逻辑运算 > 三目运算(条件运算)> 赋值运算 > 逗号运算


三目运算符: ? :

表达式1 ? 表达式2 : 表达式3

表达式1 是一个判别表达式。 如果为真。整个三目运算,取值表达式2。

如果为假。整个三目运算,取值表达式3。

默认结合性。自右向左。

类型转换:

隐式类型转换:

由编译器自动完成。

由赋值产生的类型转换。 小--》大 没问题。 大 --》 小 有可能发生数据丢失。

int r = 3;

float s = 3.14 * r * r;

321: 256 128 64 32 16 8 4 2 1
1 0 1 0 0 0 0 0 1

char ch = 0 1 0 0 0 0 0 1

强制类型转换:

语法: (目标类型)带转换变量

(目标类型)带转换表达式

大多数用于函数调用期间,实参给形参传值。


if分支语句:匹配一个范围.属于模糊匹配.

if (判别表达式1)
{

判别表达式为真,执行代码。
}
else if(判别表达式2)
{
判别表达式1为假,并且判别表达式2,执行代码。

}
else if(判别表达式3)
{
判别表达式1为假,判别表达式2为假,判别表达式3, 执行代码。
}
。。。
else
{
以上所有判断表达式都为假, 执行代码。
}

练习:三只小猪称体重:


屏幕输入三只小猪的重量。借助if分支语句,找出最重的小猪重量。


switch 分支:精确匹配.

switch(判别表达式)
{

case 1:
执行语句1;
break; // 防止case穿透

case 2:
执行语句2;
break;

case 3:
执行语句3;
break;
...

case N:
执行语句N;
break;

default:
其他情况的统一处理;
break;
}

case 穿透:

在一个case分支中如果,没有break;那么它会向下继续执行下一个case分支.


while循环:

while(条件判别表达式)
{

循环体.
}

练习:敲7:1--100数数, 逢7和7的倍数,敲桌子。

7的倍数: num % 7 == 0

个位含7: num % 10 == 7

十位含7: num / 10 == 7


do while 循环:

无论如何先执行循环体一次。然后在判断是否继续循环。

do {

循环体

} while (条件判别表达式);


练习:求水仙花数。 一个三位数。各个位上的数字的立方和等于本数字。 234 861

100 -- 999

int num = 100;

个位数: int a = num % 10; a*a*a;

十位数: int b = num / 10 % 10;

百位数: int c = num / 100;

 


 

 

 

 

 

 

 

 

 

 




标签:语句,10,判别,int,scanf,C语言,运算符,字符串,表达式
From: https://www.cnblogs.com/csharp-netcore/p/17872259.html

相关文章

  • 运算符
    运算符算数运算符:+,-,*,/,%,++,--packageoperator;​publicclassDemo02{  publicstaticvoidmain(String[]args){    //有long为long,无long为int​    longa=123123123123L;    intb=123;    shortc=10;    byted=8;​ ......
  • 表达式-C语言-2023/12/2
    首先介绍表达式:......
  • 语句-C1-2023/12/2
    ......
  • C语言【交换两变量值】
    C语言【交换两变量值】//1、临时变量intx=10,y=20;inttemp=x;x=y;y=temp;//2、相加再减的方法inta=10,b=20;a=a+b;b=a-b;a=a-b;//3、异或的方法,利用A^A=0,A^0=A的特性inti=10,j=20;i^=j;j^=i;i^=j;注意:如果存在两个指针......
  • 学习C语言必备的基础知识详解
    (⽬录)前言学习C语言的第一步,肯定是要先去学习了解一下相关的概念和符号,我们写的代码就是由一堆规定好的有特殊含义的符号组成的。1、数据类型C语言的数据类型细分出来会有很多种,每种数据类型占内存大小都不同,对于刚接触编程语言的人来说,确实很让人头疼。其实存在这么多的类型,......
  • 无涯教程-Erlang - 运算符
    Erlang具有以下类型的运算符-算术运算符关系运算符逻辑运算符按位运算符算术运算符Erlang语言支持普通的算术运算符,就像任何一种语言一样,以下是Erlang中可用的算术运算符。运算符描述示例+加1+2=3-减1-2=-1*乘2*2=4/除2/2=1rem余数3rem2=1div......
  • c语言作业_1
    作业标题(649)从大到小输出作业内容写代码将三个整数数按从大到小输出。例如:输入:231输出:321#include<stdio.h>intmain(){inta=2;intb=3;intc=1;scanf("%d%d%d",&a,&b,&c);//从大到小输出3个整数abcif(a<b){inttm......
  • c语言作业_2
    作业标题(659)分数求和作业内容计算1/1-1/2+1/3-1/4+1/5……+1/99-1/100的值,打印出结果#include<stdio.h>intmain(){ inti=0; doublesum=0.0; intflag=1; for(i=1;i<=100;i++) { sum+=flag*1.0/i; flag=-flag; } printf("%lf\n",sum);......
  • 位运算符-C语言-2023/12/2
    不全面......
  • 浙大翁恺-C语言入门-第二周②
    但现在,我不再畏惧。-Faker《不死者》---运算符(符号)、算子(进行计算的量)C语言,开始的时候是用的打字机,打字机没有乘除号,所以用星号*和右斜杠/分别代表乘,除。这样就有了加减乘除四则运算。另外特殊的取余操作,用的百分号%,取余获得两个数相除的余数。C=A%B;思考问题:计算时间......