四川省计算机二级C语言历年考题之程序填空

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三、程序填空(每空2分,共30分)

1.下列程序实现将一个整数字符串转换为一个整数。

# include

# include

int Fun(char *str)

{ int num,digital,len;

①num=0 ;

len=strlen(str);

while(*str!=NULL)

{

digital=*str-'0';

for(int i=0;②i < len-1 ;i++)

digital*=10;

len--;

③str++ ;

num+=digital;

}

return num;

}

void main()

{ char n[80];

int number;

gets(n);

number=Fun(n);

printf("%d\n",number);

}

11~999之间的数m,它满足m,m2,m3均为回文数(所谓回文数是指其各位数字左右对称的整数)。

# include

void main()

{ int symm(long n);

long m;

for(m=11;m<1000;m++)

if(①symm(m)&&symm(m*m)&&symm(m*m*m)

)

cout<<"m="<

}

int symm(long n)

{ long i,m;

i=n; m=0;

while(②i!=0 )

{ ③m=m*10+i%10 ;

i=i/10;

}

return (m==n);

}

3.已知head指向一个单向链表,如下图:

主程序中调用add函数能求出链表中所有结点数据域的和sum并返回。

struct link

{ int data;

struct link *next;

}

int add(struct link *heak)

{ struct link *p;

int s=0;

p=①head ;

while(p)

{ s+=②p->data ;

p=③p->next ;

}

return (s);

}

void main()

{ struct link *head;

……/* 表示省掉的程序段,创建链表*/

sum=add(head);

printf("%d\n",sum);

}

4.下面程序功能是统计文本data.txt中各种大写字母的个数,将统计结果存放在数组count 中,(字母'A'的个数存入count[0]中,字母'B'的个数存入count[1]……依此类推),输出统计结果,一行输出5个。请填空。

# include

# include

void main()

{ FILE *fp;

static int count[26]={0};

int i;

char ch;

if(①(fp=fopen("data.txt", "r"))==NULL )

{ printf("Cannot open the file!\n");

exit(0);

}

while(! feof(fp))

{ ②ch=fgetc(fp) ;

if(ch>='A'&&ch<='Z') count[③ch-'A' ]++;

}

for(i=0;i<26;i++)

{

if(i%5==0) printf("\n");

printf("count[%d]=%-5d",count[i]);

}

fclose(fp);

}

5.下面程序的功能是输入两个字符串a和b和一个标志flag,当flag=0时,将b连在a 后;当flag=1时,将a连在b后;否则返回空指针。请填空。

# include

# include

char *stradd(char *s,char *t,int f)

{ char *p;

if(f==0)

{ p=s;

s+=strlen(s);

①while(*s++=*t++ ) ;

}

else if(f==1)

{ p=t;

while(*t++);

t--;

while(*s)

*t++=*s++;

②*t='\0' ;

}

③else p=NULL ;

return p;

}

void main()

{ char a[100],b[100],*str;

int n;

printf("Input string a and b:\n");

gets(a);

gets(b);

printf("Input flag:");

scanf("%d",flag);

str=stradd(a,b,n);

printf("Output: %s\n",str);

}

三、程序填空( 每空2分,共30分)

下面程序是一个求数组元素之和的程序。主程序中定义并初始化了一个数组,然后计算该数组各元素之和,并输出结果。函数Sum计算数组元素之和。请完成下列程序。

# include

相关文档
最新文档