论良好的程序设计风格
程序设计风格

9.
注意
10. 变量的名字应当使用“名词”或“形容词+名词”,
如
float value; float oldvalue; float newvalue;
语句
语句的风格主要包括: 缩进: 空格:int b = a + c; vs 空行:
}
int b=a + c;
l 两类元素(类、函数等)定义之间增加空行 l 逻辑上独立的代码片段前后用空行 l 连续的两个多行定义之间用空行隔开 l 多行定义和其他代码之间应该用空行隔开
命名 语句 注释 文档
说明
}
一般说来,程序设计的风格只有“相对更好”, 没有绝对的严格规范。这里给出的建议只是推 荐使用 这里主要讨论程序设计的风格,至于编写更漂 亮和高效的代码,请参考附录的书籍
}
if语句(与零值比较)
}
整型变量与零值比较
l 应当将整型变量用“==”或“!=”直接与0
l if
比较。
(value == 0) l if (value != 0)
l 不可模仿布尔变量的风格而写成
l if
(value) // 会让人误解 value 是布尔变量 l if (!value)
}
}
语句
}
不要吝啬括号 while((c=getchar())!=EOF)
括号的用途: (1)显式确定运算的优先级 (2)提高代码的可理解性,减少误解 (3)减少错误
语句
}
大括号(建议前一种)
if (condition) { ... } while (condition) { ... } while (condition) { ... }
程序设计总结(推荐12篇)

程序设计总结第1篇文件的定义:存储在外部存储介质(外存)上数据的集合。
C语言将每一个与主机相连的输入或输出设备都看作是一个文件文件的使用和管理:在程序运行时由程序在外存上建立或打开一个文件,通过写操作将数据存入该文件;由程序打开外存上的某个已有文件,并通过读操作将文件中的数据读入内存供程序使用文件的路径文件的存储形式文件缓冲区C程序中文件的操作过程(通过库函数实现,已定义在)结构体类型FILE文件指针文件的打开文件的使用方式文件的关闭格式化读函数格式化写函数字符方式读函数字符方式写函数字符串读函数字符串写函数数据块读函数(可用于读写数组、结构变量的值,多用于读写二进制文件)数据块写函数(可用于读写数组、结构变量的值,多用于读写二进制文件)程序设计总结第2篇数组:一组有序的、类型相同的数据的集合,这些数据被称为数组的元素定义:类型说明符数组名[正整数常量表达式],例如float mark[100];char str[200];int a[2+3];初始化:在数组定义时为数组元素赋初值(赋初值的个数不能超过数组总元素的个数)引用:数组名[下标],如a[3]。
程序设计总结第3篇定义:函数是按规定格式书写的能完成特定功能的一段程序。
函数之间地位平等,可互相调用也可自身调用函数的调用:指一个函数暂时中断运行,去执行另一个函数的过程函数的返回:return 表达式或 return (表达式)函数原型声明值传递函数调用的执行过程实参向形参单向值传递嵌套调用:在调用一个函数的过程中,又调用另一个函数递归调用:在调用一个函数的过程中又出现直接或间接的调用该函数本身程序设计总结第4篇变量的作用域:指变量在程序中的作用范围,与变量定义的位置有关。
可分为局部变量和全局变量局部变量(内部变量)全局变量(外部变量)变量的生存期:指变量值存在时间的长短,与变量的存储类型有关。
可分为静态存储和动态存储变量的存储类型内存供用户使用的存储空间变量的具体存储种类局部变量的具体存储种类:自动变量、静态局部变量、寄存器变量自动变量(auto)静态局部变量(static)寄存器变量(register)全局变量的具体存储种类内部函数(静态函数)外部函数编译预处理宏定义带参数的宏定义终止宏定义文件包含条件编译程序设计总结第5篇内存:即内部存储器,由存储单元组成,存储单元的最小单位是字节。
历年计算机软件水平考试程序员笔试真题

