实验1

任务1

竖直方向打印小人

源代码

 1 #include<stdio.h>
 2 int main(){
 3     int i;
 4     for(i=0;i<2;i++)
 5 {
 6     printf(" O\n");
 7     printf("<H>\n");
 8     printf("I I\n");
 9 }
10 
11     return 0;
12 }
View Code

运行结果

屏幕截图 2026-03-19 165545

水平方向打印小人

源代码

1 #include<stdio.h>
2 int main(){
3     printf(" O\t O\n");
4     printf("<H>\t<H>\n");
5     printf("I I\tI I\n");
6 
7     return 0;
8 }
View Code

运行结果

屏幕截图 2026-03-19 164333

任务2

源代码

 1 #include<stdio.h>
 2 int main(){
 3     double a,b,c;
 4     scanf("%lf%lf%lf",&a,&b,&c);
 5     if(a+b>c&&a+c>b&&b+c>a)
 6     printf("能构成三角形\n");
 7     else
 8     printf("不能构成三角形\n");
 9     return 0;
10 }
View Code

运行结果

屏幕截图 2026-03-19 171703

任务3

源代码

 1 #include <stdio.h>
 2 int main()
 3 {
 4     char ans1, ans2;
 5 
 6     printf("每次课前认真预习、课后及时复习了没? (输入y或Y表示有,输入n或N表示没有) :  ");
 7     ans1 = getchar();
 8 
 9     getchar();
10 
11     printf("\n动手敲代码实践了没? (输入y或Y表示敲了,输入n或N表示木有敲) :  ");
12     ans2 = getchar();
13 
14     if ((ans1=='Y'||ans1=='y')&& (ans2=='Y'||ans2=='y'))
15         printf("\n罗马不是一天建成的, 继续保持哦:)\n");
16     else
17         printf("\n罗马不是一天毁灭的, 我们来建设吧\n");
18 
19     return 0;
20 }
View Code

运行结果

屏幕截图 2026-03-19 173446

屏幕截图 2026-03-19 173410

屏幕截图 2026-03-19 173336

屏幕截图 2026-03-19 172831

问题思考

line9的getchar()的作用为读取缓冲区中残留的回车键,避免影响下一次输入。如果把line9去掉,第二次getchar()会直接读取这个换行符,导致ans2被错误赋值为\n,无法获取用户第二次输入。

任务4

源代码

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     double x, y;
 6     char c1, c2, c3;
 7     int a1, a2, a3;
 8 
 9     scanf("%d%d%d", &a1, &a2, &a3);//scanf函数要求传入变量的地址(使用取地址符&),而不是变量本身
10     printf("a1 = %d, a2 = %d, a3 = %d\n", a1,a2,a3);
11 
12     scanf(" %c%c%c", &c1, &c2, &c3);
13     printf("c1 = %c, c2 = %c, c3 = %c\n", c1, c2, c3);
14 
15     scanf("%lf%lf", &x, &y);//double类型变量x对应的scanf格式符应该为%lf
16     printf("x = %f, y = %lf\n",x, y);
17 
18     return 0;
19 }
View Code

运行结果

屏幕截图 2026-03-19 180051

任务5

源代码

 1 #include<stdio.h>
 2 int main(){
 3     int year;
 4     double seconds=1e9;
 5     int seconds_per_year;
 6 
 7     seconds_per_year=365*24*60*60;
 8 
 9     year=(int)(seconds/seconds_per_year+0.5);
10 
11     printf("10亿秒约等于%d年\n",year);
12 
13     return 0;
14 }
View Code

运行结果

屏幕截图 2026-03-19 181510

任务6

源代码

 1 #include<stdio.h>
 2 #include<math.h>
 3 int main(){
 4     double x,ans;
 5     while(scanf("%lf",&x)!=EOF)
 6     {
 7      ans=pow(x,365);
 8      printf("%.2f的365次方:%2f\n",x,ans);
 9      printf("\n");
10     }
11     return 0;
12 }
View Code

运行结果

屏幕截图 2026-03-19 183819

任务7

源代码

 1 #include<stdio.h>
 2 #include<math.h>
 3 int main(){
 4     double c,f;
 5     while(scanf("%lf",&c)!=EOF)
 6     {f=9.0/5.0*c+32;
 7      printf("摄氏度c=%.2f时,华氏度f=%.2f\n",c,f);
 8     }
 9     return 0;
10 }
View Code

运行结果

屏幕截图 2026-03-19 184857

任务8

源代码

 1 #include<stdio.h>
 2 #include<math.h>
 3 int main(){
 4     double a,b,c;
 5     double s,area;
 6     while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF)
 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     }
11     return 0;
12 }
View Code

运行结果

屏幕截图 2026-03-19 190059

 

posted @ 2026-03-19 20:10  thinkbout  阅读(5)  评论(0)    收藏  举报