中国高校课件下载中心 》 教学资源 》 大学文库

长江大学:电工电子国家级实验教学示范中心《C语言程序设计》课程实验指导书

文档信息
资源类别:文库
文档格式:PDF
文档页数:102
文件大小:1.17MB
团购合买:点击进入团购
内容简介
实验一 C 程序的运行环境 .1 实验二 数据类型、运算符和表达式 .5 实验三 顺序结构程序设计.10 实验四 逻辑结构程序设计.14 实验五 循环控制.18 实验六 数组.23 实验七 函数 1.30 实验八 函数 2.34 实验九 指针 1.39 实验十 指针 2.42 实验十一 结构体、共用体和位运算 .45 实验十二 文件.51 实验十三 综合实验 1(用函数实现) .54 EG13-1: 打印各个月份的月历 .54 EG13-2: 小学数学运算的程序 .57 实验十四 综合实验 2(用函数、结构体、文件实现) .58 EG14-1: 通讯录管理系统 .58 EG14-2: 学生选课管理系统 .70 实验十五 综合实验 3(用函数、结构体、文件实现) .71 EG15-1: 学生成绩管理系统 .71 EG15-2: 图书信息管理系统 .78 实验十六 综合实验 4(用函数、结构体、文件、链表实现) .80 EG16-1: 学生成绩管理系统 .80 EG16-2: 实验设备管理系统 .85 附录 1:常见错误提示信息的英汉对照 .87 附录 2:VISUAL C++ 6.0 集成开发环境的使用 .94
刷新页面文档预览

《C语言程序设计》实验指导书2010年6月长江大学电信学院计算机课程组

《C 语言程序设计》实验指导书 2010 年 6 月 长江大学电信学院计算机课程组

前言C语言是现代最流行的通用程序设计语言之一,它既具有高级程序设计语言的优点,又具有低级程序设计语言的特点,既可以用来编写系统程序,又可以用来编写应用程序。因此,C语言正在被迅速地推广和普及。上机实验是该课程教学的一个重要环节,因此要求学生做一定数量的上机实验。本指导书可增强同学上机实验的针对性。整个教学和实验中,我们采用VC++6.0作为实验环境,强调学生切实培养动手实践能力,掌握调试程序的方法,通过调试理解C语言程序运行的过程以及C语言的语法规则,为后续的课程设计,计算机等级考试及其他应用做好充分的准备。本实验指导书通过大量的实例,循序渐进地引导学生做好各章的实验。根据实验教学天纲,我们编写了十四个实验,其中必做12个,选做2个(四选二)。内容结构如下:1、每个必做实验分成五部分内容:(1)实验目的;(2)相关知识点(3)实验内容一(偏重于:验证及程序分析):(4)实验内容二(偏重于:综合及设计类):(5)扩展内容(偏重于:灵活应用)。其中:实验内容一要求必做,实验内容二和扩展内容可由老师选择。2、每个选做实验分成四部分内容:(相对于必做实验省略了“扩展内容”)。选做实验要求实验课前将“实验内容一”完成并理解,并对“实验内容二”做一定的预习,准备好相关代码,选做实验课中最好以调试和讨论为主。老师可以根据实际情况以2人为一组合作完成。在实验之前,要求学生对实验作好预习工作。在实验中,学生根据实验指导中的内容进行验证与总结,然后再去完成实验内容中安排的任务。实验结束后,应及时提交实验报告,其内容应包括如下项目,具体可根据实验内容和实验要求进行增删。实验报告要求包含如下:实验内容一:1、实验题目2、程序运行结果及分析实验内容二:1、实验题目2、设计思路或算法分析3、程序源代码4、程序运行结果及分析扩展内容:1、实验题目2、设计思路或算法分析3、流程图4、程序源代码i

