2015年计算机二级C语言上机操作题及答案(79)
发布时间:2011/7/22 10:14:37 来源:城市学习网 编辑:ziteng
第一题
请输入fun函数,该函数的功能是把数组aa中的偶数元素按原来的先后顺序放在原数组后面。
例如,输入“45,55,62,42,35,52,78,95,66,73”,则结果输出“45,55,35,95,73,62,42,52,78,66”。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所写的若干表达式或语句。#include
#define N 10
void fun(int aa[])
{
int i, j = 0, k = 0;
int bb[N];
for (i=0; i if (___1___)
bb[k++] = aa[i];
else
aa[j++] = aa[i];
for (i=0; ___2___; i++, j++)
aa[j] = bb[i];
}
main()
{
int i;
int aa[N] = {45, 55, 62, 42, 35, 52, 78, 95, 66, 73};
printf("\n******** original list ***********\n");
for (i=0; i printf("M", aa[i]);
fun(aa);
printf("\n******** new list ***********\n");
for (i=0; i printf("M", aa[i]);
}
第一题答案:
第1处填空:aa[i]%2==0或0==aa[i]%2或aa[i]%2
第2处填空:ii [NextPage] 第二题
下列给定程序中函数fun的功能是:删除字符串s中的所有空白字符(包括Tab字符、回车符)。输入字符串时用“#”结束输入。
请该正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得改动程序的结构!
#include
#include
#include
void fun(char *p)
{
int i, t;
char c[80];
for (i=0, t=0; p[i]; i++)
if (!isspace(*(p+i)))
c[t++] = p[i];
/********found********/
c[t] = "\0";
strcpy(p, c);
}
main()
{
char c, s[80];
int i = 0;
printf("Input a string: ");
c = getchar();
while (c != '#')
{
s[i] = c;
i++;
c = getchar();
}
s[i] = '\0';
fun(s);
puts(s);
}
第二题答案:
第1处:c[t]=”\0”;应改为c[t]=’\0’; [NextPage] 第三题
已知学生的记录有学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函数。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
#include
#define N 10
typedef struct ss
{
char num[10];
int s;
} STU;
void fun( STU a[], STU *s)
{
}
main()
{
STU a[N]={ {"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},
{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71} }, m ;
int i;
FILE *out;
printf("**** The original data *****\n");
for(i=0;i printf("N0=%s Mark=%d\n", a[i].num,a[i].s);
fun( a,&m);
printf("***** THE RESULT *****\n");
printf(" The lowest : %s ,%d\n", m.num, m.s);
out=fopen ("out.dat", "w");
fprintf(out, "%s\n%d", m.num, m.s);
fclose (out );
}
第三题答案:
void fun(STU a[],STU*s)
{
int i,min;
min=a[0].s;
for(i=0;iif(a[i].s{
min=a[i].s;
*s=a[i];
}
}