【无标题】C语言概述

1.3 数据类型与常见符号

一.数据类型

1.基本类型(1)整形

                  (2)字符型

                  (3)枚举类型

                  (4)实型【浮点型】

2.构造类型(1)数据类型          

                   (2)结构体类型

                   (3)共用体类型

3.指针类型

4.空类型void

二.常见符号:标识符 ,关键字 ,运算符

1.标识符:用来标识变量名、符号变量名、函数名、数组名、类型名、文件名等的有效字符序列称为标识符。

2.标识符分为(1)系统预定义标识符main

                         (2)用户自定义标识符.通常做变量名、函数名字使用

3.标识符只能由字母、数字、下划线三种字符组成

注:(1)第一个字符必须为字母或下划线

        (2)见名知意原则

        (3)用户不能使用系统预定义标识符 [A和a不同]

4.关键字:又称“保留字”,是C语言中预先规定的具有固定含义的单词。例:int应该,float,return

5.运算符

f33315ddd27f48d6b9d2894915d0a258.png

1.4常量

常量:在程序运行过程中,其值不能被改变的量称为常量。

一.常量的类型:

1.整型常量:整常数

(1)十进制整数:数字0-9和正负号表示。

例:123,-24

(2)八进制整数:以数字0开头,后跟数字0-7。

例:0123,-011

(3)十六进制整数:以0x或0X开头,后跟数字0-9和字母a-f或A-F   例:0x123,0xFF

2.实型常量:实数或浮点数

(1)十进制小数形式:由数字0-9和小数点组成(必有小数点)  例:1、23,.4

(2)指数形式(科学计数法):由十进制数和指数标志e或E及指数值组成  例:3.1e4,.34e2

  • 注:1.E(e)前必须有数字,E(e)后必须是整数。

       2.规范化的指数形式:在字母E(或e)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字。例:31、4159E1,0➡️3、14159E2

      3.(1)实型常量隐含按双精度处理

         (2)单精度实型常量后跟f(或F)表示,如3、14F

           (3)长双精度型常量值后跟l(或L)表示,如3、14L

3.字符常量

(1)用单引号括起来的一个字符。如‘a’,‘4’’‘@’。

(2)转义字符,以“\”开头的字符序列。如‘\n’

  • 字符常量和字符串常量的区别:

(1)字符常量是由单引号括起来的,字符串常量是由双引号扩起来。

(2)字符常量表示1个字符,字符串常量可以包含0个或多个字符。

(3)字符常量赋给字符变量,不能将字符串常量赋给一个字符变量。

(4)字符常量在内存中占一个字节‘a’  1B(B➡️字节),字符串常量占用的存储单元是字符个数加1“a”  2B

4.字符串:结束标志'\0'

5.符号常量

(1)用一个标识符来代表一个常量,称为符号常量。

(2)一般定义格式:#define标识符常量。

例:#define N 10

  • 注:(1)不是变量,不能被重折赋值 

        (2)通常使用大写字母来定义符号常量

        (3)含义清楚,见名知意

        (4)对常量值做到“一改全改”

1.5变量

一.变量的概念

1.在程序运行过程中,其值可以改变的量称为变量。

2.变量代表内存中具有特定属性的一个存储单元,它用来存放数据,这就是变量的值。

二.变量的定义

1.遵循“先定义,后使用”原则

2.数据类型 变量名1[,变量名2,..]; 

三.基本数据类型变量

1.整型变量9dc3787417154da693d67a11df6af928.png

整型变量的定义

1.int a,b;(定义变量a、b为整型)

2.unsigned short c,d;(定义变量c、d为无符号短整型)

3.long f;;定义变量f为长整型)

ffb05a88f32245708ed1b6d34f0fc867.png

2.实型变量

(1)实型变量的分类

单精度 float

双精度 double

长双精度long double

522b05a330404f02a8410d42106f8f39.png

 3.字符型变量

字符型变量

字符型变量用来存放字符常量,注意只能放一个字符。

字符变量的定义形式如下:char cl, c2;一个字符变量在内存中占一个字节。

6ad96a1690104204af1035d8c2be7761.png

1.6运算符与运算

<运算符与表达式 >

一.相关概念

1.运算符:在C语言中用来表示某种计算的符号

2.操作数:运算符操作的对象,可以为变量(已赋值)、常量或其他有切确值的表达式。

3.表达式:运算符和操作数组成的具有切确值的符合C语言语法的式子称为表达式。

二.运算符分类

1.单目运算符(一元运算符)有1个操作数。

