![](https://lstatic.shangxueba.com/sxbzda/h5/images/m_q_title.png)
()需要使用一个专用的程序,对输入的源程序进行解释执行。
A.变异测试
B.符号测试
C.循环测试
D.边界值测试
![](https://lstatic.shangxueba.com/sxbzda/h5/images/tips_org.png)
A.变异测试
B.符号测试
C.循环测试
D.边界值测试
第1题
A.在编程中,人们最早使用机器语言,计算机能直接识别与执行
B.汇编语言是助记符代替二进制代码的符号化机器语言,计算机能直接识别与执行
C.解释程序是把源程序输入一句、翻译一句,、执行一句,并不形成整个目标程序
D.编译程序则是把输入的整个源程序进行全部翻译转换,产生出机器语言的目标程序,然后让计算机执行从而得到计算结果
第2题
【程序】
CLEAR
USE 银行客户关系表 EXCLUSIVE
BROWSE LAST
WATT “请输入你的选择:(1—3)”TO yhdm
DO CASE
CASE (1)
DELETE ALL FOR 银行代码=“001”
BROWSE ALL FOR 银行代码=“001”
RECALL
CASE (2)
DELETE ALL FOR 银行代码=“002”
BROWSE ALL FOR 银行代码=“002”
RECALL
CASE (3)
DELETE ALL FOR 银行代码=“003”
BROWSE ALL FOR 银行代码=“003”
RECALL
ENDCASE
BROWSE
USE
(1)
A.yhdm="1"
B.yhdm="2"
C.yhdm="3"
D.OTHERWISE
第3题
将一个正整数分解质因数。 算法分析提示:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2) 如果n不等于最小的质数k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 C的源程序如下: /*题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。*/ #include "stdio.h" int main() { int n,i; printf("\nplease input a number:\n"); scanf("%d",&n); printf("%d=",n); for(i=2; 【1】 ;i++) { while( 【2】 ) { if(n%i==0) { printf("%d*",i); n=n/i; } else 【3】; } } printf("%d",n); } 请按照表格1中“期待的输出”要求,将程序空缺的【1】、【2】、【3】语句补充完整,并调试运行,针对每一组输入,将对应的输出填写在答题框中,注意标记小组成员姓名。 表格1 输入 期待的输出 说明 90 90=2*3*3*5 按照格式输出 123 1234 200 2 0
第4题
汇编语言程序设计 下面程序的功能为:从键盘输入一个数据(0~9),如果是ESC键则结束程序执行,如果键值大于39H,则说明不在0~9之间,重新输入数据,否则,调用2号功能,按照输入的数据响铃,数据为响铃的次数。例如输入5,则响铃5次。 DATA SEGMENT ;空数据段 DATA ENDS STACK SEGMENT ‘stack’ ;堆栈段 STA Dw 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA ;段寄存器和堆栈指针初始化 MOV DS,AX ;等待输入一位数字,数字就是响铃的次数 KKK: ;调用1号功能,从键盘输入响铃的次数 ;是ESC(1B)键吗? ;是ESC键则转结束 ;键值是39H吗? JA TTT ;大于39H,则非数字1-9,转TTT ;从ASCII中提取数值 ;清零AH,AX中含有响铃的次数 ;将响铃的次数送BP GGG: MOV AH,02H ;调用2号功能,07H为铃声的ASCII码 MOV DL,07H INT 21H ;响铃1次 MOV CX,10H ;延时,CX为延时时间常数 UUU: LOOP UUU ;延时一段时间 DEC BP ;响铃次数减1 JNZ GGG ;不为0则转GGG TTT: JMP KKK EXIT: MOV AX,4C00H INT 21H ;返回DOS CODE ENDS END START
第5题
(1) 在 C 语言中,每个语句必须以 结束。 A回车符 B冒号 C 逗号 D 分号 (2) C语言程序的基本单位为_______。 A 程序行 B 语句 C 函数 D 字符 (3) 用C语言编写的代码程序______。 A可立即执行 B是一个源程序 C经过编译即可执行 D经过编译解释才能执行 (4) 以下叙述中正确的是______。 A用C程序实现的算法必须要有输入和输出操作 B用C程序实现的算法可以没有输出但必须要输入 C用C程序实现的算法可以没有输入但必须要有输出 D用C程序实现的算法可以既没有输入也没有输出 (5) 结构化程序由三种基本结构组成,三种基本结构组成的算法____。 A可以完成任何复杂的任务 B只能完成部分复杂的任务 C只能完成符合结构化的任务 D只能完成一些简单的任务 (6) 在一个C程序中______。 A main函数必须出现在所有函数之前 B main函数可以在任何地方出现 C main函数必须出现在所有函数之后 D main函数必须出现在固定位置 (7) 下列关于C语言的叙述错误的是______。 A 大写字母和小写字母的意义相同 B 不同类型的变量可以出现在同一个表达式中 C 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D 同一个运算符号在不同的场合可以有不同的含义 (8) 以下叙述中错误的是_______。 AC程序中的#include和#define行均不是C语句 B除逗号运算符外,赋值运算符的优先级最低 CC程序中,j++;是赋值语句 DC程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
第6题
A、shell命令行解释器根据输入的命令行信息获得程序名及参数和环境变量
B、shell命令行解释器可以通过调用execve()函数来启动加载器进行程序加载
C、调用execve()函数前shell命令行解释器先调用fork()函数创建一个子进程
D、加载器会把可执行目标文件从磁盘读到内存中,然后从第一条指令开始执行
第7题
(1)用图画出这两道程序并发执行时的工作情况。
(2)说明在两道程序运行时,CPU有无空闲等待?若有,在哪段时间等待?为什么会空闲等待?
(3)程序A、B运行时有无等待现象?在什么时候发生等待现象?
第8题
作业题1 要求用户输入一个1-100之间的整数。在屏幕上输出1-1000中所有可以被这个输入数字整除的整数,并把它们写入文本文件中。 1.基本要求: (1) 接收用户输入,并判断是否为1-100之间的整数。如果输入符合要求,则继续执行第(2)步,否则结束程序。 (2) 根据用户输入,在屏幕上输出1-1000中,所有可以被这个数字整除的数字,并打印序号。序号从1开始,依次加1. 例如,用户输入20,的情况: 请输入一个1-100之间的整数:20 1 20 2 40 3 60 4 80 5 100 ...... 46 920 47 940 48 960 49 980 50 1000 (3)将第(2)步的输出结果,写入C盘根目录下的文本文件中,文件名为“x的倍数.txt”,例如,输入20,则文件名为:“20的倍数.txt”。 (4) 添加必要的注释,说明程序设计思路。 2.提高要求: (1) 如果输入不符合要求,则要求用户重新输入,并给出提示信息。具体要求参见第4讲单元作业1。 (2) 将基本要求中的(1)和(2),通过函数实现。 (3) 在程序中需要的地方,捕捉异常,或使用with语句管理资源。 说明:提交一份程序代码即可。根据实现功能综合得分。 满足基本要求最高14分,满足提高要求最高20分。
第9题
[说明]
某旅游服务应用程序运行时,根据输入的两个城市名查找其问的距离。各城市问的距离如表4-1所示。表格中的第一行和第一列表示城市名,表中的每个元素是一个整数,代表该元素所在行和列对应的城市之间的距离(单位:km)。
表4-1
在程序中,城市名用一维全局数组cityTable存储,城市之间的距离矩阵用二维全局数组kmTable表示,并用相应的值对这两个数组进行初始化。
define NCities 8 /*城市个数*/
define TRUE 1
static char * cityTable[NCities]={ /*城市名按字典序升序排列*/
"Beijing",
…… /*其他城市名略去*/
"Sanya",
};
StatiC int kmTable[NCities][NCities]={
{0, 1697, 2695, 937, 1784, 1356, 926, 2543},
{1697, 0, 313, 1840, 533, 940, 1409,1505},
…… /*剩余元素的初始值略去*/
};
程序执行时,首先按提示输入两个城市名,然后在cityTable中查找与城市名对应的下标,最后用该下标在kmTable中找到这两个城市之间的距离。
程序中定义的函数FindCitylnSortedArray和GetCity说明如下:
(1)函数FindCitylnSortedArray的功能是用二分查找法在全局数组cityTable中查找城市名所对应的下标值。
(2)函数GetCity的功能是读入城市名,调用函数FindCityInSortedArray来获取城市所对应的下标值。如果该城市名不存在,则提示用户重新输入。
[C程序]
int main() {
int city1,city2;
city1=GetCity("输入第1个城市名:");
city2=GetCity("输入第2个城市名:");
printf("%S和%s之间的距离为:%d km.\n”,cityTable[city1],
cityTable[city2],
kmTable[cityl][city2]);
return 0;
}
StatiC int GetCity(char * prompt) {
char * CityName;
int index;
cityName=(char *)malloc(20*sizeof(char));
while(TRUE){
printf("%S",prompt);
gets(cityName); /*获取输入字符串*/
index=FindCityInSortedArray(cityName);
if( (1) ________ )break;
printf("城市名不存在,请重新输入。\n");
}
free(cityName);
return (2)__________;
}
Static int FindCityInSortedArray(char * key) {
int lh, rh, mid, cmp;
lh=0;
rh=NCities-1;
while( (3)________){
mid=(1h+rh)/2;
cmp=strcmp( (4)______ ); /*比较两个城市名是否相同*/
if(cmp==0)return (5)_______; /*两个城市名相同*/
if(cmp<0){rh=mid-1;)
else {lh=mid+1;)
}
return (-1); /*城市名不存在时返回-1 */
}
第10题
需要有8个数字量输入,用于采集设备的状态信息;且需要8个数字量输出,用于控制设备动作。
具备一个RS-232接口,可以和上位机连接,接收上位机发送的命令及参数。
需要提供一个基准定时信号,定时时间间隔为0.01秒。
需要彩色LCD显示器,用于显示状态信息等。
根据上述功能要求的描述,若采用S3C2410芯片为核心来构建该机械设备控制器的硬件平台,请完善下面的叙述和C语言程序(需要使用的控制寄存器的格式见题后说明)。
(1)若硬件设计时采用GPIO端口E的GPE0~GPE7引脚作为8个数字量输出,那么软件设计时其初始化语句是:rGPECON=(rGPECON|0x00005555)&___【1】____。若软件设计时需要通过GPE5引脚输出“1”来驱动执行机构动作,那么语句是:rGPEDAT= rGPEDAT | ___【2】____。(注:rGPECON是端口E的控制寄存器所对应的变量,rGPEDAT是端口E的数据寄存器所对应的变量)
(2)硬件设计时,选用UART0来完成RS-232接口电路设计。在软件设计时,其初始化程序中波特率设置为9600bps,数据格式设置为:8位数据位、奇校验、1位停止位。请补充完善下面的UART0初始化函数(注:主频参数为PCLK):
voidUART0_Init()
{
rGPHCON=(rGPHCON&0xFFFFFF00)|___【3】____; //端口H相应引脚功能初始化
rUFCON0=0x0; //FIFO不使能
rUMCON0=0x0;
rULCON0=___【4】____; //设置线路控制寄存器
rUCON0=0x145; //设置控制寄存器
rUBRDIV0=((int)(PCLK/___【5】____) 1); //设置波特率,小数采用四舍五入
}
(3)按照上面UART0初始化函数所设置的通信速率,每秒钟最多能传输___【6】____个字节的信息。若上位机有大小为4KB的初始参数需要下载到控制器中,那么,约需传输____【7】___秒才能完成下载(1K=1024,精确到小数点后面1位数字)。
(4)系统中所需要的0.01秒基准定时时间选用S3C2410芯片内部的Timer0部件来产生。若系统的主频参数PCLK为264MHz,分频器值选择为16,预分频系数选择为3,那么,Timer0的计数常数为___【8】____。软件设计时,设计了如下的Timer0初始化函数,请补充完善。(注:下面程序中⑨、⑩、⑿用8位十六进制数表示,⑾用4位十六进制数表示)
voidTimer0Int(void)
{
//设置定时器配置寄存器0(TCFG0)
rTCFG0=___【9】____; //Timer0预分频系数选择为3,该寄存器中其它无关位均为0
//设置定时器配置寄存器1(TCFG1)
rTCFG1=___【10】___; // Timer0分频器值为16,该寄存器中其它无关位均为0
//设置计数常数
rTCNTB0=___【11】____; //设置控制寄存器TCON
rTCON=___【12】____;//更新TCNTB0和TCMPB0,该寄存器中其它无关位均为0
rTCON=0x00000009;//设置Timer0自动装载,并启动
}
(5)彩色LCD显示屏的硬件接口电路由S3C2410的专用GPIO端口__【13】_____和端口___【14】____相关引脚配以驱动电路来设计。软件设计时,需要通过设置它们控制寄存器的值分别为___【15】____和____【16】___来确定它们的引脚功能。
(6)系统的软件可以设计为在无操作系统的环境下运行。设计者自行设计系统的启动引导程序,在该程序中完成异常向量设置、堆栈指针设置以及必要的硬件初始化。ARM9体系结构中规定的IRQ异常所对应的异常向量地址为___【17】____。Timer0部件所产生的0.01秒基准时间到时将引起IRQ异常。由于IRQ异常向量地址与下一个异常向量地址之间间隔为___【18】____个字节,因此,通常在IRQ异常向量地址处设计一条转移指令。堆栈指针的设置需按工作模式来进行。设置IRQ模式下的堆栈指针,需在R0“清0”后用指令ORRR1,R0,0x12|___【19】____和MSRCPSR_CXSF,R1来使CPU核进入IRQ模式,然后再给SP寄存器赋值作为该模式下的堆栈指针。这些初始化工作完成后,即可通过指令___【20】____来引导应用程序的主函数main()。
说明:下面是试题解答时需要用到的寄存器格式及相关说明。
1)端口C的控制寄存器(GPCCON)
引脚GPCCON的位描述
GPC15[31:30]00=输入,01=输出,10=VD7,11=保留
GPC14[29:28]00=输入,01=输出,10= VD6,11=保留
GPC13[27:26]00=输入,01=输出,10= VD5,11=保留
GPC12[25:24]00=输入,01=输出,10= VD4,11=保留
GPC11[23:22]00=输入,01=输出,10= VD3,11=保留
GPC10[21:20]00=输入,01=输出,10= VD2,11=保留
GPC9[19:18]00=输入,01=输出,10= VD1,11=保留
GPC8[17:16]00=输入,01=输出,10= VD0,11=保留
GPC7[15:14]00=输入,01=输出,10=LCDVF2,11=保留
GPC6[13:12]00=输入,01=输出,10= LCDVF1,11=保留
GPC5[11:10]00=输入,01=输出,10=LCDVF0,11=保留
GPC4[9:8]00=输入,01=输出,10=VM,11=IIS数据输出
GPC3[7:6]00=输入,01=输出,10=VFRAME,11= IIS数据输入
GPC2[5:4]00=输入,01=输出,10=VLINE,11=保留
GPC1[3:2]00=输入,01=输出,10=VCLK,11=保留
GPC0[1:0]00=输入,01=输出,10=LEND,11=保留
2)端口D的控制寄存器(GPDCON)
引脚GPDCON的位描述
GPD15[31:30]00=输入,01=输出,10=VD23,11=保留
GPD14[29:28]00=输入,01=输出,10= VD22,11=保留
GPD13[27:26]00=输入,01=输出,10= VD21,11=保留
GPD12[25:24]00=输入,01=输出,10= VD20,11=保留
GPD11[23:22]00=输入,01=输出,10= VD19,11=保留
GPD10[21:20]00=输入,01=输出,10= VD18,11=保留
GPD9[19:18]00=输入,01=输出,10= VD17,11=保留
GPD8[17:16]00=输入,01=输出,10= VD16,11=保留
GPD7[15:14]00=输入,01=输出,10= VD15,11=保留
GPD6[13:12]00=输入,01=输出,10= VD14,11=保留
GPD5[11:10]00=输入,01=输出,10= VD13,11=保留
GPD4[9:8]00=输入,01=输出,10= VD12,11=保留
GPD3[7:6]00=输入,01=输出,10= VD11,11=保留
GPD2[5:4]00=输入,01=输出,10= VD10,11=保留
GPD1[3:2]00=输入,01=输出,10= VD9,11=保留
GPD0[1:0]00=输入,01=输出,10= VD8,11=保留
3)端口E的控制寄存器(GPECON)
引脚GPECON的位描述
GPE15[31:30]00=输入,01=输出,10=IICSDA,11=保留
GPE14[29:28]00=输入,01=输出,10=IICSCL,11=保留
GPE13[27:26]00=输入,01=输出,10=SPICLK0,11=保留
GPE12[25:24]00=输入,01=输出,10=SPIMOSI0,11=保留
GPE11[23:22]00=输入,01=输出,10=SPIMISO0,11=保留
GPE10[21:20]00=输入,01=输出,10=SSDAT3,11=保留
GPE9[19:18]00=输入,01=输出,10=SSDAT2,11=保留
GPE8[17:16]00=输入,01=输出,10=SSDAT1,11=保留
GPE7[15:14]00=输入,01=输出,10=SSDAT0,11=保留
GPE6[13:12]00=输入,01=输出,10=SDCMD,11=保留
GPE5[11:10]00=输入,01=输出,10=SDLCK,11=保留
GPE4[9:8]00=输入,01=输出,10=IISSDO,11=IIS数据输出
GPE3[7:6]00=输入,01=输出,10=IISSI,11= IIS数据输入
GPE2[5:4]00=输入,01=输出,10=CDCLK,11=保留
GPE1[3:2]00=输入,01=输出,10=IISCLK,11=保留
GPE0[1:0]00=输入,01=输出,10=IISLRCK,11=保留
4)端口H的控制寄存器(GPHCON)
引脚GPHCON的位描述
GPH10[21:20]00=输入,01=输出,10=CLKOUT1,11=保留
GPH9[19:18]00=输入,01=输出,10= CLKOUT0,11=保留
GPH8[17:16]00=输入,01=输出,10=UEXTCLK,11=保留
GPH7[15:14]00=输入,01=输出,10=RXD2,11=保留
GPH6[13:12]00=输入,01=输出,10=TXD2,11=保留
GPH5[11:10]00=输入,01=输出,10=RXD1,11=保留
GPH4[9:8]00=输入,01=输出,10=TXD1,11=IIS数据输出
GPH3[7:6]00=输入,01=输出,10=RXD0,11= IIS数据输入
GPH2[5:4]00=输入,01=输出,10=TXD0,11=保留
GPH1[3:2]00=输入,01=输出,10=nRTS0,11=保留
GPH0[1:0]00=输入,01=输出,10=nCTS0,11=保留
5)UART线路控制寄存器(ULCONn n可以是0、1、2)
ULCONn的位[7][6][5:3][2][1]描述保留
值为0确定红外模式
0=正常操作模式
1=正常操作模式确定校验类型
0xx=无校验
100=奇校验
101=偶校验确定停止位数
0=1位停止位
1=2位停止位确定数据位
00=5位01=6位
10=7位11=8位6)TCFG0寄存器
TCFG0的位功能描述初始状态值
[31:24]保留0x00[23:16]在此不用0x00
[15:8]确定Timer2,Timer3,Timer4的预分频系数0x00[7:0]确定
Timer0,Timer1的预分频系数0x007)TCFG1寄存器
TCFG1的位功能描述初始状态值[31:24]保留0x00
[23:20]在此不用0b0000
[19:16]确定Timer4的分频器值0000=2 0001=4 0010=8 0011=16
[15:12]确定Timer3的分频器值0000=2 0001=4 0010=8 0011=16
[11:8]确定Timer2的分频器值0000=2 0001=4 0010=8 0011=16
[7:4]确定Timer1的分频器值0000=2 0001=4 0010=8 0011=16
[3:0]确定Timer0的分频器值0000=2 0001=4 0010=8 0011=16
说明:设置TCFG0、TCFG1可以确定预分频器系数、分频器值,如:通过设置TCFG0为0x0000001F,Timer0的预分频器系数选择为31,设置TCFG1为0x00000001,Timer0的分频器值选择为4。通过下面公式计算定时器的计数常数:
定时器输入时钟频率=PCLK/(预分频系数+1)/分频器值
计数常数=定时时间间隔/(1/定时器输入时钟频率)
预分频系数的范围为0~255,分频器值的取值范围为2、4、8、16。
6)TCON寄存器(注:此处不用的位被省略,其值默认为0x0000000)
TCON的位功能描述初始状态值厖0x0000000[3]确定Timer0的自动装载功能
1=自动装载0=一次停止0b0[2]确定Timer0的输出反转位
1=TOUT0反转0=TOUT0不反转0b0[1]确定Timer0的更新
1=更新TCNTB0和TCMPB0 0=不更新0b0[0]确定Timer0的启动/停止
1=启动0=停止0b0
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!