全国计算机等级考试题库二级C操作题100套(第89套)
Posted 行稳方能走远
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全国计算机等级考试题库二级C操作题100套(第89套)相关的知识,希望对你有一定的参考价值。
第89套:
给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的 长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共 有M个字符串,且串长<N。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
#include <string.h>
#define M 5
#define N 20
void fun(char (*ss)[N])
{ int i, j, k=0, n, m, len;
for(i=0; i<M; i++)
{ len=strlen(ss[i]);
if(i==0) n=len;
if(len>n) {
n=len; ___1___=i;
}
}
for(i=0; i<M; i++)
if (i!=k)
{ m=n;
len=strlen(ss[i]);
for(j=___2___; j>=0; j--)
ss[i][m--]=ss[i][j];
for(j=0; j<n-len; j++)
___3___='*';
}
}
main()
{ char ss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};
int i;
printf("\\nThe original strings are :\\n");
for(i=0; i<M; i++) printf("%s\\n",ss[i]);
printf("\\n");
fun(ss);
printf("\\nThe result:\\n");
for(i=0; i<M; i++) printf("%s\\n",ss[i]);
}
解题思路:
第一处:使用变量k来保存第几个字符串是最长的字符串,所以应填:k。
第二处:利用for循环把原字符串右移至最右边存放,字符串的长为len,所以应填:len。
第三处:左边用字符*补齐,所以应填:ss[i][j]。
给定程序MODI1.C中函数fun的功能是: 计算整数n的阶乘。请改正程序中的错误或在下划线处填上适当的内容并把下划线删除,使它能计算出正确的结果。
注意: 不要改动 main 函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include <stdio.h>
double fun(int n)
{
double result=1.0;
while (n>1 && n<170)
result*=--n;
return _____;
}
main()
{
int n;
printf("Enter an integer: ");
scanf("%d",&n);
printf("\\n\\n%d!=%lg\\n\\n",n,fun(n));
}
解题思路:
第一处:–n是先减1,n–是后减1。本题应该先乘以n,再减1,才正确。
第二处:返回计算结果,所以应填:result。
编写函数fun,函数的功能是: 从s所指的字符串中删除给定的字符。同一字母的大、小写按不同字符处理。
若程序执行时输入字符串为: turbo c and borland c++ 从键盘上输入字符:n, 则输出后变为: turbo c ad borlad c++ 如果输入的字符在字符串中不存在, 则字符串照原样输出。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入
你编写的若干语句。
给定源程序:
#include <stdio.h>
#include <string.h>
int fun(char s[],char c)
{
}
main()
{
static char str[]="turbo c and borland c++";
char ch;
printf("原始字符串:%s\\n", str);
printf("输入一个字符:");
scanf("%c",&ch);
fun(str,ch);
printf("str[]=%s\\n",str);
NONO();
}
解题思路:
本题是考察考生怎样在字符串中删除指定的字符,结果仍存放在原字符串中。给出的程序是引用字符串指针p和while循环语句以及if条件判断语句进行处理的,新字符串的位置是由i 来控制的,循环结束后,再给新字符串置字符串结束符,最后产生的新字符串形参s返回到主程序中。
参考答案:
int fun(char s[],char c)
{
char *p = s ;
int i = 0 ;
while(*p) {
if(*p != c) s[i++] = *p ;
p++ ;
}
s[i] = 0 ;
}
以上是关于全国计算机等级考试题库二级C操作题100套(第89套)的主要内容,如果未能解决你的问题,请参考以下文章