江苏省二级C上机真题2011春参考答案 下载本文

江苏省高等学校非计算机专业学生

计算机基础知识和应用能力等级考试上机试卷(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,\}