文档库 最新最全的文档下载
当前位置:文档库 › 实验五 函数与编译预处理

实验五 函数与编译预处理

实验五  函数与编译预处理
实验五  函数与编译预处理

实验五函数与编译预处理

实验课程名:高级语言程序设计(C)

专业班级:学号:姓名:

说明:

1、每次实验报告后,以学生的学号+实验项目名作为该word文件名保存。例如某学

生学号为20080001,姓名为张三,本次实验名称是:实验一顺序结构程序设计,

则本次实验报告的保存文件名为:01张三实验一.doc。(禁止提交文件夹)

2、在每次试验完后内,学生以整个试验项目为一个完整文档,将本报告(电子文档和

纸质文档)按照(1)要求的文件名提交给实验指导教师。

实验九 Servlet应用

实验九 Servlet应用 1.实验目标 1.掌握Servlet的编写与配置 2.理解Servlet的生命周期 3.理解Servlet与JSP的区别 2.实验内容与要求 1.主要通过实践掌握对servlet的使用、编写 2.创建一个简单的servlet程序并在tomcat中进行配置 3.创建一个可以接收客户端提交参数,处理后返回给客户端的servlet程序。 4.使用request.getParameterValues(“”)获取复选框数据,实现用户注册功能 3.实验步骤 1. 实现一个简单的HelloServlet,要求在IE中显示“Hello XXX”字符串。 1)通过继承HttpServlet类创建自己的servlet类 2)在servlet类的doGet()方法中输出自己的信息 3)将生成的HelloServlet.java类编译成HelloServlet.class类,注意编译的时候要用到servlet-api.jar文件。

2.创建和部署Servlet 1)在Tomcat\webapps\目录下创建自己的项目名称myExample 2)在Tomcat\webapps\myExample目录下创建WEB-INF目录,并在该目录下创建一个classes目录,将编译后的HelloServlet.class文件拷贝到这里。 3)在Tomcat\webapps\myExample目录下创建WEB-INF目录并创建一个web.xml文件。 内容为 HelloServlet是我们自己定义的servlet-name,指定HelloServlet类(如果有报名要包含包名) 中指定的是我们在IE中所用的地址。 3.启动tomcat,测试运行 输入:http://localhost:8080\myExample\HelloServlet 2.编写一个处理登录请求的Servlet 1.编写Servlet,并接收从http中传递过来的参数 说明: 1、response.setContentType("text/html;charset=GB2312"); 和request.setCharacterEncoding("GB2312");两个方法主要是设置从客户端接收的字符编码和从服务器端返回的信息的编码,以防止中文出现乱码的的情况。 2、通过request.getParameter(" ") 方法分别得到从客户端传递过来的name和 password。 3、最后用out.println()方法输出显示给客户的信息。 4、编译LoginServlet.java,注意编译的时候使用到servlet-api.jar文件,将编译生成 的LoginServlet.class 文件拷贝到tomcat\webapps\myproject\WEB-INF\classes目录 下。

实验九 函数的重载和变量的作用域

实验九函数的重载和变量的作用域 一、实验目的 1、了解内联函数、重载函数、带默认参数函数的定义及使用方法。 2、掌握作用域的概念、变量的存储类型及它们之间的差别。 3、掌握程序的多文件组织。 二、实验内容 1、重载函数允许不同的函数使用相同的名字,这使得完成类似的任务时可以使用相同的函数名。 范例:编写几个计算面积的函数,分别计算圆、矩形、梯形和三角形的面积,计算边长为1的正方形及其内切圆、内接等腰三角形和等腰梯形面积。 函数原型如下: double area(double radius=0); //圆面积,参数为半径,默认参数为0,表示点面积 double area(double a, double b); // 计算矩形面积,参数为长和宽 double area(double a, double b, double h); //计算梯形面积,参数为两底和高 double area(double a, double b, double c, int); //计算三角形面积,参数为三边长,int 型参数起标示作用,以区别于梯形,不参加计算。 #include #include using namespace std; const double PI=3.14159; double area(double radius=0); double area(double a,double b); double area(double a,double b,double h); double area(double a,double b,double c,int); int main(){ cout<<"Area of point is"<

函数与编译预处理的实验操作

