2017年上海事业单位考试公共基础知识:计算机复习笔记

《谭浩强《C程序设计》(第4版)课后习题笔记及详解.pdf》会员共享,可在线阅读。更多《谭浩强《C程序设计》(第4版)后期练习详解.pdf(249页珍藏版)》相关笔记和课程,请在微赞网搜索。

1、目录第 1 章编程和 C 语言。 4 1.1 复习笔记。 4 1.2 课后练习详解。 6 第 2 章算法程序的灵魂。 9 2.1 复习笔记。 9 2.2 课后问题详解。 14 第3 章最简单的C 编程顺序编程。 29 3.1 回顾笔记。 29 3.@ >2 课后练习详解。 36 第 4 章使用替代结构进行编程。 42 4.1 评论笔记。 42 4.2 课后练习详解。 45 第 5 章使用循环结构进行编程。 58 5.1 复习笔记。 58 5.2 课后问题详解。 62 第 6 章使用数组处理批处理数据。 84 6.1 评论笔记。 84 6

2、.2 课后练习详解。 89 第 7 章用函数实现模块化编程。 114 7.1 评论笔记。 114 7.2 课后练习详解。 119 Chapter 8 善用指针.149 8.1 复习笔记.149 8.2 课后练习详解.156 Chapter 9 用户创建数据类型.189 9.1复习笔记.1899.2课后练习详解.193第10章文件的输入与输出.223 10.1复习笔记.223 10.2课后详解- 课外习题.227第11章常见错误分析.250 11.1复习笔记.250 11.2课后习题详解.251第1章编程与C语言1. 1 审查笔

3、记住一、 计算机程序 1 程序是计算机可以识别和执行的一组指令 2 计算机的所有操作都由程序控制二、 计算机语言 1 定义了人与计算机交换信息,解决语言问题。有必要创造一种计算机和人类都能识别的语言,这就是计算机语言。 2 发展阶段计算机语言经历了几个发展阶段:(1)机器语言(2)符号语言(3)高级语言三、C语言发展及其特点) 1 概述(1)C 语言是世界上广为流行的高级计算机语言。(2)C 语言的祖先是BCPL 语言。2 原始C 语言的开发只为描述和实现UNIX操作系统的语言,后来逐渐发展成为高级编程语言,

4、目前C语言的标准是C99,1999年修订。 3特点(1)语言简洁紧凑,使用方便灵活(2)操作符丰富(3)数据类型丰富(4)有结构化控制语句(5)语法限制不太严格,程序设计自由度大(6)@ > C语言允许直接访问物理地址(7)C语言编写的程序具有很好的可移植性(8)生成的目标代码质量高,程序执行效率高四、简单的C语言程序( 1)一个程序由一个或多个源程序文件组成,一个源程序文件可以包括3部分: 预处理指令全局声明函数定义(2)函数是C程序的主要组成部分。函数是C程序的基本单元。一个C语言程序由一个或多个函数组成

5、 数字,只有一个主函数。一个小程序只包含一个源程序文件。函数可以是库函数或用户定义的函数。 (3)函数函数头的两部分函数头包括函数名、函数类型、函数属性、函数形参(形参)名称、参数类型。函数体是下面大括号内的部分函数头。函数体一般由两部分组成:声明部分和执行部分。(4)程序总是从主函数开始执行(5)计算机在程序由函数中的C语句完成(6)@>每个数据声明和语句的末尾必须有分号(7)C语言本身不提供输入和输出语句(8)程序应该包含注释3.2@>运行C程序的步骤和方法

3.3@>C程序的运行步骤如图1-1所示。实线表示操作过程,虚线表示文件的输入和输出。图 1-1 C 程序运行步骤图 3.4@> 编程编程任务是指从确定任务到得到结果和编写文档的整个过程。从确定问题到完成任务,一般要经过以下几个工作阶段: 1 问题分析 2 设计算法 3 程序编写 4 编辑、编译并链接源程序,得到可执行程序 5 运行程序并分析结果6 编写程序文档1.2 课后问题详解 1 什么是程序?什么是编程?答:程序是计算机可以识别和执行的一组指令。编程是为解决特定问题而给出程序的过程,是软件构建活动的重要组成部分。编程经常使用编程语言作为工具

