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

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



目录
相关文章
|
6天前
|
数据可视化 数据挖掘 BI
团队管理者必读:高效看板类协同软件的功能解析
在现代职场中,团队协作的效率直接影响项目成败。看板类协同软件通过可视化界面,帮助团队清晰规划任务、追踪进度,提高协作效率。本文介绍看板类软件的优势,并推荐五款优质工具:板栗看板、Trello、Monday.com、ClickUp 和 Asana,助力团队实现高效管理。
28 2
|
16天前
|
存储 网络协议 编译器
【C语言】深入解析C语言结构体:定义、声明与高级应用实践
通过根据需求合理选择结构体定义和声明的放置位置,并灵活结合动态内存分配、内存优化和数据结构设计,可以显著提高代码的可维护性和运行效率。在实际开发中,建议遵循以下原则: - **模块化设计**:尽可能封装实现细节,减少模块间的耦合。 - **内存管理**:明确动态分配与释放的责任,防止资源泄漏。 - **优化顺序**:合理排列结构体成员以减少内存占用。
86 14
|
20天前
|
存储 编译器 C语言
【C语言】数据类型全解析:编程效率提升的秘诀
在C语言中,合理选择和使用数据类型是编程的关键。通过深入理解基本数据类型和派生数据类型,掌握类型限定符和扩展技巧,可以编写出高效、稳定、可维护的代码。无论是在普通应用还是嵌入式系统中,数据类型的合理使用都能显著提升程序的性能和可靠性。
40 8
|
20天前
|
存储 算法 C语言
【C语言】深入浅出:C语言链表的全面解析
链表是一种重要的基础数据结构,适用于频繁的插入和删除操作。通过本篇详细讲解了单链表、双向链表和循环链表的概念和实现,以及各类常用操作的示例代码。掌握链表的使用对于理解更复杂的数据结构和算法具有重要意义。
153 6
|
20天前
|
存储 网络协议 算法
【C语言】进制转换无难事:二进制、十进制、八进制与十六进制的全解析与实例
进制转换是计算机编程中常见的操作。在C语言中,了解如何在不同进制之间转换数据对于处理和显示数据非常重要。本文将详细介绍如何在二进制、十进制、八进制和十六进制之间进行转换。
29 5
|
20天前
|
C语言 开发者
【C语言】断言函数 -《深入解析C语言调试利器 !》
断言(assert)是一种调试工具,用于在程序运行时检查某些条件是否成立。如果条件不成立,断言会触发错误,并通常会终止程序的执行。断言有助于在开发和测试阶段捕捉逻辑错误。
28 5
|
5天前
|
监控 数据可视化 搜索推荐
教育行业办公软件全解析!J 人备考能否从中受益?
本文深入剖析了 6 款可视化团队协作办公软件,包括板栗看板、Trello、Asana、Monday.com、Wrike 和 ClickUp,旨在为教育领域的从业者与学习者提供全面且实用的参考。这些软件各具特色,如板栗看板的简洁界面和强大任务操控,Trello 的高度定制化和丰富插件,Asana 的精细任务管理和高效团队沟通,Monday.com 的灵活布局和数据分析,Wrike 的多层次任务架构和智能分配,以及 ClickUp 的多样化视图和深度定制。J 人可根据自身需求选择最适合的工具,提升工作效率与学习效果。
15 0
|
20天前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
39 10
|
20天前
|
存储 程序员 C语言
【C语言】文件操作函数详解
C语言提供了一组标准库函数来处理文件操作,这些函数定义在 `<stdio.h>` 头文件中。文件操作包括文件的打开、读写、关闭以及文件属性的查询等。以下是常用文件操作函数的详细讲解,包括函数原型、参数说明、返回值说明、示例代码和表格汇总。
42 9
|
20天前
|
存储 Unix Serverless
【C语言】常用函数汇总表
本文总结了C语言中常用的函数,涵盖输入/输出、字符串操作、内存管理、数学运算、时间处理、文件操作及布尔类型等多个方面。每类函数均以表格形式列出其功能和使用示例,便于快速查阅和学习。通过综合示例代码,展示了这些函数的实际应用,帮助读者更好地理解和掌握C语言的基本功能和标准库函数的使用方法。感谢阅读,希望对你有所帮助!
31 8

推荐镜像

更多
下一篇
DataWorks