ImageVerifierCode 换一换
格式:DOCX , 页数:118 ,大小:97.89KB ,
资源ID:8867755      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8867755.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(三级网络技术上机讲义和南开100题.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

三级网络技术上机讲义和南开100题.docx

1、三级网络技术上机讲义和南开100题计算机三级网络技术机试超级讲义三级C上机的考试概括:一道编程题,不是完整的编程,完成一段函数如何顺利通过考试: 熟悉上机环境,考试过程中不要在此浪费时间和精力 掌握一些C编程的基本知识 看好南开100题的各种题型的解法 多上机独立练习。 掌握题库题目分类规律,考试题型有限,只是少数考题条件略改,比如原题中是“从大到小”排序,考题也许改成“从小到大”排序;排序关键字变化等,因此读透题目的基础上在作题,不因马虎而作错题目。 考试过程中,认真审题最关键,看到自己熟悉的简单题目、复杂题目考试之前分别对待,考试过程中保持冷静,不慌张,见易题步盲目欢喜,见难题不乱阵脚。C

2、编程的基本知识C程序设计的内容很丰富,按照考试要求,100题解法中主要涉及到的是基础知识、四种结构的的程序设计、函数与数组的应用和算法,在学习时,应该把主要精力放在这些部分,其它的知识,如输入输出的语句、文件的读写、指针的定义等,源程序已经给出(只要能读懂即可)。.一、快速掌握C语言的语法忠告强化学习,加上机练习。在写程序上经常忘记C语言中的分号、小括号、大括号的运用,一开始就要养成良好习惯和细心。特别注意的是为什么说上机练习很重要,原因就是在纸上写的,语法错了不知道,而上机错了就显示。二、C语言的运算符和运算顺序这是学好C程序设计的基础,C语言的运算非常灵活,功能十分丰富,运算种类远多于其它

3、程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算使表达式更为简单。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则十分重要。考试中常用的运算符:1.算术运算符包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(+)、自减(-)2.关系运算符用于比较运算。包括大于()、小于(=)、小于等于(=)和不等于(!=)3.逻辑运算符用于逻辑运算。包括与(&)、或(|)、非(!)4.位操作运算符左移()5.赋值运算符用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)6.指针运算符用于取内容(

4、*)和取地址(&)二种运算。7.特殊运算符有括号(),成员(.)等几种。先要明确运算符按优先级不同分类,下面我们通过几个例子来说明:(1) 5*8/4%10 这个表达式中出现3种运算符,是同级运算符,运算顺序按从左至右结合,因此先计算5 *8=40,然后被4除,结果为10,最后是%(求余数)运算,所以表达式的最终结果为10%10 = 0;(2)a = 3;b = 5;c =+ a* b ;d =a + +* b;(3)(a = 3,b = 5,b+ = a,c = b* 5)三、学好数据类型定义1、 常见的数据类型:(1)基本数据类型:整型、长整型、字符型、无符号型(unsigned char

5、)、实数型float、doubleint 整数-3276832767 ;char 字符 单引号,数字串问题,转义字符: n ; double、float都是浮点型,double(双精度型)比float(单精度型)存的数据更准确些,占的空间也更大,int是整型,long是长整型,long的范围比int大注意:允许字符变量参与数值运算,即用字符的ASCII 码参与运算。由于大小写字母的ASCII 码相差32,因此运算后把小写字母换成大写字母。然后分别以整型和字符型输出。(2)指针类型: 定义方式: 类型说明符 *变量名; int *p; char *p; 赋值方法:int a; int *p=&a

6、; 或者 int a;int *p; p=&a; 注意:不允许把一个数赋予指针变量,错误形式: int *p;p=1000; 被赋值的指针变量前不能再加“*”说明符,如写为*p=&a 错误指针变量的运算: 取地址运算符& 取内容运算符* 注意:指针运算符*和指针变量说明中的指针说明符* 不是一回事。在指针变量说明中,“*”是类型说明符,表示其后的变量是指针类型。 而表达式中出现的“*”则是一个运算符用以表示指针变量所指的变量。例如:main()int a=5,*p=&a;printf (%d,*p);int a,*pa=&a,*pb;pb=pa; /*把a的地址赋予指针变量pb*/ int a