3.6@>,用这种语言写一个程序。程序设计过程应包括分析、设计、编码、测试和调试等不同阶段。 2 为什么需要计算机语言?高级语言的特点是什么?答:人与计算机交换信息,必须解决语言问题。因此,有必要创造一种计算机和人类都能识别的语言,从而产生了计算机语言。高级语言的特点:(1)功能强大,不依赖特定机器,编写的程序适用于任何类型的计算机(或只需要少量修改)。(2)计算机也不能直接识别高级语言程序,也需要“翻译”,一个叫做编译程序的程序,就是用来将高级语言编写的程序(称为源程序)转换成机器指令的程序(称为目标程序,对象prog

3.9@>ram),然后让计算机执行机器指令程序,最后得到结果。高级语言中的一条语句通常对应多条机器指令。 3 正确理解下列术语及其含义:(1)源程序目标程序可执行程序(2)程序编辑器程序编译程序链接(3)程序程序模块程序文件(4)@ >该函数的主要函数称为函数库函数(5)程序调试程序测试答案:(1)源程序是指未编译的,按照一定的编程语言规范编写的,人类可读的)文本文件。通常用高级语言编写。源程序可以是书籍或磁带或其他载体的形式,但最常用的格式是文本文件,通常用于编译计算机可执行程序。程序也称为“目标程序”,是可以直接编译的源程序

9、计算机运行的机器代码集合,计算机文件上扩展名为.obj,源程序由语言处理程序(汇编、编译、解释)处理。解释)转化为由计算机直接运行的机器码组成的等价程序,称为目标程序。可执行程序(executable program,EXE File)是指可以在操作系统存储空间中浮动的可执行程序。在 MS-DOS 和 MS-WINDOWS 下,此类文件具有 .exe 扩展名。 ( 2) 程序编辑是指完成一项工作所需要的步骤,即一种算法,按照一定的程序结构,翻译成计算机能识别的语言,并能被计算机执行的过程。 .程序编译是指用户

10、使用编译器编译自己编译的源程序的过程。程序链接是指将编译后得到的所有目标模块链接组装起来,再与函数库链接为一个整体的过程。 (3) 程序是完成某项活动的规定方法。程序模块是一类独立的、可识别的程序指令,可由汇编器、编译器、加载器或翻译器作为一个整体来处理。程序文件是用于描述程序的文件,里面存放程序,包括源程序和可执行程序。(4)函数是指完成某个功能的一段代码;main函数是指主函数,主函数它在C程序中是必不可少的,程序从这里开始运行。被调用函数是指从某个地方调用的函数,C程序是通过函数调用方式运行的,库函数是预编好的。

一些功能

11、完成具体功能,如编译器提供的库函数:数学运算、输出相关、文件操作等。库函数一般是指编译器提供的可以在C源程​​序中调用的函数。可以分为两类,一类是C语言标准规定的库函数,一类是编译器专用的库函数。 ( 5) 程序调试是在将编译后的程序投入实际运行之前,对编译后的程序进行手工测试或编译程序纠正语法错误和逻辑错误的过程。这对于保证计算机信息系统的正确性至关重要。程序测试(program testing)是指在正式使用之前,对已经完成其全部或部分功能和模块的计算机程序进行测试,以确保程序能够以预定的方式正确运行。4 自学书附录A ,熟悉在电脑上运行C程序的方法

12、,在电脑上运行本章的3个例子。答:稍微。 5 请参考本章中的例子,编写一个C程序,输出如下信息: * 很好! * 答:程序如下: 6 编写一个C程序,输入a、b、c三个值,输出其中最大的一个。答:运行结果:请输入a,b,c:23,45,39 最大数为:45 7.在电脑上运行以下程序,注意注解的方法。分析运行结果,掌握注解的用法。 ( 1) ( 2)将第 4 行改为 printf(How do you do!n); /*这是块注释*/ ( 3)将第 4 行改为以下两行 printf (你好吗!n);/

