下载地址:点我 C语言仍然是计算机领域的通用语言之一,但现在的C语言已经和当初的时候大不相同了.本书主要的一个目的就是通过一种“现代方法”来介绍C语言,书中强调标准C,强调软件工程,不再强调“手工优化”.这一版中紧密结合了C99标准,并与C89标准进行对照,补充了C99中的**新特性.本书分为C语言的基础特性.C语言的特性.C语言标准库和参考资料4个部分.每章末尾都有一个“问与答”小节给出一系列与该章内容相关的问题及答案,此外还包含适量的习题.  本书是为大学本科阶段的C语言课程编写的教材,同时…
第一章 C语言概述 1.C语言的历史(1.1) 起源:贝尔实验室开发的UNIX操作系统的副产品.标准化:C89和C99.基于C的语言:C++,Java,C#,Perl. 2.C语言的优缺点(1.2) 优点:高效.可移植.功能强大.灵活.标准库.与UNIX和Linux集成:缺点:C程序更容易隐藏错误.C程序可能难以理解.C程序可能会难以修改. 高效使用C的方法 1.学习如何规避C语言的缺陷(C陷阱与缺陷):2.使用软件工具使程序更加可靠(lint工具和调试工具): 3.利用现有的代码库:4.采用一…
第六章 方法 6.2 定义方法 1.方法的定义由方法名称.参数.返回值类型以及方法体组成. 2.定义在方法头中的变量称为形式参数(formal parameter)或者简称为形参(parameter).参数就像占位符.当调用方法时,就给参数传递一个值,这个值称为实际参数(actual parameter)或实参(argument).参数列表(parameter list)指明方法中参数的类型.顺序和个数.方法名和参数列表一起构成方法签名(method signature).参数是可选的,也就是说…
C语言支持两种不同的数值类型,整数类型,浮点类型. C语言的整数类型有不同的尺寸.int类型通常为32位,但在老的CPU上可能是16位.有些可能是64位. 因此,int型如果在16位CPU上最大值就是:0111111111111111   对应值是32768(2^15-1). 在32位CPU上当然就是:01111111111111111111111111111111   对应值是2147 483 647(2^31-1). 同理64位上………… 32位上int型与long类型的最大值相等 但是16…
C语言的一个特点就是它更多地强调表达式而不是语句,表达式是表示如何计算值的公式. 当表达式包含两个或更多个相同优先级的运算符时,运算符的结合性(associativity)开始发挥作用.如果运算符是从左向右结合的,称这种运算符是左结合的(left associative):如果运算符是从右向左结合的,那么称这种运算符是右结合的(right associative). 程序:计算通用产品代码的校验位 美国和加拿大的货物生产商都会在超市销售的每件商品上放置一个条形码,称为通用产品代码(Univers…
完整的细节将留到第22章中介绍. 调用printf函数一次可以打印的值的个数没有限制. 注意:C语言编译器不会检查格式串中转换说明的数量是否和输出项的数量相互匹配,也不会检查转换说明是否适合要显示项的数据类型. 转义序列 警报(响铃)符 :\a 回退符:\b 换行符:\n 水平制表符:\t 像printf函数一样,scanf函数也有一些不易察觉的陷阱.使用scanf函数时,程序员必须检查转换说明的数量是否与输入变量的数量匹配,并且检查每个转换是否适合相应的变量. scanf函数本质上是一种“模式…
1:浮点型(float)运算比int慢,并且可能存在舍入误差 如float存储0.1,以后使用可能会变成0.099999999987 2:宏定义只用大写,这是大多数C程序猿遵循的规范! C语言区分大小写,,基本遵循在标识符中只使用小写字母的规范 如:symbolTable,currentPage表示,有时也可这样SymbolTable, CurrentPage 3:GCC有多个命令行选项来控制程序检查的彻底程度 -Wall    使编译器在检查到可能的错误时生成警告消息.与-o结合使用 -W  …
1 编写一个程序,要求用户输入一个两位数,然后按数位的逆序打印出这个数. 方法一:没技术含量的 #include <stdio.h> int main() { int high, low; scanf("%1d%1d", &high, &low); printf("%d%d", low, high); ; } 方法二:通过整除和取余实现 #include <stdio.h> int main() { int n; scanf(…
C语言的基本概念 第一个C程序例子. /* pun.c */ #include <stdio.h> int main(void) { printf("To C, or not to C: that is the question.\n"); ; } 其中,main函数的参数列表完整形式可以写成: int main(int argc, char *argv[]) { //用户代码 } 编译和链接(更多资料建议查阅GCC文档) 预处理:首先程序会被送交给预处理器(preproc…
C语言的特点:C语言是一种底层语言.C语言是一种小型语言.C语言是一种包容性语言. C语言的优点:高效.可移植.功能强大.灵活.标准库.与UNIX系统集成. C语言的缺点:C程序更容易隐藏错误.C程序可能会难以理解.C程序可能难以修改. 如何高效地使用C语言? ①学习如何规避C语言的缺陷.可参考<C陷阱与缺陷> ②使用软件工具使程序更可靠. ③利用现有代码库. ④采用一套切合实际的编码规范. ⑤避免“投机取巧”和极度复杂的代码. ⑥紧贴标准.…
7 编写一个程序,要求用户输入一个美金数量,然后显示出如何使用最少的20美元.10美元.5美元和1美元来付款. 提示:将付款金额除以20,确定20美元的数量,然后从付款金额中减去20美元的总金额.对其他面值的钞票重复这一操作.确保在程序中始终使用整数值,不要用浮点数. #include <stdio.h> int main(void) { int amount; printf("Enter a dollar amount: "); scanf("%d",…
第十三章 字符串 1.字符串字面量(13.1) 字符串字面量:用一对双引号括起来的字符序列.字符串字面量可以像字符常量一样包含转义字序列. 在字符串字面量中小心使用八进制和十六进制的转义序列. 字符串字面量太长而无法放置在单独一行以内,要把第一行用字符\结尾.字符\可以用来把两行或更多行的代码连接成一行. 本质上,C语言把字符串字面量作为字符数组来处理. 2.字符串变量(13.2) 用一个变量来存储最多有80个字符的字符串 #define STR_LEN 80 ... ] 声明用于存放字符串的字…
第七章 一维数组 7.2 数组的基础知识 1.一旦数组被创建,它的大小是固定的.使用一个数组引用变量,通过下标来访问数组中的元素. 2.数组是用来存储数据的集合,但是,通常我们会发现把数组看作一个存储具有相同类型的变量集合会更有用. 7.2.1 声明数组变量 1.为了在程序中使用数组,必须声明一个引用数组的变量,并指明数组的元素类型 语法:elementType[] arrayRefVar;(数据类型[] 数组引用变量) 2.elementType可以是任意数据类型,但是数组中所有的元素都必须具…
第四章 数学函数.字符和字符串 4.2 常用数学函数 方法分三类:三角函数方法(trigonometric method).指数函数方法(exponent method)和服务方法(service method) 4.4 String类型 String类型不是基本类型,而是引用类型(reference type). 4.5.3 使用字符串修改彩票程序 package com.chapter4; import java.util.Scanner; public class LotteryUsing…
C语言不要求检查下标的范围.当下标超出范围时,程序可能会执行不可预知的行为. 看下这个程序: #include <stdio.h> #define N 10 // int main() { int a[N],i; printf("Enter %d numbers: ",N); ; i<N; i++) scanf("%d",&a[i]); printf("In reverse order:"); ; i>=; i--…
第五章 循环 5.2 while循环 1.while循环的语法如下: while(循环继续条件){ //循环体 语句(组); } 2.程序:提示用户为两个个位数相加的问题给出答案 package com.chapter5; import java.util.Scanner; public class RepeatAdditionQuiz { /** * 提示用户为两个个位数相加的问题给出答案 */ public static void main(String[] args) { int numb…
第三章 选择 3.8 计算身体质量指数 package com.chapter3; import java.util.Scanner; public class ComputeAndInterpretBMI { /** *计算身体质量指数 *BMI *BMI<18.5 偏瘦 *18.5<=BMI<25.0 正常 *25.0<=BMI<30.0 超重 *30.<=BMI 过胖 */ public static void main(String[] args) { Scan…
#7.2.1_定义类 一个类的功能:数据域.定义方法.初始化程序 初始化程序总是被命名为:_ _init_ _ (两个连续的下划线) #7.2.4_self参数 #self参数是指向对象本身的参数,那么它的作用域就是整个类,self.x可以直接访问实例变量x,self.ml()表示调用类的对象self的示例方法ml. #7.2.5_举例:使用类 #7.4_不可变对象和可变对象 #7.5 #__radius是一个私有数据域,但是__radius__并不是私有数据域 #7.6…
第四章 # 4.1 引言 布尔表达式:选择语句选择的条件. 程序: import math #加载math模块radius=eval(input("Enter an integer:")) #输入一个数if radius < 0: #设置if语句,如果这个数<0 print("Incorrect input") #显示输入错误else: #不然呢,即是输入值大于等于0 area=radius*radius*math.pi #面积计算 print(&quo…
3.2_常见的Python函数 (1) abs()函数 求绝对值 (2) max(x1,x2,x3,....)求最大值 (3) min(x1,x2,x3,....)求最小值 (4) pow 返回a的b次方,类似a**b (5) round(x) 返回最接近x的整数,如果x与两个整数接近程度相同,则返回偶数值 (6) round(x,n) 保留小数点后的n位浮点数(其实就是保留小数点后的n位数) 数学函数里面的函数: (1)  fabs(x) 将x看作一个浮点数,返回它的绝对值 (2)  ceil…
# 6.1_引言 程序1: 结果: Sum from 1 to 10 is 55Sum from 20 to 38 is 513Sum from 35 to 50 is 630 程序2: #程序1和2表达的意思是一样的,得到的结果也是一样的. # 6.2_定义一个函数 #6.3_调用一个函数 程序清单6-1: 结果:The larger number of and 2 is 5 #6.4_带返回值或不带返回值的函数 程序清单6-2:(不带返回值的函数) 结果: Enter a score:79.…
#5.1_引言 程序1: 结果: 程序2: 结果: sum is 45 ##注意整个循环语句都要内缩进循环内部 ##ctrl+c中止一个无限循环运行 程序清单5-1: 结果: #5.2.1_实例研究:猜数字 程序清单: 结果: #5.2.2循环设置策略. 程序清单5-4: 结果: #5.2.4 根据用户确定控制循环 程序清单5-5 结果: #循环中不能用浮点数来比较相等,浮点数运算是近似的. #5.2.6_输出输入重定向 python SentinelValue.py<input.txt>ou…
<C语言程序设计>课程教学目录 不要去精确定义单个论题,应将一整套问题组织成体系.--黎曼(1826-1866)德国著名数学家 教学过程 2018年秋季学期 C语言程序设计I-第一周教学 C语言程序设计I-第三周教学 C语言程序设计I-第四周教学 C语言程序设计I-第五周教学 C语言程序设计I-第六周教学 C语言程序设计I-第七周教学 C语言程序设计I-第八周教学 C语言程序设计I-第九周教学 C语言程序设计I-第十周教学 C语言程序设计I-第十一周教学 C语言程序设计I-第十二周教学 C语言…
前言 本人在通过<C语言程序设计:现代方法(第2版)>自学C语言时,发现国内并没有该书完整的课后习题答案,所以就想把自己在学习过程中所做出的答案分享出来,以供大家参考.这些答案是本人自己解答,并参考GitHub上相关的分享和Chegg.com相关资料.因为并没有权威的答案来源,所以可能会存在错误的地方,如有错误还希望大家能够帮助指出. 第三章练习题和编程题答案 练习题 3.1节 1.下面的printf函数调用产生的输出分别是什么? (a)  printf("6d,%4d",…
前言 本人在通过<C语言程序设计:现代方法(第2版)>自学C语言时,发现国内并没有该书完整的课后习题答案,所以就想把自己在学习过程中所做出的答案分享出来,以供大家参考.这些答案是本人自己解答,并参考GitHub上相关的分享和Chegg.com相关资料.因为并没有权威的答案来源,所以可能会存在错误的地方,如有错误还希望大家能够帮助指出. 第二章练习题和编程题答案 练习题 2.2节 1.建立并运行由Kernighan和Ritchie编写的著名的“hello world”程序: 1 #include…
走进嵌入式开发的世界,企业级项目课程让你达到企业嵌入式应用开发要求.名师在线答疑,解决疑难.科学评测体系,系统评估学习.核心项目实........ 30 门课程 241小时12分钟 824 人学习 学习路径 01 C语言程序设计 01.1C语言基础 第1章 C语言概述 01.1.1.1序言 00:01:07 01.1.1.2程序.算法和流程图 00:11:40 01.1.1.3计算机语言的发展 00:08:21 01.1.1.4 C语言的起源.特点及C程序的基本结构 00:12:35 01.1.…
开始记录自己学习c语言的过程,选用的教材是浙江大学何钦铭.颜晖编写的<c语言程序设计>(第3版). 一.第一个程序 /*求阶乘问题.输入一个正整数n,输出n!*/ #include<stdio.h> int factorial(int n); //函数声明,注意不能忘记引号 int main() //主函数 { int n; scanf_s("%d", &n); printf("%d = %d\n", n, factorial(n))…
第01章 计算机.程序和Java概述 CPU(Central Processing Unit) * 中央处理器 Control Unit * 控制单元 arithmetic/logic unit /ə'rɪθmətɪk/ 算术/逻辑单元 hertz /hɝts/ 赫兹 core * 核心 bit * 位 byte * 字节 schema /'skimə/ 模式 RAM(Random-Access Memory) * 随机访问存储器 drive * 驱动器 hard disk * 硬盘 CD(co…
笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手.发生这种现象的原因有三个: 一.所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢? 二.用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识.例如,如果你不知道长方形的面积公式,即使C语言…
大家注意:本次作业稍有增加,由于放假期间大家空闲时间比较充足,将之前学习过程中遗留的问题必须在假期解决.   本次课学习主要内容: 分支结构中的二分支结构.多分支结构和else-if语句 掌握字符型数据和逻辑运算 用switch语句实现多分支结构. 嵌套的if-else语句. 简单函数认识,并自定义函数. 复习总结选择结构中存在的问题 实验内容:(60分) 1. 输入一个正整数n,再输入n个数,统计其中偶数的个数. 2. 编写程序,输入一个数,如果输入1,输出"添加学生信息",如果输入…