C语言基础知识(56)

本文详细介绍了C语言中的循环结构,包括while、do-while和for循环的工作原理,以及如何避免死循环。同时提到了嵌套if-else语句的使用,并讨论了strcmp函数在字符串比较中的应用及其返回值的含义。
摘要由CSDN通过智能技术生成

下面的C程序的输出是什么

#include<stdio.h>intmain(){int a =0;while(a <printf("HI")){++a;}return0;}

该代码将打印 3 次HI。 printf()函数将返回它正在打印的字符数,并将其与a进行比较。 由于 printf() 的返回值为 2,HI 将被打印 2 次。 最后,当a的值为 3 时,它首先打印 HI 并检查条件,并在条件失败时退出 while 循环。 因此,HI 将被打印 3 次。

嵌套if-else语句

C语言中嵌套if-else语句。嵌套if-else语句的意思,就是在if-else语句中,再写if-else语句。其一般形式为:

while循环

反复不停的执行某个动作就是江湖人称的循环

C语言中有三种循环结构,先看一下C语言while循环的结构

其中表达式表示循环条件,执行代码块为循环体。

while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体代码块。

while语句中的表达式一般是关系表达或逻辑表达式,当表达式的值为假时不执行循环体,反之则循环体一直执行。

一定要记着在循环体中改变循环变量的值,否则会出现死循环(无休止的执行)。

循环体如果包括有一个以上的语句,则必须用{}括起来,组成复合语句。

do-while循环

C语言中的do-while循环,一般形式如下:

do-while循环语句的语义是:

它先执行循环中的执行代码块,然后再判断while中表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。

注意:mtianyan: 使用do-while结构语句时,while括号后必须有分号。

下面的 C 程序的输出是什么

#include<stdio.h>#include<string.h>intmain(void){char str[]="#Yiibai";constint ret =strcmp(str,"#yiibai");printf("ret =%d

",ret);return0;}

一个负值。

解释说明:

intstrcmp(constchar*s1,constchar*s2);strcmp() 返回一个表示比较结果的整数,

如下:

0,if the s1 and s2 are equal;

A negative value if s1 is less than s2;

A positive value if s1 is greater than s2;

下面的 C 程序的输出是

#include<stdio.h>intprint();intmain(){printf("%d\n",print());return0;}intprint(){printf("hello");}

输出结果为:Undefined

解释:

到达 main 以外的函数的末尾,就相当于返回; 到达任何其他值返回函数的末尾是未定义的行为,但前提是函数的结果用于表达式中。 在无返回函数中执行 return 语句是未定义的行为。

for循环

它的执行过程如下:

执行表达式1,对循环变量做初始化;

判断表达式2,若其值为真(非0),则执行for循环体中执行代码块,然后向下执行;若其值为假(0),则结束循环;

执行表达式3,(i++)等对于循环变量进行操作的语句;

执行for循环中执行代码块后执行第二步;第一步初始化只会执行一次。

循环结束,程序继续向下执行。

注意:for循环中的两个分号一定要写

在for循环中:

表达式1是一个或多个赋值语句,它用来控制变量的初始值;

表达式2是一个关系表达式,它决定什么时候退出循环;

表达式3是循环变量的步进值,定义控制循环变量每循环一次后按什么方式变化。

这三部分之间用分号 ; 分开。

使用for语句应该注意:

for循环中的“表达式1、2、3”均可不写为空,但两个分号(;;)不能缺省。

省略“表达式1(循环变量赋初值)”,表示不对循环变量赋初始值。

省略“表达式2(循环条件)”,不做其它处理,循环一直执行(死循环)。

省略“表达式3(循环变量增减量)”,不做其他处理,循环一直执行(死循环)。

表达式1可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。

表达式1和表达式3可以是一个简单表达式也可以是多个表达式以逗号分割。

表达式2一般是关系表达式逻辑表达式,但也可是数值表达式或字符表达式,只要其值非零,就执行循环体。

各表达式中的变量一定要在for循环之前定义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaoyi9812

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值