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

news2024/11/13 19:00:11

前言:

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


1、在上下文及头文件均正常的情况下,下列代码的输出是( )(注: print 已经声明过)
int main ()
{
char str [] = "Geneius" ;
print ( str );
return 0 ;
}
print ( char * s )
{
if ( * s )
{
print ( ++ s );
printf ( "%c" , * s );
}
}

A: suiene         B: neius       C: run-time error        D: suieneG 

答案解析:
正确答案: A
代码实现了递归倒序打印字符串的功能,但是 ++s 使得 s 的值发生了变化,回不到 'G' 的位置上,故而没有打印 'G'

2. 若有定义: int a[2][3]; ,以下选项中对 a 数组元素正确引用的是( )
A: a[2][0]            B: a[2][3]           C: a[0][3]          D: a[1>2][1]
答案解析:
正确答案: D
本题主要考虑数组越界访问的情况,二维数组的行和列都是从 0 开始的,对于 a 数组来说,行下标最大是 1 ,列下标最大是 2 ,D选项中 1>2 表达式的值是 0 ,是正确的,其他选项行和列都可能存在越界, A 是行越界, B 是行和列都越界, C 是列越界。

3 、以下哪个选项可以正确描述 sizeof(double) ( )
A: 一个整型表达式      B: 一个双精度型表达式      C: 一个不合法的表达式        D: 一种函数调用

答案解析:
正确答案: A
sizeofC 语言中的一个操作符,不是函数调用,简单的说其作用就是返回一个对象或者类型所占的内存字节数,结果是无符号整数,因此可以把它看作是整型表达式。所以选择A

4.二维数组X按行顺序存储,其中每个元素占1个存储单元。若 X[4][4] 的存储地址为 Oxf8b82140 , X[9][9] 的存储地 址为 Oxf8b8221c ,X[7][7] 的存储地址为( )

A: Oxf8b821c4            B: Oxf8b821a6           C: Oxf8b82198              D: Oxf8b821c0

 

答案解析:
正确答案: A
假设每行有 n个元素:即X[4][4]只需要加上5就可以得到X[4][9]了,而得到的位置和X[9][9]相差5行, 那x[9][9] 元素的地址 - x[4][4] 元素的地址 = 0x21c-0x140=5n+5(21c 140 是地址末三位的十六进制 数) ,这里 n 43 ,假设 x[7][7] 的地址是 z,x[7][7] 元素的地址 - x[4][4] 元素的地址 = z-0x140 = 3n+3 z = 3n+3+140 = 3*43+3+0x140 = 0x84+0x140 = 0x1c4,看地址的尾数,选择 A

5.求函数返回值,传入 -1 ,则在 64 位机器上函数返回( )
int func ( int x )
{
int count = 0 ;
while ( x )
{
count ++ ;
x = x & ( x - 1 ); // 与运算
}
return count ;
}
A: 死循环        B: 64        C: 32        D: 16
答案解析:
正确答案: C
x=x&(x-1)这个表达式执行一次就会将x2进制中最右边的1 去掉,在 x 变成 0 之前,表达式能执行几次,就去掉几个 1 ,所以这 个代码实现了求一个有符号整数二进制补码中1 的个数的功能,我们知道 -1 的补码是全 1 ,而 int 类型 4 个字节 32 位,选 C

6.读代码选结果( )

int count = 0 ;
int x = - 1 ;
while ( x )
{
count ++ ;
x = x >> 1 ;
}
printf ( "%d" , count );
A: 1           B: 2           C: 32           D: 死循环,没结果
知识点补充:
1. 左移 << : 最左侧位不要了 , 最右侧补 0。
2. 右移 >> : 最右侧位不要了 , 最左侧补符号位 ( 正数补 0, 负数补1)。
3. 无符号右移 >>>: 最右侧位不要了 , 最左侧补 0.(c语言没有,java有)
答案解析:
正确答案: D
此题一个关键,有符号数右移运算高位是补符号位的,负数的符号位是 1 ,所以 x 永远不会变为 0 ,是个死循环

7.下述赋值语句错误的是( )

A: a = (b = (c = 2 , d = 3))       B: i++        C: a/b = 2          D: a = a < a + 1
答案解析:
正确答案: C
C 选项中 a/b 是表达式,表达式计算的结果是一个值不能做左值

8.以下程序运行后的输出结果是()

