C语言复习大纲.docx

上传人:rrsccc 文档编号:10406098 上传时间:2021-05-15 格式:DOCX 页数:13 大小:31.55KB
返回 下载 相关 举报
C语言复习大纲.docx_第1页
第1页 / 共13页
C语言复习大纲.docx_第2页
第2页 / 共13页
C语言复习大纲.docx_第3页
第3页 / 共13页
C语言复习大纲.docx_第4页
第4页 / 共13页
C语言复习大纲.docx_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《C语言复习大纲.docx》由会员分享,可在线阅读,更多相关《C语言复习大纲.docx(13页珍藏版)》请在三一文库上搜索。

1、C 语言复习大纲第 1 章 概述重点:计算机语言,算法的定义与表示方法难点:算法的定义与表示方法知识点:1.程序设计语言:机器语言、汇编语言、高级语言。2.高级语言翻译成机器语言的两种方式:编译方式、解释方式。3.算法 +数据结构 =程序4.结构化程序设计的三种基本结构:顺序结构、分支(选择)结构、循环结构5.算法的表示方法:自然语言、传统的程序流程图、N-S 流程图。6.结构化程序设计的32 字原则:7.C 语言的产生及发展: UNIX 操作系统8.C 语言的特点:9.C 语言由函数组成,有且仅有一个main 函数。10.函数:说明部分、函数体。11.一条复杂语句分行书写,用反斜杠()续行。

2、12.注释用 /* */第 2 章 输入和输出重点:单字符输入 /出、格式化输入、格式化输出难点:格式化输入、格式化输出知识点:1.单字符输入 /出: getchar()、putchar(字符变量)。2.字符串: gets(字符数组名 )、puts(数组名 )。3.格式化输入:scanf( 格“式控制符 ”,地址列表 );格式控制符: %c、 %d 、 %o 、 %x、 %s、 %f 若输入 long 型、 double 型应加 l,如 %ld、 %lo、 %lf格式 %s 输入字符串不包含空格,且对应地址表列是字符数组名。默认分隔符:空格、回车、Tab 键(也可按域宽截取)格式控制符间不宜加

3、其它字符,如加入其它字符,输入时应原样输入,否则数据接收错误。如: scanf( “%d, %d”,&a,&b); 输入数据时两数据间要有逗号; scanf( “%d%d”,&a,&b); %d 间有两个空格,则输入数据时至少有两个空格。 矚慫润厲钐瘗睞枥庑赖。输入函数中 %f 格式不能带小数,如: scanf( “ %7.2f ”是,&a)错误的。%c 格式输入单字符,空格字符和转义字符都作为有效字符接收。%*d 表示跳过它对应的输入数据。4.格式化输出: printf( 格“式控制符 ”,输出列表 );格式控制符部分可加入其它字符,原样输出。如:提示语或使输出结果清楚显示输出列表:可以是变

4、量、常量、表达式、函数调用等。1 / 38转义字符:以斜杠 ()开始,作为一个字符,如求字符串长度: “ jknlj ,”长度为 7。聞創沟燴鐺險爱氇谴净。注意:输出long 、 double 型数据,用 %ld、 %lf可设定输出宽度, m 和 n,如: %5d、%6.2f、%.2f负号表示域内向左对齐,如:%-12d第 3 章 C 语言程序设计基础重点:常量、变量、运算符运算规则及其优先级难点:运算符运算规则及其优先级知识点:1.常量:整型常量: 235、0235、-0x235(前可加负号),长整型: -12l、-065l、0x55l等。实型常量:小数形式、指数形式。字符常量:用单引号,如

5、 c(注意转义字符)。字符串常量:用双引号,如“ hglhg、”“ a,”内存占用为实际长度加1。符号常量:无参宏( #define)。2.变量:标识符命名规则: 4 条。各种类型变量的长度。数据类型转换:自动、强制。注:强制类型转换只得到所需类型的结果值,原变量或表达式的类型仍为原类型。如 (float)(x+y)3.各种运算符运算规则及其优先级。4.补充 -逻辑表达式的优化运算:& 运算:只要算出第一个表达式为 0,第二个表达式不再运算。|运算:只要算出第一个表达式为 1,第二个表达式不再运算。如: int i=0,j=0,a=6;if (+i0)|(+j0)a+;printf(%d%d%

6、d”,i,j,a);结果 i 为 1, j 为 0,a 为 7。残骛楼諍锩瀨濟溆塹籟。5.其它运算符:条件运算、逗号运算、长度运算符(形式:sizeof表达式或sizeof (数据类型 ))酽锕极額閉镇桧猪訣锥。第 4 章 C 语言控制结构重点:分支结构、循环结构及其嵌套难点:循环结构及其嵌套知识点:1.if 、while 、for 中的表达式,一般是逻辑或关系表达式,也可以是任意类型表达式。如 while(a=5) 彈.贸摄尔霁毙攬砖卤庑。2.如果有多条语句,必须用大括号括起,构成复合语句。3.switch 语句中 case后面只能是常量值;若执行完某 case后的语句没遇到 break,则

