四川省计算机二级C语言历年考题之程序填空
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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