C语言基础知识_第1页
C语言基础知识_第2页
C语言基础知识_第3页
C语言基础知识_第4页
C语言基础知识_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

章C语言基础知识

2021/6/281第一节C语言的基本格式一、一个简单的C语言程序例1:计算两个整数之和第1行:#include“stdio.h”第2行:main()/*主函数*/第3行:{第4行:inta,b,sum;/*变量说明*/第5行:a=10;/*把整数10赋值给变量a*/第6行:b=20;/*把整数20赋值给变量b*/第7行:sum=a+b;/*把两数之和赋值给变量sum*/第8行:printf(“a=%d,b=%d,sum=%d\n”,a,b,sum);/*把计算结果输出到用户屏幕上*/第9行}函数功能:求两数之和2021/6/282程序说明:第1行是表示包含一个头文件。第2行:main是函数名,表示是主函数,每个C程序都必须有一个主函数,也只能有一个主函数。主函数具体写法为:

main(){/*此处写函数的具体执行语句*/}第3行和第9行:一对大括号{}之间的内容是函数的具体内容。第4行:int是英语“整数(integer)”的简写。

a,b,sum是变量2021/6/283第5行的意思是让变量a的值为10.第6行的意思是让变量b的值为20第7行表示把变量a加上变量b的和赋值给变量sum.第8行是将计算的结果输出到屏幕上。2021/6/284其它说明:1、程序中的注释:

C语言程序用/*开头,用*/结尾表示程序的注释例2:

main(){inta=0,b=0;a=10;/*给a赋值

b=20;给b赋值*/printf(“a+b=%d\n”,a+b);}输出结果:a+b=302021/6/2852、C语言函数可以分为两大部分:定义部分和执行部分,定义部分应在执行部分的前面,当然两个部分都不是必须的。例3:main(){inta=0,b=0;a=10;/*给a赋值

b=20;给b赋值*/printf(“a+b=%d\n”,a+b);}定义部分执行部分2021/6/286例4:

main(){ printf(“Hello,spels!”);}

此例中只有执行部分,没有定义部分执行部分2021/6/2873、C程序中变量必须先定义,后使用。4、C程序中语句后必须有一个分号。5、C程序书写格式自由。一般一条语句写一行,采用缩进格式main(){ inta=0,b=0;a=10;b=20; printf(“a+b=%d\n”,a+b);}6、C程序的书写是区分大小写的。如main和Main是不一样的。2021/6/288一、标识符1、命名规则(1)标识符只能由字母、数字、下划线组成。(2)标识符的第一个字符必须是字母或下划线。(3)标识符是区分大小写的。 如:Abc和abc是不同的例5:判断下列标识符是否合法

axsum3ss3spelsyes?yes-no_to123_123@r第二节标识符、常量与变量2021/6/2892、标识符的分类(1)关键字:见书附录二。 如:int,float,char,double

(2)预定义标识符 主要有各种函数名称和编译预处理命令如:printfsinscanfdefineinclude

(3)用户自定义标识符:由用户根据需要定义的标识符,主要用于变量和自定义函数的命名。 要求:不能和关键字相同,也尽量不要和预定义标识符相同。

2021/6/2810例6:以下不能定义为用户标识符的是()

A)scanfB)VoidC)_3com_D)int分析:int是关键字,scanf是系统关键字例7:以下不合法的用户标符是()A)j2_KEYB)DoubleC)4dD)_8_分析:标识符不能以数字开头A,DC2021/6/2811二、常量常量:是指在程序执行过程中其值保持不变的量1、普通常量整型常量 如:323100实型常量 如:12.32.71828字符常量 如:‘a’‘?’(特征:单引号)字符串常量 如:“abcd”(特征:双引号)

2021/6/28122、符号常量例8:计算圆面积的C语言程序#include<stidio.h>#definePI3.14159main(){floatr,area;r=12.5;area=PI*r*r;/*等价于:area=3.14159*r*r;*/printf(“area=%f\n”,area);}注:习惯上符号常量一般用大写字母书写,以区别于变量名(变量名一般用小写字母书写)。2021/6/2813三、变量变量:就是在程序运行过程中其值可以改变的量。例9:变量的应用#include“stdio.h”main(){inta=10,b=20,c;a=30;b=40;c=a+b;printf(“c=%d\n”,c);}2021/6/2814例10:下列定义变量的语句中错误的是____A)int_int;B)doubleint_;C)charFOR;D)floatUS$;分析:选项D中变量名不符标识符的定义要求D2021/6/2815第三节整型数据一、数制转换数制说明十进制:数码有0,1,2,……9,运算规则为加法逢十进一,减法借一当十二进制:数码有0,1,运算规则为加法逢二进一,减法借一当二八进制:数码有0,1,2……7,运算规则为加法逢八进一,减法借一当八十六进制:数码有0,1,2……9,A,B,C,D,E,F,运算规则为加法逢十六进一,减法借一当十六2021/6/2816例:二、八、十、十六进制数大小对照表十进制01234567二进制011011100101110111八进制01234567十六进制01234567十进制89101112131415二进制10001001101010111100110111101111八进制1011121314151617十六进制89ABCDEF2021/6/2817二、整型常量1、十进制常量,如:0,129,-232、八进制常量以数字0开头,如:0127,0343、十六进制常量以0x或0X开头,如:0x23,0xAF注:C语言中不能直接表示二进制数常量例10:以下选项中可作为C语言合法整数的是____A)10110BB)0386C)0XffaD)x2a2例11:不合法的十六进制整数是_____A)0x16B)0XabcC)0x15D)oXF123CD2021/6/2818例12:以下程序运行后的输出结果是()main(){intx=0210;printf(“%X\n”,x);}说明:%X表示按十六进制数的形式输出结果输出结果:882021/6/2819三、整型变量整型变量分为2021/6/2820数据类型关键字占用的字节数数值范围基本整型[signed]int4-214783648~214783647短整型[signed]short[int]2-32768~32767长整型[signed]long[int]4-214783648~214783647无符号整型unsigned[int]40~4292967295无符号短整型unsignedshort[int]20~65535无符号长整型unsignedlong[int]40~4292967295不同类型的整型数在内存中所占用的字节数和数值范围2021/6/2821四、整数在内存中的存储形式1.有符号正整数有符号正整数的存储形式称为”原码”例:正整数10,在内存中的二进制为:(短整数)15141312111098765432100000000000001010符号位:0表示正,1表示负最小正整数(十进制数是1)00000000000000000000000000000001最大正整数是:(十进制是231-1=214783647)011111111111111111111111111111112021/6/28222.负整数C语言中,负整数以”补码”形式存放.例:求-6的在内存中的存储形式(1)求正整数6在内存中存放的原码为”0000000000000110”(2)求原码的反码:即将原码中的”0”变”1”,”1”变”0”,由此可得反码:1111111111111001(3)将反码加1,就可得-6的补码为:1111111111111010练习:求-10的补码

