c语言每日一练(12)

前言:
每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,暑假时三天之内必有一更,到了开学之后,将看学业情况更新。

五道选择题:

1、程序运行的结果是() 

#define ADD(x) x+x
#include<stdio.h>
int main()
{int m = 1, n = 2, k = 3;int sum = ADD(m + n) * k;printf("sum = %d", sum);
}

A、 sum=9 B、 sum=10 C、 sum=12 D、 sum=18

解析:考察你对宏定义的理解。宏定义在预处理阶段就会被处理,也就是它走不到编译的阶段它就会被执行,因此我们可以粗略地把宏定义当作是一种替换。

比方说#define abc 5,那么abc*6,就可以直接看作5*6,不需要管其他运算符,你先替换完再说。这道题将ADD(x)宏定义为x+x,因此sum=1+2+1+2*3,不用管别的,你就先替换,所以sum=10,答案选B

2、以下程序的输出的结果是()

#include<stdio.h>
void incre()
{static int x = 1;x *= x + 1;printf("%d ", x);
}
int main()
{int i;for (i = 1; i <= 2; i++) incre();
}

A、 3 3 B、 2 2 C、 2 6 D、 2 5

解析:观察代码构成发现,代码由一个main函数和一个incre函数构成,而main函数的主要作用就是调用了两次incre函数进行对应地操作。所以关键在incre,incre函数首先定义了一个x并将它初始化为1,但特别地是,这个x被static所修饰,因此,这个x的储存是放在静态区中的,故x是不会再被重定义,它在程序运行的一开始就会被定义且生命周期一直到程序结束。

由于次数少,所以直接进行代入,第一次进入incre(),x*=x+1,令x=2,故打印2,第二次进入,此时x=2,x*=x+1,令x=6,故打印6,因此答案为C

 3、以下程序的输出结果是哪一项()

#include <stdio.h>
int main()
{int a[][3] = { 1,2,3,4,5,6,7,8,9,10,11,12 }, * p[4], i;for (i = 0; i < 4; i++)p[i] = &a[i][3];printf("%d\n", p[2][2]);
}

A、 输出项不合法 B、6   C、8 D、12

解析:观察代码可以发现,代码首先定义了一个没有行数只有列数的数组a,接着又定义了一个整型指针数组p和一个控制循环次数的变量i。然后使用循环的方式将一些地址存放到整型指针数组p中,循环次数只有4次,可以直接代入。

当i=0时,将a[0][3]的地址存放到p[0],也就是1行4列的地址,但没有4列,走到2行,所以把2行1列的地址即4的地址存放到p[0]中。

当i=1时,将a[1][3]的地址存放到p[1]中,也就是2行4列的地址,但没有4列,走到3行,将3行1列即7的地址存放到p[1],

当i=2时,将4行1列即10存放到p[2]中,当i=3时,将5行1列存放到p[3]中,也就是将12后面的地址存放到p[3]中,但没有,所以p[3]越界了,因此一旦使用p[3]是有问题的。

最后打印p[2][2],p[2]为10的地址,因此p[2][2]为12,所以打印12,选D

 4、以下关于结构体与共用体的说法,其中正确的是()
A、共用体同一个内存段可以来存放几种不同类型的成员,但在某一时刻只能存放一个成员。
B、结构体变量所占的内存长度等于最长的成员的长度,共用体变量所占内存长度是各成员占的内存长度之和。
C、共用体每个成员分别占有自己的内存单元。
D、结构体类型可以出现在共用体类型的定义中,但共用体类型不能出现在结构体类型定义之中。

解析:共用体指的是由一系列具有相同数据类型或者不同数据类型的数据组成的集合,但它们的数据为互斥关系,因为共用体所有的成员共同使用一份内存空间,当使用成员A的时候,不同于成员A类型的成员B注定不是原来的它。因此A正确。B选项刚好相反,B错误。C选项与概念相悖,大错特错。D选项错误,结构体类型和共用体类型没什么特殊的,本质上都是类型,可以用。综上所述,选A

5、下列程序段的输出结果为()

#include<stdio.h>
int main()
{int arr[] = { 6,7,8,9,10 };int* ptr;ptr = arr;*(ptr + 2) += 2;printf("%d,%d\n", *ptr, *(ptr + 2));
}

 A、8,10   B、6,8    C、7,9    D、6,10

