C语言点滴之回顾篇

想写一篇博文的心愿酝酿很久了,一直不知道写点啥,这篇作为  a brand new start,重新看了C语言课件,有些许新的感受。在此感谢赵岩老师带我走进C的门槛,祝好~
【符号说明】:小结待解决,重点

1.浮点数只有前7位是有效的, 从左到右的七个数是对的,与小数点无 关。
所以,float f=123456789.00+0.01=123456792.00000

2.判断两个浮点数相等

3.不被初始化的变量是随机数

4.缺省1.23小数为double,否则是1.23F

浮点型后缀f有时不能省略,下例子输出0.00000..否则默认为double型,输出末尾几位为随机数

5.C语言中用'\0'表示字符串结束
6.const修饰,程序中该常量无法再修改,否则 compile error.
7.&&和||运算只算一半的特点
8.++:前为先加,后进行其他的运算;否则后加先运算

9.函数是C中的功能单元
10.语句的分类(结合编译原理) 
变量声明语句
表达式语句:任何一条计算的语句,如赋值(赋值表达式语句)
符合语句:多条表达式语句
控制语句:
函数调用语句:

11.空语句的作用: 延时用的空循环
12.输入输出函数:
 (1) 字符+缓冲区留下回车:getchar VS putchar 从缓冲区读数据,非键盘。因此当缓冲区为空,界面停住。每次只读任意一个字符。
(2) 字符串+缓冲区读走回车:gets(char *str) VS puts
汉字占两个字节,占char两个字符,一个char为一个字节
(3) scanf("%d",&a) 空格回车等忽略留在缓冲区里面按格式如%d只提取数字若提取失败,则数据仍留在缓冲区。fflush(stdin)清空
用例1:3 f输出:333333333....死循环了(3一直留在缓冲区里面 因为没有提取不出来f,所以提取失败不能清除3)——用fflush可以解决此问题
用例2:3 4 5输出:#3#4#5(忽略了空格,每次缓冲区提取一个)
%c首先会吃到缓冲区中留下的回车,因此不会等用户输入b


【小结scanf】:按格式读取,非格式部分留在缓冲区,此外空格回车等一直在缓冲区,它们属于%c,常常会忘记会被scanf("%c")读取以至于没有读我们想要的字符。

(4)格式输出

-m.n表示最少数据宽度+最多小数位数+左右对齐方式

13.何为语句块?
花括号!变量只在定义它的语句块中有效,向下有效。变量在语句块的开头定义,不是程序的开头!也就是说在IF中可以定义属于该语句块内部的一个新变量
VS
输出:1,0VS1,1
你懂的,语句块中的是重新定义的,而且是语句块内的局部变量。

14.else与最近的if配套

15.随机函数的原理:
(1)伪随机数:每个数都对应同一个,每次随机结果相同
(2)time()返回当前时间作为随机种子

16.函数其实是一个 调用栈!
主函数依次调用函数进栈,执行完毕出栈

17.变量存储类型:一般的变量存在栈中, static不是,因此不会随函数出栈而消失,而是等待程序结束

18.局部变量:函数内, 语句块内,形参——退出所在范围后无效

19.预编译指令:不进行语法检查,完全就是 替换(类似java的内联函数)!如define
20.多个C文件工作原理:
编译器:认识每个标示符(声明)
连接器:找到标示符的定义
21.sizeof:占字节数

22.冒泡排序降序——里层:从下向上每次将一个数往上面移动,移动到最上面的移不动了的时候,换比它更大的上移, 因此每次都能确定此轮最大的那个!

23.字符数组:
常量: char str[5] = "China";错误,开的大小少了
输入空格, scanf忽略后截止!剩余部分留在缓冲区里面

24.fgets(char *s, int n, stdin)从标准输入中读取字符串保存在s中

25.指针

指针是一种变量, 依托于基本变量(注意的是int a=10; short *p1=&a;为编译错误!),都占用4个字节(是32位地址)

它的值就是存在它指向地址处数的值!
常见问题:空指针,指鹿为马(类型不匹配问题),指针越界(访问无地址分配的地方)
26. 动态一维数组:
int *p=NULL;
p=(int *)malloc(n*sizeof(int));
...
p[i]
...
free(p);

27.构建自己的数据类型+同一事物的信息内存分配不集中寻址效率低,因此结构体应运而生!
大小:
28.链表
struct node{
int data;
struct node *next;
}
增:
t=malloc(sizeof(struct Node));
t->next=x->next;
x->next=t;

x->next和x都是node类型的某一地址

删:
t=x->next;
x->next=t->next;
free(t);

29.共用体和结构体差别:成员占公共的内存,空间取决于所占空间最大的成员;互斥关系

