实验1 C语言开发环境使用和编程初体验
四、实验结论
1. 实验任务1
//task1_1.c
1 #include<stdio.h> 2 int main() 3 { 4 int i; 5 6 for(i=1;i<=2;i++) 7 { 8 printf(" O \n"); 9 printf("<H>\n"); 10 printf("I I\n\n"); 11 } 12 13 return 0; 14 }
//task1_2.c
1 #include<stdio.h> 2 3 int main() 4 { 5 printf(" O O \n"); 6 printf("<H> <H>\n"); 7 printf("I I I I\n"); 8 9 return 0; 10 }
2. 实验任务2
//task2_1.c
1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 double x,ans; 6 7 scanf("%lf",&x); 8 ans=pow(x,365); 9 printf("%.2f的365次方:%.2f\n",x,ans); 10 11 return 0; 12 }
//task2_2.c
1 #include<stdio.h> 2 #include<math.h> 3 4 int main() 5 { 6 double x,ans; 7 8 while(scanf("%lf",&x)!=EOF) 9 { 10 ans=pow(x,365); 11 printf("%.2f的365次方:%.2f\n",x,ans); 12 printf("\n"); 13 } 14 15 return 0; 16 }
//task2_3.c
1 #include<stdio.h> 2 #include<math.h> 3 4 int main() 5 { 6 double x,ans; 7 8 while(scanf("%lf",&x)!=EOF) 9 { 10 ans=x*9/5+32; 11 printf("摄氏度c=%.2f时,华氏度f=%.2f\n",x,ans); 12 printf("\n"); 13 } 14 15 return 0; 16 }
3. 实验任务3
//task3.c
1 #include<stdio.h> 2 int main() 3 { 4 double x,y; 5 char c1,c2,c3; 6 int a1,a2,a3; 7 8 scanf("%d%d%d",&a1,&a2,&a3); /*缺少地址符*/ 9 printf("%d,%d,%d\n",a1,a2,a3); 10 11 scanf("%c%c%c",&c1,&c2,&c3); 12 printf("%c%c%c\n",c1,c2,c3); 13 14 scanf("%lf,%lf",&x,&y); /*%f使用错误*/ 15 printf("%f,%lf\n",x,y); 16 17 return 0; 18 }
4. 实验任务4
//task4.c
1 #include <stdio.h> 2 int main() 3 { 4 int age1, age2; 5 char gender1, gender2; 6 7 scanf("%d%c%d%c", &age1, &gender1, &age2, &gender2); 8 printf("age1 = %d, gender1 = %c\n", age1, gender1); 9 printf("age2 = %d, gender2 = %c\n", age2, gender2); 10 11 return 0; 12 }
5. 实验任务5
//task5.c
1 #include <stdio.h> 2 int main() 3 { 4 5 char ans1, ans2; 6 7 printf("第3章认真学完一遍了没? (输入y或Y表示认真学完一遍了,输入n或N表示没有) : "); 8 9 ans1 = getchar(); 10 getchar(); 11 12 printf("\n动手敲代码实践了没? (输入y或Y表示敲了,输入n或N表示木有敲) : "); 13 14 ans2 = getchar(); 15 16 if ((ans1=='y'||ans1=='Y')&&(ans2=='y'||ans2=='Y')) 17 printf("\n罗马不是一天建成的, 继续保持哦:)\n"); 18 else 19 printf("\n罗马不是一天毁灭的, 我们回头建设吧\n"); 20 21 return 0; 22 }
6. 实验任务6
//task6.c
1 // 测试你是哪一类学习者 2 #include <stdio.h> 3 int main() 4 { 5 int answer; 6 char words[5000]; 7 8 printf("网课学习让一些人欢喜一些人忧.\n"); 9 printf("1. 作为喜欢自学且自律的人,觉得这样很好. 有网络,自主学习,很ok.\n"); 10 printf("2. 不喜,不喜,很不喜. 眼睛快瞎了. 脑壳有点卡...\n"); 11 printf("3. 中间派. 不知道. 说不清.\n"); 12 printf("4. 其它...\n"); 13 printf("你的选择: "); 14 15 scanf("%d", &answer); 16 17 if(answer == 4) 18 { 19 printf("请补充说明你的想法: \n"); 20 getchar(); 21 gets(words); 22 } 23 24 printf("\n"); 25 printf("当遇到问题时, 你会选择:\n"); 26 printf("1. 遇到问题, 就解决问题。不懂的,搜索式学习,逐个攻破.\n"); 27 printf("2. 遇到问题, 不高兴。然后,...,没有了.\n"); 28 printf("3. 其它...\n"); 29 printf("你的选择: "); 30 31 scanf("%d", &answer); 32 33 if(answer == 1) 34 printf(":)\n"); 35 else if(answer == 2) 36 printf("这样不能解决问题啊...我们选择1好不好:)\n"); 37 else if(answer == 3) 38 { 39 printf("请补充说明你的想法: \n"); 40 getchar(); 41 gets(words); 42 } 43 44 return 0; 45 }
//task6_1.c
1 // 测试你是哪一类玩家 2 #include <stdio.h> 3 int main() 4 { 5 int answer; 6 char words[5000]; 7 8 printf("作为一位玩家,你认为什么是一个游戏的生命?\n"); 9 printf("1. 故事与世界观.\n"); 10 printf("2. 游戏性.\n"); 11 printf("3. 画质与声音.\n"); 12 printf("4. 其它...\n"); 13 printf("你的选择: "); 14 15 scanf("%d", &answer); 16 17 if(answer == 4) 18 { 19 printf("请说明你的想法: \n"); 20 getchar(); 21 gets(words); 22 } 23 24 printf("\n"); 25 printf("当游戏需要付费时(例如steam上的付费单机游戏), 你会选择:\n"); 26 printf("1. 支持正版,必须付费.\n"); 27 printf("2. 找资源,去白嫖.\n"); 28 printf("3. 其它...\n"); 29 printf("你的选择: "); 30 31 scanf("%d", &answer); 32 getchar(); 33 34 if(answer == 1) 35 printf(":)\n"); 36 else if(answer == 2) 37 { 38 printf("你一般使用什么渠道?:)\n"); 39 printf("1.baidupan\n"); 40 printf("2.蓝鸟\n"); 41 printf("3.BT\n"); 42 printf("3. 其它...\n"); 43 printf("你的选择: "); 44 45 scanf("%d", &answer); 46 if(answer == 3) 47 { 48 printf("请说明你的想法: \n"); 49 getchar(); 50 gets(words); 51 } 52 } 53 else if(answer == 3) 54 { 55 printf("请补充说明你的想法: \n"); 56 getchar(); 57 gets(words); 58 } 59 60 return 0; 61 }
五、实验总结
1. 在连续运用多个scanf()函数或getchar()函数时,为了防止上一次输入的‘\n'被下一个输入函数读取,要在期间加入一个 getchar(); 语句,使被缓存在读取区的’\n'被消耗,从而不会影响下一次读取。
2. 在不确定有多少数据需要输入或有多组数据需要分别计算时,可以使用 while(scanf("%xx",&xx)!=EOF) 来达成目的。其中EOF为End Of File,按键组合为“Control+Z”。
3. 在scanf()函数中,%f对应float类型,%lf对应double类型,两者需要严格区分,否则无法输入数据。