ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

翁恺C语言程序设计网课(1)

2020-11-27 23:30:38  阅读:339  来源: 互联网

标签:变量 int price C语言 网课 printf 2.1 翁恺


1.1.1 计算机和编程语言
1.1.2 计算机的思维方式
1.2.1 为什么是C?
1.2.2 简单历史
1.2.3 编程软件
1.3.1 第一个C程序
1.3.2 详解第一个C程序
1.3.3 做一些计算
2.1.1 无
2.1.2 变量定义
2.1.3 变量赋值与初始化
2.1.4 变量输入
2.1.5 常量vs变量
2.1.6 浮点数

1.1.1 计算机和编程语言
学习目的:理解计算机是怎样工作的
计算机怎样解决问题?把大问题拆分成小问题(如把大象放进冰箱里)
人:what to do
计算机:how to do
程序是用特殊的编程语言写出来表达如何解决问题的。
我们不是用编程语言和计算机交谈,而是描述要求他如何做事情的过程和方法。

//例:hello world!
#include<stdio.h>
int main()
{
	printf("Hello World!\n");//输出“Hello World!(换行)”
	return 0;
}

普通人能读懂的东西–程序员能懂的东西–计算机能懂的东西
计算机–程序–算法
(算法:我们想让计算机做计算,先要写出计算的步骤,然后用编程语言写出来。计算机做的所有事情都是计算;计算的步骤就是算法。)

1.1.2 计算机的思维方式
例:解方程2x+6=20 , x∈(1,10)
计算机的思维:
1)枚举法
代入x=1,不行;代入x=2,不行;代入……
2)二分法
代入x=5,小了;代入x=7……
计算机执行程序有两种方案:
1)解释:借助一个程序,那个程序可以试图理解你的程序,然后按照你的要求执行
2)编译:借助一个程序把你的程序翻译成机器语言,然后计算机就可以直接执行了。
解释语言vs编译语言:语言本无解释与编译之分,只是常用的执行方式不同。
解释型语言有特殊的计算能力;
编译型语言有确定的运算性能。

1.2.1 为什么是C?
1)在很多场合,C语言是唯一的选择
2)现代编程语言在语法上差异很小,基本都和C接近
3)语言的能力、适用领域主要是由 传统 决定的。

1.2.2 简单历史
1969
FORTRAN→BCPL→B语言→C语言
因为B和BCPL都支持指针间接方式,所以C语言也支持了
C语言还受到了PL/I的影响,还和 PDP-11的机器语言有很大关系
1973/3,第三版的Unix上出现了C语言的编译器
1973/11,第四版的Unix完全用C语言重新写的。
在这里插入图片描述
经典C,又叫K&R the C
1989年,ANSI发布了一个标准:ANSI C
1990年,ISO接受了ANSI的标准
C的标准在1995年和1999年两次更新

1.2.3 编程软件
C语言的用途:写操作系统、嵌入式系统、驱动程序(用来驱动U盘)、底层驱动、图形引擎、图像处理、声音效果(直接给我们提供数据的代码不是用C语言写的)、
C语言是一种工业语言,由基础人员使用。所以
开发效率>学习过程
开发效率>开发乐趣

而在日常的应用中,很少直接用C语言编写。
学习C的过程主要是写练习代码,而不是写真实软件。
C语言需要被编译才能运行,所以需要:编辑器、编译器(或者IDE,集成开发环境)
推荐的编程软件:Dev C++

1.3.1 第一个C程序

#include<stdio.h>
int main()
{
	printf("Hello World!\n");
	return 0;
}

梦开始的地方。
可以先自己敲进去运行玩玩
在Dev C++中打开方式:文件–新建–源代码
输入之前确保英文输入!!!
上端显示星号,说明没有保存
编译之后再运行。

1.3.2 详解第一个C程序

#include<stdio.h>
int main()
{
	
	return 0;
}

本课程中所有的程序都需要用到这一段框架(直到学函数之前)
printf()会把" "内的内容(字符串)原封不动地输出,\n表示换行。
如果出现编译错误,会在下面用红色的error显示出来,而具体错误原因在下方窗口里。
再强调一遍,不要用中文输入法!!!

