if(t[k]==c)
{j=k;
;
}
elsej=-1;
ifj>=0)
printf("yes")
else
printf("no");
}
56、下面程序的功能是求一个数,该数满足其个位、十位、百位每位立方和等于该数自身,例如:
371=33+73+13。
#include"stdio.h"
main()
{
inti.j,k:
for(i=1:
i<=9;i++)
for(j=0;j<=9;j++)
for(k=O;k<=9;k++)
if()
printf("%d%d%d",I,j,k);
}
57、下面程序的功能是从急务接受一行字符,分别计算其大写和小写英文字母的个数。
#include"stdio.h"
main()
{intm=0,n=O;
charc;
while()
{
if(>='A'&&c<='Z')m++;
if(c>'a'&&c<='z')n++;
}
printf("%d,%d",m,n);
}
58、下面conj函数的功能是将变量s和t中的字符串连接在一起,合成一个字符串。
include"stdio.h"
voidconj(char*s.char*t)
{char*P=s;
while(*p)
;
while(*t)
{*p=*t;
P++;
t++;
}
=*p"\0"
}
59、下列面程序的功能是输出100-200之间的不能被3整除的整数。
#include"stdio.h"
voidmain()
{intn;
for(n=100;n<=200;n++)
{if(n%3==O)
;
printf("%d",n);
}
}
60、下面程序的功能是:
有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,计算几天以后卖完。
#include"stdio.h"
main()
{intday,x1,x2;
day=0;
x1=1020:
while(x1)
{;
x1=x2;
day++;
}
printf("day=%d\n",day);
}
61、下面程序的功能是用递归方汉计算1+2+3+…+n的和。
#include"stdio.h"
intff(intn)
{if(n==1)
;
else
returnff(n-1)+n;
}
main()
{inti,j=0;
for(i=1;i<3;i++)
j=ff(i);
printf("%d",j);
}
七、程序改错题(以下每个小题都有一个错误,请在答题卡相应的位置上写出有错误语句的行号及改正后的完整语句。
每小题3分,共12分)
62、下面程序功能是找出两个字符串中对应位置相同的字符并输出。
(1)include"stdio.h"
(2)main()
(3){chara[]="language",b[]="program';
(4)char*pl,*p2;
(5)intk;
(6)p1=&a;p2=&b;
(7)for(k=0;k<=7;k++)
(8)if(*(pl+k)==*(p2=k)!
='\10')
(9)printf("%c",*(pl+k));
(10)}
错误行的行号是:
改为:
63、下面程序功能是输入一个矩阵,求矩阵转置并输出。
(1)voidmain()
(2){inta[2][3]({1,2,3},{4,5,6}),b[3][2]i.j;
(3)printf("arraya:
\n");
(4)for(i=O;i<-1;i++)
(5){for(.j=O;j<-2;j++)
(6){printf("%5d",a[i][j]);
(7)b[j][i]-a[i][j];
(8)}
(9)printf("\n");
(10)}
(11)printf{"arrayb:
\n");
(12)for(i=0;i<=1,i++)
(13){for(j=0;j<=1;j++)
(14)printf("'%5d",b[i][j];
(15)printf("\n");
(16)}
(17)}
错误行的行号是:
改为:
64、下面程序功能是输出斐波那契数列:
1、1、2、3、5、8……,每一行输出四项。
(1)#include"stdio.h"
(2)voidmain()
(3){longintfl=1;f2=1;
(4)inti;
(5)for(i=1;i<=20;i++)
(6){printf("%121d%121d",fl,f2);
(7)if(i%2==0)printf("\n");
(8)f1=f1+f2;f2=f2+f1;
(9)}
(10)}
错误行的行号是:
改为:
65、下面程序功能是输入10个数,?
?
?
?
?
?
均值。
(1)#include"stdio.h"
(2)floatMax=O,Min=O;
(3)floataverage(floatarray[],intn)
(4){inti:
floataver,sun=array[0];
(5)Max=Min=array[0];
(6)for(i=1,i(7){if(array[i]>Max)Max=array[i];
(8)elseif(array[i](9)sum=sum+array[i];
(10)}
(11)aver=sum/n;
(12)return(aver);
(13)}
(14)voidmain()
(15){floatave.score[10];
(16)inti;
(17)for(i=0;i<10,i++);
(18)scanf("%f",&score[i]);
(19)ave=average(score,10);
(20)printf("max=%6.2f\nmin=%6.2f\naverage=%6.2f\n",Max,Min,ave);
错误行的行号是:
改为:
扫描二维码立即获取答案
友情提示:
部分文档来自网络整理,供您参考!
文档可复制、编制,期待您的好评与关注!