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函数里的执行过程。

时间: 2024-11-03 20:51:13

C语言初学者画图练习的相关文章

利用C语言编辑画图程序的实现方法

不知道大家在进行开发县级电网调度自动化系统的时候,是否都会遇到一个问题就是:要绘制一个电力系统一次接线图.大家都应该知道其实电力系统的一次接线图是较为复杂的,如果想要使用一般的编程方法来进行绘制的话,基本上就是行不通的.那么我们应该怎样才可以更加的高效直接呢?今天小编就会给大家介绍一个方法,那就是:利用C语言编辑画图程序的实现方法.希望这篇教程对于大家有所帮助. 一.实现方法 在教程开始之前,小编先为大家介绍一下在编程程序里面早已定义了几个特殊按钮.为什么小编要为大家介绍这几个特殊按钮呢?那是因

R语言初学者指南pdf

下载地址:网盘下载 作者阿兰·F·祖尔等的基于他们对应用科学家讲授统计与R的丰富经验,为读者献上了<R语言初学者指南>这本书.为了避免同时讲授R与统计的困难,统计方法保持在最低限度.<R语言初学者指南>包括如何下载与安装R,载入和处理数据,基本绘图,函数简介,高级绘图以及初学者常见的错误.这本书包括了你开始学习R时想知道的所有内容. 阿兰·F·祖尔资深统计学家,担任英国的一家统计咨询有限公司Highland Statistics的董事长.他已经给5000多名生态学家讲授了统计,是英

C语言初学者编程规范十条

从事C语言的教学也有不短时间了,在教学中发现学生们在编程方面有一个极不好的习惯,就是随意命名,这不仅给自己日后阅读自己程序时带来不便,也给其他的程序阅读者带来麻烦,更重要的是没有统一的规范总显得像是个游击队,没有正规军的感觉,企业也不愿意要业余选手,所以C语言的初学者最好一开始就培养一种良好的编程习惯,也许日后进入公司有些改动,需要适应,但基本的规范和规则是不需要改的,这样可以帮助你少走很多弯路,经过这些年的学习和工作,总结了一些规范的内容,为了好记,便于传播,特总结为十条,建议读者采纳.  

R语言初学者经验

经验丰富的程序员通常会发现R语言的某些方面不太寻常.以下是这门语言中你需要了解的一些特性: 1.对象名称中的句点(.)没有特殊意义.但美元符号($)却有着和其他语言中的句点类似的含义,即指定一个对象中的某些部分 例如: (1)A$x是指数据框A中的变量x. (2)lm.x 指一个变量,lm$x则指对象lm的一个属性. 2. R不提供多行注释或块注释功能 你必须以#作为多行注释每行的开始.出于调试目的,你也可以把想让解释器忽略的代码放到语句if(FALSE){. .. }中.将FALSE改为TRU

C语言初学者简单语法综合练习

本次练习包括一维数组(含字符型数组)的相关知识,建议学习一维数组后做下面练习,如果可以独立完成下面习题的80%,证明你已经比较熟练的掌握相关语法,可以向函数及指针部分进军了,如果没能顺利完成,请参看相关程序,参考程序系本人所写,难免有纰漏之处,有任何疑问敬请留言. 题目目录如下: 登录验证用户邮箱格式验证判断平年/闰年自定义金字塔计算器冒泡法排序 1.登录验证要求:模拟用户登录过程,验证用户名.密码和校验码,如果全部正确提示用户登录成功,否则,提示用户相关输入错误.目的:掌握登录校验的规则和原理

C语言的画图(圆形动画)

#include <stdio.h> #include <malloc.h>#include<graphics.h> #define LEN sizeof(struct student)#include "math.h"#define PI 3.1415926 void main() {initgraph(680,680); while(1){BeginBatchDraw();for(int y=100;y<480;++y){setcolor(

R 学习笔记《三》 R语言初学者指南

1 使用 c,cbind,rbind结合变量 之前获得四列数据 Wingcrd,Tarsus,Head,Wt 每个列包含8个数据,可以通过c继续连接变量 BirdData <- c(Wingcrd,Tarsus,Head,Wt) BirdData [1] 59.0 55.0 53.5 55.0 52.5 57.5 53.0 55.0 22.3 19.7 20.8 20.3 20.8 21.5 [15] 20.6 21.5 31.2 30.4 30.6 30.3 30.3 30.8 32.5 NA

R 学习笔记《五》 R语言初学者指南--第二章总结

第二章学习了的R函数: 1 sum                     计算和 sum(x,na.rm=TRUE)  计算向量x中所有数的和,其中排除了NA元素 2 median                 计算中位数           返回一个样本数据中间的那个数  median(x,na.rm=TRUE) 3 max                    计算最大值            max(x,na.rm=TRUE) 4 min                    计算最小

R 学习笔记《六》 R语言初学者指南--访问变量、处理数据子集

注意:关闭R之前务必保存工作空间,保证学习的连续性.这样以前数据的控制台命令执行的效果以及相关变量仍然保存在内存中. 1 访问数据框变量 建议:在read.table命令执行names查看要处理的变量 names(Squid) [1] "Sample" "Year" "Month" "Location" "Sex" "GSI" 1.1 str函数 str函数可以查看数据框中每个变量的属性