找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 85|回复: 0

检测点8-23

[复制链接]

620

主题

336

回帖

1057

积分

管理员

积分
1057
发表于 2026-3-7 20:07:52 | 显示全部楼层 |阅读模式
检测点8-23

1.和源文件c0828.c一样,下面的程序也是用来打印所有命令行参数以及当前程序的名字的,但它的打印顺序和c0828.c相反。请在这个程序的空白处填写适当的表达式,使之可正常编译、执行并产生预期的输出。
# include <stdio.h>

int main (int argc, char * * argv)
{
    while (________)
        printf ("%s\n", ________);
}
参考答案:
# include <stdio.h>


int main (int argc, char * * argv)
{
    while (argc --)
        printf ("%s\n", argv [argc]);
}

2.编写一个程序,通过命令行参数接收6个学生的成绩并打印最低、最高和总成绩。(提示:一个比较简单的方法是声明三个对象,对象min保存最低成绩,对象max保存最高成绩,对象sum保存总成绩。每次取一个命令行参数,转换为整数后与最低成绩、最高成绩作比较和置换,并累加到总成绩。)
参考答案:
# include <stdio.h>
# include <stdlib.h>


int main (int argc, char * * argv)
{
    if (argc < 7)
    {
        printf ("Insufficient command line arguments.\n");
        return -1;
    }


    int sum = 0, min = atoi (argv [1]), max = min, tmp;


    for (size_t x = 1; x < argc; x ++)
    {
        tmp = atoi (argv [x]);
        sum += tmp;
        if (min > tmp) min = tmp;
        if (max < tmp) max = tmp;
    }


    printf ("sum=%d,min=%d,max=%d\n", sum, min, max);
}


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2026-3-30 16:11 , Processed in 0.248328 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表