C语言--每日选择题--Day31

2023-12-04

第一题

1. 下面程序 i 的值为()

int main()
{
    int i = 10;
    int j = 0;
    if (j = 0)
        i++; 
    else
        i--;        
    return 0;
}

A:11

B:9

答案及解析 B

if语句中的条件判断为赋值语句的时候,因为赋值语句的返回值是右操作数;

比如 if(j = 1) 相当于 if(1),if(j = 0) 相当于if(0)

所以在了解这里之后,就可以得出答案啦

第二题(注意细节)

2. 下面程序的输出结果为()

#include <stdio.h>
void fun(int *s) 
{
    static int j = 0;

    do 
    {
        s[j] += s[j + 1];
    } while (++j < 2);
}
int main() 
{
    int i, a[10] = {1, 2, 3, 4, 5};

    for (i = 1; i < 3; i++)
        fun(a);

    for (i = 1; i < 5; i++)
        printf("%d", a[i]);
    printf("\n");

    return 0;
}

A:34756

B:5745

C:5795

D:35745

答案及解析 B

本题考查的是局部static变量和do-while循环的认识;

局部static变量,只会初始化一次,因为是存在静态区的,值不会被刷新;

do-while循环,先执行语句,再判断条件

所以我们这里是进入2次fun函数,最后打印的时候是打印下标为1~4的哦,这里要注意;

在fun函数内部:

第一次进入函数:先初始化一下static变量j = 0;之后进入两次do-while循环;j = 2的时候循环结束,函数也结束;

第二次进入函数:不会执行初始化j,虽然j = 2;但是先执行do-while内部的语句,再判断;

最后数组元素分别为:3 5 7 4 5

输出结果为 5 7 4 5;

第三题

3. 下列代码的结果是

#include<stdio.h>
int main() 
{ 
    int a[5] = {1, 2, 3, 4, 5}; 
    int *ptr = (int *)(&a + 1); 
    printf("%d,%d", *(a + 1), *(ptr - 1)); 
    return 0;
}

A:3,5

B:2,4

C:2,5

D:3,4

答案及解析 B

本题是考查你对指针和数组的认识,我们来一步一步分析:

数组名代表首元素地址,但是有2个例外:sizeof(数组名),&数组名,数组名都表示整个数组

在了解上面的知识之后:

先看&a,这里表示的取整个数组的地址

对指针的加法,移动的字节数是根据这个指针指向的内容的数据类型算的,数据类型是什么,对指针加的数字就乘这个内容的数据类型的字节数;

&a指向的内容是整个数组,数组的数据类型是int [5]

所以&a+1,是移动的整个数组的大小,也就是1 * (5 * 4)字节,移动的也就是整个数组的大小;

但是这个指针被强制转换为int*类型,也就是指向的内容的数据类型为int,加减就不一样了;

则ptr - 1,就是减小一个int类型,4个字节,而不是整个数组的大小了;

第四题

4. 执行下面程序段后, x 的值是( )

int a = 14, b = 15, x;
char c = 'A';
x = (a && b) && (c < 'B');

A:true

B:false

C:0

D:1

答案及解析 D

首先我们来看x = (a&&b)&&(c < 'B')

&&是与操作符,是双目操作符,结合性是从左到右;

我们要知道条件判断操作符,真为1,假为0

先算右边的操作数(a&&b)

因为a = 14,b = 15 ;上面就转换为(14 && 15)为真;

所以1 && (c < 'B')

右边c = 'A' ,c < 'B'成立,为真;

最后x = 1 && 1;

所以都为1,为真,x = 1;

第五题

5. while 循环语句的循环体至少执行一次,请问这句话的说法是正确的吗?

A:正确

B:错误

答案及解析 B

只有do-while才会至少执行一次,先执行语句后判断;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言--每日选择题--Day31 的相关文章

