计算机软件综合试题,[计算机软件及应用]综合测试题.doc

[计算机软件及应用]综合测试题

综合测试试题

第一部分:C语言

一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。

提示:这里“零值”可以是0, 0.0 , FALSE或者“空指针”。例如 int 变量 n 与“零值”比较的 if 语句为:

if ( n == 0 )

if ( n != 0 )

以此类推。

请写出 BOOL flag 与“零值”比较的 if 语句。(3分)标准答案:

if ( flag )

if ( !flag )如下写法均属不良风格,不得分。

if (flag == TRUE)

if (flag == 1 )

if (flag == FALSE)

if (flag == 0)请写出 float x 与“零值”比较的 if 语句。(4分)标准答案示例:

const float EPSINON = 0.00001;

if ((x >= - EPSINON) && (x <= EPSINON)

不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。

如下是错误的写法,不得分。

if (x == 0.0)

if (x != 0.0)

请写出 char *p 与“零值”比较的 if 语句。(3分)标准答案:

if (p == NULL)

if (p != NULL)如下写法均属不良风格,不得分。

if (p == 0)

if (p != 0)

if (p)

if (!)

二、以下为Windows NT下的32位C++程序,请计算sizeof的值

char str[] = “Hello” ;

char *p = str ;

int n = 10;

请计算

sizeof (str ) = 6

sizeof ( p ) = 4

sizeof ( n ) =4void Func ( char str[100])

{

请计算

sizeof( str ) = 4

}

void *p = malloc( 100 );

请计算

sizeof ( p ) =4

三、简答题

1、头文件中的 ifndef/define/endif 干什么用?

答:防止该头文件被重复引用。

2、#include 和 #include “filename.h” 有什么区别?

答:对于#include ,编译器从标准库路径开始搜索 filename.h

对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h

3、const 有什么用途?(请至少说明两种)

(1)可以定义 const 只读变量

(2)const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。

4、在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?

答:C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个函数的原型为: void foo(int x, int y);

该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。

C++提供了C连接交换指定符号extern“C”来解决名字匹配问题。

5、请简述以下两个for循环的优缺点

// 第一个

for (i=0; i

{

if (condition)

DoSomething();

else

DoOtherthing();

}// 第二个

if (condition)

{

for (i=0; i

DoSomething();

}

else

{

for (i=0; i

DoOtherthing();

}优点:

优点:程序简洁

缺点:多执行了N-1次逻辑判断,并且打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率优点:循环的效率高

缺点:程序不简洁

四、有关内存的思考题

void GetMemory(char *p)

{

p = (char *)malloc(100);

}

void Test(void)

{

char *str = NULL;

GetMemory(str);

strcpy(str, "hel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值