2019年计算机二级《C语言》考前提分试题及答案3 下载本文

内容发布更新时间 : 2024/5/20 12:38:16星期一 下面是文章的全部内容请认真阅读。

2019年计算机二级《C语言》考前提分试题及答案3

二、程序填空题(共18分)、

下列给定程序中,函数flm的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。

例如,s所指的字符串为“def35adh3kjsdt7”,执行后结果为“defadhajsdt3537”。

请在程序的下划线处填入准确的内容并将下划线删除,使程序得出准确的结果。注意:部分源程序在文件BLANKl.c中。 不得增行或删行,也不得更改程序的结构! 三、程序修改题(共l8分)

下列给定程序中函数fun的功能是:用冒泡法对6个字符串实行升序排列。请改正程序中的错误,使它能得出准确的结果。

注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!

四、程序设计题(共24分)

编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符为l,则输出3。 注意:部分源程序在文件PROCl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填人你编写的若干语句。 二、程序填空题 【参考答案】

(1)j++或j+=1或++j或j=j+1 (2)s[i]=t1[i](3)j 【考点分析】

本题考查:指针型变量;数组变量赋值;for循环语句。 【解题思路】

填空1:根据函致fun中的内容可知,数组t1存储了s中的非数字字符,数组口存储了s中的数字字符,为了存储下一个数字字符,下标j要实行加1操作。

填空2:将S串中的数字与非数字字符分开后,要先将非数字字符放入字符串s中,所以填入s[i]=t1[i]。

填空3:最后将敦字字符加到s串之后,并且i要小于数字的个数j。 三、程序修改题 【参考答案】

(1)fh(j=i+1;j&1t;6;j++) (2)*(pstr+i)=}(pstr+j); 【考点分析】

本题考查:冒泡排序算法;for循环语句格式;指针数组。 【解题思路】

(1)此处考查for语句的格式,各表达式之间应用“;”隔开。 (2)此处考查用指针表示数组元素的方法,}(pstr+I)表示pstr所指向数组的第1个元素,同理}(pstr+j)表示pstr所指向数组的第j个元素。

【解题宝典】

冒泡排序算法,其基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否准确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了位置;处理二遍之后,“次轻”的元素就浮到了次高位置。依次类推,完成排序。

用代码实现数组s[N]的升序排列为:for(i=0;i&1t;N;i++) for(j=i十1;j&1t;N;j++)

if(s[i]>s[j]){t-s[i];s[i]=s[j]s[j]=t;} 四、程序设计题 【参考答案】

int fun(char*ss,char c) inti=0;

for(;*ss!=’\0‘;ss++)if(}ss==c i++/*求出*所指字符串中指定字符的个数*/ return i; 【考点分析】

本题考查:for循环语句遍历字符串,并通过if条件语句,判断字符串是否结束。 【解题思路】