国家计算机二级考试C语言基本知识.doc_第1页
国家计算机二级考试C语言基本知识.doc_第2页
国家计算机二级考试C语言基本知识.doc_第3页
国家计算机二级考试C语言基本知识.doc_第4页
国家计算机二级考试C语言基本知识.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第一章 C语言基本知识【考点1】C程序C语言程序结构有三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)【考点2】main函数每个C语言程序中main 函数是有且只有一个。读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。【考点3】存储形式计算机的数据在电脑中是以二进制的形式保存。最低的存储单元是bit(位),位是由为 0 或者1构成。 byte 是指字节, 一个字节 = 八个位。数据存放的位置就是它的地址。【考点4】注释是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。【考点5】书写格式每条语句的后面必须有一个分号,分号是语句的一部分。一行内可写多条语句,一个语句可写在多行上。【考点6】标识符合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。有其它元素就错了。并且第一个必须为字母或则是下划线。第一个为数字就错了。C语言标识符分如下3类(1)关键字。它们在程序中有固定的含义,不能另作他用。如int、for、switch等。(2)预定义标识符。预先定义并具有特定含义的标识符。如define、include等。(3)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字相同。关键字不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If 是可以做为用户标识符。因为If 中的第一个字母大写了,所以不是关键字。【考点7】实型数据实型数据的合法形式:小数形式和指数形式。掌握判定指数形式合法性。2.333e-1 就是合法的,且数据是2.33310-1。考试口诀:e 前e 后必有数,e 后必为整数。【考点8】字符字符常量由单引号括起来,字符串常量由双引号括起来。当用 scanf 函数输入字符串时,字符串中不能含有空格,否则将以空格作为串的结束符。字符数据的合法形式::1 是字符占一个字节,1是字符串占两个字节(含有一个结束符号0,ASCII 码为 0)。0 的ASCII 数值表示为48,a 的ASCII 数值是97,A的ASCII 数值是65。字符型和整数是近亲:char a = 65 ;printf(“%c”, a); 得到的输出结果:aprintf(“%d”, a); 得到的输出结果:65一般考试表示单个字符错误的形式:65 1字符是可以进行算术运算的,记住: 0-0=48大写字母和小写字母转换的方法: A+32=a 相互之间一般是相差32。ASCII碼鍵盤ASCII 碼鍵盤ASCII 碼鍵盤ASCII 碼鍵盤27ESC32SPACE33!34“35#36$37%38&3940(41)42*43+4445-46.47/48049150251352453554655756857958:59;6063?6465A66B67C68D69E70F71G72H73I74J75K76L77M78N79O80P81Q82R83S84T85U86V87W88X89Y90Z9192939495_9697a98b99c100d101e102f103g104h105i106j107k108l109m110n111o112p113q114r115s116t117u118v119w120x121y122z123124|125126【考点9】整型数据整型一般是两个字节, 字符型是一个字节,双精度一般是8个字节:考试时候一般会说,在16 位编译系统,或者是32 位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是8 个字节就可以了。【考点10】转义字符转义字符的考查:o 空字符(NULL) n 换行符(LF) r 回车符(CR) 单引号 ”双引号 反斜杠ddd 任意字符 三位八进制 xhh 任意字符 二位十六进制在程序中 int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x 必须存在。在程序中 int a = 06d, 是一个八进制的形式。在转义字符中, x6d 才是合法的,0 不能写,并且x 是小写。141 是合法的, 0 是不能写的。108是非法的,因为不可以出现8。【考点11】算术运算算术运算符一共有+、*、/、%这五个。%符号两边要求是整数。不是整数就错了。三种取整丢小数的情况:不是四舍五入是舍掉小数部分。、int a =1.6;、(int)a;、1/2; 3/2;【考点12】强制类型转换将一个运算对象转换成指定类型,格式为(类型名)表达式一定是 (int)a 不是 int(a),注意类型上一定有括号的。注意(int)(a+b) 和(int)a+b 的区别。前是把a+b 转型,后是把a 转型再加b。【考点13】赋值是表达式就一定有数值。赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。复合赋值运算符:注意:a*=m+2 是 a=a*(m+2)自加、自减表达式:假设a=5,+a(表达式的值为6), a+(表达式的值为5);j=a+;等价于j=a;a=a+1; 而j=+a;等价于a=a+1;j=a;。考试口诀:+在前先加后用,+在后先用后加。【考点14】逗号运算逗号表达式:优先级别最低; 表达式的数值是逗号最右边的那个表达式的数值。(2,3,4)的表达式的数值就是4。Int a=2(a*2,a*=3),分别求表1,表2值,以表2为结果为6【考点15】数制转换一定要记住二进制 如何转换成十进制。八进制是没有8 的,逢8 进1,018 的数值是非法的。 【考点16】位运算会有一到二题考试题目。C语言提供6种位运算符:按位求反,按位左移,按位与&,按位异或,按位或|。总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。按位与&是双目运算符,只有对应的两个二进位均为1时,结果位才为1 ,否则为0。按位异或的规则:0异或1得到1,0异或0得到0,1异或1得到0。可记为“相同为0,不同为1”。按位或|,只要对应的二个二进位有一个为1时,结果位就为1。在没有舍去数据的时候,右移一位表示除以2。(1.a=8,c=a3,右移3,即823=1 2.8的二进制00001000,右移,即00000001,转换成十进制,即1)第二章 数据的输入输出(顺序结构)【考点1】printf函数格式为:printf(输出控制,输出列表)。输出控制是用一对双引号括起来的,包含格式说明和原样信息。输出列表包含若干输出项。例:int x=017; 一定要弄清楚为什么是这个结果!过程很重要 printf(“%d”, x); 15 printf(“%o”, x); 17 printf(“%#o”,x); 017 printf(“%x”, x); 11 printf(“%#x”,x); 0x11 %d 整型 int %c 字符char %ld 长整型 long int %s 字符串 %f 浮点型 float %o 八进制 %e对应指数型 %lf double %#o 带前导的八进制 % 输出一个百分号 %x 十六进制 %#x 带前导的十六进制 %u 无符号整型 举例说明: printf(“%2d”,123 );第二部分有三位,大于指定的两位,原样输出123 printf(“%5d”,123 ); 第二部分有三位,小于指定的五位,左边补两个空格 123 printf(“%10f”,1.25 ); 小数要求补足6位的,没有六位的补0,。结果为 1.250000 printf(“%5.3f”,125 ); 小数三位,整个五位,结果为1.250(小数点算一位) printf(“%3.1f”,1.25 );小数一位,整个三位,结果为1.3(要进行四舍五入)【考点2】scanf函数1.格式为:scanf(输入控制,输入列表)注意该函数的第二个部分是&a 这样的地址,不是a;2.scanf(“%d%d%*d%d”,&a,&b,&c); 跳过输入的第三个数据。3.scanf 函数中没有精度控制,如:scanf(%5.2f,&a);是非法的4.特别注意指针在scanf的考察 例如: int x=2;int *p=&x; scanf(“%d”,x);错误 scanf(“%d”,p);正确 scanf(“%d”,&p);错误 scanf(“%d”,*p)错误 5.指定输入的长度 (考试重点) 终端输入:1234567 scanf(“%2d%4d%d”,&x,&y,&z);x为12,y为3456,z为7 终端输入:1 234567 由于1和2中间有空格,所以只有1位给x scanf(“%2d%4d%d”,&x,&y,&z);x为1,y为2345,z为67【考点3】putchar与getchar函数可用于输出或输入单个字符,这两个函数是stdio.h文件中的库函数,它们是printf与scanf函数的简化。char a = getchar() 是没有参数的,从键盘得到你输入的一个字符给变量a。putchar(y)把字符y 输出到屏幕中。【考点4】如何交换两个变量如何实现两个变量x ,y 中数值的互换(要求背下来)不可以把 x=y ,y=x; 要用中间变量 t=x;x=y;y=t。【考点5】实现保留三位小数如何实现保留三位小数,第四位四舍五入的程序,(要求背下来)float x=12.34567;float y=(int)(x*1000+0.5)/1000.0;(1000后一定含小数点,除法运算符“/”:双目运算具有左结合性。参与运算量均为整型时,结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。)y=(int)(x*100+0.5)/100.0 这个保留两位,对第三位四舍五入y=(int)(x*10000+0.5)/10000.0 这个保留四位,对第五位四舍五入这个有推广的意义,注意 x = (int)x 这样是把小数部分去掉。第三章 选择结构特别要注意:c 语言中是用非0 表示逻辑真的,用0 表示逻辑假的。【考点1】关系运算关系运算符有6个,分别是,=,8 这个是真的,所以表达式的数值就是1。【考点2】逻辑运算只能为1(表示为真),或0(表示假)a) 共有三种逻辑运算符号。逻辑非(!),逻辑与(&),逻辑或(|)。b) !&| 优先的级别。c) 注意短路现象。考试比较喜欢考到。例a+|b+,如果表达式a+的值非零,则表达式b+不再执行。d) 要表示 x 是比0 大,比10 小的方法。0x10 是不可以的,是先计算0x得到的结果为1或0;再用1或0与10进行比较得到的总为真(为1)。所以一定要用(0x)&(x10)【考点3】if语句可以单独出现,也可以与else匹配出现。if语句可以嵌套,这时else总是与离它最近的且没有与else匹配的if匹配。注意if语句的子句是紧接if或else的一句,如有多句需要用括起来。1.If(a)等价于if(a!=0)2.if(ab)t=a;a=b;b=t; if(ab)t=a;a=b;b=t;两个的区别,考试多次考到了! 3.单独的if语句:if(ab)t=a; 标准的if语句:if(ab)min=a; else min=b; 嵌套的if语句:if(ac)printf(“ok!”); 多选一的if语句if(a= =t)printf(“a”); else if(b= =t)printf(“b”); else if(c= =t)printf(“c”); else pritnf(“d”); 4.int a=1,b=0; if(!a)b+; else if(a= =0) if(a)b+=2;else b+=3;请问b的值是多少? 正确的是b为3。 int a=1,b=0; if(!a)b+; 是假的不执行 else if(a= =0) 是假的不执行 if(a)b+=2; 属于else if的嵌套if语句,不执行。 else b+=3; if-else-if语句没有一个正确的,就执行else的语句!【考点4】条件运算是唯一的三目运算符,格式:表达式1 ?表达式2 :表达式3表达式1值为非0时,整个表达式值为表达式2的值,表达式1值为0时,整个表达式值为表达式3的值。考试口诀:真前假后。int a=1,b=2,c=3,d=4,e=5; k=ab?c:de?d:e;求k的数值时多少?k=5.【考点5】switch语句a) 一定要注意有 break 和没有break 的差别,书上(53,54 页)的两个例子,没有break时候,只要有一个case 匹配了,剩下的都要执行,有break 则是直接跳出了switch 语句。b) switch 只可以和break 一起用,不可以和continue一起用。c) switch(x) x:是整型常量,字符型常量,枚举型数据。case 常量表达式 1: 语句1;case 常量表达式 2: 语句2;case 常量表达式 n: 语句n;default : 语句n+1;switch后小括号里面的表达式不能为实型,case后表达式不能有变量,case 后,允许有多个语句,可以不用括起来。口诀:switch表不为实,case表不为变。第四章循环结构【考点1】三种循环结构while(为真,执行);do- while(为假,停止);for()三种。三种结构的格式及执行顺序详见教材第58、62、64页。b)for 循环()当中必须是两个分号,千万不要忘记。c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。d) do-while()循环的最后一个while();的分号一定不能够丢。(当心上机改错),dowhile循环是至少执行一次循环。【考点2】break与continuebreak 和 continue 的差别记忆方法:break:是打破的意思,(破了整个循环)所以看见break 就退出这一层循环。continue: 是继续的意思,是要结束本次循环,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。【考点3】循环的嵌套就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般只考查两层嵌套,循环嵌套通常是处理二维数组。循环结构是重点,笔试所占分值一般在13分左右,在上机考试中也是必考点,应用性很强。要求学员重点理解并多加练习,领会掌握。【考点4】while(c=getchar())!=n) 和 while(c=getchar() !=n)的差别 先看a = 3 != 2 和 (a=3)!=2 的区别: (!=号的级别高于=号 所以第一个先计算 3!=2) 第一个a的数值是得到的1;第二个a的数值是3。 考试注意点: 括号在这里的重要性。【考点5】每行输出五个的写法: for(i=0;i=100;i+) printf(“%d”,i); if((i+1)%5=0)printf(“n”); 如果i是从1开始的话,就是if(i%5=0)printf(“n”); 【考点6】如何整除一个数: i%5=0表示整除5 I%2=0表示整除2,同时表示是偶数! 【考点7】输入123,输出321逆序输出数据 int i=123; while(i!=0) printf(“%d”,i%10); i=i/10; 【考点8】for只管后面一个语句: int i=3; for(i=3;i6;i+); printf(“#”): 请问最终打印几个#号?答案为一个! 【考点9】不停的输入,直到输入# 停止输入! while( (x=getchar()!= # ) 不停的输入,直到输入$停止输入! while( (x=getchar()!= $ ) 不停的输入,直到遇到?停止输入! while( (x=getchar()!= ? ) 解说:一定要注意这种给出了条件,然后如何去写的方法! 【考点10】for循环和switch语句的和在一起考题! 【考点11】多次出现的考题: int k=1; int k=1;while(- -k); while(k- -);printf(“%d”,k); printf(“%d”,k);结果为0 结果为-1 第五章 函数【考点1】函数的定义函数:是具有一定功能的一个程序块;是C 语言的基本组成单位。函数的首部为:函数类型 函数名(类型1 形参1,类型2 形参2,)。在函数定义中不可以再定义函数,即不能嵌套定义函数。函数类型默认为int型。【考点2】库函数调用C语言标准库函数时要包含include命令,include命令行以#开头,后面是“”或括起来的后缀为”.h”的头文件。以#开头的一行称为编译预处理命令行,编译预处理不是C语言语句,不加分号,不占运行时间。【考点3】函数的返回值函数通过return语句返回一个值,返回的值类型与函数类型一样。return语句只执行一次,执行完或函数体结束后退出函数。【考点4】函数的声明函数要“先定义后调用”,或“先声明再调用后定义”。函数的声明一定要有函数名、函数返回值类型、函数参数类型,但不一定要有形参的名称。【考点5】函数的调用程序从上往下执行,当碰到函数名后,把值传给调用函数,当程序得到了返回值或调用函数结束,再顺序往下执行。【考点6】函数的参数及值传递形式参数简称形参,是定义函数时函数名后面括号中的参数。实在参数简称实参,是调用函数时函数名后面括号中的参数。实参和形参分别占据不同的存储单元。实参向形参单向传递数值。“传值”与“传址”的区别:传数值的话,形参的变化不会改变实参的变化。传地址的话,形参的变化就有可能改变实参所对应的量。(考试的重点)函数的参数,返回数值(示意图):【考点7】函数的递归调用函数直接或间接地调用自己称为函数的递归调用。递归调用必须有一个明确的结束递归的条件。在做递归题时可把递归的步骤一步步写下来,不要弄颠倒了。【考点8】要求掌握的库函数sqrt()算术平方根函数,fabs()绝对值函数,sin()正弦函数,sin(3.14159/180*30);,pow()幂函数,23是由pow(2,3)表示的。【考点9】如何判断a是否为质数:背诵这个程序! void iszhishu( int a ) for(i=2;ia/2;i+) if(a%i=0) printf(“不是质数”); printf(“是质数!”); 【考点10】如何求阶层:n! 背诵这个程序! int fun(int n) int p=1; for(i=1;i*b)return a; return a 可以知道返回的是a地址。 else returnb; main() int x=7,y=8,*max; max = fun(&x,&y); 由于fun(&x,&y)的运算结果是地址,所以用max来接收。 printf(“%d,%d”,) 6.考试重要的话语: 指针变量是存放地址的。并且指向哪个就等价哪个,所有出现*p的地方都可以用它等价的代替。例如:int a=2,*p=&a; *p=*p+2; (由于*p指向变量,所以指向哪个就等价哪个,这里*p等价于,可以相当于是a=a+2)第七章 数组【考点1】数组的定义数组是一组具有相同类型的数据的集合,这些数据称为数组元素。格式为:类型名 数组名常量表达式。int a10; 说明整型数组 a,有10 个元素。不能在方括号中用变量来表示元素的个数, 但是可以是符号常数或常量表达式。数组的所占字节数为元素个数与基类型所占字节数的乘积。【考点2】数组的初始化1.一维数组的初始化: int a5=1,2,3,4,5; 合法 int a5=1,2,3, ; 合法 int a=1,2,3,4,5; 合法,常考,后面决定前面的大小! int a5=1,2,3,4,5,6; 不合法,赋值的个数多余数组的个数了 2、一维数组的定义:int a5;注意这个地方有一个重要考点,定义时数组的个数不是变量一定是常量。 int a5 合法,最正常的数组 int a1+1 合法,个数是常量2,是个算术表达式 int a1/2+4 合法,同样是算术表达式 int x=5,int ax; 不合法,因为个数是x,是个变量,非法的,define P 5 int aP 合法,define 后的的P是符号常量,只是长得像变量3.二维数组的初始化:第一维长度可以不写,其它维必须写。int a=1,2;合法,int a3=2,3,4;合法,int a2=2,3,4;非法。数组初始化元素值默认为0,没有初始化元素值为随机。如在int a5=0,1,2;中,元素a4值为0;而在int a5;中,元素a4值为一个不确定的随机数。补充: 1)一维数组的重要概念: 对a10这个数组的讨论。 、a表示数组名,是第一个元素的地址,也就是元素a0的地址。(等价于&a) 、a是地址常量,所以只要出现a+,或者是a=a+2赋值的都是错误的。 、a是一维数组名,所以它是列指针,也就是说a+1是跳一列。 对a33的讨论、 a表示数组名,是第一个元素的地址,也就是元素a00的地址。 、a是地址常量,所以只要出现a+,或者是a=a+2赋值的都是错误的。 、a是二维数组名,所以它是行指针,也就是说a+1是跳一行。、a0、a1、a2也都是地址常量,不可以对它进行赋值操作,同时它们都是列指针,a0+1,a1+1,a2+1都是跳一列。 、注意a和a0 、a1、a2是不同的,它们的基类型是不同的。前者是一行元素,后三者是一列元素。【考点3】元素的引用数组元素的下标从0开始,到数组长度减1结束。所以int a5;中数组最后一个元素是a4。要把数组元素看作一个整体,可以把a4当作一个整型变量。【考点4】二维数组数组a23=1,2,3,4,5,6;中含6个元素,有2行3列。第一行为a0行,第2行为a1行,a0、a1叫行首地址,是地址常量。*(a0+1)是第一行第一个元素往后跳一列,即元素a01值为2,*(a0+3)是第一行第一个元素往后跳三个,即元素a10值为4。【考点5】行指针是一个指针变量,占四个字节,行指针指向一行连续数据,形式为:int(*p)2;,p只能存放含有两个整型元素的一维数组的首地址。注意(*p)两边的小括号不能省略,否则就成了指针数组,是若干指针元素的集合。【考点6】数组名数组名是数组的首地址。数组名不能单独引用,不能通过一个数组名代表全部元素。数组名是地址常量,不能对数组名赋值,所以a+是错误的。但数组名可以作为地址与一个整数相加得到一个新地址。char c10; scanf(%s,c);不能加&,在执行函数 printf(%s,c) 时,按数组名c 找到首地址,然后逐个输出数组中各个字符直到遇到字符串终止标志0为止。【考点7】元素形式的转换助记:“脱衣服法则”a2变成*(a+2),a23变成*(a+2)3再可变成*(*(a+2)+3)。这个思想很重要!二维数组做题目的技巧:如果有 a33=1,2,3,4,5,6,7,8,9这样的题目。步骤一:把他们写成: 第一列 第二列 第三列a0 1 2 3 第一行a1 4 5 6 第二行a2 7 8 9 第三行步骤二:这样作题目间很简单:*(a0+1)我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a01元素,所以是2。*(a1+2)我们就知道是第二行的第一个元素往后面跳二列。那么这里就是a12元素,所以是 6。一定记住:只要是二维数组的题目,一定是写成如上的格式,再去做题目,这样会比较简单。两种重要的数组长度:char a=“a”,“b”,“c”; 数组长度为,字符串长度不定。sizeof(a)为。char a5= “a”,“b”,“c” 数组长度为,字符串长度。sizeof(a)为。第八章 字符串【考点1】字符串常量及表示字符串常量是由双引号括起来的一串字符,如”ABC”。在存储字符串时,系统会自动在其尾部加上一个空值0,空值也要占用一个字节,也就是字符串”ABC”需要占四个字节。【考点2】字符数组C语言没有字符串变量,只能采用字符数组来存储字符串。数组的大小应该比它将要实际存放的最长字符串多一个元素,从而存放0。【考点3】字符串赋值字符串赋值的两种形式:char str=“Hello!”;或char *p;p=“Hello!”;,但不能用下面的形式:char str10;str=”Hello”;因为str是一个地址常量,不能进行赋值操作。【考点4】字符串的输入与输出可以用scanf和printf函数,如scanf(”%s”,str);,也可用专门处理字符串的两个函数gets和puts函数,还可以对字符数组逐个元素进行赋值,但一定要在最后赋一个0。使用gets函数可以接收空格,使用puts函数在最后输出一个换行。scanf 和 gets 的数据:如果输入的是 good good study!那么 scanf(“%s”,a); 只会接收 good. 考点:不可以接收空格。gets(a); 会接收 good good study! 考点:可以接收空格。【考点5】字符串函数要掌握的四个字符串函数:1.字符串拷贝函数strcpy(),格式: strcpy (字符数组名 1,字符数组名 2)功能: 把字符数组 2中的字符串拷贝到字符数组 1 中。串结束标志“0”也一同拷贝。字符数名 2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。2.字符串长度函数strlen(),格式: strlen(字符数组名)功能:测字符串的实际长度(不含字符串结束标志0) 并作为函数返回值。3.字符串链接函数strcat(),格式: strcat (字符数组名 1,字符数组名 2)功能:把字符数组 2中的字符串连接到字符数组 1 中字符串的后面,并删去字符串1 后的串标志“0”。4.字符串比较函数strcmp(),格式: strcmp(字符数组名 1,字符数组名 2)功能:按照 ASCII 码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。字符串 1字符串 2,返回值0;字符串 1字符串 2,返回值0;字符串 1字符串 2,返回值0。本函数也可用于比较两个字符串常量,或比较数组和字符串常量。由 ASCII 码可知“dBASE”大于“C Language”故 返回值0,d=100C=67使用这些函数需在预处理部分包含头文件”string.h”。字符串长度要小于字符数组的长度,例:char str10=”Hello”;sizeof(str)的值为10(数组长度),strlen(str)的值为5(字符串长度)。这些函数是考试常用到的函数,大家一定要熟练应用这几个函数。第九章 文件【考点1】文件类型指针文件指针是一个指向结构体类型的指针,定义格式为:FILE *指针变量名。在使用文件时,都需要先定义文件指针。【考点2】文本文件与二进制文件文本形式存放的是字符的ASCII码,二进制形式存放的是数据的二进制。例如“100”如果是文本形式就是存储1、 0、 0三个字符的ASCII码(00110001 00110000 00110000),如果是二进制形式就把100转化成二进制(01100100)。【考点3】打开文件文件的打开形式:FILE *fp; fp=fopen(“c:lab.c”,”rb”);。fopen函数的前面一部分为文件名,后面一部分为文件的使用方式。打开方式见教材第116页,其中r代表读,w代表写,a代表添加,b代表二进制位的文件,t表示文本文件。【考点4】文件函数1.判断文件结束feof函数,feof函数的作用是检查文件是否结束,当结束时返回的值为非零,否则为零。2.移动文件指针位置fseek函数,fseek 函数用来移动文件内部位置指针,其调用形式为:fseek(文件指针,位移量,起始点);其中:“文件指针”指向被移动的文件。“位移量”表示移动的字节数,要求位移量是 long 型数据,以便在文件长度大于 64KB 时不会出错。当用常量表示位移量时,要求加后缀“L”。“起始点”表示从何处开始计算位移量,规定的起始点有三种:文件首,当前位置和文件尾。其表示方法如下表。起始点 表示符号 数字表示文件首 SEEK_SET 0当前位置 SEEK_CUR 1文件末尾 SEEK_END 2例如:fseek(fp,100L,0);其意义是把位置指针移到离文件首 100 个字节处。还要说明的是 fseek 函数一般用于二进制文件。3.获得文件位置ftell函数,ftell(文件指针);4.文件位置移到开头rewind函数,rewind(文件指针);它的功能是把文件内部的位置指针移到文件首。5.文件字符输入输出fgetc函数和fputc函数,fgetc 函数的功能是从指定的文件中读一个字符,函数调用的形式为:字符变量=fgetc(文件指针);例如:ch=fgetc(fp);其意义是从打开的文件 fp 中读取一个字符并送入 ch 中。fputc 函数的功能是把一个字符写入指定的文件中,函数调用的形式为:fputc(字符量,文件指针);其中,待写入的字符量可以是字符常量或变量,例如:fputc(a,fp);其意义是把字符 a 写入fp 所指向的文件中。6.文件输入输出fscanf函数和fprintf函数,这两个函数的调用格式为:fscanf(文件指针,格式字符串,输入表列);fprintf(文件指针,格式字符串,输出表列);例如:fscanf(fp,%d%s,&i,s);fprintf(fp,%d%c,j,ch);7.文件字符串输入输出fgets函数和fputs函数,函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为:fgets(字符数组名,n,文件指针);其中的 n 是一个正整数。表示从文件中读出的字符串不超过 n-1 个字符。在读入的最后一个字符后加上串结束标志0。例如:fgets(str,n,fp);的意义是从 fp 所指的文件中读出 n-1个字符送入字符数组str 中。fputs 函数的功能是向指定的文件写入一个字符串,其调用形式为:fputs(字符串,文件指针);其中字符串可以是字符串常量,也可以是字符数组名,或指针变量,例如:fputs(“abcd“,fp);其意义是把字符串“abcd”写入 fp 所指的文件之中。8.读写二进制文件fread函数和fwrite函数。读数

温馨提示

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

评论

0/150

提交评论