运算符和结构流程语句以及课后练习题

算术运算符:
/除    %取余    ++a前自增  a=2;b=++a   ;a=3 b=3(a先加1,之后再把结果赋值给b)
                       a++后自增  a=2;b=a++ ; a=3 b=2   (先把a的值赋给b,之后a的值加1再赋给a)
        --a前自减    a=2;b=--a;a=1 b=1
                       a--后自减    a=2;b=a--;a=1 b=2

赋值运算符:
int  a=10
将10赋值给整型变量a
a+=3;等同于a=a+3
a-=3;a=7
a*=3;a=30
a%=3;a=1
a/=3;a=3(a为整型)

表达式:通过变量或者常量和运算符连接起来称为表达式   在程序中表达式的结果可以作为程序的条件出现

比较运算符:<  >   <=   >=  ==   !=
int a=10;
int b=9;
a>b(成立)在计算机中用1表示真 用0表示假
printf(“%d\n",a>b)输出结果为1

逻辑运算符:!  &&    ||
!(非)非真为假  非假为真
&&(与)同真则真  其余为假
||(或)同假为假  其余为真

类型转换:
               1.隐式转换
 例如:
 char a=‘a’;
 int b = a;
 编译器会自动将低的数据类型转换成高的数据类型,转换后的数据正确
     2.强制转换
 例如:
 int a = 3;
  float b = (float)a;
 把表达式的运算结果强制转换成所需的数据类型

程序流程结构:
选择结构:
               语句格式;
 格式:if(表达式){代码}如果表达式为真   执行括号内的代码
 格式:if(表达式){代码}else{代码}如果表达式为真  执行if括号内的代码   如果为假  执行else括号内的代码
 格式:if(表达式){代码}else if(表达式0{代码}   {else if 可为多个}  else{代码}
 格式:
 if (表达式)
 {
          if条件执行语句;
 }
 else if(表达式)
 {
 
 }
 .............
 else
 {
 
 }
2.三目运算符
     表达式?  选项1【表达式】:选项2【表达式】  如果表达式为真  选择选项1的结果  如果为假  选择选项2
     例如:
     int   a=10;
     int   b=20;
     int   c=a>b?a:b; 

3.switch语句:
     格式:switch(表达式)
               {
 case 值1
 代码
 break;
 case值2
 代码
 break;
 default:
 代码
 break;
 }
例如:
#include <stdio.h>
#include <stdafx.h>
int main()
{
 int a = 10;
 switch (a)
 {
 case 1:
  printf("adezhishi %d\n", a);
  break;
 case 10:
  printf("adezhishi %d\n", a);
  break;
 default:
  printf("ashisha\n");
  break;
 }
 return 0;
}
注意:if语句执行效率差   switch语句执行效率高    if可以判断一个区间  switch用来判断一个值    三目运算符结构简单明了

while循环语句:
格式:while(表达式)
         {
 代码
         }
注意:程序的出口

do.....while语句:
格式:do
           {
 代码
            }while(表达式);       不要忘记封号;

for循环:
格式:
       for(①初始值;②表达式;③表达式)
        {
 ④代码
        } 
先执行1再执行二之后执行4最后执行3
之后执行二再执行4然后执行3
一直到2不满足条件

嵌套循环:就像表,分针走一次,秒钟走一圈;
  
 
 
从键盘输入 1~7 的数字,分别提示 Monday、Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday 输入其它,提示出错
使用:switch case break 实现
#include <stdio.h>
int main()
{
 int a;
 scanf("%d",&a);
 switch(a)
 {case 1:printf("monday\n");break;
 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("错误\n");break;
 }return 0;
 }
 
     1. 从屏幕上输入一个学生的成绩(0-100),对学生成绩进行评定:
<=60为"E"
 60~69为"D"
 70~79为"C"
 80~89为"B"
 90以上为"A"
 <0或>100提示成绩输入出错
使用:if else if等实现
#include <stdio.h>
int main()
{int num;
scanf("%d",&num);
if (num>100||num<0)
{printf("成绩输入错误\n");}
else if(num>=90)
{printf("成绩为A\n");}
else if(num>=80&&num<=89)
{printf("成绩为B\n");}
else if(num>=70&&num<=79)
{printf("成绩为C\n");}
else if(num>=60&&num<=69)
{printf("成绩为D\n");}
else printf("评价为E\n");
return 0;
}
 

    3. 输出100以内能被7整除的数,分别用for循环和while循环完成
#include <stdio.h>
int main()
{
int num;
{for(num=0;num<100;num++)
{if(num%7==0)
printf("%d\n",num);}}
return 0;}
 
    4. 输出0-1000以内的水仙花数
水仙花数算法:一个数=它各位的立方和,例如:153= 1*1*1 + 5*5*5 + 3*3*3
提示:for循环,求余(%)、取整(/)运算符
     #include <stdio.h>
     int main()
     {     int num,a,b,c;
           for(num=101;num<1000;num++)
            {a=num/10;
             b=(num/10)%10;
             c=num%10;
             if(num==a*a*a+b*b*b+c*c*c)
             {printf("水仙花数字为:%d\n",num);}
             }
              return 0;
      }
 

posted on 2019-04-09 16:18  不冒泡的苏打水  阅读(333)  评论(0编辑  收藏  举报

导航