大学C语言复习ppt

上传人:s9****2 文档编号:569820622 上传时间:2024-07-31 格式:PPT 页数:119 大小:620.02KB
返回 下载 相关 举报
大学C语言复习ppt_第1页
第1页 / 共119页
大学C语言复习ppt_第2页
第2页 / 共119页
大学C语言复习ppt_第3页
第3页 / 共119页
大学C语言复习ppt_第4页
第4页 / 共119页
大学C语言复习ppt_第5页
第5页 / 共119页
点击查看更多>>
资源描述

《大学C语言复习ppt》由会员分享,可在线阅读,更多相关《大学C语言复习ppt(119页珍藏版)》请在金锄头文库上搜索。

1、复习遵遵C语言考试大纲语言考试大纲一一 基本概念基本概念 字符集、标识符、关键字字符集、标识符、关键字 各种常量的表示方法各种常量的表示方法 变量的说明变量的说明 其它概念其它概念1一一 基本概念基本概念 字符集、标识符、关键字字符集、标识符、关键字1标识符标识符由字母、数字或下划线组成,第一个字由字母、数字或下划线组成,第一个字符必须是字母或下划线。符必须是字母或下划线。1.可用作可用作C语言标识符的是:语言标识符的是:A. print _maf mx_2d aMb6B. Iam scanf mx_ AMBC. sign 2mf a.f A&BD. if ty_pe x1# 5XY2一一 基

2、本概念基本概念1区分关键字、函数名、预编译命令。区分关键字、函数名、预编译命令。1.均是均是C语言关键字的一组是:语言关键字的一组是:A. auto enum includeB. switch typedef sizeofC. signed union scanfD. if struct type3一一 基本概念基本概念 各种常量的表示方法各种常量的表示方法1八进制整型常量八进制整型常量(标志为标志为0)中不能出现中不能出现8以上的以上的数字。数字。2小数形式的实型常量不可缺的部分是小数点。小数形式的实型常量不可缺的部分是小数点。3指数形式的实型常量,指数形式的实型常量,e或或E后面必须是整数

3、,后面必须是整数,e或或E前面必须有数字。前面必须有数字。4实型常量只能是十进制。实型常量只能是十进制。1.下面能作为下面能作为C的常量的是:的常量的是:A. 0xA5 B. 5e2.5 C. .E2 D. 0284一一 基本概念基本概念1字符型常量:字符型常量:8,字符串常量:,字符串常量:“8”2转义字符可以用八进制转义字符可以用八进制ddd或十六进制或十六进制xdd,不是十进制不是十进制。1.将字符将字符g赋给字符变量赋给字符变量c,正确的表达式是:,正确的表达式是: A. c=147 B. c=“147” C. c=147 D. c=1471.下列转义字符错误的是:下列转义字符错误的是

4、:A. 000 B. 0014 C. x111 D. 21.下列转义字符错误的是:下列转义字符错误的是:A. B. C. 81 D. 0可表达到十进制的可表达到十进制的255,即,即xFF(但作为但作为ASCII字符只到十进字符只到十进制的制的127,即,即x7F)转义字符是转义字符是一个一个字符字符5一一 基本概念基本概念1符号常量符号常量在编译时在编译时替换替换。u#define PR printf#define NL “n”#define D “%d”#define D1 DNL语句语句 PR(D1,a); 经预处理后展开为:经预处理后展开为:A) printf(%dn,a); B) p

5、rintf(“%dn”,a);C) printf(“%d”“n”,a); D) 原语句错误原语句错误6一一 基本概念基本概念 其它概念其它概念1.C语言区分大小写。语言区分大小写。2.C程序总是从程序总是从main函数开始执行,与函数开始执行,与main函数函数的位置无关的位置无关main函数可以在任何位置上。函数可以在任何位置上。3.一行内可以写几个语句,一个语句可以分写在一行内可以写几个语句,一个语句可以分写在多行上多行上一个分号一个语句。一个分号一个语句。4.C语言的最小单位语言的最小单位基本单位基本单位编译单位编译单位语句语句函数函数文件文件7二二 基本运算符与基本运算符与I/O操作操

