|
|
检测点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);
}
|
|