ISAM编程大赛答案

更新时间:2023-05-12 11:05:31 阅读: 评论:0

评分标准:
单选题/填空题:答对满分 答错。分
多选题:答对满分 答错0分少选I
38题:答出没有定义拷贝构造函数和没有重载赋值运算符导致内存泄漏4
答出没有定义拷贝构造函数导致内存泄漏2
答出没有重载赋值运算符导致内存泄漏2
答出内存泄漏1
39题:答出信号量保护粒度过小4
答出信号量的问题1
40题:答对一个给一分 41题:8个错误,答对一个给2分,答对5个或5个以上给10
[NOTE:]以上主观题(38 - 41)给出的评分标准只是一个依据,在实际答题过程中,答案的表述是否清楚,字 迹是否清晰都有可能影响得分,我们尽量做到按标准给分。
1.请问以下代码片段的执行结果(C ) (2分) void main( void )
int a = i
b =
:3 ;
printf (
“%d
”,a/b )
printf (
“%d
”,a%b )
printf (
“%d
”,a&b )
printf (
“%d
”,/b )
printf (
“%d
”,a=b )
printf (
“%d
”,a=b )
printf (
F
,);
}
(A) 2 1 3
3 0
3
(B) 2 2 3
3 7
1
(0213
4 0
3
(D) 2 2 7
4 1
3
[NOTE: ] %为求余运算符。”为异或运算符
2.ISAMerrjrinf错误处理机制中,以下哪种错误级别将导致板子重新启动?( A ) (2分)
(A)NON-RECOVERABLE
(B)RECOVERABLE
(C)N0TIFY-0NLY
[NOTE:]参见文档[3HH-03154-8002-DSZZA]
3.请问下面代码片断的输出结果是什么(D ) (2分)
void main ( void )
{
char *str = "aaa%sjj%d”;
printf ( str );
(A)aaa%sjj%d
(B)aaajjd
(0空字符串
(D)结果无定义,可能导致程序崩溃
[NOTE:]如要输出包含格式字符%的字符串推荐使用如下方式:printf( "%s", str )
4.
嵌入式系统总是要对变量或寄存器进行位操作。现给定一个整型变量a,需要写两个宏,分别用来设置、
清除整数a的某一位,在以上两个操作中需要保持其它位不变,请问以下哪种写法是可移植性最好的:(
(2分)
(A)
(a 10x4)
(a&OxFFFB)
((a) 10x4)
((a)&(~0x4))
((a) &0x4)
((a)&OxFFFB)
((a) 10x4)
((a)&OxFFFB)
Sdefine SET_BIT3(a)
ttdefine CLEAR_BIT3(a)
(B)Sdefine SET_BIT3(a)
ttdefine CLEAR_BIT3(a)
(C)Sdefine SET_BIT3(a)
ttdefine CLEAR_BIT3(a)
(D)Sdefine SET_BIT3(a)
#define CLEAR_BIT3(a)
5.在以下接口类型中,按照ISAM软件策略,只有哪种类型被允许存储数据库?( B )    (2分)
(A)Iflndex
(B)Logical Index
(C)Linear Index
(D)HwReference
[NOTE:]参见文档[3HH-03154-1193-DSZZA ]
6.在下面两种不同代码实现中,请确定谁负责给存储对象分配内存?( D ) (2分) 代码实现1:
d_Extent<BellPerson> persons:
Bool res = persons. newObject(&per): if (!res) (... }:
代码实现2:
(
d_ExtentBellPerson> persons;
d_Ref<BellPerson> per = persons. newObject(): if (!per) (... };
}
(A)数据存储子系统,数据存储子系统
(B)应用程序,应用程序
(0数据存储子系统,应用程序
(D)应用程序,数据存储子系统
[NOTE :]参见文档[3HH-03154-1110-DSZZA]
7.ISAM系统中,请问在以下的内存区间中,哪个被分配的内存是不允许被释放的?( B ) (2分)
(A)OS heap
(B)Semi
(C)Pool
(D)Dynamic
[NOTE:]参见文档[3HH-03154-1000-DSZZA]
8.请问以下代码片段的执行结果(C ) (2分) void main( void )
{
int flag 1, trigger = 1 , i = 0 ;
if ( trigger >= 0 )
for (i=0;i<2;i++)
if ( flag < 0 ) (
printf ( "flag ” ); return i ;
}
el
printf ( "trigger " );
printf ( "end \n");
}
(A)end end
(B)end
(C)trigger trigger end
(D)trigger end
[NOTE:]将上段代码加上大括号和缩进后,该段代码如下 void main ( void )
{
int flag = 1, trigger - 1 , i = 0 ;
if ( trigger >= 0 ) (
for (1=0; i<2;i++) {
if ( flag < 0 ) ( printf ( “flag "); return i ;
}
el (
printf ( ^trigger ”); } // end el
} //end for
} //end if
printf ( "end \n^ );
所以,不正确的括号和缩进的使用极易引起程序的理解错误。
推荐在任何情况下都使用大括号扩起if, for, while等语句的程序块及正确的缩进
9.ISAM系统中,如果使用malloc分配内存,请问该内存从哪个区域划分?( A ) (2分)
(A)OS heap
(B)OS stack
(C)Ur heap
(D)Ur stack
[NOTE: J 参见文档[3HH-03154-1000-DSZZA]
10.请问以下代码片段的执行结果(D ) (2分)
void main ()
{
char szTemp[12];
strcpy( szTemp, "hello,world!”);
printf( "%s\r\n”, szTemp );
}
(A)hello, world!
(B)一串乱码
(C)空字符串
(D)结果无定义
[NOTE: ] C/C++语言中字符串的存储默认是以字符 O结尾的
strcpy函数不会对存储字符串的字符数组边界进行检查。
推荐使用strncpy函数进行字符串copy操作
11.请问C++中定义的short, int, long类型的变量分别占据了几个字节的存储空间?( D ) (2分)
(A)2, 4, 4
(B)4, 4, 4
(C)2, 4, 8
(D)不确定
[NOTE: ] C++语言是与平台无关的。语言本身并没有定义short, int, long等基本数据类型的长度。具体的长 度依赖于编译器的实现。所以我们在程序代码中不推荐使用short, int, long
等基本数据类型来定义变量。而 使用 <generic/basic_ types. h> 中定义的 u_int6, intl6, in t32 等类型
参见Alcatel Coding Rule [3EB-00094~0001~ASAAA]
12.请问下列代码片断的执行结果(D ) (2分) void foo ( char * p ) {
std::cout « sizeof(p);
}
void goo ( char p[])
{
std::cout « sizeof(p);

本文发布于:2023-05-12 11:05:31,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/598579.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:代码   内存   导致   使用   字符串   定义
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图