山科c语言考试重点_第1页
山科c语言考试重点_第2页
山科c语言考试重点_第3页
山科c语言考试重点_第4页
山科c语言考试重点_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章1整型用于存储整数类型整形包括短整型、整形和长整形。短整型Short int  或者 short16位机上的范围:-32768 +32767 整型Int16位上的范围:-32768 +32767 32位上的范围: -21474836482147483648长整型Long int 或者 long32位上的范围: -21474836482147483648C语言规定short <= int <=long int关键字 unsigned 无符号 unsigned int 表示无符号整型,只能表示正整数2浮点型用于存储带小数位数的数据单精度浮点型和双精度

2、浮点型单精度浮点型Float 型占4个字节(32位)双精度浮点型Double 型占8个字节(64位)3标识符命名规则字母、数字和下划线组成的名称字母或者下划线开头区分大小写 关键字不能作为标识符4 数据类型关键字(12个)(1) char :声明字符型变量或函数 (2) double :声明双精度变量或函数 (3) enum :声明枚举类型 (4) float:声明浮点型变量或函数 (5) int: 声明整型变量或函数 (6) long :声明长整型变量或函数 (7) short :声明短整型变量或函数 (8) signed:声明有符号类型变量或函数 (9) struct:声明结构体变量或函数

3、 (10) union:声明共用体(联合)数据类型 (11) unsigned:声明无符号类型变量或函数 (12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用) 控制语句关键字(12个): (1) for:一种循环语句(可意会不可言传) (2) do :循环语句的循环体 (3) while :循环语句的循环条件 (4) break:跳出当前循环 (5) continue:结束当前循环,开始下一轮循环 (1)if: 条件语句 (2)else :条件语句否定分支(与 if 连用) (3)goto:无条件跳转语句 (1)switch :用于开关语句 (2)case:开关

