C语言教程复习提纲_第1页
C语言教程复习提纲_第2页
C语言教程复习提纲_第3页
C语言教程复习提纲_第4页
C语言教程复习提纲_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

复习提纲第一章C语言概述第二章数据类型、运算符和表达式第三章顺序结构程序设计第四章选择结构程序设计第五章循环控制第六章数组第八章指针第九章结构体与共用体第十章文件操作第一章C语言概述1、★C程序是由函数构成的。一个C源程序至少包含一个函数,也可以包含假设干其他的函数。书写上main函数的位置

。但程序执行的时候总是从

函数开始运行,直到main函数运行结束。2、一个函数的组成:函数首部函数体包括函数类型、函数名称以及参数main可以任意main包括声明局部和执行局部3、每个语句和数据的声明最后必须以

作为结束。;(分号)4、C语言源程序的扩展名为

。5、上机运行一个C程序一般经过4个步骤:编辑编译连接运行.C文件.obj文件.exe文件.c第二章数据类型、运算符和表达式1〕★合法的用户标识符:

一、数据类型3种根本数据类型:整型、字符型、浮点型int、char、float3个根本类型的关键词掌握:1、每种类型的常量如何正确表示?2、每种类型的变量如何正确定义?只能由、、组成;不能和系统的关键字重名〔系统的关键字有哪些?〕。数字下划线字母不用以

开头。数字系统的关键词:根本类型定义:intcharfloatdoubleshortlongunsignedsigned程序结构控制:ifelseswitchcasebreakdowhileforcontinuedefaultgoto构造类型定义:structunionenumtypedef函数中:voidautostaticextern2〕★变量必须先定义再使用会正确的定义变量:类型名称变量名列表如:intx;floaty;charz;inta,b,c;inta=4,b,c=5;一个声明语句中可以同时声明多个相同类型的变量★声明变量的同时可以进行初始化floata;b;ccharx,inty,doublez;二、C中的运算符算术运算符+、-、*、/、%关系运算符>、<、>=、<=、==、!=逻辑运算符&&、||!条件运算符?:赋值运算符=逗号运算符,、++、--、*、&、sizeof单目运算符()初等运算符、[]、->、.优先级高——————优先级低注意:1〕★不同根本类型的数据之间混合运算。可以2〕★浮点型数据不同进行算术运算。%3〕++和--作为前缀和后缀的区别!4〕★会正确的表示C语言形式的表达式如:x=5y÷2zx=(5*y)/(2*z)|x|≤5-5<=x<=5x<=5andx>=-5&&|x|≥5x>=5||x<=-5第三章顺序结构程序设计1、结构化程序设计的三种根本结构:

结构、

结构和

结构。2、三组输入、输出函数:选择循环顺序printf〔〕、scanf〔〕、1〕字符输入、输出函数getchar〔〕、putchar〔〕2〕格式化输入、输出函数★使用C语言标准输入输出库函数时,应在文件开头加

命令

。3〕字符串输入、输出函数gets〔〕、puts〔〕#include<stdio.h>注意:1〕★scanf函数输入数值数据时默认的分隔符:、或者。空格Enter键Tab键2〕scanf函数中的“格式控制”后面应当是,而不是。变量地址变量名3〕printf函数输出时注意输出格式的控制。对于分析程序结果的题目,不但写出正确的输出数据,还要写出正确的输出格式。例如:写出以下程序的输出结果:voidmain(){chars1[]=“hello”,s2[]=“everyone”;printf(“s1=%s\ns2=%s\n”,s1,s2);}helloeveryonehelloeveryonehelloeveryones1=hellos2=everyone√第四章选择结构程序设计1、关系运算符和逻辑运算符:★会表示条件2、两种语句:if……elseswitch注意:1〕if后条件的表示。条件必须用小括号()括起来,其后没有分号。〔★编程题注意书写标准〕2〕★如果if或者else的语句体有多条,必须用{}括起来组成一条复合语句。〔★编程题注意书写标准〕注意:3)★

switch结构中break语句的作用。break语句还可以用在

结构中。其作用是

