C语言上机试题集:解题攻略
需积分: 9 128 浏览量
更新于2024-08-02
收藏 255KB DOC 举报
"这是一份针对C语言编程的上机试题集,包含了100道题目,旨在帮助学习者巩固和提升C语言的实际操作能力,特别是对于数组、条件判断、循环控制、函数运用等基础知识的掌握。"
1: 第1题
此题要求编写一个名为`fun`的函数,用于找出数组`score`中低于平均分的所有分数并存储在`below`数组中。首先计算数组`score`的平均分`aver`,然后遍历数组,如果当前元素小于平均分,将其存入`below`数组,并更新计数器`k`。最后返回低于平均分的分数个数。
```c
int fun(int score[], int m, int below[]) {
int i, 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++;
}
return k;
}
```
2: 第2题
本题要求编写`fun`函数,找出1到100之间可以被7或11整除,但不能同时被7和11整除的数,并将它们存入数组`a`中。函数返回这些数的个数`n`。通过两个嵌套的循环实现,外层循环遍历1到100,内层循环检查能否被7和11整除,以及不能被77整除。
```c
void fun(int *a, int *n) {
int i, j = 0;
for (i = 2; i < 1000; i++) {
if ((i % 7 == 0 || i % 11 == 0) && i % 77 != 0)
a[j++] = i;
}
*n = j;
}
```
3: 第3题
题目要求编写一个`fun`函数,找出所有能整除给定数`x`且不是偶数的整数,并按照从小到大的顺序放入数组`pp`中,通过指针`n`返回这些除数的个数。这里先筛选出所有非偶数,然后检查它们是否能整除`x`。
```c
void fun(int x, int pp[], int *n) {
int i = 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) {
pp[k] = t[i];
k++;
}
*n = k;
}
```
4: 第4题
这题要求编写`fun`函数,统计输入字符串`tt`中每个小写字母出现的次数,结果存储在`pp`数组中。利用`switch`语句逐个处理字符,根据字母'a'到'z'的顺序累加对应的`pp`数组元素。
```c
void fun(char *tt, int pp[]) {
int i;
for (i = 0; i < 26; i++) pp[i] = 0;
while (*tt) {
switch (*tt) {
case 'a': pp[0]++; break;
case 'b': pp[1]++; break;
// ... 以此类推,处理所有小写字母
case 'z': pp[25]++; break;
}
tt++;
}
}
```
这四道题涵盖了C语言的基础知识点,包括数组操作、条件判断、循环控制、函数定义与调用、字符串处理等。通过解答这些题目,学习者可以更好地理解和应用C语言的基本语法和逻辑思维。
2009-03-28 上传
2011-10-29 上传
2022-07-02 上传
2011-05-04 上传
2022-07-14 上传
2014-03-16 上传
2022-07-02 上传
zjs12345678
- 粉丝: 2
- 资源: 2
最新资源
- Android-A Programmer's Guide(译).pdf
- 第09讲 图像类型与彩色模型的转换.doc
- 硬盘维修绝密资料下载
- fckeditor的0DAY
- 在嵌入式系统中实现对U盘的读写等操作
- 笔记本原理复习指南\笔记本试行版\第一章笔记本技术综述.doc
- 嵌入式linux入门
- 网络工程师必备的十种工具0ccb5867-80ae-4acb-abdc-ff2cda2a091a.doc
- java程序员面试宝典
- C_C++指针经验总结
- 基于单片机的脉搏测量仪器设计
- ibatis 开发指南.pdf
- 基于DSP和USB技术的数据采集与处理系统
- bus hound中文使用说明书
- MySQL安装图解(适合初学者)
- 数字图像处理大纲式试题