机试样卷一
一、程序调试题(40分)
磁盘上有一个 C 程序文件 test1-1.c,其作用是:输入 10 个整数,将其中最小的数与第
一个数对换,把最大的数与最后一个数对换。调试程序,可以增加和修改程序行,但不得
删除程序中的整行。注意:在一处增加的程序行不得超过两行。
#define N 10
main()
{
int number[N];
input(number);
max_min_value();
output(number);
}
input(number)
{
int i;
printf("Please input 10 number:\n");
for (i=0;i<N;i++)
scanf("%d",&number[i]);
}
max_min_value (array)
int array[N];
{
int *max, *min;
int *p, *array_end;
array_end=array+10;
max=min=array;
for (p=array+1;p<array_end;)
if (*p>*max) *max=*p;
else if (*p<*min) *min=*p;
*p=array[0];
array[min-array]=*p;
*p=array[9];
array[max-array]=*p;
return;
}
output(array)
int array[10];
{
int *p;
printf("Result is: ");
for(p=array;p<array+10;)
printf("%d ", *p++);
}
二、编写程序(程序文件名为test1-2.c)(60分)
从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,输出到磁盘文件
“ test1-2.txt”中保存。然后再将文件 test1-2.txt 中的内容读出并显示在屏幕上。请编写程
序。
要求:自定义函数 convert(),用于实现小写字母转换成大写字母。在主函数中进行文
件的打开和写入,输入字符串,调用函数 convert()和显示转换后的字符串。
样卷二
一、程序调试题(40分)
磁盘上有一个 C 程序文件 test2-1.c,其作用是:将 3 人的姓名和年龄存在结构数组中,
在程序中输出 3 人中年龄居中者的姓名和年龄。调试该程序,可以增加和修改程序行,但
不得删除程序中的整行。注意:在一处增加的程序行不得超过两行。
static struct man
{
char name[20];
int age;
} person[]={"li_ming",18,
"wang_hua",19,
"zhang_ping",20;
};
main()
{ int i,j,max,min;
for(i=1,i<3,i++)
if(person[i].age>max)
max=
else if(person[i].age<min)
min=
for(i=0;i<3;i++)
if(person[i].age!=max||person[i].age!=min)
{ printf("%d %d\n",person[i].name,person[i].age);
break;
}
}
二、编写程序(程序文件名为test2-2.c)(60分)
主函数从命令行读入一个文件名,然后调用函数 getline 从文件中读入一个字符串放到
字符数组 str 中(字符个数最多为 100 个) 。函数返回字符串的长度。在主函数中输出字符
串及其长度。请编写程序。
样卷三
一、程序调试题(40分)
磁盘上有一文件 test3-1.c,程序的功能是将字符串 b 复制到字符串 a 之后。请改正程序
中的错误,使其能得到正确的结果。
注意:不能修改主函数,不得删除行,一处只能增加一行,不得改变程序的结构。
#include "stdio.h"
main()
{ char a[]="I am a boy.";
char b="We are student.";
int i,j;
while(a[i]!='\0') i++;
for( j++;*(b+j)!='\0';i++,j++)
a[i]=b+j;
printf("Now!\nstring a is: %s\n",a[i]);
printf("string b is:");
for(i=0;b[i]!='\0';i++)
printf("%c",b);
printf("\n");
}
二、编写程序(程序文件名为test3-2.c)(60分)
设文件 test3-2.in 中存放了一组整数。分别统计并输出文件中正整数、零和负整数的个
数,将统计结果显示在屏幕上,同时输出到文件 test3-2.out 中。请编写程序。
要求:两个文件名 test3-2.in 和 test3-2.out 均由命令行输入。