i 前 言 C 语言是现代最流行的通用程序设计语言之一,它既具有高级程序设计语言的优点, 又具有低级程序设计语言的特点,既可以用来编写系统程序,又可以用来编写应用程序。 因此,C 语言正在被迅速地推广和普及。上机实验是该课程教学的一个重要环节,因此 要求学生做一定数量的上机实验。本指导书可增强同学上机实验的针对性。整个教学和 实验中,我们采用 VC++6.0 作为实验环境,强调学生切实培养动手实践能力,掌握调试 程序的方法,通过调试理解 C 语言程序运行的过程以及 C 语言的语法规则,为后续的课 程设计,计算机等级考试及其他应用做好充分的准备。 本实验指导书通过大量的实例,循序渐进地引导学生做好各章的实验。根据实验教 学大纲,我们编写了十四个实验,其中必做 12 个,选做 2 个(四选二)。内容结构如下: 1、每个必做实验分成五部分内容: (1)实验目的; (2)相关知识点 (3)实验内容一(偏重于:验证及程序分析): (4)实验内容二(偏重于:综合及设计类): (5)扩展内容 (偏重于:灵活应用)。 其中:实验内容一要求必做,实验内容二和扩展内容可由老师选择。 2、每个选做实验分成四部分内容:(相对于必做实验省略了“扩展内容”)。 选做实验要求实验课前将“实验内容一”完成并理解,并对“实验内容二”做一定 的预习,准备好相关代码,选做实验课中最好以调试和讨论为主。老师可以根据实际情 况以 2 人为一组合作完成。 在实验之前,要求学生对实验作好预习工作。在实验中,学生根据实验指导中的内 容进行验证与总结,然后再去完成实验内容中安排的任务。 实验结束后,应及时提交实验报告,其内容应包括如下项目,具体可根据实验内容 和实验要求进行增删。实验报告要求包含如下: 实验内容一: 1、实验题目 2、程序运行结果及分析 实验内容二: 1、实验题目 2、设计思路或算法分析 3、程序源代码 4、程序运行结果及分析 扩展内容: 1、实验题目 2、设计思路或算法分析 3、流程图 4、程序源代码

5、程序运行结果及分析6、存在的问题。ii

ii 5、程序运行结果及分析 6、存在的问题