2.双目运算符(二元运算符)有2个操作数。

3.三目运算符(三元运算符)有3个操作数。

(唯一:条件运算符?:)

三.算术运算

1.基本算术运算符:+- * /%

结合方向:从左向右

优先级:-高于*/% 高于+-

例:5/2 = 2       5.0/2.0 = 2.5

  • 说明:“_”为单目运算符时,右结合性两整数相除•,结果为整数

例:5%2 =1    1%10 = 1   5.5%2(x) -5%2=?

2.自增自减运算符++•-

(1)作用:使变量值加1或减1 优先级与-相同,右结合

(2)种类:

前置 ++i, -i(先执行i+1或i-1,再使用i值相当于i=i+1)

后置i++,j--(先使用i值,再执行i+1或i-1)

赋值运算

3.简单赋值运算符:=

赋值表达式:<变量><赋值运算符><表达式>°

结合方向:从右向左x=y+2     X=Z=3

  • 说明:

1.将=右侧表达式的值赋给左侧变量

2.=左侧只能为变量,不能是常量或表达式

3.=两侧数据类型不一致时,要进行类型转换赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型

例:int a; a=3.14;

fa6ccd9308b54f12b6109984451fe5f4.png

 

四.逗号运算

<一>逗号运算符:,

1.形式:表达式1,表达式2,……表达式n

2.结合性:从左向右

  • 説明:
  1. 优先级最低
  2. 逗号表达式的值:等于表达式n的值

例:a=3*5,a*4 1/a=15,表达式的值为60

b=(3*4,4*5) //b=20

1.7数据类型的相互转换

整型、实型、字符型数据间可以相互转换

1.自动转换。 2.强制转换。

1.自动转换什么情况下发生:

(1)运算转换:不同类型数据混合运算时

(2)赋值转换:把一个值赋给与其类型不同的变量时

(3)输出转换:输出时转换成指定的输出格式

(4)函数调用转换:实参与形参类型不一致时转换

  • 运算转换规则:数据转换按数据存储长度增长的方向进行

1ff1adfd723a473ab8ee92e434e99297.png

例:71c28e04740b4093b07910a369c1af40.png 

 

2.强制转换

(1)一般形式:(类型名)(表达式)

例:(int)(x+y)

(2)说明:强制转换得到所需类型的中间变量,原变量类型不变

例:

#include <stdio>

