实验(7)-函数-参考答案

合集下载

C语言实验-第七章-第九章2

C语言实验-第七章-第九章2

实验七:指针的应用【实验目的】1.掌握指针和指针变量,内存单元和地址、变量与地址、数组与地址的关系;2.掌握指针变量的定义和初始化,指针变量的引用方式;3.能正确使用数组的指针和指向数组的指针变量;【实验内容】1.填空题输入一个字符串,将其中的大写字母转换成小写字母,然后输出本程序主要是比较scanf()输入和gets()输入的区别#include <stdio.h>void main(){ char s[20];char *p=s;scanf(“%s”,p); /*注意用scanf()输入和gets()输入的区别*/while( 1 ){if( 2 ) *p=*p+ (‘a’-‘A’);p++ ;}puts ( 3 );}答案:1、*p!=’\0’2、(*p>='A')&&(*p<='Z')3、s运行结果:输入:Program输出:program输入:This is Program输出:this提示:scanf ()输入时遇到空格认为字符串结束,用gets()输入时只有遇到回车才认为字符串结束。

如键入any boy并回车,则2。

补充程序题输入15个整数存入一维数组,再按逆序重新调整该数组中元素的顺序然后再输出。

下面给出部分程序的内容,请将程序补充完整,然后上机调试。

部分程序清单如下:#include <stdio.h>void main(){ int a[15],*p1,*p2,x;for(p1=a;p1<a+15;p1++)scanf("%d",p1);for(p1=a,p2=a+14;p1<a+7;p1++,p2--){ x=*p1;*p1=*p2;*p2=x;}……}答案:for(p1=a;p1!=a+15;p1++)printf("%d ",*p1); // %d后面有一个空格运行结果:输入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15输出:15 14 13 12 11 10 9 8 7 6 5 4 3 2 1提示:(1)在整型数组中,没有结束标志,必须依靠数组中数据元素的个数控制循环次数。

2020-2021年中考数学专题复习7一次函数(含答案)

2020-2021年中考数学专题复习7一次函数(含答案)

