C语言day5

1.输入一个数,判断是否是水仙花

程序代码:

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     int num;
  7     printf("enter three_digit:");
  8     scanf("%d",&num);
  9     int a=num%10,b=num/10%10,c=num/100;
 10     if(a*a*a+b*b*b+c*c*c==num)
 11     {
 12         printf("yes\n");
 13     }
 14     else
 15     {
 16         printf("no\n");
 17     }
 18     return 0;
 19 }         

运行结果:

2.输入三角形的三条边,判断是什么三角形(等腰、直角、等边、普通三角形)

程序代码:

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     int a,b,c;
  7     printf("enter three borders:");
  8     scanf("%d %d %d",&a,&b,&c);
  9     if(a+b>c&&a+c>b&&b+c>a)
 10     {
 11         if(a==b||a==c||b==c)
 12         {
 13             if(a==b&&b==c)
 14             {
 15                 printf("equilateral triangle\n");//等边三角形
 16             }
 17             else
 18             {
 19                 printf("isosceles triangle\n");//等腰三角形
 20             }   
 21         }   
 22         else if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b)
 23         {
 24             printf("right triangle\n");//直角三角形                  
 25         }   
 26         else
 27         {
 28             printf("ordinary triangle\n");//普通三角形
 29         }
 30     }
 31     else
 32         printf("notatriangle\n");//非三角形
 33     return 0;
 34 }   

运行结果:

3.输入一个成绩,判断学生成绩等级

90--100  A                  80--89  B                      70--79  C                 0--69 D

程序代码:

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     int score;
  7     printf("enter score:");
  8     scanf("%d",&score);
  9     switch(score/10)
 10     {
 11     case 10:
 12         if(score%10!=0)
 13             printf("unreasonable\n");
 14         else
 15             printf("A\n");break;
 16     case 9:printf("A\n");break;
 17     case 8:printf("B\n");break;
 18     case 7:printf("C\n");break;
 19     case 6:
 20     case 5:
 21     case 4:
 22     case 3:
 23     case 2:
 24     case 1:
 25     case 0:
 26            if(score<0)
 27                printf("unreasonable\n");
 28            else
 29                printf("D\n");
 30     }
 31     return 0;
 32 }                

运行结果:

4.输入两个数,实现从小到大排序

程序代码:

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h> 
  4 int main(int argc, const char *argv[])
  5 {   
  6     int num1,num2;
  7     printf("please enter num1&num2:");
  8     scanf("%d %d",&num1,&num2);
  9     if(num1>num2)
 10     {   
 11         printf("descending sort:%d %d\n",num2,num1);
 12     }
 13     else if(num1<num2)
 14     {   
 15         printf("descending sort:%d %d\n",num1,num2);
 16     }
 17     else
 18         printf("num1=num2=%d\n",num1);
 19     return 0;
 20 }               

运行结果:

5.

int a=3——>0000 0011(原反补)            int b=6——>0000 0110(原反补)

运算优先级:单算移关按位与异或逻条赋,先进行移位再异或

b<<2——> 0001 1000,a^(b<<2)——>0001 1011

选A

6.解读程序

void main()
{
    int a=180; //180——>0000 0000 1011 0100
    char c;
    c=(char)++a; //++a:先自增再运算,181——>0000 0000 1011 0101(原反补)
                 //强制类型转换:char c——1011 0101(补)
                 //char默认有字符(-128——127),溢出
                 //负数,反(1011 0100)原(1100 1011)——>-75    
    printf("c=%d a=%d\n",c,a);//c=-75 a=181
    char d=4;    //0000 0100
    short e;                                                                       
    e=(++d)++;     //++d:先自增再运算,e=5++——报错,只有变量可以自增
    printf("d=%d e=%d\n",d,e); //d=5,e报错
}

7.有以下代码

  1 #include<stdio.h>
  2 int main(int argc, const char *argv[])
  3 {
  4     int a[]={2,3,5,4},i;
  5     for(i=0;i<4;i++)    //循环i=0,1,2,3
  6     {
  7         switch(i%2)     //  i%2=0,1,0,1 
  8         {
  9         case 0:switch(a[i]%2) //i=0,2
 10                {
 11                case 0:a[i]++;break;//i=0——a[i]%2=a[0]%2=2%2=0,a[0]++——>3 
 12                case 1:a[i]--;//i=2——a[i]%2=a[2]%2=5%2=1,a[2]--——>4 
 13                }break;
 14         case 1:a[i]=0;       //i=1,3——>a[1]=a[3]=0
 15         }
 16     }
 17     for(i=0;i<4;i++) //循环输出
 18         printf("%d",a[i]);  //a[0]=3,a[1]=0,a[2]=4,a[3]=0
 19                             //3040
 20     printf("\n");
 21 }          

程序运行的输出结果是(C)

A:3344    B:2050   C:3040   D:0304

流程图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值