int main ()
{
int a = 1 , b = 2 , m = 0 , n = 0 , k ;
k = ( n = b < a ) && ( m = a );
printf ( "%d,%d\n" , k , m );
return 0 ;
}
A: 0,0              B: 0,1            C: 1,0               D: 1,1
答案解析:
正确答案: A
k=(n=b<a)&&(m=a); 这部分的执行顺序如下:先执行 n=b<a 部分,其中,关系运算符优先级高于赋值运算符,所以先算 b<a ,得到0 n=0 赋值运算的结果将作为括号内表达式的结果,即 (n=b<a)&&(m=a) 转换成 (0)&&(m=a)&&运算前表达式为假,则后面的括号(m=a)不运算,m值还是0,最后,&&的结果是0,即k=0

9.下面函数的输出结果是( )

int main ()
{
int k = 1 ^ ( 1 << 31 >> 31 );
printf ( "%d\n" , k );
}

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

答案解析:
正确答案: C
(1<<31); 左移 31 位,并在右侧填充 0 ,得到 0x80000000 ,即符号位为 1 ,其他为 0 ,即 -2147483648 int k =1^(1<<31>>31);注意,这里在右移的时候,符号位保持为 1 ,右移后填充 1 ,结果为 0xFFFFFFFF ,即 -1 ,0x00000001^0xFFFFFFFF,即 0xFFFFFFFE(-2)

10.如下代码的输出结果是( )

#include <stdio.h>
int main ()
{
int i = 1 ;
sizeof ( i ++ );
printf ( "%d\n" , i );
return 0 ;
}

A: 1               B:               4 C: 2             D: 8  

答案解析:
正确答案: A
一般表达式的运算是在运行时执行的,而 sizeof 是一个编译阶段就执行的运算符,在其内的任何运算都不执行,只推测出其中表达式结果的类型求其大小,故前后i 的值不变。

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

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

 

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

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

相关文章

【网络云盘客户端】——项目简介

项目简介 网络云盘客户端时基于QT/C框架实现了一个网络云盘客户端软件&#xff0c;主要功能包括用户的注册&#xff0c;登录&#xff0c;显示用户的个人文件列表&#xff0c;以及文件的上传&#xff0c;下载&#xff0c;删除&#xff0c;共享文件。 登录界面 主窗口界面 文件…

Postman中参数区别及使用说明

一、Params与Body 二者区别在于请求参数在http协议中位置不一样。Params 它会将参数放入url中以&#xff1f;区分以&拼接Body则是将请求参数放在请求体中 后端接受数据: 二、body中不同格式 2.1 multipart/form-data key - value 格式输入&#xff0c;主要特点是可以上…

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

目录 一、软件简介 二、软件下载 一、软件简介 Proteus软件是一款电路设计和仿真的综合性软件&#xff0c;由Labcenter公司开发。它提供了一个交互式的图形界面&#xff0c;用户可以在其中构建电路、仿真结果并实时观察仿真结果。 1、Proteus的历史和演变 Proteus软件最初于…

Matlab图像处理-加法运算

加法运算 图像加法运算的一个应用是将一幅图像的内容叠加到另一幅图像上&#xff0c;生成叠加图像效果&#xff0c;或给图像中每个像素叠加常数改变图像的亮度。 在MATLAB图像处理工具箱中提供的函数imadd()可实现两幅图像的相加或者一幅图像和常量的相加。 程序代码 I1 i…

C++学习记录——이십유 C++11(2)

文章目录 1、类的新功能1、移动构造和移动赋值2、default、delete 2、可变参数模板3、STL容器的emplace 1、类的新功能 1、移动构造和移动赋值 逐成员按字节拷贝就是浅拷贝。一个类中&#xff0c;如果达成默认移动构造的要求&#xff0c;那么传右值就会使用移动构造了&#xf…

022-从零搭建微服务-短信服务(二)

写在最前 如果这个项目让你有所收获&#xff0c;记得 Star 关注哦&#xff0c;这对我是非常不错的鼓励与支持。 源码地址&#xff08;后端&#xff09;&#xff1a;https://gitee.com/csps/mingyue 源码地址&#xff08;前端&#xff09;&#xff1a;https://gitee.com/csps…

Docker镜像的私有定制之nginx

一、背景 机器上已有nginx的可执行文件&#xff0c;但它是基于官方源码进行修改过的&#xff0c;可模块的源码一时找不到。另外&#xff0c;每次都基于源码去构建&#xff0c;对于Nginx部署也是麻烦。 所以&#xff0c;我们想要改为docker容器化部署nginx。 操作系统是centos…

STL-常用容器-map/ multimap容器(二叉树-红黑树)

