码迷,mamicode.com
首页 > 编程语言 > 详细

C语言初学者画图练习

时间:2015-11-24 06:28:42      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:c语言   初学者   画图练习   

任务一、echo

程序源代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{

int nflag;


if (*++argv && !strcmp(*argv, "-n"))

{

++argv;

nflag = 1;

}

else

nflag = 0;


while (*argv)

{

printf("%s", *argv);

if (*++argv) putchar(‘ ‘);

}


if (!nflag) putchar(‘\n‘);


exit(0);

}

 

任务要求:
此程序是Unix下的命令echo实现的源代码(做了适当的删减和修饰)。
请用结构化流程图画出这个程序
main函数里的执行过程


任务二、sleep

程序源代码:

#include <sys/time.h>
#include <time.h>
#include <ctype.h>
#include <math.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <locale.h>

void usage()
{

(void)fprintf(stderr, "usage: sleep seconds\n");

exit(1);

}

void alarmhandle()
{

_exit(0);

}

int main(int argc, char *argv[])
{

char *arg, *temp;

double val, ival, fval;

struct timespec ntime;

int fracflag;

int ch;


setlocale(LC_ALL, "");


(void)signal(SIGALRM, alarmhandle);


while ((ch = getopt(argc, argv, "")) != -1)

switch(ch)
{

case ‘?‘:

default:

usage();

}

argc -= optind;

argv += optind;


if (argc != 1) usage();


fracflag = 0;

arg = *argv;

for (temp = arg; *temp != ‘\0‘; temp++)

if (!isdigit(*temp)) fracflag++;


if (fracflag)

{

val = atof(arg);

if (val <= 0) exit(0);


ival = floor(val);

fval = (1000000000 * (val-ival));

ntime.tv_sec = ival;

ntime.tv_nsec = fval;

}

else
{

ntime.tv_sec = atol(arg);

if (ntime.tv_sec <= 0)

exit(0);

ntime.tv_nsec = 0;

}


(void)nanosleep(&ntime, NULL);


exit(0);

}

 

要求:
此程序是Unix下的命令sleep实现的源代码(做了适当的删减和修饰)。
请用结构化流程图画出这个程序main函数里的执行过程




 

 


本文出自 “8403723” 博客,请务必保留此出处http://8413723.blog.51cto.com/8403723/1716117

C语言初学者画图练习

标签:c语言   初学者   画图练习   

原文地址:http://8413723.blog.51cto.com/8403723/1716117

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!