13、*这是一个块注释。如果这一行写不完,可以在下一行继续写。这部分都不产生目标代码*/ ( 4)将第 4 行更改为 #include int main() printf(*nn); printf(Very good!nn); printf(*n); return 0 ; #include int main() printf(How do you do!n); /这是一行注释,注释范围从/开始到换行符 return 0; #include int main() int a,b,c,max; printf(请输入a,b,c:n); scanf(%d,%d,%d,&a,&b,&c);

14、 最大=a;如果(最大 b) 最大 = b;如果(最大c)最大=c; printf(最小数为:%dn,max);返回0; /printf(你好吗!n); ( 5)将第 4 行更改为 printf(/How do you do!n); / 将 / 添加到输出字符串 ( 6)@>使用块注释 所有行语句都用作注释。答案:请运行电脑上程序,注意观察结果算法是程序设计的灵魂,结果如下:(1)输出:How do you do!/ 后面跟着评论,这部分内容不参与编译并且不影响运行结果。( 2) 输出:How do you do! /* 和 */ 是注释,

15、这部分内容不参与编译,不影响运行结果。 (3) 输出:你好!程序运行结果显示:从上一行的/*到下一行的*/是注释,块注释不受一行范围的限制,可以跨越行。这部分内容不参与编译,不影响运行结果。( 4) 程序运行时没有输出,因为它后面的/用作注释,所以程序编译时没有包含printf函数,所以没有输出。( 5) 输出:/你怎么办!双撇号之间的/不是注释标记,所以是原样输出. ( 6)@> 没有输出。因为所有的语句都被当作注释,不参与编译,所以程序相当于:#include int main() /*printf(你是怎么做的

13.3@>!n); return 0;*/ Chapter 2 The Soul of Algorithmic Programs2.1 复习笔记一、一个程序的概览主要包括以下两个方面的信息:(1)数据描述,即即,数据结构。(2)运算的描述,即算法。二、算法概述1 算法定义广义上讲,就是解决一个问题所采取的方法和步骤,称为“算法”。 2 算法分类 ( 1) 数值运算算法,数值运算的目的是求数值解。 ( 2)非数值运算算法。 3. 算法的特点 1 有限性 一个算法应该包含有限的运算步骤, 不是无限的。2 确定性算法中的每一步都应该是确定性的,而不是

13.6@>含糊,模棱两可。 3 有零个或多个输入 输入是指执行算法时需要从外界获取的必要信息。 4 有一个或多个输出 算法的目的是求解,“求解”指的是输出。 5 效率 算法中的每一步都应该能够被有效地执行并得到确定性的结果。四、如何表示算法 1、用自然语言表示算法 自然语言是指人们日常使用的语言。 2 用流程图表示算法(1)概述美国国家标准协会ANSI规定了一些常用的流程图符号(如图2-1所示),已被全世界程序员广泛使用。 图2-1常用流程图符号(2)流程图元素菱形框菱形框的作用是

13.9@> 判断给定条件,根据给定条件是否为真,决定后续操作如何进行。它有一个入口和两个出口,如图 2-2 所示。图 2-2 菱形框 连接点 连接点(小圆圈)用于连接不同地方绘制的流线,如图 2-3 所示。图2-3 连接点注释框 注释框不是流程图的必要部分,不反映流程和操作,只是对流程图中部分框的操作提供必要的补充说明,以帮助看流程图的人更了解流程图的作用。 ( 3) 流程图由代表相应操作的方框组成;带箭头的流线;方框内外必要的文字说明。 3 三种基本结构和改进的流程图( 1)传统流程图的缺点 传统的流程图使用流线表示每个块的执行顺序,流线的使用不严格