目录实验一(C程序的运行环境实验二数据类型、运算符和表达式实验三顺序结构程序设计.10实验四逻辑结构程序设计.14实验五循环控制18实验六数组..23.30实验七函数1...:实验八函数2...34实验九指针1...39.42实验十:指针2.实验十一结构体、共用体和位运算45.51实验十二文件..实验十三综合实验1(用函数实现).54EG13-1:打印各个月份的月历5457EG13-2:小学数学运算的程序.58实验十四综合实验2(用函数、结构体、文件实现)..58EG14-1:通讯录管理系统EG14-2:学生选课管理系统70.71实验十五综合实验3(用函数、结构体、文件实现)EG15-1:学生成绩管理系统....71..78EG15-2:图书信息管理系统实验十六综合实验4(用函数、结构体、文件、链表实现)..80.80EG16-1:学生成绩管理系统.85EG16-2:实验设备管理系统.87附录1:常见错误提示信息的英汉对照附录2:VISUALC++6.0集成开发环境的使用94ili

iii 目 录 实验一 C 程序的运行环境 .1 实验二 数据类型、运算符和表达式 .5 实验三 顺序结构程序设计.10 实验四 逻辑结构程序设计.14 实验五 循环控制.18 实验六 数组.23 实验七 函数 1.30 实验八 函数 2.34 实验九 指针 1.39 实验十 指针 2.42 实验十一 结构体、共用体和位运算 .45 实验十二 文件.51 实验十三 综合实验 1(用函数实现) .54 EG13-1: 打印各个月份的月历 .54 EG13-2: 小学数学运算的程序 .57 实验十四 综合实验 2(用函数、结构体、文件实现) .58 EG14-1: 通讯录管理系统 .58 EG14-2: 学生选课管理系统 .70 实验十五 综合实验 3(用函数、结构体、文件实现) .71 EG15-1: 学生成绩管理系统 .71 EG15-2: 图书信息管理系统 .78 实验十六 综合实验 4(用函数、结构体、文件、链表实现) .80 EG16-1: 学生成绩管理系统 .80 EG16-2: 实验设备管理系统 .85 附录 1:常见错误提示信息的英汉对照 .87 附录 2:VISUAL C++ 6.0 集成开发环境的使用 .94

实验一C程序的运行环境实验目的1.了解和使用VisualC++6.0(简称VC)集成开发环境;2.熟悉VC的控制台应用程序的开发、调试步骤和方法:3、掌握C程序的编辑、编译、连接和运行过程;4、了解工程、文件、工作区等基本概念:5、能理解常见错误的提示信息,并根据提示进行改错。相关知识点VC集成开发环境;C语言的编辑、编译、连接和运行过程:C语言的调试方法和工具:C语言的基本组成特点。术语:“控制台应用程序”是一个在DOS窗口中运行的基于字符的程序。由于这种模式的应用程序比Windows程序简单,我们先选择利用VisualC++来建立这样一个应用,这样使得我们可以将精力先投入到学习使用C或者C++编程语言,而不需要把过多的精力投入到学习复杂的Windows编程中去。三、实验内容一(验证及程序分析)Eg1-1:使用VisualC++6.0集成环境来编辑、编译并运行下面的示例程序:#include<stdio.h)void mainOtprintf("This is my first C program! In"):【说明:】本题要求完成一个字符串的输出,并且是“依葫芦画瓢”哦!实验步骤:(1)启动VisualC++开发环境(2)创建一个工程a.单击File菜单中的New选项,显示出新建对话框b.选择Win32ConsoleApplication。c.选择项目所在路径及输入项目的名称d.在建立一个什么类型的控制台应用程序中,选中“一个空工程”,按“完成”1

1 实验一 C 程序的运行环境 一、 实验目的 1. 了解和使用 Visual C++ 6.0(简称 VC)集成开发环境; 2. 熟悉 VC 的控制台应用程序的开发、调试步骤和方法; 3、掌握 C 程序的编辑、编译、连接和运行过程; 4、了解工程、文件、工作区等基本概念; 5、能理解常见错误的提示信息,并根据提示进行改错。 二、 相关知识点 VC 集成开发环境; C 语言的编辑、编译、连接和运行过程; C 语言的调试方法和工具; C 语言的基本组成特点。 术语:“控制台应用程序”是一个在 DOS 窗口中运行的基于字符的程序。由于这种 模式的应用程序比 Windows 程序简单,我们先选择利用 Visual C++来建立这样一个 应用,这样使得我们可以将精力先投入到学习使用 C 或者 C++编程语言,而不需要 把过多的精力投入到学习复杂的 Windows 编程中去。 三、 实验内容一(验证及程序分析) Eg1-1:使用 Visual C++ 6.0 集成环境来编辑、编译并运行下面的示例程序: #include void main() { printf("This is my first C program!\n"); } 【说明:】本题要求完成一个字符串的输出,并且是“依葫芦画瓢”哦! 实验步骤: (1)启动 Visual C++开发环境 (2)创建一个工程 a. 单击 File 菜单中的 New 选项,显示出新建对话框 b. 选择 Win32 Console Application。 c. 选择项目所在路径及输入项目的名称 d. 在建立一个什么类型的控制台应用程序中,选中“一个空工程”,按“完成

按钮,至此,已经建立好工程相关的文件。(3)建立C++源程序文件a.选菜单命令Project|AddtoProject|New,弹出New对话框b.在New对话框的Files选项卡中选择C++SourceFile,并填入文件名称,单击OK按钮,完成新建C++源程序文件(4)编辑C++源程序文件a.在文件编辑窗口中输入代码b.完成后,选择菜单FileSave保存这个文件(5)编译、链接并运行可执行程序a.选择菜单命令Compile,建立目标代码文件;如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源程序进行修改后,重新选择菜单命令Compile建立目标代码文件。b.选择菜单命令Build,建立可执行程序如果你正确输入了源程序,此时便成功地生成了可执行程序如果程序有链接错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源程序进行修改后,重新选择菜单命令Build建立可执行程序。c.选择菜单命令Run,运行程序,观察屏幕显示内容。【说明】有时也可直接选菜单命令Run,将“编译、链接并运行”几个步骤合为一起。(6)关闭工作空间选择菜单命令File|ColseWorkSpace关闭工作空间。Eg1-2:使用VisualC++6.0集成环境来编辑、编译并运行下面示例程序:(1)源程序#include<stdio.h)void main1int a,b,temp;b=4;a=3;/*将a的值存储起来*/temp=a;a=b;/*将b的值转到a中,实现b向a转换*//*将记录a原始值的变量temp,赋值给b,实现a向b转换*/b=temp:2

2 按钮,至此,已经建立好工程相关的文件。 (3)建立 C++源程序文件 a. 选菜单命令 Project|Add to Project|New,弹出 New 对话框 b. 在 New 对话框的 Files 选项卡中选择 C++ Source File,并填入文件名称, 单击 OK 按钮,完成新建 C++源程序文件 (4) 编辑 C++源程序文件 a. 在文件编辑窗口中输入代码 b. 完成后,选择菜单 File|Save 保存这个文件 (5) 编译、链接并运行可执行程序 a. 选择菜单命令 Compile,建立目标代码文件; 如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这 些错误信息对源程序进行修改后,重新选择菜单命令 Compile 建立目标代码文 件。 b. 选择菜单命令 Build,建立可执行程序 如果你正确输入了源程序,此时便成功地生成了可执行程序。 如果程序有链接错误,则屏幕下方的状态窗口中会显示错误信息,根据这 些错误信息对源程序进行修改后,重新选择菜单命令 Build 建立可执行程序。 c. 选择菜单命令 Run,运行程序,观察屏幕显示内容。 【说明】有时也可直接选择菜单命令 Run,将“编译、链接并运行”几个步骤 合为一起。 (6) 关闭工作空间 选择菜单命令 File|Colse WorkSpace 关闭工作空间。 Eg1-2: 使用 Visual C++ 6.0 集成环境来编辑、编译并运行下面示例程序: (1)源程序 #include void main() { int a,b,temp; a=3; b=4; temp=a; /* 将 a 的值存储起来 */ a=b; /* 将 b 的值转到 a 中,实现 b 向 a 转换 */ b=temp; /* 将记录 a 原始值的变量 temp,赋值给 b,实现 a 向 b 转换 */

printf(“a=%d,b=%dn",a,b):1(2)实验步骤:建立一个控制台应用程序项目Exam1-2,向其中添加一个C++源文件Eg1-2.cpp,输入程序,检查一下确认没有输入错误,选择菜单命令编译源程序,再选择运行程序。(3)运行结果:Eg1-3:求1+2+3+4+5+·.+100累加和【说明:】本题要求完成经典的C算法--累加求和,当我们把计算方法教给计算机后,剩下计算的问题就让计算机来算好了,计算机会像一头老黄牛一样不厌其烦地做事情。以后会有相似的算法如“连乘”,“求级数”,“求口”,“求阶乘”等。(1)源程序:#include<stdio.h)void mainO1int i, sum=0;for(i=l;i<=100;i++)sum=sum+i;/*累加求和*/printf("sum=%d)n",sum);1(2)在VC++编辑环境下编辑源程序。(3)编译直到程序没有错误。(4)运行结果:四、实验内容二(综合及设计类)Eg1-4:输入2个数据,计算它们的和,并打印输出在屏幕上。【说明:】本题要求完成基本的键盘输入和屏幕输出的练习#include<stdio.h)void mainO(int a,b, s:/*定义变量*/printf(" Enter two number a,b=?\n");scanf("%d%d"&a,&b):/*调用标准函数,要求用户输入2个数据*/3

3 printf(“a=%d,b=%d\n”,a,b); } (2)实验步骤:建立一个控制台应用程序项目 Exam1-2,向其中添加一个 C++源文件 Eg1-2.cpp,输入程序,检查一下确认没有输入错误,选择菜单命令编译源程序,再选择 运行程序。 (3)运行结果: Eg1-3:求 1+2+3+4+5+„„+100 累加和 【说明:】本题要求完成经典的 C 算法-累加求和,当我们把计算方法教给计算机后,剩 下计算的问题就让计算机来算好了,计算机会像一头老黄牛一样不厌其烦地做事情。以 后会有相似的算法如“连乘”,“求级数”,“求Π ”,“求阶乘”等。 (1)源程序: #include void main() { int i,sum=0; for(i=1;i void main() { int a,b,s; /* 定义变量 */ printf(" Enter two number a,b=?\n"); scanf("%d%d", &a,&b); /*调用标准函数,要求用户输入 2 个数据 */

