C语言编程练习:南开大学100题解析
需积分: 3 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语言的理解,增强编程能力。
2012-05-18 上传
2013-09-17 上传
2010-03-12 上传
2009-09-22 上传
2010-01-27 上传
2010-02-09 上传
2011-03-26 上传
2011-06-18 上传
2011-09-10 上传
L492991772
- 粉丝: 3
- 资源: 3