实验2

试验任务1

  • 源代码task1
#include <stdlib.h>
#include <time.h>
#define N 100
#define CNT 5
int main() {
    int number;
    int i;
    srand(time(0));     // 以当前系统时间作为随机种子
    for(i = 0; i < N; ++i) {
        number = rand() % 100 + 1;
        printf("20490042%04d\n", number);
    }
    return 0;
}
  • 运行测试截图

image

  • 问题回答
    (1):该程序一共循环(N=100)次,每次生成一个范围在0~100之间的随机整数,并按照固定的4位宽度格式输出这100个随机数。
    (2):生成一个取值区间为【1,100】的随机整数。
    (3):d➡代表十进制整数形式输出。
    (4):保证每次运行程序

试验任务2

  • 源代码task2
include <stdio.h>
int main() {
int choice, quantity;
float total_price = 0, amount_paid, change;
while (1) {
printf("\n自动饮料售卖机菜单:\n");
printf("1. 可乐 - 3 元/瓶\n");
printf("2. 雪碧 - 3 元/瓶\n");
printf("3. 橙汁 - 5 元/瓶\n");
printf("4. 矿泉水 - 2 元/瓶\n");
printf("0. 退出购买流程\n");
printf("请输入饮料编号: ");
scanf("%d", &choice);
if (choice == 0)
break;
编译、运行程序,结合运行结果,分析、理解代码功能,回答问题。
问题1:line47代码total_price = 0;如果去掉,对程序有什么影响?
问题2:while循环中,有两处使用continue语句。解释在循环中使用continue语句,语义是什么?
 
编写一个模拟红绿灯信息的程序task3.c。具体要求如下:
3. 实验任务3 
使用if或switch实现
要求用户从键盘输入字符,用来表示交通信号灯颜色。输入r表示red,输入g表示green, 输入y表示yellow
判断交通型号灯颜色,打印输出不同的提示信息:
输入r,输出stop!
输入g,输出go go go
输入y,输出wait a minute
        if (choice < 1 || choice > 4) {
            printf("无效的饮料编号,请重新输入。\n");
            continue;
        }
        printf("请输入购买的数量: ");
        scanf("%d", &quantity);
        if (quantity < 0) {
            printf("购买数量不能为负数,请重新输入。\n");
            continue;
        }
        if(choice == 1 || choice == 2)
            total_price += 3 * quantity;
        else if(choice == 3)
            total_price += 5 * quantity;
        else
            total_price += 2 * quantity;
        printf("请投入金额: ");
        scanf("%f", &amount_paid);
        change = amount_paid - total_price;
        printf("本次购买总价: %.2f 元\n", total_price);
        printf("找零: %.2f 元\n", change);
        total_price = 0;
    }
    printf("感谢您的购买,欢迎下次光临!\n");
    return 0;
}

运行代码截图
微信图片_20261103153112_253_364

  • 问题回答

试验任务3

  • 源代码task3
#include <stdio.h>
int main({
char color;for(int i=1;i<=4;i++){Scanf(" %c",&color);switch(color){
case
printf("stop!\n");
break;
case
printf("wait a minute\n");
break;
case 'g'
printf("go go go\n");
break;
default:
.n";
printf("something must be wrong
break;
return 0;

试验任务4

  • 源代码task4
int main()
#include <stdio.h>
float n;float total = 0.0;float max = 0.0;float min = 0.0;int first = 1;while (1)
printf("输入今日开销,直到输入-1终止:\n");
Scanf("%f"&n);if (n == -1)break;total += n;if (first){max = n;min=n;first = 0;
3elsetif(n >max)max = n;ifCn<min)min=n;
printf("今日累计消费总额:%.1f\n",total);printf("今日最高一笔开销:%.1f\n",max);printf("今日最低一笔开销:%.1f\n",min);
return 0;
  • 实验运行截图
    f0db090d8a182db04062eeeb18e431bf
  • 问题回答

试验任务5

  • 源代码
nt main{int a,b,c;for(int i=1;i<=5;i++){Scanf("%d %d %d", &a, &b, &c);if (a+b>c && a+c>b && b+c>a)
if(a==b && b==c){printf("等边三角形\n");
else if(a==b Ilb==c Ila==c){printf("等腰三角形\n");
printf("直角三角形\n");
else if(a*a+b*b==c*c Ila*a+c*c==b*b IIc*c+b*b==a*a){
elset
printf("普通三角形\n");
elsef
printf("不能构成三角形\n");
3
return 0
  • 运行截图
    c4a4491139b101e0414e2f4fd1e7e179
  • 问题回答

试验任务6

  • 源代码
#include <stdlib.h>
#include <time.h>
int main()
int tucky;
intguess;int
printf("猜猜2026年11月哪一天是你的lucky day\n");
srand(time(o));
Lucky = rand % 30 + 1;for (i= 1;i <= 3; i+)
if(i== 1)
printf("开始喽,你有3次机会,猜吧(1~30):";
else
printf("再猜(1~30):");
Scanf("%d", &guess)if (guess == lucky){
printf("哇,猜中了:\n");
return 0;
else if (guess < lucky){printf("你猜的日期早了,你的lucky day还没到呢\n");
elset
printf("你猜的日期晚了,你的lucky day在前面哦\n");
printf("次数用光啦。11月你的lucky day是d号\n",lucky);
return 0
  • 运行代码截图
    9bd72ec31cf7aec285816ce040d4550b
  • 问题回答
posted @ 2026-11-03 20:22  夏铭泽xmz  阅读(2)  评论(0)    收藏  举报