1输入一个数,判断是否是水仙花 水仙花: 是三位数 各个位的立方和等于本身
eg: 153--->1*1*1+5*5*5+3*3*3==153
#include <stdio.h>
int main(int argc,const char *argv[])
{
int number,daffodil,sum;
printf("please enter numbe:");
scanf("%d",&number);
int a,b,c;
daffodil=number;
a=number/100;
b=(number%100)/10;
c=number%10;
sum=(a*a*a)+(b*b*b)+(c*c*c);
if(sum==daffodil&&sum>=100&&sum<=999)
{
printf("%d是水仙花\n",daffodil);
}
else
{
printf("%d不是水仙花\n",daffodil);
}
return 0;
}
2.输入三角形的三条边,判断是什么三角形? 等腰\直角\等边\普通三角形
ubuntu@ubuntu:day3$ cat 2day3.c
#include <stdio.h>
int main(int argc,const char *argv[])
{
int side1, side2, side3;
printf("请输入三角形的三条边长度:");
scanf("%d%d%d", &side1, &side2, &side3);
if (side1 == side2 && side2 == side3)
{
printf("等边三角形\n");
}
else if (side1 == side2 || side1 == side3 || side2 == side3)
{
printf("等腰三角形\n");
}
else if (side1 * side1 + side2 * side2 == side3 * side3 ||
side1 * side1 + side3 * side3 == side2 * side2 ||
side2 * side2 + side3 * side3 == side1 * side1)
{
printf("直角三角形\n");
}
else
{
printf("普通三角形\n");
}
return 0;
}
3.输入一个成绩,判断学生成绩等级?
90--100 A 80--89 B 70--79 C 0---60 D
int main(int argc,const char *argv[])
{
int score;
printf("please enter score:");
scanf("%d",&score);
if(score>=90&&score<=100)
{
printf("成绩等级为:A\n");
}
else if(score>=80&&score<=89)
{
printf("成绩等级为:B\n");
}
else if(score>=70&&score<=79)
{
printf("成绩等级为:C\n");
}
else if(score>=60&&score<=69)
{
printf("成绩等级为:D\n");
}
else if(score>=0&&score<=59)
{
printf("成绩等级为:E\n");
}
else
{
printf("erroor\n");
}
return 0;
}
4.:输入两个数,实现从小到大排序
#include <stdio.h>
int main(int argc,const char *argv[])
{
int number1,number2;
printf("please enter two number:");
scanf("%d%d",&number1,&number2);
if(number1>number2)
{
printf("number1=%d, number2=%d\n",number1,number2);
}
else if(number2>number1)
{
printf("number2=%d, number1=%d\n",number2,number1);
}
else
{
printf("error\n");
}
return 0;
}
5.设有以下语句:int a=3,b=6,c; c=a^b<<2; 则c的二进制值是 。
A、00011011 B、00010100 C、00011100 D、00011000
6.解读程序 void main()
{
int a=180; //定义整数int类型 变量a初始化值为180
char c; //定义字符char类型 不初始化变量c的值
c=(char)++a; //a先自增1.变为181,其二进制原码为10110101,如果转化为字符,将会数据溢出,则发生以下情况:181会减去256得到-75,然后再将其赋值于c,
printf("c=%d a=%d\n",c,a); //输出a和c的整数值,a=181.c=-75
char d=4; short e; // 定义字符变量初始值为4, 定义长整数short类型变量e而不初始化值
e=(++d)++; //变量d的值先自增1,结果为5,但是由于++前只能是变量而5是常量,故报错,得不出e的结果
printf("d=%d e=%d\n",d,e); //输出e和d的整数值 ,但是e报错,不执行该语句
}
7.
- 进入for循环,初始i=0。因为0%2=0,进入外层switch的case 0。然后进入内层的switch,a[0]为2,2%2=0,a[0]自增1,a[0]现在为3。
- i自增到1,1%2=1,进入外层switch下的case 1。a[1]原本为3,然后a[1]被赋值为0。
- i自增到2,2%2=0,进入外层switch的case 0。a[2]为5,5%2=1,a[2]自减1,a[2]现在为4。
- i自增到3,3%2=1,进入外层switch的case 1。a[3]为4,然后a[3]被赋值为0。
- 最后数值a[]={3,0,4,0}。
故输出结果为 :3 0 4 0,选C
思维导图