一、实验目的
- 能正确使用if语句、switch语句实现分支结构
- 能正确使用while语句、do...while语句、for语句实现循环结构
- 能在具体问题场景中使用嵌套分支语句和嵌套循环语句
- 能在具体问题场景中正确区分、使用continue和break
- 能灵活、组合使用c语句编程解决简单应用问题
二、实验准备
- 分支语句和循环语句的用法:语法规则及注意事项
- 使用while语句实现多组输入的方法
- 常见问题的算法
三、实验内容
1. 实验任务1
在c开发环境下,输入如下程序。
task1.c
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 5 #define N 5 6 #define N1 374 7 #define N2 465 8 9 int main() { 10 int number; 11 int i; 12 13 srand(time(0)); // 以当前系统时间作为随机种子 14 15 for (i = 0; i < 5; ++i) { 16 number = rand() % (N2 - N1 + 1) + N1; 17 //374 - 465 + 374 18 printf("202183360038 %04d\n", number); 19 } 20 21 return 0; 22 }
2. 实验任务2
编写一个模拟红绿灯信息的程序task2.c。具体要求如下:
- 要求用户从键盘输入字符,用来表示交通信号灯颜色。输入r表示red,输入g表示green, 输入y表示 yellow
- 判断交通型号灯颜色,打印输出不同的提示信息:
- 如果输入的是r,打印输出字符串stop!
- 如果输入的是g,打印输出字符串go go go
- 如果输入的是y,打印输出字符串wait a minute
- 如果输入的是其它字符,打印输出字符串something must be wrong...
- 要求支持多组输入,直到用户按下CTRL+Z终止程序
3. 实验任务3
编写一个简单的猜日期程序task3.c。具体要求如下:
- 使用随机函数,生成1~30之间的一个随机整数作为11月的lucky day
- 用户有三次猜的机会。根据用户输入的日期,提示用户猜的日期是猜中了,或是,早或晚。
- 如果用户已经猜中了,则无需打印输出lucky day。
- 如果用户用光三次机会也没有猜中,那么,就打印输出用户在11月的lucky day。
4. 实验任务4
编写程序task4.c,实现从键盘输入正整数n和a,根据计算式,计算s。
要求支持多组输入,直到用户按下CTRL+Z终止程序。
5. 实验任务5
编写程序task5.c,实现在屏幕上打印图示所示的九九乘法表。
6. 实验任务6
编写程序task6.c,实现:从键盘输入n, 打印n行按图示方式递减的字符小人阵列。
四、实验结论
1. 实验任务1
运行截图:
回答问题:
- 问题1:line17代码的作用是确保生成的随机数范围在[374,465]之间,并将该随机数赋值给number;
- 问题2:输出5个随机的学号(大概是)。
2. 实验任务2
task2.c
1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 4 int main() { 5 char light; 6 7 do { 8 scanf("%c", &light); 9 getchar(); 10 11 switch (light) { 12 case 'r': 13 printf("stop!\n"); 14 break; 15 case 'g': 16 printf("go go go\n"); 17 break; 18 case 'y': 19 printf("wait a minute\n"); 20 break; 21 default: 22 printf("something must be wrong...\n"); 23 break; 24 } 25 } while (true); 26 27 return 0; 28 }
运行截图:
3. 实验任务3
task3.c
1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <time.h> 5 6 int main() { 7 int lucky_day; 8 int a; 9 int flag = 0; 10 11 srand(time(0)); 12 lucky_day = rand() % 30 + 1; 13 printf("%d\n", lucky_day); 14 15 printf("你有三次机会,"); 16 for (int i = 0; i < 3; i++) { 17 printf("猜吧:"); 18 scanf("%d", &a); 19 20 if (a == lucky_day) { 21 printf("哇,猜中了d=====( ̄▽ ̄*)b\n"); 22 flag = 1; 23 break; 24 } 25 else if (a > lucky_day) { 26 printf("你猜的日期晚了\n"); 27 } 28 else if (a < lucky_day) { 29 printf("你猜的日期早了\n"); 30 } 31 } 32 33 if (!flag) { 34 printf("次数用完了。悄悄告诉你:11月你的luck day是%d号", lucky_day); 35 } 36 37 return 0; 38 }
运行截图:
4. 实验任务4
task4.c
1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <math.h> 4 5 int main() { 6 int n; 7 int a; 8 int temp; 9 double sum; 10 11 while (true) { 12 sum = 0.0; 13 14 scanf("%d %d", &n, &a); 15 16 temp = a; 17 for (int i = 1; i <= n; i++) { 18 sum = sum + 1.0 * i / temp; 19 temp = a * pow(10, i) + temp; 20 } 21 22 printf("n = %d, a = %d, s = %lf\n", n, a, sum); 23 } 24 25 return 0; 26 }
运行截图:
5. 实验任务5
task5.c
1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 4 int main() { 5 for (int i = 1; i <= 9; i++) { 6 for (int j = 1; j <= i; j++) { 7 printf("%d×%d = %2d ", j, i, i * j); 8 } 9 printf("\n"); 10 } 11 12 return 0; 13 }
运行截图:
6. 实验任务6
task6.c
1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 4 int main() { 5 int n; 6 7 scanf("%d", &n); 8 9 for (int i = 0; i < n; i++) { 10 for (int j = 0; j < i; j++) { 11 printf("\t"); 12 } 13 for (int k = 2 * (n - i) - 1; k > 0; k--) { 14 printf(" O \t"); 15 } 16 printf("\n"); 17 18 for (int j = 0; j < i; j++) { 19 printf("\t"); 20 } 21 for (int k = 2 * (n - i) - 1; k > 0; k--) { 22 printf("<H>\t"); 23 } 24 printf("\n"); 25 26 for (int j = 0; j < i; j++) { 27 printf("\t"); 28 } 29 for (int k = 2 * (n - i) - 1; k > 0; k--) { 30 printf("I I\t"); 31 } 32 printf("\n"); 33 } 34 35 return 0; 36 }
运行截图:
标签:int,编程,lucky,C语言,实验,printf,include,day,分支 From: https://www.cnblogs.com/Cr2O3/p/17767135.html