练习1:输入一个数,判断是否是水仙花
水仙花: 是三位数 ,各个位的立方和等于本身
代码如下:
#include<stdio.h>
int main(int argc, const char *argv[])
{
int a,b;
printf("please enter a number:");
scanf("%d",&a);//输入一个数
b=(a/100)*(a/100)*(a/100)+(a%100/10)*(a%100/10)*(a%100/10)+(a%100%10)*(a%100%10)*(a%100%10);
if(a/100!=0&&a/1000==0&&a==b)//判断是否是三位数且各个位的立方和等于本身
{
printf("%d is daffodil\n",a);
}
else
{
printf("%d is not daffodil\n",a);
}
return 0;
}
测试结果:
练习2:输入三角形的三条边,判断是什么三角形? 等腰\直角\等边\普通三角形
代码如下:
#include<stdio.h>
int main(int argc, const char *argv[])
{
int a,b,c;
printf("please input length:");
scanf("%d %d %d",&a,&b,&c);//输入三条边长
if(((a+b>c&&(a<b+c||b<a+c))&&(a+c>b&&(a<b+c||c<a+b))&&(b+c>a&&(b<a+c||c<a+b)))&&(a!=0&&b!=0&&c!=0))//判断是否为三角形
{
if(a*a+b*b==c*c||a*a+c*c==b*b||c*c+b*b==a*a)//判断是否为直角三角形
{
printf("Right triangle\n");
}
else if((a==b||b==c||a==c)&&!(a==b&&a==c))//判断是否为等腰三角形
{
printf("isosceles triangle\n");
}
else if(a==b&&a==c)//判断是否为等边三角形
{
printf("equilateral triangle\n");
}
else
{
printf("triangle\n");
}
}
else
{
printf("ERROR\n");
}
return 0;
}
测试结果:
练习3:输入一个成绩,判断学生成绩等级?
90--100 A
80--89 B
70--79 C
0---60 D
代码如下:
#include<stdio.h>
int main(int argc, const char *argv[])
{
int score;
printf("please input a score:");
scanf("%d",&score);//输入成绩
if(score>=0&&score<=100)//判断是否在0-100之间
{
switch(score/10)
{
case 9:case 10:printf("A\n");break;//90-100为A
case 8:printf("B\n");break;//80-89为B
case 7:printf("C\n");break;//70-79为C
default :printf("D\n");break;//0-69为D
}
}
else
{
printf("ERROR\n");//不在0-100之间输出错误
}
return 0;
}
测试结果:
练习4:输入两个数,实现从小到大排序
#include<stdio.h>
int main(int argc, const char *argv[])
{
int a,b;
printf("please input a&b:");
scanf("%d %d",&a,&b);//输入两个数
if(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为:00000110
b<<2=00011000
a为:00000011
a^b<<2=00011011
练习6:解读程序
void main()
{
int a=180;
char c;
c=(char)++a;//先累加,后运算,a=181,char类型的范围为-128—127之间,由于数据溢出,当数值大于127时,会从-128开始循环,故c=-75
printf("c=%d a=%d\n",c,a);//c=-75,a=181
char d=4;
short e;
e=(++d)++;//++d此时d的值5;(++d)++表示5++,格式错误,自增运算符之前只能是变量,不能为常量
printf("d=%d e=%d\n",d,e);
}
练习7:
程序共循环四次
当i=0时,i%2=0—>case 0—>a[0]=2—>2%2=0—>case 0—>a[0]=3
当i=1时,i%2=1—>case 1—>a[1]=0
当i=2时,i%2=0—>case 0—>a[2]=5—>5%2=1—>case 1—>a[2]=4
当i=3时,i%2=1—>case 1—>a[3]=0
输出结果为3040,故选C