作业1:展开的思路,按要求分析以下代码。
要求不要放到编译器中运行,自己手动分析出每条输出语句的结果,分析出结果后,再在编译器中执行验证结果
void main()
{
int num,num2,num3;
num=1;
num2=2;
num3=3;
num=++num2+ ++num3;
printf("\n%d,%d,%d",num,num2,num3);//输出结果1
7 3 4
num=num2++ + num3++;
printf("\n%d,%d,%d",num,num2,num3); //输出结果2
7 4 5
num=++num2> num3++;
printf("\n%d,%d,%d",num,num2,num3); //输出结果3
0 5 6
num=num2-- && --num3;
printf("\n%d,%d,%d",num,num2,num3); //输出结果4
1 4 5
num = num2>num3 ? num2++ : num3++;
printf("\n%d,%d,%d",num,num2,num3); //输出结果5
5 4 6
}
作业二:编程实现:输入华氏温度F,要求输出对应的摄氏温度C,要求结果保留两位小数。计算公式为:C = 5/9*(F-32);
#include <stdio.h>
int main(int argc, const char *argv[])
{
float F;//定义输入的华氏温度
printf("请输入华氏温度F:");
scanf("%f",&F);
printf("摄氏温度C=%.2f\n",(float)5/9*(F-32));//输出转换后的摄氏温度
return 0;
}
作业三:使用switch实现简易计算器:例如,输入一个表达式:3+5,程序输出结果为8.
#include <stdio.h>
int main(int argc, const char *argv[])
{
int a,b;//定义两个运算的变量ab
char c;//定义运算符号的输入
scanf("%d%c%d",&a,&c,&b);
switch(c){
case '+':
printf("%d\n",a+b);
break;
case '-':
printf("%d\n",a-b);
break;
case '*':
printf("%d\n",a*b);
break;
case '/':
if(b==0){
printf("除法分母不能为0\n");//除法分母为零报错
}else{
printf("%.1f\n",(float)a/b);//除法有可能结果不为整数,强转为实型,保留一位小数
}
break;
default:
printf("输入运算符有误\n");
}
return 0;
}
作业四:使用switch实现,要求输入一个日期,输出该日期是对应今年的第几天
例如输入:2023 1 20 输出结果:该日期是今年第20天
#include <stdio.h>
#define M1 31 //宏定义除了二月份的其他月份天数
#define M3 31
#define M4 30
#define M5 31
#define M6 30
#define M7 31
#define M8 31
#define M9 30
#define M10 31
#define M11 30
#define M12 31
int main(int argc, const char *argv[])
{
int year,mon,day; //定义年月日
int sum=0; //定义一年的第几天数sum
printf("请输入年月日:");
scanf("%d %d %d",&year,&mon,&day);
if(year<0 || mon<1 || mon>12 || day<1 || day>31){//判断日期的合法性
printf("输入的日期不合法\n");
return 0;
}
int M2; //定义二月份M2,并判断输入年份润平年判断二月份天数
if((year%4==0 && year%100!=0)||year%400==0){
M2=29;
}else{
M2=28;
}
switch(mon){ //利用case击穿原理计算输入的日期是这一年的第几天
case 12:
sum+=M11;
case 11:
sum+=M10;
case 10:
sum+=M9;
case 9:
sum+=M8;
case 8:
sum+=M7;
case 7:
sum+=M6;
case 6:
sum+=M5;
case 5:
sum+=M4;
case 4:
sum+=M3;
case 3:
sum+=M2;
case 2:
sum+=M1;
case 1:
sum+=day;
}
printf("该日期是今年的第%d天\n",sum);
return 0;
}