1 map基本概念 简介&#xff1a; Map是一种关联容器&#xff0c;它通过将键和值成对存储&#xff0c;实现了快速的键值查找。在Map中&#xff0c;每个键都是唯一的&#xff0c;而值可以重复。Map容器内部使用平衡二叉树&#xff08;通常是红黑树&#xff09;的数据结构来实现高…

HodlSoftware-免费在线PDF工具箱 加解密PDF 集成隐私保护功能

HodlSoftware是什么 HodlSoftware是一款免费在线PDF工具箱&#xff0c;集合编辑 PDF 的简单功能&#xff0c;可以对PDF进行加解密、优化压缩PDF、PDF 合并、PDF旋转、PDF页面移除和分割PDF等操作&#xff0c;而且工具集成隐私保护功能&#xff0c;文件只在浏览器本地完成&…

OpenCV基础知识(8)— 图形检测

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。图形检测是计算机视觉的一项重要功能。通过图形检测可以分析图像中可能存在的形状&#xff0c;然后对这些形状进行描绘&#xff0c;例如搜索并绘制图像的边缘&#xff0c;定位图像的位置&#xff0c;判断图像中有没有直线、…

【面向大一新生IT技术社群招新啦,不来瞅瞅?】

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生 &#x1f43b;‍❄️个人主页&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;落798. &#x1f54a;️系列专栏&#xff1a;【零基础学java】 ----- 【重识c语言】 ---- 【计算机网络】—【Spri…

Fortran 微分方程求解 --ODEPACK

最近涉及到使用Fortran对微分方程求解&#xff0c;我们知道MATLAB已有内置的函数&#xff0c;比如ode家族&#xff0c;ode15s&#xff0c;对应着不同的求解办法。通过查看odepack的官方文档&#xff0c;我尝试使用了dlsode求解刚性和非刚性常微分方程组。 首先是github网址&am…

代码随想录算法训练营第四十六天|LeetCode 1143,1035,53

目录 LeetCode 1143.最长公共子序列 动态规划五步曲&#xff1a; 1.确定dp[i][j]的含义 2.找出递推公式 3.初始化dp数组 4.确定遍历顺序 5.打印dp数组 LeetCode 1035.不相交的线 LeetCode 53.最大子序列和&#xff08;动态规划&#xff09; 动态规划五步曲&#xff1a; 1.确定…

【rust/egui】(五)看看template的app.rs:SidePanel、CentralPanel以及heading

说在前面 rust新手&#xff0c;egui没啥找到啥教程&#xff0c;这里自己记录下学习过程环境&#xff1a;windows11 22H2rust版本&#xff1a;rustc 1.71.1egui版本&#xff1a;0.22.0eframe版本&#xff1a;0.22.0上一篇&#xff1a;这里 SidePanel 侧边栏&#xff0c;如下图 …

【软件安装】Python安装详细教程(附安装包)

软件简介 Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计&#xff0c;作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构&#xff0c;还能简单有效地面向对象编程。Python语法和动态类型&#xff0c;以及解释型语言的本质&#xff0c…

Dynamic CRM开发 - 使用XrmToolbox工具创建自动编号

有时需要为实体创建自动编号,可以使用XrmToolbox工具。 下载XrmToolbox(https://www.xrmtoolbox.com/) 解压后打开XrmToolBox.exe,如下图: 打开后界面如下: 在“Tools”选项卡中找到Auto Number Manager工具</

麒麟OS国产系统身份证阅读器web网页开发使用操作流程

1、打开麒麟软件商店&#xff0c;选择驱动&#xff0c;找到身份证阅读器&#xff0c;找到东信智能身份证社保卡读卡器&#xff0c;点击安装。 2、安装完成后&#xff0c;点击打开 3、进入读卡界面 4、进入代码集成 <script type"text/javascript">var ctnFin…

A股自动交易,自动止盈止损,自动打板

一、前言 炒股的都知道&#xff0c;股市里最难克服的就是人性。开发这个项目的初衷即是想通过机器来克服人性的弱点。因为只要把策略定好&#xff0c;机器会无条件挂单。该止损止损&#xff0c;该止盈止盈。 短线的话卖比买更重要&#xff1a;复盘就会发现&#xff0c;大的亏…

算法通关村第十关——快速排序算法

1 快速排序基本过程 快速排序的是将分治法运用到排序问题的典型例子。力扣912题&#xff0c;给你一个整数数组 nums&#xff0c;请你将该数组升序排列。 基本思想&#xff1a;是通过随机标记一个pivot元素将含有n个元素的序列划分为左右两个子序列left和right&#xff0c;其中…