23次机试试题.docx

上传人:b****3 文档编号:5390132 上传时间:2023-05-08 格式:DOCX 页数:18 大小:19.12KB
下载 相关 举报
23次机试试题.docx_第1页
第1页 / 共18页
23次机试试题.docx_第2页
第2页 / 共18页
23次机试试题.docx_第3页
第3页 / 共18页
23次机试试题.docx_第4页
第4页 / 共18页
23次机试试题.docx_第5页
第5页 / 共18页
23次机试试题.docx_第6页
第6页 / 共18页
23次机试试题.docx_第7页
第7页 / 共18页
23次机试试题.docx_第8页
第8页 / 共18页
23次机试试题.docx_第9页
第9页 / 共18页
23次机试试题.docx_第10页
第10页 / 共18页
23次机试试题.docx_第11页
第11页 / 共18页
23次机试试题.docx_第12页
第12页 / 共18页
23次机试试题.docx_第13页
第13页 / 共18页
23次机试试题.docx_第14页
第14页 / 共18页
23次机试试题.docx_第15页
第15页 / 共18页
23次机试试题.docx_第16页
第16页 / 共18页
23次机试试题.docx_第17页
第17页 / 共18页
23次机试试题.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

23次机试试题.docx

《23次机试试题.docx》由会员分享,可在线阅读,更多相关《23次机试试题.docx(18页珍藏版)》请在冰点文库上搜索。

23次机试试题.docx

23次机试试题

(第一套)

(60分钟)

一、程序调试题(文件名test1-1.c)(40分)

磁盘上有一个名为test1-1.c的C程序文件,其功能是:

输入一个字符串,将其中的每一个连续的数字序列看作一个整数,将这些整数检索出来后依次放入一个longint型数组中。

请改正程序中的错误,使程序能得出正确的结果。

注意:

不要增加或删除行,不要修改程序结构。

源程序如下:

#include

#include

main()

