实验2 C语言控制语句应用编程
四、实验结论
1. 实验任务1
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 #define N 5 5 int main() 6 { 7 int grade, number; 8 int i; 9 10 srand(time(0)); // 以当前系统时间作为随机种子 11 for(i=0; i<N; ++i) 12 { 13 grade = rand()%4 + 2018; 14 number = rand()%999 + 1; 15 printf("%d8330%04d\n", grade, number); 16 } 17 return 0; 18 }

问题1:line16代码的功能是生成2018--2021的随机数
问题2:line17代码的功能是生成1--999的随机数
问题3:这个程序的功能是随机生成五组学号
2. 实验任务2
1 //简单的猜日期的程序 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <time.h> 5 int main() 6 { 7 int i,c=0,n,t; 8 printf("猜猜2022年4月哪一天会是你的lucky day\n"); 9 printf("开始喽,你有三次机会,猜吧(1~30): "); 10 srand(time(0)); 11 t=rand()%30+1; 12 for(i=1;i<=3;++i) 13 { 14 scanf("%d",&n); 15 if(n==t) 16 { 17 printf("哇,猜中了:-)"); 18 break; 19 } 20 else if(n<t) 21 { 22 printf("你猜的日期早了,你的lucky day还没到呢\n"); 23 printf("再猜(1~30): ") ; 24 } 25 else 26 { 27 printf("你猜的日期晚了,你的lucky day已经过了\n"); 28 printf("再猜(1~30): ") ; 29 } 30 c++; 31 } 32 if(c==3) 33 { 34 printf("次数用完啦。偷偷告诉你:4月,你的lucky day是%d号",t); 35 } 36 37 return 0; 38 }

3. 实验任务3
1 //模拟红绿灯信息 2 #include <stdio.h> 3 int main() 4 { 5 int n; 6 7 while (scanf("%c", &n) != EOF) 8 { 9 if (n == 'y') 10 { 11 printf("wait a minute\n"); 12 } 13 else if (n == 'g') 14 { 15 printf("go go go\n"); 16 } 17 else if (n == 'r') 18 { 19 printf("stop!\n"); 20 } 21 else 22 { 23 printf("something must be wrong\n"); 24 } 25 getchar(); 26 } 27 return 0; 28 }

4. 实验任务4
1 //根据计算式,计算s 2 #include<stdio.h> 3 #include<stdlib.h> 4 #include<math.h> 5 int main() 6 { 7 int n,a; 8 double i,sum,fm; 9 while(scanf("%d%d",&n,&a)!=EOF) 10 { 11 for(sum=0,fm=0,i=1;i<=n;i++) 12 { 13 fm+=a*pow(10,i-1); 14 sum+=i/fm; 15 } 16 printf("n=%d,a=%d,s=%.6lf\n",n,a,sum); 17 } 18 return 0; 19 }

5. 实验任务5
1 //打印九九乘法表 2 #include<stdio.h> 3 int main() 4 { 5 int i,j; 6 for(i=1;i<=9;++i) 7 { 8 for(j=1;j<=i;++j) 9 { 10 printf("%dX%d = %d ",j,i,i*j); 11 } 12 printf("\n"); 13 } 14 return 0; 15 }

6. 实验任务6
1 //从键盘输入n,在纵向打印n个字符小人 2 #include<stdio.h> 3 int main() 4 { 5 int n,i; 6 printf("input n: "); 7 scanf("%d", &n); 8 for (i = 1; i <= n; i++) 9 { 10 printf(" 0\n"); 11 printf("<H>\n"); 12 printf("1 1\n"); 13 printf("\n"); 14 } 15 }

1 //从键盘输入n,在横向打印n个字符小人 2 #include<stdio.h> 3 int main() 4 { 5 int n,i; 6 printf("input n: "); 7 scanf("%d", &n); 8 for (i = 1; i <= n; i++) 9 { 10 printf(" 0\t"); 11 } 12 printf("\n"); 13 for (i = 1; i <= n; i++) 14 { 15 printf("<H>\t"); 16 } 17 printf("\n"); 18 for (i = 1; i <= n; i++) 19 { 20 printf("1 1\t"); 21 } 22 return 0; 23 }

1 //从键盘输入n,打印n行按图示方式递减的字符小人阵列 2 #include<stdio.h> 3 int main() 4 { 5 int n,i,j,m,t; 6 printf("input n:"); 7 scanf("%d", &n); 8 for (j =1; j<=n; j++) 9 { 10 t = 5* (j - 1); 11 printf("%*s", t, ""); 12 for (i = j; i <= 2*n-j; i++) 13 printf(" o "); 14 printf("\n"); 15 t = 5 * (j - 1); 16 printf("%*s", t, ""); 17 for (i = j; i <= 2*n-j; i++) 18 printf("<H> "); 19 printf("\n"); 20 t = 5 * (j - 1); 21 printf("%*s", t, ""); 22 for (i = j; i <= 2*n-j; i++) 23 printf("I I "); 24 printf("\n"); 25 } 26 return 0; 27 }


浙公网安备 33010602011771号