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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 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。



目录
相关文章
|
6天前
|
人工智能
歌词结构的巧妙安排:写歌词的方法与技巧解析,妙笔生词AI智能写歌词软件
歌词创作是一门艺术,关键在于巧妙的结构安排。开头需迅速吸引听众,主体部分要坚实且富有逻辑,结尾则应留下深刻印象。《妙笔生词智能写歌词软件》提供多种 AI 功能,帮助创作者找到灵感,优化歌词结构,写出打动人心的作品。
|
7天前
|
人工智能
写歌词的技巧和方法全解析:开启你的音乐创作之旅,妙笔生词智能写歌词软件
怀揣音乐梦想,渴望用歌词抒发情感?掌握关键技巧,你也能踏上创作之旅。灵感来自生活点滴,主题明确,语言简洁,韵律和谐。借助“妙笔生词智能写歌词软件”,AI辅助创作,轻松写出动人歌词,实现音乐梦想。
|
4天前
|
敏捷开发 数据管理 数据挖掘
高效项目管理必备!2024年10款优质软件全解析
在快节奏的互联网行业中,高效的项目管理工具是成功的关键。本文推荐10款优质项目管理软件,包括板栗看板、Asana、Trello、Jira、Microsoft Project等,帮助团队提升效率、优化资源、缩短项目周期。每款工具都有其独特优势,适合不同规模和需求的团队使用。
16 0
高效项目管理必备!2024年10款优质软件全解析
|
14天前
|
敏捷开发 数据可视化 测试技术
解析软件项目管理:以板栗看板为例,其如何有效影响并优化软件开发流程
软件项目管理是一个复杂而重要的过程,涵盖了软件产品的创建、维护和优化。其核心目标是确保软件项目能够顺利完成,同时满足预定的质量、时间和预算目标。本文将深入探讨软件项目管理的内涵及其对软件开发过程的影响,并介绍一些有效的管理工具。
|
2月前
|
网络协议 网络安全
基于bind软件部署DNS服务器
关于如何使用bind软件部署DNS服务器的教程,包括DNS服务器的类型、基于bind软件的部署步骤、验证DNS服务器可用性的指导,以及如何进行DNS正向解析的实现。
73 2
基于bind软件部署DNS服务器
|
28天前
|
程序员 编译器 数据处理
【C语言】深度解析:动态内存管理的机制与实践
【C语言】深度解析:动态内存管理的机制与实践
|
28天前
|
Serverless 编译器 C语言
【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
|
2月前
|
测试技术 UED 开发者
软件测试的艺术:从代码审查到用户反馈的全景探索在软件开发的宇宙中,测试是那颗确保星系正常运转的暗物质。它或许不总是站在聚光灯下,但无疑是支撑整个系统稳定性与可靠性的基石。《软件测试的艺术:从代码审查到用户反馈的全景探索》一文,旨在揭开软件测试这一神秘面纱,通过深入浅出的方式,引领读者穿梭于测试的各个环节,从细微处着眼,至宏观视角俯瞰,全方位解析如何打造无懈可击的软件产品。
本文以“软件测试的艺术”为核心,创新性地将技术深度与通俗易懂的语言风格相结合,绘制了一幅从代码审查到用户反馈全过程的测试蓝图。不同于常规摘要的枯燥概述,这里更像是一段旅程的预告片,承诺带领读者经历一场从微观世界到宏观视野的探索之旅,揭示每一个测试环节背后的哲学与实践智慧,让即便是非专业人士也能领略到软件测试的魅力所在,并从中获取实用的启示。
|
3月前
|
API UED 开发者
超实用技巧大放送:彻底革新你的WinForms应用,从流畅动画到丝滑交互设计,全面解析如何在保证性能的同时大幅提升用户体验,让软件操作变得赏心悦目不再是梦!
【8月更文挑战第31天】在Windows平台上,使用WinForms框架开发应用程序时,如何在保持性能的同时提升用户界面的吸引力和响应性是一个常见挑战。本文探讨了在不牺牲性能的前提下实现流畅动画与交互设计的最佳实践,包括使用BackgroundWorker处理耗时任务、利用Timer控件创建简单动画,以及使用Graphics类绘制自定义图形。通过具体示例代码展示了这些技术的应用,帮助开发者显著改善用户体验,使应用程序更加吸引人和易于使用。
71 0
|
3月前
|
程序员 C语言
位操作在C语言中的解析与应用
位操作在C语言中的解析与应用
86 0

推荐镜像

更多