7、5,*pa;pa=a; (数组名表示数组的首地址,故可赋予指向数组的指针变量pa) 也可写为:pa=&a0; /*数组第一个元素的地址也是整个数组的首地址,也可采取初始化赋值的方法:int a5,*pa=a; 指针变量的加减算术运算:(主要针对数组变量的操作) 对于指向数组的指针变量,可以加上或减去一个整数n。设pa是指向数组a的指针变量,则pa+n,pa-n,pa+,+pa,pa-,-pa 指针变量加或减一个整数n的意义是把指针指向的当前位置(指向某数组元素)向前或向后移动n个位置。注意,数组指针变量向前或向后移动一个位置和地址加1或减1 在概念上是不同的。因为数组可以有不同的类型各种类型的

8、数组元素所占的字节长度是不同的。如指针变量加1,即向后移动1 个位置表示指针变量指向下一个数据元素的首地址。 而不是在原地址基础上加1。 例如:int a5,*pa;pa=a; pa指向数组a,也是指向a0pa=pa+2; pa指向a2,即pa的值为&pa2指针变量的加减运算只能对数组指针变量进行,对指向其它类型变量的指针变量作加减运算是毫无意义。两个指针变量之间的运算只有指向同一数组的两个指针变量之间才能进行运算, 否则运算无意义。 数组之间的关系运算: pf1=pf2表示pf1和pf2指向同一数组元素pf1pf2表示pf1处于高地址位置pf1=7)B=a; 分支体可以是一条语句,此时“ ”

9、可以省略它有两条分支路径可选,一是当条件为真,执行分支体,否则跳过分支体,这时分支体就不会执行。if(条件)分支1else分支2这是典型的分支结构,如果条件成立,执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成。嵌套分支语句:其语句格式为:if(条件1) 分支1;else if(条件2) 分支2 else if(条件3) 分支3 else if(条件n) 分支n else 分支n+13、循环结构:循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do w

10、hile循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,在学习中我们主要学习while、dowhile、for三种循环。常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,这就要清楚三种循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用,如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。do while(条件表达式) ; while (条件表达

11、式) ; 其中条件表达式:(若为真(或非0)则继续循环)for(表达式1;表达式2;表达3) 语句:表达式1通常用来给循环变量赋初值,一般是赋值表达式。也允许在for语句外给循环变量赋初值,此时可以省略该表达式。表达式2通常是循环条件,一般为关系表达式或逻辑表达式。表达式3通常可用来修改循环变量的值,一般是赋值语句。注意 :这三个表达式都可以是逗号表达式, 即每个表达式都可由多个表达式组成。三个表达式都是任选项,都可以省略。3、转移语句 break, continue和return。break 跳出本层循环,转去执行后面的程序continue 结束本次循环,即不再执行循环体中continue

12、语句之后的语句,转入下一次循环条件的判断与执行 注意: 本语句只结束本层本次的循环,并不跳出循环。void main()int n=7;do if (n%7!=0) continue;printf(%d ,n); n+;While(n=100) void main()int n;for(n=7;n=100;n+)if (n%7!=0)continue;printf(%d ,n); void main()int n,i;for(n=2;n=100;n+)for(i=2;i=n) printf(t%d,n);注意它们的异同点:用while和dowhile循环时,循环变量的初始化的操作应在循环体之前

13、,而for循环一般在语句1中进行的;while 循环和for循环都是先判断表达式,后执行循环体,而dowhile循环是先执行循环体后判断表达式,也就是说dowhile的循环体最少被执行一次,而while 循环和for就可能一次都不执行。另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环。顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构。4、模块化程序结构C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的

14、C程序编写,因此常说:C程序=主函数+子函数。 因些,对函数的定义、调用、值的返回等中要尤其注重理解和应用,并通过上机调试加以巩固。注意:上机考试要求考生只对某个子函数作答注意: 模块化程序中的全局变量与局部变量简单记忆方法:主函数中定义的变量为全局变量,适用于任何子函数,而在子函数中定义的变量为局部变量,适用范围只是本函数。#include #include void readwriteDat();int isP(int m) int i; for(i=2;i0;m+) if(isP(m) xxs+=m; k-;main() int m,n,xx1000; clrscr(); printf(

15、nPlease enter two integers:); scanf(%d%d,&m,&n); num(m,n,xx); for(m=0;mn;m+) printf(%d ,xxm); printf(n); readwriteDat();void readwriteDat() int m,n,xx1000, i; FILE *rf,*wf; rf=fopen(in.dat,r); wf=fopen(out.dat,w); for(i=0;i10;i+) fscanf(rf,%d %d,&m,&n); num(m,n,xx); for(m=0;mn;m+)fprintf(wf,%d ,xxm)

16、; fprintf(wf,n); fclose(rf); fclose(wf);注意:区分函数是否需要返回值 区分标志 函数定义是否有 void例如:请编写函数countValue(),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件out.dat中。 例如若n为1000时,函数值应为:s=153.909064。 部分源程序存在文件prog1.c中。 请勿改动主函数main()和输入输出数据函数progReadWrite()的内容。#include #include #include double countValue(int

17、 n) int i;double s=0.0;for(i=1;in;i+)if(i%21=0) s+=i;return sqrt(s);main() clrscr(); printf(自然数之和的平方根=%fn,countValue(1000); progReadWrite();progReadWrite() FILE *fp,*wf; int i,n; float s; fp=fopen(in.dat,r); if(fp=NULL) printf(数据文件in.dat不存在!); return; wf=fopen(out.dat,w); for(i=0;i10;i+) fscanf(fp,%

18、dn,&n); s=countValue(n); fprintf(wf,%fn,s); fclose(fp);fclose(wf);五、掌握一些简单的算法编程其实一大部分工作就是分析问题,找到解决问题的方法,再以相应的编程语言写出代码。要求我们掌握一些简单的算法,在掌握这些基本算法后,要完成对问题的分析就容易了。如两个数的交换、三个数的比较、冒泡法排序,这就要求我们要清楚这些算法的内在含义,下面介绍考试中出现频率较高的算法:1、数字拆分此类题在100题目中占的比重很大,共占了16道题,主要是对四位数分解成千位数,百位数,十位数,个位数,这些就要用到运算中的整除(“/”)和求余(“%”)运算,一

19、定要理解这两个运算的结果。如:已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。从解法中可以看出,分别求出这个四个位数,假如原四位数是a千位数:a/1000;百位数:a%1000/

20、100;十位数:a%100/10;个位数:a%10;2、排序法排序方法很多,只要掌握一种方法,就可以应对南开题中关于排序题的解法,建议用冒泡排序法。如用冒泡排序法对10个不同整数排序(从小到大),选择法排序思路:设有10个元素a1a10,将a1与a2a10比较,若a1比a2a10都小,则不进行交换,即无任何操作;若a2a10 中有一个比a1小,则将其中最小的一个(假设为a)与a1交换,此时a1中存放了10个中最小的数。第二轮将a2与a3a10比较,将剩下9个数中的最小者a与a2交换,此时a2 中存放的10个数中第2小的数;依此类推,共进行9轮比较,a1到a10就已按从小到大的顺序存放。即每一轮

21、都找出剩下数中的最小一个,代码如下:9 7 1 2 11 6 8for(i=1;i=9;i+) 理会此处为 i=9 for(j=i+1;j=10;j+) 理会此处j=i+1 和jaj) 此处不能丢掉小括号 考试当中主要考试此处的判断条件 temp=a; a=aj; aj=temp;重点提示:题库中几乎80%以上题目都用到以上方法,大家必须明白其原理,并熟练掌握。特别提示:该题型请注意在冒泡排序过程中变量的使用。考试过程中常常出现以下画面,就是由于变量之间使用混淆所造成。例如:考试中典型的数字排序问题在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()

22、读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行降序排列,然后取出满足此条件的前10个数依次存入数组b中,如果后三位的数值相等,则按原先的数值进行升序排列。最后调用函数WriteDat()把结果bb输出到文件out.dat中。例:处理前 9012 5099 6012 7025 8088 处理后 5099 8088 7025 6012 9012 注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include#include#includeint aa200,b

23、b10;void jsSort() int i,j,data; for(i=0;i199;i+)for(j=i+1;j200;j+) if(aai%1000aaj)data=aai;aai=aaj;aaj=data; for(i=0;i10;i+) bbi=aai;void main()readDat();jsSort();writeDat();system(pause);readDat()FILE *in;int i;in=fopen(in.dat,r);for(i=0; i200; i+) fscanf(in,%d,&aai);fclose(in);writeDat()FILE *out;

24、int i;clrscr();out=fopen(out.dat,w);for(i=0; istring23、sqrt 求double类型数值的平方根函数已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。 部分源程序存在文件prog1.c中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。#include #include #

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1