函数与编译预处理的实验操作 实验目的:了解函数的定义,掌握函数的调用和参数的传递及预编译命令实验要求:熟练掌握函数的调用及参数的传递 实验内容:1.在VC++下输入以下函数 #include int fact(int n) { int j,f=1; for(j=1;j<=n;j++) f=f*j; return f; } void main() { int k’sum=0; for(k=1;k<=5;k++) sum=sum+fact(k); printf(“sum=%d\n”,sum); } #include int max(int x,int y) { return x>y?x:y; } void main() { int a,b,c,m; printf(“请输入三个整数:\n”); scanf(“%d%d%d”,&a&b&c); m=max(c,max(a,b)); printf(“m=%d\n”,m); } #include #include int prime(int x) { int i,r=1; for(i=2;i<=sqrt(x);i++) if(x%i==0) { r=0;break;

} return r; } void output(int x,int n) { printf(“%6d”,x); if(n%5==0) printf(“\n”); } void main() { int m,n=0; for(m=2;m<=50;m++) if(prime(m)) { n++; output(m,n); } } #include double fac(int n) { double f; if(n<0) printf(“n<0,input error!”) else if(n==0||n==1)f=1; else f=fac(n-1)*n; return(n); } void main() { int n; printf(“\ninput a inteager number:”); scanf(“%d”,&n); printf(“%d!=%.1f\n”,n,fac(n)); } #include int ged (int m,int n) { int g; if(n==0) g=m; else g=ged(n,m%n);

实验9 使用T-SQL编写程序

实验9 使用T-SQL编写程序 【实验目的】 1)掌握常用函数的使用方法。 2)掌握流程控制语句的使用方法。 【实验环境】 Sql server 2005 【实验重点及难点】 1)启动SQL Server 2005查询编辑器。 2)应用转换函数。 3)应用聚合函数。 4)应用字符串函数。 5)应用IF〃〃〃ELSE语句。 6)应用WHILE语句。 【实验内容】 (1)应用转换函数 1)打开“SQL Server Manageement Studio”窗口。 2)单击“标准”工具栏上的“新建查询”按钮,打开“查询编辑器”窗口。 3)在窗口内直接输入以下语句,求Course表中课程号为“7”的课程名称的长度,并输入结果。 declare @课程名称长度int select @课程名称长度=len(Cname) from course where Cno ='7' print'课程名称长度为'+str(@课程名称长度); 4)单击“SQL编辑器”工具栏上的“分析”按钮,检查输入的T-SQL语句是否有语法错误。如果有语法错误,则进行修改,直到没有语法错误为止。 5)确保无语法错误后,单击“SQL编辑器”工具栏上的“执行”按钮。将执行结果记录下来。 (2)应用聚合函数 1)在“查询编辑器”窗口内输入以下语句,统计Student表中的学生人数,并输出结果。 declare @学生人数int select @学生人数=count(*) from Student print'学生人数为'+str(@学生人数); 2 )单击“SQL编辑器”工具栏上的“执行”按钮。将执行结果记录下来。

实验九 数组

实验九数组 一、实验目的 ①掌握数组的声明、数组元素的引用。 ②掌握静态数组和动态数组的使用差别。 ③掌握用数组解决与数组有关的常用算法,如:求最大(最小)值、求和、求平均值、排序(冒泡法排序、选择法排序和插入法排序)和查找等。 二、实验任务 实验内容1: 设有如下两组数据:A:2,8,7,6,4,26,24B:79,27,32,40,57,66,82 编写一个程序,把上面两组数据分别读入两个数组中,然后把两个数组中对应下标的元素相加,即2+79,8+27,…,24+82,并把相应的结果放入第三个数组中,最后输出第三个数组的值。分别以姓名1.frm 和姓名1.vbp为窗体名和工程名保存在计算机上。 【分析】 两个一维数组中下标相同的元素相加之和是第三个一维数组中对应下标的元素。 实验内容2: 使用Array函数给数组进行初始化为:6,2,5,8,9,15,26,18,然后计算数组各元素的和,并在窗体上输出数组各元素的值和数组元素的和。分别以姓名 2.frm 和姓名2.vbp为窗体名和工程名保存在计算机上。 【分析】 ?Array函数只能给variant类型的数组变量进行初始化,只能给一位数组进行初始化 ?数组的元素类型必须相同,单如果数组类型是variant时,可以包含不同类型的元 素 ?数组的下界缺省为0,也可用option语句将数组的下界设置为1.数组的上界可通过 ubound函数获得。 实验内容3: 从键盘上输入10个整数,并放入一个一维数组中, 然后将其前5个元素与后5个元素对换,即:第1个 元素与第10个元素互换,第2个元素与第9个元素互 换……第5个元素与第6个元素互换。分别输出数组 原来各元素的值和对换后各元素的值。 【分析】 同一数组中元素的互换与变量交换值是类同的, 需要借助与第三个变量来作为中转的对象。