30.文件:
File * fopen(const char *path, const char *mode)以某种方式打开文件,返回句柄,标识文件!





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、引言 随着全球气候变化和城市化进程的加快,洪水灾害的频率和强度呈上升趋势,对人类社会和经济发展构成了严重威胁。因此,建设一套高效、准确的洪水预报与防洪形势分析系统,对于提升洪水灾害的预警能力、减轻灾害损失具有重要意义。本文旨在全面总结洪水预报与防洪形势分析系统的设计背景、目标、需求、总体设计、子系统详细设计等方面的内容,为系统的后续开发、实施和应用提供理论支撑和实践指导。 二、建设背景 洪水灾害作为一种常见的自然灾害,其发生往往伴随着巨大的经济损失和人员伤亡。为了有效应对洪水灾害,提高预警和应对能力,各国政府和相关机构纷纷投入大量资源,开展洪水预报和防洪形势分析的研究和实践。在这样的背景下,本项目的建设显得尤为重要和紧迫。通过集成先进的信息技术、水文学、气象学等多学科知识,构建一套集洪水预报、防洪形势分析、专家交互、会商决策于一体的综合性系统,旨在实现对洪水灾害的全面、精准、高效监测和预警,为洪水灾害的应对提供科学依据和技术支持。 三、项目概述 3.1 项目背景 本项目基于上述建设背景,旨在解决洪水灾害预警和应对中存在的问题和挑战。通过建设一套综合性的洪水预报与防洪形势分析系统,实现对洪水灾害的实时监测、预警、分析和决策支持,提高洪水灾害的应对能力和效率。 3.2 项目目标 本项目的核心目标包括: 实现洪水灾害的实时监测和预警,提高预警的准确性和时效性; 提供全面的防洪形势分析功能,为决策支持提供科学依据; 支持专家交互和会商决策,提高决策的科学性和有效性; 构建开放、可扩展的系统架构,支持后续的功能扩展和升级。 3.3 需求概述 为满足项目目标,系统需要满足以下需求: 实时数据采集和处理能力,确保数据的准确性和时效性; 强大的洪水预报和防洪形势分析功能,支持多种预报模型和分析方法; 友好的用户界面和交互体验,方便用户操作和使用; 高效的数据存储和管理能力,支持大规模数据的存储和查询; 可靠的系统性能和稳定性,确保系统的持续运行和可用性。 四、系统总体设计 4.1 基本设计理念 系统总体设计遵循以下基本理念: 以用户需求为导向,注重系统的实用性和易用性; 采用先进的信息技术和水文学、气象学等多学科知识,确保系统的先进性和准确性; 构建开放、可扩展的系统架构,支持后续的功能扩展和升级; 注重系统的稳定性和安全性,确保系统的持续运行和数据安全。 4.2 软件总体结构 系统采用模块化设计,包括数据采集与处理、洪水预报、防洪形势分析、专家交互、会商决策等多个模块。各模块之间通过标准化的接口进行通信和数据交换,实现系统的集成和协同工作。 4.3 系统接口设计 系统接口设计包括外部接口和内部接口两部分。外部接口负责与外部数据源进行通信和数据交换;内部接口负责各模块之间的通信和数据交换。通过标准化的接口设计,实现系统的灵活性和可扩展性。 4.4 系统整体应用模式 系统采用B/S架构,用户通过浏览器访问系统界面,实现远程访问和操作。系统支持多用户并发访问和操作,满足大规模用户的使用需求。 4.5 子系统划分 系统划分为多个子系统,包括应用支撑平台、预报模型建模子系统、洪水预报子系统、专家交互子系统、水库调洪计算子系统、中长期预报子系统、防洪形势分析子系统和会商子系统等。各子系统之间相对独立又相互关联,共同构成完整的洪水预报与防洪形势分析系统。 五、子系统详细设计 5.1 应用支撑平台 应用支撑平台是系统的基础和核心,负责提供用户管理、权限控制、日志管理、数据备份与恢复等基础功能。通过用户与权限设计,实现对用户身份和访问权限的严格控制和管理,确保系统的安全性和稳定性。 5.2 预报模型建模子系统 预报模型建模子系统负责构建和维护洪水预报模型。通过集成多种预报模型和分析方法,实现对洪水灾害的精准预报和分析。子系统包括模型库管理、模型参数设置、模型训练与验证等功能模块。 5.3 洪水预报子系统 洪水预报子系统是系统的核心功能之一,负责根据实时数据和预报模型,对洪水灾害进行实时监测和预警。子系统包括数据采集与处理、洪水预报计算、预警信息发布等功能模块。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值