已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C C语言复习材料范文语言复习材料范文 C语言复习材料第1章C语言概述1 计算机语言经历了四代发展 第第 一执行 第第二二代第三代高级语言 完全接近人类习惯 各种机器指令用 英文单词表示 如BASIC FORTRAN C PASCAL等 第四代甚高级语言 是一种面向对象或面向问题的高级语言 如Visual Basic 简称VB VisualC 简称VC 2 语言的发展历程73年贝尔实验室D M Ritchie设计出C语言 用C 改写UNIX内核77年出现不依赖于具体机器的C语言编译文本 系统 80年代初 美国国家标准化协会 ANSI 根据 语言问世以来各 种版本对 语言的发展和扩充 制定了ANSI C标准1987年ANSI公布C新标准87ANSI C1990年ISO 国际标准化组织 接受上述87ANSI C标准 作为ISO的C标准80年代C普及和C 推出3 语言的特点 1 语言简洁 紧凑 使用方便 灵活 32个关键字 9种控制语句 程序形式自由 2 运算符丰富 34种运算符 3 数据类型丰富 具有现代语言的各种数据结构 4 具有结构化的控制语句 是完全模块化和结构化的语言 5 语法限制不太严格 程序设计自由度大 6 允许直接访问物理地址 能进行位操作 能实现汇编语言的大部 分功能 可直接对硬件进行操作 兼有高级和低级语言的特点 7 目标代码质量高 程序执行效率高 8 程序可移植性好 与汇编语言比 基本上不做修改就能用于各种型号的计算机和各种操作系统 32个关键字auto breakcase char const continuedefault dodouble elseenum externfloat forgoto if int longregister returnshort signedsizeof staticstruct switchtypedef unsignedunion voidvolatile while9种控制语句if else for while do while continue breakswitch gotoReturn34种运算符算术运算符 关系运算符 逻辑运算符 float k h 2 可执行语句 一般由若干条可执行语句构成 3 函数体说明 1 如果不需要 也可以缺省变量定义语句 例如 例1 1程序中缺省变量定义语句 2 函数体中的变量定义语句 必须在所有可执行语句之前 下面程序中变量定义语句 int x 的位置是非法的4 C语言程序使用英文小写字母书写 C语言区分字母大小写 大写字母一般符号常量或特殊用途使用 5 所有语句都必须以分号 结束 作为语句之间的分隔符 函数的最后一个语句也必须以分号 结束 6 程序行的书写格式自由 既允许1行内写几条语句 也允许1条语句分写在几行上 7 C语言程序不使用行号 8 C语言本身没有输入输出语句 输入和输入操作是由库函数scanf和printf等函数来实现的 9 在源程序中 凡是用 和 括起来的文字 都是注释 C语言的注释格式为 1 和 必须成对使用 且 和 以及 和 之间不能有空格 否则都出错 2 注释的位置 可以单占1行 也可以跟在语句的后面 3 如果1行写不下 可另起1行继续写 4 注释中允许使用汉字 在非中文操作系统下 看到的是一串乱码 但不影响程序运行 第2章程序的灵魂 算法1 算法的特性 1 有穷性一个算法总是执行有限步后结束 每一步在有限时间内 完成 2 确定性算法中每一个步骤应当是确定的 而不能应当是含糊的 模棱两可的 输入一个算法有0个或多个输入的外界量 输出 一个算法有一个或多个输出的量 它们是与输入有某种关系 的量 3 有效性算法中每一个步骤应当能有效地执行 并得到确定的结 果 2 一个流程图包括以下几部分 1 表示相应操作的框 2 带箭头的流程线 3 框内外必要的文字说明注意流程线不要忘记画箭头 用流程图 表示算法直观形象 比较清楚地显示出各个框之间的逻辑关系 3 三种基本结构的表示 1 顺序结构 2 选择结构 3 循环结构a 当型循环b 直到型循环4 三种基本结构的特点 1 只有一个入口 2 只有一个出口 3 不存在死语句 4 不存在死循环5 结构化程序设计思想自顶向下 逐步细化 模 块化自顶向下先从全局 整体设计逐步细化将一个问题分解成几个 较小的问题解决模块化将一个大任务分解成若干个较小的部分 每个 部分承担一定功能 称为 功能模块 第3章数据类型 运算符与表 达式1 常量 常量 在程序运行过程中 其值不能改变的量称为常量 可为任意数据类型 符号常量标识符代表常量定义格式 define变量 在程序运行过程中 其值可以被改变的量称为 变量 可以为任意数据类型 变量定义的一般格式 数据类型变量1 变量2 变量n 变量的三个要素 1 变量名 每个变量都必须有一个名称 2 变量值 在程序运行过程中 变量值存储在内存中 在程序中 通过变量名来引用变量的值 3 变量的类型标识符命名规则 语言中 用标识符来区分不同文 件 函数 变量 1 标识符有效字符只能由字母 数字和下划线组成 且以字母或 下划线开头 2 标识符有效长度TC V2 0标识符的有效长度为 个字符 随系统而异 但至少前 个字符有效 如果超长 则超长部分被舍弃 3 C语言的关键字不能用作变量名 4 标识符命名通常应选择能表示数据含义的英文单词 或缩写 作变量名 或汉语拼音字头作变量名 通过变量名就知道变量值的含义 做到 见名知意 注意C语言对英文字母的大小敏感 即同一字母的大小写 被认为是 两个不同的字符 变量名total与变量名TOTAL ToTaL totAl等不是同一个变量 习惯 上 变量名和函数名中的英文字母用小写 以增加可读性 整型数据在内存中的存放 数值是以补码表示的 一个正数的补码与原码相同 一个负数的补码求法原码的二进制形 式 取反求得反码 再加1 得到负数的补码 2 整型变量的分类有符号基本整型 signed int有符号短整型 signe d short int 有符号长整型 signed long int 无符号基本整型unsi gned int无符号短整型unsigned short int 无符号长整型unsigned long int 整数类型的有关数据类型类型说明符长度数的范围基本型 int2字节 32768 32767短整型short2字节 215 215 1长整型long4字节 231 231 1无符号整型unsigned2字节0 65535无符号短整型unsigned short2字节0 65535无符号长整型unsigned long4字节0 232 1 整型常量的类型 1 一个整数 如果其值在 32768 32767范围内 认为它是int型 它可以赋值给int型和long int型变量 2 一个整数 如果其值超过了上述范围 而在 2147483637 2147483647范围内 则认为它是为长整型 可以将它赋值给一个long int型变量 3 一个整常量后面加一个字母u或U 认为是unsigned int型 如12345u 在内存中按unsigned int规定的方式存放 存储单元中最高位不作为符号位 而用来存储 数据 如果写成 12345u 则先将 12345转换成其补码53191 然后按无符号数存储 4 在一个整常量后面加一个字母l或L 则认为是long int型常量 用于函数调用中 如果函数的形参为long int型 则要求实参也为long int型 规范化的指数形式在字母e 或E 之前的小数部分中 小数点左边 应有一位 且只能有一位 非零的数字 3 浮点型变量浮点型变量的 分类浮点型变量分为单精度 float型 双精度 double型 和长 双精度型 long double 三类形式 类型位数数的范围有效数字float3210 37 10 386 7位double型6410 307 10 30815 16位long double12810 4931 10 493218 19位说明一个浮点型变量只能保证的有效数字是7位有效数 字 后面的数字是无意义的 并不准确地表示该数 应当避免将一个很大的数和一个很小的数直接相加或相减 否则就 会 丢失 小的数4 字符型数据字符常量 用单引号包含的一个字符 是字符型常量 只能包含一个字符转义字符 有些以 开头的特殊 字符称为转义字符转义字符 n v r a ddd含义换行垂直制表回车 响铃单引号3位8进制数代表的字符转义字符 t b f xhh含义水 平制表退格换页反斜线双引号2位16进制数代表的字符注意事项单撇 号中的字符不能是 或者 一个字符占一个字节 字符常量的值该字 符的ASCII码值思考 9 和9的区别5 字符变量字符型变量用来存放 字符常量 注意只能放一个字符 字符变量的定义形式如下char c1 c2 在本函数中可以用下面语句对c1 c2赋值c1 a c2 b 一个字符变量在内存中占一个字节 字符数据在内存中的存储形式及其使用方法一个字符常量存放到一 个字符变量中 实际上并不是把该字符的字型放到内存中去 而是 将该字符的相应的ASCII代码放到存储单元中 这样使字符型数据和整型数据之间可以通用 例3 6向字符变量赋以整数 includevoid main char c1 c2 c1 97 c2 98 printf c c n c1 c2 printf d d n c1 c2 例3 7大小写字母的转换 includevoid main char c1 c2 c1 a c2 b c1 c1 32 c2 c2 32 printf c c c1 c2 6 字符串常量字符串常量是一 对双撇号括起来的字符序列 是字符常量 是字符串常 量 二者不同 不能把一个字符串常量赋给一个字符变量 规定在每一个字符串常量的结尾加一个 字符串结束标志 以 便系统据此判断字符串是否结束 规定以字符 作为字符串结束标志 说明在第 和第4行中 将整数97和98分别赋给c1和c2 它的作用相 当于以下两个赋值语句c1 c2 因为 a 和 b 的ASCII码为97和98说明程序的作用是将两个小写字母a和b转换成大 写字母A和B 从 代码表中可以看到每一个小写字母比它相应的大写字 母的ASCII码大32 语言允许字符数据与整数直接进行算术运算 字符常量 A 与字符串常量 A 的区别 1 定界符不同字符常量使用单引号 A 而字符串常量使用双引 号 2 存储要求不同字符常量存储的是字符的ASCII码值 而字符串 常量 除了要存储有效的字符外 还要存储一个结束标志 0 7 变量赋初值 1 语言允许在定义变量的同时使变量初始化 2 可以使被定义的变量的一部分赋初值 如 int a b c 5 表示指定 为整型变量 但只对 初始化 c的 初值为 3 如果对几个变量赋以同一个初值 应写成int a 3 b 3 c 3 表示 的初值都是 不能写成 int a b c 3 注意初始化不是在编译阶段完成的而是在程序运行时执行 本函数时赋初值的 相当于有一个赋值语句 8 算术运算符和算术表达式基本的算术运算符 加法运算或正值运算 符 减法运算或负值运算符 乘法运算符 除法运算符 求商 两个整数相 除结果为整数 模运算符 求余 要求两侧均为整型数据9 赋值运算 符和赋值表达式如果赋值运算符两侧的类型不一致 但都是数值型 或字符型时 在赋值时要进行类型转换 将浮点型数据 包括单 双精度 赋给整型变量时 舍弃浮点数 的小数部分 如 为整型变量 执行 i 3 56 的结果是使 的值为 以整数 形式存储在整型变量中 将整型数据赋给单 双精度变量时 数值 不变 但以浮点数形式存储到变量中如 将23赋给float变量 即 执行 23 先将23转换成23 00000 再存储在 中 将23赋给double型变量 即执行 23 系统将23补足有效位数 字为23 00000000000000 然后以双精度浮点数形式存储到变量 中 将一个double型数据赋给float变量时 截取其前面7位有效数字 存放到float变量的存储单元 4个字节 中 但应注意数值范围不能溢出 如 float f double d 123 456789e100 f d 就出现溢出的错误 如果将一个float型数据赋给double变量时 数值不变 有效位数扩 展到16位 在内存中以8个字节存储 字符型数据赋给整型变量时 由于字符只占1个字节 而整型变量为 个字节 因此将字符数据 个二进位 放到整型变量存储单元的低 位中 第一种情况低位对应 高位补零第二种情况符号扩展 将一个int short long型数据赋给一个char型变量时 只将其低8位原封不动 地送到char型变量 即截断 例如int i 289 char c a c i 6将带符号的整型数据 int型 赋给long型变量时 要进行符号扩展 将整型数的16位送到long型低16位中 如果int 型数据为正值 符号位为 则long型变量的高16位补 如果i nt型变量为负值 符号位为 则long型变量的高16位补 以 保持数值不改变 反之 若将一个long型数据赋给一个int型变量 只将long型数据中 低16位原封不动地送到整型变量 即截断 将unsigned int型数据赋给long int型变量时 不存在符号扩展问题 只需将高位补 即可 将一个unsigned类型数据赋给一个占字节数相同的非unsigned型整 型变量 例如unsigned int int unsigned long long unsigned short short 将unsigned型变量的内容原样送到非unsigned型变量中 但如果数据范围超过相应整型的范围 则会出现数据错误 复合的赋值运算符 a b 其中a为变量 b为表达式 a b 将有 下划线的 a 移到 右侧 a a b 在 左侧补上 变量名a 如果 是包含若干项的表达式 则相当于它有括号 如 x y 3 x y 3 语言规定可以使用 种复合赋值运算符 左 值 lvalue 赋值运算符左侧的标识符 变量可以作为左值 而表达 式就不能作为左值 如a b 常变量也不能作为左值 右值 lvalue 出现在赋值运算符右侧的表达式左值也可以出现在赋值运算符右侧 因而左值都可以作为右值 赋值表达式中的 表达式 又可以是一个赋值表达式 例如 a b 5 分析 括弧内的 b 5 是一个赋值表达式 它的值等 于5 执行表达式 a b 5 相当于执行 b 5 和 a b 两个赋值表 达式 赋值运算符按照 自右而左 的结合顺序 因此 b 5 外面 的括弧可以不要 即 a b 5 和 a b 5 等价 分析下面的赋值表达式 a 3 5 4 3分析 先执行括弧内的运算 将15赋给a 然后执行4 3的运算 得12 再把12赋给a 最后a的值为12 整个表达式的值为12 可以看到 a 3 5 出现在赋值运算符的左侧 因此赋值表达式 a 3 5 是左值 注意 在对赋值表达式 a 3 5 求解后 变量a得到值15执行 a 3 5 4 3时 实际上是将4 3的积12赋给变量a 而不是赋给3 5 赋值表达式也可以包含复合的赋值运算符 如a a a a分析 此赋值表达式的求解步骤如下 先进行 的运算 它相当于 a的值为 144 132 再进行 的运算 相当于 a 132 a的值为 132 132 264 10 逗号运算符和逗号表达式逗号运算符 将两个表达式连接起来 又 称为 顺序求值运算符 一般形式 表达式 表达式 求解过程先 求解表达式 再求解表达式 整个逗号表达式的值是表达式 的值 例逗号表达式 5 分析 赋值运算符的优先级别高于逗 号运算符 因此应先求解 5 一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式如 a 53 5先计算出 的值等于 再进行 的运算得60 但 值未变 仍为15 再进行 得 即 整个表达式的值为 逗号运算符是所有运算符中级别最低的例 3例1a 3 5 a 4 a 15 表达式值60a 3 5 a 4 a 5 a 15 表达式值20例2x a 3 6 3 赋值表达式 表达式值18 x 18x a 3 6 a 逗号表达式 表达式值18 x 3例3a 1 b 2 c 3 pr intf d d d a b c 1 2 3printf d d d a b c b c 3 2 3例4printf d d d a b c 其中逗号起分隔 作用printf d d d a b c b c 其中逗号为逗号运算符1 1 自增 自减运算符作用使变量值加1或减1种类前置 i i 先执行i 1或i 1 再使用i值 后置i i 先使用i值 再执行i 1或i 1 例j 3 k j k 4 j 4j 3 k j k 3 j 4j 3 printf d j 4赋值表达式 将一个逗号表达式的值赋给 的值等于 逗号表达式 包括一个赋值表达式和一个算术表达式 的值为 整个逗号表达式的值为18 j 3 printf d j 3a 3 b 5 c a b c 20 a 4a 3 b 5 c a b c 15 a 4注意说明只能用于变量 不能用于常量或 表达式 结合方向 自右向左 优先级别 自增 减 运算常用于循环语句中循环变量自动加 减 1或指针变 量 使指针指向下一个地址表达式中包含多个自加 自减运算时 很容易出错例1如i 3 则k i 结果k 3 i 4例2如i 3 则 i i i 结果9 i 6例3如i 3 则 i i i 结 果18 i 6第四章最简单的C程序设计 顺序程序设计C语言本身不提供输入输出语句 输入和输出操作是由C 函数库中的函数来实现的字符输入函数 getchar字符输出函数 putc har格式输入函数 scanf格式输出函数 printf字符串输入函数 gets 字数串输出函数 puts1 putchar函数 字符输出函数 putchar函数 是字符输出函数 其功能是在显示器上输出单个字符 其一般形式为putchar c c可以是变量或者常量 例4 1 输出单个字 符 includemain char a B b o c y putchar a putchar n putchar b pu tchar n putchar c putchar n 2 getchar函数 字 符输入函数 getchar函数的功能是从键盘上输入一个字符 其一般形式为getchar getchar函数没有参数 函数的值就是输 入的字符 例4 2 输入单个字符 includevoid main char c printf input acharacter n c getchar putchar c 3 printf函数 格式输 出函数 printf函数的作用是按用户指定的格式 输出若干任意类 型的数据 一般形式printf 格式控制字符串 输出表列 格式说明是以 开 头 在 后面跟有各种格式字符 以说明输出数据的类型 形式 长 度 小数位数等 结果B oy程序最后两行可用下面两行的任意一行代替 结果相同putchar g etchar printf c getchar 如 d 表示按十进制整型 输出 ld 表示按十进制长整型输出 c 表示按字符型输出 等 普通字符在输出时原样输出 在显示中起提示作用 格式字符 1 d格式符 用来输出十进制整数 有几种用法 d 按整型数据的实际长度输出 md m为指定的输出字段的宽度 如果数据的位数小于m 则左端补空格 若大于m 则按实际位数输 出 如a 123 d 12345printf 4d 4d a b 结果 123 12345 ld 输出长整型数据 如long a 135790 printf ld a 2 o或lo或mo格式符 以八进制形式输出整数 3 x或lx或mx格式符 以十六进制形式输出整数 4 u格式符 用来输出unsigned型数 5 c格式符 用来输出一个字符 如charc a printf c c 输出a也可以指定输出宽度 如p rintf 3c c 输出 a 6 s格式符 用来输出一个字符串 有几种用法 s 例如printf s CHINA 输出CHINA ms 输出的字符串占m列 如字符串长度大于m 则按字符串实际长度 输出 若字符串长度小于m 则左补空格 ms 同上 右补空格 m ns 输出占m列 但只取字符串中左端n个字符 左补空格 m ns 输出占m列 但只取字符串中左端n个字符 右补空格 例4 5 字符串的输出 main printf 3s 7 2s 4s 5 3s n CHINA CHINA CHINA CHINA 结果为C HINA CH CHIN CHI 7 f格式符 用来输出实数 包括单 双精度 以小数形式输出 有以下几种用法 f 不指定字段宽度 由系统自动指定 使整数 部分全部如数输出 并输出6位小数 例4 6 输出实数时的有效位数 main float x 111111 111 y 222222 222 printf f x y 结果333333 32 8125单精度只有7位有效数字 例4 7 输出双精度数时的有效位 main double x y x 1111111111111 111111111 y 2222222222222 222222222 pri ntf f x y 结果为3333333333333 333010双精度只有16位有 效数字 m nf指定输出的数据占m列 其中有n位小数 如果数值长度小于m位 则左端补空格 m nf同上 右端补空格 例4 8 输出实数时指定小数位数 main float f 123 456 printf f 10f 10 2f 2f 10 2f n f f f f f 结果123 456001 123 456001 123 4 6 123 46 123 46 8 e格式符 以指数形式输出实数 e 不指定输出数据所占的宽 度和数字部分的小数位数 数值按规范化指数形式输出 printf e 123 456 输出结果 1 234560e 002 m ne和 m ne设f 123 456printf e 10e 10 2e 2e 10 2e f f f f 1 234560e 002 1 234560e 002 1 23e 002 1 23e 002 1 23e 002 9 g格式符 用来输出实数 它根据数值的大小 自动选f格式或e 格式 选择输出时占宽度较小的一种 且不输出无意义的0 f 123 456printf f e g f f f 123 4560011 234560e 00212 3 456001在使用printf函数时 还有几点要说明 1 除了X E G外 其他格式符必须用小写字母 2 可以在printf函数中的 格式控制 字符串内包括 转义字符 如 n t r等 3 上面介绍的 d o x u c s f e g 等字符 用在 后面是 格式符 不在 后面就是普通字符 例如printf c cf fs s c f s 如果想输出字符 则在 格式控制 字符串中用 表示 如printf f 1 0 3 输出0 333333 4 scanf函数 格式输入 函数 一般形式scanf 格式控制字符串 地址表列 地址是由地 址运算符 输入12345678只把12345赋予变量a 其余部分被 截去 2 在 后面加一个 符 表示该输入项 读入后不赋予相应的变 量 即跳过该输入值 scanf d d d 当输入为123时 把1赋予a 2被跳过 3 赋予b 3 长度 长度格式符为l和h l表示输入长整型数据 如 ld 和双精 度浮点数 如 lf h表示输入短整型数据 4 scanf函数中没有精度控制 如scanf 5 2f 是非法的 不能企图用此语句输入小数为2位的实数 使用scanf函数时应注意的问题 1 scanf中要求给出变量地址 如给出变量名则会出错 如scanf d a 是非法的 应改为saf d 才是合法的 2 如果在 格式控制 字符串中除了格式说明以外还有其他字符 则在输入数据时在对应位置应输入与这些字符相同的字符 scanf d d 输入时 两个数据之间应空2个或更多的 空格 3 在输入字符数据时 若格式控制串中无非格式字符 则认为所 有输入的字符均为有效字符 例如scanf c c c 输入为d e f则把 d 赋予a 赋 予b e 赋予c 只有当输入为def时 才能把 d 赋于a e 赋予b f 赋予c 4 在输入数据时 遇到以下情况时该数据认为结束格式字符意义d 输入十进制整数o输入八进制整数x输入十六进制整数u输入无符号十 进制整数f或e输入实型数 用小数形式或指数形式 c输入单个字符s 输入字符串遇空格 TAB或回车作间隔 按指定宽度结束 如 3d 只取3列 遇非法输入 第五章选择结构程序设计1 逻辑运算符和逻辑表达式运算逻辑 与 逻辑 或 逻辑 非 运算符 else 语句组2 1 if语句中的 表达式 必须用 和 括起来 2 else子句 可选 是if语句的一部分 必须与if配对使用 不 能单独使用 3 当if和else下面的语句组 仅由一条语句构成时 也可不使用 复合语句形式 即去掉花括号 2 if语句的执行过程 1 缺省else子句时当 表达式 的值不等于0 即判定为 逻辑 真 时 则执行语句组1 否则直接转向执行下一条 2 指定else子句时当 表达式 的值不等于0 即判定为 逻辑 真 时 则执行语句组1 然后转向下一条语句 否则 执行语句 组2 3 if语句的嵌套与嵌套匹配原则if语句允许嵌套 所谓if语句的嵌套是指 在 语句组1 或 和 语句组2 中 又包含有if语句的情况 if语句嵌套时 else子句与if的匹配原则与在它上面 距它最近 且尚未匹配的if配对 为明确匹配关系 避免匹配错误 强烈建议将内嵌的if语句 一律 用花括号括起来 3 条件运算符与表达式一般格式expr1 expr2 expr3条件运算符优先 级高于赋值运算符 低于关系运算符和算术运算符 表达式2 和 表达式3 不仅可以是数值表达式 还可以是赋值 表达式或函数表达式 条件表达式中 表达式 的类型可以与表达式 和表达式 的类型 不同 4 switch语句 开关分支语句 一般形式switch 表达式 case E1 语句组1 break case E2 语句组2 break case En 语句组n break default 语句组 说明 1 switch后面的 表达式 可以是int char和枚举型中的一 种 有限的个数 2 每个case后面 常量表达式 的值 必须各不相同 否则会出 现相互矛盾的现象 即对表达式的同一值 有两种或两种以上的执 行方案 3 case后面的常量表达式仅起语句标号作用 并不进行条件判断 系统一旦找到入口标号 就从此标号开始执行 不再进行标号判断 所以必须加上break语句 以便结束switch语句 4 各case及default子句的先后次序 不影响程序执行结果 5 多个case子句 可共用同一语句 组 例如 case10 和 case9 共用语句 printf grade A n break case5 case0 共用语句 printf grade E n break 6 用switch语句实现的多分支结构程序 完全可以用if语句或if 语句的嵌套来实现 例5 1 void main int x 1 y 0 a 0 b 0 switch x case1 switch y case0 a break c ase1 b break case2 a b break case3 a b printf na d b d n a b 运行结果a 2 b 1 例5 2 求一元二次方程ax 2 bx c 0的解 includemain float a b c disc x1 x2 p q scanf f f f printf The equation if fabs a 1e 6 printf is notquadratic else disc b b 4 a c if fabs disc 1e 6 x1 b sqrt disc 2 a x2 b sqrt disc 2 a printf x1 7 2f x2 7 2f n x1 x2 else p b 2 a q sqrt fabs disc 2 a printf x1 7 2f 7 2f i n p q printf x2 7 2f 7 2fi n p q 第6章循环控制1 while语句一般形式循环变量 的初始值 while 循环条件表达式 循环体语句 2 do while语句一般形式循环变量的初始值 do循环体语句 while 循环 条件表达式 do while同while语句的重要区别循环控制在循环体之前 只有当while 后的表达式为非0时 才可能执行循环体 循环体有可能一次都不执 行 总是先执行一次循环体 然后再求表达式的值 因此 无论表达式 的值是0还是非0 循环体至少执行一次 3 for语句一般形式for 循环变量赋初值 循环条件 循环变量增值 循环体语句 省略表达式1相当于省去了为循环变量赋初值 此 时应在for语句之前给循环变量赋初值省略表达式2即不判断循环条 件 也就是认为表达式2始终为真 这时应在循环体内设法结束循环 否则将成为死循环省略表达式3即省去修改循环变量的值 但此时 应在循环体内设法结束循环省略三个表达式即不为循环变量赋初值 不设置循环条件 认为表达式2为真值 不修改循环变量的值 无 终止地执行循环体 此时应在循环体内设法结束循环 否则会成为死循环循环的嵌套 w hile 几种循环的比较1 四种循环都可以用来处理同一问题 一般 情况下它们可以互相代替 但一般不提倡用goto型循环 2 While和do while循环 只在while后面指定循环条件 在循环体中应包含使循 环趋于结束的语句 如i 或i i 1等 3 用while和do while循环时 循环变量初始化的操作应在while和do while语句之前完成 而for语句可以在表达式1种实现循环变量的初始化 4 While循环 do while循环和for循环 可以用break语句跳出循环 用continue语句 结束本次循环 而对goto语句和if语句构成的循环 不能用break和continue语句进 行控制 break语句可以跳出本层循环continue语句可以结束本次循环 第7章数组数组是可以在内存中连续存储多个元素的结构数组中的所 有元素必须属于相同的数据类型1 一维数组的定义和引用定义方式 类型说明符数组名 常量表达式 一维数组的初始化在定义数组时 对数组元素赋以初值 1 while while 2 do do while 3 while do while 表示元素个数引用时下标 从0开始可以只给一部分元素赋值int a 10 0 1 2 3 4 定义a数组元素有10个元素 但花括弧内只提供 5个初值 这表示只给前面5个元素赋初值 后5个元素值为0如果想 使一个数组中全部元素值为0 可以写成int a 10 0 0 0 0 0 0 0 0 0 0 或int a 10 0 不能写成int a 10 0 10 在对全部数组元素赋初值时 可以不指定数组长度 例如例7 1用数组来处理求Fibonai数列问题 includemain int i int f 20 1 1 for i 2 i 20 i f i f i 2 f i 1 for i 0 i 20 i if i 5 0 printf n int a 5 1 2 3 4 5 可以写成int a 1 2 3 4 5 但若数组长度与提供初值的个数不相同 就不能 省略长度int a 10 1 2 3 4 5 18889899879871113131441597159722212123325 84258433343437741814181555555610676567651144233377610printf 12d f i printf n 2 二维数组的定义和引用定义方式 数据类型数组名 常量表达式1 常量表达式2 二维数组元素的引 用形式数组名 下标1 下标2 注意下标不能越界二维数组元素的 初始化分行初始化按元素排列顺序初始化例7 2求3 4矩阵中最大元 素值及其行列号 includemain int a 3 4 1 2 3 4 9 8 7 6 10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卫浴合合同(标准版)
- 保密义务劳务合同(标准版)
- 美国医患关系解析
- 食堂青年安全培训讲解
- 2024年唐山市教育系统教师招聘真题
- 2025年一建管理案例题库及答案
- 2025年安全员《B证》考试题库及答案
- 2025年江西艺术职业学院单招职业倾向性考试题库及参考答案详解ab卷
- 2025年鞍钢安全培训试题及答案
- 2025年开办药店的试题及答案
- 中国华能集团公司招聘笔试题库及答案2025
- 2025年大学试题(计算机科学)-计算机组成原理历年参考题库含答案解析(5套典型题)
- 事业单位奖励性绩效工资分配方案
- 2025年仓储员笔试题库及答案
- 护理学新进展
- 2025年教育政策法规考试真题试题及答案
- 人工智能通识(微课版)教学大纲
- 健康养老机构投资融资计划书
- 2025年公共政策分析考试试题及答案
- 燃气项目技术协议书
- 新版安责险培训
评论
0/150
提交评论