实验五 函数与编译预处理(题目)

实验五函数与编译预处理 一、实验目的及要求 1.掌握函数定义的方法; 2.掌握函数实参与形参的对应关系以及“值传递”的方式; 3.掌握函数的嵌调用和递归调用的方法; 4.掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。 5.学习对多文件程序的编译和运行。 二、实验学时 4学时 三、实验任务 1.阅读c60101.c程序,通过调试该程序,熟悉函数的调用方法及单步跟踪键F7和F8 的不同。 #include void main() { void fun(inti, int j, int k); intx,y,z; x=y=z=6; fun(x,y,z); printf("%x=%d;y=%d;z=%d\n",x,y,z); } void fun(inti, int j, int k) { int t; t=(i+j+k)*2; printf("t=%d\n",t); } 2.阅读c60102.c程序,注意在调试时F11和F10的区别,还要注意函数调用过程中形 参、实参的关系。 #include void main() { int x=10,y=20; void swap (int ,int); printf("(1)in main :x=%d,y=%d\n",x,y); swap(x,y); printf("(4)in main :x=%d,y=%d\n",x,y); } void swap (intm,int n) { int temp; printf("(2)in main :m=%d,n=%d\n",m,n); temp=m;m=n;n=temp; printf("(3)in main :m=%d,n=%d\n",m,n); } 把用户自定义函数swap()中的形式参数m和n对应改成x和y,使其与实参变量同名,再用F7跟踪程序的运行,看看有什么变化。

Excel实验2表格格式设置及公式和函数的应用

表格格式设置及公式和函数的应用 实验目的:1、熟练掌握公式和函数的应用 2、熟练掌握数据的填充、复制和移动 3、熟练掌握对表格的格式设置以及格式刷的使用 实验内容共包括四项,总分100分。 实验内容一:以自己的学号和姓名建立一个电子表格,如在工作薄“050123456789张三.xls”中的sheet1工作表中完成下列操作,其中职员工资一览表如下:(25分) 操作要求: 1.输入正确数据,按要求设置单元格和表头文字。表格标题:黑色、黑体、 加粗、合并、居中。(5分) 2.在“税收”列计算税收,当月收入超过1600元,征收5%的个人所得税,保 留2位小数。(5分) 3.在“实发金额”列计算实际发放金额,保留2位小数。(4分) 4.合计“工资”、“奖金”、“税收”、“实发金额”列,保留2位小数。(5分) 5.在表格中将工资少于1600元的职工工资用红色标出(4分) 6.将工作表的名字“sheet1”改为“职工工资一览表”(2分)

说明。(共计15分) 1.标题设为20磅红色行文行楷。把第一行设置为合并居中。(2分) 2.在“姓名”前插入一列,标题为“学号”,数据从2005001开始,按步长为3 的等差数列有上至下填充。(3分) 3.所有数据都设置对齐方式为水平和垂直居中。将表的外边框设置为蓝色双线, 内部为蓝色单线,表格底纹为浅青绿色。如下图所示(5分) 4.正确计算各位同学的总分。(2分)

(共计40分) 1、第一行字体要求16磅、黑体、合并及居中;(3分) 2、第一行和第二行分别加上底纹,如下图所示;(3分) 3、第二行8磅、华文细黑,自动换行,调整列宽如下图所示;(5分) 4、取消08普本通信内部的边框线,前6列合并单元格,第7、8、9列要求 左对齐,缩小字体填充,其余居中对齐,自动换行;(5分) 5、“07普本通信工程”的格式设置如“08普本通信工程”;(5分) 6、第一列加上虚线、绿色边框;(3分) 7、工作表名称“sheet3”修改为“开课计划”;(1分) 8、“合计”项使用求和函数,分别求出各年级“学分”,“课程总学时”, “理论学时”,“实践学时”的总和,并设置格式为蓝色加粗。(9分)

C++实验九类和对象的使用实验报告