4、语句分支 (3)default:开关语句中的“其他”分支(4) return :子程序返回语句(可以带参数,也看不带参3 存储类型关键字(4个) (1) auto :声明自动变量 一般不使用 (2)extern:声明变量是在其他文件正声明(3)register:声明积存器变量 (4)static :声明静态变量 4 其它关键字(4个): (1)const :声明只读变量 (2)sizeof:计算数据类型长度 (3)typedef:用以给数据类型取别名(当然还有其他作用 (4)volatile:说明变量在程序执行中可被隐含地改变 第三章 1警报(响铃)符: a回退符:b换行符:n水平制表符:t算

5、法1一个程序应包括两个方面的内容:l对数据的描述:数据结构(data structure)l对操作的描述:算法(algorithm)2数据结构 + 算法 = 程序 完整的程序设计应该是: 数据结构算法程序设计方法语言工具3计算机算法可分为两大类别:数值运算算法:求数值解,例如求方程的根、求函数的定积分等。非数值运算:包括的面十分广泛,最常见的是用于事务管理领域,例如图书检索、人事管理、行车调度管理等。4有50个学生,要求将他们之中成绩在80分以上者打印出来。设n表示学号, n1代表第一个学生学号, ni代表第i个学生学号。用G代表学生成绩 , gi代表第i个学生成绩,算法表示如下: S1:1=

6、i S2:如果gi80,则打印和,否则不打印。 S3:i+1=i S4:如果i50,返回S2,继续执行。否则算法结束5 判定20002500年中的每一年是否闰年,将结果输出S1:2000=yearS2:若y不能被4整除,则输出y “不是闰年”。然后转到S6。S3:若y能被4整除,不能被100整除,则输出y “是闰年”。然后转到S6。S4:若y能被100整除,又能被400整除,输出y“是闰年”,否则输出“不是闰年”。 然后转到S6。S5: 输出y “不是闰年”。S6:y+1yS7:当y2500时,转S2继续执行,如y2500,算法停止。6 1-1/2+1/3. S1:sign=1 S2:sum=

7、1 S3:deno=2 S4:sign=(-1)×sign S5:term=sign×(1/deno) S6:sum=sum+term S7:deno=deno+1 S8:若deno100返回S4,否则算法结束。7 对一个大于或等于3的正整数,判断它是不是一个素数S1:输入n的值S2:i=2 (i作为除数)S3:n被i除,得余数rS4:如果r=0,表示n能被i整除,则打印n“不是素数”,算法结束。否则执行S5S5:i+1=iS6:如果in-1,返回S3。否则打印 n “是素数”。然后结束。8算法的特性有穷性:包含有限的操作步骤确定性:算法中的每一个步骤都应当是确定的 有零个

8、或多个输入:输入是指在执行算法时需要从外界取得必要的信息 有一个或多个输出:算法的目的是为了求解,“解” 就是输出 有效性:算法中的每一个步骤都应当能有效地执行,并得到确定的结果 9算法的表示可以用不同的方法表示算法,常用的有:自然语言,传统流程图,结构化流程图,伪代码,PAD图10一个流程图包括以下几部分 :(1)表示相应操作的框;(2)带箭头的流程线;(3)框内外必要的文字说明。11三种基本结构 Bohra和Jacopini提出了以下三种基本结构: 顺序结构、选择结构、循环结构用这三种基本结构作为表示一个良好算法的基本单元。12三种基本结构的共同特点:(1)只有一个入口; (2)只有一个出

9、口;(请注意:一个菱形判断框有两个出口,而一个选择结构只有一个出口。不要将菱形框的出口和选择结构的出口混淆。)(3)结构内的每一部分都有机会被执行到;(4)结构内不存在“死循环”(无终止的循环)13N-S图表示算法的优点比文字描述直观、形象、 易于理解比传统流程图紧凑易画。尤其是它废除了流程线,整个算法结构是由各个基本结构按顺序组成的,N-S流程图中的上下顺序就是执行时的顺序。用N-S图表示的算法都是结构化的算法,因为它不可能出现流程无规律的跳转,而只能自上而下地顺序执行14用伪代码表示算法概念:伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。特点:它如同一篇文章一样 ,自上而下

10、地写下来。每一行(或几行)表示一个基本操作。它不用图形符号,因此书写方便 、格式紧凑,也比较好懂,也便于向计算机语言算法(即程序)过渡。用处:适用于设计过程中需要反复修改时的流程描述。15 结构化程序设计方法自顶向下;逐步细化;模块化设计;结构化编码。第4章 表达式1一元运算符: 强调某数值常量是正的还是负的关于算术运算符,我们需要注意:% 求余运算符只能是整型,除此之外,整型、浮点型都可以。/ 如果两个操作数都是整数时,结果会截取出整数出来。% 和 / 的右操作数为零时,会导致未定义的行为出现。2优先级算术运算符的优先级规则:最高优先级: * / % + - (二元运算符)最低优先级: +

11、- (一元运算符)3结合性:相同优先级下的运算符:二元运算符采用左结合的形式一元运算符采用右结合的形式4 i+ 与 +i 的区别:i+ 先执行i 再执行加1操作+i 先执行加1操作,再执行i的操作第五章1关系运算符关系运算符的优先级低于算术运算符,关系运算符是左结合< ,> ,<=, >=检测j在i和k中间用-i<j&&j<k2判等运算符判等运算符的优先级低于关系运算符,左结合等于 =不等于 != i<j=j<k等价于(i<j)=(j<k)3逻辑运算符OR 或 |, 二元运算符 左结合AND与 && 二

12、元运算符 左结合NOT 非 ! 一元运算符 右结合4 !的优先级与一元+号相同&& | <判等<关系<运算5 if语句6 条件表达式语句1?语句2:语句3 意思是若1成立则计算2,结果就是2的输出结果;否则计算3,输出3的结果条件运算符的优先级只比赋值运算符高,比其他都低7 switch语句Switch(表达式)case常数表达式1:语句1; case常数表达式2:语句2;.case常数表达式n:语句n;Default:语句n+1表达式要求是整型,case后边就是常数不含变量第六章1 。 While语句While(表达式)语句2 do语句Do语句while(表

13、达式)3 for语句For(表达式1;表达式2;表达式3)语句 循环嵌套1-2-3不成立语句第七章1.C语言的基本(内置的)类型:整型(int),包括长整型、短整型和无符号整型浮点型,包括浮点型 (float), 双精度浮点型(double)和长双精度浮点型(long double) 字符型(char)布尔型(Bool (C99) )2.整型又分为两类:有符号的和无符号的。在有符号数中,如果数为正数或零,那么最左边的位(符号位)为0,如果是负数,符号位为1。最大的16位整数的二进制表示形式是0111111111111111, 对应的值是32,767 (215 1)。最大的32位整数是01111

14、111111111111111111111111111,数值为2,147,483,647 (231 1)。不带符号位的整数(最左边的位是数值的一部分)称为无符号整数。最大的16位无符号整数65,535 (216 1)。最大的32位无符号整数是4,294,967,295 (232 1)。3.为了告诉编译器变量没有符号位,需要把它声明成unsigned类型。无符号数主要用于系统编程和低级的、与机器相关的应用4.int型通常有32位,但在一些老的CPU上可能是16位的。长整型比一般int型具有更多的位,短整型则具有更少的位。5.关键字(说明符)long、short以及signed、unsigned可

15、以与int组合起来构造int类型.关键字的顺序没有要求,单词int也可以省略(long int可以缩写为long)6.short int,unsigned short int,int,unsigned int,long int,unsigned long int 6种整型的取值范围顺机器的不同而不同。 然而,C标准要求short int、int和long int中的每一种类型都要覆盖一个确定的最小取值范围。其次,int类型不能比short int类型短,而long int不能比int类型短。7. 常量是在程序中以文本形式出现的数。C语言允许用十进制、八进制和十六进制形式书写整型常量。8.八进制

16、数是用07的数字编写的。 每一位表示一个8次幂。八进制数237表示成十进制数为:2 × 82 + 3 × 81 + 7 × 80 = 128 + 24 + 7 = 159。9.十六进制数是用09的数字加上AF的字母编写的,其中字母AF分别1015的数。十六进制数1AF 的十进制数值是 1 × 162 + 10 × 161 + 15 × 160 = 256 + 160 + 15 = 431。10.十进制常量包含数字09,但是一定不能以零开头:15 255 32767八进制常量只包含数字07,而且必须要以零开头:017 0377 0777

17、77十六进制常量包含数字09和字母af,而且是以0x开头:0xf 0xff 0x7fff十六进制常量中的字母即可以使大写字母也可以是小写字母11.十进制常量的类型通常是int。对于八进制或十六进制常量,规则存在轻微的不同:编译器将遍历int, unsigned int, long int和 unsigned long int 类型,直到找到适合的表示常量的类型。12.为了强制内置编译器把常量作为长整型数来处理,只需在后边加上一个字母L(或l):15L 0377L 0x7fffL为了指明是无符号常量,可以在常量后边加上字母U(或u):15U 0377U 0x7fffU为了表示常量是长且无符号的可

18、以组合使用字母L和U:0xffffffffUL字母L和U的顺序和大小写都没有关系。13.有符号整数运算发生的溢出,程序的行为是没有定义的(不确定的)。 无符号整数运算发生溢出时,运算的结果是有定义(确定的),即为正确结果模除 2n的结果,其中n是存储运算结果的位数。14. 读和写无符号/短和长整型整数需要一些新的转换说明符。当读写无符号整数时,使用字母u、o或x代替转换说明中的d。当读写短整型数时,在d、o、u或x前面加上字母h:short s;当读写长整型数时,在d、o、u或x前面加上字母l。当读写长长整型数时,在d、o、u或x前面加上字母ll15. float适合精度要求不严格的浮点数。

19、double类型为大部分的程序提供了足够的精度。Long double 很少用到16. 字符 a 的值为97, A的值为65, 0 的值为 48, and 的值为32。17. 八进制转义序列由字符和跟随其后的一个最多含有三位数字的八进制数组成,如 33 或 033.十六进制转义序列由x和跟随其后的一个十六进制数组成,如x1b 或x1B.其中x必须小写18. 它们命名通常会是:#define ESC '33'19. 调用C语言的toupper库函数是快捷、更易于移植的把小写字母转换成大写字母的方法:20. ch = toupper(ch);toupper函数返回参数的大写形式.程

20、序调用toupper函数需要在顶部放置下面这条#include指令:#include <ctype.h>21. 对单个字符的输入和输出,可以使用gechar函数和putchar函数来代替调用scanf函数和printf函数。putchar函数写单独一个字符:putchar(ch);每次调用gechar函数将读并返回一个字符:ch = getchar();getchar函数返回一个整数值而不是字符值22. getchar函数在用于循环中搜寻字符时和跳过字符一样有效。利用getchar函数跳过无限数量的空格字符:while (ch = getchar() = ' ')

21、;当循环终止时,变量ch将包含getchar函数遇到的第一个非空字符。23. 消息的长度包括空格和标点符号,但是不包含消息结尾处的换行符24. 当发生下列情况时会进行隐式转换:25. 当算术表达式或逻辑表达式中操作数的类型不相同时。(C语言执行所谓的常用算术转换)当赋值运算符右侧表达式的类型和左侧变量的类型不匹配时。当函数调用中使用的参数类型于其对应的参数的类型不匹配时。当return语句中表达式的类型和函数返回值的类型不匹配时。当把有符号操作数和无符号操作数整合时,会通过把符号位看成数的位的方法,将有符号数被转换成无符号数。第八章1. C语言中有两种聚合类型:数组和结构。2. 数组运算符的运

22、算运算符sizeof可以确定数组的大小(字节数)。如果数组a有10个整数,那么sizeof(a)可以代表40(假设每个整数用4字节存储)。还可以用sizeof来计算数组元素的大小,比如a0。用数组的大小除以数组元素的大小可以得到数组的长度: sizeof(a) / sizeof(a0)3. 数组a的清零操作可以写成:for (i = 0; i < sizeof(a) / sizeof(a0); i+) ai = 0;第九章1.函数定义的一般格式:返回类型 函数名 ( 形式参数 ) 声明 语句2.函数调用由函数名和跟随其后的实际参数列表组成,其中实际参数列表用圆括号括起来:average(

23、x, y)print_count(i)print_pun()如果丢失圆括号,那么将无法进行函数调用.3.非void型的函数调用产生的值可存储在变量中,还可以进行测试、显示或者其他用途void型的函数调用是语句,所以调用后边始终跟着分号4. 函数声明的一般形式:返回类型 函数名 ( 形式参数 ) ;第十章1. 在函数体内声明的变量称为该函数的局部变量2. 局部变量的缺省性质:自动存储期限。局部变量的存储单位是在包含该变量的函数被调用时“自动”分配的,函数返回时收回分配。块作用域。局部变量的作用域是从变量声明的点开始一直到所在函数体的末尾。3. 在局部变量声明中放置单词 static可以使变量具有

24、静态存储期限 。因为具有静态存储期限的变量拥有永久的存储单位,所以在整个程序执行期间都会保留变量的值。4. 全局变量:外部变量是声明在任何函数体外的。外部变量的性质:静态存储期限,文件作用域,变量拥有文件作用域是指:变量的可见范围从变量被声明的点开始一直到所在文件的末尾。5. 对“栈”的操作是存在限制的:压栈(Push): 在栈顶加入一个数据项出栈(Pop): 从栈顶删除一个数据项,禁止测试或修改不在栈顶的数据项。压栈操作:将数据项存储在contents数组中由top指定的位置上,然后自增top。出栈操作:首先自减top,然后用其作为contents数组的索引取出相应的数据项。第十一章1.C语

25、言支持三种类型的指针算术运算(且仅有这三种类型)指针加上整数指针减去整数两个指针相减2. 指针p加上整数j产生一个新的指针,指向p 当前所指的元素位置之后j个元素的位置。如果 p指向数组元素 ai,则 p + j 指向数组元素 ai+j。如果p 指向 ai,则p - j 指向 ai-j3. *p+ or *(p+)自增前表达式的值为 *p,然后自增p;(*p)+自增前表达式的值为 *p,然后自增*p;*+p or *(+p)先自增 p,自增后表达式的值为 *p;+*p or +(*p)先自增 *p,自增后表达式的值为 *p;4. *p- or *(p-)自减前表达式的值为 *p,然后自减p;(

26、*p)-自减前表达式的值为 *p,然后自减*p;*-p or *(-p)先自减 p,自减后表达式的值为 *p;-*p or -(*p)先自减 *p,自减后表达式的值为 *p;5.输出数组中的全部元素#include <stdio.h> 下标法void main() int ; int;for(;)scanf(,); printf();for(;)printf(,);6. #include <stdio.h> 通过数组名指针计算数组元素地址,找出元素的值 voidmain() int ; int ;for(; )scanf(,);printf(); for(;) prin

27、tf(,*(); 7.#include <stdio.h> 用指针变量指向数组元素void main() int ; int *,; for(;) scanf(,); printf(); for(;();) printf( ,*); 8. 归纳起来,如果有一个实参数组,想在函数中改变此数组中的元素的值,实参与形参的对应关系有以下种情况:形参和实参都用数组名;实参用数组名,形参用指针变量。实参形参都用指针变量;实参为指针变量,形参为数组名9.当编译器遇到一个长度为n的字符串字面量时,给该字符串分配n+1个字节的内存空间;n+1空字符是一个所有比特全为0的字节,用转义序列 0表示,用于

28、标志字符串的结束10.把0到15转换为等价16进制数字的函数:char digit_to_hex_char(int digit) return "0123456789ABCDEF"digit;11. 如果字符串变量需要存放80个字符,对应的字符数组必须声明为80+1个:额外增加的1用于给字符串结束符留出空间12. 如果初始化器太短而不能填满整个字符串变量,编译器会在后面增加额外的空字符13. 声明字符数组:char date = "June 14" 声明 date为一个数组14. 声明字符指针:char *date = "June 14"声明 date为一个指针15. %ms 转换说明符将显示字符串在m个字符宽度的域.16. 如果字符串少于m个字符,字符串将在域内右对齐.在m的前面放置一个-号,可以强制字符串左对齐.17. m 和 p 可以组合使用.转换说明符%m.ps 在宽度为m的域中显示字符串的前p个字符.18. Scanf函数用%s 转换说明符读字符到一个字符数组:scanf("%s", str);19. str 在这里是一个指针,因此不必在s

温馨提示

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

评论

0/150

提交评论