




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全国计算机等级考试二级C机试试题4一、填空题下列给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。例如,s所指的字符串为def35adh3kjsdf7,执行后结果为defadhajsdf3537。请在程序的下划线处填入正确的内容把下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include void fun(char *s) int i, j=0, k=0; char t180, t280; for(i=0; si!=0; i+) if(si=0 & si=9) /*found*/ t2j=si; _1_; else t1k+=si; t2j=0; t1k=0;/*found*/ for(i=0; ik; i+) _2_;/*found*/ for(i=0; i_3_; i+) sk+i=t2i;main() char s80=ba3a54j7sd567sdffs; printf(nThe original string is : %sn,s); fun(s); printf(nThe result is : %sn,s);二、改错题下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!#include #include #define MAXLINE 20fun ( char *pstr6) int i, j ; char *p ; for (i = 0 ; i 5 ; i+ ) /*found*/ for (j = i + 1, j 0) p = *(pstr + i) ;/*found*/ *(pstr + i) = pstr + j ; *(pstr + j) = p ; main( ) int i ; char *pstr6, str6MAXLINE ; for(i = 0; i 6 ; i+) pstri = stri ; printf( nEnter 6 string(1 string at each line): n ) ; for(i = 0 ; i 6 ; i+) scanf(%s, pstri) ; fun(pstr) ; printf(The strings after sorting:n) ; for(i = 0 ; i 6 ; i+) printf(%sn, pstri) ;三、编程题编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符为1,则输出3。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include #include #define M 81int fun(char *ss, char c)main() char aM, ch; void NONO ( ); printf(nPlease enter a string:); gets(a); printf(nPlease enter a char:); ch = getchar(); printf(nThe number of the char is: %dn, fun(a, ch); NONO ( );void NONO ( )/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ int i ; FILE *rf, *wf ; char aM, bM, ch ; rf = fopen(in.dat,r) ; wf = fopen(out.dat,w) ; for(i = 0 ; i 10 ; i+) fscanf(rf, %s, a) ; fscanf(rf, %s, b) ; ch = *b ; fprintf(wf, %c=%dn, ch, fun(a, ch) ; fclose(rf) ; fclose(wf) ;答案一、填空题【参考答案】(1)j+或j+=1或+或j=j+1(2)si=t1i(3) j【考点分析】本题考查:指针型变量;数组变量赋值;for循环语句。【解题思路】填空1:根据函数fun中的内容可知,数组t1存储了s中的非数字字符,数组t2存储了s中的数字字符,为了存储下一个数字字符,下标j要进行加1操作。填空2:将s串中的数字与非数字字符分开后,要先将非数字字符放入字符串s中,因此填入sit1i。填空3:最后将数字字符加到s串之后,并且i要小于数字的个数j。二、改错题【参考答案】(1)for (j = i + 1; j 6; j+)(2)*(pstr + i) = *(pstr + j) ;【考点分析】本题考查:冒泡排序算法;for循环语句格式;指针数组。【解题思路】(1)此处考查for语句的格式,各表达式之间应用;割开。(2)此处考查用指针表示数组元素的方法,*(pstrI)表示pstr所指向数组的第I个元素,同理*(pstrj)表示pstr所指向数组的第j个元素。【解题宝典】冒泡排序算法,其基本思想是,将待排序的元素看作是竖着排列的气泡,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个气泡序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即轻的元素在下面,就交换它们的位置。显然,处理一遍之后,最轻的元素就浮到了最高位置;处理二遍之后,次轻的元素就浮到了次高位置。依次类推,完成排序。用代码实现数组sN的升序排列为:for(i0; iN; i)for(ji1; jsj)tsi; sisjsjto;三、编程题【参考答案】int fun(char *ss, char c)int i=0; for(;*ss!=0;ss+) if(*ss=c) i+;/*求出ss所指字符串中指定字符的个数*/ return i;【考点分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于文明礼貌的演讲稿范文
- 2025年凝血因子VIII、IX项目发展计划
- 2025民航博物馆面向社会招聘应届毕业生2人考前自测高频考点模拟试题及答案详解(各地真题)
- 2025甘肃科源电力有限公司高校毕业生招聘40人考前自测高频考点模拟试题及答案详解一套
- 2025年度南阳开元学校高中部招聘教师10人模拟试卷及答案详解(名师系列)
- 2025年3月湖北东津国投集团及子公司社会招聘拟聘用人员模拟试卷附答案详解(模拟题)
- 2025年陕西国网三批招聘已发布(59人)考前自测高频考点模拟试题及答案详解(夺冠)
- 2025年广西南宁市考试招聘中小学教师笔试有关事项模拟试卷及一套答案详解
- 农村私人土地转让协议2篇
- 2025春季中国太平实习生招聘模拟试卷及答案详解(名校卷)
- 玻璃纤维增强塑料在船舶制造中的应用
- 教科版小学三年级上册科学实验报告
- 星巴克运营管理手册
- 桨板运动行业分析
- 《水的组成》说课课件
- 老年人静脉血栓栓塞症防治中国专家共识(2023版)解读
- 人教版高中物理必修一全套课件【精品】
- 非婚生育证明模板
- KTV管理章程协议
- 《海洋学》第二章 地球及海洋概观
- GB/T 2794-2022胶黏剂黏度的测定
评论
0/150
提交评论