int main(

{ float x;

int i;

×=3.6;

i=(int)x;  (表达式仅一个变量时,括号可以省略)

printf("x=%f,i=%d",x,i);

return 0;}

结果:x=3.600000,i=3

  • 精度损失:较高类型向较低类型转换时可能发生

2顺序结构程序设计

2.1格式化输出

顺序结构程序的执行过程:输入数据➡️处理数据➡️输出数据

数据的输入输出是从计算机角度出发的

一.C程序获得输入的途径有两种:

1.键盘输入数据

2.文件导入数据

二.一个程序的输出方式也有2种:

1.将输出的数据利用屏幕显示

2.将程序输出的数据保存到某个文件中

从键盘输入➡️屏幕输出

三.数据输入输出的概念及在C语言中的实现

1.C语言本身没有1/0语句,所有I/O都由函数来实现。

例:#include <stdio.h›或#include " stdio. h"

2.C语言的标准库函数

  • 由编译系统提供的一系列函数,以库形式存放在系统中,不是C语言文本的组成部分。
  • 注意在调用C语言库函数时,需要使用编译预处理命令#include <相关的头文件>,使相应的头文件包含到用户源程序中。

3.标准输入输出函数
putchar 输出字符,scanf格式输入,puts输出字符串

ectchar 输入字符,prinuf格式输出,gets 输入字符串

四.格式化输出

1.print函数(格式输出函数)

2.printf函数的一般格式

格式:printf( 格式控制,输出表列);

  • 格式控制:用双引号括起来的字符串,包含两种信息
  • 格式说明:%[修饰符/格式字符,指定输出格式
    普通字符:原样输出
  • 输出表列:要输出的数据,可以是变量或表达式,可以没有,多个时以“”分隔)

例如:printf("d d", a,b) ;printf( "a=%d b=%d\n”a,b) ;

五.输出值的参数类型和格式控制说明符的类型应该是匹配的。也就是说a为十进制整型,格式控制说明符就应该是%d与之对应。

printf函数的另外一个特点就是可以同时输出多个类型的数据值。

(1)%md格式:m指定输出字段的宽度

数据位数小于m,左端补空格,反之按实际输出。

例:int a=123 , b=12345 ; printf("a=%4d %4d".

, a, b);

_123 12345

•(2)%Ld格式:输出长整型数据可以用%mld格式指定输出列宽

例:long a=135790 printf(*ld  \n", a);

printf("%8Ld  ",a):

135790        _ _135790

  • 注:m是正数,右靠齐;m是负数,左靠齐。

六.1.o格式符:八进制输出整数

  • 是将内存中的二进制位整个按八进制输出,所以输出值没有符号。
  • 可以指定输出宽度%omo,长整型可以用%0l0格式输出。

2.x格式符:十六进制输出整数同o格式符,无符号,即无负十六进制数。

•可以指定输出宽度%mx,长整型可以用%以格式输出。

3.u格式符:十进制输出unsigned型数据

int型可以用%u格式输出,unsigned型也可以用%d、%0和%x格式输出。

4.f格式符:输出实数

%f格式:整数部分全部输出,小数6位。

例2:%f格式输出实数时的有效位数

#include <stdio.h>

int main()

{ float x;

x=12.3;

printf("%f %e\n",x,x);

return 0;

运行结果:

12.300000 1.230000e+001

  • %f格式:可以有非有效数字输出,因为单精度有效位7位,双精度16位。

例3 %f格式输出双精度实数时的有效位数

#include <stdio.h>

int main { double x,y;

x=1111111111111.111111111,

у=2222222222222.222222222;

printf("%f\n",x+y);

return 0;

运行结果:3333333333333.333010

(1)%m.nf格式:占m列,其中n位小数,左补空格。

(2)%-m.nf格式:右补空格

例4 %[格式输出实数时指定小数位数

#include <stdio.h>

int mainO

{ float f=12.345678;

printf("⅑ 10f,%.2f,%-10.2f,%10.0An",f,f,f,f);

return 0;

运行结果:

12.345678, 12.35,12.35

  • 注:%e格式符的域竞和%F格式符一样

5.e格式符:指数形式输出实数

%e格式:不指定m和n、小数6位、指数部分共5位,其中e和指数符号各1位,指数值3位。

6.c格式符:输出一个字符值在0~255的整数,可以用%c形式输出为字符。

•值在0~255的整数,可以用%c形式输出为字符

例5字符数据的输出

#include <stdio.h>

int main(

{ char c=a';

printf"%c , %d\n "

,C,C);

return 0;

运行结果:a, 97

b641de4aca36452eb65db14626e95c19.png

2.2格式化输出 

一.scanf 函数(格式输入函数)

1.一般形式

格式:scanf(格式控制,地址表列);

  • 功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键
    结束
  • 格式控制:含义同printf函数
  • 地址表列:变量地址或字符串地址,地址间“,”分隔。
    强调:地址列表中每一项必须以取地址运算符&开头。

2.输入分隔符的指定

  • 一般以空格、TAB或回车键作为分隔符
  • 遇非法输入字符时,系统认为输入数据结束
  • 其它字符做分隔符:格式串中两个格式符间有其它字符,则输入时对应位置也要有相同的字符。

2.3单个字符的输入输出

一.printf函数

二.scanf函数

三.putchar 函数(单字符输出函数)

1.格式:putchar( ch);

2.强调:ch为输出项,可以是字符型变量、常量或者表达式;也可以是整型常量、变量或者表达式。

举例说明输出单个字符:

(1)putchar('a');------>屏幕输出(2)putchar(98);------>屏幕输出b

(3) putchar('a'-32);--------->屏幕输出A

(4) putchar(\101');-------->屏幕输出A

四.getchar 函数(单字符输入数)

1.格式:getchar();

2.强调:输入单个字符后,必须按一次回车,计算机才接受输入的字符。

2.4顺序结构程序设计实例

一.顺序结构特点

     ⬇️

       A     程序在执行过程中严格按照语句书写的先       后顺序执行

     ⬇️

       B      每条语句必须执行且只能执行一次

二.顺序结构组成

1.程序开头的编译预处理命令。

2.顺序结构程序的函数体中,是完成具体功能的各个语句和运算,主要包括:

(1)变量类型的说明。

(2) 数据输入部分。

(3) 数据处理部分。

(4) 数据输出部分。

2.5迭代算法在顺序结构中的应用

算法是指在解决问题时,按照某种机械算法步骤一定可以得到问题结果的处理过程。

一.迭代算法的基本思想

1. 迭代法(Iteration)也称“辗转法”,是一种不断用变量的旧值递推出新值的解决问题的方法。

2.迭代算法一般用于数值计算。

二.迭代算法的设计步骤

1.利用迭代算法策略求解问题,设计工作主要有三步:

(1)确定迭代模型

(2)建立迭代关系式

(3)对迭代过程进行控制

3选择结构程序设计

3.1关系运算和逻辑运算

一.关系运算

• 关系运算(比较运算)

1.它的功能是将两个数值进行比较,判断其比较的结果是否符合给定的条件。

例如:a>3

如果a=5,则值为。“真〞。

如果a=2,则值为“假”。

9bfafad0712e4ee79fbdf416df28c6f9.png

二.关系表达式

1.关系表达式

<表达式1><关系运算符><表达式2>

两边的表达式可以是任意合法的表达式。

关系运算的值:“真”或“假”

用“1”表示“真”

用“0”表示“假”

2.逻辑运算符

 f18414df681644ad9a5ef60c82680b1b.png

994ef17e97574645b2b707294d39b493.png 

 

3.逻辑运算符的短路特性

(1)逻辑与、逻辑或有以下特点:

a&&b,当a为0时,不管b为何值,结果都为0。

allb,当a为1时,不管b为何值,结果都为1。

(2)C语言规定:

在进行逻辑与运算时,如果左边运算对象为0,则不需要计算右边的运算对象,直接判断结果为0;

而进行逻辑或运算时,如果左边运算对象为1,则不需要计算右边的运算对象,直接判断结果为1。

3.2  if语句

一.选择结构

1.单分支➡️if

一般形式:if(表达式)语句

执行过程:

2d3e5b56b70443a1b81f8182d4338be8.png

6d884dfe723645fda01b9258a5d1e4e0.png

 

  • 4.编程规范:

(1)不允许把多个短语句写在一行中,即一行只写一条语句。

(2)if吾句自占一行,且执行语句部分无论多少,都要加花括号4,这样可以使代码结构更清晰,不易出错。

(3)釆用缩进风格编写,缩进的空格数为4个。

2.双分支➡️if-else

3.多分支➡️else-if

3.3  if嵌套

一.if语句的嵌套

1.在i语句中又包含一个或多个i语句一般形式:

1473c5c773cd48fcbc647719ed1aa59c.png

2. else与if配对原则如下:

(1)else总是与它前面最近的没有配对的if配对。

bf6cdc9e08de46bb8bb6b828fed3ea69.png

 

 2.可以加花括号来确定具体配对关系。

9b40e1c513d341a39e06429cf8f9ec7a.png

4982eb9320984a87ac18f1e4c46f6cee.png 

  • 注:1. 在if语句中又包含一个或多个i语句称为if语句的嵌套
  • 2.在设计i语句嵌套时,一定要注意正确把握每一个分支的逻辑含义
  • 3.使用复合语句可提升嵌套的准确性和可读性

3.4  switch语句

一.执行过程

f821c3ff0a0042e8b544318bd8503540.png

 1.(1)首先计算switch后面圆括号中表达式的值,然后用它依次与各个case后面常量表达式的值进行比较,如果圆括号中表达式的值与某个case后面常量表达式的值相等,则执行此case后面的语句。

(2)语句执行后,如果遇到break语句或switch的结束符“}”,就终止switch语句,否则就继续执行下一个case后面的语句,依次类推。

  • 注:
  • 1.switch后面括号内的“表达式”,只能是整数类型(包括字符型)。
  • 2.switch语句下面的一对花括号仔不能省略,花括号中的部分称为switch语句体。
  • 3.case和常量表达式之间要有空格,常量表达式只起语句标号作用,当找到匹配的入口标号后,就从此标号开始执行下去,不再进行判断。
  • 4.如果每个case和default后面都有break语句,则它们出现位置不影响执行结果。
  • 5.每一个case常量表达式的值必须互不相同,否则就会出现互相矛盾的现象。在case子句中如果包含多个语句,可以不用花括号括起来,会自动顺序执行该case后面所有的语句。
  • 6.多个case标号可以共用一组执行语句。

3.5选择结构程序设计实例

一.实例1检查字符类型

二.实例2 模拟自动售货机

技术要点

本例中主要用到switch语句,需注意以下几点。

1.每一个case的常量表达式的值必须互不相同,否则就会出现相互矛盾的现象。

2.各个case和default的出现次序不影响执行结果。

3.在执行一个case分支后,如果想跳出switch结构,则需要使用break语句。

 3.6选择结构妙用之信息数字化

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值