实验2
1. task 1
问题1:解释line 13代码的功能:生成1-100之间的随机数;
问题2:解释line 14使用格式符%04d起到什么作用:生成的随机数转化成4位;
问题3:这个程序的功能是什么:从这组学生中抽取5个人。
2.task 2
问题1:line53代码的用途:将总金额重置位0; 如果去掉,会有什么影响:上一个人购买的金额会叠加到下一个人上面;
问题2: line17-18, 使用了break语句;line20-23, line28-31, 使用了continue语句。在循环中使用break和continue有什么区别:break指的是跳出整个循环,而continue指的是结束本次循环其他的代码,但是要继续完成下一轮循环;
问题3: line33-44,使用了switch语句实现多分支。通常情况下,在switch语句中使用default子句有利于代码运行时错误排查,这个程序中,是否有必要增加default子句:没有必要,因为前面已经排查过饮料数量的编号不合法的情况。
3. task 3:
代码:
#include<stdio.h>
int main(){
char sig;
while(scanf("%c",&sig)!=EOF){
if(sig=='r'){
printf("stop!\n");
getchar();
}else if(sig=='g'){
printf("go go go\n");
getchar();
}else if(sig=='y'){
printf("wait a minute\n");
getchar();
}else{
printf("something must be wrong...\n");
getchar();
}
}
return 0;
}
截图:
4.task 4:
代码:
#include<stdio.h>
int main(){
double min,max;
double sum=0.0;
double price;
printf("输入今日开销,直到输入-1终止:\n");
scanf("%lf",&price);
max=price;
min=price;
while((price!=-1) && (price<20000) && (price>0)){
sum+=price;
if(max<price){
max=price;
}else{
;
}
if(min>price){
min=price;
}else{
;
}
scanf("%lf",&price);
}
printf("今日累计消费总额:%.1lf\n",sum);
printf("今日最高一笔开销:%.1lf\n",max);
printf("今日最低一笔开销:%.1lf\n",min);
return 0;
}
截图:
5. task 5:
代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
int n=0;
int day;
int number;
srand(time(0));
day=rand()%30+1;
printf("猜猜2025年4月哪一天是你的lucky day\n");
printf("开始咯,你有3次机会,猜吧(1-30):");
while(n<3){
scanf("%d",&number);
n++;
if(number<day){
printf("你猜的日期早了,你的lucky day还没到呢\n");
}else if(number>day) {
printf("你猜的日期晚了,你的lucky day在前面哟\n");
}else{
printf("哇,猜中了\n");
break;
}
if(n<3)printf("再猜(1-30):");
}
if(n==3){
printf("你的次数用完了。偷偷告诉你,4月你的lucky day是%d号",day);
}
return 0;}
截图:
6. task 6:
代码:
#include<stdio.h>
int main()
{
int n,i,j,k; //n鏄緭鍏ユ暟锛沬鏄ぇ鐨勮鏁帮紝鍜宯鐩哥瓑锛沰鏄皬琛屾暟锛屾瘡澶ц閲屾湁涓夊皬琛岋紱j鏄垪鏁?
scanf("%d",&n);
for(i=1;i<=n;i++){
for(k=1;k<=3;k++){
for(j=1;j<2*n;j++){
if(j<i){
printf(" \t");
}
else if(j>=i&&j<=2*n-i){
if(k==1)printf(" 0 \t");
if(k==2)printf("<H>\t");
if(k==3)printf("I I\t");
}
}
printf("\n");
}
printf("\n");
}
return 0;
}
截图:

浙公网安备 33010602011771号