试题1从下列叙述中,选出5条正确的叙述,把编号依次写在答卷的A-E栏内.1.在有些操作系统中,外部设备通常被作为⽂件处理.2.递归算法的程序结构⽐迭代算法的程序结构更为清晰.3.在软件开发过程中,编程作业的代价.4.数组是同类型值的集合.5.树是⼀种线性表.6.良好的程序设计风格应以缩⼩程序占⽤的存储空间和提⾼程序的运⾏速度为原则.7.为了提⾼程序的运⾏速度,有时采⽤以存储空间换取运⾏速度的办法.8.对同⼀算法,⽤⾼级语⾔编写的程序⽐⽤低极语⾔编写的程序运⾏速度快.9.数据是计算机系统的⼀种资源.10.COBOL是⼀种⾮过程型语⾔.11.LISP是⼀种逻辑型程序设计语⾔.12.UNIX是⼀种交互的分时操作系统.试题2选出应填⼊下列叙述中的____内的正确答案,把编号写在答卷的对应栏内.线性表的表元存储⽅式有_A__和链接两种.试指出下列表中使⽤的是何种存储⽅式:表1是_B__存储⽅式;表2是_C___存储⽅式;表3是__D__存储⽅式;表4是_E___存储⽅式.表左的S指向起始表元表1 表2┏━━━━┳━━┳━━┳━━━━━┓┏━━━━┳━━┳━━┳━━━━━┓┃表元编号┃货号┃数量┃表元间联系┃┃表元编号┃货号┃数量┃表元间联系┃┣━━━━╋━━╋━━╋━━━━━┫┣━━━━╋━━╋━━╋━━━━━┫S→┃ 1 ┃ 618┃ 40┃ 2 ┃┃ 1 ┃ 618┃ 40┃ 5 ┃┃ 2 ┃ 205┃ 2┃ 3 ┃S→┃ 2 ┃ 205┃ 2┃ 1 ┃┃ 3 ┃ 103┃ 15┃ 4 ┃┃ 3 ┃ 103┃ 15┃ 4 ┃┃ 4 ┃ 501┃ 20┃ 5 ┃┃ 4 ┃ 501┃ 20┃ 0 ┃┃ 5 ┃ 781┃ 17┃ 6 ┃┃ 5 ┃ 781┃ 17┃ 6 ┃┃ 6 ┃ 910┃ 24┃ 0 ┃┃ 6 ┃ 910┃ 24┃ 3 ┃┗━━━━┻━━┻━━┻━━━━━┛┗━━━━┻━━┻━━┻━━━━━┛表3 表4┏━━━━┳━━┳━━┳━━━━━┓┏━━━━┳━━┳━━┳━━━━━┓┃表元编号┃货号┃数量┃表元间联系┃┃表元编号┃货号┃数量┃表元间联系┃┣━━━━╋━━╋━━╋━━━━━┫┣━━━━╋━━╋━━╋━━┯━━┫┃ 1 ┃ 618┃ 40┃ 5 ┃┃ 1 ┃ 618┃ 40┃ 5 │ 2 ┃S→┃ 2 ┃ 205┃ 2┃ 1 ┃S→┃ 2 ┃ 205┃ 2┃ 1 │ 0 ┃┃ 3 ┃ 103┃ 15┃ 4 ┃┃ 3 ┃ 103┃ 15┃ 4 │ 6 ┃┃ 4 ┃ 501┃ 20┃ 2 ┃┃ 4 ┃ 501┃ 20┃ 0 │ 3 ┃┃ 5 ┃ 781┃ 17┃ 6 ┃┃ 5 ┃ 781┃ 17┃ 6 │ 1 ┃┃ 6 ┃ 910┃ 24┃ 3 ┃┃ 6 ┃ 910┃ 24┃ 3 │ 5 ┃┗━━━━┻━━┻━━┻━━━━━┛┗━━━━┻━━┻━━┻━━┷━━┛供选择的答案A,B,C,D,E: 1.连续 2.单向链接 3.双向链接 4.不连续 5.循环链接6.树状7.状8.随机9.顺序 10.顺序循环试题3根据其服务对象,常⽤的单处理机的操作系统可分为以下3种类型:1)允许多个⽤户在其终端上同时交互的使⽤计算机的操作系统,称为_A__,通常*采⽤_B__策略为⽤户服务.2)允许⽤户把若⼲个作业提交计算机系统集中处理的操作系统,称为_C__.3)在_D__的控制下,计算机系统能及时处理由过程控制反馈的数据并作出响应.设计_D__时,⾸先要考虑系统的_E__.供选择的答案A,C,D: 1.络操作系统 2.分布式操作系统 3.分时操作系统 * 4.实时操作系统 5.单⽤户操作系统 6.批处理操作系统B,E: 1.可靠性和灵活性 2.实时性和可靠性 3.优先权分配4.时间⽚轮转5.短作业优先6.时间⽚加权分配试题4根据⽂件的内部结构,可以把⽂件分为记录式⽂件和流式⽂件两类.记录式*⽂件是⼀个有相同类型记录的有序集合.流式⽂件内部没有记录概念.最常见的*流式⽂件是字符流⽂件,可看成是_A__的有序集合.⼀般来说⽂件名及其属性可*以收纳在_B__中,以便查找._B__本⾝也是⼀种_C__.⽤户可以通过键盘命令和系*统调⽤两种⽅式,使⽤⽂件系统.当⽤户通过键盘命令修改⽂件时,应使⽤_D__命令;在程序内使⽤⽂件之前,需先使⽤_E__语句.供选择的答案A: 1.字符串 2.数组 3.记录 4.页⾯B: 1.⽬录 2.索引 3.字典 4.作业控制块C: 1.数组 2,记录 3.⽂件 4.数据集合D: 1.创建 2.修改 3.改名 4.编辑E: 1.打开 2.读 3.建⽴ 4.写试题5⼈们在使⽤⾼级程序设计语⾔编程时,⾸先可通过编译程序发现源程序中的*全部_A__及部分_B__.然后可采⽤_C__来发现程序中的运⾏错误和采⽤_D__来确定错误的位置._E__是泛指⽤户在验收中发现的结果于需求不符的错误.供选择的答案A,B,E: 1.符号错误 2.逻辑错误 3.语法错误 4.通路错误5.语义错误6.溢出错误7.设计错误C,D: 1.诊断 2.测试 3.校验 4.排错 5.普查 6.试探试题6 2 3右⾯流程图⽤于找出不定⽅程X+2=Y (1<=x<=100)所有整数解.供选择的答案A,C,D: 1.x:0 2:w:t 3.t:x 4.x:100 5.w:100 6.y:t 7.x:101 8.t:100B,E: 1.x→y 2.x→w 3.Y*Y→w 4.1→w 5.Y*Y*Y→w 6.x*y→w 7.w+1→w试题7⼆进制数1011.101相应的⼗进制数是_A__. ⼗进制数1989的余3代码是_B__.设以N=S1S2.b1b2b3...bk表⽰⼀浮点数的双符号位补码尾数(也称为变形补码,其中S1,S2为双符号位,各Sj,bi均取值0或1).当_C__时,此尾数为规格化数.当运算结果出现_D__时,需进⾏左规;当运算结果尾数出现_E__时,表明尾数溢出,则需进⾏右规.供选择的答案A: 1.9.3 2.11.5 3.11.625 4.11.10B: 1.0001 1001 1000 1100 2.0100 1100 1011 11003.0001 1001 1000 01104.0000 0111 1100 1000C,D,E: 1.S1,S2,b1三者相同 2.S1,S2相同⽽与b1不同 3.S1与S2不同且必须S2=b14.S1与S2不同,⽽不论b1为何值5.S1与b1相同但与S2不同6.S1与b1相同,⽽不论S2为何值试题8由逻辑变量A,B,C构成的多数表决函数的逻辑表达式F=_A__.三个逻辑变量A,B,C的⾮⼀致函数的逻辑表达式F=_B__.━━━━已知有逻辑关系式AB+AB=C,则AC+AC=_C__.有⼀套四机联动系统,当D机运⾏时,A,B,C三机才可运⾏.当A,B,C同时运⾏或其*中A,C两机或B,C两机同时运⾏时,可使⼀指⽰灯F亮.则指⽰灯F亮的逻辑表达式F=_D__.━━━━━化简F=A+ABC+ACD+(C+D)B=_E__.供选择的答案A,B,C: 1.0 2.1 3.A 4.B 5.C 6.A○B+B○C+C○A 7.A○B○C________________________───────────────8.AB·BC·CA 9.AB+BC+CA 10.A+B+C* __D,E: 1.A+CD 2.ABC+D 3.A+B+CD 4.(A+B)CD 5.A+B+CD 6.AB*D试题9⼀个双⾯5英⼨软盘⽚,每⾯40道,每道8个扇区,每个扇区512个字节,则盘⽚总容量为_A__.若该盘驱动器转速为600转/分,则平均等待时间为_B__,数据传送率为_C__.某固定磁头硬盘有16个磁头,每磁道存贮量为62500位,盘驱动器转速为2400转/分则数据传送率为_D__.某台标准9道磁带机,带速为200⼨/秒,存贮密度为1600BPI.磁带记录格式为*每块3200字节,块间间隙为0.5⼨,则其平均数据传送率为_E__.供选择的答案A: 1.160KB 2.320KB 3.640KB 4.1.2MBB: 1.25MS 2.50MS 3.100MS 4.200MSC,D,E: 1.10KB/S 2.40KB/S 3.256KB/S 4.320KB/S 5.5MB/S 6.40MB/S 7.256MB/S 8.320MB/S 试题10从下列叙述中,选出5条正确的叙述,把编号依次写在答卷的A-E栏内.1.在CPU中执⾏算术运算和逻辑运算都是按位进⾏且各位之间独⽴⽆关的.2.在没有设置乘,除法的计算机系统中就⽆法实现乘,除法运算.3.在做浮点运算时,是根据阶码是否溢出来判断最后结果是否溢出的.4.⼤多数个⼈计算机中可配制的内存容量受地址总线位数限制.5.⼤多数个⼈计算机中可配制的内存容量受指令中地址码部分位数的限制.6.可编程逻辑阵列也是主存的⼀部分.7.由组合逻辑电路互连构成的⼀定还是组合逻辑电路.8.可编程的只读存贮器芯⽚不⼀定是可改写的.9.双极型半导体存贮器芯⽚通常⽐⾦属氧化物半导体存贮器芯⽚存取速度快,但*价格也贵.10.磁带上的信息必须定时刷新,否则⽆法长期保存.11.汉字内码为计算机系统内部处理和存贮的形式,它的码长与ASCII码仅有⼀位之差.12.汉字输⼊码可分为⽆重码和有重码两类.国标码,区位码,电报明码等为⽆重*码类码,⽽拼⾳码,⾸尾码等为有重码类码.试题11选出与下列⽂件操作语句关系最密切的应填⼊相应___中的单词,The _A_ statement causes the positioning of a file to be as it whenwas the file was first opened.The _B_ statement disconnects a unit number from a specific file.The _C_ statement is used to transmit data from a file to a program.The _D_ statement is treated only as documentation and is ignored duringthe execution of the program.The _E_ statement assigns a unit number ti a specific file.The answers:A,B,C,D,E: MENT 2.EXECUTE 3.CLOSE 4.READ 5.REWIND 6.OPEN 7.WRITE 8.FORWARD试题12选出应填⼊下⾯⼀段英语中____内的正确答案,把编号写在答卷的对应栏内.The terms FIFO and LIFO refer to two techniques for _A_ with collectionof items to which additions and _B_ are to be made. The acronym FIFO _C_for first-in-first-out and LIFO represents last-in-first-out. Derived frombusiness accounting and investing management _D_,these techniques have found widespread application in computer science. For example, the LIFO technique has been uesd in the parsing tehniques employed by compilers and in the _E_of data.The answers:A,B,C,D,E: 1.producing 2.dealing working 4.searching 5.deletions6.locations7.observations8.notations9.stands 10.represents11.finds 12.replaces试题13* 从下列英语叙述中,选出5条正确的叙述,把编号依次写在答卷的对应栏内.1.The language translator converts the symbolic program into source program.2.The coded program written by a programmer is called an object program.3.COBOL is self-documenting unlike many technical language.4.FORTRAN has high capabilities for performing input/output operations andin handling nonnumeric data.5.Loading is a process through which the information on the diskettes or tapesis read by the input unit and stored in the proper memory location.6.The assemble executes source codes directly by determining the meaning of each statement as it is encounted.7.Magnetic tape uses cylinders for finding data.8.Hexadecimal is used as a shorthand for the internal codes.9.Another name of diskette is floppy disk.10.An IF-THEN-ELSE selection technique can never br part of a loop.11.The most popular language for scientific computing is FORTRAN.12.It is much easier to access data in a file than in a data base.试题17积分和微分是两种分析运算,它们都是⽤_A_来定义的.数值积分和数值微*分可归结为函数值的_B_,从⽽使计算过程可以在计算机上完成.处理数值积分和数值微分的基本⽅法是_C_.⽜顿求积公式中节点间距离是_D_的,⽽⾼斯*公式中节点间距离是_E_的.供选择的答案A,B: 1.四则运算 2.导数运算 3.函数运算 4.极限运算 5.极数运算 6.逻辑运算C: 1.逼近法 2.反幂法 3.消去法 4.变换法D,E: 1.递增 2.递减 3.等距 4.有极数规律 5.⾮上述规律试题18从下列叙述中,选出5条正确的叙述,把编号依次写在答卷的A-E栏内.下⾯叙述中E(X)和D(X)分别是随机变量X的期望值和均平⽅值.1.事件A和事件B不相容的充要条件是P(A*B)=0.2.若事件A 和 B相互独⽴,则P(A*B)=0和P(A+B)=P(A)+P(B).3.掷两个匀称的(6点)骰⼦,则P(点数之和=2)=1/(6+6).24.若X的概率密度函数服从正态分布N(µ,σ),则 E(x)=µ,D(x)=σ.5.记φ(x)为N(0,1)的分布函数,则φ(x)=φ(-x).6.设x服从普阿松分布,则E(x)=D(x).2 27.对任意随机变量X,都有E(X)=(E(X))+D(X).8.D(x)=E(x-E(x)).9.若随机变量x,y独⽴,则D(x-y)=D(x)-D(y).10.设x1,x2,...,xn 为母本x的随机样本,g(x1,x2,...,xn)为⼀连续函数,则g(x1,x2,...xn)*为⼀统计量.1 n 2 211.样本均⽅差Dn=───Σ(Xi-E(X))是总体均⽅差σ的⽆偏估计.n-1 i=112.参数的似然估计值必.试题19考虑由甲⼄两⽅进⾏的零和对策问题,设它们采⽤的策略都是使⾃⼰的*的损失最⼩,这常被称之为_A_准则.现给出甲的得分如表1所⽰.由该表可见,我*们⽆法找到__B__,因此我们转向使⽤__C__策略来求解这⼀问题.通过化简可得*甲的得分表如表2所⽰.由此可得甲的决策是__D__,此时甲的期望分是__E__.┏━━━┯━━━━━━━━━━━━━━┓┏━━━┯━━━━━━━┓┃│⼄选择的对策┃┃│⼄选择的对策┃┃├──┬──┬──┬──┬──┨┃├───┬───┨┃│ 1' │ 2' │ 3' │ 4' │ 5' ┃┃│ 1' │ 2' ┃┠─┬─┼───┼───┨┃甲│1 │ 3 │ 4 │ 0 │ 3 │ 0 ┃┃甲│││┃┃├─┼──┼──┼──┼──┼──┨┃选│3 │ 7 │ 3 ┃┃选│2 │ 5 │ 0 │ 2 │ 5 │ 9 ┃┃择│││┃┃├─┼──┼──┼──┼──┼──┨┃的├─┼───┼───┨┃择│3 │ 7 │ 3 │ 9 │ 5 │ 9 ┃┃对│││┃┃├─┼──┼──┼──┼──┼──┨┃策│4 │ 4 │ 6 ┃┃对│4 │ 4 │ 6 │ 8 │ 6 │ 6 ┃┃│││┃┃├─┼──┼──┼──┼──┼──┨┗━┷━┷━━━┷━━━┛┃策│5 │ 6 │ 3 │ 8 │ 3 │ 3 ┃┗━┷━┷━━┷━━┷━━┷━━┷━━┛供选择的答案A,B,C:①②最⼩③最⼩最⼩④最⼩⑤鞍点⑥极点⑦拐点⑧零点⑨单纯⑩混和⑾随机⑿复合D:设α=(α1,α2,α3,α4,α5)为甲选择对策1,2,3,4,5的概率;设β=(β1,β2,β3,β4,β5)为⼄选择对策1',2',3',4',5'的概率.①α=(0,0,0,1,0) β=(1,0,0,0,0)②α=(0,0,3/5,2/5,0) β=(3/5,2/5,0,0,0)③α=(0,0,1/2,1/2,0) β=(1/4,3/4,0,0,0)④α=(0,0,1/3,2/3,0) β=(1/2,1/2,0,0,0)E:① 5 ②5,5 ③5,8 ④9试题20如何抑制⼲扰是计算机数据测量中的重要问题,通常采⽤具有差分输⼊的运*算放⼤器作为输⼊级是为了克服___A___型⼲扰.为了提⾼测量中的信号/噪声⽐,常采⽤⾼的采样率和滑动平均法对近邻的N*个数据平均.若测量中包含的是与信号不相⼲的随机噪声,则可期望⽤此⽅法使*信号/噪声⽐为原来的___B___倍.如果除掉值和最⼩值然后再求平均,则可*提⾼抑制___C___型噪声的能⼒.我们还可以使⽤数字滤波去除噪声.设Yn和Xn分别为输出和输⼊序列,a>0和b>0是系数,则Y(n)=aX(n)+bY(n-1)是___D___型滤波,Y(n)=aX(n)-bY(n-1)是___E___供选择的答案A,C:①电磁②交流③直流④脉冲⑤共模⑥串模⑦地线⑧相关B:① N ②N ③N ④N/2D,E:①低通②⾼通③带通④带阻下午试题试题⼀[说明]流程图1.1实现了⼀个将⼀组⽆序数列a1,a2,...,an排成递增序列的算法.该算法在s-1到r(初值为1到n)的区间内,先冒泡后进⾏排序,直到该区间为空.图中变量K⽤来指出⼀次冒泡或下沉后a1--ak或ak--an已排序.试题3阅读下列程序说明和PASCAL程序,把应填⼊其中_______处的字句,写在答卷的对应栏内.[程序说明]本题给出的⼦程序⽤来寻找第⼀个均出现在三个整数链表中的相同整数.假定在调⽤该⼦程序前,这三个整数链表已按从⼩到⼤的次序排序.有关的类型定义如下: type pt=^elem;elem=recordint:integer;link:ptend;[程序]procedure lookint (f1,f2,f3:pt; var found:boolean; var val:integer);var exit:boolean;begin found:=false;while ____________ and not found dobeginif __________________then f1:=f1^.linkelse if _______________then f2:=f2^.linkelse found:=true;if foundthen begin found:=false; exit:=true;while (f3<>nil) and not found and exit doif f3^.int=f1^.intthen found:=trueelse if ___________________then f3:=f3^.linkelse begin _______________;exit:=falseendendend;if found then val:=f1^.intend;试题7[程序说明]本⼦程序⽤来建⽴⼀个已知⽂件的索引⽂件.建⽴索引的关键字段名为key.设有类型:seqelement=record ..., key:simpletype, ... end;tmpelement=record {⼯作⽂件的成分类型}key : simpletype; {存贮关键字值}no : integer {对应的已知⽂件成分的序号}end;tseqfile = file of seqelement; {已知⽂件的类型}tindxfile = file of integer; {索引⽂件类型}其中 simpletype 是某简单顺序类型名.为建⽴索引⽂件,⼦程序引⼊⼀个数组a与两个⼯作⽂件g,h.建⽴索引⽂件的⽅法是:⾸先重复执⾏以下步骤,直⾄已知⽂件读完:1. 从已知⽂件读出多⾄100个记录,将记录中关键项的值及该记录的序号送到数组a;2. 对a按关键字值从⼩到⼤排序;3. 将a与⽂件g(或h)合并于⽂件h(或g).合并时,使⽂件h(或g)是按关键字值排序的.然后由⽂件h(或g)⽣成索引⽂件.[程序]procedure indexed (var seqfile : tseqfile; var index file : tindxfile);const arsize = 100;type tmparray = array [1..arsize] of tmpelement;tmpfile = file of tmpelement;var a : tmparray;g,h : tmpfile;n,recno : integer;s : boolean;procedure sort(var a : tmparray; n : integer); {将数组a的前n个元素按key递增排序,本过程的过程体省略}procedure combi(var f1,f2 : tmpfile); {将⽂件f1与数组a按关键字值从⼩到⼤合并于⽂件f2}var i,j : integer;begin i:=1; reset(f1); rewrite(f2);while ________________ dobeginif f1^.key <= a[i].key thenbegin f2^:=f1^; get(f1) endelsebegin ___________ ; __________ end;put (f2);end;while not eof(f1) dobegin f2^:=f1^; get(f1); put(f2) end;for j:= i to n dobegin f2^:=a[j]; put(f2) endend;procedure gindex (var f:tmpfile);begin rewrite (indexfile); reset(f);while not eof(f) dobegin indexfile^:=f^.no;put (indexfile); get(f)endend;begin reset(seqfile); recno:=0;s:=true;repeat n:=0 ;while ____________ dobegin n:=n+1; a[n].key:=seqfile^.key;recno:=recno+1;a[n].no:=recno;get(seqfile)end;sort(a,n);if s then combi(g,h)else combi(h,g);_______________________until eof (seqfile);if ________________ then gindex(g)else gindex(h)end;试题11[程序说明]本程序能从1⾄n(n<1000)的⾃然数中取r个数的所有组合,并按指定的格式输出其结果.例如,n=5,r=3时,共有10种组合(见下⾯左边列表),⽽程序将按下⾯右边列表形式输出(每⼀⾏前有⼀空格).10种组合程序输出形式combinations:1,2,3 1 2 31,2,4 41,2,5 51,3,4 3 41,3,5 51,4,5 4 52,3,4 2 3 42,3,5 52,4,5 4 53,4,5 3 4 5[程序]program comnr(input,output);var n,r:integer;blank:boolean;proecdure combination(s,j:integer);var i:integer;beginfor i:= _____________ to n-j+1 dobeginif ____________ then write (' ':______________*3+1); write (i:3); blank:=false;if ___________________ thencombination (______________)else beginwriteln;______________________endendend;begin writeln('ENTER N,R.');readln(n,r); blank:=true;writeln('combinations:');combination(1,r)end.。
国家二级(C++)笔试模拟试卷66(题后含答案及解析)

