C语言语句执行顺序(初学者)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言语句执行顺序(初学者)相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
void main()
int i=0,num=0;
char str[100],c;
gets(str);
dowhile((c=str[i])==‘’)i++;
if(c!='\0')num++;
while((c=str[i])!=''&&c!='\0')i++;
while(c!='\0');
printf("number of word :%d",);

原题是输入一行字符,统计有多少个单词
我不明白从do开始(也就是这部分dowhile((c=str[i])==‘’)i++;
if(c!='\0')num++;
while((c=str[i])!=''&&c!='\0')i++;
while(c!='\0');
)执行后的执行顺序以及各语句意义
望知情者解释一下,主要是先执行什么语句,然后依次怎么执行啊
初学者,谢了希望解释详细一点主要是执行顺序

先执行do while()这个语句中括号部分,执行完后判断while语句是否成立,成立则继续执行中括号中语句,如此循环。中括号中部分,while((c=str[i])==‘’)i++;是先执行c=str[i]这个赋值语句,然后判断c的值是否等于' ',等于的话就执行i++,然后继续执行c=str[i],如此循环。while((c=str[i])!=''&&c!='\0')i++;是先执行赋值语句c=str[i],然后判断c是否等于' ',等于的话再判断c是否等于'\0',两个条件都成立的话就执行i++,如此循环。 参考技术A #include <stdio.h>
void main()
int i=0,num=0;
char str[100],c;
gets(str); /* 1 */
dowhile((c=str[i])=='')i++;/* 2 */
if(c!='\0')num++;/* 3 */
while((c=str[i])!=''&&c!='\0')i++; /* 4 */
while(c!='\0'); /* 5 */
/* 也就是第2~5个语句循环执行直到c不等于空字符为止。 */
printf("number of word :%d", num); /* 6 */

好像这个程序有错误
参考技术B 你是只计算单词,还是计算这个字符的整体长度?
#include<stdio.h>
void main()

int i=0,num=0;

char str[100],c;

gets(str);

do
while((c=str[i])==' ')i++;

if(c!='\0')i++;

while((c=str[i])!=' '&&c!='\0')i++;

while(c!='\0');
printf("number of word :%d",i);

写c语言要注意格式清晰,上面这个是计算所有字符的。从do开始进入进入while,在while中判断是否是空格,是就累加i,不是就结束while循环。进入if语句,判断当前是否读到字符串末尾。然后是进入while((c=str[i])!=''&&c!='\0')i++;。。。。最后一个while是控制do-while整体循环的。。。。。。。。。。其实吧统计字符用不到这么麻烦
#include<stdio.h>
void main()

int i=0,j=0;

char str[100];

gets(str);

while(str[j]!='\0')i++;j++;

printf("number of word :%d",i);

这样一样可以计算这个字符的长度。。。。。。。就这些吧,
参考技术C 初学时要注意格式,运行过了,正确!
#include<stdio.h>
void main()

int i=0,num=0;
char str[100],c;
gets(str);
do

while((c=str[i])==' ')/*while循环的作用是把数组st[100]r中的第一个字符赋值给c。
最开始i=0,如果第i个字符是空格,执行语句i++;继续循环。当遇到字符时(也就是开始出现单词时)结束while循环,执行下一步操作*/
i++;
if(c!='\0')/*如果c的值不等于‘\0’,即不是结束符,那么num++;(计算单词的数量)*/
num++;
while((c=str[i])!=' '&&c!='\0')/*如果c不等于空格符,那么i++;直到第i个字符为空格时,结束循环。
然后再一次执行dowhile整个大循环,直到整个字符数组的中出现‘\0’,即结束符*/
i++;
while(c!='\0');
printf("number of word :%d\n",num);
本回答被提问者采纳

C语言之流程控制---选择语句










C语言之流程控制---选择语句
C语言之流程控制---选择语句


C语言之流程控制---选择语句

2020.08.02

C语言分享





#01#前言




C语言之流程控制---选择语句

