C语言入门经典第四版 高清PDF
c语言入门经典第四版pdf是一本集综合性与实用性为一体的非常优秀的入门学习教材.此书不仅为读者们讲解C程序设计语言,还广泛介绍了一些必需有所掌握的知识,还有很多实用性极强的实例,是初学者们不可或缺的良师益友,有需要的朋友们快来下载吧!
需要的朋友关注后私信我,大量优质电子资料分享!
关注我,为你提供更多电子学习资料!如果感觉好记得点赞哦!
本书介绍:
本书是编程语言先驱者Ivor Horton的经典之作,是C语言方面最畅销的图书品种之一.本书集综合性、实用性为一体,是学习C语言的优秀入门教材,在世界范围内广受欢迎,口碑极佳.书中除了讲解C程序设计语言,还广泛介绍了作为一名C程序设计人员应该掌握的必要知识,并提供了大量的实用性很强的编程实例.本书的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员.读者基本不需要具备任何编程知识,即可通过本书从头开始编写自己的C程序.
本书目录:
第1章 C语言编程
1.1 创建C程序
1.1.1 编辑
1.1.2 编译
1.1.3 链接
1.1.4 执行
1.2 创建第一个程序
1.3 编辑第一个程序
1.4 处理错误
1.5 剖析一个简单的程序
1.5.1 注释
1.5.2 预处理指令
1.5.3 定义main()函数
1.5.4 关键字
1.5.5 函数体
1.5.6 输出信息
1.5.7 参数
1.5.8 控制符
1.6 用C语言开发程序
1.6.1 了解问题
1.6.2 详细设计
1.6.3 实施
1.6.4 测试
1.7 函数及模块化编程
1.8 常见错误
1.9 要点
1.10 小结
1.11 习题
第2章 编程初步
2.1 计算机的内存
2.2 什么是变量
2.3 存储数值的变量
2.3.1 整数变量
2.3.2 变量的命名
2.3.3 变量的使用
2.3.4 变量的初始化
2.3.5 算术语句
2.4 变量与内存
2.5 整数变量类型
2.5.1 无符号的整数类型
2.5.2 使用整数类型
2.5.3 指定整数常量
2.6 浮点数
2.7 浮点数变量
2.8 使用浮点数完成除法运算
2.8.1 控制小数位数
2.8.2 控制输出的字段宽度
2.9 较复杂的表达式
2.10 定义常量
2.10.1 极限值
2.10.2 sizeof运算符
2.11 选择正确的类型
2.12 强制类型转换
2.12.1 自动转换类型
2.12.2 隐式类型转换的规则
2.12.3 赋值语句中的隐式类型转换
2.13 再谈数值数据类型
2.13.1 字符类型
2.13.2 字符的输入输出
2.13.3 宽字符类型
2.13.4 枚举
2.13.5 存储布尔值的变量
2.13.6 复数类型
2.14 赋值操作的op=形式
2.15 数学函数
2.16 设计一个程序
2.16.1 问题
2.16.2 分析
2.16.3 解决方案
2.17 小结
2.18 练习
第3章 条件判断
3.1 判断过程
3.1.1 算术比较
3.1.2 涉及关系运算符的表达式
3.1.3 基本的if语句
3.1.4 扩展if语句:if-else
3.1.5 在if语句中使用代码块
3.1.6 嵌套的if语句
3.1.7 更多的关系运算符
3.1.8 逻辑运算符
3.1.9 条件运算符
3.1.10 运算符的优先级
3.2 多项选择问题
3.2.1 给多项选择使用else-if语句
3.2.2 switch语句
3.2.3 goto语句
3.3 按位运算符
3.3.1 按位运算符的op=用法
3.3.2 使用按位运算符
3.4 设计程序
3.4.1 问题
3.4.2 分析
3.4.3 解决方案
3.5 小结
3.6 练习
第4章 循环
4.1 循环
4.2 递增和递减运算符
4.3 for循环
4.4 for循环的一般语法
4.5 再谈递增和递减运算符
4.5.1 递增运算符
4.5.2 递增运算符的前置和后置形式
4.5.3 递减运算符
4.6 再论for循环
4.6.1 修改for循环变量
4.6.2 没有参数的for循环
4.6.3 循环内的break语句
4.6.4 使用for循环限制输入
4.6.5 生成伪随机整数
4.6.6 再谈循环控制选项
4.6.7 浮点类型的循环控制变量
4.7 while循环
4.8 嵌套循环
4.9 嵌套循环和goto语句
4.10 do-while循环
4.11 continue语句
4.12 设计程序
4.12.1 问题
4.12.2 分析
4.12.3 解决方案
4.13 小结
4.14 习题
第5章 数组
5.1 数组简介
5.1.1 不用数组的程序
5.1.2 什么是数组
5.1.3 使用数组
5.2 内存
5.3 数组和地址
5.4 数组的初始化
5.5 确定数组的大小
5.6 多维数组
5.7 多维数组的初始化
5.8 设计一个程序
5.8.1 问题
5.8.2 分析
5.8.3 解决方案
5.9 小结
5.10 习题
第6章 字符串和文本的应用
6.1 什么是字符串
6.2 处理字符串和文本的方法
6.3 字符串操作
6.3.1 连接字符串
6.3.2 字符串数组
6.4 字符串库函数
6.4.1 使用库函数复制字符串
6.4.2 使用库函数确定字符串的长度
6.4.3 使用库函数连接字符串
6.4.4 比较字符串
6.4.5 搜索字符串
6.5 分析和转换字符串
6.5.1 转换字符
6.5.2 将字符串转换成数值
6.7 使用宽字符串
6.8 设计一个程序
6.8.1 问题
6.8.2 分析
6.8.3 解决方案
6.9 小结
6.10 习题
第7章 指针
7.1 指针初探
7.1.1 声明指针
7.1.2 通过指针访问值
7.1.3 使用指针
7.1.4 指向常量的指针
7.1.5 常量指针
7.1.6 指针的命名
7.2 数组和指针
7.3 多维数组
7.3.1 多维数组和指针
7.3.2 访问数组元素
7.4 内存的使用
7.4.1 动态内存分配:malloc()函数
7.4.2 分配内存时使用sizeof运算符
7.4.3 用calloc()函数分配内存
7.4.4 释放动态分配的内存
7.4.5 重新分配内存
7.5 使用指针处理字符串
7.5.1 更多地控制字符串输入
7.5.2 使用指针数组
7.6 设计程序
7.6.1 问题
7.6.2 分析
7.6.3 解决方案
7.7 小结
7.8 习题
第8章 程序的结构
8.1 程序的结构
8.1.1 变量的作用域和生存期
8.1.2 变量的作用域和函数
8.2 函数
8.2.1 定义函数
8.2.2 return语句
8.3 按值传递机制
8.4 函数声明
8.5 指针用作参数和返回值
8.5.1 常量参数
8.5.2 从函数中返回指针值
8.5.3 在函数中递增指针
8.6 小结
8.7 习题
第9章 函数再探
9.1 函数指针
9.1.1 声明函数指针
9.1.2 通过函数指针调用函数
9.1.3 函数指针数组
9.1.4 作为变元的函数指针
9.2 函数中的变量
9.2.1 静态变量:函数内部的追踪
9.2.2 在函数之间共享变量
9.3 调用自己的函数:递归
9.4 变元个数可变的函数
9.4.1 复制va_list
9.4.2 长度可变的变元列表的基本规则
9.5 main()函数
9.6 结束程序
9.7 函数库:头文件
9.8 提高性能
9.8.1 内联声明函数
9.8.2 使用restrict关键字
9.9 设计程序
9.9.1 问题
9.9.2 分析
9.9.3 解决方案
9.10 小结
9.11 习题
第10章 基本输入和输出操作
10.1 输入和输出流
10.2 标准流
10.3 键盘输入
10.3.1 格式化键盘输入
10.3.2 输入格式控制字符串
10.3.3 输入格式字符串中的字符
10.3.4 输入浮点数的各种变化
10.3.5 读取十六进制和八进制值
10.3.6 用scanf()读取字符
10.3.7 scanf()的陷阱
10.3.8 从键盘上输入字符串
10.3.9 键盘的非格式化输入
10.4 屏幕输出
10.4.1 使用printf()格式输出到屏幕
10.4.2 转义序列
10.4.3 整数输出
10.4.4 输出浮点数
10.4.5 字符输出
10.5 其他输出函数
10.5.1 屏幕的非格式化输出
10.5.2 数组的格式化输出
10.5.3 数组的格式化输入
10.6 打印机输出
10.7 小结
10.8 习题
第11章 结构化数据
11.1 数据结构:使用struct
11.1.1 定义结构类型和结构变量
11.1.2 访问结构成员
11.1.3 未命名的结构
11.1.4 结构数组
11.1.5 表达式中的结构
11.1.6 结构指针
11.1.7 为结构动态分配内存
11.2 再探结构成员
11.2.1 将一个结构作为另一个结构的成员
11.2.2 声明结构中的结构
11.2.3 将结构指针用作结构成员
11.2.4 双向链表
11.2.5 结构中的位字段
11.3 结构与函数
11.3.1 结构作为函数的变元
11.3.2 结构指针作为函数变元
11.3.3 作为函数返回值的结构
11.3.4 修改程序
11.3.5 二叉树
11.4 共享内存
11.4.1 联合
11.4.2 联合指针
11.4.3 联合的初始化
11.4.4 联合中的结构成员
11.5 定义自己的数据类型
11.5.1 结构与类型定义(typedef)功能
11.5.2 使用typedef简化代码
11.6 设计程序
11.6.1 问题
11.6.2 分析
11.6.3 解决方案
11.7 小结
11.8 习题
第12章 处理文件
12.1 文件的概念
12.1.1 文件中的位置
12.1.2 文件流
12.2 文件访问
12.2.1 打开文件
12.2.2 文件重命名
12.2.3 关闭文件
12.2.4 删除文件
12.3 写入文本文件
12.4 读取文本文件
12.5 将字符串写入文本文件
12.6 从文本文件中读入字符串
12.7 格式化文件的输入输出
12.7.1 格式化文件输出
12.7.2 格式化文件输入
12.8 错误处理
12.9 再探文本文件操作模式
12.10 二进制文件的输入输出
12.10.1 指定二进制模式
12.10.2 写入二进制文件
12.10.3 读取二进制文件
12.11 在文件中移动
12.11.1 文件定位操作
12.11.2 找出我们在文件中的位置
12.11.3 在文件中设定位置
12.12 使用临时文件
12.12.1 创建临时文件
12.12.2 创建唯一的文件名
12.13 更新二进制文件
12.13.1 修改文件的内容
12.13.2 从键盘读取记录
12.13.3 将记录写入文件
12.13.4 从文件中读取记录
12.13.5 写入文件
12.13.6 列出文件内容
12.13.7 更新已有的文件内容
12.14 文件打开模式小结
12.15 设计程序
12.15.1 问题
12.15.2 分析
12.15.3 解决方案
12.16 小结
12.17 习题
第13章 支持功能
13.1 预处理
13.1.1 在程序中包含头文件
13.1.2 外部变量及函数
13.1.3 替换程序源代码
13.1.4 宏替换
13.1.5 看起来像函数的宏
13.1.6 多行上的预处理指令
13.1.7 字符串作为宏参数
13.1.8 结合两个宏展开式的结果
13.2 预处理器逻辑指令
13.2.1 条件编译
13.2.2 测试指定值的指令
13.2.3 多项选择
13.2.4 标准预处理宏
13.3 调试方法
13.3.1 集成的调试器
13.3.2 调试阶段的预处理器
13.3.3 使用assert()宏
13.4 其他库函数
13.4.1 日期和时间函数库
13.4.2 获取日期
13.5 小结
13.6 习题
附录A 计算机中的数学知识
附录B ASCII字符代码定义
附录C C语言中的保留字
附录D 输入输出格式指定符
需要的朋友关注后私信我,大量优质电子资料分享!
关注我,为你提供更多电子学习资料!如果感觉好记得点赞哦!
C语言程序设计实验报告
C语言程序设计实验报告
2021~2022学年第二学期
实验一
实验项目名称:C程序的运行环境和运行C程序的方法
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序;
2.通过运行简单的C程序,初步了解C源程序的特点。
二、预习内容:
教材《C语言程序设计教程》第1章。
三、实验内容:
1.编程实现从键盘输入a,b,c三个整数,求这三个数之和。
源程序:
运行结果:
2.编程实现从键盘输入任意两个整数,进行值的交换并输出交换后的值。
源程序:
运行结果:
成绩
实验二
实验项目名称:简单的输入输出及顺序程序设计
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1. 掌握整型、实型与字符型数据的正确输入方法(scanf函数的使用);
2. 掌握整型、实型与字符型数据的正确输出方法(printf函数的使用);
3. 掌握编写顺序程序的方法。
二、预习内容:
教材《C语言程序设计教程》第3章。
三、实验内容:
1. 下面程序的功能是:从键盘输入2个整数,输出它们的和。
#include <stdio.h>
int main( )
{
int a,b,sum;
sum=a+b;
printf("%d+%d=%d\\n",a,b,sum);
return 0;
}
请在横线上填写一条合适的语句,使程序完整,然后上机运行该程序。
运行结果:
2.编写程序,计算并输出球的表面积和体积,球的半径在程序运行时由键盘输入。
源程序:
运行结果:
3.编写程序,要求从键盘输入一个华氏温度f,转换成摄氏温度c输出,转换公式为
,输出结果保留小数点后2位。
源程序:
运行结果:
4.编写程序,从键盘输入一个三位正整数,输出该数的逆序数。如:输入123,输出321
源程序:
运行结果:
实验三
实验项目名称:选择结构程序设计
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1. 正确使用关系运算符和关系表达式;
2. 正确使用逻辑运算符和逻辑表达式;
3. 熟练使用if语句实现选择结构程序;
4. 熟练使用switch语句实现多分支选择结构程序。
二、预习内容:
教材《C语言程序设计教程》第4章。
三、实验内容:
1. 下面程序的功能是:输入学生成绩,若成绩在90分以上,输出“Excellent!”;若成绩在60—89分之间,输出“Pass!”;若成绩在60分以下,输出“Fail!”。请将程序补充完整,并上机运行程序。
#include <stdio.h>
main( )
{
int score;
printf("请输入分数(0–100):");
scanf("%d",);
if(score>100 || score<0)
printf("Input Error!\\n");
else if()
printf("Excellent!\\n");
else if()
printf("Pass!\\n");
printf("Fail!\\n");
}
运行该程序4次,分别输入4个不同的数据,对应4种不同的情况,记录运行结果:
输入数据
运行结果
2. 有如下分段函数:
编写程序,要求输入的值,求解对应的值并输出。
源程序:
运行该程序3次,分别输入3个不同数据,分别对应3个不同区间,记录结果。
输入数据
运行结果
3. 某商场进行节日优惠促销活动,活动细则如下: 购物金额10000元以上(含5000元),实际付款为购物金额的80%; 购物金额5000到10000元之间(含5000元,不含10000元),实际付款90%; 购物金额3000到5000元之间(含3000,不含5000),实际付款95%; 3000元以下无优惠。
编写程序,要求从键盘输入购物金额(为实型数据),计算并输出优惠后的实际付款额(小数 点后保留2位)。
源程序:
(1)采用if语句的源程序:
(2)采用switch语句的源程序:
分别运行每个程序4次,输入4个不同数据,分别对应4个不同区间,记录结果。
输入数据
运行结果
实验四
实验项目名称:简单循环程序设计
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1. 掌握循环程序的基本结构;
2. 熟练掌握while、do—while及for语句,并会用来编写循环结构程序。
二、预习内容:
教材《C语言程序设计教程》第5章。
三、实验内容:
1. 编写程序,求
的和。(要求用while语句)
源程序:
运行结果:
2. 有一个分数序列:
,
,
,
…… 编写程序,求这个数列的前20项之和。(要求用for语句,且结果保留6位小数)
源程序:
运行结果:
3. 一个乒乓球从100米高空自由落下,每次落地后,反跳回原高度的一半再落下。求它在第10次落地时,共经过多少距离以及第10次落地后乒乓球反弹的高度。(选择自己擅长的循环语句,结果保留6位小数。)
源程序:
运行结果:
实验五
实验项目名称:多层循环程序设计及break、continue语句在循环程序中的应用
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1. 掌握多层循环程序的执行过程及设计方法;
2. 掌握break及continue语句在循环程序中的使用方法。
二、预习内容:
教材《C语言程序设计教程》第5章。
三、实验内容:
1. 编写一个程序,打印一个如下图所示的图形。
*
***
*****
*******
源程序:
2. 编程输出100以内的所有素数。
源程序:
运行结果:
3. 编程输出前2个水仙花数(所谓“水仙花数”,是指一个3位数,其各位数字的立方和等于该数本身,例如,153=13+53+33,所以153是一个水仙花数)。
源程序:
运行结果:
实验六
实验项目名称:数组及其应用
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1. 掌握一维数组的定义、赋值、输入输出及其应用;
2. 掌握二维数组的定义、赋值、输入输出及其应用;
3. 掌握字符数组的定义、赋值、输入输出及其应用。
二、预习内容:
教材《C语言程序设计教程》第6章。
三、实验内容:
1. 编程在一个已按从小到大排列好的数组中插入一个数,要求插入该数后的数组仍按原规律排列。
源程序:
运行结果:
2. 编程输出杨辉三角形(书本151页编程题第4小题)。
源程序:
3. 编程输入一行字符,将其中的所有英文字母组成一个新的字符串并输出。
源程序:
运行结果:
实验七
实验项目名称:函数的定义及调用
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1.熟悉定义函数的方法;
2. 掌握函数的调用方式及主调函数与被调函数间的信息传递方法;
3. 掌握递归方法以及会用函数来实现递归。
二、预习内容:
教材《C语言程序设计教程》第7章。
三、实验内容:
1. 编写一个判断素数的函数prime,在主函数中输入一个正整数,调用prime判断是否是素数,结 果在主函数中输出。
源程序:
运行结果:
2. 编写一个函数gbs,计算两个正整数的最小公倍数。在主函数中输入两个正整数,调用函数求它 们的最小公倍数,结果在主函数中输出。
源程序:
运行结果:
3. 用递归方法求解猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘了多少个桃子。
源程序:
运行结果:
实验八
实验项目名称:数组名作函数参数及变量的作用域与存储方式
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1.掌握数组名作函数参数时形参与实参的定义方法;
2.会使用数组名作函数参数在主调函数与被调函数间传递多个数据;
3.掌握变量的作用域(局部变量与全局变量);
4. 掌握变量的存储方式(动态存储与静态存储)。
二、预习内容:
教材《C语言程序设计教程》第7章。
三、实验内容:
1. 运行以下程序,并分析结果。
#include <stdio.h>
int x=8,y=3;
int max(int a,int b)
{
int c;
if(a>b) c=a;
else c=b;
return c;
}
int main( )
{
int x=4,maxi;
maxi=max(x,y);
printf("%d\\n",maxi);
return 0;
}
2. 运行以下程序,并分析结果。
#include <stdio.h>
int f(int a)
{
static int b=0;
b=b+a;
return b;
}
int main( )
{
int x=1,y1,y2;
y1=f(1);
y2=f(1);
printf("y1=%d,y2=%d\\n",y1,y2);
return 0;
}
3. 在主函数中输入10个整数,调用函数sort将它们按从小到大的顺序排序,排序结果在主函数中输出。
四、源程序清单:
3.
五、实验结果:
1. 运行结果:
2. 运行结果:
3. 运行结果:
实验九
实验项目名称:指针及其应用
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1.掌握指针和间接访问的概念,会定义和使用指针变量;
2. 能利用指针变量作函数参数得到多个要改变的值;
3.能正确定义指向数组的指针变量,并能用其对数组进行访问;
4.能正确定义指向字符串的指针变量,并能用其对字符串进行访问。
二、预习内容:
教材《C语言程序设计教程》第9章。
三、实验内容:
1. 在主函数中输入2个整数,调用swap函数将它们的值交换,结果在主函数中输出。
2. 在主函数中输入10个整数,调用函数sum求它们的和,结果在主函数中输出(要求:实参用数组名,形参用指针变量)。
3. 在主函数中输入一个字符串,调用converse函数将该字符串逆序,结果在主函数中输出。(要求:实参用字符数组名,形参用指针变量)。
四、源程序清单:
1.
2.
3.
五、实验结果:
1. 运行结果:
2. 运行结果:
3. 运行结果:
实验十
实验项目名称:构造数据类型
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的
1.掌握结构体类型变量和结构体类型指针的定义和使用;
2.掌握结构体类型数组的定义和使用;
3.掌握共用体类型、枚举类型、用户自定义类型的定义和使用。
二、预习内容
教材《C语言程序设计》第10章。
三、实验内容
1.调试、运行下面的程序一。
#include \”stdio.h\”
union data
{
int a;
float b;
char c;
};
void main( )
{
union data d={65};
printf(\”%d\\n\”,d.a);
printf(\”%f\\n\”,d.b);
printf(\”%c\\n\”,d.c);
}
程序的运行结果(或其截图):
2.下面程序二中结构体数组stu1[ ]存放了五个同学的姓名name[ ]和年龄age信息。该程序的功能是想输出成员年龄age最小的元素的各成员值,但程序中有错误,请调试、运行该程序。
已知结构体数组stu1[ ]中各元素的成员信息是:
结构体数组元素
成员name[ ]
成员age
stu1[0]
张三
20
stu1[1]
李四
18
stu1[2]
王五
19
stu1[3]
孙六
20
stu1[4]
陈七
19
#include \”stdio.h\”
#define N 5
typedef struct students
{
char name[9];
int age;
}STUDENT[N];
void main( )
{
STUDENT stu,stu1[N];
int i,j,k;
struct students *pstu=&stu[0],*t=stu1[0];
printf(\”请输入同学的姓名、年龄:\\n\”);
for(i=0;i<N;i++)
scanf(\”%s%d\”,stu[i].name,&stu[i].age);
for(i=0;i<N-1;i++)
{
k=i;
for(j=i+1;j<N;j++)
{
if(((pstu+j)->age)>((pstu+k)->age))
k=j;
}
*t=*(pstu+k);
*(pstu+k)=*(pstu+i);
*(pstu+i)=*t;
}
printf(\”年龄最小的同学:姓名 %s,年龄 %d\\n\”,stu[0].name,stu[0].age);
}
改正后的程序二:
程序的运行结果(或其截图):
3.编写程序三。键盘输入某日,计算并显示该日在本年度中是第几天?例如,若输入是:2015 10 8(表示2015年10月8日),则程序运行结果是:2015年10月8日是2015年中的第281天。要求:用包括年、月、日信息的结构体变量。
代码如下:
程序的运行结果(或其截图):
实验十一
实验项目名称:文件
一、实验目的
1.掌握文件、缓冲文件系统、文件指针的概念。
2.学会使用文件的打开、关闭、读、写等文件操作函数。
二、预习内容
教材《C语言程序设计》第11章。
三、实验内容
1.编写程序一。从键盘输入一个字符串(以“!”结束),将其中的小写字母全部转换成大写字母,然后输出到磁盘文件“test.txt”中保存。
代码如下:
插入文件“test.txt”的内容:
2.编写程序二。已有十位同学的三门课成绩等信息:
学号
姓名
高等数学
大学英语
体育
总分
201501
赵一
92
74
91
201502
钱二
67
88
74
201503
张三
89
68
95
201504
李四
95
94
90
201505
王五
85
75
65
201506
孙六
87
79
73
201507
陈七
82
81
69
201508
刘八
73
89
70
201509
周九
66
92
68
201510
谢十
78
85
93
由键盘输入以上数据,计算每个同学的总分,将原有数据和计算出来的总分存放在磁盘文件“stud.txt”中。
代码如下:
插入文件“stud.txt”的内容:
全国计算机等级考试《二级C语言程序设计》资料
勤笃学习网小编整理了相关信息如下,欢迎大家点击查看!更多复习资料|历年真题|模拟试题|视频课程,请关注勤笃学习网官网。
本书是全国计算机等级考试二级C语言程序设计的历年真题与模拟试题详解。全书由两部分组成:第一部分为历年真题及详解,精选了二级C语言程序设计的历年考试真题,并对全部真题的答案进行了详细的分析和说明;第二部分为模拟试题及详解,按照最新考试大纲及近年的命题规律精心编写了2套模拟试题,并根据最新指定教材对所有试题进行了详细的分析和说明。
资料来源:勤笃学习网
2016年9月全国计算机等级考试《二级C语言程序设计》真题及详解
(考试时间120分钟 满分100分)
一、选择题(每题1分,共40分)
1下列链表中,其逻辑结构属于非线性结构的是( )。
A.二叉链表
B.循环链表
C.双向链表
D.带链的栈
【答案】A查看答案
【解析】一个非空的数据结构为线性结构需要满足两个条件:①有且只有一个根结点;②每一个结点最多有一个前件,也最多有一个后件。不是线性结构的就是非线性结构。二叉链表是二叉树的存储结构,结点中存在含有两个后继结点的结点,是非线性结构。BCD三项均满足线性结构的要求。答案选择A选项。
2下列线性链表的叙述中,正确的是( )。
A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C.进行插入与删除时,不需要移动表中的元素
D.以上三种说法都不对
【答案】C查看答案
【解析】AB两项错误,在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。线性链表在插入与删除过程中不发生数据元素移动的现象,只需改变有关结点的指针,选项C正确。答案选择C选项。
3某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为( )。(假设根结点在第1层)
A.3
B.4
C.6
D.7
【答案】D查看答案
【解析】在任意一个二叉树中,度为0的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1-1=0个,即二叉树的每一个结点都只有一个孩子,7个结点共7层。答案选择D选项。
4软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是( )。
A.编辑软件
B.操作系统
C.教务管理系统
D.浏览器
【答案】B查看答案
【解析】系统软件是控制和协调计算机及外部设备,支持应用软件开发和运行的软件,操作系统是系统软件;支撑软件是支撑各种软件的开发与维护的软件,又称为软件开发环境,浏览器属于支撑软件;应用软件是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,编辑软件、教务管理软件属于应用软件。答案选择B选项。
5在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。
A.O(n)
B.O(n2)
C.O(log2n)
D.O(nlog2n)
【答案】C查看答案
【解析】二分查找的最坏情况是不断的二分直至无法再分时,仍然没有查找成功。对于有序的线性表,二分查找法只需比较log2n次。答案选择C选项。
6有三个关系R、S和T如下:
R
S
T
则由关系R和S得到关系T的操作是( )。
A.自然连接
B.并
C.差
D.交
【答案】C查看答案
【解析】差运算,是在关系R中删除S中存在的元组。R和S的差是由属于R但不属于S的元组组成的集合,运算符为“-”。记为T=R-S。根据本题关系R和关系S运算前后的变化,可以看出此处进行的是关系运算的差运算。答案选择C选项。
7下面描述中,不属于软件危机表现的是( )。
A.软件过程不规范
B.软件开发生产率低
C.软件质量难以控制
D.软件成本不断提高
【答案】A查看答案
【解析】软件的危机表现包括:①软件需求的增长得不到满足,用户对系统不满意的情况经常发生;②软件开发成本和进度无法控制;③软件质量难以保证;④软件不可维护或维护程度非常低;⑤软件的成本不断提高;⑥软件开发的生
点击文末了解更多
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。