实验九类和对象的使用实验报告 一实验目的 1、学会用构造函数对类对象进行初始化 2、掌握析构函数,并了解构造函数和析构函数的调用顺序 3、了解对象数组和对象指针的用法 4、学会共用数据的保护,了解常对象、常成员函数等的使用限制 二实验内容和要求 1.回顾课本知识,掌握重点和难点,认真分析例题熟悉本章内容。 2.完成本章课后习题2、6、7题,认真分析每一题的代码。 三实验环境 Visual C++6.0开发环境 四源程序 2、 #include using namespace std; class Date { public: Date(int,int,int); Date(int,int); Date(int); Date(); void display(); private: int month; int day; int year; }; Date::Date(intm,intd,int y):month(m),day(d),year(y) {} Date::Date(intm,int d):month(m),day(d) {year=2005;} Date::Date(int m):month(m) { day=1; year=2005; }

Date::Date() { month=1; day=1; year=2005; } void Date::display() { cout< using namespace std; class Student { public: Student(intn,float s):num(n),score(s) {}; void change(intn,float s) { num=n; score=s; } void display() { cout<

实验六 函数与编译预处理

实验六函数与编译预处理

实验六函数与编译预处理 1. void main() { float a,b,c; scanf("%f%f",&a,&b); c=add(a,b); printf("sum is %f\n",c); } float add(float x,float y) { float z; z=x+y; return(z); } //错误的地方,(1)没有包含头文件 (2)函数定义应该在函数调用的前面. 更正后的程序: #include float add(float x,float y) { float z; z=x+y; return(z); } void main() { float a,b,c; scanf("%f%f",&a,&b); c=add(a,b); printf("sum is %f\n",c); } 2. void main() { int a=3,b=6; printf("a=%d,b=%d\n",a,b); exchange1(a,b); printf(:a=%d,b=%d\n",a,b); } void exchange1(int x,int y) { int t;

t=x;x=y;y=t; printf("x=%d,y=%d\n",x,y); } //错误的地方,(1)没有包含头文件 (2)函数定义应该在函数调用的前面. 更正后的程序: #include void exchange1(int x,int y) { int t; t=x;x=y;y=t; printf("x=%d,y=%d\n",x,y); } void main() { int a=3,b=6; printf("a=%d,b=%d\n",a,b); exchange1(a,b); printf("a=%d,b=%d\n",a,b); } 3. long int fac(int n) { long int p; int i; p=1; for(i=1;i<=n;i++) p=p*i; return(p); } int cmn(int m,int n) {

实验九-可逆计数器的功能测试及应用电路

实验九可逆计数器的功能测试及应用电路 实验目的: (1)掌握可逆计数器74LS191、74LS191、74LS192、74LS193的逻辑功能及使用方法。 (2)熟悉可逆计数器实现任意进制的数码倒计时电路的工作原理。 实验仪器与器件: 实验箱一个;双踪示波器一台;稳压电源一台;函数发生器一台。 74LS191、74LS191、74LS191或74HC48、74LS00和74LS04。 实验内容: 1测试74LS190和74LS191的逻辑功能,并用数码管显示,验证是否与表2-9-4一致,分别画出各单元的电路图,写出各自的状态 实验原理:单时钟74LS191二进制同步加/减计数器的功能表如下: 表2-9-4 单时钟74LS191二进制同步加/减计数器的功能表 单时钟74LS191二进制同步加/减计数器是十进制的,其他功能与74LS191一样。它的有效状态为0000~1001. 实验电路: 如图所示是减计数时当计数器的状态变为0时的电路状态:RCO=0,MAX/=1; MIN

实验现象与结果: 该结果是当CTEN =0,D L =1,D U /=1时,A B C D Q Q Q Q 的 波形图; 该结果是当CTEN =0,D L =1,D U /=1时, RCO 与MIN MAX /的波形图

需要说明的是:当CTEN= D L=1时,电路保持原来的状态。 2测试74LS192和74LS193的逻辑功能,并用数码管显示,验证是否与表2-9-3及2-9-5一致。画出测试电路图。 实验原理: 双时钟74LS192同步十进制可逆计数器的功能表如下表所示,74LS192是十进制计数器。 表2-9-3双时钟74LS192同步十进制可逆计数器的功能表 输入输出工作 状态 U CP UP D CP DOW N CLR D L DCBA A B C D Q Q Q Q U TC D TC **H H ****0000 H H 异步 清零**L L 1001 1001 H H 异步 置数 H ↑L H ****1001→ 0001→ 0000H H H L 减法 计数 ↑H L H ****0000→ 1000→ 1001H L H H 加法 计数 双时钟74LS193二进制同步加/减法计数器的功能表如下表所示,74LS193是一个十六进制的计数器。

实验报告9答案

实验报告 课程名称:高级语言程序设计 实验九:函数与数组 班级: 学生姓名: 学号: 专业: 指导教师: 学期:2010-2011学年上学期 云南大学信息学院

一、实验目的 1、掌握数组作为参数的函数编写与调用方法 2、掌握数组作为参数的特殊性 3、掌握字符串作为参数的函数编写与调用方法 二、知识要点 1、地址传递的概念及使用 2、数组元素和数组名作为函数参数的特点与区别 3、字符串作为参数的特点:‘\0’字符的使用 三、实验预习(要求做实验前完成) 1、数组作为函数参数时,其特殊性是 2、定义作为参数的函数时,通常需要提供长度作为参数;而定义 作为参数的函数时,通常不需要提供长度参数 3、写出满足如下要求函数的函数首部: ①函数名为fmax,求一个实型数组的最大元素值: ②函数名为scount,求一个字符串中大写字母的个数: ③函数名为delf,删除一个字符串的第一个字符: 四、实验内容 1、编写一个函数,其功能是将字符串中的大写字母改为小写字母,其他字 符不变。 2、编写一个函数,求出给定的二维数组中每一行最大的元素,并显示出来。 3、在主函数中输入N个人的某门课程的成绩,分别用函数求:①平均分、最 高分和最低分;②分别统计90~100分的人数、80~89分的人数、70~ 79分的人数、60~69分的人数及59分以下的人数。结果在主函数中输出。 五、实验结果(要求写出运行界面及输出的运行结果) 六、实验小结

1.#include #include void change(char a[]) {int i; for(i=0;i='A'&&a[i]<='Z') a[i]+=32; } void main() {char c[30],k; printf("请输入一个包含大写字母的字符串:\n"); gets(c); change(c); puts(c); } 2.#include void max(int b[3][3]) {int i,j,max[3]; for(i=0;i<3;i++) max[i]=b[i][0]; for(i=0;i<3;i++) for(j=0;j<3;j++) if(b[i][j]>max[i]) max[i]=b[i][j]; for(i=0;i<3;i++) printf("第%d行最大值为:%d\n",i+1,max[i]); printf("\n"); } void main() {int i,j,a[3][3]; printf("输入3行3列的数组:"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("数组元素为:\n"); for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%d ",a[i][j]); printf("\n"); } max(a); } 3. #include

实验6 函数与编译预处理(参考答案)

实验六函数与编译预处理(参考答案)[实验任务一]: 程序跟踪调试实例6-1:error6_1.c参考答案 程序跟踪调试实例6-2:error6_2.c参考答案 程序跟踪调试实例6-3:error6_3.c参考答案

[实验任务二]: 程序填空实例6-1:blank6_1.c参考答案 程序填空实例6-2:print1.c参考答案 程序填空实例6-3:reverse.c参考答案

[实验任务三]: 编程实例6-1:primefun.c参考答案(第一种方法) 编程实例6-1:primefun.c参考答案(第二种方法) 编程实例6-1:primefun.c参考答案(第三种方法)

编程实例6-2:printnum.c参考答案 编程实例6-3:printa.c参考答案 编程实例6-4:power.c参考答案(第一种方法)

编程实例6-4:power.c参考答案(第二种方法) 编程实例6-5:Taile.c参考答案 编程实例6-6:value.c参考答案 编程实例6-7:LeRangDe.c参考答案

编程实例6-8:multifac.c参考答案 [实验任务四]: 程序1参考答案: #include /* 函数功能:计算两整型数之和,如果与用户输入的答案相同,则返回1,否则返回0 函数参数:整型变量a和b,分别代表被加数和加数 函数返回值:当a加b的结果与用户输入的答案相同时,返回1,否则返回0 */ int Add(int a, int b) { int answer; printf("%d+%d=", a, b); scanf("%d", &answer); if (a+b == answer) return 1; else return 0; } /* 函数功能:打印结果正确与否的信息。 函数参数:整型变量flag,标志结果正确与否 函数返回值:无 */ void Print(int flag) { if (flag) printf("Right!\n"); else printf("Not correct!\n");

Excel 实验指导——函数的使用

实验八学生成绩表------数学函数、统计函数 一、实验目的 1、掌握数组公式、Sum()函数 2、掌握Averageif()和Sumif() 3、掌握COUNT()、COUNTA()、COUNTIF()、Countblank() 4、RANK.EQ 5、数据库函数的使用 二、实验内容 1、利用数组公式或Sum()函数来统计每个同学上学期的总分。 2、利用Averageif()和Sumif()统计平均分和总分。 3、利用统计函数统计班级人数,每门课程不及格人数,缺考科目数。 4、对班级同学的考试情况进行排名。 5、选择合适的数据库函数统计信息 三、实验任务 小王是班级学习委员,现正值新学期评优时期,班主任委托小王统计班级同学上学期的考试成绩情况。小王要应用函数分析学生信息、计算考试成绩,分析每科成绩的最高分、最低分和平均分,统计每个学生的总分排名,并统计不同寝室的学习情况。 本例效果图如图9- 1所示,小王需要完成的工作包括: (1)统计每个同学各门课程的总分并排名。 (2)统计每个寝室的平均分。 (3)统计每门课程的不及格人数和缺考人数。 (4)统计符合特定条件的学生信息。 图9- 1 学生成绩表效果图

9. 3 案例实现 9.3.1统计班级每个学生的考试总分 1.使用一般公式方法 公式是Excel工作表中进行数值计算的等式,公式输入是以“=”开始的,简单的公式有加、减、乘、除等计算。 我们可以在I3单元格中编辑公式,输入“=D3+E3+F3+G3+H3”,回车后即可,其他同学的总分可以通过填充柄拖动来求得。 2.数组公式计算总分 Excel中数组公式非常有用,尤其在不能使用工作表函数直接得到结果时,数组公式显得特别重要,它可建立产生多值或对一组值而不是单个值进行操作的公式。 输入数组公式首先必须选择用来存放结果的单元格区域(可以是一个单元格),在编辑栏输入公式,然后按Ctrl+Shift+Enter组合键锁定数组公式,Excel将在公式两边自动加上花括号“{}”。注意:不要自己键入花括号,否则,Excel认为输入的是一个正文标签。 利用数组公式计算I3:I32单元格的总分。选中I3:I32单元格,然后按下“=”键编辑加法公式计算总分,因为数组公式是对一组值进行操作,所以直接用鼠标选择D3:D32,按下“+”号,再用鼠标选择其余科目成绩依次累加,然后按Ctrl+Shift+Enter组合键完成数组公式的编辑,如图9- 2所示。 图9- 2 数组公式 在数组公式的编辑过程中,第一步选中I3:I32单元格尤为关键。绝不能开始只选中I3单元格,在最后用填充柄填充其他单元格,那样其他单元格的左上角将会出现绿色小三角,是错误的方法。 3.使用Sum()函数计算总分 Sum()求和函数,可以用来计算总分列。选择I3单元格,使用“公式”→“插入函数”或“自动求和”按钮,可选择Sum()函数,选中求和区域D3:H3,如图9- 3所示,按Enter 键,求和结果显示在单元格中。 通过填充操作完成其余各行总分的计算。

函数和编译预处理

函数和编译预处理(第五章) 一、单项选择题 1.关于函数,以下正确的描述是( B) A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可以嵌套 C. 函数的定义可以嵌套,函数的调用也可以嵌套 D. 函数的定义和函数的调用都不可以嵌套 2.关键字inline用于定义内联函数,定义时,是将该关键字( D ) A. 取代定义函数的类型标识符 B. 取代被定义的函数名 C. 加在类型标识符之后 D. 加在类型标识符之前 3.以下不正确的描述为( B ) A. 在函数之外定义的变量称为外部变量,外部变量是全局变量。 B. 在函数之内说明的外部变量是局部变量,仅在本函数中有效。 C. 在函数之外说明的静态变量也是全局变量,其作用域是文件作用域。 D. 文件作用的域范围是一个程序文件,但必须符合“定义在前,使用在后”的规则。4.以下正确的描述为( C ) A. 每个C++程序必须在开头用预处理命令#include B. 预处理命令必须位于C++源程序的首部 C. 在C++中,预处理命令都以#开头 D. C++语言的预处理命令只能实现宏定义和条件编译的功能 5.在下面的函数原型说明中,存在着语法错误的是( D ) A.void BC(int a,int); B.void BD(int , int); C.void BE(int , int=5); D.int BF(int x ; int y); 6.下列哪个不是重载函数在调用时选择的依据( C ) A. 形参类型 B. 形参个数 C. 函数返回值类型 D. 函数名 7.在一个源程序文件中有以下函数定义,其中( D )是重载函数。 A.ABC B. BCD C. ACD D. 全部 A) int sum(float x,int y) B) float sum(float x,int y,char z) {...} {...} C) float sum(float x,float y) D) int sum(int x,int y,char z) {...}{...} 8.有一个函数原型abc(float x,float y);该函数的返回值类型为( C ) A. void B. double C. int D. float 9.在程序中,函数声明语句正确位置是( D ) A. 随便任何位置 B. 不包含在另一函数中的任何位置。 C. 该函数使用前的任何位置 D. 该函数使用前的任何位置,但不包含在另一函数中 10.C++构造内联函数的思想是( A ) A. 用空间换时间 B. 用时间换空间 C. 用形参换实参 D. 用实参换形参 11.在以下存储类型中,( D )是用于定义动态类型的变量。

实验十函数应用答案

实验十函数应用 一?实验目的 1.掌握函数的定义和调用; 2.理解形参和实参的使用和传值调用; 3.理解函数声明的使用; 4.掌握函数的嵌套调用; 5.了解函数的嵌套与递归调用,掌握递归函数的编写规律; 6.了解数组元素、数组名作函数参数。 二?实验学时数 2学时 三?实验步骤 (一)阅读程序 1.#include int fun (int x, int y, int z) { z=x * x + y * y; } main() { int a=38; fun(7,3,a); printf("%d",a); 2.#include void fun (int x,int y ); main() {int x=5,y=3; fun(x,y); printf("%d,%d\n",x,y); } void fun (int x,int y ) { x=x+y; y=x-y;

x=x-y; printf("%d,%d\n",x,y); 3.#include int f (int a); main() { int s[ 8 ] = {1,2,3,4,5,6} ,i, d=0; for (i=0; f( s[i] ) ; i++) d+=s[i]; printf("%d\n",d); } int f(int a) { return a%2; } 4.#include long f( int g) { switch(g) { case 0:return 0; case 1: case 2: return 1; } return ( f(g-1)+ f(g-2)); } main ( ) { long int k; k = f(7); printf("\nk= %d\n",k); }

实验九 利用函数电路实现波形变换

实验九利用函数电路实现波形变换 —、实验目的 1 、利用二极管非线性特性 , 实现三角波→正弦波的变换。 2 、利用差分对管的饱和与截止特性,实现三角波→正弦波变换。 二、预习要求 1 、预习方波产生电路和方波→三角波的变换电路工作原理。 2 、预习三角波→正弦波的变换电路和工作原理。 三、实验仪器设备 1 、双踪示波器 2 、万用表 3 、高频电路实验装置 四、实验电路和工作原理 1 、二极管波形变换电路工作原理 从三角波和正弦波的波形上看 , 二者主要的差别在波形的峰值附近 , 其余部 分都很相似 . 因此只要设法将三角波的幅度按照一定的规律逐段衰减 , 就能 将其转换为近似正弦波 . 见图 9.1 所示 . 用二极管将三角波近似转换为正弦波的实验电路见图 9.2 。图中 , R4 ~ R7,D1 ~ D3 负责波形的正半周, R8 ~ R11,D4 ~ D6 负责波形的的下半周, R2 和 R3 为正负半周共用电阻, R1 对输入的三角波进行降压。在正半周的变换过程中,设 R4 ~ R7 都取值为 1.2K Ω, 在正半周 , 当 D1 ~ D3 都不导通时, C 、 B 、 A 点的电压分别为 1.25V,2.5V,3.75V 。在波形变换的过程中 , 由于二极管的非线性特性,加上输入函数的时间关联性 , 不同时刻二极管上所承受的电压是不同的。为了分析的方便 , 我们假设二极管的正向导通电压为 0.5V, 则当输入电压高于 1.75V 时 , 二极管 D3 导通,输出电压高于 1.75V ;当输入电压高于 3V 后 , 二极管 D2 导通 , 输出电压高于 3V; 当输入电压高于 4.25V 后 , 二极管 D1 导通 , 输出高于 4.25V. 以此类推 , 便可近似得到正弦波形 . 若增大电阻 R4 的值 , 可以降低波峰时的电压降 , 以适应不同输入电压的变换要求 . 负半周的变换原理与此相类似 , 读者可以自行分析。

C语言:函数的应用实验报告

课程名称:结构化程序设计与C语言开课实验室:年月日 一、实验目的 用C语言编写和调试函数的程序。从而对函数的定义、调用、全局变量的灵活运用有比较深入的了解。 二、内容及结果 1、程序一素数函数 1)程序要求:写一个判断是否是素数的函数,在主函数输入一个整数,调用它后输出结果。2)代码: #include #include int prime(int n) { int i,k; k=sqrt(n); for(i=2;i<=k;i++) if(n%i==0) break; if(i<=k) return 0; else