s=a+b;printf("s=%d\n",s);(2)在VC++编辑环境下编辑源程序。(3)编译直到程序没有错误。(4)从键盘输入1020/,运行结果如何?(5)从键盘输入10,20/,运行结果如何?(6)任意输入2个整数,之间用“空格”,或者“回车键”,或者“Tab键”分隔,分析结果如何?五、扩展内容Eg1-5:编写一个C程序:输入a,b,c三个值,输出其中最大者。Eg1-6:编写一个C程序:计算8!【小结:】多分析阅读别人写的程序,多自已动手编写一些小程序,多上机调试运行程序,做到这3个“多”字,学习好C程序设计就不难了。4

4 s=a+b; printf("s=%d\n",s); } (2)在 VC++编辑环境下编辑源程序。 (3)编译直到程序没有错误。 (4)从键盘输入 10 20↙,运行结果如何? (5)从键盘输入 10,20↙,运行结果如何? (6)任意输入 2 个整数,之间用“空格”,或者“回车键”,或者“Tab 键”分隔,分析 结果如何? 五、 扩展内容 Eg1-5: 编写一个 C 程序:输入 a, b, c 三个值,输出其中最大者。 Eg1-6: 编写一个 C 程序:计算 8! 【小结:】多分析阅读别人写的程序,多自己动手编写一些小程序,多上机调试运行程 序,做到这 3 个“多”字,学习好 C 程序设计就不难了

