计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
嵌入式系统设计师(中级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
问答题【问题1】 请根据测试要求,简要说明语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖的含义。
进入题库练习
问答题【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4个不同设备驱动程序,但没有用到函数指针变量。 【C语言代码】 /*变量与类型说明*/ #include "stdio.h" #include "stdlib.h" extern int sys_status; extern int Dev_drv1(int arg1, int arg2); extern int Dev_drv2(int arg1, int arg2); extern int Dev_drv3(int arg1, int arg2); extern int Dev_drv4(int arg1, iht arg2); #define NOERROR 0 type struct { int _fd; } TYP_DEV_TAB; TYP DEV_TAB dev_tab[50]= {101,99, 80, 120,}; /*程序代码*/ void manage_device(int devid, int arg1, int arg2) { int place ; int ret; for(place=0 ; place<50 ; place++) if dev_tab [place]. fd == devid) break; if(place>=50) printf(" NO DEVICE fd = %d/n ",devid); switch(dev_tab [place]._fd) { case 80: ret = Dev_drv3(int arg1,int arg2); break; case 99: ret = Dev_drv2(int arg1,int arg2); break; case 101: ret = Dev_drv1(int arg1,int arg2); break; case 120: ret = Dev_drv4(int arg1,int arg2); break; } if (ret!=NOERROR) printf(" DEVICE %d error!/n ", devid); } int Dev_drv1(int arg1,int arg2) { /*局部变量声明,略*/ /*驱动程序代码,略*/ } int Dev_drv2(int arg1,int arg2) { /*局部变量声明,略*/ /*驱动程序代码,略*/ } int Dev_drv3(int arg1,int arg2) { /*局部变量声明,略*/ /*驱动程序代码,略*/ } int Dev_drv4(int arg1,int arg2) { /*局部变量声明,略*/ /*驱动程序代码,略*/
进入题库练习
问答题阅读下列说明,回答问题1至问题3,将答案填入答题纸的对应栏内。【说明】某公司承接了一个数据处理模块的项目,由沈工负责模块的方案设计,沈工的设计方案如图4-1所示。该数据处理模块以PowerPC处理器为核心,设计了存储器、以太网、温度传感器、调试接口等功能电路。处理器外接FLASH存储器用于存储上电初始化程序和应用程序。处理器通过12C接口连接测温电路,监控模块的工作温度。以太网、串口、调试离散量等用于软件调试和状态显示。测温电路选用ADT7461AR芯片,用于测试模块温度。ADT7461AR是一个双通道数字温度计,工作电压3v至5v,具有低/超温报警功能,采用IzC接口实现主机对远程/本地温度数据的采集,采集数据存储在高/低两个数据寄存器中,每个寄存器为16位,高寄存器表示整数值,低寄存器表示小数值。存储模块采用某公司的FLASH存储芯片。支持编程、擦除、复位等操作命令。该FLASH芯片的常用命令序列如表4-1所示。表中的地址和数据皆为16进制数。
进入题库练习
问答题阅读以下关于某嵌入式系统BIT的说明,回答下列问题。[说明]某公司负责研制一个嵌入式计算机系统,如图1所示。该系统以PowerPC处理器为核心,通过AD进行实时数据采集,并将采集来的数据进行预处理后,通过RS422总线发送给后端计算中心。图1某嵌入式系统示意图同时为了提高产品的安全性和可靠性,设计实现了机内自测试(Built_In_Test,BIT)。BIT依靠自身电路和程序完成对计算机平台硬件的功能检查、故障诊断与隔离。
进入题库练习
问答题阅读以下说明,回答下列问题。 [说明] 在某嵌入式处理器上,编写以下两段程序(编译选项中,存储采用4字节对齐方式)。 程序段1: struct student1{ char name[10]; long sno; char sex; float score[4]; } *p1, a1, b1; 程序段2: union student2{ char name[10]; long sno; char sex; float score[4]; } *p2, a2, b2; 汉诺塔问题说明:有n个盘子在A处,盘子从小到大,最上面的盘子最小,程序要把这n个盘子从A处搬到C处,可以在B处暂存,但任何时候都不能出现大的盘子压在小的盘子上面的情况。 下列是一段求解汉诺塔问题的C语言程序。 #include <stdio.h> void move(int n, char a, char c) { static int Step=1; printf("Step %2d: Disk %d %c---> %c/n",Step,n,a,c); Step++; } void Hanoi(int n, char a, char b, char c) { if (n>1) { Hanoi(n-1, a, c, b); move(n, a, c); Hanoi(n-1, b, a, c) ; } else move(n, a, c); } void main() { Hanoi(3,"A", "B", "C"); }
进入题库练习
问答题【说明】 本题由两部分组成,第一部分为计算AX寄存器的值,第二部分为判错题。
进入题库练习
问答题阅读以下关于80X86处理器方面的叙述,请回答问题1至问题3。 [说明] 80X86计算机中的寻址方式包括程序寻址和数据寻址两类。数据寻址方式是指获取指令所需的操作数或操作数地址的方式;程序寻址方式是指程序中出现转移和调用时的程序定位方式。 部分数据寻址方式见下表,其中,为每种数据寻址方式分配一个编号。 数据寻址方式及编号 编号 寻址方式 1 直接寻址 2 寄存器间接寻址 3 基址寻址 4 变址寻址 5 带比例因子的变址寻址 6 基址变址寻址 程序寻址方式见下表,其中,为每种程序寻址方式分配一个编号。 程序寻址方式及编号 编号 寻址方式 1 段内直接寻址方式 2 段内间接寻址方式 3 段间直接寻址方式 4 段间间接寻址方式
进入题库练习
问答题阅读以下关于某嵌入式系统设计方案的叙述。[说明]某公司承接了开发周期为6个月的某机载嵌入式系统软件的研制任务。该机载嵌入式系统硬件由数据处理模块、大容量模块、信号处理模块、FC网络交换模块和电源模块组成,如图所示。数据处理模块和大容量模块的处理器为PowerPC7447,数据处理模块主要对机载数据进行处理,完成数据融合;大容量模块主要存储系统数据,同时也有数据处理的能力;信号处理模块的处理器为专用的数字信号处理器DSP,完成雷达数据处理,并将处理后的数据发送给数据处理模块;FC网络交换模块为已开发的模块,本次不需要开发软件,主要负责系统的数据交换;电源模块主要负责给其他模块供电,电源模块上没有软件。PowerPC7447和DSP是32位处理器,内存按字节编址。PowerPC7447以大端方式(big_endian)存储数据,DSP以小端方式(littleendian)存储数据。
进入题库练习
问答题【说明】 在某嵌入式安全监测系统中,对某任务的加工操作需通过数据采集(Collect_task)、计算(Calculate_task)这两个不同的程序段来完成,并且执行程序段Collect_task和Calculate _task的顺序及次数有如下约定: Collect_task(2次)→Calculate_task(1次)→Collect_task(5次)→Calculate_task(4次)→Collect_task(2次)→Calculate_task(2次) 表 所示为x86系统部分指令及寄存器说明。 表 x86系统部分指令及寄存器说明表 指令 功能 寄存器 功能 MOV 传送字或字节 段寄存器 CS 代码段寄存器 LEA 地址传送 DS 数据段寄存器 ADD 加法指令 SS 堆栈段寄存器 SUB 减法指令 ES 附加段寄存器 PUSH 进栈操作 AX 累加器 POP 出栈操作 数据寄存器 BX 基址寄存器 SAL 算术左移 CX 计数寄存器 CALL 子程序调用 DX 数据寄存器 DEC 减1指令 专用寄存器 BP 基数指针寄存器 JMP 无条件转移指令 SP 堆栈指针寄存器 JZ/JNZ 结果为0/不为0时转移 SI 源变址寄存器 JL/JG 结果小于/大于转移 DI 目的变址寄存器 JC/JNC 有进(借)位/无进(借)位时转移 INT 软中断 RET 返回主程序 IRET 从中断服务程序返回 采用逻辑尺控制法实现以上要求的汇编程序如下: 【汇编程序代码】 N EQU 1 RULE EQU 2 CODE SEGMENT ASSUME CS:CODE START: MOV AX,RULE MOV CL,N LOP: SAL AX,1 JC 3 Collect: CALL Collect_task ;执行Collect_task程序段 JMP 4 Calculate:CALL Calculate_task ;执行Calculate_task程序段 NEXT: 5 JNZ 6 MOV AH,4CH ;功能号送入AH寄存器 INT 7 ;结束程序运行,中断返回 8 END START
进入题库练习
问答题【问题3】 在软件单元测试中,主要测试对象是软件模块,如果被测程序中有多处调用了其他过程代码,测试中应如何处理这些功能的引用?软件的性能测试在测试工作的哪个阶段进行?
进入题库练习
问答题[说明] 在计算机控制中,有些数据补偿、计算及转换等参数的计算非常复杂,编程难,程序长且运算费时,但是用数表却比较容易实现。 设有256个字节的数据,已按从小到大的顺序存放在以BINTAB为首地址的数据区单元中,现要求查找其中值为126的数据,用对分查表法查询的汇编程序如下: [汇编程序代码] DATA SEGMENT BINTAB DBl8,25,32,46,56,78,… ;第1~100个数据 DB 90,95,99,100,106,126,… ;第101~200个数据 DB 189,195,197,202,206,216,… ;第201~256个数据 COUNT EQU 256 FLAG DW ? KEY EQU 1 DATA ENDS STAK SEGMENT STPN DB 20 DUP(?) STAK ENDS CODE SEGMENT ASSUME CS,CODE, DS,DATA, ES:DATA, SS:STAK BINSEAT PROC FAR START, MOV AX, DATA MOV DS, AX MOV ES, AX LEA SI, BINTAB MOV CX, COUNT MOV DX, 1 MOV AX, SI ADD AX, CX MOV DI, AX MOV AL, KEY LOP0, MOV BX, SI ADD BX, DI SHR BX, 1 CMP AL, [BX] JZ FOUND PUSHF 2 JZ NFOUND POPF JL LESS MOV SI, BX JMP NEXT LESS, 3 NEXT, 4 JMP LOP0 NFOUND: MOV AX, DX ;未找到,标志全1送DX FOUND: MOV AX, DX MOV FLAG, AX RET BINSEAT ENDP CODE ENDS 5
进入题库练习
问答题【问题2】 根据本题所示的软件关键级别,回答该软件需要做哪几项覆盖测试?要求的覆盖率指标是多少?如果是一般级软件,应做哪几项覆盖测试?
进入题库练习
问答题阅读以下关于中断的叙述。[说明]在某嵌入式系统中,王工设计的计算机模块如图所示。它要求CPU在执行完当前指令后转而对中断请求进行处理。假定:TDC为查询链中每个设备的延迟时间,Ta、Tb、Tc分别为设备A、B、C的中断服务程序所需的执行时间,TS和TR为保存现场和恢复现场所需的时间。
进入题库练习
问答题[说明]通常计算机按其体系结构分为冯·诺依曼(VonNeumann)结构和哈佛(Harvard)结构。冯·诺依曼结构,也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。复杂系统的不同处理器可采用不同类型体系结构。某嵌入式系统由数据处理模块、信号处理模块和光纤网络交换模块组成,如图所示。其中数据处理模块的主处理器选用PPC7447,内部集成了二级Cache,并有SDAM存储器、FLASH、NvRAM、实时时钟、FC(FabricChannel)通信接口、以太网接口和RS232接口;信号处理模块采用DSPTMS320C6000,并有FC通信接口、RS232接口,用于SPM与外部数据通信;光纤网络交换模块提供FC协议交换能力,主要由控制单元和交换单元两部分组成。本嵌入式系统的数据处理模块主要接收外部命令、控制系统运行、与系统其他模块通信;信号处理模块主要进行图形图像处理,需要较大的运算量和较高的运算速度。
进入题库练习
问答题阅读以下关于C语言及C代码的叙述。 [说明] 在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下三部分程序,其中: [C代码1] 是李工为了在嵌入式平台上开发一段可变参数函数,在X86平台上实现的一个参数个数可变函数实例。 [C代码2] 是王工在编写软件时,自己编写的内存拷贝函数。 [C代码3] 是赵工编写的一段数据处理的程序,其中fun0的含义为从已创建的一个单向链表中查找倒数第index个结点。他的设计思路为:首先创建两个指针ptr1,ptr2,并且都指向链表头,然后ptr1向前走index步,这样ptr1和ptr2之间就间隔index个结点,然后ptr1和ptr2同时向前步进,当ptr1到达最后一个结点时,ptr2就是倒数第index个结点了。ReverseList()为赵工编写的对已有单向链表进行逆序重排的函数。 [C代码1] long sum (int i,…) { int*p,j; long s=0; p= for(j=0;j<i;j++) s+=p[j]; return s; } long Sum=sum(3,1,2,3); [C代码2] static int pent; ……·· void*MyMemcpy(void*dest, const void*src, int n) { char*pDest=(char*)dest; char*pSrc=(char*)src; for(int i=0; i<n; i++) { *(pDest +i)=*(pSrc+i); } return dest; } [C代码3] node *fun(node*head, int index) { node *ptr1,*ptr2; int i=0: ptr1=head; ptr2=head; if( head==NULL || head->next==NULL ) return ptr1; while (i<index) { ______; if (ptrl==NULL) return head; i++; } while (ptr1->next !=NULL) { ptr1=ptr1->next; ______; } return______; } node* ReverseList (node *head) { node *temp1=NULL; node *temp2=NULL; node *temp3=NULL; if ((head->next==NULL) || (head==NULL)) { return head; } temp1=head; temp3=temp1->next; temp1->next=NULL; while (temp3->next !=NULL) { temp2=temp3; temp3=temp3->next; ______; temp1=temp2; } temp3->next=temp1; return______; }
进入题库练习
问答题阅读以下说明和C程序代码,回答问题1至问题3,将答案填入答题纸的对应栏内。【说明】【程序1】是关于条件编译的一段程序示例;【程序2】是一段switch语句应用示例。C语言要求switch之后圆括弧内的“表达式”类型必须是整型或字符型。该程序代码中a与x的对应关系如表5-1所示。【程序3】是冒泡排序算法的实现。假设有N个数据存放在数组aa中,用冒泡排序将这N个数从小到大排序。首先,在aa[0]到aa[N-1]的范围内,依次比较两个相邻元素的值,若aa[j]>aa[j+1],则交换aa[j]与aa[j+1],j的值取0,1,2,…,N一2;经过这样一趟冒泡,就把这N个数中最大的数放到aa[N—1]中。接下来对aa[0]到aa[N一2]中的数再进行一趟冒泡,这样就将该范围内的最大值换到aa[N-2]中。依次进行下去,最多只要进行N-1趟冒泡,就可完成排序。如果在某趟冒泡过程中没有交换相邻的值,则说明排序已完成,可以提前结束处理。【C程序代码l】#include#define_DEF_Xmain(){intx;#ifndef_DEF_Xx=1;#elsex=2;#endifprintf(”x=%d\n”,x);}【C程序代码2】floata;intx;Scanf(”%d”,&a);switch((int)a){case0:case1:case2:if(a>2)X=1;else(1);break;case3:(2);break;case4:(3);break;default:prinf(”aiserror\r\n”);}【C程序代码3】#include#defineN8main(){intI,j,aa[N],temp,swap;clrscr();for(i=0;i(4));for(i=0;i(5);j++){if(aa[j]>aa[j+1]){swap=1;.temp=aa[j];aa[j]=aa[j+1];aa[j+1]=temp;}}if((6))break;}for(i=0;i
进入题库练习
问答题阅读下列说明和程序,回答问题1至问题3,将解答填入对应栏内。 [说明] 在开发某嵌入式系统时,设计人员根据系统要求,分别编写了相关程序,其中: [程序1] 是李工编写的一个数据交换子程序。 [程序2] 是赵工编写的一段利用递归方法判别链表表示的两个数据结构是否相等的程序,若相等则返回值为1,否则返回为0。判别的准则是若两个链表的首指针相等,则相等;否则进行内部元素比较,元素中的itemid表示后面联合体un的有效性,itemid为0时,联合体un里面的data项有效,否则联合体un中的link项有效。 [程序1] #include <stdio.h> swap(int x, int y) { int t; t=x; x=y; y=t; } main() { int a, b; a=3; b=4; swap (a,b); printf("%d, %d/n", a, b); } [程序2] typedef struct Item { int itemid; union { char data; struct Item *link; } un; struct Item *nextItem; } ItemNode; int EqualItem(ItemNode *x, ItemNode *y) { int res; if x==y) return 1; if ( 1 ) { if ( 2 ) { if (x->itemid==0) { res= 3 ; } else { res= 4 } if (res) { return 5 } } } return 0; }
进入题库练习
问答题[说明] 嵌入式C语言编程中常涉及位运算、宏定义的问题,以及大端方式(Big-endian)、小端方式(Little-endian)的访问问题。
进入题库练习
问答题阅读以下关于利用信号量机制解决进程同步与互斥方面的应用实例,回答问题1至问题3。[说明]在多道程序系统中,进程是并发执行的。这些进程间存在着不同的相互制约关系,主要表现为同步和互斥两个方面。信号量机制是解决进程间同步与互斥的有效方法。下面是信号量应用实例。下图所示代码是在μC/OS-II操作系统上运行的一个应用的主函数。该函数创建了任务Task1和Task2,其中Task1实现从键盘读入一个字符的功能,Task2将该字符输出到屏幕,它们使用信号量和一个公共变量buffer来传递该字符。主函数、Task1和Task2中所调用的函数原型说明如下:a.创建一个信号量:OSEVENT*#OSSemCreate(INT16Uvalue);b.创建一个任务:INT8UOSTaskCreate(void(*#task)(void*#pd),void*#pdata,OS_STK*#ptos,INT8Uprio);c.开始执行多任务:voidOSStart(void);d.从键盘读入一个字符:charscanc();e.输出一个字符至屏幕:voidprintc(charch);f.发出一个信号量:INT8UOSSemPost(OSEVENT*#pevent);g.等待一个信号量:voidOSSemPend(OS_EVENT*#pevent,INT16Utimeout,INT8U*#err)
进入题库练习
问答题阅读以下关于某嵌入式处理器和8255的叙述。[说明]图1为使用某嵌入式处理器和8255对打印机进行控制的电路图,其中8255的中断请求PC3接到处理器的中断请求输入端上,打印机的数据口接在8255的PAO~PA7上,打印机的输出电平接在8255的PC6上。为了使用嵌入式处理器对打印机进行控制,在程序设计时,需要将8255的PA口设置为工作方式1:PB口设置在工作方式0,配置为输入;PC口的PCO、PC1、PC2、PC3和PC4定义为输出。为了在打印机输出为低电平时通过8255的PC3产生有效的中断请求信号INTRA,必须使得A口的中断请求使能INTE-1,实际上就是通过C口的按位复位操作将PC6置1,整个程序分为四部分:依次是8255的初始化,嵌入式处理器的中断初始化,嵌入式处理器的主程序和打印字符的中断处理程序。其中8255的端口配置功能如表1所示。嵌入式处理器的中断使能控制字含义如表2所示,该处理器的典型汇编指令如表3所示。表18255的端口配置功能CSA1A0寻址CSAlA0寻址000A口010C口001B口011控制及状态字表2嵌入式处理器的中断使能控制字含义EAXXXXESET1EX1ET0EX0EA:全部中断,0=关中断,1=开中断ES:串口中断,0=关中断,1=开中断ETl:定时器1中断,0=关中断,1=开中断EX1:外部INT1中断,0-关中断,1=开中断ET0:定时器0中断,0-关中断,1=开中断EX0:外部INT0中断,0=关中断,1=开中断表3嵌入式处理器的汇编指令指令分类指令举例含义传送指令MovA,RO寄存器寻址MovB,@RO寄存器间接寻址MovRO,direct直接寻址Mov@RO,#data立即数寻址算术运算指令ADDA,RO一般加法指令ADDCA,RO带进位加法指令逻辑及移位指令CLRA单操作数指令,清0ANLA,#data立即数逻辑与指令ANLA,RO寄存器逻辑与指令ANLA,@RO寄存器间接寻址逻辑与指令控制指令LJMPaddr16AJMPaddr11SJMPrelJMP@A+DPTR无条件转移指令CJNEA,#data,relCJNEA,direct,rel条件转移指令
进入题库练习