7.puts:

  • 在终端打印一行字符串
  • puts 会多打印一个\n字符。

使用实例:

puts("hello world!");

#include <stdio.h>
int main (void)
{ 

char str[32]={"hello world"};

puts("hello world!");
puts(str);
printf("str = %s\n",str);
printf("str = %s\n","hello world");
return 0;
}

8.gets :

  • 从终端接受一行字符串
  • gets会去掉从终端输入的\n字符。
  • gets可以接收带‘   ’的字符串,scanf 不能接收带‘   ’的字符串。

使用示例:

char str[32] = 0;

gtes (str);

#include <stdio.h>

int main(void)
{

 char  str[32] = {0};
gets(str);
printf("str = %s\n",str);
return 0;
}

4.流程控制

1.顺序结构

从main函数第一句开始执行,顺序依次执行,执行到main函数结束。

2.分支结构

        1.关系运算符

>                  大于

<                  小于

>=                大于等于

<=                小于等于

==                等于        

!=                 不等于

#include <stdio.h>
int main(void)
{

printf("%d\n",1+(3>5));

return 0;

}

        2.逻辑运算符

1. &&                逻辑与

2.  | |                   逻辑或

3.   !                    逻辑非

表达式1      逻辑运算符    表达式2

&&:一假为假,全真为真。

| |:一真为真,全假为假。

!:真取非得假,假取非为真。

#include <stdio.h>
int main(void)
{

int num = 200;
int ret = 0;
ret = num >= 0 && num <= 100;
printf("ret = %d\n",ret);
ret = num >= 0 || num <= 100;

return 0;

}

截断:&&左边判断为假时,右边便不再执行。

           | |左边判断为真时,右边便不再执行。

#include <stdio.h>
int main(void)
{

int a = 0;
int b = 0;
int c = 0;

c= a++ && ++b;
printf(“a = %d,b = %d,c = %d”,a,b,c);


return 0;

}

  1 #include <stdio.h>
  2 int main(void)
  3 {
  4 
  5 int a = 0;
  6 int b = 0;
  7 int c = 0;
  8 int d = 0;
  9 c = a++ && ++b;
 10 d = --a || --b;
 11 printf("a = %d,b = %d,c = %d\n",a,b,c);
 12  printf("a = %d,b = %d,d = %d\n",a,b,d);                                                                                                                                         
 13 
 14 
 15 return 0;
 16 
 17 }

运算符 表达式1 表达式2 结果
&&
运算符 表达式1 表达式2 结果
|  |

3.特殊运算符(三目运算符):

  • 结合方向自右至左

?:

格式:逻辑表达式?表达式1:表达式2

ret = num1 > num2 ? num1 : num2;

#include<stdio.h>
int main(void)
{
int num1 = 0;
int num2 = 0;
int ret = 0;
printf("输入两个数字:");
scanf("%d%d",&num1,&num2);
ret = num1 < num2 ? num1 : num2;
printf("ret = %d\n",ret);
return 0;
}

        4.if分支

  • 判断逻辑时使用if分支。
  • 同一类数据完成不同操作使用if分支。

if(逻辑表达式)

{

        语句块1;

}

else

{

        语句块2;

}

  • if可以脱离else单独使用,但是else不能脱离if单独使用。
  • if后面必须加条件判断,else后面不用加条件判断。
  • if不加大括号{ }默认控制一句,最好加上{ }。
#include<stdio.h>
int main(void)
{
    int num = 0;

    scanf("%d",&num);

    if (1 == num % 2)
    { 
        printf("%d为奇数\n",num);
    }
else
    {
        printf("%d为偶数\n",num);
     }

return 0;
}

流程结构:

练习:从终端获得2个数,判断两个数的大小,如果第一个数大于第二个数打印第一个 数,如果第一个数不大于第二个数,两个数交换后打印第一个数

  1 #include <stdio.h>
  2 int main(void)
  3 {
  4     int num1 = 0;
  5     int num2 = 0;
  6     int t = 0;
  7     printf("请输入两个数;");                                                            
  8     scanf("%d",&num1);
  9     scanf("%d",&num2);
 10     if (num1>num2)
 11     {
 12         printf("最大值是%d\n",num1);
 13     }
 14     else
 15     {
 16         t = num1;
 17         num1 = num2;
 18         num2 = t;
 19         printf("最大值是%d\n",num1);
 20      }
 21 
 22 return 0;
 23 }

2.阶梯分支

        1.结构

if(表达式1)

{

                语句块1;

}

else if(表达式2)

{

                语句块2;

}