{

charstr[100],*p=str,help[15];

staticlongintnum[50];

inti=0,k=0,m,sign=0;

printf("\ninputthestring:

");

scanf("%s",p);

do

{if(*p>=0&&*p<=9)

{sign=1;

help[k++]=*p;

}

elseif(sign=1)

{intn=0;

while(--k>=0)

num[i]+=(help[k]-48)*((longint)pow(n++,10));

i++;

k=0;

sign=0;

}

else

p++;

}while(*(p-1)!

='\0');

for(m=0;m

printf("%d,",num[m]);

}

二、编写程序(程序文件名取为test1-2.c)(60分)

请用函数调用方式编写程序,要求能实现:

(1)在被调函数中求出1到1000之内能被7或11整除、但不能被7或11同时整除的所有整数,并把它们放到数组a中。

(2)在主函数中将符合上述条件的整数个数和所有整数输出到屏幕以及文件test1-2.dat中。

(要求每行输出10个数)

 

(第二套)

(60分钟)

一、程序调试题(文件名test2-1.c)(40分)

磁盘上有一个名为test2-1.c的C程序文件,其功能是:

求出数组中值最大的元素在数组中的下标,并将最大值增添在数组的最后。

如:

876675896101301401980431451777(原数组)

876675896101301401980431451777980(增添后的数组)

请改正程序中的错误,使程序能得出正确的结果。

注意:

不要增加或删除行,不要修改程序结构。

源程序如下:

#include

#defineN80

voidfun(int*s,int*t,intk)

{

inti,m;

*k=0;

m=*s;

for(i=1;i<(*t-1);i++)

if(m

{

m=*(s+i);

k=i;

}

s[i+1]=m;

*t++;

}

main()

{

inta[N]={876,675,896,101,301,401,980,431,451,777};

inti,n=10,mi;

fun(a[N],&n,&mi);

printf("\nTheindexofmaxis:

%d\n",mi);

printf("Theresult:

\n");

for(i=0;i

printf("%4d",&a[i]);

}

二、编写程序(程序文件名取为test2-2.c)(60分)

在三位整数(100至999)中寻找其中有两位数字相同的完全平方数,例如,144、676等,它们既是完全平方数,又有两位数字相同,将符合条件的整数依次从小到大存入数组aa中。

要求:

(1)编制函数fine()实现寻找满足条件的完全平方数,并将满足条件的完全平方数的个数通过函数fine()返回。

(2)在main()函数中把符合要求的完全平方数及个数输出到屏幕上和文件test2-2.dat中。

(第三套)

(60分钟)

一、程序调试题(文件名test3-1.c)(40分)

磁盘上有一个名为test3-1.c的C程序文件,其功能是:

实现将字符串中字母以外的其他字符去掉组成新的字符串输出。

运行结果为:

abcdEEEa

请改正程序中的错误,使程序能得出正确的结果。

注意:

不要增加或删除行,不要修改程序结构。

源程序如下:

#include

#include

voidfun(chars)

{

inti,j;

for(i=j=0;s[i];i++);

if(isalpha(s[i]))

s[j]=s[i];

s[i]='\0';

}

voidmain()

{

charstr[80]="a*b$c(d!

EEE!

!

a.";

fun(str[80]);

printf("\n");

puts(str);

}

二、编写程序(程序文件名取为test3-2.c)(60分)

编写main函数,从键盘输入任意5个4位正整数存入数组aa中,调用函数sort(),函数sort()的功能是:

按每个数后三位的大小进行升序排列,并将结果依次存入数组bb中,如果后三位的数组相等,则按4位正整数的大小进行降序排列。

例如:

输入:

6012,5099,9012,7025,8088,则输出结果为:

9012,6012,7025,8088,5099。

最后,在main()函数中把排序后的结果输出到文件test3-2.dat中。

注意:

程序中不得使用全局变量。

(第四套)

(60分钟)

一、程序调试题(文件名test4-1.c)(40分)

磁盘上有一个名为test4-1.c的C程序文件,其功能是:

从s所指向的串中,找出包含有t所指字符串的个数。

例如:

s所指向的串为abcdabfab,t所指字符串为ab,则所求个数为3。

请改正程序中的错误,使程序能输出正确的结果。

注意:

不得增行或删行,也不得更改程序的结构。

源程序如下:

#include

#include

intfun(chars,chart)

{

intn=0;

char*p,*r;

while(*s)

{

p=s;

r=t;

while(*r)

if(*r=*p)

{

r++;

p++;

}

else

continue;

if(r=='\0')

n++;

r++;

}

return*s;

}

main()

{

intm;

chars[100],t[100];

printf("\nPleaseenterstrings:

");

gets(s);

printf("\nPleaseenterstringt:

");

gets(t);

m=fun(s,t);

printf("\nTheresultis:

m=%d\n",m);

}

二、编写程序(程序文件名取为test4-2.c)(60分)

在main函数中定义一个二维数组a,从已给文件test4-2.in中读入n×n个整数到二维数组a中,其中n的大小由用户在运行程序过程中从键盘上输入(要求n<=5),调用fun函数,fun函数实现:

(1)数组主对角线上各元素的值加1。

(2)其余元素以主对角线划分,右上角各元素的值乘以3,左下角各元素的值乘以2。

最后,在主函数中将修改后的数组按n行n列的格式输出到屏幕和磁盘文件test4-2.out中。

 

23-1套参考答案:

一、程序调试题(文件名为test1-1.c)(40分)

#include

#include/*改为:

math.h*/

main()

{charstr[100],*p=str,help[15];

staticlongintnum[50];

inti=0,k=0,m,sign=0;

printf("\ninputthestring:

");

scanf("%s",p);

do

{if(*p>=0&&*p<=9)/*改为:

*p>=’0’&&*p<=’9’或*p>=48&&*p<=57*/

{sign=1;

help[k++]=*p;

}

elseif(sign=1)/*改为:

==*/

{intn=0;

while(--k>=0)

num[i]+=(help[k]-48)*((longint)pow(n++,10));/*改为:

pow(10,n++)*/

i++;

k=0;

sign=0;

}

else/*改为:

else;*/

p++;

}while(*(p-1)!

='\0');

for(m=0;m

printf("%d,",num[m]);/*改为:

%ld(即长整型格式输出)*/

}

评分标准:

每改对一处得6分,结果正确得4分

二、编程题(程序文件取名为test1-2.c)(60分)

评分标准:

1.被调函数fun编写正确20分2.文件打开和关闭正确10分

3.函数调用正确5分4.屏幕输出和文件输出正确15分

5.输出格式正确5分6.程序结构合理5分

参考程序:

#include

#defineM1000

intfun(int*a)

{intm,k=0;

for(m=1;m<=M;m++)

if((m%7==0&&m%11!

=0)||(m%7!

=0&&m%11==0))

a[k++]=m;

returnk;

}

main()

{inta[M],n,k;

FILE*fp;

clrscr();/*清屏函数*/

fp=fopen("test1-2.dat","w");

n=fun(a);

printf("%d\n",n);

fprintf(fp,"%d\n",n);

for(k=0;k

{printf("%5d",a[k]);

fprintf(fp,"%5d",a[k]);

if((k+1)%10==0)

{printf("\n");

fprintf(fp,"\n");

}

}

fclose(fp);

}

23-2套参考答案:

一、程序调试题(文件名test2-1.c)(40分)

#include

#defineN80

voidfun(int*s,int*t,intk)/*改为*k*/

{inti,m;

*k=0;

m=*s;

for(i=1;i<(*t-1);i++)

if(m

{m=*(s+i);

k=i;/*改为*k*/

}

s[i+1]=m;

*t++;/*改为(*t)++*/

}

main()

{inta[N]={876,675,896,101,301,401,980,431,451,777};

inti,n=10,mi;

fun(a[N],&n,&mi);/*改为a*/

printf("\nTheindexofmaxis:

%d\n",mi);

printf("Theresult:

\n");

for(i=0;i

printf("%4d",&a[i]);/*改为a[i]*/

}

评分标准:

每改对一处得6分,结果正确得4分

二、编程题(程序文件取名为test2-2.c)(60分)

评分标准:

1.被调函数fun编写正确20分2.文件打开和关闭正确10分

3.函数调用正确5分4.屏幕输出和文件输出正确15分

5.输出格式正确5分6.程序结构合理5分

参考程序:

#include

#defineM1000

intfun(int*a)

{intm,k=0;

for(m=1;m<=M;m++)

if((m%7==0&&m%11!

=0)||(m%7!

=0&&m%11==0))

a[k++]=m;

returnk;

}

main()

{inta[M],n,k;

FILE*fp;

clrscr();/*清屏函数*/

fp=fopen("test1-2.dat","w");

n=fun(a);

printf("%d\n",n);

fprintf(fp,"%d\n",n);

for(k=0;k

{printf("%5d",a[k]);

fprintf(fp,"%5d",a[k]);

if((k+1)%10==0)

{printf("\n");

fprintf(fp,"\n");

}

}

fclose(fp);

}

23-3套参考答案:

一、程序调试题(文件名test3-1.c)(40分)

#include

#include/*改为ctype.h*/

voidfun(chars)/*改为*s*/

{inti,j;

for(i=j=0;s[i];i++);/*改为去掉分号;*/

if(isalpha(s[i]))

s[j]=s[i];   /*改为s[j++]*/

s[i]='\0';/*改为s[j]*/

}

voidmain()

{

charstr[80]="a*b$c(d!

EEE!

!

a.";

fun(str[80]);/*改为str*/

printf("\n");

puts(str);

}

评分标准:

每改对一处得6分,结果正确得4分

二、编程题(程序文件取名为test3-2.c)(60分)

评分标准:

1.文件定义、打开、关闭正确10分2.数据讲稿和文件写入正确10分

3.函数调用正确5分4.函数定义和参数使用正确20分

5.结果正确10分6.程序结构合理5分

参考程序:

#include

voidsort(intaa[],intbb[])

{inti,j,data;

for(i=0;i<5;i++)

for(j=i+1;j<5;j++)

{if(aa[i]%1000>aa[j]%1000)

{data=aa[i];

aa[i]=aa[j];

aa[j]=data;

}

elseif(aa[i]%1000==aa[j]%1000)

if(aa[i]

{data=aa[i];

aa[i]=aa[j];

aa[j]=data;

}

}

for(i=0;i<5;i++)

bb[i]=aa[i];

}

voidmain()

{intaa[5],bb[5];

FILE*out;

inti;

printf("\npleaseinput5numbers:

");

for(i=0;i<5;i++)

scanf("%d",&aa[i]);

sort(aa,bb);

out=fopen("test3-2.dat","w");

printf("\n");

for(i=0;i<5;i++)

{printf("%5d",bb[i]);

fprintf(out,"%5d",bb[i]);

}

fclose(out);

}

23-4套参考答案:

一、程序调试题(文件名test4-1.c)(40分)

#include

#include

intfun(chars,chart)/*改为char*s,char*t*/

{intn=0;

char*p,*r;

while(*s)

{p=s;

r=t;

while(*r)

if(*r=*p)/*改为==*/

{r++;

p++;

}

elsecontinue;/*改为break*/

if(r=='\0')/*改为*r*/

n++;

r++;/*改为s++*/

}

return*s;/*改为n*/

}

main()

{intm;

chars[100],t[100];

printf("\nPleaseenterstrings:

");

gets(s);

printf("\nPleaseenterstringt:

");

gets(t);

m=fun(s,t);

printf("\nTheresultis:

m=%d\n",m);

}

评分标准:

每改对一处得6分,结果正确得4分

二、编程题(程序文件取名为test4-2.c)(60分)

评分标准:

1.被调函数编写正确20分2.函数调用正确5分

3.文件打开和关闭正确5分4.文件读、写正确15分

5.N输入和屏幕输出正确10分6.程序结构合理5分

参考程序:

#include

#defineN5

voidfun(inta[N][N],intn)

{inti,j;

for(i=j=0;i

a[i][j]=a[i][j]+1;

for(i=1;i

for(j=0;j

a[i][j]=a[i][j]*2;

for(i=0;i

for(j=i+1;j

a[i][j]=a[i][j]*3;

}

main()

{inta[N][N],i,j,n;

FILE*fp;

clrscr();

printf(“*****inputn*****\n”);

scanf(“%d”,&n);

fp=fopen("test4-2.in","r");

if(fp==NULL)

{printf("filetest4-2.innotopen");

exit(0);

}

for(i=0;i

for(j=0;j

fscanf(fp,"%d",&a[i][j]);

fclose(fp);

fun(a,n);

fp=fopen("test4-2.out","w");

if(fp==NULL)

{printf("filetest4-2.innotopen");

exit(0);

}

for(i=0;i

{for(j=0;j

{printf("%5d",a[i][j]);

fprintf(fp,"%d",a[i][j]);

}

printf("\n");

fprintf(fp,"\n");

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2