2015年计算机二级C语言上机操作题及答案(78)
发布时间:2011/7/22 10:13:45 来源:城市学习网 编辑:ziteng
第一题
请补充fun函数,该函数的功能是:把字符的ASCII码为偶数的字符从字符串str中删除,结果仍然保存在字符串str中.字符串str从键盘输入,其长度作为参数传入fun函数.
例如,输入:”abcdef”,输出:”ace”.
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句.
#include
#define N 80
void ___1___
{
int i, j;
___2___;
for (i=0; i if (s[i]%2 != 0)
s[j++] = s[i];
___3___;
}
main()
{
int i = 0, strlen = 0;
char str[N];
printf("\nInput a string:\n");
gets(str);
while (str[i] != '\0')
{
strlen++;
i++;
}
fun(str, strlen);
printf("\n********* display string *********\n");
puts(str);
}
答案:
第1空应填:fun(char s[],int n)或fun(char*s,int n)
第2空应填:j=0
第2空应填:s[j]=’\0’或s[j]=0 [NextPage] 第2题
下列给定程序中函数fun的功能;判断一个整数m是否是素数,若是返回1,否则返回0.
在main()函数中,若fun返回1则输出YES,若fun返回0则输出NO!.
请改正程序中的错误,使它能得出正确的结果.
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
int fun(int m)
{
int k = 2;
while (k <= m&&(m%k))
/********found********/
k++
/********found********/
if (m = k)
return 1;
else
return 0;
}
main()
{
int n;
printf("\nPlease enter n:");
scanf("%d", &n);
if (fun(n))
printf("YES\n");
else
printf("NO!\n");
}
答案:
第1处应改为:k++;
第2处应改为:if(m==k); [NextPage] 第3题
请编写函数fun,其功能是:将s所指字符串中的ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中.
例如,若s所指字符串的内容为ABCDEFG12345,其中字符B的ASCII码为偶数、…、字符2的ASCII码值为偶数、…都应当删除,其他依此类推.最后t所指的数组中的内容应是ACEG135.
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句.
#include
#include
#include
void fun( char *s, char t[])
{
int i ,j=0,n=strlen(s);
for (i=0;i<=n;i++ )
if(s[i]%2!=0)
{
t[j]=s[i];
j++;
}
t[j]=’\0’;
}
main()
{
char s[100], t[100], Msg[] = "\nPlease enter string S:";
FILE *out;
printf(Msg);
scanf("%s", s);
fun(s, t);
printf("\nThe result is :%s\n", t);
out=fopen ("out.dat", "w");
fun(Msg, t);
fprintf(out, "%s", t);
fclose (out );
}
答案:
int i ,j=0,n=strlen(s);
for (i=0;i<=n;i++ )
if(s[i]%2!=0)
{
t[j]=s[i];
j++;
}
t[j]=’\0’;