
利用C语言编写一个求两数相加的和的编程思想和方法如下:
1首先需要定义三个变量a,b,c,两个为相加的数,第三个为相加后得到的和。
2然后使用scanf()语句接收从键盘输入的两个数,为变量a,b赋值。
3接着进行a和b的加法运算,将结果赋值给变量c。
4最后使用printf()语句将计算结果显示在屏幕上。
5代码编写完毕后,点击运行后即可在调试窗口看到程序的运行结果。
因为某种原因,本人共考过2次笔试,3次上机。其中笔试在70左右,3次上机均为满分,
看着大批的同学在为三级发愁不知道如何准备和应考。我想我应该把经验和学习的方法写下
来,这些方法保证你能过三级。但是不保证你能获得高分并学到知识,所以请各位计算机系
与爱好电脑的高手或自认为是高手的同志们就此打住。OK!
以网络技术为例(其他三门的方法相似),我把方法总结为:细看书,做笔记,多复习。
第一阶段:看网络技术教材,详细地做笔记(20天).
第一边看书你要看得特别仔细,把所有你认为重要的地方全抄到笔记本上,包括重要的
表格和插图。第一次看不懂的地方可以跳过去等过两天再回头看一遍。每天看新的知识之前
都将前两天看的再复习一遍,强化记忆。
我把全书的重要程度划分了一下:第一,七,八章 了解(看看做做笔记就行了);
第二,四章 理解(看懂主要的知识点);第三,五,六章 掌握(看懂所有的知识点);
其中又以以下章节为重点:22 进程 23 存储管理 24 文件管理 25 设备管理
(我当时这一节的题都挂了) 35 双绞线 VS 同轴电缆 36 OSI VS TCP/IP 43 以太网
45 组网技术 48 网络互连 53 IP协议 64 加密技术 其中有些内容必须理解并掌握,
要是不理解,背也要背下来。如:OSI协议和TCP/IP协议的各层的名字,各种传输介质和各种
以太网的参数等。
另外所有教材上没有的内容不用看,因为考试出的题没有一道是书本之外的。
===> 要点一:坚持就是胜利,每天坚持看2个小时,至少能看15页。
===> 要点二:该抄就抄,好记性不如坏笔头。
===> 要点三:注意课后作业题,那可能就是原题。
这一阶段完成后,应该能够理解大部分的知识点。还要能够很快的在书中找到某个知识
点的位置。
第二阶段:复习重点章节(5天)
这一次复习的重点在那些需要理解和掌握的内容上,如果你看懂了,合上书想一遍,看
不懂就多看两遍,有些重点一定要记住。而且要把笔记本大声地读上两遍,达到更加熟练。
===> 要点一:看懂不一定会记住,一定要在脑海中形成印象,合上书能写下来。
===> 要点二:名词术语要注意。
===> 要点三:缩略语。凡是在书上出现过两遍的,一定要记下中英文解释。
例如:CDMA/CD,MFLOPS等。
第三阶段:复习不重要的章节和作题(5天)
有人也许要问,既然不重要还复习它干什么。错!出题人不能用重点凑成一百分要适当的
加点其他内容。于是只有在这些不重要的章节里面出了,这些题大概占20分左右。得分的方法
是将所有不太重要的章节再看一遍,越是你认为不可能出的,越要把它抄下来,记一记。而且
要特别注意数字,如ATM的传输速率,单模光纤所使用的光的波长等。(上次最呕吐的的一道
题是,信号从发送站经过卫星到接收站的传输延迟的典型值是多少?我按照同步地球卫星到地
球的距离,光的传输速度,算到百毫秒的量级,但是算不出具体的值,于是猜了一个250ms。
答案居然是540ms。晕倒~!)
还有就是模拟题的问题,我认为现在市面上的模拟题都太差了,考的全没有,不考的全有
了,说实话还不如我出的呢。所以题不用多做,只要把书看好就行,最后几天可以做几套,熟
悉一下题型,掌握一下时间就够了,多做全是浪费。
以上方法我一个同学上次照着我说的做了,结果笔试考分比我还高。所以不管你聪明不聪
明,只要你照我说的做了,一定能通过。
一句话:要是不过你拿我是问。
上机部分现在只有一到c语言编程题,非常简单。但我认为最重要的是能够编译程序和调试
程序,也就是说,一道题你能在纸上写下来还不够,一定要能够在机器上运行出结果才行,因为
编译系统及机器的不同,有的对的程序也可能产生大量的错误。只要你能把错误找出来就差不多
能过了。
因此我把方法总结为:多思考,多上机,捉虫子。(以谭浩强的《c语言设计》第二版为例)
第一阶段:看书,做笔记。(15天)
有人说那本书那么厚,15天能看完吗?错!谁说让你们看完了,你要是只是想过三级。只用
看前140页就足够了。也就是,第一章,了解,第二,三章理解,第五,六,七章掌握,第八,
第十章随便看一下就行了。因为c上机只要求你填一个函数,所以函数那一章不用看太仔细,只
要知道函数是干什么用的,它们之间是如何调用的就行了。至于指针,所有的考题全都能用数组
做出来,用指针只不过是简单一点,容易出错一点而已,我是强烈建议不用指针。第九章和第十
一章以后一概不用看。
===> 要点一:勤记,把所有重要的东西都记在笔记本上。如转义字符的定义等。
===> 要点二:每天上机调试两个程序(可以是例题或作业题)
===> 要点三:坚持,再坚持。
第二阶段:做课后作业题并上机调试。(10天)
现在书你已看完,练习题也可能做出了一些。现在就是要把前几章特别是五六七三章的课后
题一定要自己思考一下,做出来后再上机调试,是在做不出来,就看看答案,看懂后,再在机器
上调试一下也行。
重要例题:例 410 412 54 55 56 57 58 66 68 610 72 72 78 79
重要习题:45 49 55 57 58 61~610 71~714
===> 要点一:做题时使用N-S流程图。
===> 要点二:每道题不管多么简单,一定要调试直到正确为止。如习题24(2)我有几个同
学都是能编出来,但是怎么都运行不正确。
===> 要点三:每天上机作五道题以上,最好在TC20环境下。
第三阶段:继续调试重要程序,看一本书(5天)
继续调试程序直到熟练,然后看一本书,书名我先不说,可能许多同学都知道。但我不赞成
看这本书,而且我劝你到最后几天再看,挑出一部分典型的题看一下,自己做做,看是否正确,
熟悉一下题型,不要完全依赖那本书。那样可能因为一点小错误你找不出来就挂了。我们班的女
生们第一次因为这个原因挂的可不是少数。
还是那句话:要是你上机不过找我是问。
········回顾过去的大学生活,计算机等级考试最令人难忘。笔者斗胆在这里卖弄一下过去两年(准确的说是一年半)里通过全国计算机等级考试二到四级的经历,以自己的感受泡制一份全国计算机等级考试全攻略,希望对后来的朋友们尤其是刚刚迈入大学校门的师弟师妹们有所帮助。
考证路上,有两点需要特别注意。一是一次只能报考一个等级(包括笔试和上机)的考试。一个级别中有不同类别,考生只能选择其中一类。另外,考试单科合格者,成绩只保留到下一个考试周期。所以不想找麻烦的话就要认真准备,争取一次OK,否则会对信心造成打击。
一级考试
对于一级考试,其实没什么好说的,大部分人不必报考这一级别,既浪费金钱又浪费生命。因而笔者强烈建议不要考这一级别。如果你不得不参加这一级别考试的话,笔者在表示同情之余建议你在熟悉常用软件之余研究一下WPS,在以后的全国计算机等级考试(一级)中 ,WPS将成为一门单独的考试科目。
二级考试
二级考试是大部分人都必须参加的。二级考试的内容包括基础知识和程序设计两大部分。 基础知识主要包括电脑基本知识,DOS基本知识和基本 *** 作,WINDOWS的基本概念与 *** 作。关于这部分知识有点水准的辅导书就会有详细的介绍,只要把书好好看看就没什么问题。DOS中的文件、目录、路径的概念及使用是必考部分,要留意。(相关阅读:如何应付新大纲二级考试的公共基础知识)
二级考试的重中之重是程序部分。要对语言的基础知识熟练掌握,尤其要留意基础概念和基本方法(选择法、冒泡法等),要能看懂书上给的程序。一般来说,如果能独立做出大部分课后题就一切OK了。对语言的工夫应该下在平时,多想,多练,多上机。自己考虑作一些小程序会有很大帮助的(别人崇敬的目光就会让你觉得很有价值)。二级DOS类考试的上机考试包括三个部分的内容,即DOS *** 作题,程序修改题和程序编制题。如果你的C语言有一定水准的话,较难的部分就是程序修改题了,毕竟了解陌生人的思路是一件比较难的事。因此平时要多读一些程序,自己编程时注意要尽量符合规范,否则很容易吃亏。当然多上机练习是取得好成绩的不二法门。关于辅导书大连理工出版社和南开出版社的都相当不错。
三级考试
三级是一个比较麻烦的等级。它共有四个类别,可以大致分两种。 三级PC上机是考汇编程序,其他三个类别考C程序。如果不是对自己特别有信心的话一般不要报考PC技术。毕竟学习汇编语言也是不小的负担 ,而且对报考四级没什么帮助(四级不考汇编!)。对于其他三种主要看自己的兴趣了。相对来说数据库要难一点(对数学系的除外)。三级的四个类别各有侧重,比较麻烦的是对于四级来说都太片面了,所以帮助不大。因此基础比较好的,直考四级也是可以考虑的。(相关阅读:通过计算机等级考试三级网络的经验)
笔试部分是三级的难点,所要记忆的内容比二级增加很多。要注意对基本理论和基础概念的掌握,有利于知识网络的形成,减少记忆负担。
由于三级刚刚改革不久,各个出版社出版的辅导书都很难贴近考试。这种情况下多看书就成了最好的选择。从近两次考试的情况看,出题也很接近课本(尤其是网络技术,有部分教材原话)。三级上机考试难度比二级提高并不大,较复杂的部分如文件读写,函数调用等通常题目已给出,因而所考的依然是比较基本和典型的算法。
四级考试
四级是最后一级,也是知识最复杂的一级。报考四级是需要一点信心和勇气的,你报考四级后身边几乎不可避免的出现一片质疑声(当我报四级时老师竟然告诉我本校从来没人通过),这时候一定要相信自己。(相关阅读:帮你全面了解全国计算级等级考试-四级)
四级通过的人数的确是非常少(相对三级),但要看到四级报考人数也是最少的。四级知识量是巨大的(看看那厚厚的教材就知道了),难点主要是离散数学和计算机英语。对于离散数学,如果有机会旁听一下计算机专业的核心课程《离散数学》会很有帮助的。要记住一定要作一定数量的习题!仅仅通过识记是无法提高水平的。
计算机英语没有想象中的困难,常用的单词只有几百个,只要把近5、6年的试题中英语题过一遍就差不多了。手头最好有一本专业词典,大部分单词在文曲星上查不到 。相对来说英语题比较简单,只要单词认识就OK了。
笔试中比较新鲜的是论述题。建议买一本历年试题及参考答案(每年国家考试中心都出版),仔细研究一下,掌握答题方法。比较幸运的是论述题通常有四道,可以选择自己最有把握的。由于四级考试已经举行多年,各出版社出的辅导书都比较扣题。笔者强烈推荐大连理工出版社出版的《全国计算机等级考试题典(四级)》。这本书贴近考试,解答详尽,对顺利过级会有很大帮助!一定要做历年试题(5年以内),确实是有一定复现率的!
四级上机考试和三级差不多,只有一道编程题,注意别紧张,一定要存盘,否则会变为0分。当时跟我一个考场的同学就有人因为慌乱忘记存盘,造成下午的考试没有通过。(相关阅读:全国计算机四级考试经验谈)
结束语:最后,不管面对任何考试都需要对自己要信心,相信即使只有一个人通过,那个人也一定是自己!这时你就成功一半了。预祝每一位考生能够在9月的考试中取得理想的成绩!
计算机考试备忘录
首先是报考时间问题。虽说大学有四年,但是如果你要考研究生的话(大部分人都会考的),从大三下学期就该开始准备了,所以留给等级考试的时间其实只有两年半而已(四次机会)。因此,如果你是大一的新生,应该考虑报考明年四月的考试。因为全国计算机等级考试是面对非专业人士的,所以难度并不太高(当然也不很容易,否则听我唠叨什么)。如果你的学校没有一级必考之类的变态规定话,就应该坚决跳过一级从二级开考(时间宝贵,不应该为没意义的事浪费半年时光)。平心而论,二级知识非常基础,只要认真准备(你有整整一个寒假的时间准备)过关是很容易的(即使你的计算机基础很差)。
虽然三级证书一样可以拿到学位证,并且越级考试也是被许可的,但笔者不提倡直接报考三级(即使你的计算机基础很好)。直接过三级虽然是一件很酷的事,但这要担相当的风险,一旦失误(这是很可能的事,毕竟三级是有一定难度的),你就不得不与刚通过二级的同学一起考试。除非你的神经有下水管道那么粗,不然会有很大压力,而且对信心的打击不容忽视。如果你对自己的计算机水平很有自信的话,二级证书到手后跳过三级直考四级倒是可以考虑的,那样风险和效率比较均衡。
另一个比较重要的问题是计算机语言的选择问题。笔者强烈推荐学习C语言。C语言不但本身逻辑清楚,实用性强而且扩展性很强,方便以后学习C++,C#等语言。如果你有狮子一样的雄心,更应该选择C语言,要注意到四级和高级程序员考试都要求C语言!
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@计算机三级考试马上就要到了,然而很多朋友对计算机上机考试却仍旧十分茫然,
参加这次考试的人有很大一部分是上次机试没有通过的朋友,甚至还有一些考了两次机试都没有通过的……
这其中不乏一些C语言学的很不错的高手,大部分人到现在都不明白为什么自己亲手编的程序却是0分……
究竟是什么原因呢?不就是那100道题目吗?翻来覆去的看也没有发现自己的程序有什么错误啊,看资料,用模拟盘模拟也是满分啊,可为什么正式考试就是0分呢?
于是很多人甚至把通过上机考试当成一件运气的事了,甚至有的朋友对上机考试感到十分恐惧
然而这其中真正的原因……
大家不妨和我一起看一下考试中心命题组的正确答案~
顺便提醒一下大家在考试的时候要注意的问题,希望对大家有所帮助。
第一条:审题要仔细!正式考试的时候会遇到很多面熟的题目,这些题目有的似乎和
平常资料中看到的一样,然而,千万不要见到面熟的题目而沾沾自喜,因为有很多的
“陷阱”会使你审题的时候就出错~!
我们看一道所有人都做过的的 “数字题目” 。
考试中心命题组第23题:
已知在文件indat中存有N个实数,(N<200),函数readdat()是读取这N个实数并存入数组xx中。
请编制函数CalValue(),其功能要求:
1、求出这N个实数的整数部分平均值aver;
2、分别求出这N个实数中其整数部分值小于平均值ever的数的整数部分值之和sumint与小数部分之和sumdec
最后调用函数WriteDat()把所求的结果输出到文件OUT8dat中。
这一题看起来很眼熟,然而你仔细看~!
1、aver是整数部分的平均值~!不是普通的哦!
2、整数部分值小于平均值ever的数的整数部分值之和sumint与小数部分之和sumdec!!
呼~,原来这么复杂~!稍不留心就错了~,结果就想当然的……0分
考试中心命题组第4题
函数ReadDat()实现从文件ENGIN中读取一篇英文文章存入到字符
串数组xx中;请编制函数ComWord()分别计算出10个不区分大小写
的英文单词的首字母(b,c,f,s,n,r,u,e,o,p)的频数并依次存入
整型数组yy[0]至yy[9]中,最后调用函数WriteDat( )把结果yy
输出到文件PS1OUT中。
这题也很眼熟,然而你仔细看~!
英文单词的首字母,呵呵,不是平常的字母的个数,是作为单词的首字母的个数啊,晕~
上面两道题目并没有在其他资料上见过,考试的时候也不一定会出,
这里仅仅是给大家提个醒儿,正式考试一定要仔细审题,严格按照题目的要求去做,
不要受以前做过的题目的影响。
第二条:一定要考虑除零、溢出、类型转换、精度等细节问题~!!
虽然我们在平时学C语言的时候老师都提醒过,可是真正到了编程序的时候,
却没有几个人会考虑。这些细节问题似乎并不直接影响题目的输出结果,
然而,因为溢出和类型转换错误而造成考试得不到满分的可是大有人在啊!
我们看下面一道最害人的题目~!!,很多朋友考了这道题目都没有过。
下面来看看你为什么是0分~!
考试中心命题组64题:
请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,
仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS8DAT中。
替代关系:f(p)=p11 mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),
如果原字符小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。
这道题目所有的人都做过,但几乎就没有人做对,包括南开无忧在内~!
原因就在于这一句!
无忧:int f; f=(xx[i][k]11)%256;
南开:char pf; pf=pf11%256;
表面看来,好象两个都对,
请你在TC下运行一下下面的代码,看一下结果你就知道了是怎么回事了……:
main()
{
char nk='E',nkp,wuyou='E';
int wy;
nkp=&nk;
nkp=nkp11%256;
wy=wuyou11%256;
printf("%c %c %c %c\n",nk,nkp,wuyou,wy);
printf("%d %d %d %d\n",nk,nkp,wuyou,wy);
}
看到结果了么?是不是很吃惊啊?
≈ ≈ E ≈
-9 -9 69 247
大家看到了,南开的结果是负数,连原来的变量nk都变成了负数,这显然错了。
无忧的聪明一点,知道int比char大,定义了个int,对了。
南开错误原因就是在TC20中char型变量只有一个字节,根本容纳不下'E'11,
所以产生了溢出,上次考这道题目没过的同学是不是有所启发呢?
这里给出考试中心命题组的答案:
void encryptChar(){
int i,k,ch;
for(i=0;i<maxline;i++)
for(k=0;k<strlen(xx[i]);k++){
ch=xx[i][k];
ch=(ch11)%256;
if(!(ch<=32||ch>=130))xx[i][k]=ch;
}
}
似乎一个例子不能说明什么,那就把上面的数字题目的答案给大家看看:
考试中心命题组23题答案:
int i;
long val;
float dec;
for(i=0;i<N;i++){
val=(long)xx[i];
aver+=xx[i]-val;
}
aver/=(double)N;
for(i=0;i<N;i++){
val=(long)xx[i];
dec=xx[i]-val;
if(dec>aver){
sumint+=val;
sumdec+=(xx[i]-val);
}
}
看到了吧,首先,val的定义,不是我们习惯的int,而是能容纳更大数的 long ,
这样在求和的时候就不会溢出,无忧和南开的答案没有吧~
再看,算aver平均值的细节,不是我们平常习惯的aver/=N,更不是无忧的10 sum/N,
而是aver/=(double)N,所以大家在考试的时候要时刻注意你的变量类型,特别是在一些求平均值的题目中,千万要注意,用sum/n的时候,sum的类型一定不要用整形。
第三条:不要使用快捷键!!很多人在使用TC的时候习惯于用F9,CTRL+F9或者其他的热键,
首先F9只是编译了,并没有运行程序,考试一定要运行一下你的程序才会有输出文件,
否则一定是0分。
热键在考试的时候是很危险的,因为UCDOS的热键和TC的冲突,CTRL+F9变成了全角半角转换,
如果不小心按了,会导致你的程序有中文字符,编译的时候出错,而且很难查找排除错误~!
所以建议大家在考试的时候使用ALT+红色字母 来调出菜单进行编译调试等步骤,建议步骤为:
写完代码后用ALT+F,S存盘,然后ALT+C,M编译,然后ALT+R,R运行,这样就万无一失了。
第四条:不要加载任何输入法
上机考试用的DOS环境内存十分有限,如果你加载了任何一个输入法,都有可能造成编译程序的时候出现out of memory 内存不足的情况,到那时就麻烦了。
程序只要写的对就可以,不要画蛇添足的加注释,没有人看的~!
第五条:不要提前交卷!考场一般使用NOVELL网络,有的时候存在网络状况不好而连接失败等问题,
这时,如果你已经提前交卷的话就不太好了。另外也可以防止别人有意无意的改动你的程序。
第六条:考试时候的一些技巧。
1、进入TC以后如果想查看题干要求,不用退出TC,直接用F12就可以显示出来。
2、用F12显示题目之后可以通过CTRL+BACKSPACE把题目定在屏幕上。
3、编译运行之后,可以通过type outdat或edit outdat或tc outdat查看输出文件。
(千万不要改动!不然影响考试结果。如果不小心改动,再重新编译运行一次你的程序就可以了)
4、如果考试的时候不小心改动了代码的主函数或其他部分,可以进入考生目录下的warn隐藏目录,
把里边的备份文件复制到考生目录。步骤:
在考生目录下输入cd warn
输入copy c 输入cd
就可以了
5、如果调试的时候不小心死循环了,可以通过CTRL+C或CTRL+BREAK来终止,如果连按多次都没反应,
不要慌,立即找监考老师说明情况,可以重新启动机器继续答原题,你的程序还在,时间也是继续刚才的。
所以这也提醒大家,运行程序之前一定要先存盘。
#include <stdioh>
#include <stdlibh>
int main() {
void change(float p,int n); // 改float swap()为void change()
float p;
int i = 0,n = 0;
printf("输入您希望的个数:");
scanf("%d",&n);
p = (float )malloc((n + 1) sizeof(float)); // n sizeof(float))就够了
printf("输入%d个数(空格隔开):\n",n);
for(i = 0; i < n;i++) scanf("%f",p + i);
change(p,n);
for(i = 0; i < n;i++)
printf("%2f ",(p+i));
printf("\n");
return 0;
}
void change(float p,int n) {
float temp;
int i,imin = 0;
for(i = 1; i < n;i++)
if((p + imin) > (p + i)) imin = i;
if(imin != 0) {
temp = (p + 0);
(p + 0) = (p + imin);
(p + imin) = temp;
}
}
计算机二级C语言公共基础知识手册
1算法的时间复杂度是指执行算法所需要的计算工作量算法的工作量由算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数
2算法的空间复杂度是指算法执行过程中所需要的存储空间,存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间
3一个算法通常由两种基本要素组成:一是对数据对象的运算和 *** 作;而是算法的控制结构
4算法设计基本方法主要包括有列举法、归纳法、递推、递归和减半递推技术
5数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)、
6数据处理是指对数据集合中的各元素以各种方式进行运算,包括插入、删除、查找、更改等运算,也包括对数据元素进行分析
7数据元素是指相互有关联的数据元素的集合
8前驱和后继关系是数据元素之间的一个基本关系,但前驱个后继关系所表示的实际意义随具体对象的不同而不同一般说来,数据元素之间的任何关系都可以用前驱和后继关系来描述
9常用的存储结构有顺序链接、索引等存储结构而采用不同的存储结构,其数据处理的效率是不同的
10在数据结构中,没有前驱的结点称为根结点;没有后继的结点称为终端结点(叶子结点);数据结构中除了根结点与终端结点外的其他结点一般称为内部结点
11在数据结构中,结点几结点的相互关系有线性结构和非线性结构
12线性结构(线性表):非空数据结构满足(1)有且只有一个根结点;(2)每个结点最多有一个前驱,也最多有一个后继
在一个线性结构中插入或删除任何一个结点后还应该是线性结构,若删除或插入后不是线性结构,则该数据结构不能称为线性结构
13线性表是最简单、最常用的一种数据结构有一组数据元素组成在稍微复杂的线性表中,一个数据元素可以由若干个数据项组成,在这种情况下,常把数据元素称为记录,含有大量记录的线性表就称作文件
14非空线性表如与如下结构特征(1)有且只有一个根结点A1,它无前驱;(2)有且只有一个终端结点AI,它无后继;(3)除根结点与终端结点外,其他所有结点有且只有一个前驱,也只有一个后继线性表中结点的个数N称为线性表的长度当N=0时,称其为空表
15在计算机中存放线性表,一种最简单的方法是顺序存储,也称顺序分配
16线性表的顺序存储结构具有以下两种基本特点:(1)线性表中所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的 在线性表的存储结构中,其前后继两个元素在存储空间中是紧邻的,且前驱元素一定存储在后继元素的前面
17假设线性表中第一个数据元素的存储地址是ADR(AI),每一个数据元素占K个字节,则线性表中第I个元素AI在计算机存储空间中的存储地址是ADR(AI)=ADR(A1)+(I-1)K
18在栈中,允许插入与删除的一端叫做栈顶,而不允许插入与删除的另一端叫做栈底栈顶元素总是最后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素既栈是按照"先进后出"(FILOFIRST IN LAST OUT)或"后进先出"(LIFO,LAST IN FIRST OUT)因此,栈也被叫做"先进后出"或"后进先出"表栈具有记忆作用
19栈是一种特殊的线性表
20栈的基本运算有三种:入栈(会出现"上溢"错误)、退栈(会出现"下溢"错误)和读栈顶元素
21队列是指允许在一端进行插入、在另一端进行删除的线性表允许插入的一端叫做队尾,通常用一个称为尾指针(REAR)的指针指向队尾元素既尾指针总是指向最后被插入的元素;允许删除的一端称为排头(对头),通常也用一个排头指针指向排头元素的前一位置。显然,最先插入的元素将最先能够被删除,最后插入的元素最后才能被删除。因此,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则。在队列中,对尾指针REAR与派头指针FRONT共同反映了队列中元素动态变化的情况。
22。往队列的对尾插入一个元素称为入队运算,从队列的排头删除一个元素的运算称为退队运算。
23。循环队列主要有两种基本运算:入队运算和退队运算。每进行一次入队运算,队尾指针就进一;每进行一次退队运算,排头指针就进一。
24递归算法一般需要利用栈来实现。
25。在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。其中指针用于指向该结点的前一个或后一个结点(既前驱或后继)。
26。数据结构作为计算机的一门学科主要讨论和研究三方面的问题:数据的逻辑结构;数据的存储结构;对各种数据进行的运算。
27。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(物理结构)。线性链表属于存储结构。
28,在线性单链表中,每一个结点只有一个指针域,由这个结点只能找到后继结点,但不能找到前驱结点,必须从头指针开始重新寻找。
29。为了弥补线性单链的这个缺点,在某些应用中,对线性链表中的每个结点设置两个指针,一个称为左指针(LLINK),用以指向前驱结点,另一个称为右指针(RLINK),用以指向后继结点,这样的线性链表称为双向链表。
30。栈也是线性表,也可以采用链式存储结构。
在实际应用中,带链的栈可以用来收集计算机存储空间中所以空闲的存储结点,这种带链的栈称为可利用栈。
31。线性链表的插入是指在链式存储结构下的线性表中插入一个新元素。
为了要在线性链表中插入一个新元素,首先要给该元素分配一个新结点,以便用于存放该元素的值。新结点可以从可利用栈中取得。然后将存放新元素值的结点连接到线性链表中指定的位置。
32。在线性链表中删除一个元素后,不需要移动表的数据元素,只须改变被删除元素所在结点的前一个结点的指针域即可。
33。循环链表中设置了一个表头结点,因此,在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的统一;
在对循环链表进行插入和删除的过程中,实现了空表与非空表的同意。
34。二叉树的遍历可以分三种:前序遍历,中序遍历,后序遍历。
前序遍历:1,访问根结点;2,前序遍历左子树;3,前序遍历右子树;
中序遍历:1,中序遍历左子树;2,访问根结点;3,中序遍历右子树;
后序遍历:1,后序遍历左子树;2。后序遍历右子树;3,访问根结点。
35。满二叉数:除最后一层外,每一层上的所有结点都有两个子结点。也就是说,在满二叉树中,每一层上的结点数都达到最大值,既在满二叉树的第K层上有2的K次方减1个结点,且深度为M的满二叉树有2的M次减1个结点。
36。在树结构中,一个结点所拥有的后继个数称为该结点的度。在树中,所有结点中最大的度称为树的度。
37完全二叉树是指除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。更确切的说,从根结点算起,对二叉树的结点自上而下、自坐至右用自然数进行连续编号,则深度为M、且有N个结点的二叉树,当且仅当其每一个结点都与深度为M的满二叉树中编号从1到N的结点一一对应,称为完全二叉树。
38。满二叉树是完全二叉树,而完全二叉树一般不是满二叉树。
39。如果按从上到下、从左到右顺序存储完全二叉树的各结点,则很容易确定每一个结点的父结点、左子结点和右子结点的位置。
40。二分法查找只适用与顺序存储的有序表。此有序表指线性表中的元素按值非递减排列。对于长度为N的有序线性表,在最坏的情况下,二分查找只需要比较LOG下2上N次,而顺序查找需要 比较N次。
41,虽然顺序查找的效率不高,但有两种情况必须用该方法:1,线性表为无序表2。采用链式存储结构
42。假设线性表的长度为N,则在最坏情况下,冒泡发需要比较次数为N(N-1)/2,从前往后和从后往前个需要N/2遍的扫描。
43。堆排序的方法对较大规模的线性表来说是很有效的。在最坏情况下,他需比较的次数是O(nlog下2上n)。堆排序时间复杂度最小,
44。队排序方法如下:1,先将一个无序序列建成堆;2,将堆顶元素(序列中的最大项)与堆中最后一个元素交换(最大项应该在序列的最后)。不考虑已经换到最后的那个元素,只考虑前N-1个元素构成的子序列。显然,该子序列已不在是堆,但左右子树仍为堆,可调整为堆,反复,直到剩下的子序列为空为止。
45,快速排序发也是一种互换类的排序方法,比冒泡发速度快,可实现通过一次交换而消除多个逆序。
46,快速排序基本思想如下:从线性表中选取一个元素,设为T,将线性表中小于T的元素移到前面,而前面大于T的数移到后面,结果就将线性表分成两部分(两个子表),T插入到其分界线的位置,这个过程称为线性表的分割。这样,前面子表中的所有元素均不大于T,后面所以元素均不小于T。若对分割后的各子表在按上述方法进行分割,一直持续下去,直到所以子表为空为止,此时的线性表就变成了有序表。因此,快速排序发的关键是对线性表进行分割,并对各分割出的子表进行分割。
47,简单插入排序法中,每次比较后最多移掉一个呢序。因此,他与冒泡排序法相同,在最坏情况下,需要N(N-1)/2次比较。
48,希尔排序法属于插入类排序,但他对简单插入排序作了较大改进。选择类排序法主要有简单选择排序法和堆排序法;交换类排序法主要有,冒泡排序法和快速排序法;插入类排序法主要有简单插入排序法和希尔排序法。
49,源程序文档化时应注意考虑:符号名的命名、程序注释和视觉组织。注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,它给出程序的整体说明,主要描述内容包括:程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期、修改日期等。 功能性注释的位置一般嵌在源程序体之中,主要描述其后的语句或程序做什么。
50,在编写程序时,开发者需注意数据说明的风格,以便使程序中的数据说明更易于理解个维护。 程序编写要作到清晰第一,效率第二。
51,当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性。
52,程序的易读性是结构话程序设计最重要的特点。
53,按结构化设计方法设计的程序具有以下特点:1,程序易于理解、使用和维护,程序员采用结构化编程方法,便于控制、降低程序的复杂性,因此便于编写程序。2,提高了编程的效率,降低软件开发的成本。3,结构化程序设计选用的每个控制结构只允许有一个入口和一个出口,
54,模块是指执行某一个特定任务(也可以是实现某一特定的抽象数据类型)的数据结构和程序代码。一个模块有他的外部特征和内部特征。外部特征包括模块的接口和模块的功能;内部特征包括模块的局部数据和实现该模块的程序代码。调用一个模块时只需知道它的外部特征即可。
主要考试科目是两科:上午是综合知识,75道单选题;下午是应用技术,5道案例题,主要考流程图1题,C语言3题,C++和JAVA二选一,以填空题和选择题为主。
考试说明:
1、掌握数制及其转换、数据的机内表示、算术和逻辑运算,以及相关的应用数学基础知识;
2、理解计算机的组成以及各主要部件的性能指标;
3、掌握 *** 作系统、程序设计语言的基础知识;
4、熟练掌握计算机常用办公软件的基本 *** 作方法;
5、熟练掌握基本数据结构和常用算法;
6、熟练掌握C程序设计语言,以及C++、Java、Visual Basic中一种程序设计语言;
7、熟悉数据库、网络和多媒体的基础知识;
8、掌握软件工程的基础知识,了解软件过程基本知识、软件开发项目管理的常识;
9、了解常用信息技术标准、安全性,以及有关法律、法规的基本知识;
10、了解信息化、计算机应用的基础知识;
11、正确阅读和理解计算机领域的简单英文资料。
以上就是关于c语言简单求和,编写程序:输入两个数,求两个数的和全部的内容,包括:c语言简单求和,编写程序:输入两个数,求两个数的和、一道简单C语言指针问题编程题!麻烦高手帮我改的简单容易理解,英文单词别很多还难!麻烦了、C语言基础指针题目,求程序员帮忙等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)