专题七一次函数学校:___________姓名:__________班级:___________考号:___________一、单选题1.一次函数y ax a =-与反比例函数(0)a y a x=≠在同一坐标系中的图象可能是( ) A . B . C . D . 2.已知在同一直角坐标系中二次函数2y ax bx =+和反比例函数c y x =的图象如图所示,则一次函数c y x b a=-的图象可能是( )A .B .C .D .3.数形结合是解决数学问题常用的思思方法.如图,直线y=x+5和直线y=ax+b ,相交于点P ,根据图象可知,方程x+5=ax+b 的解是( )A .x=20B .x=5C .x=25D .x=15 4.若定义一种新运算:(2)6(2)a ba b a b a b a b 例如:31312⊗=-=;545463⊗=+-=.则函数(2)(1)y x x =+⊗-的图象大致是( )A .B .C .D .二、填空题5.已知一次函数y=kx+b 的图象经过A (1,﹣1),B (﹣1,3)两点,则k 0(填“>”或“<”)6.点1,2m ⎛⎫- ⎪⎝⎭和点(2,)n 在直线2y x b =+上,则m 与n 的大小关系是_________.三、解答题7.如图,在平面直角坐标系中,直线112y x =--与直线22y x =-+相交于点P ,并分别与x 轴相交于点A 、B .(1)求交点P 的坐标;(2)求PAB 的面积;(3)请把图象中直线22y x =-+在直线112y x =--上方的部分描黑加粗,并写出此时自变量x 的取值范围.8.如图,在直角坐标系中,直线y 1=ax+b 与双曲线y 2=k x(k≠0)分别相交于第二、四象限内的A (m ,4),B (6,n )两点,与x 轴相交于C 点.已知OC =3,tan ∠ACO =23. (1)求y 1,y 2对应的函数表达式;(2)求△AOB 的面积;(3)直接写出当x <0时,不等式ax+b >k x的解集.9.如图,一次函数y kx b =+的图象与反比例函数m y x=的图象相交于()1,2A ,(),1B n -两点.(1)求一次函数和反比例函数的表达式;(2)直线AB 交x 轴于点C ,点P 是x 轴上的点,若ACP △的面积是4,求点P 的坐标.10.为让更多的学生学会游泳,少年宫新建一个游泳池,其容积为3480m ,该游泳池有甲、乙两个进水口,注水时每个进水口各自的注水速度保持不变,同时打开甲、乙两个进水口注水,游泳池的蓄水量()3y m与注水时间()t h 之间满足一次函数关系,其图象如图所示.(1)根据图象求游泳池的蓄水量()3y m 与注水时间()t h 之间的函数关系式,并写出同时打开甲、乙两个进水口的注水速度;(2)现将游泳池的水全部排空,对池内消毒后再重新注水.已知单独打开甲进水口注满游泳池所用时间是单独打开乙进水口注满游泳池所用时间的43倍.求单独打开甲进水口注满游泳池需多少小时?11.小明家今年种植的“红灯”樱桃喜获丰收,采摘上市20天全部销售完,小明对销售情况进行跟踪记录,并将记录情况绘成图象,日销售量y (单位:千克)与上市时间x (单位:天)的函数关系如图1所示,樱桃价格z (单位:元/千克)与上市时间x (单位:天)的函数关系式如图2所示.(1)观察图象,直接写出日销售量的最大值;(2)求小明家樱桃的日销售量y与上市时间x的函数解析式;(3)试比较第10天与第12天的销售金额哪天多?12.2020年初,新冠肺炎疫情爆发,市场上防疫口罩热销,某医药公司每月生产甲、乙两种型号的防疫口罩共20万只,且所有口罩当月全部售出,其中成本、售价如下表:(1)若该公司三月份的销售收入为300万元,求生产甲、乙两种型号的防疫口罩分别是多少万只?(2)如果公司四月份投入成本不超过216万元,应怎样安排甲、乙两种型号防疫口罩的产量,可使该月公司所获利润最大?并求出最大利润.13.因疫情防控需要,消毒用品需求量增加.某药店新进一批桶装消毒液,每桶进价50元,每天销售量y(桶)与销售单价x(元)之间满足一次函数关系,其图象如图所示.(1)求y与x之间的函数表达式;(2)每桶消毒液的销售价定为多少元时,药店每天获得的利润最大,最大利润是多少元?(利涧=销售价-进价)14.新冠疫情期间,口罩成为了人们出行必备的防护工具.某药店三月份共销售A ,B 两种型号的口罩9000只,共获利润5000元,其中A ,B 两种型号口罩所获利润之比为2:3.已知每只B 型口罩的销售利润是A 型口罩的1.2倍.(1)求每只A 型口罩和B 型口罩的销售利润;(2)该药店四月份计划一次性购进两种型号的口罩共10000只,其中B 型口罩的进货量不超过A 型口罩的1.5倍,设购进A 型口罩m 只,这10000只口罩的销售总利润为W 元.该药店如何进货,才能使销售总利润最大?15.今年植树节期间,某景观园林公司购进一批成捆的A ,B 两种树苗,每捆A 种树苗比每捆B 种树苗多10棵,每捆A 种树苗和每捆B 种树苗的价格分别是630元和600元,而每棵A 种树苗和每棵B 种树苗的价格分别是这一批树苗平均每棵价格的0.9倍和1.2倍.(1)求这一批树苗平均每棵的价格是多少元?(2)如果购进的这批树苗共5500棵,A 种树苗至多购进3500棵,为了使购进的这批树苗的费用最低,应购进A 种树苗和B 种树苗各多少棵?并求出最低费用.16.小刚去超市购买画笔,第一次花60元买了若干支A 型画笔,第二次超市推荐了B 型画笔,但B 型画笔比A 型画笔的单价贵2元,他又花100元买了相同支数的B 型画笔. (1)超市B 型画笔单价多少元?(2)小刚使用两种画笔后,决定以后使用B 型画笔,但感觉其价格稍贵,和超市沟通后,超市给出以下优惠方案:一次购买不超过20支,则每支B 型画笔打九折;若一次购买超过20支,则前20支打九折,超过的部分打八折.设小刚购买的B 型画笔x 支,购买费用为y 元,请写出y 关于x 的函数关系式.(3)在(2)的优惠方案下,若小刚计划用270元购买B 型画笔,则能购买多少支B 型画笔?17.为加快复工复产,某企业需运输批物资.据调查得知,2辆大货车与3辆小货车一次可以运输600箱;5辆大货车与6辆小货车一次可以运输1350箱.(1)求1辆大货车和1辆小货车一次可以分别运输多少箱物资;(2)计划用两种货车共12辆运输这批物资,每辆大货车一次需费用5 000元,每辆小货车一次需费用3000元.若运输物资不少于1500箱,且总费用小于54000元,请你列出所有运输方案,并指出哪种方案所需费用最少,最少费用是多少?18.如图,抛物线24y ax bx =++交x 轴于(3,0)A -,(4,0)B 两点,与y 轴交于点C ,AC ,BC .M 为线段OB 上的一个动点,过点M 作PM x ⊥轴,交抛物线于点P ,交BC 于点Q .(1)求抛物线的表达式;(2)过点P 作PN BC ,垂足为点N .设M 点的坐标为(,0)M m ,请用含m 的代数式表示线段PN 的长,并求出当m 为何值时PN 有最大值,最大值是多少?(3)试探究点M 在运动过程中,是否存在这样的点Q ,使得以A ,C ,Q 为顶点的三角形是等腰三角形.若存在,请求出此时点Q 的坐标;若不存在,请说明理由.参考答案1.D2.B3.A4.A5.<.6.m <n7.(1)()2,2-;(2)3;(3)2x <8.(1)y 1=﹣23x+2,y 2=﹣12x;(2)9;(3)x <﹣3 9.(1)一次函数的表达式为1y x =+,反比例函数的表达式为2y x=;(2)(3,0)或(-5,0)10.(1)y=140t+100,140m 3/h ;(2)8h11.解:(1)日销售量的最大值为120千克. (2)()()y 10x? 0x 12{y 15x 300? 12x 20=≤≤=-+<≤ (3)第10天的销售金额多.12.(1)甲、乙两种型号口罩的产量分别为15万只和5万只;(2)从而安排生产甲种型号的口罩17万只,乙种型号的口罩3万只时,获得最大利润,最大利润为108万元. 13.(1)函数的表达式为:y=-2x+220;(2)80元,1800元.14.(1)每只A 型口罩和B 型口罩的销售利润分别为0.5元,0.6元;(2)药店购进A 型口罩4000只、B 型口罩6000只,才能使销售总利润最大,最大利润为5600元15.(1)这一批树苗平均每棵的价格是20元;(2)购进A 种树苗3500棵,B 种树苗2000棵,能使得购进这批树苗的费用最低为111000元.16.(1)超市B 型画笔单价为5元;(2) 4.5,120410,20x x y x x ⎧=⎨+>⎩,其中x 是正整数;(3)小刚能购买65支B 型画笔.17.(1)1辆大货车和1辆小货车一次可以分别运输150箱,100箱物资;(2)共有3种方案,6辆大货车和6辆小货车,7辆大货车和5辆小货车;8辆大货车和4辆小货车,当安排6辆大货车和6辆小货车时,总费用最少,为48000元.18.(1)211433y x x =-++;(2)2PN =,当2m =时,PN 有最大值,最大值为3. (3)满足条件的点Q 有两个,坐标分别为:()1,3Q ,822Q ⎛- ⎝⎭.。

微积分复习题集带参考答案(二)

微积分复习题集带参考答案(二)

微积分习题集带参考答案综合练习题1(函数、极限与连续部分)1.填空题 (1)函数)2ln(1)(-=x x f 的定义域是 . 答案:2>x 且3≠x .(2)函数24)2ln(1)(x x x f -++=的定义域是 .答案:]2,1()1,2(-⋃--(3)函数74)2(2++=+x x x f ,则=)(x f . 答案:3)(2+=x x f(4)若函数⎪⎩⎪⎨⎧≥<+=0,0,13sin )(x k x xx x f 在0=x 处连续,则=k .答案:1=k (5)函数x x x f 2)1(2-=-,则=)(x f .答案:1)(2-=x x f(6)函数1322+--=x x x y 的间断点是 .答案:1-=x(7)=∞→xx x 1sin lim .答案:1(8)若2sin 4sin lim 0=→kxxx ,则=k .答案:2=k2.单项选择题(1)设函数2e e xx y +=-,则该函数是( ).A .奇函数B .偶函数C .非奇非偶函数D .既奇又偶函数 答案:B(2)下列函数中为奇函数是().A .x x sinB .2e e x x +- C .)1ln(2x x ++ D .2x x +答案:C(3)函数)5ln(4+++=x x xy 的定义域为( ). A .5->x B .4-≠x C .5->x 且0≠x D .5->x 且4-≠x答案:D(4)设1)1(2-=+x x f ,则=)(x f ( ) A .)1(+x x B .2xC .)2(-x xD .)1)(2(-+x x 答案:C(5)当=k ( )时,函数⎩⎨⎧=≠+=0,,2)(x k x e x f x 在0=x 处连续.A .0B .1C .2D .3 答案:D(6)当=k ( )时,函数⎩⎨⎧=≠+=0,,1)(2x k x x x f ,在0=x 处连续.A .0B .1C .2D .1- 答案:B (7)函数233)(2+--=x x x x f 的间断点是( ) A .2,1==x xB .3=xC .3,2,1===x x xD .无间断点 答案:A 3.计算题(1)423lim 222-+-→x x x x . 解:4121lim )2)(2()1)(2(lim 423lim 22222=+-=+---=-+-→→→x x x x x x x x x x x x (2)329lim 223---→x x x x解:234613lim )1)(3()3)(3(lim 329lim 33223==++=+-+-=---→→→x x x x x x x x x x x x (3)4586lim 224+-+-→x x x x x解:3212lim )1)(4()2)(4(lim 4586lim 44224=--=----=+-+-→→→x x x x x x x x x x x x x综合练习题2(导数与微分部分)1.填空题 (1)曲线1)(+=x x f 在)2,1(点的切斜率是 .答案:21 (2)曲线xx f e )(=在)1,0(点的切线方程是 . 答案:1+=x y(3)已知xx x f 3)(3+=,则)3(f '= . 答案:3ln 33)(2x x x f +=')3(f '=27()3ln 1+(4)已知x x f ln )(=,则)(x f ''= . 答案:x x f 1)(=',)(x f ''=21x- (5)若xx x f -=e )(,则='')0(f.答案:xx x x f --+-=''e e 2)(='')0(f 2-2.单项选择题 (1)若x x f xcos e)(-=,则)0(f '=( ).A. 2B. 1C. -1D. -2 因)(cos e cos )e ()cos e()('+'='='---x x x x f x x x)sin (cos e sin e cos e x x x x x x x +-=--=---所以)0(f '1)0sin 0(cos e 0-=+-=- 答案:C (2)设,则( ). A . B .C .D .答案:B(3)设)(x f y =是可微函数,则=)2(cos d x f ( ). A .x x f d )2(cos 2' B .x x x f d22sin )2(cos 'C .x x x f d 2sin )2(cos 2'D .x x x f d22sin )2(cos '- 答案:D(4)若3sin )(a x x f +=,其中a 是常数,则='')(x f ( ).A .23cos a x + B .a x 6sin + C .x sin - D .x cos 答案:C3.计算题(1)设xx y 12e =,求y '.解: )1(e e 22121xx x y xx -+=')12(e 1-=x x(2)设x x y 3cos 4sin +=,求y '.解:)sin (cos 34cos 42x x x y -+='x x x 2cos sin 34cos 4-=(3)设xy x 2e 1+=+,求y '. 解:2121(21exx y x -+='+ (4)设x x x y cos ln +=,求y '.解:)sin (cos 12321x x x y -+=' x x tan 2321-= 综合练习题3(导数应用部分)1.填空题 (1)函数的单调增加区间是 .答案:),1(+∞(2)函数1)(2+=ax x f 在区间),0(∞+内单调增加,则a 应满足 . 答案:0>a2.单项选择题(1)函数2)1(+=x y 在区间)2,2(-是( )A .单调增加B .单调减少C .先增后减D .先减后增 答案:D(2)满足方程0)(='x f 的点一定是函数)(x f y =的( ). A .极值点 B .最值点 C .驻点 D . 间断点 答案:C(3)下列结论中( )不正确. A .)(x f 在0x x =处连续,则一定在0x 处可微. B .)(x f 在0x x =处不连续,则一定在0x 处不可导. C .可导函数的极值点一定发生在其驻点上.D .函数的极值点一定发生在不可导点上. 答案: B(4)下列函数在指定区间上单调增加的是( ).A .x sinB .xe C .2x D .x -3答案:B3.应用题(以几何应用为主)(1)欲做一个底为正方形,容积为108m 3的长方体开口容器,怎样做法用料最省?解:设底边的边长为x m ,高为h m ,容器的表面积为y m 2。

c语言实验报告实验

c语言实验报告实验

c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。

二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。

三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。

熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。

2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。

运用 switch 语句进行多分支选择,处理不同的情况。

利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。

3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。

掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。

4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。

实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。

5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。

掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。

6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。

了解共用体的概念和使用场景,比较结构体和共用体的区别。

四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。

C语言实验册完整答案

C语言实验册完整答案

实验2答案五.程序改错#include<stdi o.h>int main(void){int x=3,y;y = x*x;printf("%d = %d * %d\n",y,x,x); /* 输出*/printf("%d * %d = %d\n",x,x,y);return 0;}六、一般编程题6.1#include<stdio.h>int main(void){int x,y;printf("Input x: ");scanf("%d",&x);printf("Input y: ");scanf("%d",&y);printf("%d + %d = %d\n",x,y,x+y);printf("%d - %d = %d\n",x,y,x-y);printf("%d * %d = %d\n",x,y,x*y);printf("%d / %d = %d\n",x,y,x/y);printf("%d %% %d = %d\n",x,y,x%y);return 0;}6.2#include<stdio.h>int main(void){ float x; double y;printf("Input x: ");scanf("%f",&x);printf("Input y: ");scanf("%lf",&y);printf("%f + %f = %f\n",x,y,x+y);printf("%f - %f = %f\n",x,y,x-y);printf("%f * %f = %f\n",x,y,x*y);printf("%f / %f = %f\n",x,y,x/y);return 0;}6.3#include<stdio.h>int main(void){ char c;printf("Input c: ");scanf("%c",&c);printf("%c\n",c+32);return 0;}6.4#include<stdio.h>int main(void){int celsius,fahr;fahr = 150;celsius = 5*fahr/9 - 5*32/9;printf("fahr = %d, celsius = %d\n", fahr, celsius);return 0;} 如果使用公式9)32(5-⨯=f c 计算结果不一样,celsius = 65。

常用测量程序设计

常用测量程序设计

《测绘程序设计()》上机实验报告(Visual C++.Net)班级:学号:姓名:序号:二零一零年四月实验7 常用测量程序设计一、实验目的∙巩固类的创建与使用∙掌握数组参数的传递∙掌握常用测绘程序设计的技巧二、实验内容编写高斯投影正、反算程序设计思路基于对话框的设计,添加两个头文件分别是Angle和Gauss ,在角度类中添加角度类的函数,角度类的函数我用了老师的例子,因为我以前写的那个角度类,定义的存贮角度类型的值是一个变量,引用起来不好用。

然后就是在Gauss的头文件和cpp中添加代码,我一共定义了四个函数,分别是高斯正算,求X的一个函数,高斯反算,求Bf的一个函数。

定义完类之后,就在界面上引用函数即可。

主要代码Gauss.h#pragma onceclass Gauss{/*double a;double b;*///double e=sqrt(a*a-b*b)/a;//double _e=sqrt(a*a-b*b)/b;public:/*Gauss(double a1,double b1);*/Gauss(void);~Gauss(void);public:void CGaussForward(double dB,double dL,double dCML,int type,double &x,double &y);double ComptX(double dB);void CGaussInverse(double x, double y, double dCML,int type, double &dB, double &dL);double ComptBf(double x);void ellipd(int type);};Gauss.cpp#include"StdAfx.h"#include"Gauss.h"#include"math.h"#include"Angle.h"const double PI=4.0*atan(1.0);double a=6378245.0;double b=6356863.0187730473;//初始化double e=sqrt(a*a-b*b)/a;double _e=sqrt(a*a-b*b)/b;/*Gauss::Gauss(double a1=6378245.0,double b1=6356863.0187730473){a=a1;b=b1;}*///Gauss::Gauss(double a1, double b1)//{ a1=6378245.0;// b1=6356863.0187730473;// a=a1;// b=b1;// /*double e=sqrt(a*a-b*b)/a;//double _e=sqrt(a*a-b*b)/b;*///}Gauss::Gauss(void){}Gauss::~Gauss(void){}void Gauss::ellipd(int type){if(type==1) //克拉索夫斯基椭球{a=6378245.0;b=6356863.0187730473;//e=sqrt(0.006693421622966);}else if(type==2) //1975国际协议椭球{a=6378140.0;b=6356755.2881575287;//e=sqrt(0.006694384999588);}else if(type==3) //WGS-84椭球{a=6378137.0;b=6356752.3142;//e=sqrt(0.0066943799013);}}void Gauss::CGaussForward(double dB,double dL,double dCML,int type,double &x,double &y) {CAngle B(dB);CAngle L(dL);CAngle CML(dCML);CAngle _L(L-CML); //计算经差dB=B(RAD);ellipd(type);//设置椭球参数//double fengdai(type);//投影带double l=_L(RAD);double N=a/sqrt(1-e*e*sin(dB)*sin(dB));double t=tan(dB);double Eta=_e*cos(dB);double X=ComptX(dB);//double Rou;//Rou=180*3600/PI;x=X+N/2*sin(dB)*cos(dB)*l*l+N/24*sin(dB)*pow(cos(dB),3)*(5-t*t+9*Eta*Eta+4*pow(Eta,4))*pow(l,4)+N/720*sin(dB)*pow(cos(dB),5)*(61-58*t*t+pow(t,4))*pow(l,6);//+N*sin(dB)*cos(dB)*l*l/2//+N*sin(dB)*pow(cos(dB),3)*(5-t*t+9*Eta*Eta+4*pow(Eta,4))*pow(l,4)/24;// //+N/(720*pow(Rou,6))*sin(RadB)*pow(cos(RadB),5)*(61-58*t*t+pow(t,4))*pow(l,6);//+N*sin(dB)*pow(cos(dB),5)*(61-58*t*t+pow(t,4))*pow(1,6)/720;y=N*cos(dB)*l+N/6*pow(cos(dB),3)*(1-t*t+Eta*Eta)*pow(l,3)+N/120*pow(cos(dB),5)*(5-18*t*t+pow(t,4)+14*Eta*Eta-58*Eta*Eta*t*t)*pow(l,5)+500000;//+N*cos(dB)*l//+N*pow(cos(dB),3)*(1-t*t+Eta*Eta)*pow(1,3)/6//+N*pow(cos(dB),5)*(5-18*t*t+pow(t,4)+14*Eta*Eta-58*pow(Eta*t,2))*pow(l,5)/120;//dX=Round(dX,4);//dY=Round(dY,4);}double Gauss::ComptX(double dB){double A0=1+3/4*e*e+45/64*pow(e,4)+350/512*pow(e,6)+11025/16384*pow(e,8);const double A2=-1/2*(3/4*e*e+60/64*pow(e,4)+525/512*pow(e,6)+17640/16384*pow(e,8));const double A4=1/4*(15/64*pow(e,4)+210/512*pow(e,6)+8820/16384*pow(e,8));const double A6=-1/6*(35/512*pow(e,6)+2520/16384*pow(e,8));// const double A6=-1/6*(35/512*pow(e,6)+2520/16384*pow(e,8));const double A8=1/8*(315/16384*pow(e,8));double X= a*(1-e*e)*(A0*dB+A2*sin(2*dB)+A4*sin(4*dB)+A6*sin(6*dB)+A8*sin(8*dB));return X;}void Gauss::CGaussInverse(double x, double y, double dCML,int type, double &dB, double &dL) {ellipd(type);//设置椭球参数double Bf=ComptBf(x);double tf=tan(Bf);double Etaf=_e*cos(Bf);double Nf=a/sqrt(1-e*e*sin(Bf)*sin(Bf));double Mf=Nf/(1+_e*_e*cos(Bf)*cos(Bf));y=y-500000;dB=Bf-tf/(2*Mf*Nf)*y*y+tf/(24*Mf*pow(Nf,3))*(5+3*tf*tf+Etaf*Etaf-9*Etaf*Etaf*tf*tf)*pow(y,4)-tf/(720*Mf*pow(Nf,5))*(61+90*tf*tf+45*pow(tf,4))*pow(y,6);double l=1/(Nf*cos(Bf))*y-1/(6*pow(Nf,3)*cos(Bf))*(1+2*tf*tf+Etaf*Etaf)*pow(y,3)+1/(120*pow(Nf,5)*cos(Bf))*(5+28*tf*tf+24*pow(tf,4)+6*Etaf*Etaf+8*Etaf*Etaf*tf*tf)*pow( y,5);CAngle B(dB,RAD);CAngle _L(l,RAD);CAngle CML(dCML);CAngle L(CML+_L);dB=B(DMS);dL=L(DMS);}double Gauss::ComptBf(double x){double A0;A0=1+3.0/4*e*e+45.0/64*pow(e,4)+350.0/512*pow(e,6)+11025.0/16384*pow(e,8);double B0=x/(a*(1-e*e)*A0);const doubleK0=1.0/2*(3.0/4*e*e+45.0/64*pow(e,4)+350.0/512*pow(e,6)+11025.0/16384*pow(e,8));const double K2=-1.0/3*(63.0/64*pow(e,4)+1108.0/512*pow(e,6)+58239.0/16384*pow(e,8));const double K4=1.0/3*(604.0/512*pow(e,6)+68484.0/16384*pow(e,8));const double K6=-1.0/3*(26328.0/16384*pow(e,8));doubleBf=B0+sin(2*B0)*(K0+sin(B0)*sin(B0)*(K2+sin(B0)*sin(B0)*(K4+K6*sin(B0)*sin(B0))));return Bf;}Shiyan_7Dlg.cpp#include"stdafx.h"#include"shiyan_7.h"#include"shiyan_7Dlg.h"#include"Gauss.h"#include"Angle.h"void Cshiyan_7Dlg::OnBnClickedOk(){// TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);Gauss D;D.CGaussForward(B, L, CML,type, X,Y);UpdateData(FALSE);//OnOK();}void Cshiyan_7Dlg::OnBnClickedOk2(){// TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);Gauss DB;DB.CGaussInverse(X,Y,CML,type,B,L);UpdateData(FALSE);}Angle.h#pragma onceenum AngleStyle{DEG,DMS,RAD};class CAngle{public:CAngle(double value=0,AngleStyle style=DMS);~CAngle(void);private:double dValue;//角度值AngleStyle nCurStyle;//当前角度值类型private://设置常成员函数的作用:.类成员不会被改变//2.可以被常类变量调用double Deg(double dDms) const;double Dms(double dDeg) const;public://获取指定的类型获取角度值,//由于返回的是dValue的引用,所以该值大小可以改变,即可以进行赋值double& operator() (AngleStyle style);//重载,获取指定的类型获取角度值,该值不可改变,const CAngle类型变量调用double operator() (AngleStyle style) const;//重载运算符+/-friend CAngle operator + (const CAngle& m1,const CAngle& m2);friend CAngle operator - (const CAngle& m1,const CAngle& m2);};Angle.cpp参考老师的角度类运行结果正算反算总结这次试验做了很久,虽然有比较清楚的思路,但是在代码执行过程中出现了很多问题,刚开始的时候,出现了“无法解析的外部函数”,改了很久也没改出来,后来问同学,原来是在构造函数的地方出现了问题,修改后,这个错误没有了。

大学生C语言程序设计(第四版 谭洪强)实验7 答案

大学生C语言程序设计(第四版 谭洪强)实验7 答案

实验七 参考答案(参考答案)(1) (sy7-1.c )请编写函数fun ,它的功能是:计算并输出n (包括n )以内能被5 或9 整除的所有自然数的倒数之和。

例如,若主函数从键盘给n 输入20后,则输出为s=0.583333。

注意:n 的值要求不大于100。

算法分析:使用for 循环i ,遍历n 包含n 以内的所有整数,逐一判断每个i ,是否满足条件(能被5 或9 整除),如果满足,则把它的倒数累加到累加器里。

注意:i 的倒数要表示成:1.0/i;参考子函数如下:double fun(int n){double sum=0;int i;for(i=5;i<=n;i++)if(i%5==0||i%9==0)sum=sum+1.0/i;return sum;}(2) (sy7-2.c ) 请编写函数fun ,其功能是:根据以下公式计算s ,并计算结果作为函数值返回,n 通过形参传入。

n s ⋯++++⋯++++++=321132112111例如:若n 的值为11时,函数的值为1.83333算法分析:等式右边从第二项(i=2)开始,其分母等于前一项的分母加上i ;一共有n 项;求出每项的分母,然后把每项进行累加。

参考子函数如下:float fun(int n){float sum=1; //sum 中已经累加了第一项的值int i,m=1; //m 表示每项的分母;for(i=2;i<=n;i++){ m=m+i;sum=sum+1.0/m;}return sum;}(3) (sy7-3.c)请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。

合并的方式是:将 a 数的十位和个位依次放在c 数的十位和千位上,b 数的十位和个位数依次放在c 数的个位和百位上。

例如,当a=45,b=12,调用该函数后,c=5241。

算法分析:对一个两位数n,它的各位可以通过n%10求的,它的十位数可以通过n/10求的;所以分别用上述方法求的a和b的个位和十位,同时按照要求累加到c里。

MATLAB)课后实验答案-精简版.do

MATLAB)课后实验答案-精简版.do

实验一1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。

(1) 0122sin851z e =+(2) 21ln(2z x =,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦(3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e az a a --+=++=--(4)2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0.5:2.52. 已知:34787,2033657327A B ⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦求下列表达式的值:(1) A+6*B 和A-B+I (其中I 为单位矩阵) (2) A*B 和A.*B (3) A^3和A.^3 (4) A/B 及B\A(5) [A,B]和[A([1,3],:);B^2] 3.设有矩阵A 和 B123453166789101769,111213141502341617181920970212223242541311A B ⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥==-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦(1) 求它们的乘积C 。

(2) 将矩阵C 的右下角3×2子矩阵赋给D 。

(3) 查看MATLAB 工作空间的使用情况。

(1) 求[100,999]之间能被21整除的数的个数。

(2) 建立一个字符串向量,删除其中的大写字母。

ch='ABC123d4e56Fg9';则要求结果是:实验二1. 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A O S +⎡⎤=⎢⎥⎣⎦。

解: M 文件如下;E=eye(3); R=rand(3,2); O=zeros(2,3);S=diag([1 2]);A=[E R a=[E,R+R*SO S] O ,S^2] A^2=a 2. 产生5阶希尔伯特矩阵H 和5阶帕斯卡矩阵P ,且求其行列式的值Hh 和Hp 以及它们的条件数Th 和Tp ,判断哪个矩阵性能更好。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言程序设计实验教学(7)【实验目的】函数是C程序的基本组成部分,学习函数的设计和调用是很重要的。

实验目的是掌握函数的定义、变量的作用域和函数的调用。

【实验要求】实际应用程序通常是由多个函数构成的,要求将常见的功能模块用函数形式实现,并学会在主函数或其他函数中调用定义的函数。

要学会函数声明。

【实验课时】6.0【实验内容】编写函数fun(n),n为三位自然数,判断n是否为水仙花数,是返回1,否返回0。

编写main 函数,输入一个数num,调用fun(num)函数,并输出函数的返回值。

#include "stdio.h"int fun(int n){int a,b,c;a=n%10; b=n/10%10; c=n/100;if(a*a*a+b*b*b+c*c*c==n) return(1);else return(0);}main(){int num; scanf("%d",&num);while(num<100||num>=1000){printf("please enter the num again! (num>=100&&num<1000) \n");scanf("%d",&num);}if(fun(num)==1) printf(" yes \n");else printf(" no \n");}编写函数ss(n), 判断n是否为素数,是返回1,否返回0。

编写main函数,输入一个数num,调用ss(num)函数,并输出函数的返回值。

#include "stdio.h"int ss(int n){int i;for(i=2;i<n;i++)if(n%i==0) break;if(i>=n) return(1);else return(0);}main(){ int num; scanf("%d",&num);if(ss(num)==1) printf(" yes \n");else printf(" no \n");}编写一个函数fun(n),计算n!,并编写main函数测试,在main函数中输入num,调用fun(num),输出计算的结果。

#include "stdio.h"long fun(int n){long s=1; int i;for(i=1;i<=n;i++) s=s*i;return(s);}main(){int num; scanf("%d",&num);if(num>=0) printf("%d!=%ld \n",num,fun(num));else printf("input data error! \n");}使用递归函数实现计算n!,并在main函数中调用。

#include "stdio.h"long fun(int n){long f;if(n==1||n==0) f=1;else f=n*fun(n-1);return f;}main(){int num; scanf("%d",&num);if(num>=0) printf("%d!=%ld \n",num,fun(num));else printf("input data error! \n");}某数列为K(n)的定义为:用递归的方法求该数列的第6项k(6)。

1 n=1k(n)= k(n-1)×2 n为偶数k(n-1)×3 n为奇数int k(int n){int c;if(n==1) c=1;else if(n%2==0) c=k(n-1)*2;else c=k(n-1)*3;return c;}main(){int m;scanf("%d",&m);if(m>=1) printf("k(%d)=%d\n",m,k(m));else printf("input data error!\n");}计算s=(1!)+(1!+2!)+…+(1!+…+n!)。

n由用户输入,小于10。

(设计:函数h1()计算阶乘;函数h2()计算每个数据项的累加运算。

用函数的嵌套来做)long h1(int n){long t=1;int i;for(i=1;i<=n;i++) t=t*i;return t;}long h2(int m){long s=0;int i;for(i=1;i<=m;i++)s=s+h1(i);return s;}main(){int k,j;long sum=0;scanf("%d",&k);for(j=1;j<=k;j++)sum=sum+h2(j);printf("(1!)+(1!+2!)+...+(1!+2!+...+%d!)=%ld\n",k,sum);}设计一个函数fc,其功能为统计数组中偶数的个数。

编写main函数,用数组名num做为函数传递的参数调用fc函数,实现对数组num的统计,并输出统计结果。

#include "stdio.h"int fc(int a[],int n){int i,c=0;for(i=0;i<n;i++)if(a[i]%2==0) c=c+1;return(c);}main(){int i,num[10];for(i=0;i<10;i++)scanf("%d",&num[i]);printf("oushu: %d \n",fc(num,10));printf("jishu: %d \n",10-fc(num,10));}在一个一维数组a中存放10个正整数, 求其中所有的素数。

(用数组元素作为函数的实际参数)int sushu(int x){int i,k=1;if(x==1) k=0;for(i=2;i<=x/2;i++)if(x%i==0) k=0;return(k); }main( ){int a[10],i;for(i=0;i<10;i++) scanf("%d",&a[i]);printf("sushu of array a are:\n");for(i=0;i<10;i++)if(sushu(a[i])) printf("%5d",a[i]);printf("\n");}设计一个函数,计算两个自然数的最大公约数。

int gcd(int m,int n){int r;r=m%n;while(r!=0){m=n;n=r;r=m%n;}return n;}main(){int m,n;scanf("%d,%d",&m,&n);printf("%d\n",gcd(m,n));}设计一个函数float ave(int a[10]),计算数组a所有元素的平均值。

(用数组名作为函数的实际参数)float ave(int a[10]){int i,sum=a[0] ; float aver;for(i=1;i<10;i++)sum=sum+a[i] ;aver=1.0*sum/10 ;return(aver); }void main(){int i,score[10]; float aver;for(i=0;i<10;i++)scanf("%d",&score[i]);printf("\n");aver=ave(score);printf("average score is %5.2f\n",aver);}用选择法对数组中10个整数按升序排序。

(要求将排序功能设计成函数,数组名作为参数)。

void sort(int array[],int n){int i,j,k,t;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(array[j]<array[k]) k=j;t=array[k];array[k]=array[i];array[i]=t;} }void main(){int a[10],i;printf("input the array:\n");for(i=0;i<10;i++) scanf("%d",&a[i]);sort(a,10);printf("output the array after ordered:\n");for(i=0;i<10;i++) printf("%5d",a[i]);printf("\n");}设有一个3×4的矩阵,求出其中的最大元素。

(要求:将计算最大值的功能设计成函数,数组名作为参数)max_value(int array[12]){int i,max;max=array[0];for(i=0;i<12;i++)if(array[i]>max) max=array[i];return(max);}main(){int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};printf("max=%d\n",max_value(a));}设计一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

(学习指导书P74)#include <string.h>main(){int inverse (char str[]); /*函数原型声明*/char str[100];printf("Input string:\n");gets(str);inverse(str);printf("Output string after inverse:\n");puts(str);}int inverse(char st[]) /* 函数定义*/{char t; int i,j;for(i=0,j=strlen(st);i<strlen(st)/2;i++,j--){ t=st[i];st[i]=st[j-1];st[j-1]=t;}}设计一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。

相关文档
最新文档