随机推荐

  • 光伏混合储能并网直流微电网仿真模型(Simulink仿真实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Simulink仿真实现
  • 基于异步电机的光伏储能三相并网微电网仿真模型(Simulink仿真实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Simulink仿真实现
  • 关于软件测试笔试题目

    在学习和工作中 我们经常接触到试题 试题是考核某种技能水平的标准 你知道什么样的试题才是好试题吗 下面小编给大家分享关于软件测试笔试题目内容 希望能够帮助大家 关于软件测试笔试题目 一 判断题 1 软件测试的目的是尽可能多的找出软件的缺陷
  • 在直播间抢到好多实惠东东,全靠抖音支付

    前不久我特别喜欢的一位主播的直播间做活动 很多我放在购物车里好久的心仪好物都有秒杀惊喜价 更让我开心的是 在拼手速抢这些秒杀好物的时候 我都成功了 这主要是因为我用了抖音支付 付款环节特别丝滑顺畅 让我在抖音的购物体验直接原地提升了几个le
  • 坚守合规底线 波场TRON将联合多方不断提升合规水平

    数字化时代 区块链和加密技术因其去中心化 全球化及透明度等优势在金融科技领域备受关注 但与此同时 一些风险事件的发生也暴露了行业合规化缺乏等问题的存在 近期 有媒体报道称 波场TRON或成为少数非法组织尤其是美国认定的恐怖组织融资的工具 对
  • 三相共直流母线式光伏储能VSG仿真模型研究(Simulink仿真实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Simulink仿真实现
  • 数据通信——OSPF路由控制实验

    实验需求 我们采用OSPF完成路由的控制 首先连接如下拓扑 所有设备均属于area 0 网段及环回口配置如上图所示 实验目的 R4和R1的环回口通信路径为R4 R2 R1若R2出现问题 自动切换到R3路径 实验配置 1 配置好各个接口的IP
  • 孙宇晨入选The Giving Block年度加密慈善人物

    日前 全球主流加密捐赠平台The Giving Block公布了2023年度 加密慈善人物 榜单 以表彰过去一年在加密慈善领域做出卓越贡献的个人 其中 波场TRON创始人 火币HTX全球顾问委员会委员孙宇晨因其瞩目的慈善成就入选该榜单 在榜
  • C++ -- 每日选择题 -- Day2

    第一题 1 下面代码中sizeof A 结果为 pragma pack 2 class A int i union U char str 13 int i u void func typedef char cp enum red green
  • 链表高频面试题

    1 两个链表第一个公共子节点 LeetCode160 给你两个单链表的头节点 headA 和 headB 请你找出并返回两个单链表相交的起始节点 如果两个链表不存在相交节点 返回 null 图示两个链表在节点 c1 开始相交 listA 4
  • 「Qt Widget中文示例指南」如何创建一个计算器?(二)

    Qt gt https www evget com product 3579 是目前最先进 最完整的跨平台C 开发工具 它不仅完全实现了一次编写 所有平台无差别运行 更提供了几乎所有开发过程中需要用到的工具 如今 Qt已被运用于超过70个行
  • 江铃汽车热设计工程师岗面试给我留下了较好的体验,感觉很有诚意

    includeusing namespace std int main int n m k cin gt gt n gt gt m gt gt k 秋招快结束啦 不管有没有收获满意的 offer 都要准备好启程前往新的目的地了 租房是应届生
  • Microsoft 365 for Mac:提升您的办公效率的终极选择

    在现代工作环境中 高效的办公软件是提高工作效率和团队合作的关键 Microsoft 365 for Mac 前身为Office 365 是微软为Mac操作系统推出的一套全面的办公软件解决方案 为用户提供了强大的工具和功能 帮助您在任何地方都
  • 项目实战之RabbitMQ死信队列应用

    作者名称 DaenCode gt https blog csdn net 2302 79094329 作者简介 啥技术都喜欢捣鼓捣鼓 喜欢分享技术 经验 生活 人生感悟 尝尽人生百味 方知世间冷暖 文章目录 架构图 application
  • CMake 教程:常用命令及其使用方法

    CMake是一个跨平台 开源的构建工具 它可以自动生成Makefile或者Visual Studio等IDE的工程文件 它能够帮助开发者更方便地管理项目的构建过程 提高项目构建的效率 在本文中 我们将介绍CMake常用的命令以及对应的用法
  • 题解 | #找出每个学校GPA最低的同学#

    原文连接 分享一下我的秋招经验 希望可以帮到你我的秋招目基本结束了 这段秋招很充实也收获很多 当然踩坑也很多 因为之后一段时间我可能要专心准备论文和考公了 一些同学找到我说求职很难突破自己的性格 心理弱点 跟陌生人说话紧张 无法突破自我等等
  • 网络安全技术有哪些

    前言 网络安全技术是保障网络安全的重要手段 以下是一些常见的网络安全技术 防火墙技术 防火墙是一种网络安全设备 可以对网络流量进行过滤和控制 防止未经授权的访问和攻击 入侵检测系统 IDS 入侵检测系统可以监测网络流量 发现和报告网络攻击和
  • offer决赛圈,吉利成都 vs 理想上海

  • 【计算机毕业设计】校园生活服务平台

    校园生活服务平台 如今社会上各行各业 都喜欢用自己行业的专属软件工作 互联网发展到这个时候 人们已经发现离不开了互联网 新技术的产生 往往能解决一些老技术的弊端问题 因为传统校园生活服务平台信息管理难度大 容错率低 管理人员处理数据费工费时
  • C语言--每日选择题--Day31

    第一题 1 下面程序 i 的值为 int main int i 10 int j 0 if j 0 i else i return 0 A 11 B 9 答案及解析 B if语句中的条件判断为赋值语句的时候 因为赋值语句的返回值是右操作数