下面是概念题分析:
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语言中全局变量、局部变量、静态全局变量、静态局部变量的区别