19、 网格限制。 ( 2)三种基本结构 序列结构如图2-4所示,虚线框为序列结构。A、B框依次执行。序列结构是最简单的基本结构图2-4顺序结构选择结构选择结构也叫选择结构或分支结构,如图2-5所示,虚线框里面是选择结构,里面必须包含一个判断框,根据给定的条件P选择执行帧A图2-5 选择结构 循环结构也称为重复结构,即重复执行某个部分的操作,循环结构有两种,如图图 2-6. 图 2-6 循环结构(3)三种结构的共同特点是只有一个入口;只有一个出口;结构中的每个部分都有执行的机会;结构内部

20、没有“死循环”。基本结构不一定限于以上三种,只要具备以上四种特点,都可以作为基本结构。图 2-7 展示了经典的 do while 循环结构,图 2-8 展示了经典的 switch 选择结构。图 2-7 do while 循环结构 更多各种考试资料 v: 344647 公众号:顺通考试资料 图2-8 开关选择结构 4 算法用N-S流程图表示(1)在此流程图中概述完全去掉了带箭头的流线。所有算法都写在一个矩形框里,也可以包含其他下级框,也可以是一些基本框组成的大框。流程图也叫N-S结构化流程图。(2) N-S

21、 流程图符号序列结构 序列结构用图2-9 的形式表示。两个框 A 和 B 形成一个顺序结构。图 2-9 序列结构 选择结构 选择结构如图 2-10 所示,其中 p 为判断条件。图 2-10 选择结构 循环结构 当循环结构用图 2-11 的形式表示时,当 p1 条件成立时,重复执行 A 操作,直到 p1 条件不成立。图 2-11 When 型循环结构 until 型循环结构用图 2-12 的形式表示。先执行A操作,再判断p1条件是否成立。如果p1成立,则重复执行A,只有在p1条件不成立时才停止循环。图 2-12 until 型循环结构 5 用伪代码表示算法(1)概述伪代码用于自然语言和计算机语言之间

中间的文字和符号

22、 描述算法。 (2)特点:伪代码编写格式比较自由,容易表达设计者的想法;用伪代码编写的算法容易修改;用伪代码编写结构化算法容易。6表达计算机语言算法 用流程图或伪代码描述算法后,必须转换成计算机语言程序。 5. 结构化程序设计方法一 基本思想 结构化程序设计方法的基本思想是分阶段进行复杂问题的求解过程,每个阶段处理的问题都控制在范围内2 结构化编程方法(1)自顶向下(2)逐步细化(3)模块化设计(4)结构化编码)

23、 2.2 课后习题详解 1 什么是算法?尝试从日常生活中找到 3 个示例并描述它们的算法。答:解决问题所采取的方法和步骤称为“算法”。例1、上海到北京:先订票,再到车站坐车,到达目的地后下车;例2、喝茶:先准备好茶,然后烧开一壶开水,然后将茶倒入杯中,倒入开水,待茶冲泡好;例3、开车:先打开车门,司机坐下,插入车钥匙,发动汽车。 2 什么是结构化算法?为什么提倡结构化算法?答:结构化算法由一些基本的结构顺序组成。基本结构之间没有前向或后向跳跃,流量的转移只存在于一个基本结构的范围内。非结构化算法可以使用等。

24、化合价的结构化算法替换 ,其功能不变。与结构化算法相比,非结构化算法有以下缺点:流程可以不受限制地翻转,使流程图变得不规则,让人阅读时难以理解算法的逻辑,阅读和修改困难,从而难以保证算法的可靠性和可维护性。 3 描述三个基本结构的特点,并请设计另外两个基本结构(以符合基本结构的特点)。答:3个基本结构的特点:只有一个入口。只有一个出口。结构的每个部分都有机会被执行。也就是说,对于每个盒子,应该有一条从入口到出口的路径。结构中没有“死循环”。其他两个基本结构如图 2-13 所示。图2-13 其他两个基本结构用于4

