C语言学习笔记(C程序设计-谭浩强)

article/2025/8/20 7:31:38

入门:

  1. 计算机程序:

一组计算机能够识别和执行的指令。计算机的每一个操作都是根据指令进行的,计算机的一切操作都是由程序控制的

   计算机指令:指挥机器工作的指示和命令。

指令包含操作码操作数,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。操作要求和操作数地址都由二进制数码表示,分别称作操作码地址码,整条指令以二进制编码的形式存放在存储器中。

2、计算机语言的发展:

机器语言(0、1二进制) -->  汇编语言(又称:符号语言)(简洁的英文与字母) --> 高级语言(Java、C等编程语言)

参考链接:http://www.cnblogs.com/zzp-biog/p/9835580.html

高级语言的发展:非结构化语言(没有严格规范要求)、结构化语言(具有良好特性的基本结构)、面向对象的语言(一种对现实世界理解和抽象的方法)

  1. C语言的优缺点:

优点

1、简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对字节地址进行操作,而这三者是计算机最基本的工作单元。

2、运算符丰富

C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号赋值强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 

3、数据类型丰富

C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。

4、表达方式灵活实用

C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。 [15] 

5、允许直接访问物理地址,对硬件进行操作

由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件

6、生成目标代码质量高,程序执行效率高

C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编程序生成的目标代码效率低10%~20%。

7、可移植性好

C语言在不同机器上的C编译程序,86%的代码是公共的,所以C语言的编译程序便于移植。在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。 

8、表达力强

C语言有丰富的数据结构和运算符。包含了各种数据结构,如整型、数组类型、指针类型和联合类型等,用来实现各种数据结构的运算。C语言的运算符有34种,范围很宽,灵活使用各种运算符可以实现难度极大的运算。

C语言能直接访问硬件的物理地址,能进行位(bit)操作。兼有高级语言和低级语言的许多优点。

它既可用来编写系统软件,又可用来开发应用软件,已成为一种通用程序设计语言。

另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。 

缺点

1、 C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。

2、 C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。也就是说,对用C语言的人,要求对程序设计更熟练一些。

4、简单的C语言程序

1:C语言是一种通用的、面向过程的计算机编程设计语言。

面向过程:分析出解决问题所需的步骤,然后用函数把这写步骤实现,并按顺序调用。

 

 

5、C语言程序的结构

