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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

二级C冲刺班上机材料.docx

1、二级C冲刺班上机材料 上机考试考点总结注意事项:1.分值为程序填空30分+程序修改30分+程序设计40分 2.2008.4开始 两大变化:时间60分钟-90分钟 上机环境 TC2.0-VC+ 6.0 3.上机考试被考生称为“从天堂坠落地狱”。上机填空的试题中常包含3个空缺需要填写,试题中用“_数字_”来提示在此处填写程序代码,需要填写的代码一般是程序运行的关键部分,因此需要考生理解整个程序流程。特别要注意的是,只能在有数字标号的空缺处填写,不要试图改动程序行的顺序和其他的非空缺处填写。改错的试题通常包含两个(或三个)错误需要修改,试题中用“*found*”来提示下一行(或下面第二行)有错。错误

2、的性质基本分语法错和逻辑错两种,也有些少量的试题把语句添加在下划线处。特别要注意的是,只能在出错行上进行修改,不要改动程序行的顺序,更不要自己另编程序。最后,在二级C语言程序设计上机考试编程中,要求完成一个独立的函数的编程。本资料对上机考试题目划分为6大类,对每种类型的题目进行了分析。1. 对一维数组(排序)和字符串(指针)操作该类型的题目在以往的机试中占有比例较大,约40%,考生应该对该知识点做全面的复习和掌握,一维数组可以分成数值型和字符型,其中数值型数组的数据类型为整型和实型,字符串数组的数据类型为字符型,我们通常会把字符型数组叫做字符串,但是应该注意字符型数组与字符串之间是存在区别的,

3、也就是0结束标识符问题。 在复习该部分时,考生应该注意掌握以下两个问题:(1) 对一维数组的操作对一维数组操作时,不可避免的要访问相关的数组元素,在C语言中访问数组元素一般采用单层循环的方法进行遍历,假设数组长度为n,数组下标是在0到(n-1)之间的,考生应该牢固掌握在一维数组中求最大值、最小值、移动元素、查找特定值(通过具体数值或通过下标)、存储数组元素等的方法。其中一个非常重要的操作一定要重视:两种排序算法,冒泡排序额和选择排序,具体的过程和实现代码要求考生必须掌握。(2) 对字符串的操作(指针) 该类问题是每次考试的重点和难点,特别是将字符串同指针结合起来以后,难度就更大了。考生在解决此

4、类问题时应特别注意字符串的结束标志0,它不仅用来作为字符串的结束标志,而且对字符串进行操作时,它也是循环的结束标志。考生在复习该部分的时候应该注意这样几个基本问题:大小写字母的转换、奇偶数判别、添加或删除指定的字符和字符的移动。此外,考生应该牢固掌握指针的特性及字符串操作函数的使用和实现方法,曾出现过考题要求考生自己编程完成字符串操作函数,特别是字符串连接函数和求子串函数,应当引起足够重视。另外对于指针应该清楚指针的建立、遍历、添加或删除一个结点的操作代码。2. 数值计算该类型的题目在历年的机试中占20%,考查的机率也非常高。该类题目一般给定一个数列计算公式,然后要求考生编写一个函数实现求数列

5、的前n项的值、累加和或积,在解决该类问题时,首先重要的找到给定数列的变化规律,然后其变化规律来编写一个单层或者双层的循环来求相应的值。在编写程序的过程中,往往还会用到一些数学函数,如sqrt()、fabs()、pow()等,考生应该牢固掌握math.h中一些常用的数学函数的用法和使用方法。另外还应注意数据类型之间的区别,特别是float和int类型,不同的数据类型产生的运算结果是不一样的。3. 对结构体的操作这部分对非计算机专业的学生来说是个难点,但以往的机试中,有17%的题目是属于该类型。考生在复习这部分的时候,首先应该注意结构体成员的两种不同的引用方法:结构体变量和指向结构体的指针,也就是

