攻克计算机二级C语言:填空题与排序算法解析
需积分: 4 138 浏览量
更新于2024-07-31
收藏 143KB DOCX 举报
"计算机二级C语言上机练习题,包括程序填空题和结构体数组排序题目,旨在帮助考生准备考试并熟悉C语言编程。"
在这两个题目中,我们主要涉及了C语言的基础知识和编程技巧。
第一题是一个函数调用和返回值的问题。题目要求在函数`fun`中填入正确的内容,使得程序能够正确计算并输出指定的结果。首先,`f1`函数接收一个`double`类型的参数`x`并返回`x`的平方;`f2`函数接收两个`double`类型的参数`x`和`y`,并返回它们的乘积。在`fun`函数中,根据`i`的值,我们需要返回`f1`或`f2`的计算结果。因此,下划线处应填入的内容分别是:
1. 函数`fun`的返回类型,由于它可能返回`f1`或`f2`的值,所以返回类型应该是`double`。
2. `i==1`时,应返回`f1(x)`,因此这里填写`f1(x)`。
3. `else`部分,`i!=1`时,应返回`f2(x,y)`,所以这里填写`f2(x,y)`。
完整的代码应该是:
```c
#include<stdio.h>
double f1(double x) { return x*x; }
double f2(double x, double y) { return x*y; }
double fun(int i, double x, double y) {
if (i == 1) return f1(x);
else return f2(x, y);
}
...
```
第二题涉及到C语言中的结构体数组和字符串比较。题目要求按照姓名的字典序对结构体数组`student`进行排序。在`fun`函数中,我们使用冒泡排序算法实现这一功能。`struct student`定义了一个包含学号(`sno`)、姓名(`name`)和三门课成绩(`score[3]`)的结构体。`fun`函数需要遍历整个数组,比较相邻元素的姓名并交换位置,直到数组排序完成。下划线处应填入的内容分别是:
1. 定义一个临时变量`t`,用于存储当前比较的结构体。
2. 循环条件,应该是数组的长度减1,即`n-1`,因为我们要遍历整个数组,但不包括最后一个元素。
3. 对比相邻两个学生姓名的字符串,这里应填写`strcmp(a[i].name, a[j].name)`。
完整的代码应该是:
```c
#include<stdio.h>
#include<string.h>
struct student {
long sno;
char name[10];
float score[3];
};
void fun(struct student a[], int n) {
struct student t;
int i, j;
for (i = 0; i < n - 1; i++)
for (j = i + 1; j < n; j++)
if (strcmp(a[i].name, a[j].name) > 0) {
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
...
```
这两个题目涵盖了C语言的基本语法、函数调用、字符串比较以及数组排序等核心概念,对于准备计算机二级C语言考试的考生来说,是很好的练习素材。
2022-07-14 上传
2010-09-20 上传
120 浏览量
143 浏览量
2010-10-24 上传
2009-05-07 上传
2009-07-27 上传
2010-09-17 上传
hooton12
- 粉丝: 0
- 资源: 2
最新资源
- readandwrite
- Probabilidade_e_Estatistica:Atividade eConteúdodaMatéria
- DLT和Tsai两步法标定相机的Matlab代码 里面附带验证程序
- java-20210325:Java
- minto
- Grid源代码.rar
- solve(f,a,b):如果可能,解f(x)= 0。-matlab开发
- WBD:Oracle Database 11g + GUI上的电话数据库项目
- springboot基础demo下载.zip
- 黑色闹钟3D模型
- HSKA-App:如果您在卡尔斯鲁厄应用科学大学学习INFB,MNIB,MKIB或INFM,则可以使用此应用程序获取有关成绩及更多信息的有用小部件。
- trigintpoly:函数 trigintpoly 使用 fft 来求三角插值多项式-matlab开发
- angular-gmohsw:用StackBlitz创建:high_voltage:
- Selenium网格拉胡尔
- MIPCMS内容管理系统 更新包 V2.1.2
- EventRepoRestApi:用Springboot和内存H2数据库编写的Rest API