21次机试试题Word格式文档下载.docx
- 文档编号:18730210
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:13
- 大小:18.83KB
21次机试试题Word格式文档下载.docx
《21次机试试题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《21次机试试题Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
"
);
gets(str[81]);
\nTheresultstringis:
\n%s"
fun(str));
二、编写程序(程序文件名取为test1-2.c)(60分)
在磁盘上的test1-2.txt文件中放有10个不小于2的正整数,用函数调用方式编写程序。
要求实现:
1.在被调函数prime中,判断和统计10个整数中的素数以及个数。
2.在主函数中将全部素数追加到磁盘文件test1-2.txt的尾部,同时输出到屏幕上。
(第二套)
一、程序调试题(文件名test2-l.c)(40分)
N个有序数数列已放在一维数组中。
下列程序中,函数fi的功能是:
利用折半查找算法查找整数m在数组中的位置,返回其下标值;
反之返回-1。
折半查找的基本算法是:
每次查找前先确定数组中待查的范围:
low和high(Iow<
high),然后把m与中间位置(mid)中元素的值进行比较。
如果m的值大于中间位置元素中的值,则下次的查找范围放在中间位置之后的元素中;
反之,下一次的查找范围在中间位置之前的元素中。
……直到low>
high,查找结束。
请改正程序中的错误,使程序能得出正确的结果。
注意:
#defineN10
voidfi(inta[],intm)
{
intlow=0,high=N,mid;
while(low<
=high)
{
mid=(low+high)/2;
if(m<
a[mid])
high=mid-1;
elseif(m>
=a[mid])
low=mid+1;
elsereturn(mid);
}
return(-1);
inti,a[N]={-3,4,7,9,13,45,67,89,100,180},k,m;
for(i=0;
i<
N;
i++)
%d"
a[i]);
Enterm:
"
scanf("
%d"
m);
k=fi(a[],m);
if(k>
0)printf("
m=%d,index=%d\n"
m,k);
elseprintf("
Notbefound!
\n"
二、编写程序(程序文件名取为test2-2.c)(60分)
(l)编写函数voidfun(inttt[M][N],intpp[N]),求出二维数组tt每列中的最小元素,并依次放人pp所指一维数组中,二维数组中的数已经在主函数中赋值。
(2)编写函数main,要求在main函数中实现:
①从文件test2-2.dat中读出3行4列的数据到tt数组中;
②调用函数fun;
③将每列中的最小元素输出到屏幕上。
(第三套)
一、程序调试题(文件名test3-1.c)(40分)
程序test3-1.c的功能是将字符串a的所有字符传送到字符串b中,要求每传送三个字符后存放一个空格,例如字符串a为"
abcdefg”,则字符串b为“abcdefg”。
请改正程序中的错误,便它能计算出正确的结果。
voidmain()
inti,k;
chara[80],b[80],*p;
p=*a;
gets(p);
while(!
*p)
{
for(i=1;
3&
&
*p!
\0'
;
p++,k++,i++)
b[k]=*p;
if(i==4){b[k]='
'
k++;
b[k]='
puts(*b);
二、编写程序(程序文件名取为test3-2.c)(60分)
请用函数调用方式编写程序,要求:
(l)写一create函数intcreate(inta[],intm),功能是:
根据形参m的值,求出1到m之间(含m)能被3或7整除的所有整数,并放人数组a中,并返回满足条件的这些数的个数。
例如:
若m=30,则满足条件的整数有13个,为:
3679121415182124272830
(2)在main函数中输入一整数m(m<
l00)并调用create函数,求出满足条件的所有整数。
(3)将满足条件的所有整数和整数个数输出到屏幕和文件test3-2.dat中。
(第四套)
一、程序调试题(文件名test4-1.c)(40分)
程序的功能是在字符串str中删除在字符变量c中出现的字符,统计被删除字符的个数,并输出删除后的新字符串和被删除的字符个数。
请改正程序中的错误,使它能运行出正确的结果。
不得增行或删行,也不得更改程序的结构。
charstr[81],c;
inti,j,n;
\nEnterastring:
\nEnteracharacter:
getchar(c);
for(i=j=0;
str[i];
i++)
if(str[i]!
=c)
str[j]=str[i];
else
n;
str[j]=;
\nSTR=%s,N=%d\n"
str,n);
getchar();
二、编写程序(程序文件名取为test4-2.c)(60分)
用函数调用方式编写程序。
(1)函数fun能将一个字符串中下标为偶数且ASCII码值为奇数的字符删除,并将剩余字符形成的新串放人另一个数组中。
例如:
当原串为ABCD223,则新串就为BD22。
(2)在main函数中输入字符串,调用fun函数,将原串和新串一起输出到屏幕上和文件test4-2.txt中。
21-1套参考答案:
一、程序调试题(文件名test1-1.c)(40分)
char*fun(charstr)/*改为*str*/
i++)/*改为str[i]*/
))/*改为&
*/
/*改为-=*/
/*改为str*/
\nPleaseenterastring:
\nTheresultstringis:
评分标准:
每改对1处得5分,结果正确得10分。
二、编写程序(程序文件取名为test1-2.c)(60分)
1.被调函数编写正确20分
2.文件打开、数据读入正确和定位正确10分
3.函数调用正确5分
4.屏幕输出和文件输出正确20分
5.程序结构合理5分
参考程序:
#include<
math.h>
intprime(inta[],intn)
{inti,j,k=0,flag=0;
n;
{for(j=2;
j<
a[i];
j++)
if(a[i]%j==0)
{flag=0;
break;
elseflag=1;
if(flag)
a[k++]=a[i];
returnk;
{intn,i,a[10];
FILE*fp;
fp=fopen("
test1-2.txt"
"
r+"
for(n=0;
n<
10;
n++)
fscanf(fp,"
&
a[n]);
n=prime(a,n);
fseek(fp,0,2);
{printf("
%5d"
fprintf(fp,"
fclose(fp);
21-2套参考答案:
一、程序调试题(文件名为test2-1.c)(40分)
#defineN10/*改为N10*/
voidfi(inta[],intm)/*改为int*/
=a[mid])/*改为m>
a[mid]*/
Enterm:
/*改为&
m*/
/*改为a*/
/*改为k>
=0*/
二、编写程序(程序文件取名为test2-2.c)(60分)
1.被调函数编写正确20分
2.文件打开、数据读入正确15分
3.函数调用正确5分
4.屏幕输出及结果正确15分
5.程序结构合理5分
#defineM3
#defineN4
voidfun(inttt[M][N],intpp[N])
{inti,j,min;
for(j=0;
{min=tt[0];
M;
if(tt[i][j]<
min)
min=tt[i][j];
pp[j]=min;
{intt[M][N];
intp[N],i,j,k;
test2-2.dat"
r"
3;
4;
t[i][j]);
Theoriginaldatais:
{for(j=0;
%6d"
t[i][j]);
fun(t,p);
\nTheresultis:
for(k=0;
k<
k++)
%4d"
p[k]);
21-3套参考答案:
一、程序调试题(test3-1.c):
/*改为k=0*/
/*改为p=a*/
*p)/*改为*p*/
p++,k++,i++)/*改为i<
=3*/
}/*改为'
'
/*改为b*/
二、编写程序(程序文件取名为test4-2.c)(60分)
2.文件打开、数据写入正确10分
3.函数调用正确10分
4.屏幕输出正确10分
5.m输入正确5分
6.程序结构合理5分
intcreate(inta[],intm)
{inti,j=0;
for(i=1;
=m;
if(i%3==0||i%7==0)
a[j++]=i;
return(j);
{inta[80],m;
inti,n;
if((fp=fopen("
test3-2.dat"
w"
))==NULL)
Can'
topenthefile.\n"
exit(0);
Inputm:
m);
n=creat(a,m);
n=%d\n"
n);
fprintf("
fp,"
21-4套参考答案:
一、程序调试题(test4-1.c):
/*改为n=0*/
\nEnterastring:
\nEnteracharacter:
/*改为c=getchar()*/
/*改为j++*/
/*改为n++*/
/*改为str[j]='
1.输入数据正确5分
2.被调函数编写正确20分
3.文件操作及数据写入正确15分
4.函数调用正确5分
5.屏幕输出及结果正确10分
voidfun(char*s,char*t)
{inti,j=0,n;
n=strlen(s);
if(!
(i%2==0&
s[i]%2!
=0))
t[j++]=s[i];
t[j]='
{chars[100],t[100];
Pleaseenterastring:
gets(s);
fun(s,t);
test4-2.txt"
%s\n%s\n"
s,t);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 21 试试
![提示](https://static.bdocx.com/images/bang_tan.gif)