您好,欢迎访问三七文档
1程序设计基础(1)复习参考一、C语言基础C语言程序的组成特点、标识符、C语言的数据类型、常量和变量、运算符及表达式、格式输入和格式输出函数、控制结构1、十进制整型常量、八进制整型常量和十六进制整型常量整数:十进制整数(非0开头)、八进制整型(0开头)十六进制整型(0x/0X开头)、长整型(后加l或L)实数:十进制整数、指数形式字符:‘’转义字符:\0\n\t\ddd八进制数\xdd十六进制数字符串常量:字符串结束标志:\0“”符号常量(#define)2、变量整型变量基本型intx(2字节)-32768~32767短整型shortintx(2字节)-32768~32767长整型longintx(4字节)-2,147,483,648~2,147,483,647无符号型unsignedintx(2字节)0~65535unsignedshortx(2字节)0~65535unsignedlongx(4字节)0~4,294,967,295实型变量单精度floatx(4字节)3.4x10-38~3.4x1038双精度doublex(8字节)1.7x10-308~1.7x10308字符变量:charc(1字节)在内存中的存储方式‘A’+32各类数值间的混合运算整型、字符型、单精度型、双精度型数据——可以混合运算字符型、整型——可以通用3、运算符①左结合方向的运算符:算术(%必须是整数)、关系、逻辑、逗号②右结合方向的运算符自增、自减、赋值(赋值号=左边是必须是变量)、条件③运算符的优先次序()、!++/--/-转移、算术、关系(==)、关系(==!=)、&&、||、条件(?)、赋值、逗号④混合运算中的强制类型转换⑤逻辑运算中的求值短路53&&2||84-!01||∞(结果1)0&&∞(结果0)如:a&&b&&ca0才判断a&&b例:1)-a++相当于-(a++)2)x=4,y=7求:y+=++x-3x的值5y的值93)x=4,y=7求:y=y+++x-3x的值4y的值94)a=7,x=2.5,y=4.7求:s=x+a%3*(int)(x+y)%*2/4s的值2.5000002a%3*(int)(x+y)%*2=》1(整型)/4(整型)=》0.25=》0(整型)4、printfhscanf(取地址&)中的格式控制符d,i带符号十进制形式u无符号十进制形式例3-3c字符形式s字符串形式f实数(小数)形式默认6位小数l——输出长整型或双精度数据即:printf(“%ld,%lf”,i,y)h——输出短型数据即:printf(“%hu”,a)-m.nm最小宽度n小数(实数)-左对齐5、控制语句①条件:ifelse多分支:switch分支终止:break②循环:for()while()dowhile()循环结束:continue终止循环或switch:break死循环基本例子:数列、素数、最大小、3个数排序、大小写转换二、指针与数组指针变量的定义、指针变量的赋值、对指针变量的操作、移动指针操作、指针的比较(数组)、指向指针的指针变量、C语言的内存动态分配函数、一维数组的定义和元素的引用、一维数组和指针、二维数组的定义和元素的引用、二维数组和指针、字符数组与字符串1、数组①数组名、最小(大)下标、定义、初值、引用(循环)、字符数组和字符串(初值)、二维数组下标顺序假设m×n的数组a,计算a[i][j]序号的公式:i×n+j每一维的下标从0开始,整个数组元素为:5×6=30个二维数组中元素排列的顺序是按行存放②典型例子:排序(选择、冒泡)、二维数组行列转换、矩阵求最大元素及行列号、打印图形(三角)③字符串数组函数:strcat/strcpy/strcmp/strlenscanf(“%s”,c);c不用加地址符&2、指针指向一般变量指针:定义、赋值、运算、*与&的组合使用指向数组变量:指针赋值(数组名)、指针运算(元素)、下标法(指针法)数组指针作函数参数指向字符串指针:定义、赋值、输入、输出典型例子:排序、素数、折半查找、串复制、串连接、首尾交换、成绩统计①指针的数据类型a)inti;charc;floatf;定义各种变量的数据类型3b)int*p;char*p;float*p;定义指向各种变量的指针类型c)inta[n];chara[n];floata[n];定义各种类型数组,它有n个元素d)int*p[n];char*p[n];float*p[n];char*p[]={“123”,“12”,“12345”,“1”}e)int(*p)[n];定义p为指向含n个元素的一维数组的指针变量,p的增值以一维数组的长度为单位。即:p+1指的元素是原来p指向的元素的下一个元素。例:float(*f)[5];即定义了一个指向一维浮点数的指针,*f有5个元素,f的值是该一维数组的首地址;注:f不能指向一维数组中的第j个元素。如果f指针地址为:1000当:f[0]+i,指针就指向其后的4×i个单元,即f[0]+2=1000+8=1008可用于处理二维数组(a[3][4])说明:1)f+i可表示二维数组a的第i行的地址注:f+2和*(f+2)表示第二行首地址,具有相同的值2)*(f+2)+3表示a数组第2行第3列元素地址注:(f+2)+3与*(f+2)+3的值不相同3)*(*(f+2)+3)表示a数组第2行第3列数组元素,即a[2][3]②指针的运算a)指针变量加(减)一个整数例如:p++、p--、p+i、p-i、p+=i、p-=i说明:p+i代表地址计算:p+c*i,c为系数(整c=2实c=4字符=1)表示p指向下面第i个元素b)指针变量赋值将一个变量地址赋给一个指针变量p=&a;将变量a的地址pp=array;将数组array首地址赋给pp=&array[i];将数组array第i个元素的地址赋给pp=max;max为已定义的函数,将max的入口地址赋给pp1=p2;p1和p2都是指针变量,将p2的值赋给p1注意:1)不能把一个整数赋给指针变量,即p=10002)指针变量可以有空值,即该指针变量不指向任何变量p=NULL;NULL实际是整数0c)两个指针变量可以相减如果两个指针指向同一个数组的各个元素,则两个指针变量值之差是两个指针之间的元素个数。如:p1=a[1]p2=a[5]p2-p1=5-1=4p1+p2无意义4d)两个指针变量比较如果两个指针指向同一个数组的各个元素,则两个指针变量可以比较它们的大小。即:p1p2、p2p1三、函数1、函数定义、说明、调用、返回值2、函数间的参数传递:值传递、地址传递(数组名、共享存贮区)3、头函数4、函数递归调用(阶乘)5、变量作用域局部变量:自动变量(函数内):离开函数,值消失定义autointa函数内定义静态局部(函数内):离开函数,值保留定义staticinta函数内定义寄存奇(函数内):离开函数,值消失定义registerinta函数内定义全局变量:静态外部(函数内,本文件)首字母大写使用static声明(可多次声明)定义erternintA函数外定义,用static声明(内外均可)非静态外部变量(项目内所有文件)首字母大写非动态,编译时分配内存定义erternintA函数外定义5第二部分:课程基本内容一、C语言基础1、C语言程序的组成特点C语言程序的组成特点如下:①一个C源程序由函数构成,其中至少包括一个主函数(main)函数。②C程序总是由main函数开始执行。③分号;是C语句的一部分。④C程序书写格式自由,一行内可写多条语句,且语句中的空格和回车符均可忽略不计。⑤程序的注释部分应括在/*...*/之间,/和*之间不允许留有空格;注释部分允许出现在程序中的任何位置上。2、标识符C语言的标识符可分为以下三类:①关键字:C语言共有32个关键字,每个关键字在C程序中都代表着某一固定含意,且这些关键字都不允许作为用户标识符使用。②预定义标识符:这些标识符在C语言中都具有特定含意,如C语言提供的库函数的名字和预编译处理命令。③用户标识符:用户可以根据需要对C程序中用到的变量、符号常量、自己的函数或文件指针进行命名,形成用户标识符。3、C语言的数据类型C语言的数据类型通常分为三类:①基本类型(整形int、字符型char、实型float、双精度型double、空值型void)②构造类型:结构体struct、共同体(联合)型union、枚举型enum、用户定义类型(使用关键字typedef)③派生类型:数组类型、指针类型4、常量和变量①整型常量和整型变量整型常量:C语言中的整型常量有三种形式:十进制整型常量、八进制整型常量和十六进制整型常量。整型变量:C语言中的整型变量可分为四种,它们是:基本型、短整型、长整型和无符号型,分别用int,shortint(或short),longint(或long),unsignedint(unsignedshort,unsignedlong)对它们进行定义。②实型常量和实型变量实型常量:C语言中的实型常量有两种表示形式:十进制数形式和指数形式。实型变量:C语言中的实型常量分为两种:单精度类型和双精度类型,分别用保留关键字float和double进行定义。③字符常量和字符变量字符常量:C语言的字符常量代表ASCII码字符集里的一个字符,在程序中要用单6引号括起来。如字符常量a在程序中要用′a′表示,以便与一般的用户标识符区分。字符变量:C语言中的字符变量用关键字char来说明,每个字符变量中只能存放一个字符。在一般系统中,一个字符变量在计算机内存中占一个字节。字符串常量:C语言中的字符串常量是由一对双引号括起来的字符序列。注意不要将字符常量和字符串常量混淆。例如′a′与″a″是C语言中两种完全不同类型的数据。5、算术运算表达式①算术运算符:C语言中的算术运算符包括:单目(一元)运算符++,--,-(负号),+(正号),(类型);双目(二元)运算符+,-,*,/,%。②算术表达式:C语言的算术表达式由算术运算符、函数和运算对象(操作数)组成。在对算术表达式进行运算时,应注意以下几点:a)左、右括号必须配对,运算时先计算出内括号表达式的值,再计算外层括号内表达式的值。b)双目运算符两侧的运算数的类型必须一致,所得计算结果的类型将与运算数的类型一致。c)强制类型转换运算符能将一个表达式的值转换成所需的数据类型,其一般形式为:(类型名)(表达式)d)求余运算符%两侧的运算数必须为整数,所得结果的符号与运算符左侧操作数的符号相同。e)单目运算符++(增1)、--(减1)的运算对象只能是变量,且这两种运算符既可作为前缀运算符,又可作为后缀运算符。6、算术赋值运算①赋值表达式:C语言中的=是赋值运算符,用它既可进行赋值操作又可组成一个表达式。赋值号左边必须是变量,或代表一个存储单元的表达式;右边是一个表达式。②赋值的类型转换规则:在算术赋值运算中,当赋值号右边表达式所求出值的类型与左边变量的类型不一致但都是数值型时,计算机系统将自动地把右边的数值类型转换成左边变量的类型后再进行赋值。③单目运算表达式的赋值:当把单目运算符++,--分别作为前缀运算符或后缀运算符使用时,所得到的赋值运算结果不同。④复合的赋值运算:C语言中的下述运算符既可进行算术运算又能完成赋值运算*=,/=,%=,+=,-=。⑤包含多个赋值运算的表达式:既然赋值号是一个运算符,所以在一个C语言的算术表达式中可以包含多个赋值运算符,运算顺序是自右至左。7、逗号表达式C语言中,可以用逗号运算符把两个或多个算术表达式连接起来构成逗号表达式。这种表达式的求值是从左至右,且逗号运算符是优先级别最低的一种运算符。78、关系运算和逻辑运算①关系运算符和关系运算:C语言可以提供六种关系运算符:<,>,<=,>=,==,!=。前四种关系运算符(<,>,<=,>=)的优先级相同,后两种的优先级也相同,且前四种的优先级高于后两种。关系运算的结果得一个整数值:0或1。②逻辑运算符和逻辑运算:C语言提供三种逻辑运算符:&&(逻辑与),
本文标题:程序设计基础复习
链接地址:https://www.777doc.com/doc-2150938 .html