作业1:展开的思路,按要求分析以下代码。
要求不要放到编译器中运行,自己手动分析出每条输出语句的结果,分析出结果后,再在编译器中执行验证结果
ubuntu@ubuntu:day4$ vi 作业分析语句.c
ubuntu@ubuntu:day4$ gcc 作业分析语句.c
ubuntu@ubuntu:day4$ ./a.out
7,3,4
7,4,5
0,5,6
1,4,5
5,4,6ubuntu@ubuntu:day4$ cat 作业分析语句.c
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{
int num,num2,num3;
num=1; //定义num = 1
num2=2; //定义num2 = 2
num3=3; //定义num3 = 3
num=++num2+ ++num3; //此时表达式为num = 3 + 4
printf("\n%d,%d,%d",num,num2,num3);//输出结果1// 结果中 num = 7;num2 = 3; num3 = 4
num=num2++ + num3++; //此时表达式为num = 3 + 4
printf("\n%d,%d,%d",num,num2,num3); //输出结果2// 结果中 num = 7;num2 = 4; num3 = 5
num=++num2> num3++; //此时表达式为num = 5 > 5 = 0
printf("\n%d,%d,%d",num,num2,num3); //输出结果3// 结果中 num = 0;num2 = 5; num3 = 6
num=num2-- && --num3; //此时表达式为num = 5 && 5 = 1
printf("\n%d,%d,%d",num,num2,num3); //输出结果4// 结果中 num = 1;num2 = 4; num3 = 5
num = num2>num3 ? num2++ : num3++; //此时表达式为num = 4>5 ? 4 : 5;
printf("\n%d,%d,%d",num,num2,num3); //输出结果5// 结果中 num = 5;num2 = 4; num3 = 6
}
作业二:编程实现:输入华氏温度F,要求输出对应的摄氏温度C,要求结果保留两位小数。计算公式为:C = 5/9*(F-32);
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
float F;
float C;
scanf("%f", &F);
C = (5.0 / 9.0) * (F - 32);
printf("摄氏度为%.2f\n", C);
return 0;
}
作业三:使用switch实现简易计算器:例如,输入一个表达式:3+5,程序输出结果为8
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int a = 0;
int b = 0;
char operator;
scanf("%d%c%d", &a, &operator, &b);
switch(operator){
case '+':
printf("%d + %d = %d\n", a, b, a+b);
break;
case '-':
printf("%d - %d = %d\n", a, b, a-b);
break;
case '*':
printf("%d * %d = %d\n", a, b, a*b);
break;
case '/':
printf("%f / %f = %f\n", (float)a, (float)b, (float)a/(float)b);
break;
case '%':
printf("%d %% %d = %d\n", a, b, a%b);
break;
}
return 0;
}
作业四:使用switch实现,要求输入一个日期,输出该日期是对应今年的第几天
例如输入:2023 1 20 输出结果:该日期是今年第20天
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int year = 0;
int month = 0;
int day = 0;
scanf("%d %d %d", &year, &month, &day);
if(year != 2023 ){
printf("该日期不符合今年的年份\n");
}else{
switch(month){
case 1:
printf("该日期是今年第%d天\n", day);
break;
case 2:
printf("该日期是今年第%d天\n", day+31);
break;
case 3:
printf("该日期是今年第%d天\n", day+59);
break;
case 4:
printf("该日期是今年第%d天\n", day+90);
break;
case 5:
printf("该日期是今年第%d天\n", day+120);
break;
case 6:
printf("该日期是今年第%d天\n", day+151);
break;
case 7:
printf("该日期是今年第%d天\n", day+181);
break;
case 8:
printf("该日期是今年第%d天\n", day+212);
break;
case 9:
printf("该日期是今年第%d天\n", day+243);
break;
case 10:
printf("该日期是今年第%d天\n", day+273);
break;
case 11:
printf("该日期是今年第%d天\n", day+304);
break;
case 12:
printf("该日期是今年第%d天\n", day+334);
break;
default:
printf("今年不存在该月份\n");
break;
}
}
return 0;
}