2004年5月程序员上午试题
●面向对象程序设计以__(1)__为基本的逻辑构件,用__(2)__来描述具有共同特征的一组对象;以__(3)__为共享机制,共享类中的方法和数据。(1)A.模块 B.对象 C.结构 D.类
(2)A.类型 B.抽象 C.类 D.数组
(3)A.引用 B.数据成员 C.成员函数 D.继承
●链表不具备的特点是__(4)__。
(4)A.可随机访问任何一个元素 B.插入、删除操作不需要移动元素
C.无需事先估计存储空间大小 D.所需存储空间与线性表长度成正比
●对矩阵压缩存储的主要目的是__(5)__。
(5)A.方便运算 B.节省存储空间 C.降低计算复杂度 D.提高运算速度
●判断“链式队列为空”的条件是__(6)__(front为头指针,rear为尾指针)。
(6)A.front==NULL B.rear==NULL
C.front==rear D.front!=rear
●以下关于字符串的判定语句中正确的是__(7)__。
(7)A.字符串是一种特殊的线性表 B.串的长度必须大于零
C.字符串不属于线性表的一种 D.空格字符组成的串就是空串
●在具有100个结点的树中,其边的数目为__(8)__。
(8)A.101 B.100 C.99 D.98
●程序设计语言的定义一般应包 __(9)__几个方面。
(9)A.语法、语义和语句 B.语法、语义和语用
C.语义、语句和语用 D.语法、语用和语句
●在C语言中,若函数调用时实参是数组名,则传递给对应形参的是__(10)__。
(10)A.数组空间的首地址 B.数组的第一个元素值
C.数组中元素的个数 D.数组中所有的元素
●在下面的程序中,若实参a与形参x以引用调用(call by reference)的方式传递信息,则输出结果为__(11)__;若实参a与形参x以值调用(callbyvalue)的方式传递信息,那么输出结果为__(12)__。
Mainprogram
a:=1;
addone(a);
write(a);
Procedure addom(x)
a:=x+1;
x:=x+2;
return;
(11)A.1 B.2 C.3 D.4
(12)A.1 B.2 C.3 D.4
●在程序的执行过程中,用__(13)__结构可实现嵌套调用函数的正确返回。
(13)A.队列 B.栈 C.树 D.图
●已知有一维数组T[O...m*n-1],其中m>n。从数组T的第一个元素(T[0])开始,每隔n个元素取出一个元素依次存入数组B[1...m]中,即B[1]=T[0],B[2]=T[n],依此类推,那么放入B[k](1≤k≤n)的元素是__(14)__。
(14)A.T[(K-1)*n] B.T[K*n] C.T[(K-1)*m] D.T[K*m]
●已知递归函数f(n)的功能是计算1+2+…+n,且n≥1,应采用的代码段是__(15)__。
(15)A.if n>l then return 1 else return n+f(n-1)
B.if n>l then return 1 else return n+f(n+1)
C.if n>l then return 0 else return n+f(n-1)
D.if n>l then return 0 else return n+f(n+1)
●在下面的流程图中,如果标记为b的运算执行了m次(m>1),那么标记为a的运算的执行次数为__(16)__。
[img]http://oldchild.nbc.net.cn/jsjsj/spks/cxy/cxy04s1.gif[/img]
(16)A.1 B.m-1 C.m D.m+l
●数据库系统从广义的角度看,应该由__(17)__组成。数据字典中存放__(18)__,数据库管理系统对应用程序的操作都要通过数据字典来进行。
(17)A.数据库、硬件、软件和人员
B.数据库、硬件、数据库管理系统和软件
C.数据库、软件和人员
D.数据库、数据库管理系统和人员
(18)A.数据库管理系统软件 B.数据定义语言DDL
C.数据操纵语言DML D.数据库体系结构的描述
●设有一个关系Student(学号,姓名,系名,课程号,成绩),查询至少选修了四门课程的学生学号、姓名及平均成绩的SELECT语句应该是:
SELECT 学号,姓名,AVG(成绩) AS 平均成绩
FROM Student
GROUP BY__(19)__
HAVING__(20)__
(19)A.学号 B.姓名 C.系名 D.课程号
(20)A.COUNT(DISTINCT 学号)>3 B.COUNT(课程号)>3
C.COUNT(DISTINCT 学号)>=3 D.COUNT(课程号)>=3
●通过关系数据库的__(20)__运算,可以从表1和表2获得表3.
表1
编号
产品名
010
PC机
011
显示器
020
打印机
025
键盘
030
调制解调器
表2
编号
订货者
010
A公司
011
B公司
020
C公司
025
D公司
030
E公司
表3
编号
产品名
订货者
010
PC机
A公司
011
显示器
B公司
020
打印机
C公司
025
键盘
D公司
030
调制解调器
E公司
(21)A.连接 B.投影 C.选择 D.包括
●若计算机系统中的进程在“就绪”、“运行”和“等待”三种状态之间转换,进程不可能出现__(20)__的状态转换。
(22)A.“就绪”→“运行” B.“运行”→“就绪”
C.“运行”→“等待” D.“就绪”→“等待”
●若内存采用固定分区管理方案,在已分配区可能会产生未用空间,通常称之为_(23)__。
(23)A.废块 B.空闲页面 C.碎片 D.空闲簇
●在虚拟分页存储管理系统中,若进程访问的页面不在主存,且主存中没有可用的空闲块时,系统正确的处理顺序为_(24)__。
(24)A.决定淘汰页→页面调出→缺页中断→页面调入
B.决定淘汰页→页面调入→缺页中断→页面调出
C.缺页中断→决定淘汰页→页面调出→页面调入
D.缺页中断→决定淘汰页→页面调入→页面调出
●系统软件是__(25)__的软件.
(25)A.向应用软件提供系统调用等服务
B.与具体硬件逻辑功能无关
C.在应用软件基础上开发
D.并不具体提供人机界面
●在操作系统中,SPOOLING技术是一种并行机制,它可以使__(26)__。
(26)A.不同进程同时运行 B.应用程序和系统软件同时运行
C.不同的系统软件同时运行 D.程序的执行与打印同时进行
●在常用的字处理软件中,选中文本块后,按下Ctrl键再拖曳鼠标,可以__(27)__;直接用鼠标拖曳已选定的文本,可以__(28)__。
(27)A.复制选中的文本 B.移动选中的文本
C.选中一个段落 D.选中一个矩形区域中的文本
(28)A.复制选中的文本 B.移动选中的文本·
C.选中一个段落 D.选中一个矩形区域中的文本
●通过设置文件的__(29)__,可以使其成为“只读”文件。
(29)A.类型 B.格式 C.属性 D.状态
●办公自动化软件一般应用于__(30)__。
(30)A.科学计算 B.实时控制 C.信息管理 D.辅助设计
●Windows“回收站”占用的是__(31)__中的空间.
(31)A.主存 B.软盘 C.光盘 D.硬盘
●软件的复杂性与许多因素有关。__(32)__不属于软件的复杂性参数。
(32)A.源程序的代码行数 B.程序的结构
C.算法的难易程度 D.程序中注释的多少
●在结构化分析与设计方法中,为了在需求改变时对软件的影响较小,应该使__(33)__。
(33)A.程序结构与问题结构相对应 B.程序结构与问题结构相独立
C.程序结构与用户界面相对应 D.程序结构与用户界面相独立
●系统的硬件环境、软件环境和数据环境发生变化时需要对系统进行维护,这种维护属于__(34)__。
(34)A.校正性维护 B.适应性维护
C.完善性维护 D.预防性维护
●以下选项中,主要联系高层管理人员的信息系统是__(35)__。
(35)A.MIS(管理信息系统) B.DSS(决策支持系统)
C.EDPS(电子数据处理系统) D.TPS(事务处理系统)
●__(36)__是关于质量管理体系的一系列标准,有助于企业交付符合用户质量要求的产品。
(36)A.IS09(EE) B.CMM C.IS01400 D.SW-CMM
●某软件公司根据市场需求,组织开发出一套应用软件,并对其公司的职工进行了保密的约束,以确保市场竞争.但是该公司某开发人员将该应用软件的程序设计技巧和算法(由该开发人员设计)作为论文向社会发表。该软件开发人员__(37)__,而该软件公司丧失了这套应用软件的__(38)__。
(37)A.丧失了计算机软件著作权 B.未丧失计算机软件著作权
C.丧失了发表权 D.丧失了专利权
(38)A.商业秘密 B.计算机软件著作权
C.发表权 D.专利权
●在网络通信中,当消息发出后,接收方能确认消息确实是由声称的发送方发出的;同样,当消息接收到后,发送方能确认消息确实已由声称的接收方收到。这样的安全服务称为__(39)__服务。
(39)A.数据保密性 B.数据完整性 C.不可否认性 D.访问控制
●OSI(OpenSystemInterconnection)安全体系方案X.800将安全服务定义为通信开放系统协议层提供的服务,用来保证系统或数据传输有足够的安全性。X.800定义了五类可选的安全服务。下列相关的选项中不属于这五类安全服务的是__(40)__。
(40)A.数据保密性 B.访问控制 C.认证 D.数据压缩
●下列关于加密的叙述中,正确的是__(41)__。
(41)A.DES属于公钥密码体制
B.RSA属于公钥密码体制,其安全性基于大数因子分解困难
C.公钥密码体制的密钥管理复杂
D.公钥密码体制中,加密和解密采用不同的密钥,解密密钥是向社会公开的
●多媒体技术中,表达信息的媒体数据具有一些特定的性质。下述关于媒体数据性质的描述中,不正确的是__(42)__。
(42)A.有格式的数据才能表达信息
B.不同的媒体所表达的信息量不同
C.媒体之间的关系也代表着信息
D.任何媒体都可以直接进行相互转换
●PC机中数字化后的声音有两类表示方式:一类是波形声音,一类是合成声音。__(43)__是一种合成声音文件的后缀。
(43)A,WAV B.MID C.RA D.MP3
●在RGB彩色空间中,R(红)、O(绿)、B(蓝)为三基色,青色、晶红和黄色分别为红、绿、蓝三色的补色.根据相加混色原理,绿色+品红=__(44)__。
(44)A.蓝色 B.黄色 C.紫色 D.白色
●若码值FFH是一个整数的原码表示,则该整数的真值为__(45)__:若码值FFH是一个整数的补码表示,则该整数的真值为__(46)__。
(45)A.127 B.0 C.-127 D.-1
(46)A.127 B.0 C.-127 D.-1
●内存地址从4000H到43FFH,共有__(47)__个内存单元。若该内存每个存贮单元可存储16位二进制数,并用4片存储器芯片构成,则芯片的容量是__(48)__。
(47)A.256 B.512 C.1024 D.2048
(48)A.512×16bit B.256×8bit C.256×16bit D.1024×8bit
●某程序的目标代码为16384个字节,将其写到以字节编址的内存中,以80000H为首地址开始依次存放,则存放该目标程序的末地址为__(49)__。
(49)A.81000H B.83FFFH C.84FFFH D.86000H
●构成运算器需要多个部件,__(50)__不是构成运算器的部件。
(50)A.加法器 D.累加器 C.地址寄存器 D.ALU(算术逻辑部件)
●程序计数器(或指令地址寄存器)属于CPU的__(51)__部件。
(51)A.运算器 B.控制器 C.存储器 D.I/O接口
●控制机器指令执行的微程序存放在__(52)__中。
(52)A.控制存储器 B.指令寄存器 C.内部存储器 D.SRAM
●构成4M×8bit的存储器,若采用256K×8bit的芯片,需__(53)__片:若采用512K×lbit的芯片,需__(54)__片。
(53)A.8 B.16 C.32 D.64
(54)A.8 B.16 C.32 D.64
●在进行原码乘法时,乘积的符号位是由被乘数的符号位和乘数的符号位通过__(55)__运算来获得的。
(55)A.或 B.与 C.异或 D.分别取反后再进行或
●在CPU执行一段程序的过程中,Cache的存取次数为3800次,由主存完成的存取次数为200次。若Cache的存取厨期为5ns,主存的存取周期为25ns,则Cache的命中率为__(56)__CPU的平均访问时间为__(57)__ ns。
(56)A.0.93 B.0.95 C.0.97 D.0.99
(57)A.5 B.6 C.7 D.8
●磁盘存取时间包括寻道的时间、定位扇区的时向以及读写数据的时间,若磁盘的转速提高一倍,则__(58)__。
(58)A.平均存取时间减少 B.平均寻道时间减少
C.存储道密度增加一倍 D.平均寻道时间增加
●以串行同步方式传送数据块时,经常采用的差错校验方法是__(59)__。
(59)A.偶校验 B.奇校验 C.海明码校验 D.CRC校验
●在主存和CPU之间增加Cache的自的是__(60)__。
(60)A.增加内存容量 B.为程序员编程提供方便
C.解决CPU与内存间的速度匹配问题 D.提高内存工作的可靠性
●ADSL对应的中文术语是__(61)__,它的两种Intenet接入方式是__(62)__接入。
(61)A.分析数字系统层 B.非对称数字线
C.非对称数字用户线 D.异步数字系统层
(62)A.固定接入和虚拟拨号 B.专线接入和VLAN
C.固定接入和VLAN D.专线接入和虚拟拨号
●TCP/IP是一个协议簇,它的体系结构分为四层:应用层、网际层、网络接口层和__(63)__,其中ARP协议属于__(64)__。为了在源主机和目的主机之间传送数据,IP协议需要确定源主机和目的主机是否在同一个网络中。如果不在同一网络时,则必须通过__(65__进行通信。
(63)A.会话层 B.传输层 C.网络层 D.表示层
(64)A.应用层 B.传输层 C.网际层 D.网络接口层
(65)A.网关或路由器 B.中继器 C.集线器 D.终端匹配器
●One use of networks is to let several computers share __(66)__ such as file systems,
printers, and tape drives.
(66) A.CPU B.memory C.resources D.data
●A firewall is a __(67)__ system designed to __(68)__ an organization's network against threats.
(67) A.operating B.programming C.security D.service
(68) A.prevent B.protect C.develop D.exploit
●The __(69)__ has several major components, including the system kernel, a memory management system, the file system manager, device drivers, and the system libraries.
(69) A.application B.information system
C.network D.operating system
●__(70)__ is the address of a variable or a variable in which the address of another variable is stored.
(70) A.Director B.Pointer C.Array D.Record
●C++ is used with proper __(71)__ design techniques.
(71) A.object-oriented B.object-based
C.face to object D.face to target
●__(72)__ is a contiguous, numbered set of variables of a given base type, which can be used and passed to functions as a unit.
(72) A.Record B.Array C.File D. Parameter
●(73) is not a programming language.
(73) A.COBOL B.Java C.UML D.Basic
●__(74)__ is nonprogram text embedded in a program to explain its form and function to
human readers.
(74) A.Command B.Compile C.Comment D.Statement
●When the result of an operation becomes larger than the limits of the representation,__(75)__ occurs.
(75) A.overdose B.overflow C.overdraft D.overexposure
2004年上半年程序员下午试题
试题一是必答题试题一
阅读下列说明、流程图和算法,将应填入__(n)__处的字句写在答题纸的对应栏内.
[流程图说明]
下面的流程图用N—S盒图形式描述了数组A中的元素被划分的过程.其划分方法是:
以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动.当划分结束时,基准数定位于A[i],并且数组中下标小于i的元素的值均小于基准数,下标大子i的元素的值均大于基准数。设数组A的下界为low,上界为high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以4为基准数的划分过程如下:
[流程图]
[算法说明]
将上述划分的思想进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数int p(int A[],int low,int high)实现了上述流程图的划分过程并返回基准数在数组A中的下标。递归函数void sort(int A[],iht L,int H)的功能是实现数组A中元素的递增排序。
[算法]
void sort(int A[],iht l,int H) {
if ( L < H ) {
k=p(A,L,R); //p()返回基准数在数组A中的下标
sort(__ (4)__; //小于基准数的元素排序
sortl__ (5)__); //大于基准数的元素排序
}
}
从下列的2道试题(试题二至试题三)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。
试题二
阅读下列函数说明和C函数,将应填入__(n)__处的字句写在答题纸的对应栏内。
[函数2.1说明]
函数palindrome(chars[])的功能是:判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。
[函数2.1]
int palindrome(char S[])
{ char *pi,*pj;
pi=S;pj=s+strlen(S)-1:
while ( pi<pj && __(1)__){
pi++; pj--;
}
if(__ (2)__)return-1;
else return 0;
}
[函数2.2说明]
函数f(char *str,char del)的功能是;将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。
例如若str的值为“33123333435”,del的值为‘3’,调用此函数后,将输出三个子字符串,分别为“12”、“4”和“5”。
[函数2.2]
void f(char*str,char del)
{ int i,j,len;
len = strlen(str);
i = 0;
while (i<len){
while (__(3)__) i++; /*忽略连续的标志字符*/
/*寻找从str[i]开始直到标志字符出现的一个子字符串*/
j = i + 1;
while (str[j] !=del && str[j] !='\0') j++;
__ (4)__="\0"; /*给找到的字符序列置字符串结束标志*/
printf(" %s\t",&str[i]): ’
__ (5)__;
}
}
试题三
以下是与Visual Basic开发应用有关的5个问题.对每一个问题,请将解答填入答题纸的对应栏内。
(1)在Visual Basic中,工程文件、窗体文件和标准模块文件的扩展名是什么?
请从下列选项中选择:
prg、prj、exe、vbp、rom、frm、win、fra,std、bas、vbs、Vbm
(2)设某窗体上有一个命令按钮,其名称为 CmdSave,运行时该按钮上显示有“保存(S)”字样的信息。为使热键 ALT+S 与该命令按钮相关联,应该对按钮 CmdSave 的 Caption属性设置什么样的属性值?
(3)设某窗口内有一个图像框 Image1,以及两个命令按钮“放大”和“缩小”。单击“放大”按钮就会使该图像框的长和宽都放大10%;单击“缩小”按钮就会使该图像框的长和宽都缩小10%(该图像框的左上角不动)。请分别写出这两个命令按钮的单击事件过程中的程序代码。
(4)为使某个单选按钮初始时默认被选中,在开发时应怎样做?
(5)若有语句 Tmpval=MsgBox(非法操作!,ybOKCancel+vbCritical,"提示"),请简要描述程序运行时弹出的消息框的主要特征。
从下列的2道试题(试题四至试题五)中任选1道解答,如果解答的试题数超过1道,则题号小的1道解咎有效。
试题四
阅读以下说明和C代码,将应填入__(n)__处的字句写在答题纸的对应栏内。
[说明]
函数 MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数 n 转换成 B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把 B 进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:
#define KAXSIZE 32
typedef struct{
int *elem; /* 栈的存储区 */
int max; /* 栈的容量,即找中最多能存放的元素个数 */
int top; /* 栈顶指针 */
}Stack;
[C代码]
int lnitStack(Stack *S,int n) /* 创建容量为n的空栈 */
{ S->elem = (int *)matloc(n * sizeof(int));
if (S->elem == NULL) return -1;
S->max = n;__(1)__= 0;return 0;
}
int Push(Stack*S,int item) /* 将整数item压入栈顶 */
{ if(S->top == S->max){ printf("Stack is full!\n");return -1;}
__(2)__;item;return 0;
}
int StackEmpty(Stack S){ return(!S.top) ? 1;0;) /* 判断栈是否为空 */
int Pop(Stack*S) /* 栈顶元素出栈 */
{ if (!S->top){ printf("Pop an empty stack!\n");return -1;)
return __(3)__;
}
void MultibaseOutput(long n,int B)
{ int m;Stack S;
if (init Stack(&S,MAXSIZE)) { printf("Failure!\n");return;}
do {
if (Push(&s,__(4)__)) { printf("Failure!\n");return;}
n = __(5)__:
} while (n != 0);
while (!StackEmpty(S)) { /* 输出B进制的数 */
m = Pop(&S);
if (m < 10) printf("Kd",m); /* 小于10,输出数字 */
else printf("%c,m + 55); /* 大于或等于10,输出相应的字符 */
}
printf("\n");
}
试题五
阅读以下应用说明及Visual Basic程序代码,将应填入__(n)__处的字句写在答题纸的对应栏内。
[应用说明5.1]
本应用程序的窗体中有一个下拉式列表框(名称为Combol)和两个文本框(名称分别为Txtl和Txt2)。运行时,用户从Combol的列表中进行选择,程序就会将选中条目的内容以及编号(从0开始)分别在文本框 Txt1 和 Txt2 中显示出来。
[程序代码5.1]
Private Sub Combol_C1ick()
Txtl.Text = Combol.__(1)__
Txt2.Text = Combol.__(2)__
End Sub
(注:可供(2)处选择的选项:List,Index,Listlndex,ListCount,Number)
[应用说明5.2]
本应用程序的运行窗口如下图所示:
当用户在输入框(名为Txtln)中输入数值数据,并从下拉式列表框(名为CmbOp)中选择所需的运算后,输出框(名为TxtOut)中就会显示运算的结果。用户单击“清除”按钮(名为CmdClear)后,输入框和输出框都清空。
开发该应用的部分程序代码如下:
[程序代码5.2]
Private Sub CmbOp_Click()
Dim DataIn As Double,DataOut as Double
DataIn = __(3)__
Select Case __(4)__
Case "取整数部分"
DataOut = Int(Dataln)
Case "求平方根"
If Dataln < O Then
MsgBox$("负数不能开平方!")
Else
DataOut = Sqr(Dataln)
End If
Case "取绝对值"
DataOut = Abs(Dataln)
(TxtOut.Text = str$(DataOut)
__5)__
End Sub
从下列的2道试题(试题六至试题七)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。
试题六
阅读下列函数说明和 C 函数,将应填入__(n)__处的字句写在答题纸的对应栏内。
[函数6说明]
函数DelAInsB(LinkedList La,LinkedList lb,int key1,int key2,int len)的功能是,将线性表A中关键码为keyl的结点开始的len个结点,按原顺序移至线性表B中关键码为key2的结点之前,若移动成功,则返回0;否则返回-1。线性表的存储结构为带头结点的单链表,La为表A的头指针,Lb为表B的头指针。单链表结点的类型定义为:
typedef struct node{
int key;
struct node*next;
}*Linkedhist;
[函数6]
int DelllnsB(LinkedLiSt La,LinkedList Lb,int keyl,int key2,int len)
{ LinkedList p,q,S,prep,pres;
int k;
if (!La->next || !Lb->next || len<=0) return-1;
p = La->next; prep = La;
while (p && p->key != keyl){ /* 查找表A中键值为key1的结点 */
prep = p; p = p->next;
}
if (!p) return -1; /* 表A中不存在键值为key1的结点 */
q = p; k = 1;
while (q && __(1)__){ /* 在表A中找出待删除的len个结点 */
__(2)__: k++;
}
if (!q) return -1; /* 表A中不存在要被删除的len个结点 */ ·
S = Lb->next;__ (3)__;
while (s && s->key != key2){ /* 查找表B中键值为key2的结点 */
pres = s; s = s->next;
}
if (!s)return -1; /* 表B中不存在键值为key2的结点 */
__(4)__q->next; /* 将表A中的len个结点删除 */
q->next:__(5)__
pres->next = p; /* 将len个结点移至表B */
return 0;
}
试题七
阅读以下应用说明、属性设置及VisualBasic程序代码,将应填入__(n)__处的字句写在答题纸的对应栏内。
[应用说明7]
本应用程序的运行窗口如下图所示:
只要用户单击“闪烁”按钮,文字“欢迎光临”就会以0.3秒消失、0.3秒显示反复进行闪烁;单击“停止”按钮时,闪烁停止,恢复图示的初态。
在开发过程中,需要设置的属性如下:
[属性设置7]
对象 对象名 属性名 属性值
窗体 Frm1 Caption 闪烁显示演示
标签 Labe1 Caption 欢迎光临
命令按钮 CmdF Caption 闪烁
命令按钮 CmdT Caption 停止
定时器 Timer1 Enabled __(1)__
Interval __(2)__
在开发过程中,需要编写的程序代码如下;
[程序代码7]
Private Sub CmdF Click()
Timerl.__(3)__ = True
Label.Visible = False
End Sub
Private Sub Timerl_ Timer()
__(4)__ = not Label.Visible
End Sub
Private Sub CmdT Click()
Timerl.Enabled = __(5)__
Label.Visible = true
End Sub
从下列的2道试题(试题八至试题九)中任选1道解答,如果解答的试题数超过1道,则题号小的1道解答有效。
试题八
阅读下列程序说明和C程序,将应填入__(n)__处的字句写在答题纸的对应栏内。
[程序8说明]
程序8用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额。职工的当月收入(工资或薪金)通过键盘输入,每次输入一个职工的工号和工资(或薪金)。由于该公司的工资或薪金是不定时发放的,所以输入过程中每个职工的收入会出现多次输入,整个输入以工号小于等于0结束。
假设个人所得税法规定;个人收入所得,按月计税,以每月收入总额减除免税金额800元后的余额作为该月的月应纳税所得额,适用税率如下表所示。
级数 月应纳税所得额 适用税率(%)
1
2
3
4
5
6
7
8
9 不超过500元的部分
501元~2000元的部分
2001元~5000元的部分
5001元~20000元的部分
20001元~40000元的部分
40001元~60000元的部分
60001元~80000元的部分
80001元~100000元的部分
超过100000元的部分
5
10
15
20
25
30
35
40
45
上表表明,个人收入所得税是按照超额累进的税率来征收的。
设一个人的月应纳税所得额为K(元),用下面的公式计算其应缴纳的个人所得税额S(元):
若0<K≤500,则S=K×5%;
若500<K≤2000,则S=500×5%+(K—500)×10%:
若2000<K≤5000,则S=500×5%+1500×10%+(K-2000)×15%:
若5000<K≤20000,则S=500×5%+1500×10%+3000×15%+(K-5000)×20%:
例如,某人某月工资总额为4100元,减去800元后,应纳税所得额为3300元,其应缴纳的个人所得税额为500*5%+1500*10%+1300*15%=370元。
[程序8]
#include <stdio.h>
#define MaxNum 50
#define BASE 800 /*免税金额基数*/
int paylevel[]={0,500,2000,5000,20000,40000,60000,80000,100000,100000¨:
int taxPrate[]={5,10,15,20,25,30,35,40,45): /*税率表*/
typedef struct{
int ld; /*职工的工号*/ .
long Salary; /*职工的工资*/
}Info;
/* 查找工号为Id的职工在数组employee中的下标,返回值为0表示没有 */
int find(int ld,Info employee[],int m){
int j;
employee[0].Id=Id;
for(j=m;__(1)__;j--);
return j;
}
void main(void)
{ Info employeeCHaxNum+1];
long Wage;
double sum s 0,K,S:
int i,j,N=0,Code;
scanf("M%ld",&Code,&Wage); /*读入职工号、工资或薪金*/
while(Code>0) {
i=find(Code,employee,N);
if (i>0)employee[i].Salary += Wage:
else{ __ (2)__;
employee[N].Id=Code;employee[N].Salary=Wage;
}
scanf("%d%ld",&Code,&Wage):
}
for (i=1;i<=N;i++){
K = __(3)__; /*计算月应纳税所得额*/
S=0; /*月应纳税额赋初值*/
if (K > 0) {
for (j=1;j<=9;j++)
if(__(4)__) /*月应纳税所得额超过第j级*/
S=S+(paylevel[j]-paylevel[j-1])*taxPrate[j-1]/100;
else{ S=S+(__ (5)__)*taxPrate[j-1]/100;break;}
}
printf("职工%d应缴纳的个人所得税额:%10.21f\n",employee[i].Id,S);
sum += S;
}
printf("全体职工个人所得税总额:%10,21f\n",sum);
}
试题九
阅读以下应用说明及VisualBasic程序代码,将应填入__(n)__处的字句写在答题纸的对应栏内.
[应用说明9]
本应用程序的运行窗口如下图所示:
窗口中的三个文本框和两个按钮名称分别为Txt_salary、Txt_base、ht_tax、Cmd compute和Cmd_quit.运行时,文本框Txt_base中存放的是免税金额基数(应扣除的基本费用)。当用户在文本框ht_salary中输入月收入(工资或薪金)并单击“计算”按钮Crud_compute后,Txt_tax框中就显示计算所得的应纳税额。文本框Txt_base和Txt_tax在运行时不接受用户输入,Txt_base的内容以灰色显示。
个人工资(或薪金)所得税是按照超额累进的税率来征收的,方法是:以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额,再将应纳税所得额按相应级数采用相应的税率进行累进计算.目前的免税金额基数为800元,税率如下表所示:
个人工资(或薪金)所得税是按照超额累进的税率来征收的,方法是:以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额,再将应纳税所得额按相应级数采用相应的税率进行累进计算.目前的免税金额基数为800元,税率如下表所示:
级数 月应纳税所得额 适用税率(%)
1
2
3
4
5
6
7
8
9 不超过500元的部分
501元~2000元的部分
2001元~5000元的部分
5001元~20000元的部分
20001元~40000元的部分
40001元~60000元的部分
60001元~80000元的部分
80001元~100000元的部分
超过100000元的部分
5
10
15
20
25
30
35
40
45
设一个人的月应纳税所得额为K(元),用下面的公式计算其应缴纳的个人所得税额S(元):
若0<K≤500,则S=K×5%;
若500<K≤2000,则S=500×5%+(K—500)×10%:
若2000<K≤5000,则S=500×5%+1500×10%+(K-2000)×15%:
若5000<K≤20000,则S=500×5%+1500×10%+3000×15%+(K-5000)×20%:
例如,某人某月工资总额为4100元,减去800元后,应纳税所得额为3300元,其应缴纳的个人所得税额为500*5%+1500*10%+1300*15%=370元。
在开发过程中,需要编写的程序代码如下:
[程序代码]
Option Base 0
Private Sub Cmd compute-C1ick()
Dim paylevel,taxPrate
paylevel=Array(0,500,2000,5000,20000,40000,60000,80000,100000,1000001)
taxPrate=Array(5,10,15,20,25,30,35,40,45)
K=__(1)__
S = 0
If (K>0) Then
For j=1 To 9
If __(2)__ Then
S=S+(paylevel(j)-paylevel(j-1))*taxPrate(j-1)/100
Else
S=S+(__(3)__)*taxPrate(j-1)/100
Exit For
End lf
Next j
End lf
__(4)__=Str$(S)
End Sub
Private Sub Cmd_quit_C1ick()
End
End Sub
Private Sub Form_Load()
Txt_tax.Text = " "
Txt_salary.Text = " "
Txt_base.Text = 800
Txt_tax.Locked = True
Txt_base.Enabled =__(5)__
End Sub 2004年上半年程序员级答案
上午答案
(1) B (16) D (31) D (46) D (61) C
(2) C (17) A (32) D (47) C (62) D
(3) D (18) D (33) A (48) C (63) B
(4) A (19) A (34) B (49) B (64) C
(5) B (20) B (35) B (50) C (65) A
(6) C (21) A (36) A (51) B (66) C
(7) A (22) D (37) B (52) A (67) C
(8) C (23) C (38) A (53) B (68) B
(9) B (24) C (39) C (54) D (69) D
(10) A (25) A (40) D (55) C (70) B
(11) D (26) D (41) B (56) B (71) A
(12) B (27) A (42) D (57) B (72) B
(13) B (28) B (43) B (58) A (73) C
(14) A (29) C (44) D (59) D (74) C
(15) C (30) C (45) C (60) C (75) B
下午答案
试题一
(1)j ← j-1
(2)I ← i+1
(3)A[i]←pivot 或 [j]←pivot
(4)A,L,k-I 或A,L,k
(5)A,k+I,H 或A,k,H
试题二
(1)*pi == *pj
(2)pi<pj 或 *pi != *pj
(3)str[i] == del
(4)str[j]
(5) i = j+1
试题三
(1)工程文件的扩展名是 vbp,窗体文件的扩展名是 frm,标准模块文件的扩展名是 bas。
(2)保存(&S)
(3)解答:“放大”按钮单击事件过程中的程序代码:
Image1.Width=Image1.Width*1.1
1mage1.Height=Image1.Height*1.1
“缩小”按钮单击事件过程中的程序代码:
Image1.Width=Image1.Width*0.9
1mage1.Height=Image1.Height*0.9
(4)将该单选按钮的Value属性值设置成True
(5)消息框的标题栏显示“提示”:消息框中有一个出错标记以及两个命令按钮,分别显示“确定”和“取消”;消息框中显示的信息为“非法操作!”。
试题四
(1)S->top
(2)S->elem[S->top++]·
(3)S->elem[-S->top]
(4)n % B
(5)n / B
试题五
(1)Text
(2)listlndex
(3)Val(Txtln.Text) 或Txtln.Text
(4)CmbOp.Text
(5)EndSelect
试题六
(1)k<1en
(2)q=q->next 或 q=(*q).next
(3)pres = Lb
(4)prep->next或(*prep).next
(5)s 或 pres->next 或 (*pres).next
试题七
(1)false
(2)300
(3)enabled
(4)Label.Visible
(5)false
试题八
(1)employee[j].Id!=Id
(2)++N 或 N++ 或 N=N+1
(3)employee[i].Salary-BASE
(4)k>payleve[j]
(5)k>payleve[j-1]
试题九
(1)Val(Txt_salary.Text)-Val(Txt_base.Text)
(2)k>paylevel(j)
(3)k-paylevel(j-1)
(4)Txt_tax.Text
(5)False
页:
[1]