欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    计算机三级C语言上机考试题型总结与注意事项讲解详细零基础可学会.docx

    • 资源ID:18269110       资源大小:59.82KB        全文页数:99页
    • 资源格式: DOCX        下载积分:6金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机三级C语言上机考试题型总结与注意事项讲解详细零基础可学会.docx

    1、计算机三级C语言上机考试题型总结与注意事项讲解详细零基础可学会C语言 三级上机考试题型总结与注意事项 按前面的分题型讲解,三级上机考试100道题被分为9大题型。每种题型在题库中占的比例也已经在题型名字后面的括号中注明。 题型一、结构体数组排序问题(11%) 题型二、对四位数先筛选再处理的问题(35%) 题型三、整数处理问题(17%) 题型四、对字符数组中的字符进行替换的问题(18%) 题型五、对字符串数组进行排序的问题(6%) 题型六、特殊排序问题(5%) 题型七、二次排序问题(2%) 题型八、选票统计问题(3%) 题型九、数列问题(3%)注意事项:应考策略:1、 首先仔细审题,看清题目要求,

    2、避免眼高手低。2、 在头文件下面,看清试题程序中已经定义的变量及其类型。3、 试题程序中已经定义的结果变量不要重复定义(中间变量没关系)。4、 看清试题程序中定义好的变量后,注意试题程序中有没有进行初始化。重复初始化没关系,但是不进行初始化会出问题。5、 按照题目要求,仔细分析,平稳答题,时间绝对够用。6、 答完题先保存,再编译,有语法错误则改正,编译通过后则运行。7、 以运行结果为准,检查是否具有题目要求的功能,以排除逻辑错误。8、 时间很充足,急着早交卷没用,确定无误后再交卷。常见小错误1、 字符串的比较没有使用strcmp()函数。2、 把等号错写为赋值符号。3、 在程序进行中,尤其是多

    3、次循环的程序中,没有考虑到变量值的变化。4、 没有注意循环的作用范围,少写。5、 没有注意运算符的优先级。还有很多其它的小错误,在上机的过程中会出现。不上机运行,总是会有想不到的错误,多上机运行,也可以发现很多小技巧。常用运算符优先级(从高到低)1、 。(结构体成员引用运算符)2、+ - -(负号) ( )(强制转换运算符) *(指针运算符) &(取地址运算符)3、 *(乘) / %4、 + -5、 6、 =7、 = !=8、 & 9、 |10、 = += *= /= %=(赋值运算符号)11、 ,(逗号)C语言 三级上机考试中最常用的基础知识:2010-04-22 21:51一、上机考试题中

    4、的常用操作上机考试题中有许多操作经常用到,以下是几种非常常用的,还有一些更细节的东西在以后的具体题目中会着重分析。1、对数组元素进行排序如对数组aN进行从小到大排列(或叫升序排列),程序如下:int i,j,t;for(i=0;iN-1;i+)for(j=i+1;jaj)t=ai,ai=aj,aj=t;程序思路解析:从数组中的第一个元素开始,与它后面的所有元素依次进行比较,如果发现前面的比后面的大,就进行交换,否则不进行处理。a0将是N个元素中最大的,a1将是除a0以外的元素中最大的。这样一直到倒数第二个元素。最后一个元素后面没有元素了,所以iN-1。(其实这里写成iN或者什么都不写也可以,因

    5、为下的一个循环语句中的jN也同样限制了循环的执行次数)最后就实现了对数组中的元素进行升序排列。这种操作的特点:当i变化以后,第i个元素之前的元素就已经确定了,只有后面的元素才会在程序往下执行时发生变化。比如对数据3,2,1,6,5进行升序排列,程序执行时数据的状态变化为: 1,x,x,x,x 1,2,x,x,x 1,2,3,x,x 1,2,3,5,6 所以说,如果要求将aN中最小的10个元素按从小到大的顺序排列到数组的前部的话,则只须对数组的前10个元素进行处理,相应的程序改为:int i,j,t;for(i=0;i10;i+)for(j=i+1;jaj)t=ai,ai=aj,aj=t;而不必

    6、对i=10 的元素处理。这种操作在三级考试题中经常用到。其中的交换条件,也就是if()中的内容,根据问题的要求会有所变化;比如把从小到大改为从大到小,或者改为按元素对10求余的余数大小进行从小到大排列,相应的程序中if()语句改为:if(aiaj%10)t=ai,ai=aj,aj=t;2、将筛选出的数组元素统计个数,并存入另一数组通常题目中会预先定义一个名为cnt的整型变量,用于个数统计。比如,将整型数组a200中能被3整除的数统计个数,并存入数组b200中,程序如下:int i;cnt=0;(如果题目已经初始化为0了,该句就可以省了)for(i=0;i 一样,在所有运算符中是最高的。5、 素

    7、数的判断比如,要判断整数n是否为素数,程序如下(大致分为两部分):int i;for(i=2;in;i+) if(n%i=0) break;if(i=n) ; / n 是素数else ; / n不是素数程序思路解析:素数也就是不能分解为两个因数相乘。从2开始检查,一直到n -1,如果n%i=0,也就是说i是n的因数,则中断循环。否则继续检查下一个数。因此,如果中间发现了n的因数(n不是素数),for循环就中断了,则最后i的值小于n;如果从2到n-1都没有n 的因数(n是素数),则for循环会进行到底,最后i的值就等于n。最后通过判断i的值来判断n是否为素数就可以了。在三级考试中,要注意审题,有

    8、的题目是让考生自己写判断素数的程序语句,也有个别题目在题目中给出了判断素数的子函数,因此这样的话,只需要调用题目中给出的函数就可以了,而不需要做重复工作。当然如果做了重复工作也没有关系,不会影响最后结果的正确性,只是多费点时间而已。关于判断素数,程序可以写的更精简,执行效率也可以更高,不过为了简单易懂,这里不再多写,并且在以后的题目中,也都以这种形式来判断素数。6、 return 语句。在写子函数时,有时会要求函数返回一个值,只要用return 语句将其返回就可以了。return后面的括号可以写也可以不写。需要注意的是:一个函数最多只能有一个返回值,并且只能执行一次返回值的操作。在执行retu

    9、rn语句之后,函数的调用将结束,也就是说子函数中的程序将会终止运行。也就是说,从某种意义上讲,子函数中的return语句具有类似于break语句的作用,可以用于控制子函数中的循环语句的执行。这在以后的例题中也会用到,有助于理解一些问题。 比如,要写一个判断素数的子函数,要求是素数则返回1,不是素数则返回0,程序如下:int is sushu(int n) int i;for(i=2;i0,则str1str2;如果strcmp(str1,str2)0,则str1str2,或者str1-str2,这是很典型的错误。3、strcpy(str1,str2)将str2复制到str1里面。Str2本身没有

    10、发生变化。4、strrev(str) - 将str中字符进行倒排。5、fabs(x) - 计算x的绝对值。6、sqrt(x) - 计算x的开方。7、isalpha(c)检查字符c是否为字母。是则函数返回值为1;不是则函数返回值为0。alpha是单词“alphabet”的前5个字母。8、 isalnum(c)检查字符c是否为字母或数字。是则函数返回值为1;不是则函数返回值为0。alnum是单词alphabet 和单词number 的缩写。三、最好能看懂的有关文件操作的函数以下是比较常见的10个,只需要能看懂的有关文件的函数,加粗的为重点。1、fopen(“文件名”,“使用文件方式”) (引号不能

    11、漏掉,以下同)如:fopen(“1.c”, “r”) -以读的方式打开文件 1.c。如果不能打开,则返回一个NULL。2、fclose(文件指针) 用于关闭文件。如fclose(fp) -关闭fp所指向的文件。3、fgetc (文件指针) 如:c=fgetc(fp) -从fp指向的文件中读取一个字符,赋给变量c。4、fputc(字符,文件指针) 如:fputc(c , fp)- -把字符c写到fp指向的文件中去。5、fgets(字符串,字符个数,文件指针)如:fgets(str,n,fp) -从fp指向的文件中读取n-1个字符,写入字符数组str,并在最后加上一个 0 。若在读完n-1个字符前

    12、遇到换行符或文件结束标志EOF则读入过程结束。6、fputs(字符串,文件指针)如:fputs(str,fp) -把字符串str输出到(写入)fp指向的文件中。7、fprintf(文件指针,“格式字符串”,输出表列)如:fprintf(fp, “%d”,n)-把n按%d格式输出到(写入)fp指向的文件中。8、 fscanf(文件指针,“格式字符串”,输入表列)如:fscanf(fp, “%d”,&n)-从fp指向的文件中读取一个整数,将它赋给变量n。9、feof(文件指针) 如:feof(fp)-检查fp指向的文件是否结束。当遇到文件结束符EOF时返回非零值,否则返回0。EOF是文件结束标志,

    13、即 -1。 C语言 三级上机考试分题型讲解之题型一,结构体数组排序问题(11%)2010-04-22 22:24三级考试中的题目重复率高,只是具体条件有微小变化,如从小到大改为从大到小,按名称排列改为按代码排列,按这种关系替换改为按那种关系替换等。如果理解了每类题目的做法,只要在考试中注意审题,结合具体条件就可以了。本章详细讲解每个题型的做法,并在每一题型后面的括号中统计了这类题目在上机题库中占的比例。题型一,结构体数组排序问题(11%)包括两类,一类是对产品销售记录的排序(9%),另外一类是对多组(通常为200组)整数筛选并排序(2%)。例1、已知在文件IN1.DAT中存有100个产品销售记

    14、录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT1.DAT中。注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。【试题程序】#

    15、include /开始几行的头文件不必都认识,认识2个就够了,都不认识也行,#include 认识(字符串头文件)、(数学头文件)#include 用到相应的库函数时,要注意必须有相应的头文件#include #include #define MAX 100typedef struct char dm5 ; /*产品代码*/char mc11 ; /*产品名称*/int dj ; /*单价*/int sl ; /*数量*/long je ; /*金额*/PRO ;PRO sell MAX ;void ReadDat() ;void WriteDat() ;void SortDat()main(

    16、)memset(sell, 0, sizeof(sell) ;ReadDat() ;SortDat() ;WriteDat() ; 主函数是稍微需要能看懂的函数,最起码能看懂调用了什么子函数。在三级上机考试中,只有3%的题目要求在主函数中编写部分程序。在以后的例题中会有涉及(题型三,例1)。void ReadDat() 这个函数的功能是读取文件中的数据,不必看懂详细的过程,只要了解它的功能就可以了。在三级上机考试中,只有3%的题要求编写读函数的一部分,只要会用函数fscanf()就足够了。在以后的例题中会有涉及(题型三,例8)。 其实要看懂它也很容易,只要了解第一章中提到的有关文件操作的函数就

    17、可以了,但考试中确实没有必要。void WriteDat() 这个函数的功能是将处理的结果写入目的文件,也不必看懂详细的过程。在三级上机考试中,还没有要求编写写函数的。只有一题(题型五,例4)需要看一下写函数。在介绍完题型后,有专门介绍读写函数和主函数的内容,有兴趣的可以看一看。【答案】void SortDat() int i,j;PRO t;for(i=0;iMAX-1;i+)for(j=i+1;j0|strcmp(selli.mc,sellj.mc)=0&selli.jesellj.je)t=selli,selli=sellj,sellj=t;思路简析:题目实际上是要求按一定的条件对数组s

    18、ellMAX(或写成sell100)进行排列,用的就是第一章中的排序操作,只是把相应的进行交换的条件改了。关键是if()中的内容。题目要求按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,那么selli与sellj交换的条件实际上是:selli的名称大于sellj的名称,或者selli的名称等于sellj的名称但是sei的金额大于sellj的金额。这里注意sellMAX是一个结构体数组,要注意它的引用方法。还有就是给出的程序中已定义了PRO为题目中结构体类型的符号,因此答案中用作交换的变量t直接用PRO定义就可以了。 ( 其实这样对t定义也可以:struct t ; )表示

    19、为C语言的语句就是:selli.mc,sellj.mc)0|strcmp(selli.mc,sellj.mc)=0&selli.jesellj.je答题时,只要看清题目要求,将例1答案中if()中的内容作相应的改动就可以了。【练习1】把例1中的功能要求改为:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列【试题程序】除文件名外与例1一样,略。【答案】void SortDat()int i,j;PRO t;for(i=0;iMAX-1;i+)for(j=i+1;jMAX;j+)if(strcmp(selli.dm,sellj.dm)0|strcmp(selli.dm,sell

    20、j.dm)=0&selli.jesellj.je)t=selli,selli=sellj,sellj=t;例2、 在文件IN38.DAT中有200组数据,每组有3个数,每个数均为三位数。函数readDat()读取这200组数存放到结构数组aa中。请编制函数jsSort(),其功能是:要求在200组数据中找出条件为每组数据中的第一个数大于第二个数加第三个数之和的数,其中满足条件的个数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数按照每组数据的第一个数加第三个数之和的大小进行升序排列(第一个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中。

    21、最后,调用函数writeDat()把结果bb输出到文件OUT38.DAT中。注意:部分源程序已给出。请勿改动主函数main( )、读函数readDat( )和写函数writeDat( )的内容。【试题程序】#include #include #include #include typedef structint x1,x2,x3;Data;Data aa200,bb200;int jsSort()void main()int count;readDat();count=jsSort();writeDat(count);readDat()略writeDat(int count)略【答案】int

    22、jsSort()Data t;int i,j;int cnt=0; /cnt 用来表示满足条件的结构体的个数for(i=0;i(aai.x2+aai.x3)bbcnt+=aai; /将满足条件的结构体存入结构体数组bb中for(i=0;icnt-1;i+) /按要求对结构体数组bb进行排序for(j=i+1;j(bbj.x1+bbj.x3)t=bbi,bbi=bbj,bbj=t;return(cnt);C语言 三级上机考试分题型讲解之题型二,对四位数先筛选再处理的问题(35%)2010-04-23 14:42这类题目比较简单,数量也多,题目的变化主要在于筛选四位数的具体条件,多数是基于四位数各

    23、位数字(千位、百位、十位、个位)的性质进行筛选(27%),有的是基于四位数与前后相邻数字的大小关系进行筛选(4%),还有的是基于四位数本身是否为素数进行筛选(2%)(这类题目都在试题中给出了判断素数的函数),还有涉及移位操作的(2%)。 对这类简单题可以多看几个,基础好的同学可以只看两三个,主要是学会用C语言把题目中的具体条件表示出来。例1、已知数据文件IN10.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出千位上的数减百位上的数减十位上的数减个位上的数大于零的数的个数cnt,并求出所有满足此条件的数的平均值p

    24、jz1,以及所有不满足此条件的数的平均值pjz2,并把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT10.DAT文件。例如:9123,9-1-2-30,则该数满足条件存入数组b,且个数cnt=cnt+1。9812,9-8-1-20,则该数不满足条件,忽略。注意:部分源程序已给出。程序中已定义数组:a300,b300;已定义变量:cnt,pjz1,pjz2。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。【试题程序】#include int a300,b300,cnt=0;double pjz1=0.0,pjz2=0.0;jsValue()main()int i;readDat();jsValue();writeDat();for (i=0;icnt;i+) printf(b%d=%dn,i,bi);readDat()略writeDat()略【答案】jsValue()int i,j,t;int qw,bw,sw,gw; /分别表示千位、百位、十位、个位for(i=0;i0) bcnt+=ai,pjz1+=ai; /将满足条件的数存入数组b,并求和 else


    注意事项

    本文(计算机三级C语言上机考试题型总结与注意事项讲解详细零基础可学会.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开