2015年计算机二级C语言上机操作题及答案(91)
发布时间:2011/7/28 15:41:36 来源:城市学习网 编辑:ziteng
一、填空题
请补充fun函数,该函数的功能是:求100(不包括100)以内能被2或3整除,但不能同时被2和3整除的自然数。结果保存在数组bb中,fun函数返回数组bb元素的个数。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
#include
#define N 100
int fun(int bb[])
{
int i, j;
for (___1___; i<100; i++)
if ((i%2!=0 && i%3==0) || (i%2==0 && i%3!=0))
___2___;
___3___;
}
main()
{
int i, n;
int bb[N];
n = fun(bb);
for (i=0; i {
if (i == 0)
printf("\n");
printf("M", bb[i]);
}
}
答案:
1、i=1,j=0或j=0,i=1
2、bb[j++]=I
3、retrun j [NextPage] 二、改错题
下列给定程序中,函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排列后输出。例如,若输入edcba,则应输出abcde。
请改正程序中的错误,使它能统计出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
void fun(char t[])
{
char c;
int i, j;
/********found********/
for (i=strlen(t); i; i--)
for (j=0; j /********found********/
if (t[j] < t[j+1])
{
c = t[j];
t[j] = t[j+1];
t[j+1] = c;
}
}
main()
{
char s[81];
printf("\nPlease enter a character string: ");
gets(s);
printf("\n\nBefore sorting:\n %s ", s);
fun(s);
printf("\nAfter sorting decendingly:\n %s", s);
}
答案:
1、for(i=strlen(t); i ; i--) 应改为 for(i=strlen(t)-1; i ; i--) 或for(i=strlen(t)-1; i>0 ; i--)
2、if(t[j]t[j+1]) [NextPage] 三、编程题
请编写函数fun,起功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。
例如,当a=45,b=12,调用该函数后,c=5241。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun中的花括号中填入所编写的若干语句。
#include
#include
void fun(int a, int b, long *c)
{
}
main()
{
int a,b;
long c;
FILE *out;
printf(" Input a, b: ");
scanf("%d%d", &a,&b);
fun(a,b,&c);
printf(" The result is :%ld\n", c);
out=fopen("out.dat","w");
for (a = 0; a < 10; a++)
{
fun(a+11, a+22, &c);
fprintf(out, "%ld\n", c);
}
fclose(out);
}
答案:
void fun(int a, int b, long *c )
{
c=(a)*1000+(b)*100+(a/10)*10+b/10;
}