下面的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循环之前定义。