版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全国计算机等级考试一级C类试题汇编(完整版)资料(可以直接使用,可编辑优秀版资料,欢迎下载)
全国计算机等级考试一级C类试题汇编(完整版)资料(可以直接使用,可编辑优秀版资料,欢迎下载)客观题一、是非题(请从A、B中选出一个正确答案。[每题1分])1.进程存在的唯一标志是“进程控制块”。A.对B.错2.分时操作系统采用CPU时间片技术可以处理多道程序并发执行。A.对B.错3.存贮介质上的文件构造方式称为文件的逻辑结构。A.对B.错4.计算机的“兼容性”是指在新类型的处理器上开发的软件能够在旧的处理器中被正确执行。A.对B.错5.ISA、PCI、AGP、IDE等是一些不同的总线标准,它们不会应用在同一台计算机中。A.对B.错6.计算机网络不属于办公信息处理的设备。A.对B.错7.第一代计算机的程序设计语言是用二进制码表示的机器语言和汇编语言。A.对B.错8.导入Excel工作表的数据可以是其他数据库(如Access、VFP等)文件中的数据,也可以是文本文件中的数据。A.对B.错9.交互式作业处理的特点是“人机对话”。A.对B.错10.第三代计算机的硬件特征是用中、小规模集成电路代替了分立的晶体管元件。A.对B.错二、单选题(请从A、B、C、D中选出一个正确答案。[每题1分])(一)计算机基础知识部分。11.分子计算机的基础是制造出单个的分子,其功能与______及今天的微电路的其他重要部件相同或相似。A.电容B.电阻C.电荷D.三极管、二极管12.“金桥工程”是建立一个覆盖全国并与国际计算机联网的公用______和网中之网。A.电视网B.无线网C.基干网D.网13.信息技术是指利用______和现代通信手段实现获取信息、传递信息、存储信息、处理信息、显示信息、分配信息等的相关技术。A.传感器B.识别技术C.、电视线D.计算机14.生物计算机具有巨大的存储能力,其处理速度比当今最快的计算机快一百万倍,而且能耗仅有现代计算机的______分之一。A.百万B.十亿C.千万D.亿15.在微机系统中基本输入输出系统BIOS存放在______中。A.RAMB.ROMC.硬盘D.寄存器16.配置高速缓冲存储器(Cache)是为了解决_____。A.内存与辅助存储器之间速度不匹配问题B.CPU与辅助存储器之间速度不匹配问题C.CPU与内存储器之间速度不匹配问题D.主机与外设之间速度不匹配问题17.静态RAM的特点______。A.在不断电的条件下,静态RAM不必定期刷新就能永久保存信息B.在不断电的条件下,静态RAM必须定期刷新才不致丢失信息C.在静态RAM中的信息只能读不能写D.在静态RAM中的信息断电后也不会丢失18.所谓的“裸机”是指______。A.单片机B.不装备任何外设的计算机C.不装备任何软件的计算机D.只装备操作系统的计算机(二)操作系统基础及WindowsXP部分。19.下列关于“重定位”说法正确的是______。A.动态重定位优于静态重定位B.动态重定位系统不支持“程序浮动”C.动态重定位需要软件和硬件相互配合完成D.静态重定位在装入作业时,不需要进行地址转换20.文件目录的组织和管理应______和防止冲突。A.节省空间B.提高速度C.便于检索D.便于使用21.操作系统是一套______程序的集合。A.文件管理B.中断处理C.资源管理D.设备管理22.操作系统通常通过______来扩充主存空间。A.对内存的管理B.分页管理方式C.固定分区方式D.对硬盘的虚拟存储管理23.最早投入使用的操作系统是______。A.分时操作系统B.网络操作系统C.批处理操作系统D.实时操作系统24.能直接对系统中各类资源进行动态分配和管理,控制和协调各任务的并行执行,且系统中主机无主次之分,并向用户提供统一的、有效的软件接口的系统是______。A.分布式操作系统B.实时操作系统C.网络操作系统D.批处理操作系统25.文件在存储介质上的组织方式称为文件的______。A.物理结构B.逻辑结构C.流式结构D.顺序结构26.分布式计算机系统是一种特殊的______。A.联机系统B.计算机网络C.具有通信功能的单机系统D.都不是(三)办公信息处理部分。27.以下各项,对Excel2003中的筛选功能描述正确的是:______。A.按要求对工作表数据进行排序B.隐藏符合条件的数据C.只显示符合设定条件的数据,而隐藏其它D.按要求对工作表数据进行分类28.在Word2003的哪种视图方式下,可以显示分页效果。A.普通B.大纲C.页面D.主控文档29.在Word2003中,通过以下哪一项功能可以将不同人员的编辑内容合并到一个文档中:______。A.自动编写摘要B.插入引用C.比较并合并文档D.插入文件30.给表格、图表、公式或其他项目添加的编号标签。通过“插入”菜单/“引用”______,每当插入有关的对象时,Word将自动为其添加。A.添加题注B.添加脚注C.添加尾注D.添加交叉引用31.将Word文档中所有的英文字母用红色显示,可使用通配符进行替换,通配符应选择______。A.*B.?C.$D.#32.在创建图表之前,要选择数据,必须注意:______。A.可以随意选择数据B.选择的数据区域必须是连续的矩形区域C.选择的数据区域必须是矩形区域D.选择的数据区域可以是任意形状33.要想避免段落最后一行文本显示在下一页的顶部,或段落首行文本显示在上一页的底部,可设置“段落”对话框中“换行和分页”标签页中的属性______。A.段中不分页B.与下段同页C.孤行控制D.段前分页34.要改变数学格式可使用“单元格格式”对话框的哪个选项?A.对齐B.文本C.数字D.字体35.Excel2003中,要对某些数字求和,则采用下列哪个函数:______。A.SUMB.AVERAGEC.MAXD.COUNT36.在______视图中可以对幻灯片进行移动、复制或删除等操作。A.幻灯片母板B.幻灯片浏览C.幻灯片放映D.备注页(四)计算机网络与Internet应用部分。37.主机的IP地址和主机的域名的关系是______。A.两者完全是一回事B.一一对应C.一个IP地址对应多个域名D.一个域名对应多个IP地址38.与Internet相连的任何一台计算机,不管是最大型还是最小型的,都被称为Internet____。A.服务器B.工作站C.客户机D.主机39.网络的物理拓扑结构可分为______。A.星型、环型、树型和路径型B.星型、环型、路径型和总线型C.星型、环型、局域型和广域型D.星型、环型、树型和总线型40.当你使用WWW浏览页面时,你所看到的文件叫作______文件。A.DOSB.WindowsC.超文本D.二进制41.局域网的网络硬件主要包括网络服务器、工作站、______和通信介质。A.计算机B.网卡C.网络拓扑结构D.网络协议42.严格说来,Internet中所提到的客户是指一个______。A.计算机B.计算机网络C.用户D.计算机软件43.一座办公大楼内各个办公室中的微机进行联网,这个网络属于______。A.WANB.LANC.MAND.GANA.publicB.tptC.hzD(五)多媒体技术基础部分。45.以150dpi扫描的一幅照片经过处理后(未改变像素数量)再以300dpi出图,打印出的照片与原来的照片尺寸相比会______。A.变大B.缩小C.不变D.都不对46.评价一个压缩算法的优劣要由多个指标来综合考虑,但不包括______。A.算法的通用性B.编码解码速度C.压缩质量D.压缩比47.动画和视频都是利用快速变换帧的内容而达到运动效果的。帧率为30fps的电视制式是______制式。A.PALB.NTSCC.SECAMD.FLASH48.PAL电视制式采用的颜色空间是______。A.HSBB.YIQC.YUVD.RGB49.下列哪项不包括在媒体输入输出技术中______。A.变换技术B.识别技术C.理解技术D.虚拟现实技术50.下列文件格式中,哪个不是图像文件的扩展名______。A.FLCB.JPGC.BMPD.GIF51.VCD中使用的核心压缩标准是______。A.JPEGB.MPEG-1C.MPEG-2D.MPEG-452.Flash是基于______的多媒体创作工具。A.流程控制B.时间轴C.页面D.网页(六)网页设计基础部分。53.格式化文本时字体大小的度量单位有______。A.像素、厘米、点数、英尺等B.英寸、厘米、点数、米等C.像素、厘米、点数、市尺等D.像素、厘米、点数、英寸等54.在DreamweaverMX2004中输入文本时如果要分段则需按______键。A.Shift+EnterB.EnterC.Alt+EnterD.Ctrl+Enter55.HTML的标记码是由成对的标记组成,书写格式为______。A.</标记>内容</标记>B.</标记>内容<标记>C.<标记>内容<标记>D.<标记>内容</标记>56.格式化文本时在“字体”下拉列表框中包含一个或多个字体组合,中间用______分隔。A.冒号B.逗号C.破折号D.分号57.表项单元<TH>带有表示横向对齐方式的属性,其中缺省值是。A.ALIGN=LEFTB.ALIGN=TOPC.ALIGN=BOTTOMD.ALIGN=CENTER58.DreamweaverMX2004是一款专业的可视化______。A.文字处理软件B.网页编辑软件C.动画制作软件D.图像处理软件59.一般情况下,网站都有一个首页,或者说主页,首页的名称一般是_____。A.由远程用户自己确定D.固定的(具体名称由Web服务器确定)60.DreamweaverMX2004的工作区的“插入”栏包含______的按钮。A.将各种类型的“对象”(如图像、表格和层)插入到文档中B.“文件”和“编辑”菜单中的一般操作C.提供各种“文档”窗口视图(如“设计”视图和“代码”视图)的选项D.各种查看选项和一些常用操作三、多选题(请从A、B、C、D中选出1--4个正确答案。[每题1分])61.Excel2003输入的数据类型分为_______。A.数值型B.日期时间型C.逻辑型D.文本型62.分时操作系统具有______等特点。A.同时性B.及时性C.交互性D.独立性63.进程的特性包括______等。A.动态性B.顺序性C.进程和程序并非一一对应D.并发性64.下列部件中,不能直接通过总线与CPU连接的是______。A.键盘B.内存储器C.硬盘D.显示器65.在微机性能指标中,用户可用的内存储器容量通常是包含______。A.ROM的容量B.RAM的容量C.Cache的容量D.硬盘的容量66.建立数据透视表的数据应该有______数据类型等。A.数值型B.日期时间型C.文本型D.逻辑型67.将来计算机的发展趋势将表现在以下几个方面:______。A.多极化B.网络化C.多媒体D.智能化68.演示文稿发布到Web服务器必须具备______条件。A.演示文稿按HTML格式保存B.有FTP服务器的支持C.具有访问权限D.必须打包69.幻灯片的放映方式有______。A.演讲者放映B.观众自行浏览C.在后台浏览D.在展台浏览70.可能引发下一次计算机技术革命的技术主要包括:______。A.纳米技术B.光技术C.量子技术D.生物技术主观题填空题(请将正确答案填入答题卡对应的题号后面。[每题1分])1.在Internet网上要在这些主机之间实现通信,每一台主机都必须有一个唯一的主机号,这个主机号常称为该主机的_______。2.输入输出型设备I/O操作的信息传输单位是______。3.有交往的进程一定______某些资源。4.在磁盘中的程序是以______的方式来存储的。5.Pentium微型机的局部总线技术普遍采用______。6.域名系统采用分层命名方式,每一层叫做一个域,每个域用______分开。7.2001年我国第一款通用CPU______芯片研制成功。8.ADSL专线接入方式中,用户可获分配固定的______,用户24小时在线。9.树型网络中,任意两个结点之间不产生______,每条通路都支持双向传输。10.光计算机的发展方向是把极细的激光束与______结合,主要解决芯片之间的数据传输问题。二级C上机模拟试题(全套)模拟试题(一)1.填空题请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2接在字符串str1的后面。例如:str1=“Howdo”,str2=“youdo?”,结果输出:Howdoyoudo?注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:}答案及评析:【1】*(p1+i) 【2】*p2 【3】*p2++【解析】填空1:变量i用来记录字符串str1的长度,当指针指到字符串str1结束标志符‘\0'时,while循环结束,变量i停止累加。填空2:指针p2指向字符串str2,通过for循环将字符串str2接在str1后面,循环结束的条件是指针p2所指的字符是字符串结束标志符‘\0'。填空3:指针p2最初指向字符串str2的首字符,通过自加1,使指针p2依次向后移动,指向str2的各个字符,实现将字符串str2接在str1后面的功能。2.改错题下列给定程序中,函数fun()的作用是:将字符串tt中的小写字母都改为对应的大写字母,其他字符不变。例如,若输入"edS,dAd",则输出"EDS,DAD"。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>#include<string.h>#include<conio.h>/**********************found***********************/charfun(chartt[]){inti;for(i=0;tt[i];i++){/**********************found***********************/if((tt[i]>='A')&&(tt[i]<='Z'))tt[i]-=32;}return(tt);}main(){inti;chartt[81];clrscr();printf("\nPleaseenterastring:");gets(tt);printf("\nTheresultstringis:\n%s",fun(tt));}答案及评析:(1)错误:charfun(chartt[])正确:char*fun(chartt[])(2)错误:if((tt[i]>='A')&&(tt[i]<='Z'))正确:if((tt[i]>='a')&&(tt[i]<='z'))【解析】错误1:函数的返回值是字符串的首地址,是指针类型,所以在函数名前要加'*'号。错误2:题目要求将小写字母改为大写字母,所以if语句的判断条件是小写字母。3.编程题请编写函数fun(),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从p到n-1(p≤n-1)的数组元素平移到数组的前面。例如,一维数组中的原始内容为1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,p的值为6。移动后,一维数组中的内容应为7,8,9,10,10,11,12,13,14,15,1,2,3,4,5,6。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#defineN80voidfun(int*w,intp,intn){}main(){inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};inti,p,n=15;printf("Theoriginaldata:\n");for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\nEnterp:");scanf("%d",&p);fun(a,p,n);printf("\nThedataaftermoving:\n");for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");}答案及评析:voidfun(int*w,intp,intn){inti,j,t;for(i=p;i<=n-1;i++)/*循环右移n-p次*/{t=w[n-1];for(j=n-2;j>=0;j--)/*实现循环右移*/w[j+1]=w[j];w[0]=t;}}【解析】本题采用"循环右移"的算法。和我们在前面分析的稍有不同的是,一个是整型数组,一个是字符型数组。模拟试题(二)1.填空题请补充函数fun(),该函数的功能是求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数)。例如:当x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0},结果为:avg=15.030000。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:}答案及评析:【1】sum+=x[i] 【2】avg*1000 【3】(avg+5)/10【解析】填空1:通过for循环求出10个数的累加和,存于变量sum中。填空2:为了实现四舍五入保留两位小数的功能,应将平均值先扩大1000倍。填空3:将平均值加上5,再除以10,实现四舍五入的功能。2.改错题下列给定程序中,函数fun()的功能是:先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之积。请改正函数fun()中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>intfun(){inta[3][3],mul;inti,j;mul=1;for(i=0;i<3;i++){/**********************found***********************/for(i=0;j<3;j++)scanf("%d",&a[i][j]);}for(i=0;i<3;i++)/**********************found***********************/mul=mul*a[i][j];printf("Mul=%d\n",mul);}main(){fun();}答案及评析:(1)错误:for(i=0;j<3;j++)正确:for(j=0;j<3;j++)(2)错误:mul=mul*a[i][j];正确:mul=mul*a[i][i];【解析】错误1:循环结构中,要给变量j赋初值0。错误2:主对角元素的行号和列号相等,所以参加乘法的是a[i][i],而不是a[i][j]。3.编程题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把分数最低的学生数据放在h所指的数组中。注意:分数低的学生可能不只一个,函数返回分数最低学生的人数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#defineN16typedefstruct{charnum[10];ints;}STREC;intfun(STREC*a,STREC*b){}main(){STRECs[N]={{"GA005",82},{"GA003",75},{"GA002",85},{"GA004",78},{"GA001",95},{"GA007",62},{"GA008",60},{"GA006",85},{"GA015",83},{"GA013",94},{"GA012",78},{"GA014",97},{"GA011",60},{"GA017",65},{"GA018",60},{"GA016",74}};STRECh[N];inti,n;FILE*out;n=fun(s,h);printf("The%dlowestscore:\n",n);for(i=0;i<n;i++)printf("%s%4d\n",h[i].num,h[i].s);/*输出最低分学生的学号和成绩*/printf("\n");out=fopen("out19.dat","w");fprintf(out,"%d\n",n);for(i=0;i<n;i++);fprintf(out,"%4d\n",h[i].s);fclose(out);}答案及评析:intfun(STREC*a,STREC*b){inti,j=0,min=a[0].s;for(i=0;i<N;i++)if(min>a[i].s)min=a[i].s;/*找出最小值*/for(i=0;i<N;i++)if(min==a[i].s)b[j++]=a[i];/*找出成绩与min相等的学生的记录,存入结构体b中*/returnj;/*返回最低成绩的学生人数*/}【解析】该程序使用循环嵌套,第1个for语句的作用是找出最小值。第2个循环的作用是找出与min相等的成绩,也即最低成绩的学生记录,并存入b中。模拟试题(三)1.填空题请补充函数fun(),该函数的功能是:从‘a’到‘z’统计一个字符串中所有字母字符各自出现的次数,结果保存在数组alf中。注意:不区分大小写,不能使用字符串库函数。例如,输入:“A=abc+5*c”,结果为:a=2,b=1,c=2。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:}答案及评析:【1】alf[i]=0 【2】*p+=32 【3】p++【解析】填空1:数组alf[26]用来存放字母字符出现的次数,在使用之前需要清零。填空2:题目要求不区分大小写,所以可以先将所有的大写字母都转换为对应的小写字母,然后一并记录出现的次数。将大写字母转换为对应的小写字母,只需将ASCII码加上32就可以了。填空3:指针p指向字符串tt,通过p自加1来移动指针,访问字符串中的所有字符。2.改错题下列给定程序中函数fun()的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。例如,当s中的数为时,t中的数为4725。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>#include<conio.h>/**********************found***********************/intfun(longs,long*t){longs1=10;*t=s%10;while(s>0){/**********************found***********************/s=s%100;*t=s%10*s1+*t;s1=s1*10;}}main(){longs,t;clrscr();printf("\nPleaseenters:");scanf("%ld",&s);fun(s,&t);printf("Theresultis:%ld\n",t);}答案及评析:(1)错误:intfun(longs,long*t)正确:voidfun(longs,long*t)(2)错误:s=s%100;正确:s=s/100;【解析】错误1:函数由指针来完成参数的传递,所以没有返回值,应定义函数的类型为void。错误2:此处要注意特殊运算符号"%"--取余和"/"--整除的区别。将一个数整除100则可得到由其百位数以上的数组成的新数字,将一个数整除100取余则可得到由十位数和个位数组成的新数。3.编程题请编写一个函数fun(),它的功能是:求出一个4×M整型二维数组中最小元素的值,并将此值返回调用函数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#defineM4#include<stdio.h>fun(inta[][M]){}main(){intarr[4][M]={11,3,9,35,42,-4,24,32,6,48,-32,7,23,34,12,-7};printf("min=%d\n",fun(arr));}答案及评析:fun(inta[][M]){inti,j,min=a[0][0];for(i=0;i<4;i++)for(j=0;j<M;j++)if(min>a[i][j])min=a[i][j];/*求出二维数组的最小值*/returnmin;}【解析】此类求最大值或最小值的C语言问题,我们可以采用逐个比较的方式。要求数组中的所有元素走动一遍,并从中找出最大、最小值,要注意一开始应使min存放数组中的第一个元素的值。可按逐行查找也可按逐列查找的方式,本题采用的是逐行查找的方式。即行下标在外层循环,列下标在内层循环,因为在循环的嵌套中越在内层循环,循环变化就越快。模拟试题(四)1.填空题请补充函数fun(),该函数的功能是:分类统计一个字符串中元音字母和其他字符的个数(不区分大小写)。例如,输入aeiouAOUpqrt,结果为A:2E:1I:1O:2U:2other:4。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:}答案及评析:【1】bb[i]=0 【2】bb[5]++ 【3】p++;【解析】填空1:数组bb[6]用来存放5个元音字母和其他字符的个数,在使用之前需要清零。填空2:数组元素bb[5]用来存放其他字符的个数,当指针p所指的字符不是元音字母时,则认为是其他字符,bb[5]加1。填空3:指针p指向字符串str,通过p自加1来移动指针,访问字符串中的所有字符。2.改错题下列给定的程序中,函数fun()的功能是:计算并输出k以内最大的6个能被7或11整除的自然数之和。K的值由主函数传入,若k的值为500,则函数的值为2925。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>#include<conio.h>intfun(intk){intm=0,mc=0,j;/**********************found***********************/while(k>=2)&&(mc<6){/**********************found***********************/if((k%7=0)||(k%11=0)){/**********************found***********************/m=k;mc++;}k--;}returnm;}main(){clrscr();printf("%d\n",fun(500));}答案及评析:(1)错误:while(k>=2)&&(mc<6)正确:while((k>=2)&&(mc<6))(2)错误:if((k%7=0)||(k%11=0))正确:if((k%7==0)||(k%11==0))(3)错误:m=k;正确:m=m+k;【解析】错误1:C语言规定while语句后的表达式两侧必须要有圆括号。错误2:if语句的判断条件应用关系运算符,而不是赋值运算符。错误3:根据题意,将满足条件的数求累加和。3.编程题请编写一个函数fun(),它的功能是:将ss所指字符串中所有下标为偶数位置的字母转换为小写(若该位置上不是字母,则不转换)。例如,若输入ABC4efG,则应输出aBc4efg。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*ss){}main(){chartt[81];clrscr();printf("\nPleaseenteranstringwithin80characters:\n");gets(tt);printf("\n\nAfterchanging,thestring\n\%s",tt);fun(tt);printf("\nbecomes\n\%s\n",tt);}答案及评析:voidfun(char*ss){inti;for(i=0;ss[i]!='\0';i++)/*将ss所指字符串中所有下标为偶数位置的字母转换为小写*/if(i%2==0&&ss[i]>='A'&&ss[i]<='Z')ss[i]=ss[i]+32;}【解析】从C语言的学习中我们知道,只要将小写字母减去32则转成大写字母,将大写字母加上32则转成小写字母。该程序是用if语句实现该功能转化的。模拟试题(五)1.填空题str是全部由小写字母字符和空格字符组成的字符串,由num传入字符串的长度。请补充函数fun(),该函数的功能是:统计字符串str中的单词个数,结果由变量num传回。每个单词之间都由空格隔开,并且字符串str开始不存在空格。例如:str=“howdoyoudo”,结果为:num=4。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:}答案及评析:【1】i<*num 【2】n++ 【3】*num=n【解析】填空1:*num传入字符串的长度,所以for循环中变量i的变化范围是从0到*num-1。填空2:如果当前判断的字符是小写字母,并且它的下一个字符是空格或者是字符串结束标记符,则表示当前字符是一个单词的最后一个字母,统计单词数的变量n要加上1。填空3:题目要求结果由变量num传回,所以要将n的值赋给指针num所指的单元。2.改错题下列给定程序中,fun()函数的功能是:根据形参m,计算下列公式的值。t=1-1/2+1/3-1/4+…+(-1)(m+1)/m例如,若输入5,则应输出0.783333。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<conio.h>#include<stdio.h>/**********************found***********************/intfun(intm){doublet=1.0,j=1.0;inti;/**********************found***********************/for(i=1;i<m;i++){j=-1*j;t+=j/i;}returnt;}main(){intm;clrscr();printf("\nPleaseenter1integernumber:");scanf("%d",&m);printf("\nTheresultis%lf\n",fun(m));}答案及评析:(1)错误:intfun(intm)正确:doublefun(intm)(2)错误:for(i=1;i<m;i++)正确:for(i=2;i<=m;i++)【解析】错误:函数的返回值为实型数,所以应定义为double类型。错误2:根据题目的公式,参加运算的数应从2到m,包括m。3.编程题请编写函数fun(),它的功能是:求出1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>voidfun(int*a,int*n){}main(){intaa[1000],n,k;clrscr();fun(aa,&n);for(k=0;k<n;k++)if((k+1)%10==0){printf("%5d",aa[k]);printf("\n");/*一行写10个数*/}elseprintf("%5d",aa[k]);}答案及评析:voidfun(int*a,int*n){inti,j=0;for(i=1;i<=1000;i++)/*求1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数,并放入数组a中*/if((i%5==0||i%13==0)&&i%65!=0)a[j++]=i;*n=j;/*传回满足条件的数的个数*/}【解析】注意本题题目是找出能被5或13整除但不能同时被5和13整除的所有整数。能同时被5和13整除的整数一定能被65整除,且不能被65整除的数不一定就是能被5或13整除的数。所以可得出程序中的if()。按运算优先级可知(i%5==0||i%13==0),注意,两边必须要有小括号。模拟试题(六)1.填空题str是一个由数字和字母字符组成的字符串,由变量num传入字符串长度。请补充函数fun(),该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。例如:str=“Bcd123e456hui890”,结果为:123456890。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:}答案及评析:【1】s[i]>=′0′&&s[i]<=′9′ 【2】s[i]-′0′ 【3】n【解析】填空1:如果当前字符的ASCII码大于字符′0′的ASCII码,而小于字符′9′的ASCII码,则说明当前字符是数字字符。填空2:将数字字符转换为数字的方法是,用当前数字字符的ASCII码减去字符′0′的ASCII码。填空3:题目要求函数返回数组bb的长度,而变量n记录了数字字符的个数,也就是数组bb的长度,所以函数应该返回n。2.改错题下列给定程序中,函数fun()的功能是:从n个学生的成绩中统计出高于平均分的学生人数,人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:8565.56995.5875562.575则高于平均分的学生人数为4(平均分为74.312500)。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>#include<conio.h>#defineN20intfun(float*s,intn,float*aver){/**********************found***********************/intave,t=0;intcount=0,k,i;for(k=0;k<n;k++)t+=s[k];ave=t/n;for(i=0;i<n;i++)/**********************found***********************/if(s[i]<ave)count++;/**********************found***********************/aver=ave;returncount;}main(){floats[30],aver;intm,i;clrscr();printf("\nPleaseenterm:");scanf("%d",&m);printf("\nPleaseenter%dmark:\n",m);for(i=0;i<m;i++)scanf("%f",s+i);printf("\nThenumberofstudents:%d\n",fun(s,m,&aver));printf("Ave=%f\n",aver);}答案及评析:(1)错误:intave,t=0;正确:floatave,t=0.0;(2)错误:if(s[i]<ave)正确:if(s[i]>ave)(3)错误:aver=ave;正确:*aver=ave;【解析】错误1:ave和t分别用来存放成绩的平均值和总分,应为实型数。错误2:根据题意,找出高于平均分的数,所以此处的关系运算符应为">"错误3:aver是指针,而ave是一个数,不能将一个数赋值给一个指针,而要用符号'*'。3.编程题请编写一个函数fun(),它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较短的字符串。若两个字符串长度相等,则返回第1个字符串。例如,输入nanjing<CR>nanchang<CR>(<CR>为回车键),函数将返回nanjing。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>char*fun(char*s,char*t){}main(){chara[20],b[10],*p,*q;inti;printf("Input1thstring:");gets(a);printf("Input2thstring:");gets(b);printf("%s",fun(a,b));}答案及评析:char*fun(char*s,char*t){inti,j;for(i=0;s[i]!='\0';i++);/*求字符串的长度*/for(j=0;t[j]!='\0';j++);if(i<=j)/*比较两个字符串的长度*/returns;/*函数返回较短的字符串,若两个字符串长度相等,则返回第1个字符串*/elsereturnt;}【解析】本题中,第1个for循环的作用是求出s的字符个数i,第2个for循环的作用是求出t的字符个数j,因为任何循环都要控制一条语句,所以在每一个for循环条件后面必须要有一个分号。本题也可用如下技巧:#include<string.h>/*一定要注意在最前面加#include<string.h>*/char*fun(char*s,char*t){if(strlen(s)>=strlen(t)returns;elsereturnt;}模拟试题(七)1.填空题从键盘输入一组无符号整数并保存在数组xx[N]中,以整数0结束输入,要求这些数的最大位数不超过4位,其元素的个。例如:当xx[8]={123,11,25,222,42,333,14,5451}时,bb[4]={25,42,333,5451}。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:}答案及评析:【1】xx[i]%10 【2】bb[n++]=xx[i] 【3】n【解析】填空1:将一个整数对10取余,则得到这个整数的个位数,将一个整数除以10再对10取余,则得到这个整数的十位数。由程序可以看出,变量s保存了整数的十位数,所以应该将整数的个位数保存于变量g中。填空2:当整数的个位与十位的数字之和大于5时,则将这个整数存于数组bb中,同时,变量n记录了满足条件的无符号整数的个数。填空3:题目要求满足条件的无符号整数的个数由fun函数返回,所以函数返回n。2.改错题下列给定程序中,函数fun()的功能是:在字符串str中找出ASCⅡ码值最小的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。例如,调用fun()函数之前给字符串输入fagAgBDh,调用后字符串中的内容为AfaggBDh。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>/**********************found***********************/voidfun(charp){charmin,*q;inti=0;min=p[i];while(p[i]!=0){if(min>p[i]){/**********************found***********************/p=q+i; min=p[i];}i++;}while(q>p){*q=*(q-1);q--;}p[0]=min;}main(){charstr[80];printf("Enterastring:");gets(str);printf("\nTheoriginalstring:");puts(str);fun(str);printf("\nThestringaftermoving:");puts(str);printf("\n\n");}答案及评析:(1)错误:voidfun(charp)正确:voidfun(char*p)(2)错误:p=q+i;正确:q=p+i;【解析】错误:由于本题中函数的功能是对字符串进行处理,而不是对单个字符进行处理,因此,函数的参数应为字符串指针。错误2:使指针q指向ASCII码最小的字符本题解答需要3个步骤:(1)找到字符串中ASCII码值最小的字符,并保存。(2)将该字符复制,并将该字符前面的字符串顺次后移。(3)将ASCII码值最小的字符赋给字符串的第1个字符。找到ASCII码值最小的字符可以通过定义一个字符min,该字符初始时等于字符串的第1个字符,若字符串的下一个字符小于min,则将下一个字符赋给min,如此循环到字符尾,即可得到ASCII码值最小的字符,同时令指针q指向最小字符。之后对最小字符前面的子串顺次后移,可采用while语句实现。此题需要熟练掌握和灵活应用C语言的字符与整型变量的关系以及字符串操作。3.编程题N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun(),它的功能是:找出学生的最低分,由函数值返回。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#include<stdlib.h>#defineN8structslist{doubles;structslist*next;};typedefstructslistSTREC;doublefun(STREC*h){}STREC*creat(double*s){STREC*h,*p,*q;inti=0;h=p=(STREC*)malloc(sizeof(STREC));p->s=0;while(i<N)/*产生8个节点的链表,各分数存入链表中*/{q=(STREC*)malloc(sizeof(STREC));p->s=s[i];i++;p->next=q;p=q;}p->next=NULL;returnh;/*返回链表的首地址*/}outlist(STREC*h){STREC*p;p=h;printf("head");do{printf("->%2.0f",p->s);p=p->next;}/*输出各分数*/while(p!=NULL);printf("\n\n");}main(){doubles[N]={56,89,76,95,91,68,75,85},min;STREC*h;h=creat(s);outlist(h);min=fun(h);printf("min=%6.1f\n",min);}答案及评析:doublefun(STREC*h){doublemin=h->s;while(h!=NULL)/*通过循环找到最低分数*/{if(min>h->s)min=h->s;h=h->next;}returnmin;}【解析】在本题中,h为一个指向结构体的指针变量,若要引用它所指向的结构体中的某一成员时,要用指向运算符"->"。由于是链表,所以要使h逐一往后移动,使用的是h=h->next。模拟试题(八)1.填空题请补充函数fun(),该函数的功能是判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回“yes!”,否则返回“no!”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:}答案及评析:【1】n/100%10 【2】″yes!″ 【3】″no!″【解析】填空1:由程序可以知道,变量g保存了整数的个位数,变量s保存了整数的十位数,所以变量b应该保存整数的百位数。将整数除以100再对10取余,则得到这个整数的百位数。填空2:当个位数字和百位数字之和等于十位数字时,则返回″yes!″。填空3:当个位数字和百位数字之和不等于十位数字时,则返回″no!″。2.改错题下列给定的程序中,函数fun()的功能是:用选择法对数组中的n个元素按从大到小的顺序进行排序。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>#defineN20voidfun(inta[],intn){inti,j,t,p;/**********************found***********************/for(j=0;j<n-1;j++);{p=j;for(i=j;i<n;i++)if(a[i]>a[p])p=i;t=a[p];a[p]=a[j];/**********************found***********************/a[p]=t;}}main(){inta[N]={11,32,-5,2,14},i,m=5;printf("排序前的数据:");for(i=0;i<m;i++)printf("%d",a[i]);printf("\n");fun(a,m);printf("排序后的顺序:");for(i=0;i<m;i++)printf("%d",a[i]);printf("\n");}答案及评析:(1)错误:for(j=0;j<n-1;j++);正确:for(j=0;j<n-1;j++)(2)错误:a[p]=t;正确:a[j]=t;【解析】错误1:根据C语言语法,for循环中循环条件后不加分号,除非做空操作。错误2:将两数进行交换的常用语句,借助第三个变量。3.编程题下列程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun(),函数的功能是:求出数组周边元素的平方和并作为函数值返回给主函数中的s。例如:若a数组中的值为a=012791112155221611197910254141则返回主程序后s的值应为310。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineN5intfun(intw[][N]){}main(){inta[N][N]={0,1,2,7,9,1,11,21,5,5,2,21,6,11,1,9,7,9,10,2,5,4,1,4,1};inti,j;ints;clrscr();printf("*****Thearray*****\n");for(i=0;i<N;i++){for(j=0;j<N;j++){printf("%4d",a[i][j]);}printf("\n");}s=fun(a);printf("*****THERESULT*****\n");printf("Thesumis:%d\n",s);}答案及评析:intfun(intw[][N]){inti,j,k=0;ints=0;for(i=0;i<N;i++)for(j=0;j<N;j++)if(i==0||i==N-1||j==0||j==N-1)/*只要下标中有一个为0或N-1,则它一定是周边元素*/{s=s+w[i][j]*w[i][j];/*将周边元素求平方和*/}returns;/*返回周边元素的平方和*/}【解析】该题采用逐一判断的方式,周边元素的下标一定有一个是0或N-1,且只要下标中有一个为0或N-1,则它一定是周边元素。模拟试题(九)1.填空题请补充main函数,该函数的功能是:从一个字符串中截取前面若干个给定长度的子字符串。其中,str1指向原字符串,截取后的字符存放在str2所指的字符数组中,n中存放需截取的字符个数。例如:当str1=“cdefghij”,然后输入4,则str2=“cdef”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:}答案及评析:【1】″%d″,&n 【2】str2[i]=str1[i]; 【3】str2【解析】填空1:本题考查对标准输入函数scanf()的调用格式,由后面的程序可以知道,变量n保存了要截取的字符数,注意在n前面不要忘了取址符‘&'。填空2:截取前n个字符,就是将字符串str1的前n个字符依次赋给字符串str2的前n个字符。填空3:本题考查对标准输出函数printf()的调用格式,根据题意,应输出截取后的字符串,即字符串str2。2.改错题下列给定程序中,函数fun()的功能是:依次取出字符串中所有的字母,形成新的字符串,并取代原字符串。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>#include<conio.h>voidfun(char*s){inti,j;for(i=0,j=0;s[i]!='\0';i++)/**********************found***********************/if((s[i]>='A'&&s[i]<='Z')&&(s[i]>='a'&&s[i]<='z'))s[j++]=s[i];/**********************found***********************/s[j]="\0";}main(){charitem[80];clrscr();printf("\nEnterastring:");gets(item);printf("\n\nThestringis:\%s\n",item);fun(item);printf("\n\nThestringofchangingis:\%s\n",item);}答案及评析:(1)错误:if((s[i]>='A'&&s[i]<='Z')&&(s[i]>='a'&&s[i]<='z'))正确:if((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z'))(2)错误:s[j]="\0";正确:s[j]='\0';【解析】错误1:字母包括小写字母和大写字母,这里是"或"的关系,所以用"||"运算符。错误2:字符串的结束标志符为字符,而不是字符串。3.编程题下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N]),该函数的功能是:使数组右上半三角元素中的值全部置成0。例如a数组中的值为a=456179326,则返回主程序后a数组中的值应为000100320注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>#defineN5intfun(inta[][N]){}main(){inta[N][N],i,j;clrscr();printf("*****Thearray*****\n");for(i=0;i<N;i++)/*产生一个随机的5*5矩阵*/{for(j=0;j<N;j++){a[i][j]=rand()%10;printf("%4d",a[i][j]);}printf("\n");}fun(a);printf("THERESULT\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4d",a[i][j]);printf("\n");}}答案及评析:intfun(inta[][N]){inti,j;for(i=0;i<N;i++)for(j=i;j<N;j++)a[i][j]=0;/*将数组右上半三角元素中的值全部置成0*/}【解析】本题旨在考查控制数组中右上半三角元素的算法,也就是两个千篇一律的循环语句,希望学习者能够掌握消化。模拟试题(十)1.填空题请补充main函数,该函数的功能是:从键盘输入一个字符串并保存在字符str1中,把字符串str1中下标为偶数的字符保存在字符串str2中并输出。例如,当str1=“cdefghij”,则str2=“cegi”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:}答案及评析:【1】″%s″,str1 【2】%c 【3】str2【解析】填空1:本题考查对标准输入函数scanf()的调用格式,当输入字符串时,格式控制字符串为″%s″,题目要求输入的字符串保存在str1中,所以地址表列应为字符串的首地址,即为str1。填空2:本题考查对标准输出函数printf()的调用格式,当输出为字符型变量时,格式控制字符串为″%c″。填空3:题目要求将str1中下标为偶数的字符保存在字符串str2中并输出,所以printf()函数的输出表列是str22.改错题在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun()的功能是计算数组元素中值为负数的平均值(不包括0)。例如:数组中元素的值依次为43,-47,-21,53,-8,12,0,则程序的运行结果为-25.333333。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<conio.h>#include<stdio.h>doublefun(intx[]){doublesum=0.0;intc=0,i=0;/**********************found***********************/while(x[i]==0){if(x[i]<0){sum=sum+x[i];c++;}i++;}/**********************found***********************/sum=sum\c;returnsum;}main(){intx[1000];inti=0;clrscr();printf("\nPleaseentersomedata(endwith0):");do{scanf("%d",&x[i]);}while(x[i++]!=0);printf("%f\n",fun(x));}答案及评析:(1)错误:while(x[i]==0)正确:while(x[i]!=0)(2)错误:sum=sum\c;正确:sum=sum/c;【解析】错误1:此处考查的是对循环条件的理解,当被判断的数组元素为0时,说明这是数组的最后一个元素,此时要跳出循环。错误2:C语言中的除法运算符是"/",而不是"\"。3.编程题请编写一个函数intfun(int*s,intt,int*k),用来求出数组的最小元素在数组中的下标并存放在k所指的存储单元中。例如,输入如下整数:234345753134436458100321135760则输出结果为6,100。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){}main(){inta[10]={234,345,753,134,436,458,100,321,135,760},k;clrscr();fun(a,10,&k);printf("%d,%d\n",k,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑工程3-7-混凝土工程
- 护理纠纷案例分析与经验分享
- 山西省2025-2026学年高三下学期5月模拟历史试卷(含答案)
- 锂电解工标准化能力考核试卷含答案
- 局部通风机操作工QC管理水平考核试卷含答案
- 石膏装饰板加工工岗前技能理论考核试卷含答案
- 2026年新科教版高中高一化学上册第三单元氧化还原规律应用卷含答案
- 废片白银回收工成果转化知识考核试卷含答案
- 2026年新科教版高中高二生物上册第三单元动物细胞融合技术卷含答案
- 工程机械维修工诚信品质知识考核试卷含答案
- 幼儿园流脑培训
- 2025年2月四级劳动关系协调员试题含参考答案
- 国家义务教育质量监测信息上报及抽样系统操作手册
- 财务成本管理注册会计师考试试题与参考答案(2025年)
- 导学案课件设计
- 脑卒中后肩痛的发病机制和治疗
- FOF基金从业考试资料及答案解析
- 2025年重庆市初中学业水平考试中考(会考)生物试卷(真题+答案)
- JG/T 287-2013保温装饰板外墙外保温系统材料
- 2022版27001内审检查表-
- 2025年中国民生银行校园招聘考试模拟试题及答案
评论
0/150
提交评论