国家二级(C++)笔试模拟试卷66(题后含答案及解析) 题型有:1. 选择题 2. 填空题选择题(每小题2分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。
1.以下内容不属于算法程序所占的存储空间的是( )。
A.算法程序所占的空间B.输入的初始数据所占的存储空间C.算法程序执行过程中所需要的额外空间D.算法执行过程中所需要的存储空间正确答案:D解析:一个算法程序所占的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法程序执行过程中所需要的额外空间,而不是算法执行过程中所需要的存储空间。
因此,答案为D。
2.数据的存储结构是指( )。
A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据正确答案:B解析:数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般不可能相同。
数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构。
3.在一个长度为n的线性表中插入一个元素,最坏情况下需要移动的数据元素数目( )。
A.1B.nC.n+1D.n/2正确答案:B解析:在一般情况下,要在第i个元素之前插入一个新元素时,首先是从最后一个元素开始,直到第i个元素之间共n-i+1个元素依次向后移动一个位置,移动结束后,第i个位置就被空出,然后将新元素插入到第i项。
最坏情况指的是在线性表的第1个元素之前插入一个新元素,则需要移动表中所有的元素,答案为B。
4.对于建立良好的程序设计风格,下面有关数据说明描述错误的是( )。
A.数据说明的次序规范化B.说明语句中变量安排有序化C.使用注释来说明复杂数据的结构D.数据说明次序可以任意排列正确答案:D解析:数据说明的风格对建立良好的程序设计风格很重要,良好的数据说明的风格要求数据说明的次序规范化、说明语句中变量安排有序化、使用注释来说明复杂数据的结构。
2011台湾省NCRE二级VB理论考试试题及答案

34、索引属于(B)
A. 模式 B. 内模式 C. 外模式 D. 概念模式
35、在下列选项中,哪个不是一个算法一般应该具有的基本特征(C)
19、数据库系统的核心是(B)
A. 数据模型 B. 数据库管理系统 C. 软件工具 D. 数据库
20、数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是(D)
A. 自顶向下 B. 由底向上 C. 由内向外 D. 由整体到局部
21、下列关于队列的叙述中正确的是(C)
A. 确定性 B. 可行性 C. 无穷性 D. 拥有足够的情报
36、数据库设计包括两个方面的设计内容,它们是(A)
A. 概念设计和逻辑设计 B. 模式设计和内模式设计
C. 内模式设计和物理设计 D. 结构特性设计和行为特性设计
37、下述关于数据库系统的叙述中正确的是(A)
A. 数据库系统减少了数据冗余 B. 数据库系统避免了一切冗余
31、结构化程序设计主要强调的是(B)
A.程序的规模 B.程序的易读性
C.程序的执行效率 D.程序的可移植性
32、数据库系统的核心是(B)
A. 数据模型 B. 数据库管理系统 C. 软件工具 D. 数据库
33、面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是(C)
C. 充分考虑程序的执行效率 D. 程序的注释可有可无
50、设有下列二叉树:图见书P46
对此二叉树中序遍历的结果为(B)
《C语言程序设计》课程标准

《C语言程序设计》课程标准一、课程定位:《C语言程序设计》课程是高等职业教育理工科专业的一门通识教育平台课程,本课程的主要任务使学生在结构化程序设计方法、程序设计语言与程序设计工具软件的使用等方面受到严格、系统的训练,通过本课程的学习,要求学生了解和掌握C语言程序设计的基础知识,建立起程序设计的概念,通过学习用C程序设计语言编写程序,初步掌握程序设计方法,养成良好的程序设计风格。
二、主要任务1、了解C语言的概述;2. 学会合理选用数据类型、常用运算符、控制输入输出函数及表达式等;3. 熟练掌握VC运行环境及C语言的结构化程序设计的三大结构——顺序结构、分支结构及循环结构;4. 掌握如何正确的使用一维数组和二维数组以及如何用数组实现简单的应用程序,比如求最大值、排序及插入数据等;5. 掌握变量的地址和指针变量的区别,熟练掌握通过指针访问数组和通过指针访问字符串;6. 学会使用C语言的函数定义、调用及分类的相关知识;7.学会使用预处理命令进行程序设计;8. 掌握结构体变量的使用方法及结构体数组的使用方法;9. 掌握共用体类型及枚举类型数据的特点;10.掌握位运算符的使用方法;11. 了解文件的处理过程及掌握文件的基本操作本领。
三、课程目标本课程的教学目标为:通过本课程的学习,使学生掌握C语言程序设计的基本知识和基本技能,树立结构化程序设计的基本思想,使学生完成独自编写小程序的任务,达到全国二级考试要求,能应用C语言解决一般编程问题的目的。
1、知识目标(1)了解C语言的概述;(2)学会合理选用数据类型、常用运算符、控制输入输出函数及表达式等;(3)熟练掌握VC运行环境及C语言的结构化程序设计的三大结构——顺序结构、分支结构及循环结构;(4)掌握如何正确的使用一维数组和二维数组以及如何用数组实现简单的应用程序,比如求最大值、排序及插入数据等;(5)掌握变量的地址和指针变量的区别,熟练掌握通过指针访问数组和通过指针访问字符串;(6)学会使用C语言的函数定义、调用及分类的相关知识;(7)学会使用预处理命令进行程序设计;(8)掌握结构体变量的使用方法及结构体数组的使用方法;(9)掌握共用体类型及枚举类型数据的特点;(10)掌握位运算符的使用方法;(11)了解文件的处理过程及掌握文件的基本操作本领。
面向对象程序设计(C++)智慧树知到答案章节测试2023年泰山学院

第一章测试1.下列说法错误的是()。
A:每一个C++程序都必须有一个main函数B:一般编译系统给出的错误信息有两种,一种是错误,一种是警告C:“#include”,这是C++中的语句D:若一行中出现“//”,则从它开始到本行末尾的全部内容都作为注释答案:C2.若要建立良好的程序设计风格,下面描述正确的是()。
A:程序应简单、清晰、可读性好B:充分考虑程序的执行效率C:符号名的命名只要符合语法就可以D:必要的注释答案:ABD3.编写C++程序一般需经过的几个步骤依次是编辑、编译、连接、调试。
()A:错B:对答案:B4.C++对C语言进行了改进,不仅对C的功能进行了扩充,还增加了面向对象的机制。
()A:对B:错答案:A5.C++只在编译阶段给出错误信息,而在连接阶段不会。
()A:对B:错答案:B第二章测试1.作用域运算符的功能是()。
A:给出的范围B:标识某个成员属于哪一个类C:标识作用域的级别D:指出的大小答案:B2.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为()。
A:publicB:staticC:protected答案:A3.下面关于类的描述中错误的是()。
A:类是具有共同行为的若干对象的统一描述体B:类是抽象数据类型的实现C:类数据成员必须声明为私有D:类是创建对象的样板答案:C4.在C++的面向对象程序设计中,类与类之间的独立性是通过封装实现的。
()A:对B:错答案:A5.如果class类中的所有成员在定义时都没有使用关键字pubilc,private和protected,则所有成员缺省定义为public。
()A:对B:错答案:B第三章测试1.()的功能是对对象进行初始化。
A:构造函数B:析构函数C:数据成员D:静态成员函数答案:A2.下面对构造函数和析构函数的写法形式上正确的是()。
A:max::max (参数), max::~ max (参数)B:max::max (参数), max::~ max ()C:void max:: max (参数), void max::~ max (参数)D:void max::max(), void max::~ max ()答案:B3.假设getData()函数是一个类的常成员函数,且没有返回值,则应表示为()。
计算机二级选择题——程序设计与软件工程

1.下面属于良好程序设计风格的是A)源程序文档化B)程序效率第一C)随意使用无条件转移语句D)程序输入输出的随意性A【解析】要形成良好的程序设计风格,主要应注意和考虑:源程序文档化;数据说明的次序规范化,说明语句中变量安排有序化,使用注释来说明复杂数据的结构;程序编写要做到清晰第一、效率第二,先保证程序正确再要求提高速度,避免不必要的转移;对所有的输入数据都要进行检验,确保输入数据的合法性。
2.下面不属于结构化程序设计原则的是A)逐步求精B)自顶向下C)模块化D)可继承性D【解析】结构化程序设计方法的原则包括:自顶向下、逐步求精、模块化、限制使用goto语句。
可继承性是面向对象方法的特点。
3.结构化程序设计风格强调的是A)程序的执行效率B)程序的易读性C)不考虑goto语句的限制使用D)程序的可移植性B【解析】按结构化程序设计方法设计出的程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以确保程序的正确性,程序容易阅读并被人理解,便于用户使用和维护。
可见结构化程序设计风格强调的是易读性。
4.结构化程序的三种基本控制结构是A)顺序、选择和调用B)过程、子程序和分程序C)顺序、选择和重复(循环)D)调用、返回和转移C【解析】1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。
5.不属于对象构成成份的是A)规则B)属性C)方法(或操作)D)标识A【解析】对象由一组表示其静态特征的属性和它执行的一组操作组成,对象名唯一标识一个对象。
6.下面对“对象”概念描述正确的是A)属性就是对象B)操作是对象的动态属性C)任何对象都必须有继承性D)对象是对象名和方法的封装体B【解析】对象是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体。
对象可以做的操作表示它的动态行为,通常也称为方法或服务,属性即对象所包含的信息。