6、结构体成员运算符.和指向运算符-,在编程的过程中,往往会涉及到结构体数组,其实这类数组除了数据类型是结构体外,其他的特性和普通数组是一样的,结构体除了定义、赋值和初始化以外,其他的操作和普通变量也是一样的,包括在结构体数组(记录)中进行查找、删除、求最大最小值等操作,我们应该用对待普通变量的方法来解决结构体的问题,这样的话,难度就大幅度的降低。4. 对二维数组的操作该类问题在历年的机试中占16%,考生应该对二维数组的元素遍历方法、存储方式、矩阵转换等问题做重点掌握。在C语言中,访问二维数组的数族元素一般采用双层循环的方法实现,因为二维数组具有两个下标:行下标和列下标;二维数组可以按行或者按列转

7、化成一维数组进行存储;对二维数组进行行列转换的时候,要将行下标和列下标进行互换。考生还应该掌握上三角矩阵、下三角矩阵的特性,在考试中,矩阵的表达形式经常考到二维数组的坐标转换。5. 数制转换该部分在以往的机试中占11%,包括两类问题:一是整数合并,而是类型转换,例如对一个数的各位进行一系列的变化。在复习该部分时,考生应该注意C语言中int、long、float、double类型数据所占的存储空间大小和精度,注意%(模)运算和/(整除)运算的特点,特别应该灵活的使用模运算与除法运算求数据相应位数上的数值,掌握强制类型转换的方法以及按规定的位数保留小数的方法。6. 素数该部分在历年机试中占6%,考

8、生应该牢固掌握素数的基本概念和判断素数的方法,特别要求考生注意整数1不是素数,所以在判断素数时应该从2开始,到(n-1)结束,能够除尽的不是素数,不能除尽的是素数。判断素数是C语言中的一个基本算法,不仅会在程序填空和程序改错中也会有所涉及,应该重点复习。 C语言编程常见错误1. 书写标识符时,忽略了大小写字母的区别。main() int a=5; Printf(“%d”,A);2. 忽略了变量的类型,进行了不合法的运算。main() float a,b; printf(“%d”,a%b);3. 将字符常量与字符串常量混淆。char c;c=“a”;4. 忽略了“=”与“=”的区别。if(a=3

9、) if(a=3)5. 忘记加分号。a=1 b=16. 多加分号。 z=x+y; t=z/100; printf(“%f”,t);int a10;for(i=0;i10;i+);s+=ai;7. 输入变量时忘记加地址运算符“&”。int a,b;scanf(“%d%d”,a,b);8. 输入数据的方式与要求不符。scanf(“%d%d”,&a,&b);输入3,49. 输入字符的格式与要求不一致。在用%c格式输入字符时,空格字符和转义字符都将作为有效字符输入scanf(“%c%c%c”,&c1,&c2,&c3); 输入a b c10. 输入输出的数据类型与所用格式说明符不一致。int a=3;

10、float b=4.5;printf(“%f%d”,a,b);11. 输入数据时,企图规定精度。scanf(“%7.2”,&a);12. switch语句中漏写break语句。switch(grade)caseA: printf(“85100n”);caseB: printf(“7084n”);caseC: printf(“6069n”);caseD: printf(“2)的素数的个数,素数的个数作为函数值返回。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include in

11、t fun(int n) int i,j, count=0; printf(nThe prime number between 3 to %dn, n); for (i=3; i=n; i+) /*found*/ for (_1_; j=i) count+; printf( count%15? %5d:n%5d,i); return count;main() int n=20, r; r = fun(n); printf(nThe number of prime is : %dn, r);2人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能

12、是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!#include #define N 8typedef struct int num; int year,month,day ;STU;int fun(STU *std, STU *k, int year) int i,n=0; for (i=0; iN; i+)/*found*/ if( _1_=year)/*found*

13、/ kn+= _2_;/*found*/ return (_3_);main() STU stdN= 1,1984,2,15,2,1983,9,21,3,1984,9,1,4,1983,7,15, 5,1985,9,28,6,1982,11,15,7,1982,6,22,8,1984,8,19; STU kN; int i,n,year; printf(Enter a year : ); scanf(%d,&year); n=fun(std,k,year); if(n=0) printf(nNo person was born in %d n,year); else printf(nThese

14、 persons were born in %d n,year); for(i=0; in; i+) printf(%d %d-%d-%dn,ki.num,ki.year,ki.month,ki.day); 3.给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长N。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include #include #defin

