C语言编程练习:南开大学100题解析

需积分: 3 1 下载量 162 浏览量 更新于2024-10-14 收藏 217KB DOC 举报
"10年南开100题是一个针对C语言二级考试的练习集,包含100道编程题目,旨在帮助考生提高编程能力并熟悉考试题型。" 在C语言的学习和备考过程中,理解和掌握各种基本的算法是非常重要的。上述题目涉及到了几个常见的C语言编程知识点: 1. 计算平均分与筛选低于平均分的数值: - 在第一题中,函数`fun`计算数组`score`中所有成绩的平均分,并将低于平均分的分数存储到`below`数组中。这涉及到数组遍历、计算平均值以及条件判断等基础知识。 ```c intfun(intscore[],intm,intbelow[]) { inti,k=0,aver=0; for(i=0;i<m;i++) aver+=score[i]; // 计算总和 aver/=m; // 计算平均值 for(i=0;i<m;i++) if(score[i]<aver) // 条件判断 { below[k]=score[i]; k++; } returnk; } ``` 2. 求满足特定条件的整数: - 第二题要求找出1到100之间能被7或11整除,但不能同时被7和11整除的数。这需要使用循环、模运算和逻辑运算。 ```c voidfun(int*a,int*n) { inti,j=0; for(i=2;i<1000;i++) // 从2开始遍历,避免1和0的特殊情况 if((i%7==0||i%11==0)&&i%77!=0) // 条件判断 a[j++]=i; // 符合条件的数存入数组 *n=j; // 返回符合条件的数的个数 } ``` 3. 找出能整除特定数且非偶数的除数: - 第三题的`fun`函数找出能整除`x`且不是偶数的整数,要求结果按从小到大排序。这需要用到数组、条件判断以及排序。 ```c voidfun(intx,intpp[],int*n) { inti=1,j=0,k=0,*t=pp; for(i=0;i<=x;i++) // 遍历可能的除数 if(i%2!=0) // 判断非偶数 { t[j]=i; // 存储非偶数 j++; } for(i=0;i<j;i++) if(x%t[i]==0) // 检查是否能整除x { pp[k]=t[i]; // 存储符合条件的除数 k++; } *n=k; // 返回符合条件的除数个数 } ``` 4. 字符串统计: - 最后一题的`fun`函数统计字符串`tt`中每个小写字母出现的次数,结果存放在`pp`数组中。这里用到了字符串遍历、switch语句和计数。 ```c voidfun(char*tt,intpp[]) { inti; for(i=0;i<26;i++) pp[i]=0; // 初始化计数器 while(*tt) // 遍历字符串 { switch(*tt) { case'a':pp[0]++;break; // ... case'z':pp[25]++;break; } tt++; // 移动到下一个字符 } } ``` 这些题目涵盖了C语言的基础概念,如数组操作、条件判断、循环控制、函数定义、字符串处理等,是学习和准备C语言二级考试的重要实践练习。通过解决这类问题,可以提升对C语言的理解,增强编程能力。