else if(表达式3)

{

                语句块3;

}

else

{

                语句块4;

}

#include<stdio.h>
int main(void)
{
int score = 0;
printf("请输入成绩:");
scanf("%d",&score);
if (score >= 90 && score <= 100)
{
printf("优秀");
}
else if (score >= 80 && score < 90)
{
printf("良好");
}
else if (score >= 70 && score < 80)
{
printf("一般");
}
if (score >= 60 && score < 70)
{
printf("及格");
}
else
{
printf("不及格");
}

return 0;
}

3.嵌套分支

if (表达式1)

{

        if(表达式2)

        {

                if(表达式3)

                {

                        ....

                 }

        }

}

  1  #include <stdio.h>                                                                                                                                                               
  2 int main(void)
  3 {
  4 int score = 0;
  5 scanf("%d",&score);
  6 if(score >=60)
  7 {
  8     if (score >= 70)
  9     {
 10          if(score >= 80)
 11         {
 12              if(score >=90)
 13                      {
 14                          printf("优秀");
 15                      }   
 16             else     
 17                      {
 18                          printf("良好");
 19                      }   
 20         }            
 21         else
 22             {
 23             printf("一般");
 24             }
 25             
 26     }
 27     else
 28      {
 29         printf("及格");
 30       } 
 31       
 32 }
 33 
 34 else
 35 {
 36     printf("不及格");
 37 }   
 38 
 39 
 40     return 0;
 INSERT >> e7.c[+

练习:从键盘输入一个字符,输出该字符的按字典排列顺序的下一个字符,例如,2 输入a,则输出b。如果输入的字符不在26个英语字母中,则显示输入数据有误,如果输入的字符是z或Z,则输出a或A。

  1 #include<stdio.h>
  2 int main(void)
  3 {
  4     char ch = 0;
  5     printf("请输入一个字母:");
  6     scanf("%c",&ch);
  7 if((ch >='A'&& ch <='Z')||( ch >='a'&& ch <='z'))
  8 {
  9     if(ch !='z'&& ch !='Z')
 10     {
 11         printf("%c\n",ch+1);
 12     }
 13     else
 14     {
 15        if(ch == 'z')
 16         {
 17         printf("a\n");
 18         }
 19        else
 20         {
 21         printf("A\n");
 22         }
 23     }
 24     }
 25 
 26 else
 27 {
 28 printf("数据有误\n");
 29 }
 30 
 31 return 0;
 32 }  

5.switch 分支:有若干个确定的分支

                1.基本结构:

Switch (整形表达式)

{

case常量1:语句块1;break;

case常量2:语句块2;break;

case常量3:语句块3;break;

default;

语句块4;

}

  • Switch后面的表达式必须为整形,不能为浮点数类型。
  • case后面的值必须为常量,不能为常量表达式,变量或变量表达式
  • Switch只与case后面的值比一次,然后顺序下行执行。
#include<stdio.h>
int main(void)
{
int num = 0;
printf("请输入0-5之间的数字:\n");
scanf("%d",&num);
switch (num)
{
case 0:printf("零\n");  break;
case 1:printf("一\n");  break;
case 2:printf("二\n");  break;
case 3:printf("三\n");  break;
case 4:printf("四\n");  break;
case 5:printf("五\n");  break;
default:
printf("不认识\n");
}
return 0;
}

   #include<stdio.h>
   int main(void)
   {
       int score = 0;
       int num = 0;
   
       printf("请输入成绩:\n");
       scanf("%d",&score);
      num = score/10;
      switch (num)
     {
      case 6:printf("及格\n");  break;
      case 7:printf("一般\n");  break;
      case 8:printf("良好\n");  break;
      case 9:printf("优秀\n");  break;
      case 10:printf("满分\n");  break;
      default:
          printf("不及格\n");
     }                                                                                                                                                                            
 
      return 0;
   }
       

                2.嵌套结构

  • 里层Switch结束之后,使用break跳出外层Switch,若如果没有break,会顺序进行。
   #include<stdio.h>
   int main(void)
   {
       int score = 0;
       int num = 0;
   
       printf("请输入成绩:\n");
       scanf("%d",&score);
      num = score/10;
      switch (num)
     {
      case 6:printf("及格\n"); //缺少break
      case 7:printf("一般\n");  break;
      case 8:printf("良好\n");  break;
      case 9:printf("优秀\n");  break;
      case 10:printf("满分\n");  break;
      default:
          printf("不及格\n");
     }                                                                                                                                                                            
 
      return 0;
   }
       

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