【二】c语言程序设计-计算篇

本文介绍了C语言程序设计的基础知识,包括变量的定义与初始化,赋值的区别,表达式的概念及运算符优先级,常量与变量的对比,浮点数的处理,以及如何交换变量值的技巧。此外,文章还探讨了调试功能的使用和复合赋值、递增递减运算符的应用。
摘要由CSDN通过智能技术生成

 霜淮子的c语言程序设计,大家可以通过阅读我的文章学习c语言程序设计的一些基础知识,作者水平有限,如果发现错误,评论区留言!万分感谢! 

欢迎订阅专栏《c语言程序设计

目录

前言

2.1、变量

变量的定义

赋值与初始化

程序的输入

常量VS变量

浮点数

2.2、表达式

表达式:运算符和算子,取余计算,程序就是数据加计算

运算符 优先级

交换变量和Dev的调试功能

复合赋值和递增递减


前言

阅读前面的文章你,相信大家已经安装好了c语言的编程软件。尝试了一些简单的程序了,拿这篇文章开始就讲述教大家如何运用c语言写一些程序。

2.1、变量

变量的定义

变量是一个保存数据的地方,用一个变量保存了数据,它才能参加到后面的计算当中。

变量定义的一般形式:

<类型名称><变量名称>

eg:

int price;

int amout;

int price amout;

  • 变量 需要一个名字,变量的名字是一种“标识符”,意思它用来识别这个和那个的不同的名字。
  • 标识符有标识符的构造规则。

基本原则是:

标识符只能由字母、数字、和下划线组成,数字不可以出现在第一个位置上,C语言的关键字不可以用作标识符。

赋值与初始化

赋值:

和数学不同,在数学中a=b表示关系,即a和b的值一样,而在计算机中表示的是一个动作,将b的值值赋给a,而不是他们相等。

关系是静态的,而动作的动态的,在数学中,a=b,b=a是等价的,而在程序设计中,意思是完全相反的。

初始化:

eg:

#include<stdio.h>
int main ()
{
    int i=0;
    int j;
    j = j+10;
    print("%d\n",j)
    return 0;
}

 当中, int i = 0;就是初始化,

c语言并没有强制要求所有的变量在定义的地方做初始化,但是所有的变量在第一次使用之前应该被赋值一次。

但是如果没有初始化呢?

当计算机没有找到 i 的值的时候,这个 i  在什么地方,这个地方原本有一些什么样的值在里面的话,这个 i 就是什么了,

变量的初始化形式:

<类型名称><类型变量>=<初始值>

eg:

int price = 0;

int amount = 100;

int price = 0,amount = 100;

组合变量定义的时候,也可以在这个定义中单独给单个变量赋初值。

变量类型:

int price = 0;

在这一行,定义了一个变量,变量的名字是price,类型是int,初始值是0,

C是一种有类型的语言,所有的变量在使用前必须定义或者声明,所有的变量必须有确定的数据类型,数据类型表示在变量中可以存放什么样的数据,变量中只能存放指定的数据,程序运行过程中也不能改变变量的类型。

对于C99,我们可以在程序的任意位置进行定义,只要是在它第一次使用之前都可以,而ANSI C只能在代码开头的地方定义变量,一旦开始了计算就不可以在定义变量了。

程序的输入

#include<stdio.h>
int main (){
	int price=0;
	printf("请输入金额(元):");
	scanf("%d",&price);
	int change=100-price;
	printf("找您%d元。\n",change);
	return 0;
} 

 scanf("%d",&price);

        要求scnaf这个函数读入下一个整数,读到的结果赋值给变量price

常量VS变量

在程序中,其值不能改变的量称为常量。

#include<stdio.h>
int main (){
	const int AMOUNT=100;  //定义了一个常量
	
	int price=0;
	printf("请输入金额(元):");
	scanf("%d",&price);
	int change=AMOUNT-price;  //直接用AMOUNT去减就ok
	printf("找您%d元。\n",change);
	return 0;
} 

 这样做有很多好处,当人们去看这个程序的时候一看AMOUNT就知道是金额的意思,而且当我们需要修改总金额的时候,我们只需要在开头的地方修改就可以了,

const是一个修饰符,加在int前面,用来给这个变量加上一个const(不变的)的属性,这个const属性表示这个变量的值一旦初始化,就不能在修改了

浮点数

