二级C考试的重要知识点

下面是概念题分析:

1.      程序流程图:在程序流程图中,用标有名字的箭头表示控制流;

Ps:在数据流图中,用标有名字的箭头表示数据流。

2.      结构化程序设计的思想包括:自顶向下,逐步求精,模块化,限制使用goto语句,(不包括多态性)

3.      软件设计中模块划分应遵循的准则是 高内聚低耦合

4.      在软件开发中:可行性分析阶段产生可行性分析报告;

              需求分析阶段产生的主要文档是软件需求规格说明书

              总体设计阶段产生的主要文档是概要设计说明书

              集成测试计划是在概要设计阶段编写的文档

5.      算法的有穷性是指:算法程序的运行时间是有限的

Ps:空间复杂度:是对一个算法在运行过程中临时占用存储空间大小的量度(不是所需要的临时工作单元数)

 时间复杂度:它定量描述了该算法的运行时间.

6.      对长度为n线性表排序,在最坏的情况下,比较次数不是n(n-1)/2的排序方法是堆排序。(堆排序算法比较次数是O(nlog₂n))

7.      E-R图转化关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。

还有需求分析阶段,概念设计阶段,物理设计阶段

8.Continue和break的区别:

8.      C语言中的非执行语句不会被编译,也不会生成二进制的机器指令。

C语言的便于过程:由c语言构成的指令序列称c源程序(它以ASCII代码形式存放在一个文本文件中),c源程序经过c语言编译之后是生成一个后缀为.obj的二进制文件(称为目标文件);最后要由“连接程序”把此.obj文件与c语言提供的各种库函数连接起来生成一个后缀.exe的可执行文件。

9.      在c中合法的数值常量的规范是:c语言中八进制整型常量的开头是数字0;十六进制的整型常量的数字开头是0x;c语言中的实型常量有两种表示形式:1,小数形式:小数形式表示的实型常量必须要有小数点;2,指数形式:以“e”或“E”后跟一个整数来表示以10为底数的幂数,且规定字母e或E之前必须要有数字(就是紧挨着的一位),且e或E后面的指数必须为整数。

10.  标识符的定义:由字母,下划线,数字组成,且开头必须是字母或者下划线。另外关键字不能做为标识符。因为c语言中区别大小写,例子:FOR可以作为标识符用,但&是非法字符。

11.  关于数组的定义:一位数组的规则:类型说明符 数组名 【常量表达式】;;例如:;

Int a【10】;   //说明整数数组a。里面有10个元素

Float b【10】;  //说明实型数组b,有10 个元素

Char ch【15】   //说明字符型数组ch有15个元素

使用数组时要注意一下几点:

1.      数组的类型实际上是数组元素的取值类型,对于同一个数组,其所有的元素的数据类型是一样的。

2.      数组名不能与其它变量名相同。

3.      数组的方刮号中的常量表达式代表数组元素的个数,如a【5】表示数组a里面有5个元素,但是其下标识从0开始的,即a【0】,a【1】,a【2】,a【3】,a【4】。

4.      不能在方刮号中用变量来表示元素的个数,但是可以是符号常量或者常量表达式。

5.      允许在同一个类型变量中,说明多个数组和多个变量。如:inta,b,c,d,k[10],k1[20];

一维数组元素的引用:

1.数组名【下标】;其中下标只能为整形变量或者是整形表达式,如果为小数,那么在c中会自动取整数。如:a[6]    a[i+j]  a[i++]    都是正确的

 

一维数组的初始化赋值: 类型说明符 数组名【常量表达式】={值,值,值,……,值};

注意:1.如常量表达式大于后面值的个数,则多的自动赋值为0

2.如果想给全部赋值为1的话,必须一个一个全部列举出来

3.如果给数组中的全部元素赋值的话,常量表达式可以不列出来,如:int a[]={1,2,3,4,5};

等价于:int a[5]={1,2,3,4,5};

一维数组的动态赋值:可用循环语句配合scanf函数逐个对数组元素赋值

例子:

 

 

12.  二维数组的定义与规则:

 

13.  字符数组及字符串:字符数组完整地说叫字符类型的数组。字符数组不一定是字符串。

字符常量是用单引号的例如:char str【10】={‘a’,‘b’,‘c’,‘d’};

双引号引的是字符串

区别1:字符串是最后一个字符为NULL字符的字符数组。字符串一定是字符数组。例如:char str2 【】=”abcd”;    但是里面有5个元素,电脑自动分配了5个地址,最后一个是0,以0结束,;可见的只有4个;如果这样写,charstr 3【4】=“1234”;会是错误的,这个必须改成5个。这也是字符串与字符数组最本质的差别。

字符串遇到结束符就会结束,但是字符数组遇到结束符也会打印出来。这也是一个特点。

区别2:字符数组的长度是固定的,其中任何一个字符都可以为null字符。

字符串只能以null结尾,其后的字符便不属于该字符串。

 

14.  字符串输入及越界(Overflow):

字符串越界可能造成程序出错和漏洞攻击。

例如:

#include<stdio.h>

Main()

{

Int i=0;

Char name[8];

Scanf(“%s”,name);

Printf(“%d %s”,I,name);

Return 0;
}

在这个代码中输入tom,输出的没有问题;但是输入lichunyu的话,就是字符串溢出了,导致输出的结果不对

 

15.  在函数的调用中,如何判断素数:

#include<stdio.h>

Int isprime(int x )

{

int I;

for(i=2;i<=sqrt(x);i++);

{

If(x%i==0)

Return 1;

}

Int main(int argc,char * argv[])

{

Printf(“%d”,isprime(6));

Return 0;

}

这就是函数的调用,非常方便。

 

16.  C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别

http://blog.csdn.net/tigerjibo/article/details/7425580

猜你喜欢

转载自blog.csdn.net/qq_39486027/article/details/78162401