2011年全国计算机等级考试二级c语言复习整理笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

笔记:1变量的作用域:形参为局部变量,函数调用完毕就失去意义,所以在同一个C程序中,,不同函数所使用的形参可以名字相同。C语言调用函数时,实参能把值传给形参,形参的值不能传递给实参(模一35)注意:函数传递只有return语句和指针才会改变原程序的值。例题:程序输出的结果是79#includestdio.hIntt(intx,inty,intcp,intdp){cp=x*x+y*y;dp=x*x-y*y;},Main(){nita=1,b=8,c=7,d=9;t(a,b,c,d);printf(“%d%d\n”,c,d);}局部变量无固定内存分配,系统临时分配,调用完结束分配,不确定的情况下,最好用全局变量Auto变量实际是函数内部变量外部变量:函数体外定义,是全局变量,有效范围:从定义起到程序结束。外部变量可以在函数间传递2下面非法字符变量是:‘\t’代表横向跳若干格‘\0139’\0后代表八进制数,9超出范围‘,’‘\n’‘\xAB代表十六进制AB的ASCII码‘\v’表示竖向跳格;‘\x2a表示的是两位十六进制数字符a对应的ASCII码值‘a’代表题:strlen(”\t\”\023\xABC\n”);Strlen计算字节长度,结果为63双精度double用%le表示如:scanf(“%le”,&a);双精度占用8个字节,float占用4格字节,int占用2个字节;如structst{chara[15];intb;doublec;};Printf(“%d”,sizeof(structst));则占用总共15+8+2=25个字节例题:定义floata[15],*p=a,且数组的首地址为300H,则p+13所指向数组元素的地址为300H+13*4H=352H(模一30题)自己意见为52D化成十六进制为34H答案为334H4for(表达式1;表达式2;表达式3)表达式1-----表达式2(判断)-----循环体------表达式3------继续判断表达式2如题:inti,j=5;for(i=0;i3;j=i++){printf(“%d,%d”,i,j);}则输入结果为1,52,25inta=10;a+=a-=a*=a;则输出结果为:从右往左计算,先a-a*a=10-10*10=-90;在a+(-90)=-1806nu-都只能用在两个关系同元,不同元只能做*(笛卡尔积运算)7线性表:顺序存储结构链式存储结构链表存储结构和逻辑结构未必相同,因为靠指针实现对数据的指定的,所以不能随即存储循环链表:在链表计算中,能使空表和非空表的运算统一的结构8结构化设计理论:结构话程序设计的核心和基础包括:结构化分析方法,结构化设计方法,结构化编程方法。结构化分析方法是面向数据流进行需求分析的方法,采用自顶下下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统模型结构化程序设计原则主要概括为:自顶下下、逐步求精、限制使用goto语句需求分析常用的主要工具:数据流图DFD、数据字典DD、判定树和判定表详细设计常用工具:问题分析图PAD、程序流程图PFD、盒式图N-S需求分析为软件定义时期的最后一个阶段:需求获取——需求分析——编写需求规格说明书——需求评审软件测试主要目的是尽可能多发现软件中的错误,尤其是发现至今尚未发现的错误数据库(DB)的设计阶段主要包括需求分析、概念设计、逻辑设计(将E-R图转换成关系模式)、物理设计9数据库管理系统(DBMS):数据库系统中实现各种数据管理功能的核心软件功能:数据组织数据维护数据控制数据保护数据服务数据库系统(DBS)主要特点;数据集成性数据高共享性和低冗余性数据独立性数据统一管理和控制数据库系统是有数据库、数据库管理软件、数据库管理系统、数据库管理员、硬件平台和软件平台组成扇出:一个模直接调用其他模的模块个数扇入;调用给定模的模块个数加工:对应一个模块数量Ftell(fp)为fp指针指向文件当前读写位置数据流程图有:变换型流程型赋值表达式中等号左边只能是变量·代表某个存储单元的表达式注释:功能性序言性#include文件名:预处理程序在标准目录下查找指定文件#include”文件名”:首先引用被包含文件的源文件所在目录下查找,如找不到,再到标准目录下查找在程序设计阶段应该采取自顶向下和逐步求精的方法,吧一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成程序。在面向对象的程序设计方法中,类的实例称为对象某二叉树度为2的节点为18个,则该二叉树有叶子节点19个K=%%d输出为%dIntm=n=2;错n没有定义Intk=k+1;错定义的时候右边不能有KCharc=32;对Int_abd;对Intdo=1L;错do是关键字Int2_abc;错标识符符错,不能字母开头例题:下面不能正确赋值的是:Char*p,ch;P=&ch;scanf(“%c”,&p);Char*p;p=(char*p)malloc(1);scanf(“%c”,p);Char*p;*p=gechar();此处错误,指针应有确定地址,如下面一个Char*p,ch;p=&ch;*p=getchar();%c%d%c%d中间要用(空格或者回车或者制表符号)间隔符隔开,最后按下Enter才会接受键盘输入的数据数组下标数据类型允许为整形常量,整形表达式数组的复制:例题:若已包含头文件string.h且已定义chars1[18],s2={“ABCDE”}和inti若将“ABCDE”赋给s1,错误的是Strcpy(s1,s2);strcpy(s1,“ABCDE”);s1=“ABCDE”;此处s1为首地址,为常值,不可赋值for(i=1;i6;i++)s1[i]=s2[i];给字符串赋初值:Charstr1[]={‘s’,’a’.’b’};错误,后面没有‘\0’没有结束标识符,系统无法辨认字符串Charstr1[]={‘s’,’a’.’b’,‘\0’};正确Charstr1[]={“sab”};其中{}常可省略,如下:Charstr1[]=”sab”;也可逐个赋值:Str1[0]=’s’;……str1[3]=’\0’;字符串的比较不能用==进行比较,应使用strcmp(s1,s2)来比较,当相等时,返回值为0;S1与s2相等执行if(!strcmp(s1,s2))puts(“theyareequal”);已定义且p=&st访问结构体成员:st.i*p.i错(*P).ip-I算法四个特征:可行性完整性有穷性拥有足够的情报算法的时间复杂度是:算法执行过程中所需的基本运算次数,不是执行算法程序所需的时间对线性表进行二分法排序,要求线性表按顺序方式存储的,并按按键码值的大小排好序线性表的顺序存储是一片连续的空间来存储数据元素特点是逻辑上相邻的元素物理存储也位置也相邻,数据之间的逻辑关系被自动隐藏在物理位置的相邻元素之间,因此,不需要另外开辟空间来保存元素之间的关系。线性表可以随机访问!——算术运算符——关系运算符——&&——||——赋值运算符高到低()+-*/%+-括号内为单目,下划线内为双目先单目,后双目,先计算,后判断,最后特殊运算!(逻辑非)结构体特点:定义时系统不会为该结构分配内存空间,说明结构变量时才分配内存空间,结构体变量在程序执行期间一直驻留在内存中结构体中的成员命可以和程序中的变量名相同结构体可以镶嵌定义r读已有w写可新建a写其后rbwbab二进制文件r+w+a+读写rb+二进制wb+ab+位置函数设置读写位置程序“清晰第一,效率第二”考虑程序清晰的同时,一定要保持程序的清晰,可读;对符号的命名,除满足语法要求外,还有代表一定的含义使用白盒测试时,确定测试数据应该根据程序内部逻辑和指定的覆盖标准Sizeof是空间的长度strlen是字符串的长度,以’\0’结束的例题:chara[7]=”a0\0a0\0”;sizeof(a)的结果是7strlen(a)的结果是2inty=5,x=14;y=((x=3*y,x-1).x-1易错:1C=4;a=c++;a=c++;a的值是多少?答案52数非空根节点为1,树为空时根节点为03Num[1].Name[2]是指第二行第三个4#defineM2#defineNM+2则N*2注意括号5If(!c)表示c为零时为是,c非零时不成立6Main(){intp[]={11,12,13,14,15,16,17,18},i=0,j=0;While(i++7)第一次为零,成立,但到下一条语句i就变为1了If(p[i]%2)j+=p[i];从1开始执行到7,即第二个数到第八个数Printf(“%d\n”,j);输出结果为457设有定义:intk=1,m=2;floatf=7;则下列表达式错误的是:K=k=k先判断右边k=k为真,左边k被赋值1-k++k先加加,在加负号k%int(f)错正确形式为k%(int)fk=f=m先判断k=f为假赋值0,再判断0=m为假,赋值0注意各种运算判断的优先顺序(类型名)(表达式)表达式可一个,也可多个(int)(3.231)右边括号可去掉(double)10%3先将10转换成双精度在进行求余运算(double)(10%3)先求余,后转换方框内括号不可丢,下划线内括号单个可丢,多个不可丢8注意%d和%c的区别,以下程序输出结果为68,,如果将%d改为%c则输出为Dcharstr[]=”ABCD”,*p=str;Printf(“%d\n”,*(p+3));2005.9.17题(17)下列叙述中错误的是()。A)在C语言中,对二进制文件的访问速度比文本文件快(计算机用二级制对文件进行操作,所以对二进制文件不用转换而访问速度比较快)B)在C语言中,随机文件以二进制代码形式存储数据C)语句FILEfp;定义了一个名为fp的文件指针D)C语言中的文本文件以ASCⅡ码形式存储数据问题:1while使用逻辑表达式?对比模拟试题3中的22和23题。2ar*p,ch;P=&ch;scanf(“%c”,&p);3nta=10;a+=a-=a*=a;则输出结果为:从右往左计算,先a-a*a=10-10*10=-90;在a+(-90)=-1804横杠怎么打?如E-R下省略号这么打?5头文件的作用string.hstdio.h.等607.4(49)下列叙述中正确的是()。A)C语言中的文件是流式文件,因此只能顺序存取数据B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖(用ab写操作后不会覆盖原有数据)C)在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据(用w+或者r+或a+都可以写后不关闭文件读写第一个数据)D)当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失05.9(13)下列叙述中正确的是()。A)调用printf()函数时,必须要有输出项(可以什么都不输出)B)使用putchar()函数时,必须在之前包含头文件stdio.hC)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出(没有十二进制)D)调节getchar()函数读入字符时,可以从键盘上输入字符所对应的ASCII码(例如输入大写字母A的ASCII码65但接收到的是6这个字符!)(14)下列关于函数的叙述中正确的是(B)。??????A)每个函数都可以被其他函数调用(包括main函数)(main是主函数,由系统调用)B)每个函数都可以被单独编译(每个函数可以单独编译成obj文件,然后链接成可执行文件)C)每个函数都可以单独运行(一个函数以main函数开始执行,其他函数只能直接或者间接被main函数调用时才能执行)D)在一个函数内部可以定义另一个函数(c语言不支持函数的镶嵌,函数只能为全局函数)

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功