-10的补码是11111111111101102021/6/28233.无符号整数3130……210……数值位最大的无符号整数是11111111111111111111111111111111(十进制数是232-1=4292967295)和-1的补码在内存中的存放形式一致2021/6/2824例:有以下程序main(){unsignedinta;intb=-1;a=b;printf(“%u”,a);/*%u表示按无符号数格式输出*/}程序运行结果是____A)-1B)4292967295C)32767D)-32768B2021/6/2825第四节实型数据一、实型常量在C语言中,实型常量有两种表示形式:小数形式和指数形式。(1)小数形式如:3.141590.15812.0.0.36-18.0(2)指数形式

1e5(表示数值1×105)

1.25E+4(表示数值1.25×104)

2.0E-3(表示数值2.0×10-3)注意:指数形式实型常量要求E的前面要有数,E的后面是整数如:e51.25E2.0E1.3都是不正确的。2021/6/2826例:以下选项中合法的实型常数是_____A)5E2.0B)E-3C).2E0D)1.3E例:以下选项中,不能作为合法常量的是____A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0CB2021/6/2827二、实型变量C语言中,实型变量分为单精度(float)和双精度(double)两种。定义形式如下:

floatx,y,z;doublea,b,c;数据类型关键字占用的字节数取值范围有效数字单精度float4-1038~10387双精度double8-10308~1030815~162021/6/2828第五节算术运算符及表达式一、算术运算符和算术表达式1、算术运算符与优先级次序

高低()+-(正负号)*/%+-(加、减号)同级同级同级单目运算双目运算符2021/6/2829说明:(1)算术运算符两边的运算对象类型必须一致才能运算,运算结果的类型与运算对象类型一致。如:5/2,1/2,2*4

(2)如果算术运算符两边的运算对象类型不一致,则低类型向高类型转换。 类型从高到低(double,float,long,int,short,char)

如:5.0/2,2.5*2(3)%两边的运算对象必须是整数如:5%2,100%3,3%6,而5.4%2是错误的。如果运算对象为负时,运算结果的符号与被除数相同如:-5%2,5%-22021/6/28302、算术表达式就是用算术运算符和圆括号连接起来的式子例:表达式3.6-5/2+1.2+5%2的值是_____A)4.3B)4.8C)3.3D)3.8二、强制类型转换格式:(类型名)表达式如:(int)2.36结果为2(float)5/2结果为2.5D2021/6/2831练习:请计算下列表达式的值已知:inta=5,b=25,x=5;(1).a+b%4*(int)(2.5/0.7)(2).(float)(a+2)/2+a%b(3).(b-a)%6+a/b88.522021/6/2832第六节赋值表达式一、赋值运算符和赋值表达式赋值运算符:=使用格式:变量名=表达式常见情况说明:x+1=3

x=yx=y=25i=i+1intx;x=1.2;6.floaty;y=3;×注:=的左边只能是变量2021/6/2833例:有以下定义语句:doublea,b;intw;longc;若各变量已正确赋值,则下列选项中正确的表达式是_____A)a=a+b=b++B)w%((int)a+b)C)(c+w)%(int)aD)w=a%bC2021/6/2834二、复合赋值运算复合赋值运算符:+=,-=,*=,/=,%=含义:变量+=表达式等价于:变量=变量+(表达式)n+=1等价于表达式:n=n+(1)n-=2+y等价于表达式:n=n-(2+y)n*=m+1等价于表达式:n=n*(m+1)n/=10-m*2等价于表达式:n=n/(10-m*2)2021/6/2835例:已知变量n的初始值为8, 计算表达式n+=n*=n-2注:计算方向从右向左(右结合性)练习:已知inta=3,b=4;请计算:a+=a-=ba*=b+1a*=a/=b-22021/6/2836三、自加与自减运算符运算符:++,--如:i++,++i,x--,--yi++,++i相当于i=i+1i--,--i相当于i=i-1说明:1.增量运算的运算对象只能为变量,不能是常量或是表达式2.自加、自减运算符的结合方向是“从右到左”,如-i++.3.前缀算运符(如++i,--x),先进行自增或自减,再参与其它运算,后缀算运符(i++,x--)先参与其它运算再自增或自减2021/6/2837如:设i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论