C语言之流程控制---选择语句



    C语言中有三大结构,分别是顺序结构、选择结构(分支结构)和循环结构。

    C语言顺序结构就是让程序按照从头到尾的顺序依次执行每一条C语言代码,不重复执行任何代码,也不跳过任何代码。

    C语言选择结构也称分支结构,就是让程序有选择性的执行代码;换句话说,就是进行一个筛查,符合你心里目标的执行一个段语句,不符合的执行另一段或者跳过。

    C语言循环结构就是让程序不断地重复执行同一段代码,直到它符合了我们的心理预期才让它停止。


本文分成三部分:

1、语法

2、简单举例及具体代码及说明

3、讨论区

#OVER#

C语言之流程控制---选择语句

#02#语法



选择语句大体分为两大类:if···else和switch语句有这么几种形式:(符号要用英语)

第一类:

第一种:

if(表达式)   {  语句;}

第二种:

if(表达式)   {  语句;} else{ 语句;}

第三种:

if(表达式)   { 语句;} else if (表达式){ 语句 }else {语句}


第二类:switch语句的一般形式

switch (表达式)

{

case   常量表达式1:语句

case   常量表达式2:语句case   常量表达式3:语句

case   常量表达式4:语句

default  :语句

}

#OVER#



C语言之流程控制---选择语句

#03#简单举例及具体代码及说明



简单举例

输入数字1···7,输出对应的星期几,如:1对应星期一,2对应星期二,其他依次类推。

下面将分别通过if···else和switch语句这二种种方式实现求解。

思路:

1、判断数字是多少,对应输出星期几

if···else方法

#include <stdio.h>

int main(){

    int a;//定义一个变量

    printf("Input integer number(1-7):");

    scanf("%d",&a);//从标准输入获取一个数字

    if(a==1){

        printf("Monday\n");//判断是否是1,是则输出星期一,后面以此类推

    }else if(a==2){

        printf("Tuesday\n");

    }else if(a==3){

        printf("Wednesday\n");

    }else if(a==4){

        printf("Thursday\n");

    }else if(a==5){

        printf("Friday\n");

    }else if(a==6){

        printf("Saturday\n");

    }else if(a==7){

        printf("Sunday\n");

    }else{

        printf("error\n");//输入的数字不是1-7,是则输出错误,结束判断

    }

    return 0;

}


switch 方法

#include <stdio.h>

int main(){

    int a;//定义一个变量

    printf("Input integer number(1-7):");

    scanf("%d",&a);//从标准输入获取一个数字

    switch(a){

        case 1: printf("Monday\n"); break;//判断是否是1,是则输出星期一,后面以此类推

        case 2: printf("Tuesday\n"); break;

        case 3: printf("Wednesday\n"); break;

        case 4: printf("Thursday\n"); break;

        case 5: printf("Friday\n"); break;

        case 6: printf("Saturday\n"); break;

        case 7: printf("Sunday\n"); break;

        default:printf("error\n"); break;//输入的数字不是1-7,是则输出错误,结束判断

    }

    return 0;

}


#OVER#


C语言之流程控制---选择语句

#04#运行结果


输出结果

Input integer number(1-7):3

Wednesday


温馨提示:

switch当和某个整型数值匹配成功后,如果没有break,会执行该分支以及后面所有分支的语句。例如:

#include <stdio.h>

int main(){

    int a;

    printf("Input integer number:");

    scanf("%d",&a);

    switch(a){

        case 1: printf("Monday\n");

        case 2: printf("Tuesday\n");

        case 3: printf("Wednesday\n");

        case 4: printf("Thursday\n");

        case 5: printf("Friday\n");

        case 6: printf("Saturday\n");

        case 7: printf("Sunday\n");

        default:printf("error\n");

    }

    return 0;

}



此时输出结果:

Input integer number:3

Wednesday

Thursday

Friday

Saturday

Sunday

error

#OVER#



C语言之流程控制---选择语句
C语言之流程控制---选择语句






视频来源:科学大世界

文字:科学大世界

文章封面图:网络

以上是关于C语言语句执行顺序(初学者)的主要内容,如果未能解决你的问题,请参考以下文章

关于Oracle语句的执行顺序

for 语句执行顺序

关于SQL语句的执行先后顺序,希望高手解答并写出原因。谢谢,

SQL语句执行流程与顺序原理解析

如图c语言请问图中的多个else if 有执行顺序吗,啥顺序?

for循环的执行顺序?