15、e M 5#define N 20int fun(char (*ss)N, int *n) int i, k=0, len= N;/*found*/ for(i=0; i_1_; i+) len=strlen(ssi); if(i=0) *n=len;/*found*/ if(len _2_ *n) *n=len; k=i; /*found*/ return(_3_);main() char ssMN=shanghai,guangzhou,beijing,tianjing,chongqing; int n,k,i; printf(nThe original strings are :n); f

16、or(i=0;iM;i+)puts(ssi); k=fun(ss,&n); printf(nThe length of shortest string is : %dn,n); printf(nThe shortest string is : %sn,ssk);4.给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include

17、#include #define N 8typedef struct list int data; struct list *next; SLIST;void fun( SLIST *p) SLIST *t, *s; t=p-next; s=p; while(t-next != NULL) s=t;/*found*/ t=t-_1_; /*found*/ printf( %d ,_2_); s-next=NULL;/*found*/ free(_3_);SLIST *creatlist(int *a) SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(siz

18、eof(SLIST); for(i=0; idata=ai; p-next=q; p=q; p-next=0; return h;void outlist(SLIST *h) SLIST *p; p=h-next; if (p=NULL) printf(nThe list is NULL!n); else printf(nHead); do printf(-%d,p-data); p=p-next; while(p!=NULL); printf(-Endn); main() SLIST *head; int aN=11,12,15,18,19,22,25,29; head=creatlist(

19、a); printf(nOutput from head:n); outlist(head); printf(nOutput from tail: n); while (head-next != NULL) fun(head); printf(nn); printf(nOutput from head again :n); outlist(head); 5. 给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:def3*5*adh3*kjsdf7*。 请在程序的下划线处填入正确的内容并把下划

20、线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include void fun(char *s) int i, j, n; for(i=0; si!=0; i+)/*found*/ if(si=0 _1_ sii; j-)/*found*/ sj+1= _3_; sj+1=*; i=i+1; main() char s80=ba3a54cd23a; printf(nThe original string is : %sn,s); fun(s); printf(nThe result is : %sn,s);6.函数f

21、un的功能是:把形参a所指数组中的偶数按原顺序依次存放到a0、a1、a2、中,把奇数从数组中删除,偶数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除奇数后a所指数组中的数据为:4、2、6、8,返回值为4。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include #define N 9int fun(int a, int n) int i,j; j = 0; for (i=0; in; i+)/*found*/ if (_

22、1_= 0) /*found*/ _2_ = ai; j+; /*found*/ return _3_;main() int bN=9,1,4,2,3,6,5,8,7, i, n; printf(nThe original data :n); for (i=0; iN; i+) printf(%4d , bi); printf(n); n = fun(b, N); printf(nThe number of even :%dn, n); printf(nThe even :n); for (i=0; in; i+) printf(%4d , bi); printf(n);7. 给定程序中,函数

23、fun的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,形参s所指的字符串为:abcdef35adgh3kjsdf7。输出结果为:4。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!#include void fun(char *s, int *t) int i, n; n=0;/*found*/ for(i=0; _1_ !=NULL; i+)/*found*/ if(si=0&si= _2_ ) n+;/*found*

24、/ _3_ ;main() char s80=abcdef35adgh3kjsdf7; int t; printf(nThe original string is : %sn,s); fun(s,&t); printf(nThe result is : %dn,t);8. 给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考

25、生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include #include #include void WriteText(FILE *);void ReadText(FILE *);main() FILE *fp; if(fp=fopen(myfile4.txt,w)=NULL) printf( open fail!n); exit(0); WriteText(fp); fclose(fp); if(fp=fopen(myfile4.txt,r)=NULL) printf( open fail!n); exit(0); ReadText(fp); fclose(fp);/*found*/void WriteText(FILE _1_) char str81; printf(nEnter string with -1 to end :n); gets(str); while(strcmp(str,-1)!=0) /*found*/ fputs(_2_,fw); fputs(n,fw); ge

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

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