return 1; } int main() { int prime(int n); int n; printf("Please enter n:"); scanf("%d\n",&n); if(prime(n)==1) printf("%d is a prime number",int(n)); else printf("%d is not a prime number",int(n)); } 3)运行截图: 2、程序二用递归方法求n阶勒让德多项式的值 1)程序要求: 递归公式为: 当n=0,= ) (x P n 1 当n=1, = ) (x P n x; 当n>=1, = ) (x P n((2n-1)x-P n-1(x)-(n-1)P n-2 )x))/n 2)代码: #include

#include int p(int n,int x); void main() { int n,x; scanf("%d",&x); for(n=0;n<=10;n++) printf("p(%d,%d)=%d\n",n,x,p(n,x)); } int p(int n,int x) { if(n==0) return 1; else if(n==1) return x; else return((2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))/n; } 3)运行截图:

C语言实验9-函数

湖北工程学院 学生实验报告书 实验课程名称C语言 开课专业经济学大类 指导教师姓名邹晶、郭道猛 学生姓名 学生班级 2016学年-2017学年第1学期

long fun(int m, int n); void main ( ) { int m, n; long c; printf ("Input m and n(m>=n): "); scanf ("%d%d", &m, &n); c = fun (m, n); printf ("c = %ld\n", c); } long fun(int m, int n) { if (m == n || n == 0) return (1L); else return (m * fun(m-1, n) / (m-n)); } 结果截图: 3.输入代码: /* c9-3.c 利用函数实现级数求和*/ #include "stdio.h" int fun(int m) { int aa[20],i; for(i=0;m;i++) { aa[i]=m%2; m=m/2; } printf("\n"); for(;i;i--) printf("%d",aa[i-1]); return 0; } void main() { int n; printf("\nPlease input number n:\n"); scanf("%d",&n);

