2011年3月三级网络技术上机讲义和南开100题(共91页).doc
《2011年3月三级网络技术上机讲义和南开100题(共91页).doc》由会员分享,可在线阅读,更多相关《2011年3月三级网络技术上机讲义和南开100题(共91页).doc(91页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上计算机三级网络技术机试超级讲义三级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 a5,*p
7、a;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 while
10、循环和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循环时,循环变量的初始化的操作应在循环体之前,而fo
13、r循环一般在语句1中进行的;while 循环和for循环都是先判断表达式,后执行循环体,而dowhile循环是先执行循环体后判断表达式,也就是说dowhile的循环体最少被执行一次,而while 循环和for就可能一次都不执行。另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环。顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构。4、模块化程序结构C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编
14、写,因此常说: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(nPle
15、ase 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); fp
16、rintf(wf,n); fclose(rf); fclose(wf);注意:区分函数是否需要返回值 区分标志 函数定义是否有 void例如:请编写函数countValue(),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件out.dat中。 例如若n为1000时,函数值应为:s=153.。 部分源程序存在文件prog1.c中。 请勿改动主函数main()和输入输出数据函数progReadWrite()的内容。#include #include #include double countValue(int n) int i;
17、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,%dn,&n); s=
18、countValue(n); fprintf(wf,%fn,s); fclose(fp);fclose(wf);五、掌握一些简单的算法编程其实一大部分工作就是分析问题,找到解决问题的方法,再以相应的编程语言写出代码。要求我们掌握一些简单的算法,在掌握这些基本算法后,要完成对问题的分析就容易了。如两个数的交换、三个数的比较、冒泡法排序,这就要求我们要清楚这些算法的内在含义,下面介绍考试中出现频率较高的算法:1、数字拆分此类题在100题目中占的比重很大,共占了16道题,主要是对四位数分解成千位数,百位数,十位数,个位数,这些就要用到运算中的整除(“/”)和求余(“%”)运算,一定要理解这两个运算的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2011 三级 网络技术 上机 讲义 南开 100 91
限制150内