实验2 C语言控制语句应用编程
1.实验任务一
task1.c
#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 5 int main() { int grade, number; int i; srand(time(0));// 以当前系统时间作为随机种子 for(i=0; i<N; ++i) { grade=rand()%4+2018;//生成2018-2021之间的随机整数并赋值给grade number=rand()%999+1;//生成1-999之间的随机整数并赋值给number printf("%d8330%04d\n", grade, number); } return 0; } //这个程序的功能是随机生成2018-2021级格式为xxxx83300xxx的学号
2.实验任务二 编写一个简单的猜日期程序task2.c
task2.c
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int x, y, n; srand(time(0)); y=rand() % 30 + 1; printf("猜猜2022年4月哪一天会是你的Lucy day\n"); printf("开始咯,你有三次机会,猜吧(1~30):"); scanf("%d", &x); for (n = 3;n > 0; n--) { if (x < y) { printf("你猜的日期早了,你的Lucy day还没到呢\n"); } else if (x > y) { printf("你猜的日期晚了,你的Lucy day已经过了\n"); } else { printf("哇,猜中了!\n"); exit(0); } if (n != 1 && n != 0) { printf("\n再猜:"); scanf("%d", &x); } else if (n == 1) printf("\n\n次数用完啦。偷偷告诉你:4月,你的luck day是%d号", y); } }
3. 实验任务3 编写一个模拟红绿灯信息的程序
task3.c
#include <stdio.h> int main() { char light; while ((light = getchar()) != EOF) { switch (light) { case 'r': printf("stop!\n");break; case 'y': printf("wait a minute\n");break; case 'g': printf("go go go!\n");break; default: printf("sth must be wrong\n");break; } light = getchar(); } return 0; }
4. 实验任务4
task4.c
#include <stdio.h> int main() { int n; float a, result = 0; while (scanf("%d %f", &n, &a) != 0) { for (int i = 1; i < n + 1; ++i) { result += i / a; a = a + a * 10; } printf("%f\n", result); result = 0; } return 0; }
5. 实验任务5 在屏幕上打印图示所示的九九乘法表。
task5.c
#include <stdio.h> int main() { int x, y; for (x = 1;x <= 9;x++) { for (y = 1;y <= x; y++) { printf("%dx%d = %2d ",y, x, x * y); } printf("\n"); } return 0; }
6. 实验任务6
task6_1.实现:从键盘输入n,在纵向上打印n个字符小人。
#include <stdio.h> int main() { int i,n; printf("Input n:"); scanf("%d", &n); for (i = 1;i <= n;i++) { printf(" O \n"); printf("<H>\n"); printf("I I\n"); printf("\n"); } return 0; }
task6_2.实现:从键盘输入n,在横向上打印n个字符小人。
#include <stdio.h> int main() { int i,n; printf("Input n:"); scanf("%d", &n); for (i = 1;i <= n;i++) { printf(" O "); } printf("\n"); for (i = 1;i <= n;i++) { printf("<H> "); } printf("\n"); for (i = 1;i <= n;i++) { printf("I I "); } return 0; }
task6_3.实现:从键盘输入n, 打印n行按图示方式递减的字符小人阵列。
#include <stdio.h> int main() { int n; printf("input n:"); scanf("%d", &n); for (int i = 1;i <= n;i++) { for (int j = 0;j < i - 1;j++) { printf(" "); } for (int j = 0; j < 2 * n - (2 * i - 1); ++j) { printf(" o "); } printf("\n"); for (int k = 0;k < i - 1;k++) { printf(" "); } for (int k = 0; k < 2 * n - (2 * i - 1); ++k) { printf("<H> "); } printf("\n"); for (int g = 0;g < i - 1;g++) { printf(" "); } for (int g = 0; g < 2 * n - (2 * i - 1); ++g) { printf("I I "); } printf("\n"); } }