1、一个程序由一个或多个源程序文件组成。源程序文件包括:预处理指令(如#include<stdio.h> 等,告诉编译器,本程序包含该头文件,程序在运行的时候将要调用该库中所定义的函数)、全局声明(在函数之外进行的数据声明)、函数定义(函数是C程序的主要组成部分)、程序总是从main函数开始执行的、程序中对计算机的操作是由函数中的C语句完成的、在每个数据声明和语句的最后必须由一个分号、C语言本身不提供输入输出语句、程序应当包含注释(增加可读性)

6、运行C程序的步骤和方法

1、上机输入和编辑源程序(保存文件到指定文件夹,如不指定一般存放在当前目录下)

2、对源程序进行编译(对源程序进行检查、有错提示更正)

3、进行连接处理,生成可执行文件

4、运行可执行程序

  1. 程序设计的步骤

1、分析问题

对于接受的任务要进行认真的分析,研究所给定的条件,分析最后应达到的目标,找出解决问题的规律,选择解题的方法,完成实际问题。

2、设计算法

即设计出解题的方法和具体步骤。

3、编写程序

将算法翻译成计算机程序设计语言,对源程序进行编辑、编译和连接。

4、运行程序,分析结果

运行可执行程序,得到运行结果。能得到运行结果并不意味着程序正确,要对结果进行分析,看它是否合理。不合理要对程序进行调试,即通过上机发现和排除程序中的故障的过程。

5、编写程序文档

许多程序是提供给别人使用的,如同正式的产品应当提供产品说明书一样,正式提供给用户使用的程序,必须向用户提供程序说明书。内容应包括:程序名称、程序功能、运行环境、程序的装入和启动、需要输入的数据,以及使用注意事项等。


http://chatgpt.dhexx.cn/article/jstFmx8R.shtml

相关文章

清风数学建模笔记--熵权法

是一种可以客观赋权的方法&#xff08;我们可以从数据中查看权重&#xff09; 依据的原理&#xff1a;指标的变异程度越小&#xff0c;所反映的信息量也越少&#xff0c;其对应的权值也应该越低。 本文借鉴了数学建模清风老师的课件与视频&#xff0c;如果大家发现文章中有不正…

c语言计算文本信息熵,C语言求信息熵,条件熵,联合熵

C语言求信息熵,条件熵,联合熵 (3页) 本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01; 11.90 积分 #include#include#define u 20int i,j,n,m;float H_X,H_Y,H_XY,H_XpY,Pypx[u][u],Px[u],H_YpX,Py[u],…

谭浩强C语言笔记

文章目录 谭浩强C语言笔记1.C语言基础知识1.常量和变量1.1入门程序1.2 常量1.2.1 整型常量1.2.2 实型&#xff08;浮点型&#xff09;常量1.2.3 字符常量1.2.4 字符串常量1.2.5 符号常量 1.3 变量1.4 常变量 2.标识符和关键字2.1 标识符2.2 关键字2.3 小习题 3. 基本数据类型3.…

天池比赛总结1

这次参加天池的一场比赛 先把数据读取了如下 接下来准备使用YOLO框出图片中的字符&#xff0c;然后进行识别

比赛总结+近期总结

比赛总结&#xff1a; 这次比赛没考好 20(没加高精度)0&#xff08;文件输出写错&#xff09;1000120 T1&#xff1a;这一题的方法是分解质因数高精度 T2&#xff1a;明显就是一道spfa的题嘛 T3&#xff1a;强大的四维DP&#xff08;我的神啊&#xff01;&#xff09; T4&#…

计算机课件比赛总结,课件制作比赛活动总结

【www.gz85.com - 投篮比赛活动工作总结】 课件制作比赛&#xff0c;是对计算机多媒体等辅助手段的一次检阅&#xff0c;也有力地促进了制作多媒体课件技艺的提高。下面是小编为您整理的“课件制作比赛活动总结”&#xff0c;仅供参考&#xff0c;希望您喜欢&#xff01;更多详…

2018年全国邀请赛(江苏) 比赛总结

先吐槽一下中矿大。。。周六在食堂吃的午饭&#xff0c;肉菜一个鱼一个辣土豆炒牛肉&#xff0c;对于对鱼过敏又感冒比较严重的我来说。。。&#xff08;然后再也没去食堂吃饭&#xff09; 南湖校区大是真大&#xff0c;风景也不错&#xff0c;就是门口离体育馆有点远。。。&a…

比赛总结

比赛总结 比赛总结-a5165.png 初赛终于结束了&#xff0c;头一次如此投入去打比赛&#xff0c;这一个多月以来真是痛并快乐着。最大的感悟是&#xff1a;构造线下验证集并没有什么用&#xff0c;做了一堆工作还不如一个leak。首先取得这个成绩算是给自己一个交代了&#xff0c;…

关于全国大学生软件测试大赛总结与反思

关于全国大学生软件测试大赛总结与反思 文章目录 一、软件测试大赛简介二、可能出现的错误三、个人总结与反思四、谈谈软件测试工程师1、测试的三个阶段2、就业优势3、就业要求4、参考薪资 一、软件测试大赛简介 由教育部软件工程专业教学指导委员会、全国高等院校计算机基础教…

【赛后总结】第十三届服务外包创新创业大赛总结——A14

目录 前言组队&#xff06;选题分工&项目推进提交材料&项目答辩区域赛初赛区域赛决赛全国总决赛 写在最后 前言 先摆两个参赛视频 初赛视频 决赛视频 比赛已经过去几个月了&#xff0c;也算是想起来这个比赛可以写一个总结了。在历时8个月左右的时间之后&#xff0c;我…

计算机大赛总结发言稿,学校技能比赛总结发言稿

学校技能比赛总结发言稿 总结就是把一个时间段取得的成绩、存在的问题及得到的经验和教训进行一次全面系统的总结的书面材料&#xff0c;写总结有利于我们学习和工作能力的提高&#xff0c;因此十分有必须要写一份总结哦。那么总结要注意有什么内容呢&#xff1f;以下是小编帮大…

计算机知识与技能比赛活动总结,中职技能大赛总结(精选6篇)

中职技能大赛总结(精选6篇) 总结是对取得的成绩、存在的问题及得到的经验和教训等方面情况进行评价与描述的一种书面材料&#xff0c;它能够使头脑更加清醒&#xff0c;目标更加明确&#xff0c;因此我们需要回头归纳&#xff0c;写一份总结了。那么你知道总结如何写吗&#xf…

稳定的iOS迅雷来了 不用再每次想用都要重装

迅雷iOS下载:www.xunlei-iosd.top 用过苹果产品的朋友都知道&#xff0c;在iOS系统里&#xff0c;迅雷这一APP是不存在的。当有朋友分享了某些资源给你&#xff0c;只能想办法使用复杂的操作安装一个寿命只有几天的迅雷APP。 今天&#xff0c;官方推出了“永久版”iOS迅雷&…

iOS - Threads 多线程

1、Threads 1.1 进程 进程是指在系统中正在运行的一个应用程序。每个进程之间是独立的&#xff0c;每个进程均运行在其专用且受保护的内存空间内。 比如同时打开 QQ、Xcode&#xff0c;系统就会分别启动两个进程。通过 “活动监视器” 可以查看 Mac 系统中所开启的进程。 一个程…

iOS面试知识点梳理

1.iOS开发者账号类型 “个人”开发者可以申请升级“公司”&#xff0c;可以通过拨打苹果公司客服电话&#xff08;400 6701 855&#xff09;来咨询和办理。公司账号允许多个开发者进行协作开发&#xff0c;比个人多一些帐号管理的设置&#xff0c;可设置多个Apple ID&#xff0…

2019年iOS面试真题大全(3-5年)

如果你想去大公司,如果你是3年左右的iOS开发者,如果你对面试的未知没有十足的信心,如果你期望的薪资在15K,那么请认真刷完这300道面试题,都是真实公司经历的…答案会在近期更新!你要先自思考,看个人那些方面还不足! 1、自我介绍 2、如何实现一个倒计时功能&#xff0c;类似于蘑…

IOS开发系列之阿堂教程:构建开发IOS应用的虚拟机开发环境实践

说到IOS的开发,不能不说 到一个问题,如何配置和构建一个IOS的开发环境!我下面要说的主要是针对没有MAC Apple机的网友,如何安装和配置一个属于自己的IOS开发环境。如果已经有MAC 苹果机的网友,请忽略此文。因为有MAC 苹果机,就只需要安装XCODE的IDE开发工具就行了。 …

web安全渗透测试基础知识

渗透测试入门 渗透测试前置知识靶场环境搭建windows基础网络基础web应用/架构搭建/站库分离/路由访问web四大件-系统web四大件-中间件web四大件-数据库web四大件-源码路由访问 web架构/前后端分离/建站分配Web架构/OSS存储/CDN加速/反向代理APP架构反弹SHELL/文件下载抓包技术算…

《iOS移动开发从入门到精通》图书连载2:如何成为一名iOS开发者

iOS开发人员&#xff0c;和其它传统开发者相比有哪些不同之处&#xff1f;需要具备怎样的硬件和软件条件&#xff1f;今天我们就来说说这一部分的内容。 一.硬件上的需求 开发iOS应用&#xff0c;首先您需要使用Apple的电脑。尽管您可以使用黑苹果或者虚拟机&#xff0c;在PC上…

Jetson Nano目标检测手把手实战教程(pytorch训练、tensorrt推理,含完整代码和数据)

目录 一、概述 1.1 深度学习和边缘计算 1.2 Jetson Nano简介 二、深度学习环境安装 2.1 Pytorch框架 2.2 在Jetson Nano上安装Pytorch 三、算法原理 四、具体实现步骤 4.1 工程代码和环境准备 4.2 模型训练和推理 4.2.1数据集准备 4.2.2训练 4.2.3模型转换 4.2.4…