1.3.3 做一些计算

printf("%d",23+43);

%d是占位符,说明后面会有一个整数输出到这个位置上。

printf("23+43=%d",23+43);
四则运算C符号意义
++
--
×*
÷/
%取余
()()括号

2.1.2 变量定义
找零钱问题:100-(用户输入)物品的价格=找你的钱
我们需要:
1)有地方放输入的数字;
2)有办法输入数字;
3)输入的数字参与计算。

	int price=0;//定义了整形变量price,类型是int,初始值=0
	printf("请输入金额(元):");
	int change=100-price;
	printf("找您%d元。\n",change);

变量是一个保存数据的地方。
变量定义的一般形式就是:
<类型名称><变量名称>
变量的名字叫“标识符”,基本原则只能由字母、数字、下划线构成,数字不能出现在第一个位置上。C语言的关键字(又叫保留字)不可用作字符。
如何输入:
输入也在终端窗口中。输入以行为单位进行,敲下回车,行结束。
(敲下回车之前,程序不会读到任何东西。)

2.1.3 变量赋值与初始化

	int price=0;//其中=是赋值运算符,把右边的值赋给左边的变量。

和数学中不同,b=a和a=b在程序中有着相反的含义。
当赋值发生在刚定义变量时,就叫程序的初始化。虽然C语言并没有强制要求所有的变量在被定义的地方做初始化,但所有变量在第一次被使用(出现在=等号右边)前都应该被赋值一次。
如果没有初始化呢?
就是使用这个变量在内存中的那个值。
变量初始化:<类型名称> <变量名称>=<初始值>
也可以在组合变量定义中给单个变量单独赋初值,如

	int a=0,b=1;

有运算符的式子就叫表达式(比如=是赋值运算符)
C语言是有类型的语言,所有变量在使用前必须先定义或声明;所有变量必须有确定的数据类型(表示在变量中可以存放什么样的数据),变量中也只能存放指定类型的数据,程序运行过程中也不能改变变量的类型。
Int charge=100-price;

//C语言
	int price=0;
	printf("请输入金额(元):");
	scanf("%d",&price);
	int change=100-price;
	printf("找您%d元。\n",change);
//传统的ANSI C只能在开头的地方定义变量
	int price=0;
	int change=0;
	printf("请输入金额(元):");
	scanf("%d",&price);
	change=100-price;
	printf("找您%d元。\n",change);

2.1.4 变量输入
scanf函数,读到的结果赋值给后面的变量
(注意变量前的&)
如果输入非整数(比如找钱一例中:输入字母,找我100元)
这种情况后面再说。

2.1.5 常量vs变量
固定不变的数,是常数。直接写在程序里的,叫直接量

	const int amount=100;

其中const是个修饰符,加在int前面,用来给这个变量加上一个const(不变的)属性。这个const属性表示这个变量的值一旦初始化,就不能再更改了
好处:1.便于理解2.修改的时候好找

编译:read-only variable is not assignable
(一般const的变量全大写)
Scanf的空格有讲究,以后再说。输入两个数,中间空格或回车,计算机读到两个数字时停止
当scanf扫描数字时输入字母,会出来很多奇怪的数字。(应该是ASCII码吧?)后面再细说。

2.1.6 浮点数
C语言中两个整数做运算得到的结果也只能是个整数(扔掉小数部分)。而10和10.0在c中是完全不同的两个数字,10.0是浮点数(浮点数指小数点时可以浮动的,是计算机中表示分数和无理数的一种方式。人们用浮点数来称呼有小数点的数)(其实还有定点数。但是在c语言中你不会碰到定点数)
当浮点数和整数放在一起运算时,计算机会自动把整数转化为浮点数计算
(如:
Int a,b;
Printf(“a/b3”);
改进为a/b
3.0)
有单精度float(%f)和双精度double(%lf)
(计算机里会有纯粹的整数这种东西,原因是运算快、占地小。而且日常生活中大多也是整数运算。)

标签:变量,int,price,C语言,网课,printf,2.1,翁恺
来源: https://blog.csdn.net/jtwqwq/article/details/110248083

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有