软件评测师2020年考试上午C语言试题解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 软件评测师2020年考试上午C语言试题解析

2020年软件评测师考试中出现了一道类似这样的考察C语言特性的题目:

#include<stdio.h>
void main()
{
    int s = 33;
    if (3<s<50){
        printf("s<50 s>3");
    }
    else{
        printf("end");
    }
}


输出是什么?


当然,我们知道,C语言编程中,如果判断一个数大于下限、小于上限,不能这样写:3<s<50。应该写作3<s && s<50。但是,这样的语句可以通过编译,并且有输出。

对3<s<50的求值,先算3<s 是true,在C中,true是1,再算 1<50,是true,于是进入上面的printf


如果s取值是大于50 或者小于3的整数,3<s是false,在C中,false是0,再算0<50,也是true,于是还是进入上面的printf。


不管s取什么整数值,都是进入上面的分支语句。OK。现在答案就是:正常输出上面的分支的结果。


其他答案还有:不能通过编译、输出下面分支、运行时报错。都是不对的。


解析:这道题考察了比较深的C语言知识,首先,C的布尔类型是使用了基础的长整数类型实现,它本身原先并不是基本类型。


后来标准扩充定义bool类型,true是1,false是0,定义长度是1个字节(8位)。有人面试时会问到为什么C里面定义是8位,因为C语言设计的类型,最少存储也只能定义1个字节……定义1位逻辑上是可以的,但是实现上,操作系统存1位比较费劲。你这儿有1位,别处都是几个字节,字节上对不齐,操作系统向存储器要地址,寻址很烦的。


布尔类型,其名称来源于英国数学家George Boole。


微软的MFC里面定义了BOOL(大写),

typedef long BOOL
     #define FALSE      0
     #define TRUE       1

C语言定义了bool(小写)。bool , true, false。隐式类型转换时,非零值会被转换为true,零值会被转换为false。



目录
相关文章
|
1月前
|
网络协议 网络安全
基于bind软件部署DNS服务器
关于如何使用bind软件部署DNS服务器的教程,包括DNS服务器的类型、基于bind软件的部署步骤、验证DNS服务器可用性的指导,以及如何进行DNS正向解析的实现。
32 2
基于bind软件部署DNS服务器
|
2天前
|
程序员 编译器 数据处理
【C语言】深度解析:动态内存管理的机制与实践
【C语言】深度解析:动态内存管理的机制与实践
|
2天前
|
Serverless 编译器 C语言
【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
|
14天前
|
测试技术 UED 开发者
软件测试的艺术:从代码审查到用户反馈的全景探索在软件开发的宇宙中,测试是那颗确保星系正常运转的暗物质。它或许不总是站在聚光灯下,但无疑是支撑整个系统稳定性与可靠性的基石。《软件测试的艺术:从代码审查到用户反馈的全景探索》一文,旨在揭开软件测试这一神秘面纱,通过深入浅出的方式,引领读者穿梭于测试的各个环节,从细微处着眼,至宏观视角俯瞰,全方位解析如何打造无懈可击的软件产品。
本文以“软件测试的艺术”为核心,创新性地将技术深度与通俗易懂的语言风格相结合,绘制了一幅从代码审查到用户反馈全过程的测试蓝图。不同于常规摘要的枯燥概述,这里更像是一段旅程的预告片,承诺带领读者经历一场从微观世界到宏观视野的探索之旅,揭示每一个测试环节背后的哲学与实践智慧,让即便是非专业人士也能领略到软件测试的魅力所在,并从中获取实用的启示。
|
2月前
|
API UED 开发者
超实用技巧大放送:彻底革新你的WinForms应用,从流畅动画到丝滑交互设计,全面解析如何在保证性能的同时大幅提升用户体验,让软件操作变得赏心悦目不再是梦!
【8月更文挑战第31天】在Windows平台上,使用WinForms框架开发应用程序时,如何在保持性能的同时提升用户界面的吸引力和响应性是一个常见挑战。本文探讨了在不牺牲性能的前提下实现流畅动画与交互设计的最佳实践,包括使用BackgroundWorker处理耗时任务、利用Timer控件创建简单动画,以及使用Graphics类绘制自定义图形。通过具体示例代码展示了这些技术的应用,帮助开发者显著改善用户体验,使应用程序更加吸引人和易于使用。
66 0
|
2月前
|
程序员 C语言
位操作在C语言中的解析与应用
位操作在C语言中的解析与应用
76 0
|
2月前
|
消息中间件 安全 RocketMQ
就软件研发问题之ACL 2.0接口不同的授权参数解析的问题如何解决
就软件研发问题之ACL 2.0接口不同的授权参数解析的问题如何解决
|
2月前
|
存储
就软件研发问题之ACL 2.0中授权参数解析的问题如何解决
就软件研发问题之ACL 2.0中授权参数解析的问题如何解决
|
3月前
|
存储 C语言
C语言中static关键字的作用与用法解析
C语言中static关键字的作用与用法解析
|
4月前
|
算法 搜索推荐 程序员
C语言程序设计考试掌握这些题妥妥拿绩点(写给即将C语言考试的小猿猴们)
C语言程序设计考试掌握这些题妥妥拿绩点(写给即将C语言考试的小猿猴们)
32 0

热门文章

最新文章

推荐镜像

更多