25、传统流程图表示用于解决以下问题的算法。 (1)有A瓶和B瓶两瓶,分别装醋和酱油,需要互换(即A瓶以前装醋,现在装酱油,B瓶相反)答:很明显,如果只有两个瓶子,这个任务是无法完成的,必须有一个空瓶子C作为过渡,A瓶和B瓶的交换流程图如图2-14所示. 2)依次输入10个数,要求输出最大的数 答:求解10个数中最大数的流程图如图2-15所示 图2-15 求解10个数中最大的数numbers(3)有a,b,c 3个数,要求按数量级输出。答:输出3个数的流程图如图2所示

23.3@>-16。图 2-16 3 位数输出流程图(4) 求 1 2 3 100 答案:图 2-17 求 1 2 3 100 流程图。图 2-17 1 到 100 累加( 5)判断一个数n是否可以同时被3和5整除 答:判断一个数n是否可以同时被3和5整除的流程图如图2-18所示。图 2- 18 判断一个数是否能被 3 和 5 整除的两个流程图(6)@> 输出 100 到 200 之间的素数。答:输出 100 到 200 之间的素数的流程图如图所示图 2-19. 图 2-19 查找 100 到 200 之间的素数的流程图(7

23.6@>) 求两个数 m 和 n 的最大公约数。答:求两个数 m 和 n 的最大公约数的流程图如图 2-20 所示。图 2-20 求两个数的最大公约数的流程图(8)求方程 ax2 bx c 0 的根。分别考虑:有两个不等的实根;有两个相等的实根。答案:方程ax2 bx c 0求根流程图如图2-21所示 图2-21 单变量二次方程求根流程图@1) A瓶和B瓶如图2-22所示 图2-22 A瓶和B瓶交换的N-S流程图(2)求解10个数中最大的数N-S

23.9@>流程图如图2-23所示。图 2-23 求解 10 个数中最大数的 N-S 流程图(3) 输出 3 个数的 N-S 流程图如图 2-24 所示。 图 2-24 输出 3 个数的 N-S 流程图图 ( 4) 求 1 2 3 100 的 N-S 流程图如图 2-25 所示。 图 2-25 求 1 2 3 100 的 N-S 流程图 ( 5) 判断一个数 n可以同时被 3 和 5 整除的 N-S 流程图如图 2-26 所示 图 2-26 判断一个数 n 是否可以同时被 3 和 5 整除的 N-S 流程图(6)输出100到200之间的素数个数,流程图如图2-27所示。 图

29、 2-27 输出100到200之间素数的N-S流程图(7)求两个数m和n的最大公约数的流程图如图2所示-28. 图2-28 2-28求两个数m和n的最大公约数的N-S流程图(8)求方程ax2 bx c 0的根流程图如图2-29. 图 2-29 求一元二次方程 Root N-S 流程图 6 用伪代码表示问题 4 中每道题的算法 答案:( 1) 瓶子 A 和瓶子互换的伪代码B 为: c=a a=b b=c ( 2) 求10个数中最大数的伪代码为: ( 3) 输出3个数大小的伪代码为: ( 4) 求 1 2 3 100 的伪代码为:

30、input a,b,c if ab then swap a,b if ab then print a,c,b else print a,b,c end if end if n=1 input max while nmax then max=a n=n+1 end do print max ( 5) 判断一个数 n 是否可以同时被 3 和 5 整除的伪代码为: ( 6)@> 输出素数的伪代码100 到 200 之间的数字是: : ( 7) 求两个数 m 和 n 的最大公约数的伪代码是: ( 8) 求等式 ax2 bx c 0 的根的伪代码是:n=100 while n=200 do i= 2 while i=s

31、qrt(n) if mod(n,i)=0 then i=n else i=i+1 end if end do if isqrt(n) then print n n=m+1 end do input m,n if mn then swap m,n t=mod(m,n) while r0 do m=n n=r r=mod(m,n) end do print n input n flag=0 if mod(n,3)0 then flag=-1 if mod(n,5)0 then flag=-1 if flag=0 then print n 可以被 3 和 5 整除,否则 print n 不能被 3 整除

