2014年7月程序设计试题和答案
- 格式:docx
- 大小:134.04 KB
- 文档页数:7
2014下半年程序员考试真题及答案-下午卷试题一(共15分)阅读以下说明和流程图,填补流程图中的空缺(1)〜(5),将解答填入答题纸的对应栏内。
【说明】本流程图旨在统计一本电子书中各个关键词出现的次数。
假设已经对该书从头到尾依次分离出各个关键词{A(i)|i=1,…,n}(n>1) },其中包含了很多重复项,经下面的流程处理后,从中挑选出所有不同的关键词共m个{K(j)lj=l,…,m},而每个关键词K(j)出现的次数为K(j),j=1,…,m。
【流程图】【参考答案】(1) 1 (2) K(j)(3)NK(j)+1->NK(j) 或NK(j)++ 或等价表示(4)m+1->m 或m++ 或等价表示(5)A(i)【试题解析】流程图中的第1框显然是初始化。
A (1) ->K(1)意味着将本书的第1个关键词作为选出的第1个关键词。
1->NK (1)意味着此时该关键词的个数置为1。
m是动态选出的关键词数目,此时应该为1,因此(1)处应填1。
本题的算法是对每个关键词与已选出的关键词进行逐个比较。
凡是遇到相同的,相应的计数就增加1;如果始终没有遇到相同关键词的,则作为新选出的关键词。
流程图第2框开始对i=2,n循环,就是对书中其他关键词逐个进行处理。
流程图第3 框开始j=l,m循环,就是按已选出的关键词依次进行处理。
接着就是将关键词A(I)与选出的关键词K(j)进行比较。
因此(2)处应填K(j)。
如果A(i)=K(j),则需要对计数器NK(j)增1,即执行NK(j)+1->NK(j)。
因此(3)处应填NK(j)+1->NK(j)。
执行后,需要跳出j循环,继续进行i循环,即根据书中的下一个关键词进行处理。
如果A(i)不等于NK(j),则需要继续与下个NK(j)进行比较,即继续执行j循环。
如果直到j循环结束仍没有找到匹配的关键词,则要将该A(i)作为新的已选出的关键词。
2014年下半年下午程序员考试试题-案例分析-答案与解析试题一(共15分)阅读以下说明和流程图,填补流程图中的空缺(1)〜(5),将解答填入答题纸的对应栏内。
【说明】本流程图旨在统计一本电子书中各个关键词出现的次数。
假设已经对该书从头到尾依次分离出各个关键词{A(i)|i=1,…,n}(n>1) },其中包含了很多重复项,经下面的流程处理后,从中挑选出所有不同的关键词共m个{K(j)lj=l,…,m},而每个关键词K(j)出现的次数为K(j),j=1,…,m。
【流程图】【参考答案】(1)、1(2)、K(j)(3)、NK(j)+1->NK(j) 或NK(j)++ 或等价表示(4)、m+1->m 或m++ 或等价表示(5)、A(i)【答案解析】流程图中的第1框显然是初始化。
A (1) ->K(1)意味着将本书的第1个关键词作为选出的第1个关键词。
1->NK (1)意味着此时该关键词的个数置为1。
m是动态选出的关键词数目,此时应该为1,因此(1)处应填1。
本题的算法是对每个关键词与已选出的关键词进行逐个比较。
凡是遇到相同的,相应的计数就增加1;如果始终没有遇到相同关键词的,则作为新选出的关键词。
流程图第2框开始对i=2,n循环,就是对书中其他关键词逐个进行处理。
流程图第3 框开始j=l,m循环,就是按已选出的关键词依次进行处理。
接着就是将关键词A(I)与选出的关键词K(j)进行比较。
因此(2)处应填K(j)。
如果A(i)=K(j),则需要对计数器NK(j)增1,即执行NK(j)+1->NK(j)。
因此(3)处应填NK(j)+1->NK(j)。
执行后,需要跳出j循环,继续进行i循环,即根据书中的下一个关键词进行处理。
如果A(i)不等于NK(j),则需要继续与下个NK(j)进行比较,即继续执行j循环。
如果直到j循环结束仍没有找到匹配的关键词,则要将该A(i)作为新的已选出的关键词。
一、写出下列程序段的运行结果(40分)1.(4分)char a= 'F'-'E',b= '\12',c=12,d;c = a<b<c;d =--a&& b++;printf("%d,%d,%d,%d",a,b,c,d);2.(4分)int a=2, b=5;printf("a=%%d,b=\\d,");b/=a;a+=a-b;printf("%d,%d",a,b);3.(4分)char a=256;printf("%d,",a++);a=(int)(13/5+1.4);printf("%d",a);4.(4分)int p[8]={11,12,13,14,15,16,17}; int i=0,j=0;while (i++<7) (第一次循环i=1)if (p[i]%2) j+=p[i];printf("%d\n",j);5.(4分)int a=3,b=5;void exchange(int a, int b){int t;t=a; a=b; b=t;printf("%d,%d\n", a, b);} int main(){exchange(a,b);printf("%d,%d\n",a,b);return 0;}6.(4分)void f(char ch){if (ch>'A'){f(ch-1);}putchar(ch);}int main(){f('D');return 0;}7.(4分)char str[10]="123456789"; int i;for (i=9; i>0; i/=2){str[i]=0;printf("%s\n",str);}8.(4分)struct {int x; int y; int z;}a[3] ={1,2,3,4,5,6,7,8,9};printf("%d,%d\n", a[1].x+a[2].y, a[1].y+a[2].z);9.(4分)int a[8]={1,2,3,4,5,6,7,8};int i=1, *p = a;while (p<a+8){p rintf("%d ",*p);p = p+i;i*=2;} 10.(4分)FILE *fp;int d=20150111;char c1,c2;char str[4];fp=fopen("a.tmp","w");fprintf(fp,"%d", d);fclose(fp);fp=fopen("a.tmp","r");c1=fgetc(fp);fgets(str, 4, fp);c2=fgetc(fp);fscanf(fp, "%d", &d);printf("%c,%s,%c,%d",c1,str,c 2,d);二、改错题(20分)以下程序实现:从键盘输入20个学生的成绩数据,将这些数据存到磁盘文件“stu.dat”上,并求这些学生的最差成绩。
2021下半年软件设计师考试真题及答案-上午卷1.属于 CPU 中算术逻辑单元的部件是〔B〕。
A.程序计数器B.加法器C.指令存放器 D.指令译码器2.计算机采用分级存储体系的主要目的是为了解决〔D〕问题。
A.主存容量缺乏B.存储器读写可靠性C.外设访问效率D.存储容量、本钱和速度之间的矛盾3.三总线构造的计算机总线系统由〔D〕组成。
A.CPU 总线、内存总线和 IO 总线 B.数据总线、地址总线和控制总线 C.系统总线、内部总线和外部总线 D.串行总线、并行总线和 PCI 总线4.DHCP 客户端可从 DHCP 效劳器获得〔B〕。
A.DHCP 效劳器的地址和 Web 效劳器的地址 B.DNS 效劳器的地址和 DHCP 效劳器的地址C.客户端地址和邮件效劳器地址D.默认网关的地址和邮件效劳器地址5.ICMP 协议属于因特网中的〔C〕协议,ICMP 协议数据单元封装在〔C〕中传送。
A.数据链路层B.网络层C.传输层D.会话层A.以太帧B.TCP 段C.UDP 数据报D.IP 数据报6.PPP 中的妥全认证协议是〔A〕,它使用三次握手的会话过程传送密文。
A. MD5B.PAP C.CHAPC.CHAP7.一个文件中出现的各字符及其对应的频率如下表所示。
假设采用定长编码,那么该文件中字符的码长应为〔D〕。
假设采用 Huffman 编码,那么字符序列“face〞的编码应为〔D〕。
A.2 B.3C.4D.5A.110001001101B.001110110011C.101000010100D.010*********8.对一待排序序列分别进展直接插入排序和简单项选择择排序,假设待排序序列中有两个元素的值一样,那么〔A〕保证这两个元素在排序前后的相对位置不变。
A.直接插入排序和简单项选择择排序都可以 B.直接插入排序和简单项选择择排序都不能C.只有直接插入排序可以 D.只有简单项选择择排序可以9.快速排序算法在排序过程中,在待排序数组中确定一个元素为基准元素,根据基准元素把待排序数组划分成两个局部,前面一局部元素值小于等于基准元素,而后面一局部元素值大于基准元素。
2014年lO月高等教育自学考试全国统一命题考试C++程序设计试卷(课程代码04737)本试卷共8页,满分l00分,考试时间l50分钟。
考生答题注意事项:1.本卷所有试题必须在答题卡上作答。
答在试卷上无效,试卷空白处和背面均可作草稿纸。
2.第一部分为选择题。
必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。
3.第二部分为非选择题。
必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。
4.合理安排答题空间,超出答题区域无效。
第一部分选择题一、单项选择题(本大题共20小题,每小题l分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”的相应代码涂黑。
未涂、错涂或多涂均无分。
1.在编译指令中,宏定义使用的指令是A.#include B.#define C.#if D.#else2.基类中的protected成员,通过哪种派生,其在派生类中的可见性为protected?A.public和private B.public和protectedC.protected和private D.仅protected3.基类中的public成员,通过public派生,基在派生类中的可见性为A.不可访问 B.private C.protected D.public4.不同对象调用同名函数,但导致完全不同行为的现象称为A.抽象 B.封装 C.继承 D.多态性5.头文件扩展名为A.cpp B.h C.ub D.ob6.声明函数为内联使用的关键字为A.const B.inline C.short D.signed7.设类A中有静态数据成员x,两个A类对象a和b,若a.x=10,则b.x的值为A.9 B.10 C.1l D.不能确定8.C ++允许在结构中定义函数,这些函数称为A.静态函数 B.构造函数 C.析构函数D.成员函数9.下列哪种类型的函数适合声明为内联函数?A.函数体语句较多 B.函数体逻辑较复杂C.函数执行时间较长D.函数语句较少,执行速度要求高10.析构函数的返回值类型为A.void B.bool C.int D.无类型11.函数重载必须满足的条件是A.函数名相同 B.参数个数不同 C.参数类型不同 D.函数名不相同12.下列表达式,哪个是声明P为指向常量的常量指针?A.const int*P B.int*const PC.const int* const P D.int*P13.C++中函数中的return指令可以A.只能有一条B.0或多条 C.至少有一条 D.只能主函数调用14.类声明的内容用花括号括起来,在花括号后跟哪个符号表示类声明结束A.:B.; C., D..15.使用new Point(5,7)创建对象,调用的是下列哪个构造函数?A.Point::Point() B.Point::Point(int,int)C.Point::Creat() D.Point::Creat(int,int)16.类中的protected成员在何处访问?A.只类自身成员函数中 B.只子类成员函数中C.类和子类的成员函数中 D.通过对象类外访问17.在类中使用static关键字修饰的成员函数称为A.全局成员函数 B.公有成员函数C.静态成员函数 D.非静态成员函数18.用于标识十六进制常量的前缀或后缀是A.无 B.后缀L或l C.前缀零 D.前缀Ox19.在定义结构时,为产生封装性,则需使用哪个关键字数据成员?A.public B.publish C.protected D.private20.函数模板template<typename T>void Func(T,T)不能具有哪种实例化形式?A.void Func(int,int) B.void Func(bool,bool) C.void Func(double,int) D.void Func(char,char)第二部分非选择题二、填空题(本大题共20小题。
2014上半年程序员考试真题及答案-下午卷试题一(共15分)阅读以下说明和流程图,填补流程图中的空缺(1)-(5),将解答填入答题纸的对应栏内。
指定网页中,某个关键词出现的次数除以该网页长度称为该关键词在此网页中的词频。
对新闻类网页,存在一组公共的关键词。
因此,每个新闻网页都存在一组词频,称为该新闻网页的特征向量。
设两个新闻网页的特征向量分别为:甲(a1,a2,…,ak)、乙(b1,b2,... ,bk),则计算这两个网页的相似度时需要先计算它们的内积S=a1b1+a2b2+…+akbk。
一般情况下,新同网页特征向量的维数是巨大的,但每个特征向量中非零元素却并不多。
为了节省存储空间和计算时间,我们依次用特征向量中非零元素的序号及相应的词频值来简化特征向量。
为此,我们用(NA(i),A(i)|i=1,2,...,m)和(NB(j),B(j)|j=1,2,...,n)来简化两个网页的特征向量。
其中:NA(i)从前到后描述了特征向量甲中非零元素A(i)的序号(NA(1)<NA(2) < ...), NB(j)从前到后描述了特征向量乙中非零元素B(j)的序号(NB(1) <NB(2) <…)。
下面的流程图描述了计算这两个特征向量内积S的过程。
【参考答案】(1) 0(2) S+A(i)B(j) 或等价表示(3) i>m 或 i=m+1 或等价表示(4) j>n 或 j=n+1 或等价表示(5) i>m or j>n 或 i=m+1 or j=n+1 或等价表示【试题解析】本题是简化了的个大数据算法应用之例。
世界上每天都有大量的新闻网页,门户网站需要将其自动进行分类,并传送给搜索的用户。
为了分类,需要建立网页相似度的衡量方法。
流行的算法是,先按统一的关键词组计算各个关键词的词频,形成网页的特征向量,这样,两个网页特征向量的夹角余弦(内积/两个向量模的乘积),就可以衡量两个网页的相似度。
在CPU中,常用来为ALU执行算术逻辑运算提供数据并暂存运算结果的寄存器是(1)。
(1)A.程序计数器 B.状态寄存器 C.通用寄存器 D.累加寄存器【答案】D【解析】本题考查计算机系统基础知识。
CPU 中有一些重要的寄存器,程序计数器( PC )用于存放指令的地址。
当程序顺序执行时,每取出一条指令, PC 内容自动增加一个值,指向下一条要取的指令,当程序出现转移时,则将转移地址送入PC,然后由PC给出新的指令地址。
状态寄行器用于记录运算中产生的标志信息。
状态寄存器中的每一位单独使用,成为标志位。
标志位的取值反映了ALU当前的工作状态,可以作为条件转移指令的转移条件。
典型的标志位有以下几种:进位标志位(C)、零标志位(Z)、符号标志位(S)、溢出标志位(V)、奇偶标志位(P)。
通用寄存器组是CPU中的一组工作寄存器,运算时用于暂存操作数或地址。
在程序中使用通用寄存器可以减少访问内存的次数,提高运算速度。
累加器(accumulator)是一个数据寄存器,在运算过程中暂时存放操作数和中间运算结果,不能用于长时间地保存一个数据。
某机器字长为n,最高位是符号位,其定点整数的最大值为(2)。
(2)A.2n-1 B.2n-1-1 C.2n D.2n-1【答案】B【解析】本题考查计算机系统中的数据表示基础知识。
机器字长为n,最高位为符号位,则剩余的n-1位用来表示数值,其最大值是这n-1位都为1,也就是2n-1-1。
海明码利用奇偶性检错和纠错,通过在n个数据位之间插入k个校验位,扩大数据编码的码距。
若n=48,则k应为(3)。
(3)A.4 B.5 C.6 D.7【答案】C【解析】本题考查数据校验基础知识。
设数据位是n位,校验位是k位,则n和k必须满足以下关系:2k-1 ≥ n + k。
若n=48,则k为6时可满足26-1 ≥ 48+6 。
海明码的编码规则如下。
设k个校验位为Pk,Pk-1,…,P1, n个数据位为Dn-1,Dn-2,…,D1,D0 。
2014(一) 程序设计(50分)一、单项选择题(共计20分,每小题2分)1.C 语言程序设计是一种( )A 、机器语言B 、汇编语言C 、高级语言D 、英语 2.C 语言程序的基本单位是( )A 、程序行B 、字符C 、语句D 、函数3.C 语言程序的三种基本结构是( )A 、顺序结构,选择结构,循环结构B 、递归结构,循环结构,转移结构C 、嵌套结构,递归结构,顺序结构D 、循环结构,嵌套结构,顺序结构4.下列运算符中优先级最高的是( )A 、<B 、&&C 、+D 、!=5.与数学式子129 x x n对应的C 语言表达式是( ) A 、9*x^n/(2*x-1) B 、9*x**n/(2*x-1)C 、9*pow(x,n)/(2*x-1)D 、9*pow(n,x)/(2*x-1)6.有如下程序,写出其执行结果( )#inc lude ”stdio.h”main(){float x=2.0, y;if (x<0.0)y=0.0;else if (x<10.0)y=1.0/x;else y=1.0;printf(”%f\n”,y);}A、0.000000B、0.250000C、0.500000D、1.00000047.如下程序段执行时()x=-1;do{ x=x*x;}while (!x);A、循环体将执行一次B、循环体将执行两次C、循环体将执行无数多次D、系统将提示有语法错误8.执行下面语句的输出为()int i =10;if(i<=0)printf(“* * * *\n”);elseprintf(“$ $ $ $ \n”);A、* * * *B、$ $ $ $C、$ $ $ $ cD、有错,执行不正确9.下列程序段的执行结果为()for(i=0;i<5;i++){for(j=0;j<i+1;j++)printf( "*");printf(“\n”);}10.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是()A、i=*p;B、*p=*&j;C、i=&j;D、 i=**p;二、填空题(共计16分,每空2分)1.语句print(“%d”, 7%4); 的输出结果是:。
2014年上半年上午软件设计师考试试题-答案与解析一、单项选择题(共75分,每题1分。
每题备选项中,只有1个最符合题意)●第1题.在CPU中,常用来为ALU执行算术逻辑运算提供数据并暂存运算结果的寄存器是(1)。
A.程序计数器B.状态寄存器C.通用寄存器D.累加寄存器【参考答案】D【答案解析】CPU中有一些重要的寄存器,程序计数器(PC)用于存放指令的地址。
当程序顺序执行时,每取出一条指令,PC内容自动增加一个值,指向下一条要取的指令,当程序出现转移时,则将转移地址送入PC,然后由PC给出新的指令地址。
状态寄行器用于记录运算中产生的标志信息。
状态寄存器中的每一位单独使用,成为标志位。
标志位的取值反映了ALU当前的工作状态,可以作为条件转移指令的转移条件。
典型的标志位有以下几种:进位标志位(C)、零标志位(Z)、符号标志位(S)、溢出标志位(V)、奇偶标志位(P)。
通用寄存器组是CPU中的一组工作寄存器,运算时用于暂存操作数或地址。
在程序中使用通用寄存器可以减少访问内存的次数,提高运算速度。
累加器(accumulator)是一个数据寄存器,在运算过程中暂时存放操作数和中间运算结果,不能用于长时间地保存一个数据。
●第2题.某机器字长为n,最高位是符号位,其定点整数的最大值为(2)。
A.2n-1B.2n-1-1C.2nD.2n-1【参考答案】B【答案解析】机器字长为n,最高位为符号位,则剩余的n-1位用来表示数值,其最大值是这n-1位都为1,也就是2n-1-1。
●第3题.海明码利用奇偶性检错和纠错,通过在n个数据位之间插入k个校验位,扩大数据编码的码距。
若n=48,则k应为(3)。
A.4B.5C.6D.7【参考答案】C【答案解析】设数据位是n位,校验位是k位,则n和k必须满足以下关系:2k-1≥n+k。
若n=48,则k为6时可满足26-1≥48+6。
海明码的编码规则如下。
设k个校验位为Pk,Pk-1,…,P1,n个数据位为Dn-1,Dn-2,…,D1,D0。
2014计算机二级Java程序设计真题及答案(网友版)本题定义了一个求两个数的值的方法max,并调用该方法计算67和23的值。
public class javal{public static void main(String[]args){javal temp=new javal();int res=max(67,23);System.out.println("res="+res);}static int maX( ){int maxNum;if(a>b);elsemaxNum=b;;}}二、基本操作题(共18分)本题统计score[]={37,89,63,60,59,78,91)中成绩不及格的人数。
public class javal{public static void main(String[]args){int score[]={37,89,63,60,59,78,91),int sum=0:int i=0;while(i if(score[i]>=60){;;};i++;}System.OUt.println("below 60 sum:"+sum);}}23.下列代码的执行结果是( )。
public class Test{public static void main(String args[]) {System.out.println(5/2);System.OUt.println(100%3.O)}}A.2和1B.2和1.0C.2.5和1D.2.5和1.0 高手指点呀34.resume()方法恢复( )的执行。
A.通过调用stop()方法而停止的线程B.通过调用sleep()方法而停止运行的线程C.通过调用wait()方法而停止运行的线程D.通过调用suspend()方法而停止运行的线程。
2014年7⽉程序设计试题和答案2014 年 7 ⽉⾼等教育⾃学考试Visual Basic程序设计试题(课程代码07759 )⼀、单项选择题(本⼤题共16 ⼩题,每⼩题 1 分,共 16 分)在每⼩题列出的四个备选项中只有⼀个是符合题⽬要求的,请将其代码填写在题后的括号内。
错选、多选或未选均⽆分。
1. 下列能从字符串“Microsoft”中直接取出⼦字符串“Micro ”的函数是()A. MidB. LeftC. InstrD. String2. 下列不合法的 Visual Basic变量名是()A. c_bB. andifC. cb6D. _xyz3. 如果将布尔常量值True赋值给⼀个整型变量,则整型变量的值为()A. FalseB. TrueC. -1D.14. 在窗体上有⼀个名称为Text1 的⽂本框,影响 Text1的输⼊最⼤字符数量的属性是()A. VisibleB. TabStopC. MaxLengthD. SelLength5.InputBox 函数的返回值类型是()A. 字符串型B.变体型C. 数值型D.数值或字符串型(视输⼊的数据⽽定)6. 设 a=8,b=6, 则执⾏ x=IIf(b\a*a=10,0.-1)后, x 的值为()A.1B.0C. 使⽤错误D.-17. 当某个控件获得焦点时,将会触发的事件是()A. SetFocusB. GotFocusC. ReceiveFocusD.⽆事件触发8. 类模块⽂件的扩展名为()A. .clsB. .frxC. .basD. .vbp9. 将 CommonDialog 通⽤对话框设置为“另存为”对话框,须选择的⽅法为()A. ShowOpenB. ShowColorC. ShowSaveD. ShowFont10. 对窗体进⾏操作时,能实现将窗体装⼊内存和显⽰的⽅法是()A. HideB. UnloadC. LoadD. Show11. 按照数据的编码⽅式,⽂件可以分为()A. 程序⽂件和数据⽂件B.顺序⽂件盒随机⽂件C.ASCII ⽂件盒⼆进制⽂件D.磁盘⽂件和打印⽂件12. 在菜单项的属性中,能使该菜单项失效的属性是()A. EnabledB. CheckedC. VisibleD. Caption13. 要想从过程调⽤后返回⼀个整数型结果,则下列过程说明正确的是()A. Sub f1 ( Byval x As Single) As IntegerB. Function f2(Byval x As Integer)As SingleC. Sub f3(x As Integer)As SingleD. Function f4(x As Integer)As Integer14.语句 Dim Arr(-4 To 3)定义的数组 Arr的元素个数是()A.7B.8C.9D.1015.为将多个语句放在同⼀⾏中书写,下列合法的语句⾏为()A. x=1:y=5:z=10B. x=1. y=5. z=10C. x=1, y=5, z=10D. x=1;y=5; z=1016.在窗体 Form1 上显⽰字符" Hello "的正确语句是()A. Form1.Display"Hello "B. Form1.Print"Hello "C. Form1.Output" Hello"D. Form1.Write" Hello "⼆、判断改错题(本⼤题共10 ⼩题,每⼩题 2 分,共 20 分)判断下列每⼩题的正误。
程序设计题库及答案详解一、选择题1. 下列哪个选项不是面向对象编程的三大特性?A. 封装B. 继承C. 多态D. 过程化答案:D2. 在Java中,以下哪个关键字用于定义类?A. classB. interfaceC. enumD. struct答案:A3. 以下哪个是Python中的循环结构?A. forB. whileC. both A and BD. none of the above答案:C二、填空题1. 程序设计中的________是用来定义数据的属性和方法的集合。
2. 在C语言中,________关键字用于声明一个函数。
答案:void 或者 int(根据函数返回类型而定)3. 在JavaScript中,________方法用于将字符串转换为数字。
答案:parseInt 或 parseFloat(根据转换类型而定)三、简答题1. 请简述什么是递归函数,并给出一个简单的递归函数示例。
答案:递归函数是指在函数内部调用自身的函数。
递归函数通常用于解决可以分解为相同问题的子问题的问题。
以下是一个计算阶乘的递归函数示例:```cint factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}```2. 解释什么是堆栈,并说明它们在程序设计中的应用。
答案:堆栈是两种不同的数据结构。
堆是一种优先队列,其中最大或最小元素可以在对数时间内被找到。
栈是一种遵循后进先出(LIFO)原则的数据结构。
在程序设计中,堆栈广泛应用于内存管理、函数调用、表达式求值、回溯算法等领域。
四、编程题1. 编写一个函数,实现字符串的反转。
```pythondef reverse_string(s):return s[::-1]```2. 给定一个整数数组nums,请找出数组中最长递增子序列的长度。
答案:```pythondef lengthOfLIS(nums):if not nums: return 0dp = [1] * len(nums)for i in range(1, len(nums)):for j in range(i):if nums[i] > nums[j]:dp[i] = max(dp[i], dp[j] + 1)return max(dp)```五、案例分析题1. 描述一个场景,其中使用多线程可以提高程序的效率,并解释为什么。
2014年下半年软件设计师下午试题试题:1阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】某大型披萨加工和销售商为了有效管理生产和销售情况,欲开发一披萨信息系统,其主要功能如下:(1)销售。
处理客户的订单信息,生成销售订单,并将其记录在销售订单表中。
销售订单记录了订购者、所订购的披萨、期望的交付日期等信息。
(2)生产控制。
根据销售订单以及库存的披萨数量,制定披萨生产计划(包括生产哪些披萨、生产顺序和生产量等),并将其保存在生产计划表中。
(3)生产。
根据生产计划和配方表中的披萨配方,向库存发出原材料申领单,将制作好的披萨的信息存入库存表中,以便及时进行交付。
(4)采购。
根据所需原材料及库存量,确定采购数量,向供应商发送采购订单,并将其记录在采购订单表中;得到供应商的供应量,将原材料数量记录在库存表中,在采购订单表中标记已完成采购的订单。
(5)运送。
根据销售订单将披萨交付给客户,并记录在交付记录表中。
(6)财务管理。
在披萨交付后,为客户开具费用清单,收款并出具收据;依据完成的采购订单给供应商支付原材料费用并出具支付细节;将收款和支付记录存入收支记录表中。
(7)存储。
检查库存的原材料、拔萨和未完成订单,确定所需原材料。
现采用结构化方法对披萨信息系统进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。
图1-1 上下文数据流图图1-2 0层数数据流图【问题1】(4分)根据说明中的词语,给出图1-1中的实体E1~E2的名称。
E1: 客户E2: 供应商【问题2】(5分)根据说明中的词语,给出图1-2中的数据存储D1~D5的名称。
D1: 销售订单表D2: 库存表D3: 生产计划表D4: 原材料申领单D5: 采购订单表【问题3】(6分)根据说明和图中词语,补充图1-2中缺失的数据流及其起点和终点。
1:数据流名称:支付细节起点:4 终点:E22:数据流名称:生产计划起点:D3 终点:33:数据流名称:库存量起点:7 终点:44:数据流名称:原材料数量起点:4 终点:D25:数据流名称:交付起点:D1 终点:5试题:2阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
全国2018年7月自学考试计算机基础与程序设计试题课程代码:02275一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.一个字节也称为一个()A.bitB.ByteC.KBD.word2.计算机对下列几种存储器中,访问速度最快的是()A.内存储器B.CD-ROMC.软盘D.硬盘3.存储容量1GB等于()A.23字节B.210字节C.220字节D.230字节4.下面数据中最小数是()A.(1100101)2B.(146)8C.(100)10D.(65)165.在Turbo C2.0中,欲编辑一个新程序,在主菜单File项中可选择()A.NewB.LoadC.SaveD.Quit6.下面各项中,属于C语言合法实型常量的是()A.5E-30B.3E2.7C.πD.E257.设有int a=3,b=-4,c=8;表达式(a>b)? a:b| |c<0的值是()A.-4B.0C.1D.38.以八进制形式输出整数的格式说明符是()A.%oB.%dC.%xD.%u9.下面程序的输出结果是()main ( ){int x=5,y;if(x>0) y=1;if(x= =0) y=0;y=-1;printf(〃%d\n〃,y);}A.-5B.-1C.0D.110.下面程序段的输出结果是()for(i=1;i<3;i+ +)for(j=1;j<=i;j+ +)printf(〃%d,i+j);A.2 3 3 4B.2 3 4C.2 3D.23 4 3 411.若有定义static char str1[10],str2[ ]=〃China〃;欲将str2中的字符串拷贝到str1中去,下面正确的语句是()A.strcpy(str2,str1);B.strcpy(&str1,&str2);C.strcpy(〃China〃,str1);D.strcpy(str1;str2);12.变量的作用域主要来用决定()A.变量的存储长度B.变量的可引用范围C.变量的生存期D.变量的取值范围13.若有定义int a[10],* p=a;则p+5表示()A.元素a[5]的地址B.元素a[5]的值C.元素a[6]的地址D.元素a[6]的值14.对于下面的程序段,for循环输出“*”号的个数是()char * s=〃\ ta \ 018bc〃;for(;*s!='\ 0';s+ +)printf(〃*〃);A.2B.5C.6D.915.下面关于结构体类型的定义正确的是()A.struct humanB.struct human{ {char name[20] char name[20];int weight int weight;int sex int sex;}; };C.struct humanD.human{ {char name[20], char name[20],int weight; int weight;int sex, int sex,}; };16.下面各个位运算符的优先级从左到右依次升高的是()A.~ > > & ^B.^ & > > ~C.~ | & < <D.< < | ^ ~17.下面程序的运行结果是()#include 〃stdio.h〃void main(void){unsigned x=8,y=2;printf(〃%d \ n〃,y& ~ (x&y));}A.-1B.1C.2D.0xff18.设有说明:int u=1,v=3,w=5;表达式:v&u|w的值是()A.1B.3C.5D.819.若有宏定义:#define p(x) (x) * (x)+1和说明语句int a=2;则表达式p(a+1)的值是()A.5B.6C.9D.1020.在语句fputs(str,fp);中,关于str,fp和fputs说法正确的是()A.str是字符指针,fputs表示从文件中读B.fp是字符指针,fputs表示从文件中读C.str是文件指针,fputs表示向文件中写D.fp是文件指针,fputs表示向文件中写二、多项选择题(本大题共5小题,每小题2分,共10分)在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。
全国计算机技术与软件专业技术资格(水平)考试2014年下半年程序员上午试卷(考试时间 9 : 00~11 : 30 共 150 分钟)1. 在答题卡的指定位置上正确写入你的姓名和准考证号,并用正规 2B 铅笔在你写入的准考证号下填涂准考证号。
2. 本试卷的试题中共有 75 个空格,需要全部解答,每个空格 1 分,满分75 分。
3. 每个空格对应一个序号,有 A、B、C、D 四个选项,请选择一个最恰当的选项作为解答,在答题卡相应序号下填涂该选项。
4. 解答前务必阅读例题和答题卡上的例题填涂样式及填涂注意事项。
解答时用正规 2B 铅笔正确填涂选项,如需修改,请用橡皮擦干净,否则会导致不能正确评分。
例题● 2014 年下半年全国计算机技术与软件专业技术资格(水平)考试日期是(88)月(89)日。
(88)A. 9 B. 10 C. 11 D. 12(89)A. 4 B. 5 C. 6 D. 7 因为考试日期是“11 月 4 日”,故(88)选 C,(89)选 A,应在答题卡序号 88 下对 C 填涂,在序号 89 下对 A 填涂(参看答题卡)。
在Word 编辑状态下,若要显示或隐藏编辑标记,则单击(1)按钮;若将光标移至表格外右侧的行尾处,按下Enter键,则(2)。
(1)A. B. C. D.(2)A.光标移动到上一行,表格行数不变 B.光标移动到下一行,表格行数不变C.在光标的上方插入一行,表格行数改变D.在光标的下方插入一行,表格行数改变在Excel中,若在A1单元格中输入=SUM(MAX(15,8),MIN(8,3)),按Enter 键后,则A1单元格显示的内容为(3);若在A2单元格中输入“=3=6”(输入不包含引号),则A2单元格显示的内容为(4).(3)A.23 B.16 C.18 D.11(4)A.=3=6 B.=36 C.TRUE D.FALSE用户的电子邮箱是在(5)的一块专用的存储区。
全国计算机技术与软件专业技术资格(水平)考试2014年下半年程序员上午试卷(考试时间 9 : 00~11 : 30 共 150 分钟)1. 在答题卡的指定位置上正确写入你的姓名和准考证号,并用正规 2B 铅笔在你写入的准考证号下填涂准考证号。
2. 本试卷的试题中共有 75 个空格,需要全部解答,每个空格 1 分,满分75 分。
3. 每个空格对应一个序号,有 A、B、C、D 四个选项,请选择一个最恰当的选项作为解答,在答题卡相应序号下填涂该选项。
4. 解答前务必阅读例题和答题卡上的例题填涂样式及填涂注意事项。
解答时用正规 2B 铅笔正确填涂选项,如需修改,请用橡皮擦干净,否则会导致不能正确评分。
例题● 2014 年下半年全国计算机技术与软件专业技术资格(水平)考试日期是(88)月(89)日。
(88)A. 9 B. 10 C. 11 D. 12(89)A. 4 B. 5 C. 6 D. 7 因为考试日期是“11 月 4 日”,故(88)选 C,(89)选 A,应在答题卡序号 88 下对 C 填涂,在序号 89 下对 A 填涂(参看答题卡)。
在Word 编辑状态下,若要显示或隐藏编辑标记,则单击(1)按钮;若将光标移至表格外右侧的行尾处,按下Enter键,则(2)。
(1)A. B. C. D.(2)A.光标移动到上一行,表格行数不变 B.光标移动到下一行,表格行数不变C.在光标的上方插入一行,表格行数改变D.在光标的下方插入一行,表格行数改变在Excel中,若在A1单元格中输入=SUM(MAX(15,8),MIN(8,3)),按Enter 键后,则A1单元格显示的内容为(3);若在A2单元格中输入“=3=6”(输入不包含引号),则A2单元格显示的内容为(4).(3)A.23 B.16 C.18 D.11(4)A.=3=6 B.=36 C.TRUE D.FALSE用户的电子邮箱是在(5)的一块专用的存储区。
2014 年上半年软件设计师考试真题(上午)在 CPU 中,常用来为 ALU 执行算术逻辑运算提供数据并暂存运算结果的寄存器是 (1) 。
(1)A.程序计数器B.状态寄存器C.通用寄存器D.累加寄存器某机器字长为 n,最高位是符号位,其定点整数的最大值为 (2) 。
(2)A.2n-1B.2n-1-1C.2nD.2n-1海明码利用奇偶性检错和纠错,通过在 n 个数据位之间插入 k 个检验位,扩大数据编码的码距。
若 n=48,则 k 应为 (3) 。
(3)A.4 B.5 C.6 D.7通常可以将计算机系统中执行一条指令的过程分为取指令,分析和执行指令 3 步。
若取指令时间为4△t,分析时间为2△t。
执行时间为3△t,按顺序方式从头到尾执行完 600 条指令所需时间为(4) △t;若按照执行第 i 条,分析第 i+1 条,读取第 i+2 条重叠的流水线方式执行指令,则从头到尾执行完 600 条指令所需时间为(5) △t。
(4)A.2400 B.3000 C.3600 D.5400(5)A.2400 B.2405 C.3000 D.3009若用256K×8bit 的存储器芯片,构成地址 40000000H 到 400FFFFFH 且按字节编址的内存区域,则需 (6) 片芯片。
(6)A.4 B.8 C.16 D.32以下关于木马程序的叙述中,正确的是 (7) 。
(7)A.木马程序主要通过移动磁盘传播B.木马程序的客户端运行在攻击者的机器上C.木马程序的目的是使计算机或网络无法提供正常的服务D.Sniffer是典型的木马程序防火墙的工作层次是决定防火墙效率及安全的主要因素,以下叙述中,正确的是 (8) 。
(8)A.防火墙工作层次越低,工作效率越高,安全性越高B.防火墙工作层次越低,工作效率越低,安全性越低C.防火墙工作层次越高,工作效率越高,安全性越低D.防火墙工作层次越高,工作效率越低,安全性越高以下关于包过滤防火墙和代理服务防火墙的叙述中,正确的是 (9) 。
2014年7月高等教育自学考试Visual Basic 程序设计试题(课程代码 07759)一、单项选择题(本大题共16小题,每小题1分,共16分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下列能从字符串“Microsoft”中直接取出子字符串“Micro”的函数是()A. MidB. LeftC. InstrD. String2.下列不合法的Visual Basic变量名是()A. c_bB. andifC. cb6D. _xyz3.如果将布尔常量值True赋值给一个整型变量,则整型变量的值为()A. FalseB. TrueC. -1D.14.在窗体上有一个名称为Text1的文本框,影响Text1的输入最大字符数量的属性是()A. VisibleB. TabStopC. MaxLengthD. SelLength5.InputBox函数的返回值类型是()A.字符串型B.变体型C.数值型D.数值或字符串型(视输入的数据而定)6.设a=8,b=6,则执行x=IIf(b\a*a=10,0.-1)后,x的值为()A.1B.0C.使用错误D.-17.当某个控件获得焦点时,将会触发的事件是()A. SetFocusB. GotFocusC. ReceiveFocusD.无事件触发8.类模块文件的扩展名为()A. .clsB. .frxC. .basD. .vbp9.将CommonDialog通用对话框设置为“另存为”对话框,须选择的方法为()A. ShowOpenB. ShowColorC. ShowSaveD. ShowFont10.对窗体进行操作时,能实现将窗体装入内存和显示的方法是()A. HideB. UnloadC. LoadD. Show11.按照数据的编码方式,文件可以分为()A.程序文件和数据文件B.顺序文件盒随机文件C.ASCII文件盒二进制文件D.磁盘文件和打印文件12.在菜单项的属性中,能使该菜单项失效的属性是()A. EnabledB. CheckedC. VisibleD. Caption13.要想从过程调用后返回一个整数型结果,则下列过程说明正确的是()A. Sub f1(Byval x As Single)As IntegerB. Function f2(Byval x As Integer)As SingleC. Sub f3(x As Integer) As SingleD. Function f4(x As Integer) As Integer14.语句Dim Arr(-4 To 3)定义的数组Arr的元素个数是()A.7B.8C.9D.1015.为将多个语句放在同一行中书写,下列合法的语句行为()A. x=1:y=5:z=10B. x=1. y=5. z=10C. x=1, y=5, z=10D. x=1;y=5;z=1016.在窗体Form1上显示字符"Hello"的正确语句是()A. Form1.Display"Hello"B. Form1.Print"Hello"C. Form1.Output"Hello"D. Form1.Write"Hello"二、判断改错题(本大题共10小题,每小题2分,共20分)判断下列每小题的正误。
正确的在题后括号内打“√”;错误的打“×”,并改正划线部分。
17.若用户在键盘上按下一个键,则会产生一个Click事件。
()18.在Visual Basic中,&H36是十六进制的数值常数。
()19.在随机文件中,每个记录的长度和记录中的每个字段的长度都是固定的。
()20.单选钮控件和复选框控件都具有Value属性,在这两个控件中,这个属性的取值范围相同。
()21.在Visual Basic中,参数通过两种方式传送,即传地址和传值。
()22.用户可以通过在组合框中键入文本或选择列表中的项目来进行选择。
()23.当定时器控件的Interval属性值设置为0时,会连续触发Timer事件。
()24.可用Private在标准模块中定义全局变量或数组。
()25.在Visual Basic中允许把几个语句放在一行中,各条语句之间用冒号隔开。
()26.设计菜单中每一个菜单项分别是一个控件,每个控件都有自己的Name属性。
()三、简答题(本大题共2小题,每小题8分,共16分)27.VB的面向对象与一般面向对象程序设计有何不同?28.VB中的鼠标事件MouseDown和MouseUp、MouseMove事件有什么异同?四、解读程序题(本大题共2小题,每小题6分,共12分)解读程序,根据题目对程序的说明,在程序中空格处填写正确代码。
填错、未填均无分。
29.在窗体上绘制一个名称为Command1的命令按钮,然后编程实现如下功能:通过调用过程Change,调换数组m中元素的存放位置,即m(1)与m(10)的值互换,m(2)与m(9)的值互换,以此类推,直至全部元素互换完毕。
Private Sub Command1_Click( )Dim m(1 To 10)As IntegerDim i As IntegerFor i=1 To 10m(i)=i*2Next iCall Change_____________For i=1 To 10Print m(i)Next iEnd SubSub Change (n( )As Integer)Dim i ,j ,k ,t As Integerk=UBound(n)For i=1 To k/2_________________t=n(i)n(i)=n(j)_________________Next iEnd Sub30.设计一个计时程序。
该程序用户界面如题30图所示,由两个文本框显示时间:秒(Text1)和十分之一秒(Text2);两个按钮进行操作:开始计时按钮(Begin)、停止计时按钮(Stop)。
另还有计时器控件Timer1。
程序运行后,单击开始计时按钮,则开始计时,文本框中显示秒数;单击停止计时按钮,则计时停止;单击窗口则退出程序的执行。
Dim s As IntegerPrivate Sub Form_Load( )Timer1.Enabled=FalseText1.Text=0Text2.Text=0End SubPrivate Sub Form_Click( )___________________End SubPrivate Sub Timer1_Timer( )s=s+1Text1.Text=CStr(s\10)Text2.Text=_______________End SubPrivate Sub Begin_Click( )s=0Timer1.Interval=100Timer1______________End SubPrivate Sub Stop_Click( )Timer1.Enabled=FalseEnd Sub五、程序阅读题(本大题共4小题,每小题4分,共16分)阅读程序,在题后的空格处填写程序运行的结果。
填错、未填均无分。
31.在窗体上有一个命令按钮(Command1),编写如下程序,当运行程序后,单击命令按钮,窗体上显示的值是____________。
Private Sub Command1_Click()Dim x As Integer, y As Integerx=-2If Sgn(x) Theny= Sgn(x^2)Elsey= Sgn(x)End IfPrint yEnd Sub32.在窗体上有一个文本框(Text1),编写如下程序,当运行程序后,单击命令按钮,文本框中显示的值是____________。
Private Sub Form_Load( )Dim i As Integer, sum As IntegerText1.Text=""For i=1 To 7sum=sum + iNext iText1.Text=sumEnd Sub33.在窗体上有一个命令按钮(Command1)和一个文本框(Text1),编写如下程序,当运行程序后,单击命令按钮,文本框中显示的值是____________。
Private Sub Command1_Click()Dim St(8,8) As IntegerDim i ,j As IntegerFor i=1 To 4For j=2 To 4St(i ,j)=i+2*jNext jNext iText1.Text= St(2 ,4)+ St(4 ,4)End Sub34.下列程序执行时,外层循环语句的循环次数是_____________。
Private Sub sun( )Dim iSum, i, j As Integeri=1:j=1DoDoiSum= iSum+1j=j+3Print j;Loop Until j>8i=i+2Loop Until i>6Print iSum End Sub六、编程题(本大题共2小题,每小题10分,共20分)编写程序实现题目所给要求。
35.编写程序,用近似公式:.121)1( (71513114)1--++-+-≈-n n π求π的近似值,直到最后一项的绝对值小于410-为止。
36.编写一个计算表达式)!(!!n m n m -值的程序(m>=n>=0),要求:用输入对话框输入m 和n 的值,编写函数Function Multiply(x as Integer)求x!的值,调用Multiply 计算表达式。
2014年7月高等教育自学考试Visual Basic 程序设计试题答案及评分参考(课程代码 07759)一、单项选择题(本大题共16小题,每小题1分,共16分)1——5:BDCCA 6——10:DBACD 11——16:CADBAB三、简答题(本大题共2小题,每小题8分,共16分)【评分参考】(1)要点回答准确完整,可以得满分。
(2)回答要点所用词语、句式、前后顺序与参考答案不同,只要意思正确,就应给分。
(3)要点回答不完整,也应酌情给分。
27.(1)Visual Basic中的对象与面向对象程序设计中的对象在概念上是一样的,但在使用上有很大区别。
(3分)(2)在面向对象程序设计中,对象由程序员自己设计,而在Visual Basic中,有系统设计好的预定义对象和用户定义的对象。
(3分)(3)在面向对象程序设计中,操作对象的时候需要复杂的编程,在Visual Basic中,因为封装了很多预定义的操作,因此对对象的操作更简单。
(2分)28.(1)三个鼠标事件的相同点是它们都在控件区域对鼠标的操作而触发的事件,(2分)都能传递当前操作的鼠标按钮、鼠标所在位置、键盘辅助键的状态值等参数。