解析:先定义了一个数组arr,并在里面存放了6,7,8,9,10。接着定义了一个指针ptr,并将数组arr的首地址赋值给了ptr,然后*(ptr+2)+=2,令ptr这个地址往后移两个单位,来到8上,令8+=2,使数组arr中存放的6,7,8,9,10变为6,7,10,9,10,所以最后打印ptr时打印出6,打印(ptr+2)打印出10,选D

 编程题1:

 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

 

提示:由于只需要最后一个单词的长度,所以我们可以根据单词之间有空格的特性来进行遍历,你也可以尝试以下反着计算,也就是先用strlen计算出字符串的长度然后用反着的方式来计算最后一个单词的长度,都是可以的。 

int lengthOfLastWord(char* s) {int i = 0;int count = 0;//计数器,计算最后一个单词的长度int min = 0;//存储器,避免最后一个单词后面有空格,将计数器清零for (i = 0; s[i] != '\0'; i++){if (s[i] == ' '){count = 0;//一旦遇到空格清空计数器}else{count++;min = count;}}if (count == 0)//当计数器为0,不是最后一个单词后面有空格//就是本身就全为空格,本身就全为空格,count也为0,不影响{count = min;}return count;
}

编程题2:

 136. 只出现一次的数字 - 力扣(LeetCode)

快乐的暑假马上就结束了,最后来道简单题,放松一下 

 

提示:两个相同的数^(异或)=0且^满足交换律 

int singleNumber(int* nums, int numsSize){
int i=0;
int a=0;
for(i=0;i<numsSize;i++)
{a^=nums[i];
}
return a;
}

好了,今天的练习到这里就结束了,感谢各位友友的来访,祝各位友友前程似锦O(∩_∩)O

 

 

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

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

相关文章

学习乐趣无限:学乐多光屏P90助力儿童智能学习新纪元

在这个变革的浪潮中&#xff0c;学乐多光屏P90以其卓越的功能和深刻的教育理念&#xff0c;成为了智能儿童学习领域的引领者&#xff0c;为孩子们开启了全新的学习体验。 融合创新技术&#xff0c;引领学习变革 学乐多光屏P90凭借其独特的触摸和投影光学技术&#xff0c;为儿…

spring boot 测试用例

依赖包 <dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.2.5.RELEASE</version><scope>compile</scope></dependency><dependency><groupId>ju…

【Python编程】将同一种图片分类到同一文件夹下,并且将其分类的路径信息写成txt文件进行保存

注&#xff1a;数据结构同上一篇博文类似 一、代码 import os import cv2 import shutilpath0os.getcwd()\\apple\\RGB path1os.getcwd()\\apple\\tof_confidence # path2os.getcwd()\\apple\\tof_depth # path3os.getcwd()\\apple\\tof_depthRGB # path4os.getcwd()\\apple\…

HTML5-1-标签及属性

文章目录 语法规范标签规范标签列表通用属性基本布局 页面的组成&#xff1a; HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是用来描述网页的一种语言&#xff0c;它不是一种编程语言&#xff0c;而是一种标记语言。 HTML5 是下一代 HTM…

视频汇聚/视频云存储/视频监控管理平台EasyCVR接入海康SDK协议后无法播放该如何解决?

开源EasyDarwin视频监控/安防监控/视频汇聚EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#…

【Linux-Day8- 进程替换和信号】

进程替换和信号 问题引入 我们发现 终端输入的任意命令的父进程都是bash,这是因为Linux系统是用fork()复制出子进程&#xff0c;然后在子进程中调用替换函数进行进程替换&#xff0c;实现相关命令。 &#xff08;1&#xff09; exec 系列替换过程&#xff1a;pcb 使用以前的只…

若依Cloud集成Flowable6.7.2

项目简介 基于若依Cloud的Jove-Fast微服务项目&#xff0c;集成工作流flowable(接上篇文章) 若依Cloud集成积木报表 项目地址&#xff1a;https://gitee.com/wxjstudy/jove-fast 后端 新建模块 目录结构如下: 引入依赖 前提:引入依赖之前先配置好maven的setting.xml &…

Java 8 新特性——Lambda 表达式(2)

