湖南省2010年对口升学C语言考前专题训练 通过对给定的文件信息,我们可以总结出以下知识点: 1. 程序填空专题训练(一) 在这道题中,我们需要填充一个程序来求出所有水仙花数(指 3 位正整数中各位数字立方和等于该数本身,如 153=13+53+33)。程序的主要逻辑是使用一个循环来遍历所有 3 位正整数,并使用一个 while 循环来计算每个数字的立方和。如果该数字的立方和等于该数字本身,则将其输出。 填充后的程序如下所示: ```c main( ){ int x, y, z, m; for(m=100;m<1000;m++){ x=m; y=0; while(x>0) { z=x%10; x=x/10; y+=z*z*z; } if(y==m) printf("%6d",m); } } ``` 2. 递归法求 n! 在这道题中,我们需要填充一个程序来使用递归法求 n!。程序的主要逻辑是使用一个递归函数来计算 n!,并使用一个循环来读取用户输入的数字。 填充后的程序如下所示: ```c main( ){ int n, y; scanf("%d",&n); y=fac(n); printf("%d! = %6d", n, y ); } int fac(int n){ int f; if(n<0) { printf("n<0 data error"); f=-1; } else if(n==0||n==1) { f=1; } else { f=n*fac(n-1); } return f; } ``` 3. 统计某文件文件中数字字符的个数 在这道题中,我们需要填充一个程序来统计某文件文件中数字字符的个数。程序的主要逻辑是使用一个循环来读取文件中的每个字符,并判断该字符是否为数字字符。如果是数字字符,则将其统计。 填充后的程序如下所示: ```c main() { FILE *fp; long num=0; char ch; if ((fp=fopen("fnam.dat","r"))==NULL) { printf("Can't open this file!\n"); exit(0); } while ((ch=fgetc(fp))!=EOF) { if(ch>='0'&&ch<='9') num++; } printf("num=%d\n", num); fclose(fp); } ``` 4. 起泡法排序 在这道题中,我们需要填充一个程序来使用起泡法对十个数由小到大排序。程序的主要逻辑是使用两个循环来比较每两个相邻的数字,并交换它们以达到排序的目的。 填充后的程序如下所示: ```c main( ){ int a[11], i, j, t; printf("input 10 numbers: \n"); for(i=1;i<11;i++) scanf("%d",&a[i]); for (j=1;j<=9;j++) for (i=1; i<11-j; i++) if (a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } printf("the sorted numbers: \n"); for ( i=1; i<11; i++) printf("%d",a[i]); } ``` 5. 顺序查找法 在这道题中,我们需要填充一个程序来使用顺序查找法查找数组 b 中是否存在某一关键字。程序的主要逻辑是使用一个循环来遍历数组 b,并判断每个元素是否等于关键字。 填充后的程序如下所示: ```c main(){ int b[10]={25,57,48,38,12,92,88,48,16,25}, i,x,*p; scanf("%d",&x); p=b; while(p<b+10){ if (*p==x) { printf("Found!The index:%d\n",p-b); break; } p++; } if (p==b+10) printf("Can not found!"); } ``` 6. 删除字符串中的所有数字字符 在这道题中,我们需要填充一个函数来删除字符串 s 中的所有数字字符。程序的主要逻辑是使用一个循环来遍历字符串 s,并判断每个字符是否为数字字符。如果不是数字字符,则将其保留。 填充后的函数如下所示: ```c void dele(char *s) { int n=0, i; for(i=0; s[i]; i++) { if(!(s[i]>='0'&&s[i]<='9')) s[n++]=s[i]; } s[n]='\0'; } ``` 7. 求 n! 在这道题中,我们需要填充一个函数来求 n!。程序的主要逻辑是使用递归法来计算 n!。 填充后的函数如下所示: ```c long fac(int n) { if(n<0) { printf("n<0 data error"); return -1; } else if(n==0||n==1) { return 1; } else { return n*fac(n-1); } } ``` 对于这七道题,我们可以总结出以下几点: * 使用循环来遍历数组或字符串 * 使用递归法来计算复杂的数学问题 * 使用判断语句来判断字符是否为数字字符 * 使用交换语句来排序数组 * 使用指针来遍历数组 这些知识点都是 C 语言的基本知识点,对于湖南省 2010 年对口升学 C 语言考前专题训练来说,是非常重要的。
- 粉丝: 1
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助