C语言基础 字符串函数 顺序 分支流程

字符串的输入和输出函数

函数名功能备注
puts

向终端输出一个字符串

int puts(const char*s);

参数传入,变量,常量都行

在字符串的最后,会加入\n

gets

从终端接受一个字符串

char*gets(char*s);

参数传入,变量(数组)

在输入内容的时候,不要越界。越界后结果不确定

int main()
{
    puts("hello"); // 会加入换行符
    char str[256] = "nihao,zhangsan";
    puts(str);
    scanf("%s",str);
    printf("nihao,%s\n",str);
    return 0;
}
// gets
int main()
{
    char namr[5] = {0};
    printf("input person name");
    //输入的内容大于4个字符以上,就会出现越界
    gets(name); // 阻塞,等待接收数据
    return 0;
}

第三章 流程控制

1.顺序逻辑,从main函数开始,一条挨着一条执行,直到最后

2.分支逻辑,从main函数开始,有选择性的执行,直到最后

3.循环逻辑,从main函数开始,对某一段代码执行多次后,直到最后

顺序逻辑流程图                      分支逻辑流程图                循环逻辑流程图

   

关系(比较)运算符 

操作的对象 数值型  (int float double)

比较运算符功能备注
>大于 双目
>=大于等于 双目
<小于 双目
<=小于等于 双目
==判等,左右两边等值,双目注意和=(赋值)区别
!=不等于 左右两边不等值 双目

使用关系式连接的式子-》关系表达式  其值 逻辑结果1(真)0(假)

关系表达式的类型int ,由于int类型的值域非常大,除了0,1之外,还有很多数。所以非0即为真

逻辑运算符    操作对象 逻辑值(0,1)

运算符功能备注
&&逻辑与 双目
||逻辑或 双目
逻辑非 单目

逻辑表达式,值的类型int逻辑结果1(真)0(假)

逻辑与 ,左值和右值 同时都为真的情况下, 整个表达式的值为真 。 全部都要为真

逻辑或 ,左值和右值 只有有一个值为真, 整个表达式的值为真 。 只要一个为真

逻辑非 ,单目 右结合, 如果原来是真,则变假;如果原来是假,则变真。

截断效应,短路效应 ,(&& 和|| 运算符有关)

int num = 0;
int b = 1;
num  && b++ 
0     && b++   ; // 对于 &&操作,如果左操作数为0 的情况下,右操作数是不会执行的。
在这个表达式中,虽然 ++ 是单目运算符。 但是 截断效应  比运算符的++优先级,更高。


printf("express is  %d\n",num  && b++) ; //  表达式的值 0    b ?  
printf("b is  %d\n",b);
express is  0
b is  1

int num = 1;
int b = 1;
num  || ++b;对于 ||操作,如果左操作数为1 的情况下,右操作数是不会执行的。
在这个表达式中,虽然 ++ 是单目运算符。 但是 截断效应  比++运算符的优先级,更高。

printf("express num || b++ is  %d\n",num  || ++b) ; //  表达式的值1   b ==1?  printf("b is  %d\n",b);
express num || b++ is  1
b is  1

三目运算符

结合方向从右向左 。

? :

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

表达式1 ,类型 int ,结果应该是一个逻辑结果 。

如果 表达式1 的值 为 真 ,则执行表达式2

如果 表达式1 的值 为 假 ,则执行表达式3

​
 int num1 = 0 ;
 int num2 = 0;
 int max = 0 ;
 printf("找两数的最大数 :");
 scanf("%d%d",&num1,&num2);
 // 比较 num1 > num2 。如果为真 ,整个表达式的值 num1 ,否则是num2
 max =  num1 > num2 ? num1:num2;  
 printf("max is %d\n",max);

​

分支结构

对代码进行选择行的执行。

1 . if else

1)如果需要实现判断逻辑,就需要使用 if

2)if 后面要紧跟 表达式,使用圆括号,括起来。

3) if 可以单独使用 。else 需要和if配对使用,不能单独出现。

4) if,else 后需要被执行的语句,建议都使用大括号,括起来。即使是一句话

5) if,else 后不要加分号。

注:

如果在if(表达式)后加了分号,语法不会报错。只有分号的话,是一个空语句,可可能会导致逻辑不对

else 必须和 if 配对使用,不然会和最近的 if 配对

2.阶梯分支

if (表达式 1) {

语句块1;

}

else if( 表达式 2)

{

语句块2;

}

else if( 表达式 3)

{

语句块3;

}

....

else

{

语句块n;

}

3.if 嵌套形式

//不建议嵌套层数太多 ,  3-5  层。 多了就不要阅读。
if(表达式1)

{

    if(表达式2)

    {

        if(表达式3)  ==  if(表达式1 &&表达式2 && 表达式3 )

        {

        	语句1;

        }
		
    }



}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值