printf("%4d",a[i]);
printf("\n");
getch();
}
5、将程序Ccon311.C填写完整,查找存储在结构体数组中5位学生成绩最高者的姓名和成绩。
注:
(1)在每对“/**/”之间的空白处补充程序,以完成题目的要求;
(2)不得删改程序中的“/**/”注释和其它代码;
(3)源程序在考生文件夹中;务必以原文件名保存程序;
(4)Alt+Tab键,切换考试程序与TurboC;Alt+Enter键,切换TurboC窗口大小。
#include
voidmain()
{
structstudent
{
charname[10];
floatscore;
};
structstudentstu[5]={"Mary",76.1,"John",87.3,"Tom",81,"susa",87.8,"wilu",79};
inti=0,k=0;
/**//**/;
for(i=0;i<5;i++)
if(stu[i].score>max)
{max=/**//**/;
/**//**/;
}
printf("\nname:
%s,score:
%.2f",stu[k].name,stu[k].score);
getch();
}
参考答案:
#include
voidmain()
{
structstudent
{
charname[10];
floatscore;
};
structstudentstu[5]={"Mary",76.1,"John",87.3,"Tom",81,"susa",87.8,"wilu",79};
inti=0,k=0;
floatmax=0;
for(i=0;i<5;i++)
if(stu[i].score>max)
{max=stu[i].score;
k=i;
}
printf("\nname:
%s,score:
%.2f",stu[k].name,stu[k].score);
getch();
}
6、补充程序Ccon312.C,其中函数find(inta[],intx)的功能是在一组无序且不重复的数据中查找x,若有则返回x在数组中的下标,否则返回-1。
注:
(1)在每对“/**/”之间的空白处补充程序,以完成题目的要求;
(2)不得删改程序中的“/**/”注释和其它代码;
(3)源程序在考生文件夹中;务必以原文件名保存程序;
(4)Alt+Tab键,切换考试程序与TurboC;Alt+Enter键,切换TurboC窗口大小。
#include
/**//**/N10
intfind(inta[],intx)
{
inti;
for(/**//**/;i{if(a[i]==x)
return(i);
}
return(/**//**/);
}
voidmain()
{
inta[N]={21,56,-9,0,3,17,18,5,-23,11};
intf,f_at;
printf("Inputanumbertobesearched:
");
scanf("%d",&f);
f_at=find(a,f);
if(f_at>=0)
printf("%disfound,it'sat%d\n",f,f_at);
else
printf("Notexist.\n");
getch();
}
参考答案:
#include
#defineN10
intfind(inta[],intx)
{
inti;
for(i=0;i{if(a[i]==x)
return(i);
}
return(-1);
}
voidmain()
{
inta[N]={21,56,-9,0,3,17,18,5,-23,11};
intf,f_at;
printf("Inputanumbertobesearched:
");
scanf("%d",&f);
f_at=find(a,f);
if(f_at>=0)
printf("%disfound,it'sat%d\n",f,f_at);
else
printf("Notexist.\n");
getch();
}
7、将程序Ccon321.C填写完整,实现从键盘输入9个整数,求出第8个数与第9个数的平均值,并输出小于该平均值的所有数。
注:
(1)在每对“/**/”之间的空白处补充程序,以完成题目的要求;
(2)不得删改程序中的“/**/”注释和其它代码;
(3)源程序在考生文件夹中;务必以原文件名保存程序;
(4)Alt+Tab键,切换考试程序与TurboC;Alt+Enter键,切换TurboC窗口大小。
#include
voidmain()
{
inti,s[9];
floataver;
printf("Pleaseinputsampler:
\n");
for(i=0;i<9;i++)
scanf("%d",&s[i]);
aver=((float)/**//**/)/2;
for(i=0;i<9;i++)
if(s[i]**//**/)
printf("%d\n",s[i]);
getch();
}
参考答案:
#include
voidmain()
{
inti,s[9];
floataver;
printf("Pleaseinputsampler:
\n");
for(i=0;i<9;i++)
scanf("%d",&s[i]);
aver=((float)(s[7]+s[8]))/2;
for(i=0;i<9;i++)
if(s[i]printf("%d\n",s[i]);
getch();
}
8、补充程序Ccon322.C,实现删除输入字符串中所有的’b’字母
如:
输入:
akcberbbnv输出:
akcernv
注:
(1)在每对“/**/”之间的空白处补充程序,以完成题目的要求;
(2)不得删改程序中的“/**/”注释和其它代码;
(3)源程序在考生文件夹中;务必以原文件名保存程序;
(4)Alt+Tab键,切换考试程序与TurboC;Alt+Enter键,切换TurboC窗口大小。
/**//**/
voidmain()
{
charstr[100];
int/**//**/;
printf("Inputstring:
");
gets(str);
for(i=j=0;str[i]!
='\0';i++)
{if(str[i]!
='b')
{str[j]=str[i];
/**//**/;
}
}
str[j]='\0';
printf("Nowstringis:
");
puts(str);
getch();
}
参考答案:
#include
voidmain()
{
charstr[100];
inti,j;
printf("Inputstring:
");
gets(str);
for(i=j=0;str[i]!
='\0';i++)
{if(str[i]!
='b')
{str[j]=str[i];
j++;
}
}
str[j]='\0';
printf("Nowstringis:
");
puts(str);
getch();
}
9、程序Ccon331.C,输出用1元、2元和5元的纸币组成10元的所有组合。
注:
(1)在每对“/**/”之间的空白处补充程序,以完成题目的要求;
(2)不得删改程序中的“/**/”注释和其它代码;
(3)源程序在考生文件夹中;务必以原文件名保存程序;
(4)Alt+Tab键,切换考试程序与TurboC;Alt+Enter键,切换TurboC窗口大小。
#include
voidmain()
{inti,j,k;
intnum=0;
printf("No.1yuan2yuan5yuan\n");
for(k=0;k<=2;k++)
for(j=0;j<=5;j++)
for(i=0;/**//**/;i++)
if(/**//**/)
{num++;
printf("%9d%9d%9d%9d\n",num,i,j,k);
}
getch();
}
参考答案:
#include
voidmain()
{inti,j,k;
intnum=0;
printf("No.1yuan2yuan5yuan\n");
for(k=0;k<=2;k++)
for(j=0;j<=5;j++)
for(i=0;i<=10;i++)
if(k*5+j*2+i==10)
{num++;
printf("%9d%9d%9d%9d\n",num,i,j,k);
}
getch();
}
10、补充程序Ccon322.C,编制某公司安排zhang、wang、zhao、li四个人轮流值班的12天值班人员表。
注:
(1)在每对“/**/”之间的空白处补充程序,以完成题目的要求;
(2)不得删改程序中的“/**/”注释和其它代码;
(3)源程序在考生文件夹中;务必以原文件名保存程序;
(4)Alt+Tab键,切换考试程序与TurboC;Alt+Enter键,切换TurboC窗口大小。
#include
voidmain()
{enumbody{zhang,wang,zhao,li};
/**//**/bodyday[12],j;
inti;
j=zhang;
for(i=0;i<12;i++)
{day[i]=j;
j++;
if(j>li)
j=/**//**/;
}
printf("List:
\n");
for(i=1;i<=12;i++)
{switch(day[i-1])
{casezhang:
printf("Day%2dis%s\n",i,"zhang");
break;
casewang:
printf("Day%2dis%s\n",i,"wang");
break;
case/**//**/:
printf("Day%2dis%s\n",i,"zhao");
break;
caseli:
printf("Day%2dis%s\n",i,"li");
}
}
getch();
}
参考答案
#include
voidmain()
{enumbody{zhang,wang,zhao,li};
bodyday[12],j;
inti;
j=zhang;
for(i=0;i<12;i++)
{day[i]=j;
j++;
if(j>li)
j=zhang;
}
printf("List:
\n");
for(i=1;i<=12;i++)
{switch(day[i-1])
{casezhang:
printf("Day%2dis%s\n",i,"zhang");
break;
casewang:
printf("Day%2dis%s\n",i,"wang");
break;
casezhao:
printf("Day%2dis%s\n",i,"zhao");
break;
caseli:
printf("Day%2dis%s\n",i,"li");
}
}
getch();
}
二、改错题
1、修改程序Cmody291.C中的错误,实现将键盘输入字符串中的‘0’~‘7’转换成比它大2的数字字符,‘8’转换成‘0’,‘9’则转换成‘1’。
如:
输入:
ab56cd89EF34GH43输出:
ab78cd01EF23GH65
注:
(1)修改程序在每对“/**/”之间存在的错误;
(2)不得删改程序中的“/**/”注释和其它代码;
(3)源程序在考生文件夹中;务必以原文件名保存程序;
(4)Alt+Tab键,切换考试程序与TurboC;Alt+Enter键,切换TurboC窗口大小。
#include
#include
voidmain()
{
chars1[100],s2[100];
inti,s_len;
printf("Pleaseinputstring:
\n");
gets(s1);
s_len=/**/s1/**/;
for(i=0;i{
if(s1[i]>='0'&&s1[i]<='7')
s2[i]=s1[i]+2;
elseif(s1[i]=='8'/**/&&/**/s1[i]=='9')
s2[i]=s1[i]-8;
else
s2[i]=s1[i];
}
/**/s2[i+1]/**/='\0';
puts(s2);
getch();
}
参考答案:
#include
#include
voidmain()
{
chars1[100],s2[100];
inti,s_len;
printf("Pleaseinputstring:
\n");
gets(s1);
s_len=strlen(s1);
for(i=0;i{
if(s1[i]>='0'&&s1[i]<='7')
s2[i]=s1[i]+2;
elseif(s1[i]=='8'||s1[i]=='9')
s2[i]=s1[i]-8;
else
s2[i]=s1[i];
}
s2[i]='\0';
puts(s2);
getch();
}
2、修改程序Cmody292.C,其中的函数fun()将字符串表示的八进制数转换成对应的十进制数,并返回转换结果。
如:
输入字符串:
325
输出结果:
213
注:
(1)修改程序在每对“/**/”之间存在的错误;
(2)不得删改程序中的“/**/”注释和其它代码;
(3)源程序在考生文件夹中;务必以原文件名保存程序;
(4)Alt+Tab键,切换考试程序与TurboC;Alt+Enter键,切换TurboC窗口大小。
#include
intfun(/**/charp/**/)
{intx;
/**/x=1;/**/
while(*p)
{x=x*8+*p-'