一、Java Stream API Java Stream函数式编程接口最初在Java 8中引入&#xff0c;并且与 lambda 一起成为Java开发里程碑式的功能特性&#xff0c;它极大的方便了开放人员处理集合类数据的效率。 Java Stream就是一个数据流经的管道&#xff0c;并且在管道中对数据进行操作&…

<C++> STL_容器适配器

1.容器适配器 适配器是一种设计模式&#xff0c;该种模式是将一个类的接口转换成客户希望的另外一个接口。 容器适配器是STL中的一种重要组件&#xff0c;用于提供不同的数据结构接口&#xff0c;以满足特定的需求和限制。容器适配器是基于其他STL容器构建的&#xff0c;通过…

【算法】经典的八大排序算法

点击链接 可视化排序 动态演示各个排序算法来加深理解&#xff0c;大致如下 一&#xff0c;冒泡排序&#xff08;Bubble Sort&#xff09; 原理 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法&#xff0c;它通过多次比较和交换相邻元素的方式&#xff0c;将…

基于神经网络的3D地质模型

地球科学家需要对地质环境进行最佳估计才能进行模拟或评估。 除了地质背景之外&#xff0c;建立地质模型还需要一整套数学方法&#xff0c;如贝叶斯网络、协同克里金法、支持向量机、神经网络、随机模型&#xff0c;以在钻井日志或地球物理信息确实稀缺或不确定时定义哪些可能是…

视频汇聚/视频监控管理平台EasyCVR接入海康SDK协议后无法播放该如何解决?

开源EasyDarwin视频监控/安防监控/视频汇聚EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#…

[Linux]命令行参数和进程优先级

[Linux]命令行参数和进程优先级 文章目录 [Linux]命令行参数和进程优先级命令行参数命令行参数的概念命令函参数的接收编写代码验证 进程优先级进程优先级的概念PRI and NI使用top指令修改nice值 命令行参数 命令行参数的概念 命令行参数是指用于运行程序时在命令行输入的参数…

Python之动态规划

序言 最近在学习python语言&#xff0c;语言有通用性&#xff0c;此文记录复习动态规划并练习python语言。 动态规划&#xff08;Dynamic Programming&#xff09; 动态规划是运筹学的一个分支&#xff0c;是求解决策过程最优化的过程。20世纪50年代初&#xff0c;美国数学家…

ospf不规则区域划分和数据库表

华子目录 ospf不规则区域1.远离骨干的非骨干区域2.不连续骨干 不规则区域解决方案1.tunnel-点到点GRE2.ospf虚链路3.多进程双向重发布&#xff08;推荐&#xff09; ospf的数据库表 ospf不规则区域 1.远离骨干的非骨干区域 图示 2.不连续骨干 图示 不规则区域解决方案 …

成都瀚网科技有限公司:抖店精选联盟企业是什么?

我很高兴为您提供有关如何加入抖店特色联盟企业以及加入的好处的信息。在这篇文章中&#xff0c;我将为大家详细介绍如何申请加入抖店精选的关联公司&#xff0c;并讲解加入的好处。希望能够帮助您更好地了解和使用抖店精选联盟企业平台。 1、如何加入抖店精选联盟企业&#xf…

Docker基础入门:容器数据卷与Dockerfile构建镜像(发布)

Docker基础入门&#xff1a;容器数据卷与Dockerfile构建镜像&#xff08;发布&#xff09; 一、docker容器数据卷1.1、使用docker容器数据卷1.2、具名挂载、匿名挂载1.3、如何确定是具名挂载还是匿名挂载 二、使用dockerfile2.1 初识Dockerfile2.2 Dockerfile构建过程2.3 Docke…

Ansible学习笔记2

Ansible是Python开发的自动化运维工具&#xff0c;集合了众多运维工具&#xff08;Puppet、cfengine、chef、func、fabric&#xff09;的优点&#xff0c;实现了批量系统配置&#xff0c;批量程序部署、批量运行命令等功能。 特点&#xff1a; 1&#xff09;部署简单&#xff…

Kafka3.0.0版本——Leader故障处理细节原理

目录 一、服务器信息二、服务器基本信息及相关概念2.1、服务器基本信息2.2、LEO的概念2.3、HW的概念 三、Leader故障处理细节 一、服务器信息 三台服务器 原始服务器名称原始服务器ip节点centos7虚拟机1192.168.136.27broker0centos7虚拟机2192.168.136.28broker1centos7虚拟机…