带小数点的数值。浮点这个词的本意就是指小数点是浮动的,是计算机内部表达非整数(包括分数和无理数)的一种方式。另一种方式叫做定点数,不过在C语言中不会遇见定点数,人们借用浮点数这个词来表示所有带小数点的数。

#include <stdio.h>
int main(){
	printf("%d\n",10/3);
	return 0;
}

大家可以在程序中分别计算10/3=?和10.0/3=?

两个整数的运算的结果就只能是整数,

10和10.0在C语言中是完全不同的数,

10.0是浮点数

对于浮点数的输入我们需要用“%lf”输出用“%f”

2.2、表达式

表达式:运算符和算子,取余计算,程序就是数据加计算

一个表达式就是一系列的运算符和算子的组合;用来计算一个值;

在表达式中又有运算符和算子

运算符:

是指进行运算的动作,比如加法运算符“+”,减法运算符“-“’。

算子

是指参与运算的值,这个值可能是一个常数,还可能是一个方法的返回值。

eg:

a=b+5

a;b;5;都是算子,+;=;它们都是运算符

运算符 优先级

举例让我们求平均值

*写一个程序输入两个整数,输出它们的平均值,我们可以写出如下代码

int a,b;

scanf("%d %d",&a,&b);

double c =(a+b)/2.0;                            //除以2.0是为了保证它的精度

printf("%d 和%d的平均值=%f\n",a,b,c);//doble的变量需要用%f输出

 在这个地方我们来看double=(a+b)/2.0这行代码,如果没有括号,那么这个程序就会先算b/2.0,

下面我们来看我们所学过的运算符的优先级别 

 在一个表达式当中,如果出现多个运算符那就需要遵循这个规律,而单目的运算符是优先于乘除的,结合关系是指在同一优先级别下,运算顺序从做向右一次进行,比如a+b+c,它会先算a+b,然后再加c。

赋值也是运算,也有结果。

a=6的结果就是a被赋的值,也就是6;

a=b=6;----------------a=(b=6).赋值这个运算是自右向左的结合,所以对于计算机来说,a是等于b=6的值,ok ,

交换变量和Dev的调试功能

假设已经有了

int a=8;

int b=5;

如何交换a和b的值?

程序是按照步骤执行的,而不是关系a=b;b=a;是依次执行的,结果使得a和b都得到了b原来的值。

这时候我们需要引入第三个量,用来把它用做交换的媒介;

我们写出如下程序试试看

#include <stdio.h>
int main (){
	int a=5;
	int b=6;
	int t;
	t=a;
	a=b;
	b=t;
	printf("a=%d,b=%d\n",a,b);
	return 0;
}

 可以看到结果a,b的值交换成功,

那这个是为什么交换成功的,有没有什么办法可以看到程序是如何运行成功的,这个时候我们级需要用到菜单栏里面的调试功能,

接下来讲如何进行调试?

在调试之前我们需要在程序中先做一个断点?我们选中程序前面的数字,我们想让它跑到哪一行就在哪一行前面选,但是我们选中的哪一行是不被执行的,

 这个时候我们就可以在旁边列出变量的值,接下来程序窗口下面的操作就可以帮助我们进行下一步还是上一步,这不仅可以帮助我们更好的去理解计算机是如何做计算的,在一些复杂的程序中还可以帮助我们去寻找错误。

复合赋值和递增递减

除了我们平时所学的一些加减乘除之外,c语言还有其他一些很有意思的计算,包括四则运算都可以和赋值符号结合起来形成一个符合赋值,比如:

“+=”,“-=“,”*=“,”/=“,”%=“。

eg:total+= 5;

实际上就是total=total+5;

注意两个运算符中间不要有空格,

递增和递减

“++”和“--”是两个会让你特殊的运算符,它们是单目运算符,这两个算子还是变量,这两个运算符分别叫做递增运算符和递减运算符,它们的作用就是给这个变量+1或者-1。

++和--可以放在变量的前面叫做前缀形式;

也可以放在变量的后面叫做后缀形式。

a++的值是a+1以前的值,而++a的值是加了1以后的值,无论哪个,a自己的值都加1l.

大家可以编写程序查看两者的结果。

#include<stdio.h>
int main(){
	int a;
	a=10;
	printf("a++=%d\n",a++);
	printf("a=%d\n",a);
	printf("++a=%d\n",++a);
	printf("a=%d\n",a);
	return 0;
}

结果如下:

a++=10

a=11

++a=12

a=12

总结一下

-END-

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霜淮子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值