编号 题目要求及代码描述 ①题目要求:有一分数序列:2/1、-3/2、5/3、-8/5、13/8…,求这个数列的前m(m>=1且m<=100)项之和,并将总和存放到变量sum中,并输出sum。 (若程序已经定义的变量不够用,考生可以补充定义其它变量) ②题目已给出的框架如下: #include “” main() { int m; float sum; } ①题目要求:有一序列:1,1,2,3,5,8,13……从第三个数开始每个数是前两个数之和,求出这个数列的前m(m>=1并且m<=100)项之和,并将总和存放到变量sum中,并输出之. (若程序已经定义的变量不够用,考生可以补充定义其它变量). ②题目已给出的框架如下: #include “” main( ) { int m,sum; 参考答案 参考答案如下: #include “” main() { int m,i,sign=1; float sum=0,a=2,b=1,t; scanf(“%d”,&m); for(i=1;i<=m;i++) { sum=sum+sign*a/b; t=a;a=a+b;b=t; sign=-sign; } printf(“%f”,sum); } 参考答案如下: #include “” main() { int m,sum=0,i,a=0,b=0,s=1; scanf(“%d”,&m); for(i=1;i<=m;i++) { sum=sum+s; a=b; b=s; s=a+b; } 补充说明 多项式求和问题,例如: 1. 序列:1!、2!、3!、4!、5!…求前m项之和; 2. 序列:1*1、2*2、3*3、4*4、…求前m项之和; 3. 序列:1,1,2,3,5,8,13……从第三个数开始每个数是前两个数之和,求出这个数列的前m项之和。 1 2 无 3 4 } ①题目要求:对于任意给定的正整数m,求这个数的各位数字之和,并存入变量sum中,并输出之。例如:如果m为123,则sum为6。 (若程序已经定义的变量不够用,考生可以补充定义其它变量). ②题目已给出的框架如下: #include “” main( ) { int m,sum; } ①题目要求:已知10名学生的成绩已存入数组a中,计算前m位同学的平均成绩,并存入变量aver中,并输出之。例如,若m=2,则aver=65。 (若程序已经定义的变量不够用,考生可以补充定义其它变量)。 ②题目已给出的框架如下: #include “” main() {int m,a[10]={60,70,77,79,76,83,78,56,85,6 printf(“%d”,sum); } 参考答案如下: #include “” main( ) { int m,sum=0,i,s; scanf(“%d”,&m); while(m!=0) { sum=sum+m%10; m=m/10; } printf(“%d”,sum); } 整型数据求位数、及按位提取数字问题。 参考答案如下: #include “” main() { int m,i,a[10]={60,70,77,79,76,83,78,56,85,69}; float aver=0; scanf(“%d”,&m); for(i=0;i
='a'&&a[i]<='z') count++; printf(“the count is %d”,count); } 主函数中直接对字符型数组进行统计处理问题,例如: 1. 求字符串长度; 2. 求字符串中大写\\小写字母个数;; 3. 参考答案如下: 无 #include “” main() {int m,a[10]={34,45,67,82,64,53,67,90,49,56}; int count=0,i; scanf(“%d”,&m); for(i=0;i<10;i++) if(a[i]>=m) 7 8 {int m,a[10]={34,45,67,82,64,53,67,90,49,56}; int count; } ①题目要求:从键盘输入的一行字符串(<50)存入数组a中,求该字符串的长度,并将长度存入变量count中,并输出之.例如,若输入”I am a student.”,则count=15. (若程序已经定义的变量不够用,考生可以补充定义其它变量). ②题目已给出的框架如下: #include “” main() { char a[50];int count; } ①题目要求:根据三角形的三边(a,b,c)判断是否能组成三角形,若可以则求三角形的面积并存入变量area中,并输出之. (若程序已经定义的变量不够用,考生可以补充定义其它变量). ②题目已给出的框架如下: count++; printf(“the count is %d”,count); } 参考答案如下: #include “” main() { char a[50]; int count; gets(a); for(count=0;a[count]!='\\0';count++) ; /*此处‘;’表示循环体为空*/ printf(“the length is %d”,count); } 无 参考答案如下: #include “” #include “” main() { float a,b,c,area,s; 简单数学公式使用的问题: 1. 判断润年; 2. 求方程的解;等等 9 10 #include “” #include “” main() { float a,b,c,area; } ①题目要求:编写一个名为fun的函数将字符串中所有的大写字母转换成小写字母.例如,对于字符串”AAbbCC”,则会被转换成”aabbcc”. (不要改动已有的代码,仅在fun的函数体中填写若干语句) ②题目已给出的框架如下: #include “” fun(char w[]) { } main() { char a[20]=“AAbbCC”; fun(a); puts(a); } ①题目要求:编写一个名为fun的函数,其 scanf(“%f,%f,%f”,&a,&b,&c); if(a+b>c&&b+c>a&&c+a>b) { s=*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“yes! and the area=%f\\n”,area); } else printf(“yes!\\n”); } 参考答案如下: 使用自定义函数处理字符串问题,例 如: #include “” 1. 大写\\小写字母转换; fun(char w[]) 2. 字符串逆序存放; {int i; 3. 排序(升序、降序)。 for(i=0;w[i]!='\\0';i++) if(w[i]>='A'&&w[i]<='Z') w[i]=w[i]+32; } main() { char a[20]=“AAbbCC”; fun(a); puts(a); } 参考答案如下: 使用自定义函数处理字符串问题,例11 功能为:将数组n中的字符串拷贝至数组m中.例如,在main中调用fun以后,会输出”university”. (不允许用C语言提供的strcpy函数.) (不要改动已有的代码,仅在fun的函数体中填写若干语句) ②题目已给出的框架如下: #include “” fun(char m[],char n[]) { } main() { char a[20],b[20]=“university”; fun(a,b); puts(a); } ①题目要求: 编写一个名为fun的函数实现一个字符串按逆序存放. 例如:由abcd变为dcba. (不要改动已有的代码,仅在fun的函数体中填写若干语句) ②题目已给出的框架如下: #include “” fun(char w[]) { } #include “” fun(char m[],char n[]) {int i; for(i=0;n[i]!='\\0';i++) m[i]=n[i]; m[i]= '\\0' ; } main() { char a[20],b[20]=“university”; fun(a,b); puts(a); } 如: 1. 字符串拷贝; 2. 把字符串a追加到b后。 参考答案如下: #include “” fun(char w[]) {int i,n,t; for(i=0;w[i]!='\\0';i++) ; n=i; for(i=0;i0;i--) w[i]=w[i-1]; w[0]=t; } main() { int i, a[5]={0,1,2,3,4}; fun(a,5); for(i=0;i<5;i++) printf(“%d,”,a[i]); } 使用自定义函数处理整型(实型)数组置换问题。,例如: 1. 排序; 2. 逆序存放; 3. 有序数组中插入新的数后仍然有序。 使用指针,自定义函数统计字符串问题,例如: 1. 统计字符串中大写/小写字母个数; 14 于”aed234efg”,则letter应为6,other应为3. (不要改动已有的代码,仅在fun的函数体中填写若干语句) ②题目已给出的框架如下: #include “” fun(char w[],int *p1,int *p2) { } main() { char a[20]=“aed234efg”; int letter,other; fun(a,&letter,&other); printf(“%d,%d”,letter,other); } ①题目要求:编写一个名为fun的函数实现计算数组a中n个整数的最大数和最小数.例如,本题的main函数应输出 7,1 . (不要改动已有的代码,仅在fun的函数体中填写若干语句) ②题目已给出的框架如下: #include “” fun(int w[],int n,int *p1,int *p2) { } main() { int a[5]={1,2,3,4,7}, max,min; {int i; *p1=0; *p2=0; for(i=0;w[i]!='\\0';i++) if((w[i]>='a'&&w[i]<='z')||(w[i]>='A'&&w[i]<='Z')) (*p1)++; else (*p2)++; } main() { char a[20]=“aed234efg”; int letter,other; fun(a,&letter,&other); printf(“%d,%d\\n”,letter,other); } 参考答案如下: #include “” fun(int w[],int n,int *p1,int *p2) {int i; *p1=w[0]; *p2=w[0]; for(i=1;i*p1) *p1=w[i]; else if(w[i]<*p2) *p2=w[i]; } main() { int a[5]={1,2,3,4,7}, max,min; 2.统计字符串中字母/符号/数字个数。 使用指针,自定义函数处理整型(实型)数组统计问题。例如: 1. 求平均分; 2. 求最大值最小值; 3. 求高于平均分人数; 15 fun(a,5,&max,&min); printf(“%d,%d”,max,min); } ①题目要求:编写一个名为fun的函数实现向有序数组a(由小到大排列)中插入一个数m后使数组仍然有序.例如,若有a[6]={10,20,30,40,50};,则调用fun函数插入35后,数组元素的排列顺序为 10,20,30,35,40,50. (不要改动已有的代码,仅在fun的函数体中填写若干语句) ②题目已给出的框架如下: #include “” fun(int w[],int n,int m) { } main() { int a[6]={10,20,30,40,50}, m,i; m=35; fun(a,5,m); for(i=0;i<6;i++) printf(“%d,”,a[i]); } ①题目要求:编写一个名为fun的函数实现计算数组a中的n个学生成绩中小于平均分的人数,平均分按实型数考虑.例如,若有a[5]={50,60,70,80,90};,则fun函数的返回值应为2. 16 fun(a,5,&max,&min); printf(“%d,%d”,max,min); } 参考答案如下: #include “” fun(int w[],int n,int m) {int i,t; if(m>w[n-1]) w[n]=m; else {for(i=0;w[i]=t;i--) w[i+1]=w[i]; w[t]=m; }} main() { int a[6]={10,20,30,40,50},m,i; m=35; fun(a,5,m); for(i=0;i<6;i++) printf(“%d,”,a[i]); } 参考答案如下: #include “” fun(int w[],int n) {int i,sum=0,m=0; float avg; 无 使用自定义函数对整型(实型)数组进行统计处理问题,例如: 1. 求平均分; 2. 求最大值最小值; 3. 求高于平均分人数; 17 (不要改动已有的代码,仅在fun的函数体中填写若干语句) ②题目已给出的框架如下: #include “” fun(int w[],int n) { } main() { int a[5]={50,60,70,80,90}, count; count=fun(a,5); printf(“%d”,count); } ①题目要求:编写一个名为fun的函数实现将数组a的n个整数中的最小数与最后面的数互换,而其它元素不变.例如,若有a[5]={34,1,2,56,4};,则调用fun函数后,数组元素的排列顺序为 34,4,2,56,1. (不要改动已有的代码,仅在fun的函数体中填写若干语句) ②题目已给出的框架如下: #include “” fun(int w[],int n) { } main() { int i, a[5]={34,1,2,56,4}; for(i=0;i='a'&&w[i]<='z') sum=sum+w[i]; 使用自定义函数处理字符串统计问题,例如: 1. 字符串中大写/小写/数字的ASCII码值之和; 2. 字符串中数字之和。 20 #include “” fun(char w[]) { } main() { char a[10]=“aCbD”; int k; k=fun(a); printf(“\\n%d”,k); } ①题目要求:编写一个名为fun的函数,实现对整型数组元素作如下操作:a[1]=a[1]+a[0],a[2]=a[2]+a[1]...即每一个元素等于它本身与上一个元素之和,最前面的一个元素值不变.例如,若原来的数组为 8,9,1,0,4,则新数组为8,17,10,1,4. (不要改动已有的代码,仅在fun的函数体中填写若干语句) ②题目已给出的框架如下: #include “” fun(int w[],int n) { } main() { int i,a[5]={8,9,1,0,4}; for(i=0;i<5;i++) return sum; } main() { char a[10]=“aCbD”; int k; k=fun(a); printf(“\\n%d”,k); } 参考答案如下: #include “” fun(int w[],int n) {int i; for(i=n-1;i>0;i--) w[i]=w[i]+w[i-1]; } main() { int i,a[5]={8,9,1,0,4}; for(i=0;i<5;i++) printf(“%d “,a[i]); fun(a,5); printf(“\\n”); for(i=0;i<5;i++) printf(“%d “,a[i]); } 使用自定义函数对整型(实型)数组进行数学处理问题。 21 printf(“%d “,a[i]); fun(a,5); printf(“\\n”); for(i=0;i<5;i++) printf(“%d “,a[i]); } ①题目要求:编写一个名为fun的函数,判断给定的正整数是否是素数.素数的定义是:其因子只有1和它本身. 例如,7就是素数.本题的main函数应输出Yes. (不要改动已有的代码,仅在fun的函数体中填写若干语句) ②题目已给出的框架如下: #include “” fun(int w) { } main() { int m;m=7; if(fun(m)) printf(“Yes”); else printf(“No”); } 参考答案如下: #include “” fun(int w) {int i; for(i=2;i