弯道超车必做好题集锦三(C语言选择题)

前言:

编程想要学的好,刷题少不了,我们不仅要多刷题,还要刷好题!为此我开启了一个弯道超车必做好题锦集的系列,每篇大约10题左右。此为第三篇选择题篇,该系列会不定期更新,后续还会开编程题的系列。敬请期待!


1 、请阅读以下程序,其运行结果是()
int main ()
{
char c = 'A' ;
if ( '0' <= c <= '9' ) printf ( "YES" );
else printf ( "NO" );
return 0 ;
}

A: YES          B: NO              C: YESNO           D: 语句错误  

答案解析:
正确答案: A
'0'<=c<='9' 并非判断 x 大于等于字符 0, 小于等于字符 9 ,而是先执行 '0'<=c ,使用这个表达式的结果再和 '9' 比较, '0' ASCII 码值是48 'A' ASCII 码值是 '65' ,故 '0'<c 是真值 1 1 无疑是小于字符 '9' 的,最终是真

2.假设编译器规定 int short 类型长度分别为32位和16位,若有下列C语言语句,则 y 的机器数为( )

unsigned short x = 65530 ;
unsigned int y = x ;

A: 0000 7FFA          B: 0000 FFFA              C: FFFF 7FFA               D: FFFF FFFA 

 

答案解析:
正确答案: B
unsigned short 类型的 x 变量 2 个字节保存了 65530 ,十六进制形式为 0xFFFA x y 赋值时会整型提升,而无符号数在提升时 高位补0 ,其实就相当于把 x 的值放在了 y 的低 2 个字节的空间中,故选 B

3.下列程序的输出结果是什么()

#include<stdio.h>
int main ()
{
int n = 1001 ;
int ans = 0 ;
for ( int i = 1 ; i <= n ; ++ i )
{
ans ^ = i % 3 ;
}
printf ( "%d" , ans );
return 0 ;
} 

A: -2                  B: 0              C: 1                   D: 2  

答案解析:
正确答案: B
i % 3 的值按 1 2 0 循环,可推算出 ans 1 3 3 2 0 0 循环,循环进行 1001 次,而 1001%6=5 ,也就是 ans 按规律得到 的第5 个数为最终结果,故 ans=0

4.要使 a 的低四位翻转,需要进行操作是( )

A: a|0xF                B: a&0xF                C: a^0xF               D: ~a 

答案解析:
正确答案: C
十六进制数 0xF 4 1 ,参与运算时整型提升,高位都是 0 。低四位和 1 异或, 0^1 1 1^1 0 ;高位和 0 异或, 0^0 0 1^0是1 。故而可以通过异或 F 使得 a 的低四位翻转,并保持高位不变

 5.如果 x=2014 ,下面函数的返回值是( )

int fun ( unsigned int x )
{
int n = 0 ;
while ( x + 1 )
{
n ++ ;
x = x | ( x + 1 );
}
return n ;
}

A: 20          B: 21              C: 23                D 25  

答案解析:
正确答案: C
这个作用是对整型中 0 的个数进行统计, x=x|(x+1); 的作用是每次循环把 x 的二进制中从右往左数的最后一位 0 变成 1 ,直道变成 全1 的时候 x+1 就溢出为全 0 ,循环结束。 2014 的二进制是 0000 0000 0000 0000 0000 0111 1101 1110 ,所以结果是 23

 


6.有以下函数,该函数的功能是()

int fun ( char* s )
{
   char* t = s ;
   while ( * t ++ );
   return ( t - s );
}
A: 比较两个字符的大小                      B: 计算 s 所指字符串占用内存字节的个数
C: 计算 s 所指字符串的长度                D: s 所指字符串复制到字符串 t

答案解析:
正确答案: B
循环在 *t 0 时停止,同时 t++ t 最后会停在字符串结束的 '\0' 之后的一个位置, t 作为尾部指针减去头部指针就是整个字符串 占用内存的字节数,包含\0 在内;而 c 答案字符串长度不包括最后的 \0

7.关于指针下列说法正确的是【多选】( )

A: 任何指针都可以转化为 void *                         B: void * 可以转化为任何指针
C: 指针的大小为 8 个字节                                   D: 指针虽然高效、灵活但可能不安全
答案解析:
正确答案: ABD
C 选项,指针占几个字节要看平台, 64 位环境下 8 个字节, 32 位环境下 4 个字节

8.指出下列代码的缺陷【多选】( )

flfloat f [ 10 ];
// 假设这里有对 f 进行初始化的代码
for ( int i = 0 ; i < 10 ;)
{
if ( f [ ++ i ] == 0 )
break ;
}
A: for(int i = 0; i < 10;) 这一行写错了                B: f flfloat 型数据直接做相等判断有风险
C: f[++i] 应该是 f[i++]                                         D: 没有缺陷

 

