实验1
任务1
1 #include <stdio.h> 2 int main() 3 { 4 printf(" o o\n"); 5 printf("<H> <H>\n"); 6 printf("I I I I\n"); 7 return 0; 8 }

1 include <stdio.h> 2 int main() 3 { 4 printf(" o \n"); 5 printf("<H>\n"); 6 printf("I I\n"); 7 printf(" o \n"); 8 printf("<H>\n"); 9 printf("I I\n"); 10 return 0; 11 }

任务2
1 / 从键盘上输入三个数据作为三角形边长,判断其能否构成三角形 2 // 构成三角形的条件:任意两边之和大于第三边 3 #include <stdio.h> 4 5 int main() 6 { 7 double a, b, c; 8 // 输入三边边长 9 scanf("%lf%lf%lf", &a, &b, &c); 10 11 // 判断能否构成三角形 12 // 补足括号里的逻辑表达式 13 if(a+b>c && a+c>b && b+c>a) 14 printf("能构成三角形\n"); 15 else 16 printf("不能构成三角形\n"); 17 18 return 0; 19 }


任务3
1 #include <stdio.h> 2 int main() 3 { 4 char ans1, ans2; // 保存用户输入的答案 5 6 printf("每次课及时预习/复习了没?(是-输入y或Y,否-输入n或N):"); 7 ans1 = getchar(); // 从键盘输入一个字符,赋值给ans1 8 9 getchar(); // 【line9】吸收回车换行符,去掉这一行,重新编译运行,观察是否影响程序结果 10 11 printf("\n动手敲代码实践了没?(是-输入y或Y,否-输入n或N):"); 12 ans2 = getchar(); 13 14 // 判断ans1和ans2都是y/Y,大小写均可 15 if( (ans1 == 'y' || ans1 == 'Y') && (ans2 == 'y' || ans2 == 'Y') ) 16 printf("\n罗马不是一天建成的,继续保持哦:)\n"); 17 else 18 printf("\n罗马不是一天毁灭的,我们来建设吧\n"); 19 20 return 0; 21 }

问题分析:去掉 getchar(); 之后,输入第一个字符按下回车,回车符 \n 会被ans2接收,程序不会等待你输入第二个答案,直接执行后面的判断。
任务4
1 // 计算10亿秒约等于多少年,并打印输出 2 #include <stdio.h> 3 #include <math.h> // round函数需要这个头文件 4 5 int main() 6 { 7 int year; 8 // 补足代码 9 double sec = 1000000000.0; 10 double res = sec / (365 * 24 * 60 * 60); 11 year = round(res); // 四舍五入取整 12 13 printf("10亿秒约等于%d年\n", year); 14 return 0; 15 }

任务5
1 // 摄氏温度转换成华氏温度 2 #include <stdio.h> 3 int main() { 4 double c, f; 5 scanf("%lf", &c); 6 7 // 待补足:摄氏温度->华氏温度 8 f = 9.0 / 5.0 * c + 32; // 转换公式 9
10 printf("摄氏度c = %.2f时,华氏温度f = %.2f\n", c, f); 11 return 0; 12 }

任务6
1 #include <stdio.h> 2 #include <math.h> 3 int main() 4 { 5 double a,b,c,s,area; 6 scanf("%lf %lf %lf",&a,&b,&c); 7 s = (a + b + c) / 2.0; 8 area = sqrt( s*(s-a)*(s-b)*(s-c) ); 9 printf("a = %.0f, b = %.0f, c = %.0f, area = %.3f\n",a,b,c,area); 10 return 0; 11 }


浙公网安备 33010602011771号