江苏省高等学校非计算机专业学生
计算机基础知识和应用能力等级考试上机试卷(2011年春)
二级 C语言 C03
(本试卷完成时间 70分钟)
一、 改错题(16分) 【共有四处错误】
1、/* if(k*i=m) 改为:if(k*i==m) */ 2、/* sum=i+k; 改为:sum+=i+k; */
3、/* for(i=right;i<=N-1;i++) 改为:for(i=right+1;i<=N-1;i++)*/ 4、/* sum=factor(m,fac,*num); 改为:sum=factor(m,fac,&num); */
二、编程题(24分) 【程序功能】
在一个字符串中查找所有等值子串。
如果字符串内的一个子串(其长度大于1)中所有字符均相同,则称之为等值子串。 【参考源程序】 #include
int eqsub(char s[ ],char result[ ][80]) {
int i,flag=1,j=0,num=0; for(i=0;s[i]!='\\0';i++) {
if(s[i]==s[i+1])
{ result[num][j++]=s[i]; if(flag)
{ flag=0; } } else
{ result[num][j++]=s[i]; result[num][j]='\\0'; flag=1;
if(j>1) num++; j=0; } }
return num; }
void main() { FILE *fp;
char s[]=\ int n,i;
if((fp=fopen(\ { printf(\
exit(0); }
n=eqsub(s,result); printf(\ for(i=0;i {printf(\ \ fprintf(fp,\ \ } fprintf(fp,\}