7、继续执行下一个 case 语句。 謀荞抟箧飆鐸怼类蒋薔。2 / 384.循环程序:注意循环变量的初值、修正值、循环条件等,以及循环中用到的某些变量赋初值,如求累加和变量。 5.一般是先判断条件,再执行循环体;但 dowhile 语句是先执行一遍循环体,再判断条件。6.break、continue 语句。第 5 章 数组重点:数组的定义及其使用,数组中的两种排序方法难点:函数数组中的两种排序方法知识点:1.数组定义:inta10;或 intaN(N 需要事先定义为符号常量: #define N 10 );茕桢广鳓鯡选块网羈泪。数组长度必须是常量值,不能是变量,可以是在程序开始前定义的符号常量,进

8、行长度定义。2.下标引用: 0N-1,切记不能引用到N。(int a5 ;a5=10;这种引用是错误的 )鹅娅尽損鹌惨歷茏鴛賴。3.数组初始化时可省略长度定义。4.数组定义后如没有给任何一个元素赋初值,对于 static 类型,各元素初值为 0;对于 auto 类型,各元素值不定。 籟丛妈羥为贍偾蛏练淨。5.数组不能整体赋值。数组中各元素值的输入/出,应使用循环程序逐个输入/出;字符数组例外( gets、puts)。 預頌圣鉉儐歲龈讶骅籴。6.数组中的两种排序方法:冒泡法:外循环为 i=0;in-1;内循环为 j=0;jn-1-i ;循环中比较 aj 和 aj+1 两个元素,并互换。(考试内容

9、) 渗釤呛俨匀谔鱉调硯錦。选择法:外循环为i=0;in-1;内循环为 j=i ;jn;内循环开始前,先赋初值 min=i ;循环中比较 amin 和 aj 两个元素,不互换,只让 min=j ;内循环结束后再进行互换, ai 和 amin 互换。(不做考试内容,但是希望同学们记住这种好的排序方法) 铙誅卧泻噦圣骋贶頂廡。7.二维数组:按行存放;赋初值的5 种情况。8.字符数组:通常定义较长长度,如:chars50 ; 通常用于存放字符串,结束标志为 0。擁締凤袜备訊顎轮烂蔷。可用字符串常量为其初始化,如: char s= “sdkhg;” 也可由键盘输入,如gets(s);输出用 puts(s

10、);贓熱俣阃歲匱阊邺镓騷。注意:char s5= a, d, f;此,种形g式,不是w字符串, 无字符串结束标志,仅仅是普通一维字符数组,不能用 puts 输出,只能用 %c 格式逐个输出。 坛摶乡囂忏蒌鍥铃氈淚。字符数组的输入 /出还有两种形式: %c、%s。第 6 章 函数重点:函数的定义及其调用,变量的作用域难点:函数的调用知识点:3 / 381.函数定义: int func(int a,int y) ;如定义时没指明函数类型,如: fun(int a);默认是 int 型,返回值不确定。 蜡變黲癟報伥铉锚鈰赘。2.声明:函数定义在前,使用在后,可省略函数声明,反之需要在使用前声明。函数

11、声明的几种变通形式。函数声明后加分号,而函数定义后没有分号。3.函数调用:函数名(实参表);实参与形参个数、类型、位置一致。形参与实参占据不同的存储单元;形参只在函数调用时才为其分配存储单元,函数调用结束后释放。实参与形参之间是传值调用, 单向传递关系, 形参值改变, 不会影响实参值。补充:函数可嵌套调用,不可嵌套定义。嵌套调用:一个函数内部又调用另外一个函数。递归调用:一个函数调用它自身。(考试不作要求)4.数组作为函数参数: voidfunc(int a,int n);func(a,10);传递的是实参数组的首地址。调用时实参是数组名,如5.多维数组:voidfunc(int a5,int

12、n);(可省略第一维,但不能省略其它高维 )。買鲷鴯譖昙膚遙闫撷凄。6.从作用域角度,变量分为:全局变量、局部变量。局部变量:在函数内部定义,只能在该函数中使用,包括函数的形参和复合语句中定义的变量, main 函数中定义的变量也是局部变量,不能被其它函数使用。綾镝鯛駕櫬鹕踪韦辚糴。不同函数内定义的同名变量,互不影响,因其作用域不同,内存空间独立。全局变量:在函数外部定义,作用域从定义开始到本文件结束。其间的所有函数都可以使用它,可在各函数间传递值,但容易带来副作用,降低模块独立性。 7.变量的存储类别: auto、 static、 register、extern。8.局部变量的存储类别:au

13、to、 static、 register。auto 型的生存周期时函数被调期间,两次调用之间不保留值。static 型的生存期是整个程序运行期间,保留上一次调用后的值,且只赋一次初值(在程序运行前初始化,默认初值为 0)。如: 猫虿驢绘燈鮒诛髅貺庑。9.全局变量的存储类别:static、extern。全局变量总是存放在静态存储区间,生存期是整个程序运行期间,只赋一次初值,在程序运行前初始化,默认初值为 0。 锹籁饗迳琐筆襖鸥娅薔。用 extern 对全局变量加以声明,可以将其作用域扩充到整个文件或其它文件。定义全局变量时加上 static,可将其作用域限制在本文件中,不能被其它文件使用。10.

14、函数的作用域是全局的,可被其它函数调用。函数存储类别: static、extern。默认为 extern 型。如: static int func(int a);则函数不被其它文件使用,所以两文件中的同名静态函数,互不干扰。 構氽頑黉碩饨荠龈话骛。第 7 章 指针重点:指针的定义和使用难点:指针的使用4 / 38知识点:1.指针的基本概念:指针 地址;2.指针常量:某已知变量的地址,或数组名等,: int a,b5 ;此时 &a 和 b 就是指针常量(固定值)。3.指针变量:如 int a,*p=&a ; char s9,*q=s ;赋值:必须赋地址值,如 int a,*p ; p=&a;如

15、p=2001;是错误的。4.间接访问: *p=5 ;等同于 a=5;5.指针作为函数的参数,传递的是实参变量的地址,如: voidfunc(int *p)调用时用某变量的地址常量,或指向该变量的指针作为实参,如主调函数中有定义 int a,*q ;q=&a;则可用 &a 或 q 作为实参进行调用,即func(&a) ;或func(q);都是将变量 a 的地址传递给形参指针p,使指针 p 指向变量 a。函数中使用 *p 就是对 a 的间接访问,就可以改变 a 的值,或者将结果放入a 中。但形参变量本身改变,反过来不会影响实参指针值。輒峄陽檉簖疖網儂號泶。6.指针与一维数组: int a10,*p

16、=a ;则 a 代表数组首地址,是指针常量,元素的表示方法: ai 、*(a+i) 、 pi 、 *(p+i)元素地址: &ai 、a+i、 &pi 、p+I区别: a 实指针常量,只不能变,而p 是指针变量,可进行增减运算;所以常通过 p 的增减运算来快速访问数组a,如: 尧侧閆繭絳闕绚勵蜆贅。while(pa+5)scanf( “ %d” ,p+);或 while(p成员名注意:只能用结构体变量地址赋值,不能赋某成员的地址,如:p=&stu.name;是错误的。通常定义变量或形参时必须加上struct,如 : voidfunc(structstudent*p) 硕癘鄴颃诌攆檸攜驤蔹。 st

17、ruct student a4,temp 2.共用体: union,定义形式同结构体。成员引用:共用体变量名成员名占用内存大小为:共用体中较长的成员的长度。某一时刻只有一个成员起作用,最后一个存放的成员值有效。结构体类型与共用体类型可互相嵌套使用,即结构体成员的类型也可以是共用体类型,反之亦然。 3.枚举类型:如: enumweeksun,mon,tues,wen,thur,fri,satday; 阌擻輳嬪諫迁择楨秘騖。枚举元素就是枚举变量的可能取值,如:day=mon;枚举元素视为常量,其值就是序号(0 n-1)。也可以在定义时改变其值,如: enumsa=3,b=1,c=2 ;氬嚕躑竄贸恳

18、彈瀘颔澩。4.类型标识符自定义: typedef,如: typedef int INTEGER ; typedefstructSTU ;釷鹆資贏車贖孙滅獅赘。typedefint ARR10 ; 以后可直接使用 INTEGER 、 ARR、 STU 类型进行变量定义,书写简略。 怂阐譜鯪迳導嘯畫長凉。注意:只能为类型另起新名,不能创造新类型,也不能为变量或函数重新命名( define)。第 9 章 文件重点:文件的类型,文件的操作难点:文件的操作知识点:1.流式文件:文本文件、二进制文件。文本文件:若干字符序列,较长,可用type 命令或记事本查看。二进制文件:若干字节序列, 短,存取速度快,

19、不能用 type 或记事本等查看。2.文件操作:读操作、写操作。使用有关文件函数来完成,需包含头文件stdio.h3.操作步骤: 定义文件类型指针 打开文件 检测指针 读 /写 关闭文件。4.打开文件时的使用方式各 6 种。 5.读/写函数: fgetc(fp)、fputc(ch,fp) 、fread(*p,size,n,fp)、 fwrite(*p,size,n,fp) 、fgets(*str,n,fp) 、fputs(*str,fp) 谚辞調担鈧谄动禪泻類。fscanf(fp, 格式“控制符 ”地,址列表 )、fprintf(fp, 格式“控制符 ”输,出列表 ),以上函数是简要书写。 嘰

20、觐詿缧铴嗫偽純铪锩。6 / 386.三个标准设备文件指针:stdin、 stdout、stderr7、有关文件操作函数ferror(fp) 、feof(fp) 、 clearerr(fp);10.控制循环: while(ch=fgetc(fp) !=EOF)或 while(!feof(fp) 熒绐譏钲鏌觶鷹緇機库。EOF 是在头文件中定义的符号常量,值为-1 代表文件结束。复习题一、单选题1. C 语言是在语言的基础上产生的。A. AB. BC. DD. E2. 在 C 语言中,每个语句必须以结束。A.回车符B.冒号C.逗号D.分号3. 标识符和关键字间,要用隔开。A.回车符B.冒号C.空格D

21、.分号4. 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将。A.生成可执行目标文件B. 生成目标文件C. 输出运行结果D.自动保存源文件5.下列说法中正确的是。A.由于 C 源程序是高级语言程序,因此一定要在TC 软件中输入B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C. 由于 C 程序是高级语言程序,因此输入后即可执行D. 由于 C 程序是高级语言程序,因此它由命令组成6. 下列说法中正确的是。A. C 语言程序由主函数和 0 个或多个函数组成B. C 语言程序由主程序和子程序组成C. C 语言程序由子程序组成D. C 语言程序由过程组成7

22、. 下列说法中错误的是。A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行8. 以下选项中,正确的 C 语言整型常量是。A. 32LB. 510000C. -1.00D. 5679.以下选项中,是不正确的C 语言字符型常量。7 / 38A. aB. x41C. 101D. a 鶼渍螻偉阅劍鲰腎邏蘞。10. 在 C 语言中,字符型数据在计算机内存中,以字符的形式存储。A.原码B.反码C. ASCII 码D. BCD 码11. 字符串的结束标志是。A. 0B. 0C. 0D.

23、 012. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为。A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算C.关系运算、赋值运算、算术运算D.关系运算、算术运算、赋值运算13. 逻辑运算符中,运算优先级按从高到低依次为。A. & , !,|B. |,& , !C. & , |,!D. ! ,& , | 纣忧蔣氳頑莶驅藥悯骛。14.表达式 !x|a=b 等效于。A. !(x|a)=b)B. !(x|y)=bC. !(x|(a=b)D. (!x)|(a=b) 颖刍莖蛺饽亿顿裊赔泷。15.设整型变量 m,n,a,b,c,d 均为 1,执行 (m=ab)&(n=cd)

24、 后, m,n 的值是。 濫驂膽閉驟羥闈詔寢賻。A. 0,0B. 0, 1C. 1,0D. 1,116.int b=0, x=1;执行语句if(x+) b=x+1; 后, x, b 的值依次为。A. 2,3B. 2, 0C. 3,0D. 3,217.设有语句int a=3;,则执行了语句a+=a-=a*=a; 后,变量 a 的值是。A. 3B. 0C. 9D. -1218. 在以下一组运算符中,优先级最低的运算符是。A. *B. !=C. +D. =19. 设整型变量i 值为 2,表达式 (+i)+(+i)+(+i) 的结果是。A. 6B. 12C. 15D.表达式出错20. 若已定义 x 和

25、 y 为 double 类型,则表达式 x=1, y=x+3/2 的值是。A. 1B. 2C. 2.0D. 2.521. sizeof (double)的结果值是。A. 8B. 4C. 2D.出错22. 设 a=1, b=2,c=3,d=4,则表达式: ab? a : cd? a : d的结果为。A. 4B. 3C. 2D. 123. 设 a 为整型变量,不能正确表达数学关系:10a15 的 C 语言表达式是。A. 10a10 & a15D. !(a=15)挤貼綬电麥结鈺贖哓类。24. 设 f 是实型变量,下列表达式中不是逗号表达式的是。A. f= 3.2, 1.0B. f0, f0D. f=

26、(3.2, 1.0)赔荊紳谘侖驟辽輩袜錈。25. 设 ch 是 char 型变量,其值为A ,则下面表达式的值是。ch=(ch=A& chD. *29. PC 机中, n在内存占用的字节数是。A. 1B. 2C. 3D. 430. 字符串 ABC 在内存占用的字节数是。A. 3B. 4C. 6D. 831. 要为字符型变量 a 赋初值,下列语句中哪一个是正确的。A. char a=3;B. char a= 3 ;C. char a=%;D. char a=*; 塤礙籟馐决穩賽釙冊庫。32.下列不正确的转义字符是。A. B. C. 074D. 033.printf(f=%3.2f%,3.478)

27、; 的输出结果是。A. f=3.48% B. f=3.5%C. f=3.48% %D. f=347.8% 裊樣祕廬廂颤谚鍘羋蔺。34.printf(%c,%d,a, a);的输出结果是。A. a,97B. a97C. 97,aD. 97a35. scanf(%c,&a) ;若要给变量输入大写字母 A ,则以下正确的输入是 。A. A B. A C. A D.以上都不对仓嫗盤紲嘱珑詁鍬齊驁。36. 若一个 int 类型的数据占 2 字节,则程序段:int x=-1;printf(%u,%d,x,x);的输出结果是。 绽萬璉轆娛閬蛏鬮绾瀧。A. 65535, -1B.-1,65535C. 3276

28、7, 32768D.32768,32767骁顾燁鶚巯瀆蕪領鲡赙。37. 在 TC 中, getchar、 putchar、printf 、scanf 四个函数,均包含在头文件中。瑣钋濺暧惲锟缟馭篩凉。9 / 38A. math.hB. stdio.hC. stbio.hD. stdlib.h 鎦诗涇艳损楼紲鯗餳類。38. 复合语句是用括起来的语句组。A. ( )B. C. D. 39. 下列格式符中,哪一个可以用于以八进制形式输出整数。A. %dB. %8dC. %oD. %ld40. 下列格式符中,哪一个可以用于以十六进制形式输出整数。A. %16dB. %8xC. %d16D. %d41.

29、 a 是 int 类型变量, c 是字符变量,下列输入语句中哪一个是错误的。A. scanf(%d,%c,&a,&c);B. scanf(%d%c,a,c);C. scanf(%d%c,&a,&c);D. scanf(d=%d,c=%c,&a,&c); 栉缏歐锄棗鈕种鵑瑶锬。42. 要使 double x; long a;的数据能正确的输出,输出语句应是。A. printf(%d, %f,a, x);B. printf(%d, %1f,a, x); 辔烨棟剛殓攬瑤丽阄应。C. scanf(%1d, %1f,&a, &x);D. printf(%1d, %lf,a, x); 峴扬斕滾澗辐滠兴渙藺

30、。43. C 语言总是从函数开始执行。A. mainB.处于最前的C.处于最后的D.随机选一个44. 函数在定义时,省略函数类型说明符,则该函数值的类型为。A. intB. floatC. longD. double 詩叁撻訥烬忧毀厉鋨骜。45. 以下函数,真正地没有返回值。A. int a()int a=2;return (a);B. void b()printf(c);则鯤愜韋瘓賈晖园栋泷。C. int a()int a=2;return a;D.以上都是46. 在 C 语言中,有关函数的说法,以下正确的是。A.函数可嵌套定义,也可嵌套调用B.函数可嵌套定义,但不可嵌套调用C.函数不可嵌套定义,但可嵌套调用D.函数不可嵌套定义,也不可嵌套调用47. 以下函数调用语句中,含有实参的个数为。 fun(2,3),(4,5+6,7);A. 1B. 2C. 5D. 648. 函数调用可以在。10 / 38

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1