fun(n); } 结果截图: 4.输入代码: /* c9-4.c 通过函数调用实现数制转换*/ #include void fun(int m) {int aa[20],i,k=2; for(i=0;m;i++) {aa[i]=m%k; m=m/k; } printf("\n"); for(;i;i--) printf("%d",aa[i]); } void main() {int n; printf("\n请输入一个十进制整数:\n"); scanf("%d",&n); fun(n); } 结果截图: 5.输入代码: /* c9-5.c 判别一个整数数组中各元素的值*/ #include int main() { int i,a[6];

实验三 函数的应用

实验三 函数的应用(2学时) 一、实验目的 1.掌握函数的定义和调用方法。 2.练习重载函数的使用。 3.练习函数模板的使用。 4.练习使用系统函数。 5.学习使用VC++的debug调试功能,使用step into追踪到函数内部。 二、实验任务 1.编写一个函数把华氏温度转换为摄氏温度,转换公式为..C=(F一32)*5/9。 2.编写重载函数Maxl可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。 3.使用重载函数模板重新实现上小题中的函数Maxl。 4.使用系统函数pow(X,y)计算芷的值,注意包含头文件math·h。 5.用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。 三、实验步骤 1.编写函数float Convert(float TempFer),参数和返回值都为float类型,实现算法C=(F一32)*5/9,在main()函数中实现输入、输出。程序名:lab3_1.cpp。 2.分别编写四个同名函数maxl,实现函数重载,在main()函数中测试函数功能。程序名:lab3_2.cpp。 3.使用函数模板实现求任意类型数的最大值,针对不同的参数个数,编写两个同名 函数模板maxl,其参数个数不同,实现函数重载,在main()函数中测试函数功能。程序名:lab3_3.cpp。 4.在main()函数中提示输入两个整数x、y,使用cin语句得到x、y的值,调用 pow(x,y)函数计算x的Y次幂的结果,再显示出来。程序名.1ab3_4.cpp。 5.编写递归函数int fib(int n),在主程序中输入n的值,调用fib函数计算 Fibonacci级数。公式为fib(n)=fib(n一1)+fib(n一2),n>2;fib(1)=fib(2)=1。 使用if语句判断函数的出口,在程序中用cout语句输出提示信息。程序名: lab3_5.cpp。 6.使用debug中的Step Into追踪到函数内部,观察函数的调用过程,参考程序 如下: //lab3_5 #include int fib(int n); int main() { int n,answer; cout<<”Enter number”;

相关文档
相关文档 最新文档