- 2021-05-14 发布 |
- 37.5 KB |
- 62页
申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
文档介绍
精编(精华版)国家开放大学电大《机电控制工程基础》《C语言程序设计》网络课形考网考作业(合集)答案
(精华版)国家开放大学电大《机电控制工程基础》《C语言程序设计》网络课形考网考作业(合集)答案 (精华版)国家开放大学电大《机电控制工程基础》《C语言程序设计》网络课形考网考作业(合集)答案 《机电控制工程基础》网络课答案 形考任务1 一、判断题(共20道,每道2分)题目1 自动控制就是在人直接参与的情况下,利用控制装置使生产过程的输出量按照给定的规律运行或变化。 选择一项:错 题目2 反馈控制系统通常是指正反馈。 选择一项:错 题目3 所谓反馈控制系统就是的系统的输出必须全部返回到输入端。 选择一项:错 题目4 给定量的变化规律是事先不能确定的,而输出量能够准确、迅速的复现给定量,这样的系统称之为随动系统。 选择一项:对 题目5 自动控制技不能提高劳动生产率。 选择一项:错 题目6 对于一般的控制系统,当给定量或扰动量突然增加时,输出量的暂态过程一定是衰减振荡。 选择一项:错 题目7 对于一般的控制系统,当给定量或扰动量突然增加某一给定值时,输出量的暂态过程可能出现单调过程。 选择一项:对 题目8 被控制对象是指要求实现自动控制的机器、设备或生产过程。 选择一项:对 题目9 任何物理系统的特性,精确地说都是非线性的,但在误差允许范围内,可以将非线性特性线性化。 选择一项:对 题目10 自动控制中的基本的控制方式有开环控制、闭环控制和复合控制。 选择一项:对 题目11 一个动态环节的传递函数为1/s,则该环节为一个微分环节。 选择一项:错 题目12 控制系统的数学模型不仅和系统自身的结构参数有关,还和外输入有关。 选择一项:错 题目13 控制系统的传递函数取决于自身的结构与参数,和外输入无关。 选择一项:对 题目14 传递函数模型可以用来描述线性系统,也可以用来描述非线性系统。 选择一项:错 题目15 系统的传递函数为则该系统有两个极点。 选择一项:错 题目16 传递函数是物理系统的数学模型,但不能反映物理系统的性质,因而不同的物理系统能有相同的传递函数。 选择一项:对 题目17 某环节的输出量与输入量的关系为y(t)=Kx(t),K是一个常数,则称其为比例环节。 选择一项:对 题目18 对于同一系统,根据所研究问题的不同,可以选取不同的量作为输入量和输出量,所得到的传递函数模型是不同的。 选择一项:对 题目19 在零初始条件下,传递函数定义为输出和输入之比。 选择一项:错 题目20 控制系统传递函数分子中s的最高阶次表示系统的阶数。 选择一项:错 二、单项选择题(共20道,每道3分)题目21 开环控制系统的精度主要取决于 。 选择一项:D. 系统的校准精度 题目22 反馈控制系统通常是指 。 选择一项:B. 负反馈 题目23 如果系统的输出端和输入端之间不存在反馈回路,这样的系统一定是 。 选择一项:A. 开环控制系统 题目24 输出端与输入端间存在反馈回路的系统一定是 。 选择一项:C. 闭环控制系统 题目25 数控机床系统是由程序输入设备、运算控制器和执行机构等组成,它属于以下 。 选择一项:B. 程序控制系统 题目26 是控制信号与主反馈信号之差。 选择一项:A. 偏差信号 题目27 是指系统输出量的实际值与希望值之差。 选择一项:B. 误差信号 题目28 以下的给定量是一个恒值。 选择一项:D. 恒值控制系统 题目29 输入量为已知给定值的时间函数的控制系统被称为 。 选择一项:A. 程序控制系统 题目30 是控制系统正常工作的首要条件,而且是最重要的条件。 选择一项:D. 稳定性 题目31 已知线性系统的输入为单位阶跃函数,系统传递函数为G(s),则输出Y(s)的正确表达式是 。 选择一项: 题目32 传递函数表示 环节。 选择一项:B. 积分 题目33 控制系统闭环传递函数的分母多项式的根称为该系统的 。 选择一项:B. 闭环极点 题目34 控制系统闭环传递函数的分子多项式的根称为该系统的 。 选择一项:C. 闭环零点 题目35 单位斜坡函数的拉氏变换式为 。 选择一项:C. 1/s2 题目36 一阶系统的传递函数为则其时间常数为 。 选择一项:C. 2 题目37 已知线性系统的输入x(t),输出y(t),传递函数G(s),则正确的关系是 。 选择一项:B. Y(s)=G(s)·X(s) 题目38 控制系统的传递函数为则该系统的极点为 。 选择一项:C. 0, 0, -2, -0.25 题目39 传递函数为它包括的典型环节有 。 选择一项:C. 惯性环节和比例环节 题目40 传递函数可用来作为 系统的数学模型。 选择一项:A. 线性系统 形考任务2 一、判断题(共20道,每道2分)题目1 时间常数T越大,一阶系统跟踪单位斜坡输入信号的稳态误差越小。 选择一项:错 题目2 二阶系统在欠阻尼下阶跃响应表现为等幅振荡的形式。 选择一项:错 题目3 一阶系统的动态响应速度和其时间常数有关。 选择一项:对 题目4 两个二阶系统若具有相同的阻尼比,则这两个系统具有大致相同的超调量。 选择一项:错 题目5 两个二阶系统若具有相同的阻尼比,则这两个系统具有大致相同的超调量。 选择一项:错 题目6 两个二阶系统具有相同的超调量,则这两个系统具有相同的无阻尼自振荡角频率 选择一项:错 题目7 一阶系统的时间常数越小,其动态响应速度越快。 选择一项:对 题目8 二阶系统的调节时间和阻尼比及无阻尼自振荡角频率的乘积成反比。 选择一项:对 题目9 二阶系统的阻尼比越小,振荡性越强。 选择一项:对 题目10 对于Ⅰ型系统,在单位阶跃输入信号下的稳态误差为零。 选择一项:对 题目11 劳斯表第一列系数符号改变了两次,说明该系统有两个根在右半s平面。 选择一项:对 题目12 如果在扰动作用下系统偏离了原来的平衡状态,当扰动消失后,系统能够以足够的准确度恢复到原来的平衡状态,则系统是稳定的。否则,系统不稳定。 选择一项:对 题目13 在计算中劳斯表的某一行各元素均为零,说明特征方程有关于原点对称的根。 选择一项:对 题目14 0型系统在阶跃输入作用下存在稳态误差,常称有差系统。 选择一项:对 题目15 0型系统不能跟踪斜坡输入,Ⅰ型系统可跟踪,但存在误差,Ⅱ型及以上在斜坡输入下的稳态误差为零。 选择一项:对 题目16 二阶系统在零阻尼下,其极点位于S平面的右半平面。 选择一项:错 题目17 二阶欠阻尼系统,其阻尼比越大,系统的平稳性越好。 选择一项:对 题目18 系统的稳态误差和其稳定性一样,均取决于系统自身的结构与参数。 选择一项:错 题目19 两个二阶系统具有相同的超调量,则这两个系统具有相同的无阻尼自振荡角频率。 选择一项:错 题目20 当固定,增加时,二阶欠阻尼系统单位阶跃响应的调节时间将减小。 选择一项:对 二、选择题(共20道,每道3分)题目21 若系统的开环传递函数为,则它的开环增益为( )选择一项:a. 5 题目22 二阶系统的传递函数,则该系统是( )选择一项:b. 欠阻尼系统 题目23 若保持二阶系统的ζ不变,提高ωn,则可以( )。 选择一项:c. 减少调节时间 题目24 设系统的特征方程为,则此系统 ()。 选择一项:b. 稳定 题目25 某一系统的速度误差为零,则该系统的开环传递函数可能是( )。 选择一项: 题目26 单位反馈系统开环传递函数为,当输入为单位斜坡函数时,其稳态误差为( )。 选择一项:c. 0 题目27 已知二阶系统单位阶跃响应曲线呈现出等幅振荡,则其阻尼比可能为( )。 选择一项:c. 0 题目28 系统的传递函数,其系统的增益和型次为 ( )。 选择一项:d. 5/4,2 题目29 若保持二阶系统的ωn不变,提高ζ,则可以( )。 选择一项:c. 减少上升时间和峰值时间 题目30 二阶系统的传递函数,其阻尼比ζ是( )。 选择一项:b. 0.5 题目31 二阶系统的两个极点均位于负实轴上,则其在阶跃输入下的输出响应表现为 。 选择一项:c. 单调上升并趋于稳态值 题目32 已知二阶系统单位阶跃响应曲线不呈现振荡特征,则其阻尼比可能为( )。 选择一项:d. 1 题目33 以下关于系统稳态误差的概念正确的是( )。 选择一项:a. 与系统的结构和参数、输入和干扰有关 题目34 当输入为单位阶跃函数,对于开环放大系数为k的I型系统其稳态误差为()选择一项:a. 0 题目35 时域分析法研究自动控制系统时最常用的典型输入信号是 ( )。 选择一项:c. 阶跃函数 题目36 设控制系统的开环传递函数为,该系统为 ( )。 选择一项:a. I型系统 题目37 一阶系统的时间常数T越大,则系统的输出响应达到稳态值的时间()选择一项:c. 越长 题目38 设系统的传递函数为,则系统的阻尼比为( )。 选择一项:c. 1/2 题目39 二阶系统当0<ζ<1时,如果增加ζ,则输出响应的最大超调量将 ( )。 选择一项:b. 减小 题目40 某二阶系统阻尼比为0.2,则系统阶跃响应为 ( )。 选择一项:a. 衰减振荡 形考任务3 一、判断题(共20道,每题2分)题目1 根轨迹起始于开环极点,终止于开环零点。 选择一项:对 题目2 根轨迹是连续的,对称于实轴。 选择一项:对 题目3 在实轴上根轨迹分支存在的区间的右侧,开环零、极点数目的总和为偶数。 选择一项:错 题目4 若在实轴上相邻开环极点之间存在根轨迹,则在此区间上一定有分离点。 选择一项:对 题目5 若在实轴上相邻开环零点之间存在根轨迹,则在此区间上一定有汇合点。 选择一项:对 题目6 根轨迹渐进线倾角大小为 。 选择一项:错 题目7 独立的渐近线共有n-m条。 选择一项:对 题目8 某单位反馈系统的开环极点个数为4,则系统根轨迹的分支数为2 。 选择一项:错 题目9 单位反馈系统开环传递函数为 则其根轨迹的渐近线和实轴的夹角为。 选择一项:对 题目10 单位反馈系统的开环传递函数为,则根轨迹的分支数为2,分别起始于0和-4。 选择一项:对 题目11 0型系统不能跟踪斜坡输入,Ⅰ型系统可跟踪,但存在误差,Ⅱ型及以上在斜坡输入下的稳态误差为零。 选择一项:对 题目12 二阶系统在零阻尼下,其极点位于S平面的右半平面。 选择一项:错 题目13 二阶欠阻尼系统,其阻尼比越大,系统的平稳性越好。 选择一项:对 题目14 系统的稳态误差和其稳定性一样,均取决于系统自身的结构与参数。 选择一项:错 题目15 两个二阶系统具有相同的超调量,则这两个系统具有相同的无阻尼自振荡角频率。 选择一项:错 题目16 系统的型别是根据系统的闭环传递函数中积分环节的个数来确定的。 选择一项:错 题目17 在输入一定时,增大开环增益,可以减小稳态误差;增加开环传递函数中的积分环节数,可以消除稳态误差。 选择一项:对 题目18 最佳工程参数是以获得较小的超调量为设计目标,通常阻尼比为1. 选择一项:错 题目19 系统最大超调量指的是响应的最大偏移量与终值的差与的比的百分数,即。 选择一项:对 题目20 二阶系统在欠阻尼下阶跃响应表现为等幅振荡的形式。 选择一项:错 二、选择题(共20道,每题3分)题目21 若开环传递函数G(s)H(s)不存在复数极点和零点,则 ( )。 选择一项:d. 没有出射角和入射角 题目22 n阶系统有m个开环有限零点,则有( )条根轨迹终止于S平面的无穷远处。 选择一项:d. n–m 题目23 开环传递函数为,则实轴上的根轨迹为( )。 选择一项:b. (-∞,-3) 题目24 系统的开环传递函数为,则实轴上的根轨迹为( )。 选择一项:a. (-∞,-3)和(-2,0) 题目25 根轨迹上的点应满足的幅角条件为( )。 选择一项:c. ±(2k+1)π(k=0,1,2,…) 题目26 根据( )条件是否满足来判断S平面上的某个点是否为根轨迹上的点。 选择一项:c. 相(幅)角条件 题目27 系统开环传递函数为,实轴上的根轨迹有( )。 选择一项: 题目28 单位反馈系统的开环传递函数为,则根轨迹的渐近线倾角为( )。 选择一项: 题目29 二阶系统当0<ζ<1时,如果增加ζ,则输出响应的最大超调量将 ( )。 选择一项:d. 减小 题目30 一阶系统的阶跃响应, ( ) 。 选择一项:c. 无振荡 题目31 某二阶系统阻尼比为0.2,则系统阶跃响应为 ( )。 选择一项:c. 衰减振荡 题目32 控制系统的开环传递函数为,则该系统的型别为( )。 选择一项:d. Ⅱ型 题目33 二阶控制系统的特征参数为 。 选择一项:a. 阻尼比和无阻尼自振荡角频率 题目34 欠阻尼的二阶系统的单位阶跃响应为 ( )。 选择一项:c. 衰减振荡 题目35 过阻尼二阶系统的两个极点位于 ( )。 选择一项:a. 实轴的不同位置上 题目36 二阶系统振荡程度取决于( )。 选择一项:a. 阻尼比 题目37 二阶欠阻尼系统的调节时间和( )成反比。 选择一项:d. 阻尼比和无阻尼自振荡角频率的乘积 题目38 一阶系统的单位阶跃响应为 。 选择一项:d. 单调上升并趋近于1 题目39 线性系统是稳定的,则 位于复平面的左半平面 。 选择一项:d. 闭环极点 题目40 输入相同时,系统型次越高,稳态误差 ( B ). 选择一项:a. 越小 形考任务4 一、判断题(共20道,每题2分)题目1 频率特性是线性系统在单位阶跃函数作用下的输出响应。 选择一项:错 题目2 二阶振荡环节低频渐近线为0分贝线,高频渐近线为斜率为20dB/dec的直线。 选择一项:错 题目3 一阶惯性环节的转折频率为1/T。 选择一项:对 题目4 积分环节的对数相频特性为+90°的直线。 选择一项:错 题目5 对数幅频特性的渐近线与精确曲线相比,最大误差发生在转折频率处。 选择一项:对 题目6 传递函数的极点和零点均在s平面左半平面的系统为最小相位系统。 选择一项:对 题目7 控制系统的稳定性和系统自身的结构和参数及外输入有关。 选择一项:错 题目8 最小相位系统的对数幅频特性和对数相频特性是一一对应的。 选择一项:对 题目9 比例环节的幅相特性是平面实轴上的一个点。 选择一项:对 题目10 (0.4,和填空题60互斥)比例环节稳态正弦响应的振幅是输入信号的K倍,且响应与输入同相位。 选择一项:对 题目11 积分环节的幅值与ω成正比,相角恒为90°。 选择一项:错 题目12 二阶振荡环节的对数幅频特性的低频段渐近线是一条-20dB/dec的直线,高频段渐近线是一条斜率为-40dB/dec的直线。 选择一项:错 题目13 系统对数幅频特性的高频段具有较大的斜率,可增强系统的抗高频干扰能力。 选择一项:对 题目14 时滞环节不影响系统的幅频特性,但会影响系统的相频特性。 选择一项:对 题目15 二阶振荡环节的输出信号相位始终是滞后输入,滞后的极限为90°。 选择一项:错 题目16 (与单选第22小题互斥,0.5)PI校正是相位超前校正。 选择一项:错 题目17 (与单选第27小题互斥,0.5)PD校正是相位超前校正。 选择一项:错 题目18 滞后校正主要是利用其高频衰减特性提高系统的开环增益,不能提高稳态精度以及系统的稳定性。 选择一项:错 题目19 超前校正由于频带加宽,所以对高频干扰较敏感。 选择一项:对 题目20 超前校正不适用于要求有快的动态响应的场合。 选择一项:错 二、单项选择题(共20道,每题3分)题目21 ω从0变化到+∞时,延迟环节频率特性极坐标图为( )。 选择一项:a. 圆 题目22 一阶微分环节,当频率时,则相频特性为( )。 选择一项:d. 45° 题目23 最小相位系统的开环增益越大,其( )。 选择一项:b. 稳态误差越小 题目24 一般开环频率特性的低频段表征了闭环系统的( )性能。 选择一项:b. 稳态 题目25 某环节的传递函数为,它的对数幅频率特性随K值增加而( )。 选择一项:c. 上移 题目26 设积分环节的传递函数为,则其频率特性幅值( )。 选择一项: 题目27 在用实验法求取系统的幅频特性时,一般是通过改变输入信号的( )来求得输出信号的幅值。 选择一项:d. 频率 题目28 II型系统对数幅频特性的低频段渐近线斜率为( )。 选择一项:a. –40(dB/dec) 题目29 比例环节的频率特性相位移=( )。 选择一项:c. 0° 题目30 积分环节的频率特性相位移=( ).(0.5) 选择一项:c. -90° 题目31 微分环节的频率特性相位移=( )(0.5) 选择一项:c. -180° 题目32 一阶惯性环节在转折频率处的相位移=( )。 选择一项:c. -45° 题目33 一阶微分环节在转折频率处的相位移=( )。 选择一项:a. +45° 题目34 已知系统为最小相位系统,则一阶惯性环节的相位变化范围为( )。 选择一项: 题目35 ω从0变化到+∞时,二阶振荡环节的相位移变化范围为( )。 选择一项: 题目36 一阶惯性系统的转折频率指ω=( )。 选择一项:b. 2 题目37 若已知某串联校正装置的传递函数为,则它是一种( )选择一项:b. 相位滞后校正 题目38 若已知某串联校正装置的传递函数为,则它是一种( )选择一项:b. 相位超前校正 题目39 若已知某串联校正装置的传递函数为,则它是一种( D )选择一项:d. 积分调节器 题目40 若已知某串联校正装置的传递函数为,则它是一种( )选择一项:a. 相位滞后—超前校正 《C语言程序设计》网络课答案 形考任务1 一、选择题(共40分,每小题2分)题目1 在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( )。 选择一项:A. main 恭喜你,答对啦!! 题目2 C语言源程序文件的缺省扩展名为( )。 选择一项:D. c 题目3 由C语言目标文件连接而成的可执行文件的缺省扩展名为( )。 选择一项:B. exe 题目4 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为( )。 选择一项:D. 空格或回车 题目5 每个C语言程序文件的编译错误被分为( )。 选择一项:B. 2类 题目6 不符合C语言规定的复合语句是( )。 选择一项:D. {y=10} 题目7 C语言程序中的基本功能模块为( )。 选择一项:D. 函数 题目8 在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和( )。 选择一项:C. 参数表 题目9 在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对( )。 选择一项:B. 双引号 题目10 在C语言程序中,多行注释语句使用的开始标记符为( )。 选择一项:B. /* 题目11 在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为( )。 选择一项:A. char 题目12 在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为( )。 选择一项:A. 5 题目13 转义字符'\\'表示的字符是( )。 选择一项:C. 反斜线 题目14 枚举类型中的每个枚举常量的值都是一个( )。 选择一项:A. 整数 题目15 运算符优先级最高的是( )。 选择一项:D. != 题目16 设x和y均为逻辑值,则x y为真的条件是( )。 选择一项:A. 它们均为真 题目17 设有语句“int a=12; a+=a*a;”,则执行结束后,a的值为( )。 选择一项:C. 156 题目18 x>0 x<=10的相反表达式为( )。 选择一项:A. x<=0 || x>10 题目19 字符串“a+b=12\n”的长度为( )。 选择一项:B. 7 题目20 在下列的符号常量定义中,错误的定义语句格式为( )。 选择一项:C. const int M3 10; 二、判断题(共60分,每小题2分。叙述正确则回答“是”,否则回答“否”)题目21 C语言中的每条简单语句以分号作为结束符。 选择一项:对 题目22 C语言中的每条复合语句以花括号作为结束符。 选择一项:错 题目23 在C语言程序中,在行尾使用注释的开始标记符为一对单斜线字符。 选择一项:对 题目24 注释内容的开始所使用的标记符为/*,则注释内容的结束所使用的标记符为*/。 选择一项:对 题目25 在一个C语言程序文件中,若要包含一个头文件,则使用以百分号开始的预处理命令。 选择一项:错 题目26 用于输出表达式值的标准输出函数是printf()。 选择一项:对 题目27 当不需要函数返回任何值时,则需要使用保留字void作为函数的返回值类型。 选择一项:对 题目28 每个C程序文件在编译时可能出现有警告性错误,其对应的标识符为error。 选择一项:错 题目29 十进制数25表示成符合C语言规则的八进制数为31。 选择一项:错 题目30 十进制数25表示成符合C语言规则的十六进制数为0x19。 选择一项:对 题目31 在C语言中,转义字符'\n'表示一个换行符。 选择一项:对 题目32 执行“printf(“%c“,'F'-2);”语句后得到的输出结果为H。 选择一项:错 题目33 已知字符'C'的ASCII码为67,当执行“int x='C'+5;”语句后x的值为72。 选择一项:对 题目34 假定一个枚举类型的定义为“enum RB{ab,ac=3,ad,ae}x=ad;”,则x的值为2。 选择一项:错 题目35 float的类型长度为8。 选择一项:错 题目36 在C语言中,常数28和3.26具有相同的数据类型。 选择一项:错 题目37 若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字const。 选择一项:对 题目38 使用const语句定义一个符号常量时,不必对它进行初始化。 选择一项:错 题目39 表达式45%13的值为3。 选择一项:错 题目40 假定x=5,则表达式2*x++的值为12。 选择一项:错 题目41 表达式(float)25/4的值为6。 选择一项:错 题目42 表达式x=x+1表示成增量表达式为++x。 选择一项:对 题目43 关系表达式(x!=0)的等价表达式为(x)。 选择一项:对 题目44 关系表达式x+y>5的相反表达式为x+y<=5。 选择一项:对 题目45 逻辑表达式(a>b || b==5)的相反表达式为(a>b b==5)。 选择一项:错 题目46 若x=5,y=10,则x>y逻辑值为真。 选择一项:错 题目47 假定x=5,则执行“a=(x?10:20);”语句后a的值为10。 选择一项:对 题目48 带有随机函数的表达式rand()%20的值所在的区间范围是0~19。 选择一项:对 题目49 假定x=5,则执行“y=x++;”语句后,x的值为5。 选择一项:错 题目50 假定x=5,则执行“y=++x;”语句后,y的值为6。 选择一项:对 形考任务2 一、选择题(共20分,每小题2分)题目1 当处理特定问题时的循环次数已知时,通常采用的语句是( )。 选择一项:a. for 题目2 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是( )。 选择一项:b. if 题目3 for语句能够被改写成的语句是( )。 选择一项:d. while 题目4 下面循环语句执行结束后输出的i值为( )。 for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break;} 选择一项:b. n/2+1 题目5 在下面循环语句中,内层循环体S语句的执行总次数为( )。 for(int i=0; i<n; i++) for(int j=i; j<n; j++) S; 选择一项:d. n(n+1)/2 题目6 在下面的do循环语句中,其循环体被执行的次数为( )。 int i=0; do i++; while(i*i<10); 选择一项:a. 4 题目7 在下面的一维数组定义中,有语法错误的选项是( )。 选择一项:c. int a[]; 题目8 在下面的二维数组定义中,语法正确的选项是( )。 选择一项:c. int a[][3]={{1,3,5},{2}}; 题目9 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][1]的值为( )。 选择一项:d. 8 题目10 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为( )。 选择一项:a. 0 二、判断题(共20分,每小题1分。叙述正确则回答“是”,否则回答“否”)题目11 在执行“typedef int DataType;”语句后,标识符DataType与保留字int具有完全相同的含义和作用。 选择一项:对 题目12 在switch语句中,每个case和冒号之间的表达式只能是常量。 选择一项:对 题目13 为了结束本层循环类语句或switch语句的执行过程,在语句体中需要使用break语句。 选择一项:对 题目14 在程序中执行到break语句时,将结束所在函数的执行过程,返回到调用该函数的位置。 选择一项:错 题目15 在程序执行完成任一个函数调用后,将结束整个程序的执行过程,返回到操作系统或C语言集成开发环境界面窗口。 选择一项:错 题目16 假定一维数组的定义为“char* a[8];”,则该数组所含元素的个数大于8。 选择一项:错 题目17 假定二维数组的定义为“int a[3][5];”,则该数组所占存储空间的字节数为60。 选择一项:对 题目18 假定二维数组的定义为“char a[M][N];”,则该数组所含元素的个数为M+N。 选择一项:错 题目19 假定二维数组的定义为“double a[M][N];”,则每个数组元素的行下标取值范围在0~M-1之间。 选择一项:对 题目20 假定二维数组的定义为“double a[M][N];”,则每个数组元素的列下标取值范围在0~N之间。 选择一项:错 题目21 存储一个空字符串需要占用0个字节的存储空间。 选择一项:错 题目22 使用“typedef char BB[10][50];”语句定义标识符BB为含有10行50列的二维字符数组类型。 选择一项:对 题目23 存储字符'a'需要占用1个字节的存储空间。 选择一项:对 题目24 空字符串的长度为1。 选择一项:错 题目25 字符串“a:\\xxk\\数据“的长度为13。 选择一项:错 题目26 为了存储一个长度为n的字符串,所使用的字符数组的长度至少为n+1。 选择一项:对 题目27 strcmp函数用于进行两个字符串之间的比较。 选择一项:对 题目28 strcpy函数用于把一个字符串拷贝到另一个字符数组空间中。 选择一项:对 题目29 一个二维字符数组a[10][20]能够最多存储9个字符串。 选择一项:错 题目30 一个二维字符数组a[10][20]能够存储的每个字符串的长度不超过20。 选择一项:错 三、填空题:写出下列每个程序运行后的输出结果(共40分,每小题4分)题目31 #include<stdio.h> void main() { int x=5; switch(2*x-3) { case 4: printf(“%d “,x); case 7: printf(“%d “,2*x+1); case 10: printf(“%d “,3*x-1); break; default: printf(“%s“,“default\n“); } } 答:11 14 题目32 #include<stdio.h> void main() { int i,s=0; for(i=1;i<=5;i++) s+=i*i; printf(“s=%d\n“,s); } 答:s=55 题目33 #include<stdio.h> void main() { int i, s1=0, s2=0; for(i=0;i<10;i++) if(i%2) s1+=i; else s2+=i; printf(“%d %d\n“,s1,s2); } 答:25 20 题目34 #include<stdio.h> void main() { int n=6,y=1; while(n) y*=n--; printf(“y=%d\n“,y); } 答:y=720 题目35 #include<stdio.h> const int M=20; void main() { int i,c2,c3,c5; c2=c3=c5=0; for(i=1; i<=M; i++) { if(i%2==0) c2++; if(i%3==0) c3++; if(i%5==0) c5++; } printf(“%d %d %d\n“,c2,c3,c5); } 答:10 6 4) 题目36 #include<stdio.h> void main() { int i,s; for(i=1,s=0;i<10;i++) { if(i%3==0) continue; s+=i; } printf(“%d\n“,s); } 答:27 题目37 #include<stdio.h> void main() { int a[8]={12,39,26,41,55,63,72,40}; int i, i1=0, i2=0; for(i=0;i<8;i++) if(a[i]%2==1) i1++; else i2++; printf(“%d %d\n“,i1,i2); } 答:4 4 题目38 #include<stdio.h> int a[10]={4,5,6,15,20,13,12,7,8,9}; void main() { int i,s[4]=0; for(i=0; i<10; i++) { switch(a[i]%4) { case 0: s[0]+=a[i];break; case 1: s[1]+=a[i];break; case 2: s[2]+=a[i];break; default: s[3]+=a[i];break; } } for(i=0; i<4; i++) printf(“%d “,s[i]); } 答:44 27 6 22 题目39 #include<stdio.h> void main() { char a[]=“abcdbfbgacd“; int i1=0, i2=0, i=0; while(a[i]) { if(a[i]=='a') i1++; if(a[i]=='b') i2++; i++; } printf(“%d %d %d\n“,i1,i2,i); } 答:2 3 11 题目40 #include<stdio.h> void main() { int a[3][4]={{1,2,7,8},{5,6,10,6},{9,12,3,4}}; int m=a[0][0]; int i,j; for(i=0; i<3; i++) for(j=0; j<4; j++) if(a[i][j]>m) m=a[i][j]; printf(“%d\n“,m); } 答:12 四、简答题:根据下列每个题目要求编写程序(共20分,每小题4分)题目41 编写一个函数,函数头格式为“double Mean(double a[M][N],int m,int n)”,要求返回二维数组a[m][n]中所有元素的平均值,假定在计算过程中采用变量v存放平均值。 double Mean(double a[M][N], int m, int n) { int i, j; double v=0.0; for(i=0; i<m; i++) for(j=0; j<n; j++) v+=a[i][j]; v=v/(m+n); return v; } 答:double Mean(double a[M][N],int m,int n) { int i,j; double v=0.0; for(i=0; i<m; i++) for(j=0; j<n; j++) v+=a[i][j]; v/=m*n; return v; } 题目42 编写一个递归函数“int FF(int a[], int n)”,求出数组a中所有n个元素之积并返回。 int FF(int a[ ], int n) { if(n==1) return a[0]; else return FF(a, n-1)*a[n-1]; } 答:int FF(int a[], int n) { if(n==1) return a[n-1]; else return a[n-1]*FF(a,n-1); } 题目43 编写一个主函数,利用while循环,求出并显示满足不等式的最小n值。 #include <stdio.h> void main( ) { int i=0, s=0; while(s<=1000) { i++; s+=i*i; } printf(“满足不等式的最小n 值是: %d\n“, i); } 答:#include<stdio.h> void main() { int i=0; double s=0; //或int i=1; double s=1; while(s<5) s+=(double)1/++i; printf(“n=%d\n“,i); } 题目44 编写一个主函数,求出满足不等式22+42+...+n2<1000的最大n值,假定分别用i和s作为取偶数值和累加值的变量,并限定使用do循环编程。 #include <stdio.h> void main( ) { int i=0, s=0; do { i+=2; s+=i*i; }while(s<1000); printf(“满足不等式的最大n值是: %d\n“, i-2); } 答:#include<stdio.h> void main() { int i=0; //用i作为依次取值偶数的变量 int s=0; //用s作为累加变量 do { i+=2; s+=i*i; }while(s<1000); printf(“n=%d\n“,i-2); } 题目45 编写一个主函数,计算并输出12+22+...+n2值,其中n值由键盘输入。 #include <stdio.h> void main( ) { int i, n, s=0; printf(“请输入一个整数n:“); scanf(“%d“, n); for(i=1; i<=n; i++) s+=i*i; printf(“s=%d\n“,s); } 答:#include<stdio.h> void main() { int i; //用i作为计数(循环)变量 int s=0; //用s作为累加变量 int n; printf(“输入一个自然数: “); scanf(“%d“,n); for(i=1; i<=n; i++) s+=i*i; printf(“s=%d\n“,s); } 形考任务3 一、选择题(共30分,每小题2分)题目1 在下面的函数声明语句中,存在着语法错误的是( )。 选择一项:c. AA(int a; int b) 题目2 在下面的保留字中,不能作为函数的返回值类型的是( )。 选择一项:c. enum 题目3 假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。 选择一项:c. 4 题目4 假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。 选择一项:b. *a++ 题目5 用calloc函数创建具有10个整型元素的一维数组的正确语句是( )。 选择一项:c. int *p=calloc(10,4); 题目6 假定变量m定义为“int m=7;”,则下面正确的语句为( )。 选择一项:b. int *p=m; 题目7 假定k是一个double类型的变量,则定义变量p的正确语句为( )。 选择一项:d. char *p=“Thank you!“; 题目8 若有语句为“int a[10], x, *pa=a;”,要把数组a中下标为3的元素值赋给x,则不正确的语句为( )。 选择一项:d. x=*pa+3; 题目9 假定有语句为“int b[10]; int *pb;”,则下面不正确的赋值语句为( )。 选择一项:d. pb=b[5]; 题目10 已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为( )。 选择一项:a. free(p); 题目11 在程序的一个文件中定义的函数,若要在另一个文件中调用,则必须在这另一个文件中给出该函数的( )。 选择一项:a. 原型语句 题目12 假定一个函数定义为“static int f1(int x,int y){return x+y;}”,该函数名称为( )。 选择一项:c. f1 题目13 假定一个函数的原型语句为“int ff(int* x);”,一个整型数组为a[10],则下面函数调用表达式不正确的是( )。 选择一项:b. ff(a[0]) 题目14 假定一个函数的数组参数说明为char a[],与之等价的指针参数说明为( )。1B 选择一项:b. char* a 题目15 假定一个函数的二维数组参数说明为char w[][N],与之等价的指针参数说明为( )。 选择一项:a. char (*w)[N] 二、判断题(共30分,每小题2分。叙述正确则回答“是”,否则回答“否”)题目16 在C语言中,一个函数由函数头和函数体组成。 选择一项:对 题目17 在函数模块之外定义的变量称为全局变量,若没有被初始化则系统隐含对它赋初值0。 选择一项:对 题目18 如果一个函数只允许同一程序文件中的函数调用,则不应在该函数定义的开始前加上保留字static。 选择一项:错 题目19 如果在一个函数体中又出现对自身函数的调用,此种函数调用被称为递归调用。 选择一项:对 题目20 调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的系统头文件。 选择一项:对 题目21 函数形参变量不属于局部变量。 选择一项:错 题目22 假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为46。 选择一项:错 题目23 假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为25。 选择一项:错 题目24 假定p所指对象的值为25,p+1所指对象的值为46,则执行*(p++)运算后,p所指对象的值为46。 选择一项:对 题目25 假定a是一个指针数组,则a+i所指对象的地址比a地址大4*i字节。 选择一项:对 题目26 若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为(char*)p。 选择一项:对 题目27 假定一个数据对象为int*类型,则指向该对象的指针类型仍为int*类型。 选择一项:错 题目28 假定x为一个简单变量,则x表示x的地址。 选择一项:对 题目29 若p指向x,则*p与x的值不同。 选择一项:错 题目30 NULL是一个符号常量,通常作为空指针值,它代表的值为0。 选择一项:对 三、写出下列每个程序运行后的输出结果(共20分,每小题4分)题目31 #include<stdio.h> int WF(int x, int y) { x=x+y; y=x+y; return x+y; } void main() { int x=5, y=7; int z=WF(x,y); printf(“z=%d\n“,z); } 答:z=31 题目32 #include<stdio.h> #include<string.h> void fun(char ss[]); void main() { char s[15]=“0123456789“; fun(s); printf(“%s\n“,s); } void fun(char ss[]) { int i, n=strlen(ss) ; for(i=0; i<n/2; i++) { char c=ss[i]; ss[i]=ss[n-1-i]; ss[n-1-i]=c; } } 答:987543210 题目33 #include<stdio.h> int Count(int a[], int n, int x) { int i,c=0; for(i=0;i<n;i++) if(a[i]>x) c++; return c; } void main() { int a[8]={20,15,32,47,24,36,28,70}; int b=Count(a,8,30); printf(“b=%d\n“,b); } 答:B=4 题目34 #include<stdio.h> void main() { int a[8]={3,5,7,9,2,3,4,8}; int s=0,*p; for(p=a;p<a+8;) s+=*p++; printf(“s=%d\n“,s); } 答:s=41 题目35 #include<stdio.h> int LA(int *a, int n, int x) { int i,s=0; for(i=0;i<n;i++) if(a[i]<x) s+=a[i]; return s; } void main() { int a[8]={5,10,15,8,12,3,9,20}; int b=LA(a,5,10); int c=LA(a+2,6,10); printf(“%d %d\n“,b,c); } 答:13 20 四、写出下列每个函数的功能(共20分,每小题4分)题目36 double SF(double x, int n) { //n为正整数 double p=1,s=1; int i; for(i=1;i<=n;i++) { p*=x; s+=p; } return s; } 答:计算出1+x+x2+...+xn的值并返回。 题目37 int SG(int x) { //x为大于等于2的整数 int i=2; while(i*i<=x) { if(x%i==0) break; i++; } if(i*i<=x) return 0; else return 1; } 答:判断x是否为一个质数(素数),若是则返回1,否则返回0。 题目38 int WB(int a[], int n, int x) { for(int i=0;i<n;i++) if(a[i]==x) return 1; return 0; } 答:从数组a[n]中顺序查找值为x的元素,若查找成功则返回1,否则返回0。 题目39 int fun(int m, int n) { int c=0; static int b=2; if(m<b || n<b) return m*n; else if(m%b==0 n%b==0) {c=b; return c*fun(m/b,n/b);} else {b++; return fun(m,n);} } 答:一个递归函数过程,求出两个自然数m和n的最小公倍数。 题目40 int LK(double a[], int n) { double s=0; int i,m=0; for(i=0;i<n;i++) s+=a[i]; s/=n; for(i=0;i<n;i++) if(a[i]>=s) m++; return m; } 答:求出并返回数组a的n个元素中大于等于平均值的元素个数。 形考任务4 一、选择题(共30分,每小题2分)题目1 假定有“struct BOOK{char title[40]; float price;}; struct BOOK book;”,则不正确的语句为( )。 选择一项:a. struct BOOK *x=malloc(book); 题目2 假定有“struct BOOK{char title[40]; float price;} book;”,则正确的语句为( )。 选择一项:b. struct BOOK *x=book; 题目3 在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是( )。 选择一项:c. 分号 题目4 假定一个结构类型的定义为 “struct A{int a,b; double c;};”,则该类型的长度为( )。 选择一项:d. 16 题目5 假定一个结构类型的定义为 “struct D{int a; D* next;};”,则该类型的长度为( )。 选择一项:b. 8 题目6 假定要访问一个结构指针变量x中的数据成员a,则表示方法为( )。 选择一项:b. x->a 题目7 与结构成员访问表达式x.name等价的表达式为( )。 选择一项:c. (x)->name 题目8 假定一个链表中结点的结构类型为“struct AA{int data, struct AA *next;};”,则next数据成员的类型为( )。 选择一项:b. struct AA* 题目9 假定一个链表的表头指针为f,结点中包含有data和next域,则向该链表的表头插入一个地址为p的结点时,应执行的操作为( )。 选择一项:b. p->next=f和f=p 题目10 标准输入设备键盘的文件流标识符是( )。 选择一项:a. stdin 题目11 表示文件结束符的符号常量为( )。 选择一项:c. EOF 题目12 C语言中打开一个数据文件的系统函数为( )。 选择一项:d. fopen() 题目13 从一个数据文件中读入以换行符结束的一行字符串的系统函数为( )。 选择一项:b. fgets() 题目14 向一个二进制文件中写入信息的函数fwrite()带有的参数个数为( )。 选择一项:d. 4 题目15 在C语言中,为只写操作打开一个文本文件的方式为( )。 选择一项:d. “w“ 二、判断题(共40分,每小题2分。叙述正确则回答“是”,否则回答“否”)题目16 在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。 选择一项:错 题目17 在结构类型的定义中,允许出现结构类型不完整的超前定义。 选择一项:对 题目18 定义结构类型的变量时,不能够同时进行初始化。 选择一项:错 题目19 使用一个结构类型时,必须一起使用关键字struct和类型标识符。 选择一项:对 题目20 假定一个结构类型的定义为 “struct A{int a,b; A* c;};”,则该类型的长度为12。 选择一项:对 题目21 假定一个结构类型的定义为 “struct B{int a[5]; char* b;};”,则该类型的长度为20。 选择一项:错 题目22 执行calloc(n,8)函数调用时,将动态分配得到8*n个字节的存储空间。 选择一项:对 题目23 执行malloc(sizeof(struct BB))函数调用时,得到的动态存储空间能够保存具有struct BB结构类型的一个对象。 选择一项:对 题目24 假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为x.a。 选择一项:错 题目25 假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为p->b。 选择一项:错 题目26 与结构成员访问表达式(*fp).score等价的表达式是fp->score。 选择一项:对 题目27 在C语言中,对二进制文件的所有不同打开方式共有6种。 选择一项:对 题目28 C语言中的标准输入和输出设备文件都属于字符文件。 选择一项:对 题目29 在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,不可省略。 选择一项:错 题目30 在数据文件打开方式字符串中,字符r、w和a具有确定的含义,分别代表读、写和追加方式。 选择一项:对 题目31 一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。 选择一项:对 题目32 C语言系统中提供一个用来描述文件属性的类型标识符为FILE。 选择一项:对 题目33 每次只能向文本文件中写入一个字符,不能一次写入一个字符串。 选择一项:错 题目34 对二进制文件进行读和写操作将使用相同的系统函数。 选择一项:错 题目35 在C语言中,系统函数fseek()用来移动数据文件中的文件位置指针。 选择一项:对 三、写出下列每个程序运行后的输出结果(共15分,每小题5分)题目36 #include<stdio.h> struct Worker { char name[15]; //姓名 int age; //年龄 float pay; //工资 }; void main() { struct Worker x={“wanghua“,52,4300}; struct Worker y, *p; y=x; p=x; printf(“%s %d %6.2f\n“,x.name,y.age,p->pay); } 答:wanghua 52 4300 题目37 #include<stdio.h> #include<string.h> struct Worker { char name[15]; //姓名 int age; //年龄 float pay; //工资 }; void main() { struct Worker x; char *t=“liouting“; int d=38; float f=3493; strcpy(x.name,t); x.age=d; x.pay=f; printf(“%s %d %6.0f\n“,x.name,x.age,x.pay); } 答:liouting 39 2493 题目38 #include<stdio.h> struct Worker {char name[15]; int age; float pay;}; int Less(struct Worker r1, struct Worker r2) { if(r1.age<r2.age) return 1; else return 0; } void main() { struct Worker a[4]={{“abc“,25,2420},{“def“,58,4638}, {“ghi“,49,4260},{“jkl“,36,3750}}; struct Worker x=a[0]; int i; for(i=1; i<4; i++) if(Less(x,a[i])) x=a[i]; printf(“%s %d %6.0f\n“,x.name,x.age,x.pay); } 答:def 58 4638 四、写出下列每个函数的功能(共15分,每小题5分)题目39 void QA(struct Worker a[], int n) { int i; for(i=1; i<n; i++) scanf(“%s %d %f“,a[i].name,a[i].age,a[i].pay); } 假定结构类型struct Worker 的定义如下: struct Worker { char name[15]; int age; float pay;}; 答:从键盘输入n个Worker类型的记录到一维数组a中。 题目40 int Count(struct IntNode *f) { //f为指向一个单链表的表头指针 int c=0; while(f) { c++; f=f->next; } return c; } 假定struct IntNode的类型定义为: struct IntNode {int data; IntNode* next;}; 答:统计出以表头指针为f的链表中结点的个数。 题目41 void xw1(char* fname) { FILE* fout=fopen(fname,“w“); char a[20]; printf(“每个字符串长度小于20,字符串end作为结束标志\n“); while(1) { scanf(“%s“,a); if(strcmp(a,“end“)==0) break; fputs(a,fout); fputc('\n',fout); } fclose(fout); } 答:把从键盘上输入的若干个字符串保存到由fname参数所指定的文本文件中。查看更多