6、作 数据类型:编码形式、占用内存字节、表数据类型:编码形式、占用内存字节、表示范围示范围 全部运算符:运算规则、优先级、结合性全部运算符:运算规则、优先级、结合性 位运算只作最基本的要求(位运算只作最基本的要求(,&,|) 能够进行简单的表达式计算能够进行简单的表达式计算 基本的基本的I/O函数的使用方法和功能:函数的使用方法和功能:printf、scanf、getchar、putchar8二二 基本运算符与基本运算符与I/O操作操作 数据类型:编码形式、占用内存字节、数据类型:编码形式、占用内存字节、表示范围表示范围1整型变量的长度由计算机硬件决定。整型变量的长度由计算机硬件决定。2记住记住

7、32767(215-1)、65535、38、308。3负数的补码计算负数的补码计算(-8的补码:的补码:8的原码取反加的原码取反加1)1.已知已知long i=32768,执行语句,执行语句printf(“%d”,i);后后屏幕显示:屏幕显示:A. -1 B. -32768 C. 1 D. 32768实型不精确,整型爱溢出实型不精确,整型爱溢出9二二 基本运算符与基本运算符与I/O操作操作1字符型以字符型以ASCII码形式存储,码形式存储,字符变数字:字符变数字:int a = 8 - 0;数字变字符:数字变字符:char c = 8 + 0;判断是否是数字:判断是否是数字: 0=m=90=m

8、 & m=9最好能记住最好能记住48、65、97 10二二 基本运算符与基本运算符与I/O操作操作 全部运算符:运算规则、优先级、结全部运算符:运算规则、优先级、结合性合性1表达式的值和类型表达式的值和类型1.已知:已知:char a; int b; float c; double d; 执执行语句行语句c=a+b+c+d;后,变量后,变量c的数据类型是:的数据类型是:A. int B. char C. float D. double表达式表达式c=a+b+c+d的数据类型是:的数据类型是:A. int B. char C. float D. double表达式表达式a+b+c+d结果的数据类

9、型是:结果的数据类型是:A. int B. char C. float D. double11二二 基本运算符与基本运算符与I/O操作操作接受赋值的变量类型决定了运算结果的存储类型接受赋值的变量类型决定了运算结果的存储类型一定注意赋值表达式的值一定注意赋值表达式的值if (x=1)逻辑值逻辑值if (x=1)x的值的值u已知:已知:int a, b;对于下列;对于下列if语句:语句: if (a=b) printf (A is equal to Bn);在编译时,在编译时,C编译程序编译程序不能指出该语句有语法错误!不能指出该语句有语法错误!sizeof()是是int型表达式!型表达式!12二

10、二 基本运算符与基本运算符与I/O操作操作2.单目运算符的优先级通常高于双目和三目运算单目运算符的优先级通常高于双目和三目运算符。符。3.单目运算符通常是右结合,双目运算符通常是单目运算符通常是右结合,双目运算符通常是左结合左结合(赋值运算符除外赋值运算符除外)。4.求余运算的对象必须是整型。求余运算的对象必须是整型。1.int i; float f; 正确的语句是:正确的语句是:A. (int f)%i B. int (f)%i C. int(f%i) D. (int)f%i135.两个整型做除法两个整型做除法/ 结果截取为整型。结果截取为整型。1.华氏和摄氏的关系:华氏和摄氏的关系: ,已

11、知,已知float C,F;由华氏求摄氏的正确赋值表达式是:由华氏求摄氏的正确赋值表达式是:A. C=5/9(F-32) B. C=5*(F-32)/9 C. C=5/9*(F-32) D. 三个表达式都不正确三个表达式都不正确1.计算计算s=1.0for(k=1;k=n;k+) s+= ; printf(“%fn”,s); 答案:答案:1.0/(k*(k+1) 1/(float)(k*(k+1)14二二 基本运算符与基本运算符与I/O操作操作6.i+与与+ii+替换为替换为i进行计算,之后再自加进行计算,之后再自加+与与- -只能用于变量,不能用于常量和表达式只能用于变量,不能用于常量和表达

12、式操作对象只能是整型、字符型和指针类型操作对象只能是整型、字符型和指针类型1.int i=5; i+=+i; i的值是:的值是:A. 10 B. 11 C. 12 D. A,B,C答案都不对答案都不对1.int i=5; i+=i+; i的值是:的值是:A. 10 B. 11 C. 12 D. A,B,C答案都不对答案都不对1.float x=1,y; 则则y=+x*+x的结果为:的结果为:A. y=9 B. y=6 C. y=1 D. 表达式错误表达式错误联想赋值联想赋值运算符运算符=15二二 基本运算符与基本运算符与I/O操作操作1赋值表达式从右向左:赋值表达式从右向左:int a=b=c

13、=1;int a,b,c;a=b=c=1;a*=b+5a=a*b+5a=a*(b+5)先计算右边表达式的值;再将计算结果赋给左边先计算右边表达式的值;再将计算结果赋给左边的变量。的变量。168.运算结果是运算结果是“逻辑值逻辑值”的运算符的运算符逻辑运算逻辑运算符、关系运算符、条件运算中的条件部分。符、关系运算符、条件运算中的条件部分。9.C语言并没有逻辑型,而是用语言并没有逻辑型,而是用1标识逻辑标识逻辑真真,0标标识逻辑识逻辑假假不是不是TRUE和和FALSE。u设设 a 为整型变量,其值未知,下列表达式中有为整型变量,其值未知,下列表达式中有确定值的是:确定值的是:A. 10 a 10

14、& a 15 D. !( a = 15 )二二 基本运算符与基本运算符与I/O操作操作17二二 基本运算符与基本运算符与I/O操作操作uif( i=0 ) 和和 if( !i )等价等价uif( i ) i非非0则成立,即则成立,即i和和i!=0等价等价uchar c=A; int i = !c; i 的值为的值为0u与条件表达式与条件表达式“(n)?(c+):(c-)”中的表达式中的表达式(n)等价的表达式是等价的表达式是:A. (n=0)B. (n=1) C. (n!=0)D. (n!=1)18二二 基本运算符与基本运算符与I/O操作操作1优先级:优先级:取非取非(!)算术运算符算术运算符

15、(+,-,*,/,%)关系运算符关系运算符(, (c+d) & (da) | !(cb) & (ab)只有只有(cb后变后变量量a的值:的值:A. 0 B. 1 C. 4 D. 5uint x;逗号表达式逗号表达式“(x=4*5, x*5),x+25”的结果的结果为为A. 20 B. 100 C. 45 D. 表达式不合法表达式不合法变量变量x的值是:的值是:A. 20 B. 100 C. 45 D. 125注意:注意:x*5并不是并不是x=x*5,并不改变,并不改变x的值的值联想指针联想指针 p+和和p+120二二 基本运算符与基本运算符与I/O操作操作注意,赋值运算符的优先级很低!注意,赋

16、值运算符的优先级很低!uchar ch; 执行执行while ( ch=getchar() !=n ); 时输入时输入abcde后,变量后,变量ch的值:的值:A. e B. n C. 0 D. NULLuint a=1, b=2, m=2, n=2;(m=ab)&+n;则则n的值是:的值是: A. 1 B. 2 C. 3 D. 421二二 基本运算符与基本运算符与I/O操作操作1得到结论就不再计算:逻辑运算得到结论就不再计算:逻辑运算2只计算一部分:条件运算只计算一部分:条件运算1.int x=1,y;执行下列语句后执行下列语句后x的值是:的值是:y=+x5 & +xy? +x:+y;A.

17、1 B. 2C. 3D. 4注意:注意:xy? +x:xz? +x:y+ 是从左向右计算。是从左向右计算。22逗号逗号1.逗号逗号(,)运算常见的三种用途是:运算常见的三种用途是:1在变量说明表中用来分隔变量,起分隔符的作用,在变量说明表中用来分隔变量,起分隔符的作用,如:如:int i, j, k, m3, *p;1在函数的参数表中分隔参数,在函数的参数表中分隔参数,从右向左从右向左运算。运算。printf (%d,%d, n, n+);1逗号表达式逗号表达式表达式表达式n1,表达式表达式n2; 用逗号分隔开的表达式用逗号分隔开的表达式从左到右从左到右进行计算,结进行计算,结果的类型和值是最

18、右边表达式的类型和值。果的类型和值是最右边表达式的类型和值。见着见着( )先想函数先想函数,再想逗号表达式再想逗号表达式23二二 基本运算符与基本运算符与I/O操作操作 位运算只作最基本的要求(位运算只作最基本的要求(,&,|)1按位异或的含义。按位异或的含义。2左移位或右移位相当于整数乘以或除以左移位或右移位相当于整数乘以或除以2的幂,的幂,左移位有溢出的可能。左移位有溢出的可能。24二二 基本运算符与基本运算符与I/O操作操作 能够进行简单的表达式计算能够进行简单的表达式计算1隐式类型转换:隐式类型转换:char型与型与int型:型:char转转int;int型与型与float型:都转为型

19、:都转为double型;型;实型运算时都转换为实型运算时都转换为double型;型;下面这句说明是否正确:下面这句说明是否正确: 字符型与单精度实型进行运算时都转换为双字符型与单精度实型进行运算时都转换为双精度实型。精度实型。25二二 基本运算符与基本运算符与I/O操作操作uint main() double a; float b; int c; c=b=a=40/3; printf(“%d%f%fn”,c,b,a);输出:输出:13, 13.000000, 13.00000026二二 基本运算符与基本运算符与I/O操作操作1强制类型转换强制类型转换对求余运算的操作数的转换对求余运算的操作数的

20、转换(int)f%i;void *malloc(size):动态存储函数,分配:动态存储函数,分配size字节的内存。字节的内存。1.若要使指针变量若要使指针变量p指向一个存储指向一个存储int变量的存储单变量的存储单元,则:元,则:int *p;p= malloc(sizeof(int);1注意:无论隐式还是强制类型转换,变量本身注意:无论隐式还是强制类型转换,变量本身的数据类型是不变的。的数据类型是不变的。(int *)27二二 基本运算符与基本运算符与I/O操作操作 基本的基本的I/O函数的使用方法和功能:函数的使用方法和功能:printf、scanf、getchar、putchar1s

21、canf、printf设置的格式要与变量的类型一致。设置的格式要与变量的类型一致。2输入、输出输入、输出long int要用要用%ld。3输入输入double要用要用%lf或或%le。4若需显示百分号,格式为:若需显示百分号,格式为:%scanf:格式与变量类型必须对应:格式与变量类型必须对应printf:%d %c可以互换,可以互换,double可以用可以用%f输出输出28函数形式函数形式含义含义正常返回正常返回错误返回错误返回ch=getchar()从键盘输入一个从键盘输入一个字符到字符到ch得到的字符得到的字符-1putchar(ch)输出输出ch到显示器到显示器 该字符该字符-1sca

22、nf(format,args)从键盘按格式输从键盘按格式输入数据到入数据到args (地址地址)中中正确读入的正确读入的数据个数数据个数printf(fomat,args)将将args变量内容变量内容按格式输出到显按格式输出到显示器示器输出字符个输出字符个数数二二 基本运算符与基本运算符与I/O操作操作 29二二 基本运算符与基本运算符与I/O操作操作u下列函数调用不正确的是:下列函数调用不正确的是:A. putchar(putchar(ch)B. str=gets(s) C. fclose(fp) D. fopen(fp)u输入输入3,执行语句,执行语句printf(“2:%d,”,prin

23、tf(“1:%d,”,scanf(“%d”,&x);以后的输出结果是:以后的输出结果是:A. 2:1,1:1, B. 1:1,2:1, C. 2:4,1:1, D. 1:1,2:4, 30二二 基本运算符与基本运算符与I/O操作操作1如果实际数据所占字符位大于指定的如果实际数据所占字符位大于指定的域宽域宽,按按实际输出实际输出,且小数会按指定的精度来。,且小数会按指定的精度来。1.printf(“%9.5fn”,12345.678);1与与printf不同,不同,scanf不能规定不能规定精度精度,变量前要,变量前要有取地址符有取地址符&。1.在键盘上输入:在键盘上输入:283.1900,要想

24、,要想float c的值为的值为283.19,正确的输入语句:,正确的输入语句:A. scanf(“%f”,&c); B. scanf(“%8.4f”,&c);C. scanf(“%6.2f”,&c); D. scanf(“%8”,&c);12345.6780031二二 基本运算符与基本运算符与I/O操作操作1一定要区分开浮点数的有效位、能表达的最小一定要区分开浮点数的有效位、能表达的最小数、以实数格式输出数、以实数格式输出(%f输出六位小数的实数输出六位小数的实数)。2对对scanf来说,来说,1) 回车,回车,Tab,空格,空格 2) 宽度结宽度结束束 3) 非法输入非法输入 是输入数据的

25、分隔符。是输入数据的分隔符。1.输入:输入:2 3 或或 2 3可以直接可以直接scanf(“%d%d”,&a,&b);用用scanf %d或或%s之后再用之后再用%c是很危险的!是很危险的!32二二 基本运算符与基本运算符与I/O操作操作9.除上述三种天然分隔符以外,除上述三种天然分隔符以外,scanf输入形式输入形式必须要和必须要和“ ”内的内的一模一样一模一样1.输入:输入:2,3 要用要用scanf(“%d,%d”,&a,&b);u使用语句使用语句scanf(”x=%f,y=%f”,&x,&y);要输入;要输入变量变量x、y的值(的值(代表空格),正确的输入是:代表空格),正确的输入是

26、: A. 1.25,2.4B. 1.252.4 C. x=1.25,y=2.4D. x=1.25y=2.433三三 基本语句基本语句 掌握正确的语法形式、控制流程、常掌握正确的语法形式、控制流程、常见书写形式见书写形式 if 和和 switch 语句语句 循环语句(循环语句(for、while、do-while) break 和和 continue 语句语句 goto语句不要求语句不要求 语句之间的嵌套关系和规定语句之间的嵌套关系和规定 最基本的三重循环程序的编写方法最基本的三重循环程序的编写方法34三三 基本语句基本语句 掌握正确的语法形式、控制流程、常掌握正确的语法形式、控制流程、常见书写

27、形式见书写形式1语句:以语句:以“;”为标志,一个复合语句是一条语为标志,一个复合语句是一条语句。句。2if () ; 这里的这里的;是一个空语句,是一个空语句,if语句结束;语句结束;for(;) ; 同样同样35三三 基本语句基本语句 if 和和 switch 语句语句1if语句与条件语句的等价语句与条件语句的等价if (y0)x=-y;elsex=y;(y0)?x=-y:x=y;等价等价等等价价x=(y0)?-y:y;36三三 基本语句基本语句 1if与与else、else if的匹配的匹配请缩进!请缩进!switch() case:语句形式是重点语句形式是重点1括号内可以是任何表达式,

28、但括号内可以是任何表达式,但“取整取整”;2case后的每个后的每个常量表达式常量表达式必须必须是整型、字符型是整型、字符型或枚举型,并且或枚举型,并且各不相同各不相同;3default和和case的的相对相对位置是任意的位置是任意的;4直到直到break才跳出才跳出;5每个每个case之后的语句可多于一个,之后的语句可多于一个,不必不必加加 ;6default子句可以省略。子句可以省略。37三三 基本语句基本语句uint c;while(c=getchar() != n) switch(c-2) case 0: ;case 1: putchar(c+4);case 2: putchar(c+

29、4);break;case 3: putchar(c+3);default: putchar(c+2); 输入:输入:2473 输出:输出:66897738三三 基本语句基本语句 循环语句(循环语句(for、while、do-while)1准确掌握三个语句的执行流程。准确掌握三个语句的执行流程。i=1;while (i=10) n*=i; i+; for (i=1;i=10;i+) n*=i;只要条件不符合,程序退出只要条件不符合,程序退出也就是说,最后一步,也就是说,最后一步,循环体可能不执行,但条件要多判断一次。循环体可能不执行,但条件要多判断一次。for的第三个语句的第三个语句(i+)永

30、远都是在右括号永远都是在右括号之前执行之前执行39uint i=1; 执行语句执行语句while(i+4);后变量后变量i的值:的值:A. 3 B. 4C. 5D. 6u在不使用在不使用goto、break、return等转移语句的情等转移语句的情况下,以下结论正确的是:况下,以下结论正确的是:A. 对对do_while语句,循环条件判断次数可能小语句,循环条件判断次数可能小于循环体执行次数于循环体执行次数B. 对对while和和for语句,循环条件判断次数可能语句,循环条件判断次数可能等于循环体执行次数等于循环体执行次数C. 无论是无论是while、for还是还是do_while语句,循环语

31、句,循环条件判断次数都不可能小于循环体执行次数条件判断次数都不可能小于循环体执行次数D. 循环条件判断次数和循环体执行次数之间无循环条件判断次数和循环体执行次数之间无规律可寻规律可寻40三三 基本语句基本语句u求取满足式求取满足式 12+22+32+ +n2 1000的的n,正确的语句是:,正确的语句是: A. for(i=1,s=0;(s=s+i*i)=1000;n=i+) ; B. for(i=1,s=0;(s=s+i*i)=1000;n=+i) ;C. for(i=1,s=0;(s=s+i*+i)=1000;n=i) ; D. for(i=1,s=0;(s=s+i*i+)=1000;n=

32、i) ;41三三 基本语句基本语句 break 和和 continue 语句语句1break仅能退出仅能退出一层一层(当前层当前层)循环;循环;2continue结束本次循环,如果是结束本次循环,如果是for(,i+)本次循环的本次循环的i+还是要做的。还是要做的。3break和和continue都可以通过改变程序结构而省都可以通过改变程序结构而省略。略。42三三 基本语句基本语句 最基本的三重循环程序的编写方法最基本的三重循环程序的编写方法编程题中可能出到的穷举和图形编程题中可能出到的穷举和图形 请注意网络教室中的编程作业和第请注意网络教室中的编程作业和第六章课件循环应用部分。六章课件循环应

33、用部分。43三三 基本语句基本语句u求解爱因斯坦数学题。有一条长阶梯,若每步求解爱因斯坦数学题。有一条长阶梯,若每步跨跨2阶,则最后剩余阶,则最后剩余1阶,若每步跨阶,若每步跨3阶,则最后阶,则最后剩剩2阶,若每步跨阶,若每步跨5阶,则最后剩阶,则最后剩4阶,若每步跨阶,若每步跨6阶则最后剩阶则最后剩5阶,若每步跨阶,若每步跨7阶,最后才正好一阶,最后才正好一阶不剩。请问,这条阶梯共有多少阶阶不剩。请问,这条阶梯共有多少阶? u全排有全排有30名战士,会骑马的名战士,会骑马的20人,会摔跤的人,会摔跤的22人,会拳击的人,会拳击的18人,会骑马和摔跤的人,会骑马和摔跤的14人,会人,会摔跤和拳

34、击的摔跤和拳击的12人,会拳击和骑马的有人,会拳击和骑马的有10,编,编写程序,输出三项全能的人。写程序,输出三项全能的人。44四四 数组数组 数组的概念,数组说明,数组元素起始下数组的概念,数组说明,数组元素起始下标,如何引用数组元素,数组名的意义标,如何引用数组元素,数组名的意义 多维数组元素的标识方法,存放方式。多多维数组元素的标识方法,存放方式。多维数组只要求到二维维数组只要求到二维 数组与函数的关系:在函数之间传递数组数组与函数的关系:在函数之间传递数组中的一个元素,在函数之间传递整个数组中的一个元素,在函数之间传递整个数组 基本算法:求最大(小)值,排序(冒泡、基本算法:求最大(小

35、)值,排序(冒泡、选择),矩阵乘法,矩阵转置选择),矩阵乘法,矩阵转置45四四 数组数组 (cont.)字符串字符串重点重点 字符串:基本概念,串结束标记字符串:基本概念,串结束标记0 串输入串输入/输出函数:输出函数:gets,puts 串的基本操作串的基本操作(非递归非递归/递归算法递归算法):复:复制、连接、求长、比较、反向、求子串、制、连接、求长、比较、反向、求子串、查找、合并、排序查找、合并、排序46四四 数组数组 数组的概念,数组说明,数组元素起始下数组的概念,数组说明,数组元素起始下标,如何引用数组元素,数组名的意义标,如何引用数组元素,数组名的意义1一组具有一组具有相同数据类型

36、相同数据类型的数据的的数据的有序集合有序集合。2无论一维还是二维数组,在内存中的存储都是无论一维还是二维数组,在内存中的存储都是线性的。做题时可将二维数组写成矩阵形式。线性的。做题时可将二维数组写成矩阵形式。uint m33=1,2,3;int n33=1,2,3;printf(“%dn”,m10+n00);printf(“%dn”,m01+n10);静态存储时静态存储时输出:输出:3 047四四 数组数组 关于数组的大小关于数组的大小(长度,元素的个数长度,元素的个数):1C语言不允许对数组的大小进行动态说明语言不允许对数组的大小进行动态说明定定义时义时 中不能是变量,但可以是字符常量。中不

37、能是变量,但可以是字符常量。2初始化初始化(赋初值赋初值)时只有时只有第一维数组长度可省略第一维数组长度可省略。3数组初始化数组初始化(赋初值赋初值)时越界将报错;引用时越时越界将报错;引用时越界不报错。界不报错。4对数组元素的引用,下标永远从对数组元素的引用,下标永远从0开始,到该维开始,到该维长度长度-1。5不能对数组整体赋值不能对数组整体赋值(除初始化和赋初值时除初始化和赋初值时),数组名是一个常量!数组名是一个常量!48四四 数组数组u对字符数组对字符数组s赋值,不合法的一个:赋值,不合法的一个:A. char s =“Beijing”;B. char s20=“Beijing”;C.

38、 char s20; s=“Beijing”;D. char s20=B,e,i,j,i,n,j;char *s;s=“Beijing”;49四四 数组数组 1数组名是地址常量:一维数组名是第一个元素的数组名是地址常量:一维数组名是第一个元素的地址地址一级地址;二维数组名是第一行元素的一级地址;二维数组名是第一行元素的地址,第一个元素的地址的地址地址,第一个元素的地址的地址二级地址。二级地址。2数组的每个元素功能上等价于一个变量。数组的每个元素功能上等价于一个变量。1.int a3=1,2,3;以下数据是变量还是地址:以下数据是变量还是地址: a0 *a a *(a+1) a1 &a0+1 *

39、&a1 a+1 &a0元素元素a0、*a 地址:地址:a、&a0元素元素a1、*(a+1)、*&a1 地址:地址:&a0+1、a+1ai *(a+i)&ai a+i50四四 数组数组u二维数组二维数组int b 3=1,2,3,4,5,6; b b0 *b *(b+1) b12 *(*(b+1)+2)(*(b+1)2 &b0&b00b00b1b0b1bb+1654321*(b1+2)bij *(bi+j) *(*(b+i)+j) (*(b+i)j51四四 数组数组u若有说明:若有说明:int b410, i, j,(且且0=i4, 0=j10),则对数组元素,则对数组元素bij引用错误的是:引

40、用错误的是:A. *(&b00+10*i+j) B. *(b+i)j C. *(*(b+i)+j) D. *(bi+j)u若有定义若有定义int b35, i, j; (且且0=i3, 0=jmax) max=x; if ( ) min=x; scanf(“%f”,&x); printf(“max=%f,min=%fn”,max,min)max=xmin=xx=0xmin54u用冒泡法对输入的用冒泡法对输入的10个浮点数从小到大进行排序个浮点数从小到大进行排序int main() ;int i,j;printf(“Input 10 numbers:n”);for(i=0; ; i+) scan

41、f(“%f”,&ai); for(i=0; ; i+)for(j=0; ; j+;) if( ) x=aj; ; aj+1=x; float a10,xi10i9jaj+1aj=aj+1冒泡:冒泡:外层:外层:n-1次次内层:内层:n-i-1次次(若若i从从0开始开始)55四四 数组数组程序填空技巧:程序填空技巧:q从备选项中找启发;从备选项中找启发;q带入一个数来验证,也用于读程序,特带入一个数来验证,也用于读程序,特别是字符串处理。别是字符串处理。56u以下程序的功能是将字符串以下程序的功能是将字符串t后移后移len个位置,移个位置,移出的字符移到串首。请完善程序。出的字符移到串首。请完善

42、程序。int main() void backm( ); char t81; int len=3; gets(t); backm(t, len); printf (%sn, t); 【5】 A.*(s+n) B.(s+n-1) C.(s+n-j) D.*(s+n-1)【6】 A.*(s+n-2) B.*(s+n-i) C.*(s+n-2-i) D.(s+n-2-i)void backm(char *s, int m ) int i, j, n; char ch; n=strlen(s); for(j=0;jm;j+) ch= 【5】 ; for(i=0;in-1;i+) *(s+n-1-i)=

43、 【6】 ; *s=ch; 57四四 数组数组字符串字符串重点重点 字符串:基本概念,串结束标记字符串:基本概念,串结束标记0 串输入串输入/输出函数:输出函数:gets,puts 串的基本操作串的基本操作(非递归非递归/递归算法递归算法):复:复制、连接、求长、比较、反向、求子串、制、连接、求长、比较、反向、求子串、查找、合并、排序查找、合并、排序58四四 数组数组1要想用字符数组保存字符串,则应多留出一个长要想用字符数组保存字符串,则应多留出一个长度来。度来。2有有0才叫字符串。之所以能用字符指针才叫字符串。之所以能用字符指针char * str引用字符串,就是因为引用字符串,就是因为0是

44、默认是默认的字符串尾的字符串尾1.对字符数组对字符数组str赋初值,赋初值,str不能作为字符串使用不能作为字符串使用的是:的是:A. char str =“shanghai”;B. char str =“shanghai”;C. char str9=s,h,a,n,g,h,a,i,0;D. char str8=s,h,a,n,g,h,a,i;59四四 数组数组u已知:已知:char str120=“abcde”, str220=“xyz”;则执行语句:;则执行语句:printf(%d, strlen ( strcpy(str1, str2) ) );输出结果是:输出结果是: A. 9 B.

45、3 C. 5D. 8601char str20;scanf(“%s”,str);只能输入不包括空格、只能输入不包括空格、t和和n的字符串,自动在的字符串,自动在串尾加串尾加0。1printf(“%s”,str);从输出项提供的地址开始输出,直到遇到从输出项提供的地址开始输出,直到遇到0为止,为止,0不输出。不输出。1gets(str); 可可输入包括空格和输入包括空格和t的字符串,的字符串,n自动转换为自动转换为0。1puts(str);把首地址为把首地址为str的字符串显示在屏幕上并换行。的字符串显示在屏幕上并换行。61u 回顾以下语句的语句回顾以下语句的语句l for ( i=0; str

46、i!=0; i+ ) ; i-; l while ( *p ) p+; p-; ln = strlen(str); n-; lfor (i=0;(str2i=str1i)!=0; i+);lwhile(str2i=str1i) i+;lwhile(*str2+=*str1+);定位最后定位最后一个字符一个字符复复制制62lfor ( i=0; str1i!=0; i+ ) ;for ( j=0; (str1i=str2j) != 0; i+, j+ ) ;lfor (k=0; km & strk!=0; k+);for (h=0;hn&(subh=strk)!=0;k+,h+);连接连接子串子

47、串63lfor ( i=0; in-1; i+ ) for ( j=0; j stringj+1 ) t = stringj; stringj = stringj+1; stringj+1 = t; lfor ( i=0; i6-1; i+ ) for (j=0; j 0 ) strcpy ( t, strj ); strcpy ( strj, strj+1); strcpy ( strj+1, t); 64l n = strlen(str); for ( i=0, j=n-1; ij; i+, j- ) c = stri; stri = strj; strj = c; lrevstr ( c

48、har * s ) char *p=s, c; while ( *p ) p+; p-; while ( swp) ; for (i=*n;i=p;i-) ; wp=x; +*n;wi+1=wip+*n=strlen(w)遇到字符串问题,一遇到字符串问题,一定举一个简单的例子定举一个简单的例子验证一下。验证一下。68五五 函数函数 函数的概念,函数的定义与说明,函数调函数的概念,函数的定义与说明,函数调用,函数的返回值与函数定义之间的关系用,函数的返回值与函数定义之间的关系 函数之间进行参数传递的特点(值传递)函数之间进行参数传递的特点(值传递)传递一般变量:形参一般变量,实参一般变量传递一般

49、变量:形参一般变量,实参一般变量传递变量地址:形参指针变量,实参变量地址传递变量地址:形参指针变量,实参变量地址在函数之间传递:数组,结构在函数之间传递:数组,结构函数的返回值:简单类型,指针,结构,函数的返回值:简单类型,指针,结构,void69五五 函数函数(cont.) 掌握变量的存储类型和作用域,变量初始掌握变量的存储类型和作用域,变量初始化化 函数递归的概念,递归调用的一般过程。函数递归的概念,递归调用的一般过程。能够编写直接递归程序,掌握递归程序设能够编写直接递归程序,掌握递归程序设计方法:针对数值问题和非数值问题使用计方法:针对数值问题和非数值问题使用不同的方法。不同的方法。70

50、五五 函数函数 函数的概念,函数的定义与说明,函数调函数的概念,函数的定义与说明,函数调用,函数的返回值与函数定义之间的关系用,函数的返回值与函数定义之间的关系1一个源文件可以被不同的程序使用。一个源文件可以被不同的程序使用。2一个函数可以被位于不同源文件中的其它函数一个函数可以被位于不同源文件中的其它函数调用。调用。3主函数可以放在任何一个源文件中的任何位置。主函数可以放在任何一个源文件中的任何位置。4函数是函数是C程序的基本组成单位,编译单位是文件程序的基本组成单位,编译单位是文件5可以嵌套调用和递归调用函数,但不可嵌套定可以嵌套调用和递归调用函数,但不可嵌套定义函数。义函数。71五五 函

51、数函数 1函数的类型即函数返回值的类型函数的类型即函数返回值的类型决定函数决定函数返回值类型的是定义函数时所指定的函数类型返回值类型的是定义函数时所指定的函数类型(可能发生隐式类型转换可能发生隐式类型转换)。2函数名是函数定义唯一不可缺省的部分;函数函数名是函数定义唯一不可缺省的部分;函数类型省略时,默认为整型。类型省略时,默认为整型。3所有函数都返回,只是所有函数都返回,只是void函数返回时没有返函数返回时没有返回值。回值。4只能将实参的值传给形参,单向的。只能将实参的值传给形参,单向的。5int、char型函数定义在调用后不用声明。型函数定义在调用后不用声明。72五五 函数函数 1形参说

52、明的两种方式:形参说明的两种方式:2函数形参是自动变量,在函数定义时不占有内函数形参是自动变量,在函数定义时不占有内存空间。存空间。3形参必须能存放数据,可以是变量、地址,如形参必须能存放数据,可以是变量、地址,如指针和数组名指针和数组名(虽然形式是数组,但仍是指针!虽然形式是数组,但仍是指针!)1.double x,y,z(int); int fun(int x,int y) int fun(x,y) int x,y; 对对z是函数声明是函数声明73五五 函数函数ufun (float x) float y; y=x*x; return y;已知已知float z;使用使用z=fun(2.5

53、);调用该函数后,变调用该函数后,变量量z的值:的值:A. 4 B. 6C. 6.25D. 有编译错误有编译错误74五五 函数函数 函数之间进行参数传递的特点(值传递)函数之间进行参数传递的特点(值传递)传递一般变量:形参一般变量,实参一般变量传递一般变量:形参一般变量,实参一般变量传递变量地址:传递变量地址:形参指针变量,实参变量地址形参指针变量,实参变量地址在函数之间传递:数组,结构在函数之间传递:数组,结构函数的返回值:简单类型,指针,结构,函数的返回值:简单类型,指针,结构,void1实参变量和形参变量之间是值传递。实参变量和形参变量之间是值传递。(即使是地即使是地址,也是传递的地址值

54、,也发生复制址,也是传递的地址值,也发生复制)2使用数组名作为函数调用时的实参,实际上传使用数组名作为函数调用时的实参,实际上传递给形参的是数组的首地址。递给形参的是数组的首地址。3传递地址,并对传递地址,并对*x操作,将影响到共享的变量操作,将影响到共享的变量75u用指针完成两数的交换用指针完成两数的交换int swap ( , ) int t; t= ; ; =t; return ; int main() int x=2, y=3; swap ( , );A. x B. y C. *x D. *y E. &x F. &yG. int *x H. int *y I. int x J. int

55、 yint *x int *y*x*x=*y*y&x&y76u函数的功能是交换变量函数的功能是交换变量x和和y中的值,且通过正中的值,且通过正确调用返回交换的结果。能正确执行此功能的确调用返回交换的结果。能正确执行此功能的函数是:函数是:A. funa (int *x, int *y) B. funb (int x, int y) int *p; int t; p=x;*x=*y; *y=*p; t=x; x=y; y=t; C. func (int *x, int *y) D. fund (int *x, int *y) *x=*y; *x=*x+*y; *y=*x; *y=*x-*y; *

56、x=*x-*y; 77u以下程序的运行结果是以下程序的运行结果是#include void f(int b ) int i=0; while(bi=10) bi+=2; i+; int main() int i, a = 1, 5,10, 9,13, 7; f(a+1); for(i=0; i6; i+) printf(%d , ai);A. 3 7 12 11 13 7B. 1 7 12 11 13 7C. 1 7 12 11 13 9D. 1 7 12 9 13 778五五 函数函数u已知函数原型为已知函数原型为double fun(int a ,flaot b);其其中形参中形参a是:是

57、:A. 指针变量指针变量 B. 指针数组指针数组C. 整型数组整型数组D. 数组指针数组指针 若实参是数组名,被调子函数的形参可以定义若实参是数组名,被调子函数的形参可以定义为为“数组数组”(数组大小只第一维可省略数组大小只第一维可省略),也可,也可以定义为指针。以定义为指针。形参数组的大小由调用函数的实参数组的大小形参数组的大小由调用函数的实参数组的大小决定。决定。79u字符串复制字符串复制copy (char s1 , char s2 ) int i=1; while ( );int main() char a20, b20; scanf(“%s”,b); copy(a,b); print

58、f(“%sn”,a);s1i+=s2i也可以是:也可以是:char *s1, char *s280u字符串复制字符串复制copy (char *s1, char *s2) while ( );int main() char a20, b20; gets(b); copy(a,b); ;*s1+=*s2+puts(a)也可以是:也可以是:char s1 , char s2 81五五 函数函数 变量的存储类型和作用域,变量初始化变量的存储类型和作用域,变量初始化自动变量自动变量寄存器变量寄存器变量 内部静态变量内部静态变量 外部静态变量外部静态变量外部变量外部变量1局部变量:在函数或复合语句内部定

59、义;局部变量:在函数或复合语句内部定义;2全局变量:在所有函数外定义,全局变量:在所有函数外定义,作用域从定义作用域从定义点到文件尾。点到文件尾。3静态存储的变量在编译阶段得到初值。静态存储的变量在编译阶段得到初值。每次调用函数每次调用函数时值能保持时值能保持其它文件不能存取其它文件不能存取82五五 函数函数u如果一个变量在整个程序运行期间都存在,但是如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,该变量应被说明仅在说明它的函数内是可见的,该变量应被说明为:为:A. 静态变量静态变量 B. 动态变量动态变量 C. 外部变量外部变量 D. 内部变量内部变量u若要定义一个只允

60、许在该源文件中所有函数使用若要定义一个只允许在该源文件中所有函数使用的变量,则该变量的存储类型是:的变量,则该变量的存储类型是:A. extern B. register C. auto D. staticustatic int i=10;其中其中“i=10”的含义是:的含义是:A. 只说明了一个静态变量只说明了一个静态变量 B.将变量将变量i赋值为赋值为0C. 与与“auto i=0;”在功能上等价在功能上等价 D. 将变量将变量i初始化为初始化为083五五 函数函数u以下叙述中错误的是:以下叙述中错误的是:A. 在在C语言中,函数中的自动变量可以赋初值,语言中,函数中的自动变量可以赋初值,

61、每调用一次赋一次初值每调用一次赋一次初值B. 在在C语言中,在调用函数时,实参和对应形语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容参在类型上只需赋值兼容C. 在在C语言中,外部变量的隐含类别是自动存语言中,外部变量的隐含类别是自动存储类别储类别D. 在在C语言中,函数形参的存储类型是自动语言中,函数形参的存储类型是自动(auto)类型的变量类型的变量84五五 函数函数 函数递归的概念,递归调用的一般过程。函数递归的概念,递归调用的一般过程。能够编写直接递归程序,掌握递归程序设能够编写直接递归程序,掌握递归程序设计方法:针对数值问题和非数值问题使用计方法:针对数值问题和非数值问题使用

62、不同的方法。不同的方法。1所有递归程序都可以采用非递归算法实现。所有递归程序都可以采用非递归算法实现。2递归是编程题目之一,要注意是否是只要求提递归是编程题目之一,要注意是否是只要求提交子函数。交子函数。3如果是数值型,根据公式将如果是数值型,根据公式将f(n)拆成拆成f(n-1)(有时有时也会用上也会用上f(n-2)。题目可能已经拆好了。题目可能已经拆好了。85u以下程序的运行结果是以下程序的运行结果是#include void fun(char *s);int main() static char str =123; fun(str);void fun(char *s) if(*s) fu

63、n(+s); printf(%sn, -s); A. 3 B. 123 C. 1 D. 3 32 12 12 23 321 1 123 12386六六 指针指针 指针变量的基本概念与基本运算:取指针变量的基本概念与基本运算:取地址地址“&”运算,取内容运算,取内容“*”运算运算 指针变量与一般变量的关系指针变量与一般变量的关系 数组与指针的关系数组与指针的关系87六六 指针指针(cont.) 指针的指针的3种基本运算与意义种基本运算与意义 指针与整数进行加减运算指针与整数进行加减运算(指针变量与自增指针变量与自增+、自减自减-运算的关系运算的关系) 指针之间进行关系运算指针之间进行关系运算 指

64、针之间求差值指针之间求差值 函数与指针的关系函数与指针的关系 指针数组与数组指针,指针数组与数组指针,main函数的参数函数的参数88六六 指针指针 指针变量的基本概念与基本运算:取地址指针变量的基本概念与基本运算:取地址“&”运算,取内容运算,取内容“*”运算运算1指针是一种数据类型,其变量称为指针变量指针是一种数据类型,其变量称为指针变量指针变量是变量,要先赋值再使用。指针变量是变量,要先赋值再使用。2指针的类型即它所指向的类型,指针指针的类型即它所指向的类型,指针p解地址和解地址和每加每加1减减1都依据该信息提取都依据该信息提取一个单元一个单元的数据。的数据。89六六 指针指针1.int

65、 b32,*p,(*pb)2;p指向指向int,若,若p=&b00,则,则p+1向下移动一个元素,向下移动一个元素,指向指向b01;pb指向一维数组,若指向一维数组,若pb=b,则,则pb+1向下移动一个向下移动一个一维数组,指向一维数组,指向b1。90六六 指针指针 1在定义变量时,在定义变量时,*是类型标识符。是类型标识符。2数组名可以用数组名可以用*,指针可以用,指针可以用 ,pi表示由表示由p指向的当前位置向下偏移指向的当前位置向下偏移i个单元的内容。个单元的内容。1.int x,*p=&x; 以下数据分别是:以下数据分别是:*&p*pp0 x0 &*p*&xx的地址的地址变量变量x变

66、量变量x错误错误x的地址的地址变量变量x91六六 指针指针uint a,*p=&a; 下列函数调用错误的是:下列函数调用错误的是:A. scanf(“%d”,&a);B. scanf(“%d”,p);C. printf(“%d”,p);D. printf(“%d”,*p);92六六 指针指针 数组与指针的关系数组与指针的关系1数组名和指针的差别。数组名和指针的差别。1.char a6,*p=a; a+1; p+1; a+; p+;a是常量,是常量,p是变量是变量a不能出现在不能出现在=左边左边下面正确的赋值语句是:下面正确的赋值语句是:A. a=“12345”;B. *a=“12345”;C.

67、 p=“12345”;D. *p=“12345”;93六六 指针指针uint (*ptr)M;其中标识符其中标识符ptr是:是:A. M个指向整型变量的指针个指向整型变量的指针B. 指向指向M个整型变量的函数指针个整型变量的函数指针C. 指向具有指向具有M个整型元素的一维数组的指针个整型元素的一维数组的指针D. 具有具有M个指针元素的一维指针数组个指针元素的一维指针数组uchar *p6;其中标识符其中标识符p是:是:A. 指向指向char型变量的指针型变量的指针B. char型数组型数组C. 指针数组指针数组D. 数组指针数组指针94六六 指针指针uint a23=1,2,3,4,5,6;i

68、nt (*ptr)3=a, *p=a0;能够正确表示数组元素能够正确表示数组元素a12的是:的是:A. *(*(a+1)+2)B. *(*(p+5)C. (*ptr+1)+2D. *(ptr+1)2)正确:正确:*(p+5)正确:正确:*(*(ptr+1)+2)正确:正确:(*(ptr+1) )2 优先级优先级高于高于*ptr是指向含有三个元素的数组的指针,是指向含有三个元素的数组的指针,这三个元素分别是这三个元素分别是(*ptr)0,(*ptr)1和和(*ptr)2,即,即1,2,395u若有以下说明和语句,如果若有以下说明和语句,如果0=i4, 0=j3,则,则以下各组正确表示以下各组正确

69、表示a数组元素的地址的是:数组元素的地址的是: int main() int a43=0, *p4, (*pa)3, i, j; for(i=0;i” 结构与函数的关系:函数间传递结构结构与函数的关系:函数间传递结构 结构与数组的关系,结构数组结构与数组的关系,结构数组 结构与指针的关系,结构指针与结构与指针的关系,结构指针与+、-运算的关系运算的关系104七七 结构结构对结构成员的引用要一直到最深一层。对结构成员的引用要一直到最深一层。请牢记:请牢记:另外,和数组一样,除初始化和赋初值以外,不能另外,和数组一样,除初始化和赋初值以外,不能整体为结构赋值:整体为结构赋值:today=1990,

70、7,18;但可以相同类型的两个结构变量赋值但可以相同类型的两个结构变量赋值(数组不可数组不可):today=tomorrow;优先级:优先级:() . - - + *从高到低从高到低105struct date int month; int day; int year;struct person char name 30; char sex; struct date birthday; man; 对结构变量对结构变量man成员的引用成员的引用scanf(“%s”,man.name) ;strcpy(man.name, “zhang”);man.sex = M; man.birthday.yea

71、r = 1980; 106u根据下面的定义,能打印出字母根据下面的定义,能打印出字母M的语句是:的语句是:struct person char name9; int age; ; struct person class10 = John, 17, Paul, 19, Mary, 18, “Adam, 16 ; A. printf(%cn,class3.name); B. printf(%cn,class3.name1); C. printf(%cn,class2.name1); D. prlntf(%cn,class2.name0);107七七 结构结构u以下对结构变量以下对结构变量stu中成

72、员中成员age的非法引用是:的非法引用是: struct student int age; int num; stu,*p; p=&stu1; A. stu1.ageB. student.age C. p-age D. (*p).age108七七 结构结构ustruct dent int n; int *m;int a=1,b=2,c=3;struct dent s3=101,&a,102,&b,103,&c;struct dent *p=s;以下表达式值为以下表达式值为2的是:的是:A. (p+)-m; B. *(p+)-m;D. (*p).m D. *(+p)-m;109八八 文件文件 基

73、本概念:系统对文件的基本概念:系统对文件的I/O过程,文件输过程,文件输入,文件输出,入,文件输出,FILE类型,文件的位置指类型,文件的位置指针,文件结束标记针,文件结束标记EOF 文件的分类与各类的特点,文件的分类与各类的特点,3种标准设备文种标准设备文件件 文件操作的一般步骤,文件打开与关闭文件操作的一般步骤,文件打开与关闭(fopen、fclose),三种文件打开的基本),三种文件打开的基本模式(只读模式(只读/只写只写/追加),各自的特点追加),各自的特点110八八 文件文件(cont.) 文件顺序读写与随机读写(文件顺序读写与随机读写(fseek、rewind)的概念)的概念 常见

74、的文件读写操作函数的功能与使用:常见的文件读写操作函数的功能与使用:fgetc、fputc、fgets、fputs、fscanf、fprintf、fread、fwrite 文件操作错误检测文件操作错误检测(feof,ferror)111八八 文件文件1.从计算机的内存中将数据写入文件,称为从计算机的内存中将数据写入文件,称为 。A. 输入输入 B. 输出输出 C. 修改修改 D. 删除删除1.C语言可以处理的文件类型是语言可以处理的文件类型是 。 A.文本文件和数据文件文本文件和数据文件 B.文本文件和二进制文件文本文件和二进制文件 C.数据文件和二进制文件数据文件和二进制文件 D.以上答案都

75、不完全以上答案都不完全1.下列关于文件的结论中正确的是下列关于文件的结论中正确的是 。A. 对文件操作必须先关闭文件对文件操作必须先关闭文件B. 对文件操作必须先打开文件对文件操作必须先打开文件C. 对文件的操作顺序没有统一规定对文件的操作顺序没有统一规定D. 以上三种答案全是错误的以上三种答案全是错误的112八八 文件文件1.系统的标准输入文件是系统的标准输入文件是 。A. 键盘键盘 B. 显示器显示器 C. 软盘软盘 D. 硬盘硬盘1.对文件的基本操作过程是对文件的基本操作过程是 。A.打开打开操作操作关闭关闭 B.打开打开(可省可省)操作操作关闭关闭 C.打开打开操作操作关闭关闭(可省可

76、省) D.以上三个答案都不对以上三个答案都不对1.为了显示一个文本文件的内容,在打开文件时,为了显示一个文本文件的内容,在打开文件时,文件的打开方式应当是文件的打开方式应当是 。A. r+ B. w+” C. wb+ D. ab+113八八 文件文件1.要打开一个已存在的非空文件要打开一个已存在的非空文件“file”用于修改,用于修改,选择正确的语句是选择正确的语句是 。A.fp=fopen(file,r); B.fp=fopen(file,a+);C.fp=fopen(file,w); D.fp=fopen(file,r+);1.为了改变文件的位置指针,应当使用的函数是为了改变文件的位置指针

77、,应当使用的函数是 。A.fseek( ) B.rewind( ) C.ftell( ) D.feof( )1.要将一个结构数组存入一个二进制文件中,应当要将一个结构数组存入一个二进制文件中,应当使用函数使用函数 。A.fputc B.fputs C.fprintf D.fwrite114八八 文件文件1.使用使用fgetc函数,打开文件的方式必须是:函数,打开文件的方式必须是:A. 只写只写 B. 追加追加 C. 读或读读或读/写写 D. B和和C都正确都正确u若磁盘文件若磁盘文件“file.txt”,已存在,则要保留文,已存在,则要保留文件中原来的信息;若文件件中原来的信息;若文件“fil

78、e.txt”不存在,不存在,则在磁盘上建立一个新文件则在磁盘上建立一个新文件用什么打开方式用什么打开方式?a+115u以下程序是把文件以下程序是把文件file1.dat中的内容从显示器输出,中的内容从显示器输出,然后复制到一个名为然后复制到一个名为file2.dat的新文件中。的新文件中。#include int main() FILE *fp1, *fp2; if(fp1=fopen(file1.dat, r)=NULL) exit(0); if(fp2=fopen( , w)=NULL) exit(0); while ( ) putchar ( fgetc(fp1) ); rewind(f

79、p1); while ( !feof(fp1) ) fputc( , fp2); fclose(fp1); fclose(fp2);printf (“Enter filename:”); scanf(%s,fi);if (fp=fopen( fi ,“r”) = NULL)while (ch=fgetc(fp1)!=EOF )fgetc(fp1)“file2.dat”!feof(fp1)116小结:不能出现在小结:不能出现在“=”左边左边(因此不能用因此不能用+和和-)的量:的量: 常量:常量:5.2= int a3; a= 表达式:表达式:a+b= 结构变量名:结构变量名:struct date today; today=1990,7,18;以上表达式都是错误的以上表达式都是错误的117补充一些练习一、一、习题与上机指导习题与上机指导:单项选择:单项选择:1,5,18,25,26,29,32,34,46,59,63,68,69,71,76,80,81,95,97。程序填空:程序填空:5,6,11,13,14,16,19,29,32,33,35,38,53二、一套计算机等级考试的考题二、一套计算机等级考试的考题文文件名件名练习练习118

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号