答案解析:
正确答案: BC
一般 flfloat 型只能精确到小数后六位(即 1e-6 ), flfloat型数据的绝对值与1e-6 比较,来判断是否相等(为零)。 flfloat 的精度 误差在1e-6 double 精度误差在 1e-15 ;所以要判断一个 flfloat 型数: if(fabs(f)<1e-6) ;要判断一个 double 型数: if(fabs(f)<1e- 15);若满足,则为零。考虑 B 选项是对的。若要判断 flfloat a,b 是否相等,要看 if(fabs(a-b)<1e-6) 是否为真。 C 选项,考虑的是 数组越界问题

9.请问下列代码的输出结果有可能是哪些【多选】( )

#include <stdio.h>
typedef union
{
int a ;
struct
{
short b ;
short c ;
};
} X ;
int main ()
{
X x ;
x . a = 0x20150810 ;
printf ( "%x,%x\n" , x . b , x . c );
return 0 ;
}

A: 2015,810             B: 50810,201                C: 810,2015                 D:`20150,810  

答案解析:
正确答案: AC
对于 0x20150810
如果按照大端模式存储:从低地址到高地址: 20150810 输出从低地址到高地址: 20150810
如果按照小端模式存储:从低地址到高地址: 10081520 输出从高地址到低地址: 08102015
此数以 int 类型赋值给联合体 x.a ,而以结构成员 b c 分开访问,分别拿到低地址的 2 个字节和高地址的 2 个字节,大端下是2015和 810 ,小端下是 810 2015

10.请问下列程序的输出是多少()

#include<stdio.h>
int main ()
{
   unsignedchar i = 7 ;
   int j = 0 ;
   for (; i > 0 ; i -= 3 )
 {
    ++ j ;
 }
   printf ( "%d\n" , j );
   return 0 ;
} 

A: 2              B: 死循环               C: 173           D: 172 

答案解析:
正确答案: C
本题就是找规律,计算什么时候能遇到 0
unsigned char 8 位数据位,范围在 0-255 ,所以 -2 (11111110)时,变成 254 ;同理 -1 (11111111)时,变成 255 ;最后减 到0 时,不满足循环条件, for 停止。刚好 173 次。 7 4 1 ==> (7-1)/3+1=3 次(1-3=-2,即 254 ,继续循环) 254 251 ... 5 2 ==> 共 (254-2)/3+1=85 次(2-3=-1,即 255 ,继续循环) 255 252 ... 6 3 ==> 共 (255-5)/3+1=85 次(3-3=0,退出循环) 所以总共 173

 

以上为我个人的小分享,如有问题,欢迎讨论!!! 

都看到这了,不如关注一下,给个免费的赞 

 


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/96629.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#_特性反射详解

特性是什么&#xff1f; 为程序元素额外添加声明信息的一种方式。 字面理解&#xff1a;相当于把额外信息写在干胶标签上&#xff0c;然后将其贴在程序集上。 反射是什么&#xff1f; 反射是一种能力&#xff0c;运行时获取程序集中的元数据。 字面理解&#xff1a;程序运行…

防溺水智能预警系统解决方案 yolov7

防溺水智能预警系统解决方案采用yolov7先进的AI视觉识别算法模型框架&#xff0c;防溺水智能预警系统解决方案算法实现对危险水域人员活动、水面情况等各项指标的监测和分析。当发现有人进入危险水域或出现紧急情况时&#xff0c;算法会立即发出预警信号。Yolo算法采用一个单独…

Android Glide preload RecyclerView切入后台不可见再切换可见只加载当前视野可见区域item图片,Kotlin

Android Glide preload RecyclerView切入后台不可见再切换可见只加载当前视野可见区域item图片&#xff0c;Kotlin <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name"android.permission.RE…

使用Nacos与Spring Boot实现配置管理

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

Qt6和Rust结合构建桌面应用

桌面应用程序是原生的、快速的、安全的&#xff0c;并提供Web应用程序无法比拟的体验。 Rust 是一种低级静态类型多范式编程语言&#xff0c;专注于安全性和性能&#xff0c;解决了 C/C 长期以来一直在努力解决的问题&#xff0c;例如内存错误和构建并发程序。 在桌面应用程序开…

单片机电子元器件-数码管

数码管分类 共阳 把所有数码管的阳极接到一起形成公共阳极COM 数码管 共阳极COM 接到 5V 电源 共阴 把所有数码管的阴极接到一起形成公共阴极COM 数码管 共阴极COM 接到 地 GND 上 八段 数码管 和 七段数码管&#xff0c; 多了一个 小数点 DP 数码管显示原理 一个数码管如…

uniapp项目实战系列(2):新建项目,项目搭建,微信开发工具的配置

目录 系列文章目录uniapp项目实战系列(1)&#xff1a;导入数据库&#xff0c;启动后端服务&#xff0c;开启代码托管&#xff08;点击跳转&#xff09;1.新建项目2.托管项目的操作&#xff1a;&#xff08;无勾选托管项目可无视&#xff09;3.项目编译预览3.1游览器编译3.2微信…

C. Battle 2023 (ICPC) Jiangxi Provincial Contest -- Official Contest

Problem - C - Codeforces 题目大意&#xff1a;有n堆石子&#xff0c;给出一个数p&#xff0c;A先B后&#xff0c;每个人每次只能取p的幂个石子&#xff08;包括1&#xff09;问A能不能赢 1<n<3e5;1<p<1e18 思路&#xff1a;先递归算出sg函数看看&#xff0c;s…

python 笔记(1)——基础和常用部分

目录 1、print 输出不换行 2、格式化输出字符串 3、浮点数的处理 4、进制转换和ASCII与字符间的转换 5、随机数 6、字符串截取和内置方法 6-1&#xff09;字符串截取 6-2&#xff09;字符串内置方法 7、元组、列表&#xff0c;及其遍历方式 7-1&#xff09;列表常用内…

使用Python构建网络爬虫:提取网页内容和图片资源

网络爬虫是一种自动获取网页内容的程序&#xff0c;它可以帮助我们高效地收集网络上的有价值信息。本文将介绍如何使用Python构建网络爬虫&#xff0c;提取网页内容和图片资源。   一、环境准备   1.安装Python环境   首先&#xff0c;确保您已经安装了Python环境。访问P…

可控硅调功电路原理

在常见的马达调速以及需要调整负载功率的场合&#xff0c;经常会用到可控硅调功电路&#xff0c;下图是常见的应用电路。 调功电路主要由阻容移相电路和可控硅触发电路构成&#xff0c;工作过程如下&#xff0c;当交流电的正半周时&#xff0c;交流电通过R5,可调电阻R3给电容C1…

java对时间序列根据阈值进行连续性分片

问题描述&#xff1a;我需要对一个连续的时间戳list进行分片&#xff0c;分片规则是下一个数据比当前数据要大于某一个阈值则进行分片&#xff1b; 解决方式&#xff1a; 1、输入的有顺序的list &#xff0c;和需要进行分片的阈值 2、调用方法&#xff0c;填入该排序的list和阈…

十种高级的代码书写方式,提高代码质量和工作效率

1.集合遍历 不使用lambda&#xff1a; List<String> list Arrays.asList("kk", "oneone", "11"); for (String name : list) {System.out.println(name); }使用lambda&#xff1a; List<String> list Arrays.asList("kk&q…

19 NAT穿透|python高级

文章目录 网络通信过程NAT穿透 python高级GIL锁深拷贝与浅拷贝私有化import导入模块工厂模式多继承以及 MRO 顺序烧脑题property属性property装饰器property类属性 魔法属性\_\_doc\_\_\_\_module\_\_ 和 \_\_class\_\_\_\_init\_\_\_\_del\_\_\_\_call\_\_\_\_dict\_\_\_\_str…

【爬虫小知识】如何利用爬虫爬网页——python爬虫

前言 网络时代的到来&#xff0c;给我们提供了海量的信息资源&#xff0c;但是&#xff0c;想要获取这些信息&#xff0c;手动一个一个网页进行查找&#xff0c;无疑是一项繁琐且效率低下的工作。这时&#xff0c;爬虫技术的出现&#xff0c;为我们提供了一种高效的方式去获取…

怎么入门网络安全(黑客)?

目录&#xff1a; 一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员&#xff08;以编程为基础的学习&#xff09;再开始学习2.不要把深度学习作为入门第一课3.以黑客技能、兴趣为方向的自学误区&#xff1a;4.不要收集过多的资料二、学习网络安全的一些前期准备三…

Kubernetes入门 十二、网络之Ingress

目录 概述安装 Ingress使用 Ingress准备工作部署Ingress设置默认后端Ingress 中的 nginx 的全局配置限流路径重写基于 Cookie 的会话保持技术配置 SSL 概述 通常情况下&#xff0c;service 和 pod 的 IP 仅可在集群内部访问。 Service 可以也使用 NodePort 暴露集群外访问端口…

Flutter性能揭秘之RepaintBoundary

作者&#xff1a;xuyisheng Flutter会在屏幕上绘制Widget。如果一个Widget的内容需要更新&#xff0c;那就只能重绘了。尽管如此&#xff0c;Flutter同样会重新绘制一些Widget&#xff0c;而这些Widget的内容仍有部分未被改变。这可能会影响应用程序的执行性能&#xff0c;有时…

QOpenGLWidget绘制实时图像

initializeGL()函数&#xff1a; initializeOpenGLFunctions();//创建VBO和VAO对象&#xff0c;并赋予IDglGenVertexArrays(1, &VAO);glGenBuffers(1, &VBO);//绑定VBO和VAO对象glBindVertexArray(VAO);glBindBuffer(GL_ARRAY_BUFFER, VBO);//为当前绑定到target的缓冲…

设计模式-职责链模式

文章目录 职责链模式模式概述主要角色适用场景实现步骤优点注意事项 定义职责链结构示例总结 职责链模式 职责链模式是一种行为设计模式&#xff0c;它可以将请求的发送者和请求的处理者解耦&#xff0c;并按照预定义的顺序处理请求。职责链模式常用于需要逐级审批或转交处理的…