实验二数据类型、运算符和表达式一、实验目的1、掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法:2、掌握不同的数据类型之间赋值的规律;3、学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加和自减运算符的使用:4、进一步熟悉C程序的编辑、编译、连接和运行的过程。二、相关知识点C语言基本数据类型包括:数值类型(整形,实型),字符类型等,是我们进行基本数据运算的基础。用定点或浮点方式表示。常量就是不能改变的量,它们的值在程序中不可能发生改变,我们可以用一个标识符来代表一个常量,这叫做符号常量。变量是在程序运行过程中其值可以发生改变的量。每一个变量都有名字。要注意区分变量名和变量值常量和变量都有各种类型。如整型,实型,字符型等。整型常量就是整数。C语言中整数有三种表示方法:十进制整数、八进制整数或十六进制整数。整型变量在C语言中能量会分成4种:基本型int、短整型short、长整型long和无符号型unsigned。实型常量就是我们通常所说的小数,有两种表示方式:小数形式、指数形式,实型变量在C语言中有两种:float和double。字符型数据包括:字符型常量(是用单引号括起来的一个字符)、字符型变量(用来存放字符常量)、字符串常量(多个字符串联在一起,用一对双引号括起来)组成。将一个字符常量存放到一个字符变量中,实际上只是把该字符的ASCI码存放到此字符变量中,字符串常量在内存中的存放方式有一个特殊的地方,系统会自动给每个字符串常量的结尾加上一个0字符,作为字符串结束标志。变量在使用前必须定义。定义变量的格式如下:变量类型变量名1,变量名2,.;任何一个变量,必须先赋值,后使用。C语言提供了非常丰富的运算符,包括:算术运算符(+、“、*、/、%),关系运算符(>、=、>、一、下、^)、赋值运算符(=及其扩展赋值运算如+=、*=、二、/=等)、条件运算符(?:通常用条件语句)、逗号运算符(,)、指针运算符(&和*)、求字节数运算符(sizeof、强制类型转换运算符(int,float(5%3))、分量运算符(一>)、下标运算符([])5

5 实验二 数据类型、运算符和表达式 一、 实验目的 1、掌握 C 语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它 们赋值的方法; 2、掌握不同的数据类型之间赋值的规律; 3、学会使用 C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加和自 减运算符的使用; 4、进一步熟悉 C 程序的编辑、编译、连接和运行的过程。 二、 相关知识点 C 语言基本数据类型包括:数值类型(整形,实型),字符类型等,是我们进行基本 数据运算的基础。用定点或浮点方式表示。 常量就是不能改变的量,它们的值在程序中不可能发生改变,我们可以用一个标识 符来代表一个常量,这叫做符号常量。 变量是在程序运行过程中其值可以发生改变的量。每一个变量都有名字。要注意区 分变量名和变量值 常量和变量都有各种类型。如整型,实型,字符型等。 整型常量就是整数。C 语言中整数有三种表示方法:十进制整数、八进制整数或十 六进制整数。 整型变量在 C 语言中能量会分成 4 种:基本型 int、短整型 short、长整型 long 和 无符号型 unsigned。 实型常量就是我们通常所说的小数,有两种表示方式:小数形式、指数形式。 实型变量在 C 语言中有两种:float 和 double。 字符型数据包括:字符型常量(是用单引号括起来的一个字符)、字符型变量(用来存放 字符常量)、字符串常量(多个字符串联在一起,用一对双引号括起来)组成。将一个字 符常量存放到一个字符变量中,实际上只是把该字符的 ASCII 码存放到此字符变量中, 字符串常量在内存中的存放方式有一个特殊的地方,系统会自动给每个字符串常量的结 尾加上一个‟\0‟字符,作为字符串结束标志。 变量在使用前必须定义。定义变量的格式如下: 变量类型 变量名 1,变量名 2,.; 任何一个变量,必须先赋值,后使用。 C 语言提供了非常丰富的运算符,包括:算术运算符( +、-、*、/、%),关系运算 符(>、=、>、 —、|、^)、赋值运算符 (= 及其扩展赋值运算如+=、*=、-=、/=等)、条件运算符(?: 通常用条件语句)、逗号运算符( ,)、指针运算符 (&和*)、求字节数运算符(sizeof ()、强制类型转换运算符(int,float(5%3))、分量运算符 ( .—>)、下标运算符 ( [ ])

和其它(如函数调用运算符())。其组合运算符合其运算优先级的限制。三、实验内容一(验证及程序分析)Eg2-1:输入并运行下面的程序#includevoid main()1char cl,c2 ;cl=a';c2=b';printf("%c%cln",cl,c2);1(1)运行此程序。(2)在此基础上增加一条语句:printf("%d%dn",cl,c2);再运行,并分析结果。(3)将第2行改为:intcl,c2;再使之运行,并观察结果。(4)再将第3、4行改为:cl=a;c2=b;再使之运行,分析其运行结果。(5)再将第3、4行改为:c1=“a”:c2=“b”:再使之运行,分析其运行结果。(6)再将第3、4行改为:c1=280:c2=350:/*用大于255的整数*/再使之运行,分析其运行结果。E92-2:输入并运行程序(上机前先分析程序写出结果,上机后作对照):#includevoid main()1char cl='a';char c2='b' :char c3=c';charc4=1101':char c5=1116';printf("a=%cb%cltc%cltabcln",cl,c2,c3);printf("ltlb%c %c",c4,c5);7可以改变程序中各变量的值,以便比较其差异。E92-3:输入并运行下面的程序:6

6 和其它( 如函数调用运算符())。其组合运算符合其运算优先级的限制。 三、 实验内容一(验证及程序分析) Eg2-1: 输入并运行下面的程序 #include void main( ) { char c1,c2 ; c1='a' ; c2='b' ; printf("%c%c\n",c1,c2); } (1)运行此程序。 (2)在此基础上增加一条语句: printf(“%d%d\n”,c1,c2); 再运行,并分析结果。 (3)将第 2 行改为:int c1,c2; 再使之运行,并观察结果。 (4)再将第 3、4 行改为:c1=a; c2=b; 再使之运行,分析其运行结果。 (5)再将第 3、4 行改为:c1= “a”; c2= “b”; 再使之运行,分析其运行结果。 (6)再将第 3、4 行改为:c1=280; c2=350; /*用大于 255 的整数*/ 再使之运行,分析其运行结果。 Eg2-2:输入并运行程序(上机前先分析程序写出结果,上机后作对照): #include void main( ) { char c1='a' ; char c2='b' ; char c3='c' ; char c4='\101' ; char c5='\116' ; printf("a=%cb%c\tc%c\tabc\n",c1,c2,c3); printf("\t\b%c %c",c4,c5); } 可以改变程序中各变量的值,以便比较其差异。 Eg2-3:输入并运行下面的程序:

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档