12.29

文章描述了几个编程练习,包括判断数字是否为水仙花数、输入三角形边长确定其类型、根据分数给出成绩等级、排序两个数以及涉及运算符优先级和类型转换的示例。
摘要由CSDN通过智能技术生成

练习1:输入一个数,判断是否是水仙花 水仙花: 是三位数 各个位的立方和等于本身 eg: 153--->1*1*1+5*5*5+3*3*3==153

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
	int x,single,tens,hundreds;//定义一个整数以及它的个十百位
        printf("please input num:\n");
        scanf("%d",&x);//输入一个整数
        single=x%10;//计算个位数
        tens=((x%100)-single)/10;//计算十位数
        hundreds=x/100;//计算百位数
        if(x<=0||x>999)//判断是否合法输入
        {
          printf("ERROR!\n");
           }
        else if(single*single*single+tens*tens*tens+hundreds*hundreds*hundreds==x)//判断是否满足水仙花数条件
        {
          printf("This num is the shuixianhua num\n");
            }
        
         else                                  
         { 
          printf("This num is not the shuixianhua num\n");
           }                                  
	return 0;
}  

练习2:输入三角形的三条边,判断是什么三角形? 等腰\直角\等边\普通三角形

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
   int a,b,c;//定义三角形三条边
   printf("Please input the three sides of the triangle\n");
   scanf("%d""%d""%d",&a,&b,&c);
   if(a+b<=c||b+c<=a||a+c<=b)//判断输入是否合法
   {
     printf("ERROR\n!");
          } 
   else if(a==b,b==c)//判断是否为等边三角形
   {
     printf("This triangle is an equilateral triangle\n");  
          }
   else if(a==b||a==c||b==c)///判断是否为等腰三角形
   { 
     printf("This triangle is an isosceles triangle\n"); 
         }
   else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)//判断是否为直角三角形
   { 
     printf("This triangle is an right triangle\n"); 
         }       
   else//判断是否为普通三角形
   {
     printf("This triangle is an ordinary triangle\n");
       }                  
	return 0;
}  

练习3:输入一个成绩,判断学生成绩等级? 90--100 A 90-99 100 80--89 B 70--79 C 0---60 D if(a>=90&&a<=100) printf("A"); 1.判断成绩在0--100之间,判断等级 switch(a/10) { case 10:case 9: } 2.如果成绩不在0--100之间,输出不合法

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
   int score;//定义一个分数变量
   printf("Please input your score:\n");
   scanf("%d",&score);//输入分数
   if(score<0||score>100)//判断输入是否合法
   {
     printf("ERROR!\n");
     }
   else
   switch(score/10)
   {
   case 10:
   case 9:printf("A\n");break;//判断是否为A等级
   case 8:printf("B\n");break;//判断是否为B等级
   case 7:printf("C\n");break;//判断是否为C等级
   case 6:
   case 5:
   case 4:
   case 3:
   case 2:
   case 1:
   case 0:printf("D\n");break;//判断是否为D等级
   }           
	return 0;
}  

练习4:输入两个数,实现从小到大排序

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
   int a,b;//定义两个数
   printf("Please input two num:\n");
   scanf("%d""%d",&a,&b);
   if(a>b||a==b)//判断a,b大小
   {
      printf("%d,%d\n",b,a);

   }            
   else
   {
     printf("%d,%d\n",a,b);
     
   } 	
      return 0;
}  

练习5:设有以下语句:int a=3,b=6,c; c=a^b<<2; 则c的二进制值是 。

A、00011011   B、00010100    C、00011100    D、00011000

在运算符优先级中,左移大于按位异或,先计算b<<2,

int a=3,a的原码为00000011,原反补同码,

int b=6,b的原码为00000110,原反补同码,

b<<2  ------->b<<2=   00011000,

a^b<<2 =00011011,原反补同码,故选A

练习6:解读程序 void main() { int a=180; char c; c=(char)++a; printf("c=%d a=%d\n",c,a); char d=4; short e; e=(++d)++; printf("d=%d e=%d\n",d,e); }

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int a=180; char c;

c=(char)++a;

printf("c=%d a=%d\n",c,a);

char d=4;

short e;
char t=++d;
e=(short)(t)++;

printf("d=%d e=%d\n",d,e);

	
	return 0;
}

运算结果

c=-75 a=181
d=5 e=5

练习7.有以下代码

#include<stdio.h>
int main(int argc, const char *argv[])
 {
    int a[]={2,3,5,4},i;
    for(i=0;i<4;i++)    //循环i=0,1,2,3
   {
        switch(i%2)     //  i%2=0,1,0,1 
         {
       case 0:switch(a[i]%2) //i=0,2
               {
                 case 0:a[i]++;break;//i=0——a[i]%2=a[0]%2=2%2=0,a[0]++——>3 
               case 1:a[i]--;//i=2——a[i]%2=a[2]%2=5%2=1,a[2]--——>4 
                 }break;
         case 1:a[i]=0;       //i=1,3——>a[1]=a[3]=0
         }
     }
   for(i=0;i<4;i++) //循环输出
         printf("%d",a[i]);  //a[0]=3,a[1]=0,a[2]=4,a[3]=0
                             //3040
     printf("\n");
 }    

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

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

故答案为C

流程图

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值