2012-2013(2)测量程序设计基础A答案
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
淮 海 工 学 院 2013 - 2014 学年第一学期 测量程序设计基础 试卷A答案 一 二 三 四 总分 核分人 题号 分值 24 24 12 40 100 得分 一、选择题(每小题2分,共24分) 1. 在matlab编程中,不能使用的符号为____D____。 A. ; B.@ C.‘ ’ D.“” 2. 在matlab的命令窗口中执行___B____命令,可将工作空间中所有内容清空。 A. clc B. clear C. echo off D. cd 3.下列__D___是合法变量。 A. 2_abc B. return C.function D. eps 4产生所有元素均为0的3行2列矩阵的命令是___B__。 A. zeros(2,3) B.zeros(3,2) C.ones(3,2) D.eye(3,2) 12345.已知数组a=2345,若要产生a的一个子矩阵23,987634则下列命令中正确的是_____D__。 A.a([2 3],[2 3 4]) B.a(2:end,2:end) C.a(linspace(2,3,2),2:4) D. a([1 2],[2 3]) 6.已知a=1:5,b=2:6,下面的运算表达式出错的是__D__。 A. b’*a B. a./b C. a’*b D. a/.b 7.关于表达式的定义规则,错误的是__C__。 A.表达式由变量名、运算符、函数名等组成; B.表达式按与常规相同优先级自左向右执行运算; C.优先级的规定的顺序不可以改变; D.在赋值符和运算符的两侧允许有空格,以增加程序可读性。 8. surfc函数功能是___D_。 A.绘制三维曲线图 B.绘制三维网格图 C.绘制三维曲面图 D.绘制三维带等高线的曲面图 9.运行以下命令后,变量C的值是__D_。 >>A=length([5 5 6;6 6 6;7 7 8]); >>B=length([1 2;3 4;5 6]); >>C=A-B A.6 B.5 C.3 D.0 10.matlab的程序运行过程中,如果想知道代码运行的实际时间, 可以使用计时函数,matlab提供了函数_A_可以实现计时。 A. tic/toc B. runtime C.time D. cpu 11.运行此格式的命令“变量名=@(输入参数列表)函数表达式”,则 变量是_D__ 。 A. 内联函数 B.普通函数 C.函数句柄 D.匿名函数 12.运行此格式的命令“变量名= @ 函数名;”,则_C__。 A.创建了inline对象 B.创建了匿名函数C.创建了函数句柄 D.创建了子函数。 二、填空题(每空1分,共24分) 1、把matlab工作空间中一些有用的数据长久保存下来的方法是 生成.mat数据文件,常用的命令是____save___. 2、若调用matlab中已存在的.mat文件中的数据,则需使用命令_load_ 3、求方阵A的行列式值的指令是__ det(A)_. 4、求可逆矩阵B的逆矩阵的指令是:_inv(B)_. 5、计算一个矩阵C的秩的命令为___rank(C) . 6、运行命令>>disp(‘边长观测值:’),结果为_边长观测值_. 7、在matlab中,此函数dms2rad(mat2dms( ))的功能是 1 __将度分秒转化为弧度____. 8、在matlab中,函数dms2mat(rad2dms( ))的功能为_________ __将弧度转化为度分秒__. 9、关系运算的运算结果皆由数字_1或0___________组成。 10、在matlab中,冒号“:”有两个功能:一是生成__向量__; 二是表示__矩阵的行列或块_. 11、在语句末出现逗号,意味着_逗号出现在句末,表示计算结果显示在屏幕上_ 12、A=[1 2 3 ; 4 5 6], 则A'。=_[1 4;2 5;3 6]. 13、在进行多函数图形绘制时,经常使用命令hold on或hold off,二者的区别是__ hold on:启动图形保持功能;_ hold off:关闭图形保持功能. 14、多项式拟合也是测量数据处理中经常使用的方法,matlab中常利用函数__polyfit_和__polyval_进行多项式拟合. 15、函数plot和plot3的区别是___前者绘制二维曲线,后者绘制三维曲线_. 16、在数字测量技术中,通常要绘制等高线图,这时需要调用函数为 ____ contour _. 17、matlab中有两种常用的工作方式,一种是_交互式_;另一种是 ____M文件式__. 18、M文件分为两类:函数式M文件和__脚本式_;二者最明显的区别 是___函数式M文件有声明行,而脚本式没有_. 19、在matlab中,函数xlsread( )的功能是__将excel中的数据读入MATLAB. 20、多元线性回归,也是测量数据处理经常用到的方法,在这里最常 使用的函数是___ regress( )_. 三、简答题(本题满分12分) 1、简述函数式M文件和命令式M文件的区别。(本题6分) (1)M命令文件没有参数传递功能,但M函数文件有此功能; (2)M函数文件的格式有严格规定,它必须以“ function ”开头;而命令式则不然; (3)M函数文件的命名必须是其函数名,不可改变; (4) 函数文件的变量是局部变量 , 运行期间有效 , 运行完毕就自动被清除 , 而命令文件的变量是全局变量 , 执行完毕后仍被保存在内存中。 2、请修改下面的程序,让程序中没有for循环语句也能完成任务。 (本题6分) A=[1 2 3; 4 5 6; 7 8 9]; [r c]=size(A); for i=1:1:r for j=1:1:c if (A(i,j)>8 | A(i,j)<2) A(i,j)=0; end end end disp(A) 修改为: A=[1 2 3; 4 5 6; 7 8 9]; [r c]=size(A); A(1,1)=0; A((3,3)=0; disp(A) 2 四、程序设计题(本题满分40分) 1、程序改错题,本程序有多处错误,请认真分析,找出所有错误, 并加以改正。(本题12分) 若一个四位整数的各位数字的四次方之和等于该数本身,则称该数为子宁数。输出全部的子宁数。 程序段如下: (1) for m=1000:1:9999; (2) m1==fix(m/1000); %求m的千位数字 (3) m2=round((m-m1*1000)/100); %求m的百位位数字 (4) m3=floor((m-m1*1000-m2*100)/10); %求m的十位位数字 (5) m4==m-m1*1000-m2*100-m3*10; %求m的个位数字 (6) if m=m1*m1*m1*m1+m2*m2*m2*m2+m3*m3*m3*m3+m4*m4*m4*m4; (7) output(m); (9) end; 共9个语句,哪些语句有错误?只把有错的进行改正。对的语句不需要改,只对错误的语句加以改正。(只有6个语句有错误) (1)_____________________________________________________, (2)_ m1=fix(m/1000);___________, (3)__ m2=fix((m-m1*1000)/100)_;, (4)_____________________________________________________, (5)__ m4=m-m1*1000-m2*100-m3*10;, (6) if m==m1*m1*m1*m1+m2*m2*m2*m2+m3*m3*m3*m3+m4*m4*m4*m4;, (7) disp(m);___________________, (8)_end________________________, (9)_____________________________________________________. 2、现有下列脚本程序,请分析该“for”循环执行情况并写出该程序运行结果。(5分) for m=1:3 for n=1:3 H(m,n)=m^2+n end end 结果H为: H = 2 3 4 5 6 7 10 11 12 3、A 是一个m×n的矩阵. 写一程序段, 计算出A中有多少个零元素。(12分) >> A= input ('请输入一个矩阵') [m,n]= size(A); sig=0; for i=1:m for j=1:n if A(i,j)==0 sig = sig+1; end end end 4A和B是已知高程的水准点,并设这些点已知高程无误差,C、D、E是待定点,A、B高程、观测高差和相应的水准路线长度见下表,为求各待定点的高程平差值,我们利用间接平差进行编程,请根据题意和程序中上、下语句的关系,进行填空以完善整个程序。(本题11分) C h1h6 h3EAh5 h7 (8) else 3 线路编号 观测高差(m) 线路长度(km) 已知高程(m) 1 +1.360 2.2 HA=5.018 2 +2.010 2.6 HB=6.018 3 +0.364 3.3 4 +1.013 3.5 5 +0.658 3.4 6 +0.239 2.4 7 -0.596 3.7 disp(‘-------水准网间接平差示例-------------’) disp(‘已知高程:’) HA = 5.018 % 已知点高程,单位m HB = 6.018 % 已知点高程,单位m disp(‘观测高差,单位m’) L = _[1.360; 2.010; 0.364; 1.013; 0.658; -0.357] disp(‘系数矩阵B’) B =[1 0; 0 1; 1 0; 0 1; -1 1; -1 0] l = [0; 0; 4; 3; 8; 3] disp(‘C是单位权观测高差的线路公里数,S是线路长度’) C = 1*ones(1,6) S = __[2.2,2.6,3.3,3.5,3.4,6.1] P = _C./S _ % 定义观测值的权, P = diag(P) % 定义权阵 disp(‘参数的解’) x = __ inv(B’*P*B)*B’*P*l _ disp(‘误差V(mm), 各待定点的高程平差值L1(m)’) V = _ B*x- l _ % 误差方程(mm) LP = L + _V/1000_ % 观测值的平差值 disp(‘精度评定’) n = __6_; % 观测值的个数 t = __2_; % 必要观测数 delta = _ sqrt__(V’*P*V/(n – t)) 4 本文来源:https://www.wddqw.com/doc/a89cc40aac45b307e87101f69e3143323868f571.html