32、 and 5 除法结束 if sum=0 n=1 while n=0 then if disc=0 then x1,x2=-b/(2a) else x1=(-b+sqrt(disc )/(2a) x2=(-b-sqrt(disc)/(2a) end if print x1,x2 else p=-b/(2a) q= sqrt(disc)/(2a) print p+q,+ ,i end if 图 2-31 ax2 bx c 0 ( 3) 输入 10 个数,输出最大的一个的流程图。答案:先画图 2-32(a),考虑我没有’还没学过数组的知识,所以不能把10个数字全部输入数组

33、 个元素,然后找到其中最大的一个。由于没有使用数组的数据结构,所以算法应该与使用数组时不同。现在只用普通变量将数据一一读入,将当时最大的数保留并存入max,方便以后使用。比较读入的数字。将图 2-32(a) 细化为图 2-32(b),然后细化为图 2-32(c)。图2-32 输入10个数的最大数求解流程图第3章最简单的C编程序列编程3.1复习笔记1.数据表示及其操作1常量和变量(1)常量被调用程序运行过程中值不能改变的常量。数值常量是数学中的常量,常用的常量包括以下几类:整数常量;实常量

34、,包括十进制形式和指数形式;字符常量,包括普通字符和转义字符,常见的转义字符有换行符n和制表符t;字符串常量,字符串常量是双撇号内的所有字符;符号常量,使用#define 指令,指定一个符号名称来表示一个常量。 ( 2) Variables 变量代表一个命名的存储单元,具有特定的属性。变量必须先定义后使用。( 3) 常量变量 常量变量是命名不变量,在变量中使用它的值不能(4)标识符是在高级计算机语言中定义的。用于命名变量、符号常量、函数、数组、类型等的有效字符序列统称为标识符。组合规则a C语言规定标识符只能由

35、由3个字符组成:字母、数字和下划线,第一个字符必须是字母或下划线。 b 编译系统将大写和小写字母视为两个不同的字符。 2 数据类型 C 语言允许的类型,如图3-1 所示,带* 的是C99 新增的。图3-1 数据类型分类 3 整数数据 整数数据的常用存储空间和取值范围如表3-1所示。表 3-1 整数数据常用存储空间及取值范围 4 字符数据 ( 1) 字符和字符代码 带字符代码 字母大写英文字母 A Z,小写英文字母 a z 数字 0 9 特殊符号 (29) !# & ( )

33.3@>* + , – . / : ; ? _ |空格、水平制表符 (t a b )、垂直制表符、换行、换页 (f 或 m f eed ) 无法显示的字符 null (n ul l ) 字符(由 0 表示)、警告(由 a 表示)、退格(由 b 表示) , 回车(用 r 表示)等。字符 char 定义了一个字符变量。字符类型也属于整数类型算法是程序设计的灵魂,也可以使用有符号和无符号修饰符。字符数据的存储空间和取值范围如表 3-3 所示。 Table 3-3 The storage space and value of the character data Value range 5 Floating point data The relevant situation of floating point data is shown in Table 3-4

33.6@>Show. Table 3-4 Relevant situations of floating-point data 6 How to determine the type of the constant The type of the constant can be determined from the representation of the constant. For character constants it’s simple, as long as you see a single character or escape character enclosed by single apostrophes is a character constant. For numeric constants, the following rules apply: ( 1)Integer constants without decimal point are integer constants, but their valid range should be noted. ( 2)Floating-point constants in decimal form or exponential form The real numbers that appear are floating-point constants and are stored in the form of exponents in memory. 7 Operators and Expressions ( 1) Basic Arithmetic Operators The most commonly used arithmetic operators are shown in Table 3-5. Table 3 -5 The most commonly used arithmetic operators (2) increment and decrement operators +i, -i: add (subtract) 1 to the value of i before using i; i+, i-: in

33.9@>After using i, add (subtract) 1 to the value of i. (3) Mixed operation between different types of data If int type, float and double type data are operated, all are converted into double type; the operation between character (char) type data and integer type data is to convert the ASCII code of the character Operates on integer data. ( 4)A type conversion performed automatically by the cast operator system; type cast. ( 5) C Operators In addition to arithmetic operators, C provides other operators , there are the following categories: Arithmetic operators ( + – * / % + – ) Relational operators ( == != ) Logical operators ( ! & | ) Bit operators ( | & ) Assignment operators ( = and its extension assignment

39、Value operator) Conditional operator (?:) Comma operator ( ,) Pointer operator (* and &) Byte count operator ( sizeof) Cast operator (type ) Member operator ( . -) Subscript operator ( ) Others (such as function call operator () 2. C statement 1 Structure and classification of C statement ( 1) C program structure can be represented by Figure 3-2 . Figure 3-2 C program structure ( 2) C statements are divided into the following 5 categories: Control statements Control statements are used to complete certain control functions. There are only 9 types of control statements in C, and their forms are: a if() else (conditional statement) b for() (looping statement) c while() (looping statement) d dowhile () (looping statement

40、 statement) e continue (end the current loop statement) f break (stop the execution of switch or loop statement) g switch (multi-branch selection statement) h return (return statement from function) i goto (turn to statement, basically no goto statement is used in structured programs) Function call statement A function call statement consists of a function call plus a semicolon. Expression Statements An expression statement consists of an expression followed by a semicolon. Empty Statement Compound Statement 2 The most basic statement Assignment statement ( 1) Assignment operator The assignment symbol “=” refers to the assignment operator, and its role is to assign a data to a variable. ( 2) Compound The assignment operators are related to arithmetic operations. The compound assignment operators are +=, -=, *=, /=,

41、%=. (3) Assignment expression The left side of the assignment operator should be a modifiable “left value” (leftvalue, abbreviated as lvalue), and the expression that can appear on the right side of the assignment operator is called “rvalue” ( rightvalue, abbreviated as rvalue). (4) Type conversion during assignment If the types on both sides of the assignment operator are inconsistent, but they are both arithmetic types, type conversion is required during assignment. ( 5) The initial value of the variable can be assigned by the assignment statement, or the variable can be assigned the initial value when the variable is defined. The input and output of the main computer is shown in Figure 3-3. Figure 3-3 The input and output of the computer ( 2)

42、The input and output operations are implemented by the functions in the C standard function library ( 3) When using the system library functions, use the preprocessing directive #include at the beginning of the program file 2 Use the printf function to output data ( 1) The general format of the printf function The general format of the printf function is: printf (format control, output table column); The parentheses include two parts: Format control a format declaration The format declaration is always defined by “%” character starts. b Ordinary character output table column Output table column is some data that the program needs to output, which can be constants, variables or expressions. (2) The format characters need to specify different types of data. Format declaration, and the most important content in the format declaration is the format character, the commonly used ones are shown in Table 3-6. Table 3-6

43、 Format characters used in printf function In the format declaration, several additional symbols (also called modifiers) listed in Table 3-7 can be inserted between % and the above format characters. Table 3-7 Additional format characters used in the printf function [Description] Additional format characters such as “printf(%5.2f,f);” means that the output f is floating-point data, and two of them should be reserved. decimal places, with a total width of 5. 3 Input data with scanf function ( 1) The general form of scanf function is scanf(format control, address table column); the meaning of “format control” is the same as that of printf function. “Address table column” is a table composed of several addresses Column, which can be the address of a variable, or the first address of a string. (2)

in the scanf function

44、Format declaration Similar to the format declaration in the printf function, it starts with % and ends with a format character, and additional characters can be inserted in between. Table 3-8 and Table 3-9 list the format and additional characters used by the scanf function. They are used in much the same way as in the printf function. Table 3-8 Format characters used in scanf function Table 3-9 Format characters used in scanf function The variable address, not the variable name. If there are other characters besides the format declaration in the “format control string”, you should enter the same characters as these characters in the corresponding position when entering the data. When using ” %c “

45、 format declares that when entering characters, both the space character and the characters in “escape characters” are entered as valid characters. 4 字符数据的输入输出 除了可以用 printf 函数和 scanf 函数输出和输入字符外, C 函数库还提供了一些专门用于输入和输出字符的函数。 ( 1) 用 putchar 函数输出一个字符 putchar(c); ( 2) 用 getchar 函数输入一个字符 getchar(); 3.2 课后习题详解 1 假如我国国民生产总值的年增长率为 10%,计算 10 年后我国国民生产总值与现在相比增长多少百分比。计算 公式为 p( 1 r) n r 为年增长率, n 为年数, p 为与现在相比的倍数 。 答:

43.3@>运行结果: p=2.593742 2 存款利息的计算。有 1000 元,想存 5 年,可按以下 5 种办法存: ( 1) 一次存 5 年期。 ( 2) 先存 2 年期,到期后将本息再存 3 年期。 ( 3) 先存 3 年期,到期后将本息再存 2 年期。 ( 4) 存 1 年期,到期后将本息再存 1 年期,连续存 5 次。 ( 5) 存活期存款。活期利息 每一季度结算一次。 2007 年 12 月的银行存款利息如下: 1 年期定期存款利息为 4.14%; 2 年期定期存款利息为 4.68%; 3 年期定期存款利息为 5.4%; 5 年期定期存款利息为 5.85%; 活期存款利息为 0.72%(

43.6@>活期存款每一季度结算一次利息 ) 。 如果 r 为年利率, n 为存款年数,则计算本息和的公式为 1 年期本息和: p 1000*( 1 r) ; n 年期本息和: p 1000*( 1 n*r) ; 存 n 次 1 年期的本息和: p 1000*( 1 r) n; 活期存款本息和: p 1000*( 1 r/4) 4n。 #include #include int main() float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf(p=%fn,p);返回0;说明: 1000*( 1 r/4) 是一个季度的本息和。 答: 设 5 年期存款的

43.9@>年利率为 r5, 3 年期存款的年 利率为 r3, 2 年期存款的年利率为 r2, 1 年期存款的年利率为 r1,活期存款的年利率为 r0。 设按第 1 种方案存款 5 年得到的本息和为 p1,按第 2 种方案存款 5 年得到的本息和为 p2,按第 3 种方案存款 5 年得到的本息和为 p3,按第 4 种方案存款 5 年得到的本息和为 p4,按第 5 种方案存款 5 年得到的本息和为p5。 程序如下: 运行结果: p1=1292.500000 p2=1270.763184 p3=1270.763184 p4=1224.864014 p5=1036.622314 3购房从银行贷了一笔款 d,准备

49、每月还款额为 P,月利率为 r,计算多少月能还清。设 d 为 300000 元, P为 6000 元, r 为 1%。对求得的月份取小数点后一位,对第 2 位按四舍五入处理。 提示:计算还清月数 m 的公式如下 l o g l o g ( )l o g (1 )p p d rm r 可以将公式改写为 lo glo g (1 )pp d rmr #include #include int main() float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.007

50、2; p1=p*(1+r5*5); /一次存 5 年期 p2=p*(1+2*r2)*(1+3*r3); /先存 2 年期,到期后将本息再存 3 年期 p3=p*(1+3*r3)*(1+2*r2); /先存 3 年期,到期后将本息再存 2 年期 p4= p*pow(1+r1,5); /存一年期,到期后将本息再存一年期,连续存 5 次 p5= p*pow(1+r0/4,4*5); /存活期存款,活期利息每一季度结 算一次 printf(p1=%fn,p1); /输出按第 1 种方案得到的本息和 printf(p2=%fn,p2); /输出按第 2 种方案得到的本息和 printf(p3=%fn,p

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论