实验1 C语言开发环境使用和编程初体验

1.实验任务1

task1.c源码

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

运行测试截图:

 

 

 

 

task1_2.c

测试源码:

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

 

运行截图:

2.实验任务2

task2_1.c源码

 1 #include <stdio.h>
 2 #include <math.h>
 3 int main() {
 4     double x, res;
 5     puts("ENTER");
 6     scanf("%lf", &x);
 7     res = pow(x, 365);
 8 
 9     printf("%.2f的365次方为:%.2f", x, res);
10     return 0;
11 }

运行截图:

 

task2_2.c源码:

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

运行截图:

task2_3.c源码

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

运行截图:

3.实验任务3:

源码:

 1 #include <stdio.h>
 2 #include <math.h>
 3 int main() {
 4      double sum;
 5     
 6      
 7      double n;
 8      scanf_s("%lf", &n);
 9      double m = pow(2.0, n);
10      sum =  (1 - m) / (1 - 2);
11      printf("%.0lf", sum);
12      return 0;
13 }

运行截图:

  

单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38,双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308

怕超出范围,所以我用lf,双精度浮点。

4.实验任务4:

task4.c源码:

#include <stdio.h>
int main() {
    int a1, a2, a3;
    char c1, c2, c3;
    double x, y;
    scanf("%d%d%d", &a1, &a2, &a3);
    printf("%d,%d,%d\n", a1, a2, a3);
    
    getchar();//
    scanf("%c%c%c", &c1, &c2, &c3);
    printf("%c,%c,%c", c1, c2, c3);

    scanf("%lf,%lf", &x, &y);//
    printf("%lf,%lf\n", x, y);//

    return 0;
}

这里我改了很多,这题想了好久,知识点不熟练,double是双精度浮点型,要用lf,getchar()是为了避免回车键的影响。

运行截图:

 

 

5.实验任务5:

task5.c源码:

1 #include <stdio.h>
2 int main() {
3     int age1, age2;
4     char gender1, gender2;
5     scanf("%d%c%d%c", &age1, &gender1, &age2, &gender2);
6     printf("age1 = %d, gender1 = %c\n", age1, gender1);
7     printf("age2 = %d, gender2 = %c\n", age2, gender2);
8     return 0;
9 }

运行截图:

6.实验任务6:

task6.c源码:

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

运行截屏:

getchar()是用来避免回车键带来的影响。否则下一个默认获取'\n'.

7.试验任务7:

task7.c源码:

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int answer;
 5     char words[5000];
 6     printf("网课学习让一些人欢喜一些人忧.\n");
 7     printf("1. 作为喜欢自学且自律的人,觉得这样很好. 有网络,自主学习,很ok.\n");
 8     printf("2. 不喜,不喜,很不喜. 眼睛快瞎了. 脑壳有点卡...\n");
 9     printf("3. 中间派. 不知道. 说不清.\n");
10     printf("4. 其它...\n");
11     printf("你的选择: ");
12     scanf_s("%d", &answer);
13     if (answer == 4) {
14 
15         printf("请补充说明你的想法: \n");
16         getchar();
17         gets(words);
18     }
19     printf("\n");
20     printf("当遇到问题时, 你会选择:\n");
21     printf("1. 遇到问题, 就解决问题。不懂的,搜索式学习,逐个攻破.\n");
22     printf("2. 遇到问题, 不高兴。然后,...,没有了.\n");
23     printf("3. 其它...\n");
24     printf("你的选择: ");
25     scanf("%d", &answer);
26     if (answer == 1)
27         printf(":)\n");
28     else if (answer == 2)
29         printf("这样不能解决问题啊...我们选择1好不好:)\n");
30     else if (answer == 3)
31     {
32         printf("请补充说明你的想法: \n");
33         getchar();
34         gets(words);
35     }
36     return 0;
37 }

运行截图:

这里getchar()依然是为了获取‘\n’,否则默认回答就是空的。

总结:

我印象很深刻的是有一题我运行了好长时间不知道哪错了,甚至跳到了栈这块我完全不理解,于是我将代码复制,新建了项目,反而运行成功了。

posted @ 2022-10-13 00:37  ABCDEFGOGOGO  阅读(47)  评论(0编辑  收藏  举报