24次机试试题文档格式.docx
- 文档编号:4856239
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:16
- 大小:18.85KB
24次机试试题文档格式.docx
《24次机试试题文档格式.docx》由会员分享,可在线阅读,更多相关《24次机试试题文档格式.docx(16页珍藏版)》请在冰点文库上搜索。
二、编写程序(程序文件名取为test1-2.c)(60分)
请用函数调用方式编写程序,要求:
1、写一found函数,功能是:
找出1至99之间的全部同构数,入入数组a中,并返回同构数的个数n。
(若一个数出现在自己的平方数的右边就称为同构数,例如:
5的平方数是25,且5出现在25的右边,5是同构数;
又如25出现在625的右边,也是同构数。
2、在main函数中调用found函数,将满足条件的所有同构数输出到屏幕和文件test1-2.dat中,一行输出5个,将同构数的个数出输出到屏幕和文件test1-2.dat中。
(第二套)
一、程序调试题(文件名test2-1.c)(40分)
磁盘上有一个名为test2-1.c的C程序文件,其功能是:
统计一个无符号整数各位数值为零的个数,并把该无符号整数各位上最大的数值作为函数值返回。
例如:
若输入无符号整数30800,则数字值为零的个数为3,各位上数值最大的是8。
请改正程序中的错误,使其能输出正确结果。
intfun(unsignedn,intzero)
{
intcount=0,max=0,t;
do
{t=n/10;
if(t=0)
count++;
if(max<
t)
max=t;
n=n%10;
}while(n);
zero=count;
returnmax;
main()
{unsignedn;
intzero,max;
\nInputn:
"
);
scanf("
%d"
&
n);
max=fun(n,&
zero);
\nTheresult:
max=%d,zero=%d\n"
max,zero);
二、编写程序(程序文件名取为test2-2.c)(60分)
磁盘上有一数据文件test2-2.dat,文件中的数据依次由:
准考证号、笔试成绩、上机成绩三项组成,中间由空格分开。
编程统计获得优秀(笔试成绩和上机成绩均大于等于90分的考生为优秀)的考生人数,以及优秀率(即优秀考生在总人数中占的百分比),并将获得优秀的考生信息(准考证号、笔试成绩、上机成绩),考生总人数,获得优秀的考生人数和优秀率输出到屏幕上同时写入到文件test2-2.out中。
(第三套)
一、程序调试题(文件名test3-1.c)(40分)
磁盘上有一个名为test3-1.c的C程序文件,其功能是:
从键盘输入一个字符串,将字符串中的所有字母改写成该字母在字母表的下一个字母,字母z改写成字母a。
要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。
最后将其结果输出到屏幕上。
不得增行或删行,也不得更改程序的结构
#defineN81
voidfun1(chars)
while(*s)
if(*s='
z'
||*s='
Z'
)
{*s-=26;
s++;
elseif(*s>
='
a'
&
*s<
y'
*s>
A'
Y'
{*s+=1;
else(*s)++;
chara[N];
Enterastring:
gets(a);
puts(a);
fun1(a);
二、编写程序(程序文件名取为test3-2.c)(60分)
磁盘上有一数据文件test3-2.dat,编写程序实现:
在主函数中将test3-2.dat中的数据输入到一个3行4列的整型数组a中,调用函数covert对a进行转置运算,并将结果存放在另一个二维数组b中,最后在主函数中输出结果。
(第四套)
一、程序调试题(文件名test4-1.c)(40分)
磁盘上有一个名为test4-1.c的C程序文件,其功能是:
选出所有两位数中能被3整除且至少有一位数字是5的两位数,输出所有这样的数及其总个数。
sub(k)
inta1,a2;
a2=k%10;
a1=k-a2*10;
if((k%3==0&
a2==5)&
(k%3==0&
a1==5))
{printf("
%4d"
k);
return1;
}
elsereturn-1;
intn=0,k,m;
for(k=10;
k<
=99;
k++)
{m=sub(k);
if(m!
=-1)n=m;
printf(\nn=%4d,n);
二、编写程序(程序文件名取为test4-2.c)(60分)
已知磁盘上有的test4-2.txt文件中含有一个长度不超过80个字符的字符串,用函数调用方式编写程序。
要求实现:
1、在被调函数exchange中,将该字符串中偶数位置(从左起第1个字符为0位,视为偶数位置)上的小写字母转换成大写字母,奇数位置上的大写字母转换成小写字母。
不是英文字母的字符则不转换。
字符串student123HELLO!
转换后为StUdEnT123HeLlO!
2、在主函数中,完成字符串的读入,同时将转换后的字符串输出到屏幕。
24-1套参考答案:
{inti;
/*改为*n*/
i++)/*改为*(a+i)!
='
\0'
*/
if(*(a+i)=='
*n++;
/*改为(*n)++*/
{charstr[100];
/*改为gets(str)*/
/*改为&
count*/
评分标准:
每改对一处得8分
1.found函数编写30分:
(1)函数定义、形参书写正确(10分)
(2)函数中能正确求出同构数,并存入一维数组中,能正确返回函数值(20分)
2.main函数30分:
(1)正确定义实参一维数组,并能正确调用found函数(10分)
(2)文件打开和操作正确(10分)
(3)输出结果正确(10分)
参考程序:
#include<
intfound(inta[])
intn=0;
for(i=1;
100;
{if(i*i%10==i||i*i%100==i)
{a[n]=i;
returnn;
voidmain()
{inta[10];
intcount,i;
FILE*fp;
if((fp=fopen("
test1_2.dat"
"
w"
))==NULL)
Cannotopenthefile.\n"
exit(0);
count=found(a);
count;
a[i]);
fprintf(fp,"
if((i+1)%5==0)
\n"
count=%d\n"
fclose(fp);
24-2套参考答案:
intfun(unsignedn,intzero)/*改为*zero*/
/*改为n%10*/
if(t=0)/*改为t==0*/
/*改为n/10*/
/*改为*zero*/
1.文件指针定义、打开文件、关闭文件正确10分
2.读文件内容正确15分
3.统计考生总人数,获得优秀的考生人数方法正确10分
4.写入文件和屏幕输出正确15分
5.优秀率计算正确5分
6.程序结构正确5分
{FILE*in,*out;
charc1[20];
intcj1,cj2;
intn=0,m=0;
in=fopen("
test2-2.dat"
r"
out=fopen("
test2-2.out"
while(!
feof(in))
{fscanf(in,"
%s"
c1);
fscanf(in,"
&
cj1);
cj2);
if(cj1>
=90&
cj2>
=90)
%s"
cj1);
%4d\n"
cj2);
fprintf(out,"
m++;
fclose(in);
Thetotal:
%d\n"
m);
Theexcellencenumber:
n);
Theexcellencerate:
%.2f\n"
(flaot)n/(float)m*100);
fclose(out);
24-3套参考答案:
voidfun1(chars)/*改为*s*/
)/*改为*s=='
||*s=='
*/
}/*改为25*/
)/*改为||*/
/*改为s++*/
1.文件指针定义、打开文件、关闭文件正确10分2.读文件内容正确10分
3.转置运算算法正确10分4.被调函数定义以及参数传递正确15分
5.输出结果正确10分6.程序结构正确5分
covert(inta[][4],intb[][3])
{inti,j;
3;
for(j=0;
j<
4;
j++)
b[j][i]=a[i][j];
{inta[3][4],b[4][3];
inti,j;
fp=fopen("
test3-2.dat"
fscanf(fp,"
a[i][j]);
covert(a,b);
{for(j=0;
%5d"
b[i][j]);
sub(k)/*改为intk*/
{inta1,a2;
/*改为k/10*/
a1==5))/*改为||*/
{intn=0,k,m;
/*改为n++*/
printf(\nn=%4d,n);
/*改为"
\nn=%4d"
1.偶数位上的字母转换正确10分
2.基数位上的字母转换正确10分
3.其他字符不转换正确10分
4.文件打开和数据读入正确10分
5.函数调用及参数传递正确10分
6.屏幕输出正确10分
#defineN80
voidexchange(char*s)
char*s1,*s2;
s1=s;
s2=s+1;
while(*s1||*s2)
{if(*s1>
&
*s1<
{*s1-=32;
s1+=2;
else
{*s1=*s1;
if(*s2>
*s2<
{*s2+=32;
s2+=2;
{*s2=*s2;
charstr[N];
test4-2.txt"
fgets(str,N,fp);
puts("
Theoriginalstringis:
exchange(str);
Thestringafternodifiedis:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 24 试试