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

这篇具有很好参考价值的文章主要介绍了弯道超车必做好题集锦三(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 

 文章来源地址https://www.toymoban.com/news/detail-685069.html

答案解析:
正确答案: 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

 

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

都看到这了,不如关注一下,给个免费的赞 弯道超车必做好题集锦三(C语言选择题),c语言,经验分享,其他

 弯道超车必做好题集锦三(C语言选择题),c语言,经验分享,其他


 

到了这里,关于弯道超车必做好题集锦三(C语言选择题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言重点考试选择题及答案解析C语言期末考试专升本

    C语言重点考试选择题及答案解析 介绍: 在本篇博客中,我们将为大家整理了20道C语言重点考试选择题,每道题下面都附有正确答案和解析。这些选择题涵盖了C语言的基础知识点,希望能够帮助你复习和巩固你的C语言编程技能。 1. 在C语言中,以下哪个选项是正确的注释符号

    2024年02月13日
    浏览(43)
  • c++选择题笔记

    c++的三大特性:封装,多态,继承 局部变量能否和全局变量重名?可以,局部变量会屏蔽全局变量。在使用全局变量时需要使用 \\\":: \\\"。 拷贝构造函数:参数为同类型的对象的常量引用的构造函数 函数指针:int (*f)(int,int) = max;  静态成员函数 没有this指针。 静态成员不能是虚

    2024年02月12日
    浏览(37)
  • day32—选择题

    A 减少磁盘 I/O 次数 B 减少平均寻道时间 C 提高磁盘数据可靠性 D 实现设备无关性 思路:CPU执行速度要快于磁盘io速度,为了提高效率,对于经常访问的磁盘数据,可以使用磁盘缓存来提高io速度;可以减少的是平均寻道次数,而不是时间;数据的可靠性不是由缓冲区决定的;

    2023年04月21日
    浏览(38)
  • PHP选择题复习

    1. 如何使用 PHP 输出 “hello world”? A.  \\\"Hello World\\\"; B.  echo \\\"Hello World\\\"; C.  Document.Write(\\\"Hello World\\\"); 答案: B 2. 下面代码执行结果是? ?php FUNCTION TEST() {     ECHO \\\"HELLO WORLD!n\\\"; } test(); ? A. HELLO WORLD! B. 没有任何输出 C. 编译错误,代码无法运行 D. hello world! 答案:A 解析:用户定

    2024年02月02日
    浏览(55)
  • day31—选择题

    A 1 B 9 C 10 D 11 思路:CPU中只能处理一个,一共有12个进程,那么处在就绪队列中的最多就是11个 A 线程同步的方法包括使用临界区,互斥量,信号量等 B 两个线程同时对简单类型全局变量进行写操作也需要互斥 C 实现可重入函数时,对自动变量也要用互斥量加以保护 D 可重入函

    2023年04月20日
    浏览(75)
  • day45—选择题

    A 205 B 205.140 C 68 D 205.140.36 思路:A类地址网络号是0 ~ 127,B类地址网络号是128.0 ~ 191.255,C类是192.0.0 ~ 223.255.255,因此这是一个C类网络,24位网络号 A 服务端收到客户端的SYN包后等待2 ml时间后就会进入SYN_SENT状态 B 服务端收到客户端的ACK包后会进入SYN_RCVD状态 C 当客户端处于ESTA

    2024年02月04日
    浏览(33)
  • hive基础选择题

    1.下列关于Hive特点总结正确的选项是() A Hive支持自由的扩展集群的规模,只需要重启服务即可 B Hive支持自定义函数,用户可以根据自己的需求去定义函数 C Hive SQL执行时,需要避免节点出现问题 D Hive 适合处理小批量数据 2.下面关于Hive查看表table1的分区的描述正确的是()

    2023年04月26日
    浏览(51)
  • day41—选择题

    A 180.80.76.0 B 180.80.76.255 C 180.80.77.255 D 180.80.79.255 思路:子网掩码255.255.252.0(即11111111.11111111.11111100.00000000),网络号为连续的1,主机号为连续的0;题目要发送广播分组,所以求的是广播地址,广播地址的主机位也是全为1,所以主机 180.80.77(01001101).55所在的广播地址就是180.8

    2024年02月03日
    浏览(38)
  • day24—选择题

    A O(N * M * logN) B O(N*M) C O(N) D O(M) 建立一个长度为N的最大/最小堆:将这N条链表的第一个元素拿出来建立最大/小堆,时间复杂度为O(N);依次从最小堆中取出堆顶元素,此时堆顶就是当前集合的最小值,将链表的其他元素放入堆中,调整堆的时间复杂度(O(logN)),总共还需要入堆的

    2023年04月18日
    浏览(54)
  • kafka基础选择题

    1.下面哪个命令行参数可以用来删除Kafka中的Topic? 解析 本题考查命令行操作 A:list用于查看当前服务器中的所有 topic,A错误 B:create用于创建一个新的topic,B错误 C:delete 用于删除 topic,C正确 D:describe 用于查看某个 Topic 的详情,D错误 2.在Kafka中,()是ISR 队列中最小的

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包