SQL语句执行后,需要将结果记录集中的属性值,读到高级语言的变量中,那什么时候建立高级语言变量与属性的绑定,下列说法不正确的是_________。
A.嵌入式SQL语言:在一条一条地读取记录时(Fetch)建立绑定。
B.ODBC:在开始一条一条地读取记录之前用专门的语句建立绑定。
C.JDBC:一条一条记录的,边绑定,边读取相应的属性值。
D.其他选项说法有不正确的。
A.嵌入式SQL语言:在一条一条地读取记录时(Fetch)建立绑定。
B.ODBC:在开始一条一条地读取记录之前用专门的语句建立绑定。
C.JDBC:一条一条记录的,边绑定,边读取相应的属性值。
D.其他选项说法有不正确的。
第1题
A、建立数据库连接à声明一个游标(游标与SQL语句绑定)à打开游标(执行SQL语句)à循环地获取一条一条记录(属性与高级语言变量绑定)à关闭游标à可循环地再打开到关闭游标à断开数据库连接。
B、建立数据库连接à请求分配语句句柄(申请内存空间)à用句柄执行SQL(句柄与SQL语句绑定)à建立高级语言变量与句柄属性的对应à循环地获取一条一条记录à释放语句句柄à断开数据库连接。
C、建立数据库连接à创建语句对象(申请内存空间)à用语句对象执行SQL(语句对象与SQL语句绑定)à返回结果对象à循环地从结果对象获取一条一条记录并提取对象的属性值传给高级语言变量à释放语句对象à断开数据库连接
D、建立数据库连接à声明一个游标(游标与SQL语句绑定并执行)à打开游标(将执行结果从磁盘放入内存缓冲区)à循环地获取一条一条记录à关闭游标à可循环地再声明游标、打开到关闭游标à断开数据库连接。
第2题
A、嵌入式SQL语言。
B、ODBC
C、JDBC
D、其他都不是
第3题
阅读以下说明和 C 语言代码, 回答问题 1 至问题3, 将解答填入答题纸的对应栏内。
【说明】
在实时系统中, 许多控制软件需要将数据封装到一个数据结构中, 以节省存储空间。对于位操作,使用汇编语言实现其访问比较容易,但会增加编程难度,因此现在普遍采用 C 语言实现。使用高级语言编程要特别注意结构的存储格式以及编译器的特性。本题所使用的编译器对变量按声明顺序分配地址。分析图 4-1所示的 C 语言代码,回答以下问题。
【问题 1】 (8 分)
如果处理机按 16 位以大端方式(big_endian)编址,请在图 4-2 所示的存储器图表中填入 myRadarData 数据的存储内容(十六进制表示)。
【问题 2】 (8分)
在图 4-1 所示的程序中,第 22 行的语句执行完成后,下列语句的结果是多少?请将应填入(n)处的内容写在答题纸的对应栏中。
q->X = (1)
q->Y = (2)
q->Z = (3)
q->U = (4)
若再执行一次q++,则下列语句的结果又是多少?请将应填入(n)处的内容写在答题纸的对应栏中。
q->X = (5)
q->Y = (6)
q->Z = (7)
q->U = (8)
【问题 3】 (4 分)
内存空间常划分为代码段(text) 、数据段(data) 、bss 段(bss) 、堆区(heap)和栈区(stack) ,那么图 4-1 中 myRadarData 数组的存储空间应分配在哪个段中?指针变量 p、q 应分配在哪个段中?
第4题
A.编译系统和操作系统
B.I/O总线、设备控制器和设备
C.操作系统和I/O设备硬件
D.编译系统、操作系统软件和I/O总线,设备控制器、设备硬件等
第5题
名称
指令的汇编格式
指令功能
加法指令
ADD Rs,Rd
(Rs)+(Rd)->Rd
算术/逻辑左移
SHL Rd
2*(Rd)->Rd
算术右移
SHR Rd
(Rd)/2->Rd
取数指令
LOAD Rd,mem
(mem)->Rd
存数指令
STORE Rs,mem
Rs->(mem)
该计算机采用 5 段流水方式执行指令,各流水段分别是取指(IF)、译码/读寄存器(ID)、执行/计算有效地 址(EX)、访问存储器(M)和结果写回寄存器(WB),流水线采用“按序发射,按序完成”方式,没有采用转发 技术处理数据相关,并且同一寄存器的读和写操作不能在同一个时钟周期内进行。请回答下列问题。 (1)若 int 型变量 x 的值为-513,存放在寄存器 R1 中,则执行“SHL R1”后,R1 中的内容是多少?(用十六进制表 示) (2)若在某个时间段中,有连续的 4 条指令进入流水线,在其执行过程中没有发生任何阻塞,则执行这 4 条指令 所需的时钟周期数为多少? (3)若高级语言程序中某赋值语句为 x=a+b,x、a 和 b 均为 int 型变量,它们的存储单元地址分别表示为[x]、[a]和[b]。该语句对应的指令序列及其在指令流中的执行过程如题 44 图所示。则这 4 条指令执行过程中 I3 的 ID 段和 I4 的 IF 段被阻塞的原因各是什么? (4)若高级语言程序中某赋值语句为 x=x*2+a,x 和 a 均为 unsigned int 类型变量,它们的存储单元地址分别表示 为[x]、[a],则执行这条语句至少需要多少个时钟周期?要求模仿题 44 图画出这条语句对应的指令序列及其在流水 线中的执行过程示意图。
第6题
【说明】
以下代码由C语言书写,在输入3个整数后,能够输出最大数和最小数。
int main(void)
{
int a, b, c, max, min;
printf("input three numbers: ");
scanf("%d%d%d", &a, &b, &c);
if(a>b) /*判断1*/
{
max=a;
min=b;
}
else
{
max=b;
min=a;
}
if(max<c) /*判断2*/
max=c;
else if(min>c) /*判断3*/
min=c;
printf("max=%d\nmin=%d", max, min);
return 0;
}
请画出该程序段的控制流图,并分析该控制流图中有多少条线性独立路径(V(G)的值)。
为了用分支(判定)覆盖方法测试该程序,需要设计测试用例,使其能对该程序中的每个判断语句的各种分支情况全部进行过测试。
对两组输入数据(1)a=3,b=5,c=7;(2)a=4,b=6,c=5,请分别写出程序中各个判断语句的执行结果(以T表示真,以F表示假),填入答题纸的相应栏中。
上述两组测试数据是否能实现该程序的分支(判定)覆盖?如果能,请说明理由。如果不能,请再增设一组输入数据,使其能实现分支(判定)覆盖。
请帮忙给出每个问题的正确答案和分析,谢谢!
第7题
阅读下列说明和HTML文本,分析其中嵌入的JavaScript脚本,将应填入(n)处的语句写在答题纸的对应栏内。
[说明]
在表单的多行文本域中显示打字效果,即先显示一个光标,再显示一个字,然后循环显示。
【HTML文本】
<html>
<!省略部分为HTML文本框>
<script. language="JavaScript">//JavaScript区域开始标识
vat m=0;//定义变量m,并赋初值0
function tl(){//声明一个数组,并对其进行初始化
m= (1) ;
for(i=0;i<m;i++)
(2) ;
}
tl=mew tl(
"能熟练使用一种网络操作系统、一种浏览器软件和一种电子邮件收发与管理软件",
"能熟练使用一种网页制作软件制作一般的网页",
"能熟练使用HTML,语言和JavaScript语言制作一般的网页",
);//定义对象
var x=0;pos=0;//定义变量并赋初值
vavl=tl[o].length;//定义变量1,并将对象t1数组元素的长度值赋给变量1
function tt(){
document.form.tf.value=tl[x].subswing(0,pos)+"-";
//将数组tl中元素从0到“pos”的值显示出来。
“form”是表单的名,“tl”是多行文本输入域的名。
If( (3) ){//如果数组tl中一个元素显示完毕,则显示下一个,否则继续显示
(4) ;
setTimeout("tt()",400);//设置定时器,值越小速度越快
if(++x==m{//如果数组d中所有元素均显示完毕,则从头显示,否则继续显示
(5) ;
1=tl[x].1ength:
}
else{
setTimeout("tt()",400);
}
}
</script>
<body>
<form. name=form>
<textarea name=tf rows=3 cols=38></textarea>
</form>
………
<!省略部分为HTML文本框>
……
</html>
第8题
阅读下列说明和HTML文本,分析其中嵌入的JavaScript脚本,将应填入(n)处的语句写在答题纸的对应栏内。
[说明]
在表单的多行文本域中显示打字效果,即先显示一个光标,再显示一个字,然后循环显示。
【HTML文本】
<html>
<!省略部分为HTML文本框>
<script. language="JavaScript">//JavaScript区域开始标识
vat m=0;//定义变量m,并赋初值0
function tl(){//声明一个数组,并对其进行初始化
m= (1) ;
for(i=0;i<m;i++)
(2) ;
}
tl=mew tl(
"能熟练使用一种网络操作系统、一种浏览器软件和一种电子邮件收发与管理软件",
"能熟练使用一种网页制作软件制作一般的网页",
"能熟练使用HTML,语言和JavaScript语言制作一般的网页",
);//定义对象
var x=0;pos=0;//定义变量并赋初值
vavl=tl[o].length;//定义变量1,并将对象t1数组元素的长度值赋给变量1
function tt(){
document.form.tf.value=tl[x].subswing(0,pos)+"-";
//将数组tl中元素从0到“pos”的值显示出来。
“form”是表单的名,“tl”是多行文本输入域的名。
If( (3) ){//如果数组tl中一个元素显示完毕,则显示下一个,否则继续显示
(4) ;
setTimeout("tt()",400);//设置定时器,值越小速度越快
if(++x==m{//如果数组d中所有元素均显示完毕,则从头显示,否则继续显示
(5) ;
1=tl[x].1ength:
}
else{
setTimeout("tt()",400);
}
}
</script>
<body>
<form. name=form>
<textarea name=tf rows=3 cols=38></textarea>
</form>
………
<! 省略部分为HTML文本框 >
……
</html>
第9题
[说明]
给定一个十进制整数A,将其转换为R进制数的方法是:将A的整数部分逐次除以R,直到商等于0为止,将所得的余数由低位到高位排列在一起,就得到了对应R的进制数。以A=11,R=2为例,11÷2=5…1,5÷2=2…1,2÷2=1…0,1÷2=0…1中各式的余数依次为:1,1,0,1,于是与A对应的二进制数为1011。
下面的流程图实现了将十进制数2597转换为八进制数的功能,其中:
(1)循环1执行除法运算并将余数依次记录在数组a中(假定数组长度足够长),如a[1], a[2],……,a[k];
(2)循环2则用于将这些余数按逆序输出,即a[k],a[k-1],……,a[1];
(3)图中i,j分别是循环1和循环2中的循环变量;
(4)图中q用于记录每次除法所得的商值。
[流程图]
[问题1]
将流程图中的(1)~(4)处补充完整,其中(1)~(3)处要求使用C语言格式书写:(1)处为逻辑表达式,(2)、(3)两处为算术表达式;(4)则须按照“循环变量名:循环初值,循环终值,增量”格式描述。
[问题2]该算法运行的结果(5)。
第10题
【说明】
本程序从正文文件text.in中读入一篇英文短文,统计该短文中不同单词及出现次数,并按词典编辑顺序将单词及出现次数输出到正文文件word.out中。
程序用一棵有序二叉树存储这些单词及其出现的次数,边读入边建立,然后中序遍历该二叉树,将遍历经过的二叉树上的结点内容输出。
【函数】
include <stdio.h>
include <malloc.h>
include <ctype.h>
include <string.h>
define INF "text.in"
define OUTF "word.our'
typedef struct treenode {
char *word;
int count;
struct treenode *left, *right;
} BNODE;
int getword(FILE *fpt, char *word)
{ char c;
c=fgetc(tpt);
if (c==EOF)
return 0;
while(!(tolower(c)>= 'a' && tolower(c)<= 'z'))
{ c=fgetc(fpt);
if (c==EOF)
return 0;
} /* 跳过单词间的所有非字母字符 */
while(tolower(c)>= 'a' && tolower(c)<= 'z')
{ *word++=c;
c=fgetc(fpt);
}
*word='\0';
return 1;
}
void binary_tree(BNODE **t, char *word)
{ BNODE *ptr, *p; int compres;
p=NULL;
(1);
while (ptr) /* 寻找插入位置 */
{ compres=strcmp(word, ptr->word);/* 保存当前比较结果 */
if (!compres)
{ (2); return;}
else
{ p=ptr;
ptr=compres>0 ? ptr->right: ptr->left;
}
}
ptr=(BNODE *)malloc(sizeof(BNODE));
ptr->left=ptr->right=NULL;
ptr->word=(char *)malloc(strlen(word)+1);
strcpy(ptr->word, word);
(3);
if (p==NULL)
*t=ptr;
else if (compres>0)
p->right=ptr;
else
p->left=ptr;
}
void midorder(FILE *fpt, BNODE *t)
{ if (t==NULL)
return;
midorder(fpt,(4));
fprintf(fpt, "%s %d\n", t->word, t->count);
midorder(fpt, t->right);
}
void main()
{ FILE *fpt; char word[40];
BNODE *root=NULL;
if ((fpt=fopen(INF, "r"))==NULL)
{ printf("Can't open file %s\n", INF);
return;
}
while(getword(fpt, word)==1)
binary_tree((5));
fclose(fpt);
fpt=fopen(OUTF, "w");
if (fpt==NULL)
{ printf("Can't open fife %s\n", OUTF);
return;
}
midorder(fpt, root);
fclose(fpt);
}
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!