。循环退出该层循环★程序分析题中注意有无break的区别!例如:以下程序的结果是:voidmain(){intx=2;switch(x){case1:printf(“*);break;case2:printf(“#”);default:printf(“$”);break;}#$第五章循环控制1、3种循环语句:do……whilewhilefor注意:1〕循环语句中break语句的作用2〕循环体如果有多条语句,必须用大括号{}括起来组成一条复合语句。〔★编程题注意书写标准〕出题范围:程序分析题、程序填空、编程3〕注意每种语句的格式:do{……}while〔条件〕;while〔条件〕{……}for(循环变量赋初值;循环条件;循环变量的变化〕{……}第六章数组主要内容:一维数组、二维数组、字符串、字符串数组1、★会正确的定义数组一维数组:类型名称数组名称[长度]二维数组:类型名称数组名称[行数][列数]字符数组:char数组名称[长度]字符串数组:char数组名称[字符串的个数][字符个数]练习:1)inta[3];inta[];inta[x];inta[5-2];inta[]={1,2,3};inta[2]={1,2,3};inta[2,3];inta[2][3];inta[][3];inta[2][];inta[2][3]={{1,2,3},{4,5,6}}inta[][3]={{1,2,3},{4,5,6}}√√√inta[2][]={{1,2,3},{4,5,6}}inta[][3]={1,2,3,4,5,6}√√√√3)chars[]={‘a’,’b’,’c’};chars[]=“abc”;√√★二者区别?4)chars[][20]={”world”,“china”,”beijing”};★以上定义的作用?如何引用每个字符串?√s[0]、s[1]、s[2]2、数组名称的意义3、★正确的引用数组元素数组元素的下标从

开始,不能越界。0如有:intx[10];那么对数组的引用x[0]x[5.3]x[10]x[5/2]x(5)x+1*x*(x+1)直接引用:数组名称[下标]间接引用:*数组元素地址√√√√4、字符串处理函数gets()、puts()strlen(s)strcpy(s1,s2)strcat(s1,s2)★头文件:

.string.h头文件:

.stdio.h注意:printf()和puts()输出字符串时的区别!scanf()和gets()输入字符串时的区别!★掌握典型的数组操作:排序、倒序等。〔一般结合函数操作〕strcmp(s1,s2)第七章函数调用一、★函数的定义〔编程题〕1〕指定函数的名称2〕指定函数的类型〔如果省略类型系统默认为〕3〕指定函数的参数的名字和类型4〕指定函数的功能二、函数的参数和返回值1、函数的参数大多数情况下主调函数和被调函数之间有数据传递关系,即有参函数。在定义函数时函数名后面括号中的参数称为

参数。在调用函数时函数名后面括号中的参数称为

参数。形式实际int2、★函数的返回值通常,希望通过函数调用使主调函数能得到一个确定的值,这就是函数的返回值。1〕函数的返回值是通过函数中的语句获得的。return2〕函数的返回值类型由决定。〔函数的类型还是return后表达式的类型〕函数的类型三、函数的调用1、函数调用形式:函数名称〔实参列表〕如果一个函数有多个参数,调用时每个实参之间用

隔开。,(逗号)例如:max(x,y,z);函数中参数的个数是

。max(max(x,y),max(m,n));函数中参数的个数是

。32例如:max(x,y,z);函数中参数的个数是

。fun(f(a,b),f(c,d),f(e,f));函数中参数的个数是

。3函数是否可以嵌套调用?是否可以嵌套定义?可以不可以例如:1〕假设有函数原型如下:voidfun(int,int);那么以下对函数的调用中正确的选项是:fun(4,6);fun(3);fun(10,20,30);fun(3.6,5.8);n=fun(3,5);fun(intx,inty);(假设x,y是已经定义好的变量)√不合理〔数值传递不正确〕2、会写函数的原型

★会根据函数的原型判断函数的调用形式。2〕假设有函数原型如下:floatmax_score(float[],int);请写出定义该函数的格式:floatmax_score(floatb[],intn){……}或者floatmax_score(float*b,intn){……}★编程题:给出main函数,根据main函数中函数的声明和定义形式写出相应函数的完整定义。在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的调用。〔★程序分析题〕递归C语言的特点之一就在于允许函数的递归调用。例题longfib(intn){longx;

if(n>2)x=fib(n-1)+fib(n-2);elsex=1;returnx;}四、函数的参数C语言中,实参向形参的数据传递是“值传递”。这种传递方式只是把实参的“值”传递给形参,而不能由形参传回来给实参。1、普通的变量或数组元素做函数参数,形参和实参分别占有

同的内存单元。实参的值传递给形参,形参变化

影响实参的值。这种传递是

向的。不不会单2、★数组名称做实参,由于数组名代表数组的

,所以是将数组的首元素的

传递给对应的形参,因此形参应当是

或者

。首地址地址数组名指针变量五、变量的作用域按照变量的有效范围来分变量分为:

.

局部变量全局变量六、局部变量的存储类别1、函数中的局部变量,如果不特殊说明。在调用该函数时,系统给这些变量分配存储空间,在函数调用结束时就自动释放这些存储空间,这类局部变量称为

。自动变量2、★有时希望函数中的局部变量的值在函数调用结束后不消失而保存其原值,即其占用的存储单元不释放,在下一次调用该函数时,该变量已经有值,就是上一次函数调用结束时的值。这时应将该局部变量说明为。该类变量用关键字进行声明。静态局部变量static要求:会正确的使用静态局部变量、分析程序结果。练习:1、以下对静态局部变量的说法正确的选项是()A.静态局部变量同自动变量一样,在动态存储区内分配存储单元。B.如果在定义静态局部变量时不赋初值,那么其值是不确定的。C.因为静态局部变量在函数调用结束后仍然存在,所以其他函数可以引用它。D.静态局部变量只在编译时赋初值一次,在程序运行时已有初值。D2、★分析以下程序的结果:#include<stdio.h>intsub(intn){staticints=0;s=s+n;returns;}voidmain(){inti,k;for(i=0;i<4;i++){k=sub(i);printf("%d\n",k);}第八章指针一、了解指针与地址的概念二、★指针变量的定义及赋值如:已有定义floatx;那么定义一个指针变量p并使其指向x应使用语句:float*p=&x;已有定义inta[10];那么定义一个指针变量p并使其指向数组首元素应使用语句int*p=a;定义语句int*p[3];的含义是?定义语句int(*p)[3];的含义是?三、指针变量与数组掌握1〕会定义正确指针变量形式2〕用指针变量引用数组元素四、指针做函数参数注意实参与形参的形式。五、指向函数的指针会定义指向函数的指针会通过指向函数的指针调用函数六、动态内存分配本局部内容对后续课程的学习很有用,请大家好好掌握。例如:假设已有定义:inta[6]={1,2,3,4,5,6},*p=a;注意:*p++,*++p,++*p,(*p)++的值。第九章结构体和共用体1、会定义结构体类型3、结构体变量所占存储空间的大小如何计算?结构体类型的名字是由一个关键字

和结构体名二者组合而成的。struct一、★结构体2、会定义结构体变量格式:struct结构体类型名变量名4、结构体变量成员的引用〔3种形式〕5、会使用结构体数组例题:★对候选人得票的统计程序。设有3个候选人,每次输入一个得票的候选人的序号,要求最后输出各人得票结果。structperson/*全局变量*/{charname[20];intcount;}leader[3]={"Li",0,"Zhang",0,"Wang",0};voidmain(){inti,j;charname[20];for(i=1;i<=10;i++){scanf("%s",name);for(j=0;j<3;j++) if(strcmp(leader_name,leader[j].name)==0) count++;}for(i=0;i<3;i++)printf("%5s:%d\n",leader[i].name,leader[i].count);}例题:设某班级有3名同学,每个同学的数据包括学号、姓名、和成绩〔计算机、英语、数学〕三项。输入3名学生的信息,计算各个学生的平均成绩。并输出各个学生的姓名和平均成绩。structstudent{charnum[8];charname[10];floatscore[3];};定义结构体:主程序如下:voidmain()

{floatave;printf(“inputeverystudent’sinformation:\n”);

}for(i=0;i<3;i++){printf(“input%dstudent’sinformation:\nnum\tname\tscore:\n”,i+1);

}structstudentstu[3];scanf(“%s,stu[i].name);for(i=0;i<3;i++){sum=0;for(j=0;j<3;j++)

printf(“%s’saverageis%5.1f\n”,stu[i].name,sum/3);}sum+=stu[i].score[j];for(j=0;j<3;j++)scanf(“%f”,&stu[i].score[j]);scanf(“%s,stu[i].num);//定义结构体数组//为数组元素赋值//求每个同学的总成绩二、共用体共用体变量的值如何确定?共用体类型使用关键词

来定义。union共用体变量所占内存如何计算?三、★typedef的作用?例题:★某单位有N名职工参加计算机水平考试,设每个人的数据包括准考证号、姓名、年龄、成绩。单位规定30岁以下的职工进行笔试,分数为百分制,60分及格;30岁以上的职工进行操作考试,成绩分为A、B、C、D四个等级,C以上为及格。请完成:〔1〕写出职工类型的定义〔2〕定义count函数用来统计合格的人数〔3〕在主函数中输入N名职工信息,调用count函数统计并输出合格人数,然后输出所有职工的信息。#include“stdio.h>#defineN5structWorker{};intcount(structWorkerwk[]){}voidmain(){}第十章文件操作一、文件的概念、分类二、如何定义文件指针变量FILE

*指针名称在标准输入输出库中,系统定义了3个FILE型的指针变量:

。stdinstdoutstderr三、对文件的操作:分3大步:翻开——读写——关闭用标准输入输出函数来实现文件的翻开。fopen用标准输入输出函数来实现文件的翻开。fclose要求:能够正确的实现文件的翻开:例如:假设要

温馨提示

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

评论

0/150

提交评论