2018-2019-1 学号 《从问题到程序》第 2 周学习总结

2018-2019-1 学号 《从问题到程序》第 2 周学习总结

《从问题到程序》(第 3 章、第 4 章)

第3章 变量、函数和控制结构

变量

当一个变量被定义时,系统为它确定一个存储值的位置,这个存储位置所占存储器单元的多少由变量的类型确定,也就是说,由变量所要存储的数据值的大小决定。
变量有四个属性:变量的名字,变量的类型,变量的存储位置和变量的值。
变量的命名除了不能用关键字作为变量外,可以用任何标识符作为变量名。
将关键字void放在函数头部写返回值类型的位置,就表示定义的是一个不返回值的函数。
关系表达式成立时求出的值是1,关系不成立时值是0,关系运算符优先级低于所有算术运算符。

函数

当主程序执行函数调用时,它自己的执行暂时中断,执行控制权转到被调用函数,使该函数开始执行。直到函数执行完毕,函数返回使执行控制权回到主程序,主程序才从中断点之后继续下去

scanf是最常用的输入函数。scanf(格式描述串,&变量名,....)
enum定义只能定义表达整数的常量,比如NUM=10;。
scanf语句必须有&,且不会做值的类型转换。
printf中double类型对应的是%f,scanf中double类型对应的是%lf。

条件表达式

条件表达式的形式是:
表达式1 ? 表达式2 : 表达式3
计算时先算表达式1;如果其值非0(条件成立)就计算表达式2,用它的值作为整个条件表达式的值;如果表达式1值是0就计算表达式3,用它的值作为整个条件表达式的值。

逻辑表达式

C语言的逻辑运算符是 !、&& 和 || ,它们分别表示否定、并且和或者三种逻辑运算。

人们提出了程序执行的三种基本流程模式,即顺序执行、选择执行和重复执行。

语句

  • 条件语句:if 语句
    条件语句有两种形式:

if (条件)语句
if(条件)语句1 else 语句2

第一种形式:首先求出条件的值,其值非0时就执行语句,该语句的完成也是整个条件语句的完成;否则(条件为0)就不执行语句,整个条件语句直接完成。

第二种形式:首先求出条件的值,其值非0时就执行语句1,否则(值是0)执行关键字else后的语句2。这两个语句之一执行完成时条件语句完成。
每个else部分总属于前面最近的那个缺少对应的else部分的if语句。

  • 循环语句:
    while 语句
    其形式是:

while(条件)语句

这里的语句称为循环体,同样可以是复合语句或其他控制结构,包括循环结构(这种情况称为多重循环)。

for 语句
其形式是:

for (表达式1;表达式2;表达式3)语句

其中表达式1完成变量的初始设置(用赋值表达式),表达式2是确定循环是否继续的条件,表达式3常用于循环变量更新,语句部分是循环体。
for语句中缺第一个或第三个表达式表示不做那部分动作,缺第二个表达式表示循环条件为1,也就是一个条件始终为真的循环。这种循环不会因为条件检测而终止。
.for循环中,for(i=1;i<=20;i++)和for(i=1;i<=20;++i)程序意义不会改变,提倡使用++i。
逗号运算符是优先级最低的运算符,形式为:表达式1,表达式2。例如:for(sum=0,n=1;n<=100;n++)

第 4 章 基本程序设计技术

第 3 章讨论了三种结构化流程模式和相关语言结构。顺序模式用复合语句实现。选择模式就是正确描述条件,考虑不同条件下应完成的动作,用条件语句实现也不困难。重复执行模式比较复杂,用循环实现时牵涉到的问题较多,第 4 章还要讨论基本输入输出,采用递归的方式编程,并介绍 C 语言的其他控制结构和控制语句。

第四章描述了几种典型循环程序设计问题。判断素数(谓词函数)、艰难旅程(浮点误差)、求立方根(迭代和逼进)、求 sin 函数值(通项计算)。因为近期学习密码学知识,以判断素数为例进行说明。
判断只有成立和不成立两种情况,完成判断的函数是一类特殊函数(也称为谓词),它们的返回值被作为逻辑值使用,通常用来控制程序流程,或放在条件表达式的控制部分。人们通常令判断函数返回 0 或 1,用 1 表示判断成立(在这里表示是素数),0 表示判断不成立。

因为专业相关,还查阅了一些其他的素性测试方式:

顺便编写了伪素数生成过程,然后判断是否为素数:

斐波那契序列(计算与时间)
Fibonacci(斐波那契)序列{Fi }i 有如下的递归定义:
F0 = 1, F1 = 1, Fn = Fn−1 + Fn−2 (n >1)

Fibonacci 序列的迭代计算(程序正确性与循环不变式)
(1) F0 和 F1 已知;
(2) 由 F0 和 F1 可以计算出 F2;
(3) 一般地,若已知连续两个 Fibonacci 数,就可以算出序列中下一个数。

猜你喜欢

转载自www.cnblogs.com/gdman/p/9901807.html
今日推荐