程序中的fun函数被调用( 36 )次。 40 (A) 5 4 (B) 4 5 (C) 5 3
(D) 4 4
注意:① 请把下面“程序填空”中各小题答案写在主观题答题纸上 ② 每一个空只填一个语句或一个语句所缺的部分内容 三、程序填空(每空2分,共30分)
1.下列程序实现将一个整数字符串转换为一个整数。
# include # include int Fun(char *str) { int num,digital,len;
① ; len=strlen(str); while(*str!=NULL) {
digital=*str-'0';
for(int i=0;② ;i++) digital*=10; len--;
③ ; num+=digital; } return num; }
void main() { char n[80]; int number; gets(n);
number=Fun(n);
printf(\}
2.寻找并输出11~999之间的数m,它满足m,m2,m3均为回文数(所谓回文数是指其各位数字左右对称的整数)。
# include void main()
{ int symm(long n);
四川省计算机二级考试第十九次C与C++语言笔试试卷 第 17 页 共 136 页
第 18 页 共 136 页
long m;
for(m=11;m<1000;m++)
if(① ) cout<<\}
int symm(long n) { long i,m; i=n; m=0;
while(② ) { ③ ; 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=① ; while(p)
{ s+=② ; p=③ ; }
return (s); }
void main()
{ struct link *head;
?? /* 表示省掉的程序段,创建链表 */ sum=add(head); printf(\}
4.下面程序功能是统计文本data.txt中各种大写字母的个数,将统计结果存放在数组count中,(字母'A'的个数存入count[0]中,字母'B'的个数存入count[1]??依此类推),输出统计结果,一行输出5个。请填空。
# include # include void main()
四川省计算机二级考试第十九次C与C++语言笔试试卷 共136页 第18页
{ FILE *fp;
static int count[26]={0}; int i; char ch;
if(① )
{ printf(\ exit(0); }
while(! feof(fp))
{ ② ;
if(ch>='A'&&ch<='Z') count[③ ]++; }
for(i=0;i<26;i++) {
if(i%5==0) printf(\
printf(\ }
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);
① ; }
else if(f==1) { p=t;
while(*t++); t--;
while(*s) *t++=*s++;
② ; }
③ ; return p; }
void main()
{ char a[100],b[100],*str; int n;
四川省计算机二级考试第十九次C与C++语言笔试试卷 第 19 页 共 136 页
第 20 页 共 136 页
printf(\ gets(a); gets(b);
printf(\ scanf(\ str=stradd(a,b,n);
printf(\}
四川省计算机二级考试第十九次C与C++语言笔试试卷 共136页 第20页