弯道超车必做好题集锦三(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

 

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

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

 


 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全面解析MES系统中的报工操作

一、报工操作的定义&#xff1a; 报工操作是指在生产过程中&#xff0c;操作员通过MES系统记录和提交生产工序的相关信息&#xff0c;如工时、产量、质量等。报工操作将生产过程中的实际情况反馈给MES系统&#xff0c;实现生产数据的实时采集和记录。 二、报工操作的流程&…

MacOS goland go1.21 debug问题

安装dlv brew install dlv 安装之后在终端会显示所在目录 类似/usr/local/Cellar/delve/1.21.0/bin 配置goland 在文件系统中找到goland 右击选择show package contents -> Contents -> plugins -> go 尝试替换 其中对应系统 的 dlv 结果还是不行 然后打开应用gol…

常见前端面试之VUE面试题汇总七

20. 对 vue 设计原则的理解 1.渐进式 JavaScript 框架&#xff1a;与其它大型框架不同的是&#xff0c;Vue 被设计 为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上 手&#xff0c;还便于与第三方库或既有项目整合。另一方面&#xff0c;当与现代化的…

universal robot 机械臂 官方基本教程

https://academy.universal-robots.cn/modules/e-Series-core-track/Chinese/module3/story_html5.html?courseId2166&languageChinese 教程1 控制箱内部 包含&#xff1a; 主机板&#xff0c;SD卡&#xff0c;和安全控制板 安全控制板负责所有控制信息&#xff0c;包括…

LeetCode(力扣)617. 合并二叉树Python

LeetCode617. 合并二叉树 题目链接代码 题目链接 https://leetcode.cn/problems/merge-two-binary-trees/ 代码 递归 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # …

【springboot】springboot定时任务:

文章目录 一、文档&#xff1a;二、案例&#xff1a; 一、文档&#xff1a; 【cron表达式在线生成器】https://cron.qqe2.com/ 二、案例&#xff1a; EnableScheduling //开启任务调度package com.sky.task;import com.sky.entity.Orders; import com.sky.mapper.OrderMapper; …

LeetCode-160. 相交链表

这是一道真的非常巧妙的题&#xff0c;题解思路如下&#xff1a; 如果让他们尾端队齐&#xff0c;那么从后面遍历就会很快找到第一个相交的点。但是逆序很麻烦。 于是有一个巧妙的思路诞生了&#xff0c;如果让短的先走完自己的再走长的&#xff0c;长的走完走短的&#xff0c;…

MyBatisx代码生成

MyBatisx代码生成 1.创建数据库表 CREATE TABLE sys_good (good_id int(11) NOT NULL,good_name varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,good_desc varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,PRIMARY KEY (good_id) ) ENGINEInnoDB DEFAULT CHA…

Multisim软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 Multisim软件是一款电路仿真和设计软件&#xff0c;由美国国家仪器公司&#xff08;National Instruments&#xff09;开发。它提供了一个交互式的图形界面&#xff0c;使用户能够轻松地构建和仿真电路。以下是Multisim软件的详…

nowcoder NC236题 最大差值

目录 题目描述&#xff1a; 示例1 示例2 题干解析&#xff1a; 暴力求解&#xff1a; 代码展示&#xff1a; 优化&#xff1a; 代码展示&#xff1a; 题目跳转https://www.nowcoder.com/practice/a01abbdc52ba4d5f8777fb5dae91b204?tpId128&tqId33768&ru/exa…

Typora mac版本安装

提示&#xff1a;文章介绍&#xff0c;Typora在Mac系统中免费安装使用 文章目录 一、官网下载二、安装 一、官网下载 官网地址&#xff1a;https://www.typoraio.cn/ 二、安装 安装好后按 command 空格键&#xff0c;找到 Typora的安装路径 /Applications/Typora.app/Con…

Kubernetes(七)修改 pod 网络(flannel 插件)

一、 提示 需要重启服务器 操作之前备份 k8s 中所有资源的 yaml 文件 如下是备份脚本&#xff0c;仅供参考 # 创建备份目录 test -d $3 || mkdir $3 # $1 命名空间 # $2 资源名称&#xff1a; sts deploy configMap svc 等 # $3 资源备份存放的目录名称for app in kubec…

oauth2.0第2季 分布式认证与授权实现单点登录

一 oauth介绍 1.0 疑问汇总 1.使用jwttoken进行令牌传输&#xff0c;资源服务器在本地怎么验证token&#xff1f; 1.1 oauth的基础内容 1.1.1 oauth是什么 1.1.2 oauth的角色 1.1.3 oauth的认证流程 1.1.4 oauth的4种模式 1.2 为何要用oauth2.0 1.介绍单体架构 使用ses…

k8s节点pod驱逐、污点标记

一、设置污点&#xff0c;禁止pod被调度到节点上 kubectl cordon k8s-node-145 设置完成后&#xff0c;可以看到该节点附带了 SchedulingDisabled 的标记 二、驱逐节点上运行的pod到其他节点 kubectl drain --ignore-daemonsets --delete-emptydir-data k8s-node-145 显示被驱逐…

Android需要掌握的shell脚本基础

linux中sh是链接到bash上的&#xff0c;所以sh与bash在功能上是没有区别的&#xff0c;相当于bash解析器是sh的增强版本&#xff0c;所以安卓开发者可以在 git bash中 测试脚本 1&#xff0c;shell脚本运行与输出指令 $ cat test.sh echo 测试 【输出】$ /bin/bash test.…

LeetCode第26~30题解

CONTENTS LeetCode 26. 删除有序数组中的重复项&#xff08;简单&#xff09;LeetCode 27. 移除元素&#xff08;简单&#xff09;LeetCode 28. 找出字符串中第一个匹配项的下标&#xff08;简单&#xff09;LeetCode 29. 两数相除&#xff08;中等&#xff09;LeetCode 30. 串…

qt设计界面

widget.h #ifndef WIDGET_H #define WIDGET_H //防止文件重复包含#include <QWidget> //QWidget类所在的头文件&#xff0c;父类头文件 #include<QIcon> #include<QPushButton> …

VS的调试技巧

Visual Studiohttps://visualstudio.microsoft.com/zh-hans/vs/ 目录 1、什么是调试&#xff1f; 2、debug和release 3、调试 3.1、环境 3.2、 快捷键 3.2.1、F10和F11 3.2.2、ctrlF5 3.2.3、F5与F9 3.2.3.1、条件断点 3.3、监视和内存观察 3.3.1、监视 3.3.2、内存 …

[集创赛海云捷讯杯]全国二等奖经验分享

[集创赛海云捷讯杯]全国二等奖经验分享 一.前言二.我们的作品三.小结 一.前言 笔者是研一在校生&#xff0c;从五月份开始和本科生一起卷集创赛&#xff0c;经历初赛&#xff0c;分赛区决赛&#xff0c;全国总决赛&#xff0c;认识了很多一起做比赛的朋友收获颇丰。今年海云杯…

RabbitMQ工作模式-发布订阅模式

Publish/Subscribe&#xff08;发布订阅模式&#xff09; 官方文档&#xff1a; https://www.rabbitmq.com/tutorials/tutorial-three-python.html 使用fanout类型类型的交换器&#xff0c;routingKey忽略。每个消费者定义生成一个队列关绑定到同一个Exchange&#xff0c;每个…