课后作业
0.运算符,独立计算,不需要进入编辑器
int a,b,c;
a=1;b=1;c=1;
a=++b + ++c;
printf(“\n%d,%d,%d”,a,b,c);
a=b++ + c++;
printf(“\n%d,%d,%d”,a,b,c);
a=++b || c++;(逻辑运算符规则)
printf(“\n%d,%d,%d”,a,b,c);
a=b-- && --c;
printf(“\n%d,%d,%d”,a,b,c);
a=b>c?b++:c++;
printf(“\n%d,%d,%d”,a,b,c);
答案:
4,2,2
4,3,3
1,4,3
1,3,2
3,4,2
1.利用switch…case写一个简单的四则运算(+、-、*、)
#include <stdio.h>
int main(int argc, const char *argv[])
{
//简单四则运算
int a = 8;
int b = 5;
char c = 0;
float res = 0;
c = getchar();
switch(c)
{
case '+': {printf("res = %f",(float)a+b);break;}
case '-': {printf("res = %f",(float)a-b);break;}
case '*' :{printf("res = %f",1.0*a*b);break;}
case '/': {printf("res = %f",1.0*a/b);break;}
default:printf("输入格式错误");
}
return 0;
}
2.终端输入三角形的三条边,判断是否可以组成三角形,能的话,是等腰三角形,还是等边三角形、或普通三角形
#include <stdio.h>
int main(int argc, const char *argv[])
{
//2.终端输入三角形的三条边,判断是否可以组成三角形
//,能的话,是等腰三角形,还是等边三角形、或普通三角形
int a = 0;
int b = 0;
int c = 0;
scanf("%d-%d-%d",&a,&b,&c);
if((a+b>c)&&(a+c>b)&&(b+c>a))
{
if(a==b&&b==c)
{
printf("三角形为等边三角形\n");
}
else if((a==b)||(a==c)||(b==c))
{
printf("三角形为等腰三角形\n");
}
else
{
printf("三角形为一般三角形\n");
}
}
else{
printf("三边不能构成三角形\n");
}
return 0;
}
3.终端输入一个数,判断是一、二、三位数。如果是一位数的话,判断奇偶;如果是二位数的话,判断个位能不能被十位整除;如果是三位数的话,判断个的三次方+十的三次方+百的三次方 = 本身。(水仙花数)
#include <stdio.h>
int main(int argc, const char *argv[])
{
/*
终端输入一个数,判断是一、二、三位数
如果是一位数的话,判断奇偶
如果是二位数的话,判断个位能不能被十位整除
如果是三位数的话,判断个的三次方+十的三次方+百的三次方 = 本身>
(水仙花数)
*/
int a = 0;
int ge;
int shi;
int bai;
scanf("%d",&a);
if(a>-1&&a<10)
{
if(a%2==0)
{printf("是一位数,且该数为偶数");}
else
{printf("是一位数,且该数为奇数");}
}
else if(a>9&&a<100)
{
ge = a % 10;
if(10%ge==0){printf("是两位数,且个位数可以被10整除");}
else{printf("是两位数,且个位数无法被10整除");}
}
else if(a>99&&a<1000)
{
ge = a % 10;
shi = a / 10 % 10;
bai = a / 100 ;
if(a==ge*ge*ge+shi*shi*shi+bai*bai*bai)
printf("是一位三位数,且该数为水仙花数");
else
printf("是一位三位数,且该数不是水仙花数")
}
else{
printf("输入格式不符合要求");
}
return 0;
}
4.终端输入判断是不是字母,不是字母的话,打印不是字母,是字母的话,再判断是大写还是小写,大写的话,终端输出对应小写字母,小写的话,终端输出大写字母。
#include <stdio.h>
int main(int argc, const char *argv[])
{
char c;
c = getchar();
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{
if(c>='a'&&c<='z')
{
c = c-32;
putchar(c);
putchar(10);
}
else
{
c += 32;
putchar(c);
putchar(10);
}
}
else{
printf("不是字母");
}
return 0;
}
5.输入日期,判断是今天的第多少天?区分闰年平年
#include <stdio.h>
int main(int argc, const char *argv[])
{
int year;
int mon;
int day;
int date;
scanf("%d-%d-%d",&year,&mon,&day);
//判断闰年与否
/*
bool isRun(int y){
if((y%4==0&&y%100!=0)||y%400==0)
return true;
else
return false;
}*/
switch(mon){
case 1 :{date = day;break;}
case 2 :{date = 31+day;break;}
case 3 :{date = 31+28+day;break;}
case 4 :{date = 31+28+31+day;break;}
case 5 :{date = 31+28+31+30+day;break;}
case 6 :{date = 31+28+31+30+31+day;break;}
case 7 :{date = 31+28+31+30+31+30+day;break;}
case 8 :{date = 31+28+31+30+31+30+31+day;break;}
case 9 :{date = 31+28+31+30+31+30+31+31+day;break;}
case 10 :{date = 31+28+31+30+31+30+31+31+30+day;break;}
case 11 :{date = 31+28+31+30+31+30+31+31+30+31+day;break;}
case 12 :{date = 31+28+31+30+31+30+31+31+30+31+30+day;break;}
default :printf("月份格式输入错误");
}
if((year%4==0&&year%100!=0)||(year%400==0)&&mon>2)
{
date++;//闰年且月份超过2月 date加一
}
printf("日期为这一年的第%d天",date);
return 0;
}