C语言--每日五道练习题--Day18

第一题

1.设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是()

A:10<a<15

B:a==11|| a==12 || a==13 || a==14

C:a>10 && a<15

D:!(a<=10) && !(a>=15)

答案及解析 A

A:C语言中这种的表达式,10 < a < 15 的结合性是从左往右,所以会先算出10 < a 为真假性,但是无论是真1还是假0都是都是小于15的,所以这个表达式最后的恒为真,无法比较我们想要的结果;

B:因为在数学表达式10 < a < 15 ,其中的整数是11,12,13,14.只要满足一个就是,所以是逻辑或;

C:这才是用C语言正确表示10 < a < 15;

D:因为!是逻辑取反,所以!(a <= 10 )相当于a > 10 ,!(a >= 15) 相当于  a < 15 ;

       最后表达式就相当于10 < a < 15;

第二题

2. 假设i=2,执行下列语句后i的值为()

switch( i )
{case 1 : i ++;case 2 : i --;case 3 : ++ i; break;case 4 : -- i;default : i ++;
}

A:1

B:2

C:3

D:4

答案及解析  B

一旦符合case的条件就会进入,但是case后面只要没有break,就会进入下一个case,所以我们i = 2;进入case 2:这个语句,执行i--,但是case 2没有break,继续进入case 3:

之后++i,这个时候有break,就跳出switch语句,i值为2;

第三题

3. 对于以下变量定义,正确的赋值是() 

int *p[3], a[3];

A:p=a

B:*p=a [0]

C:p=&a [0]

D:p[0]=&a[0]

答案及解析 D

本题考查的是类型匹配的问题,我们先看int *p[3],[]的优先级比*高,所以先形成数组,之后数组的元素类型是int*,这是一个指针数组,存放的是一级指针,这很重要;

后面就是正常定义int a[3]的整型数组;

A C:p是指针数组的数组名,数组地址不可修改,是指针常量,不可以做赋值操作符的左值,因为赋值操作符左边必须为变量;

B:*p,是堆二级指针解引用,是一级指针,等价于p[0];a[0]是整型,类型不匹配;

D:p[0]是一级指针,&a[0]是一级指针,类型匹配,可以赋值

第四题

4. 已知int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, *p = a;,不能表示数组a中元素的式子是() 

A:*a

B:*p

C:a

D:a[ p-a ]

答案及解析 C

A:a是数组名,代表首元素地址 ,*a代表首元素,a[0]

B:*p = a ,也就是我们定义了一个指针变量指向的是首元素的地址,解引用就是首元素a[0]

C:a是首元素地址,不是数组元素

D:a[p-a],由于p和a都代表的是首元素地址,地址相减为0,a[p-a] 等价于 a[0]

第五题(难点)

5. 下列关于const和#define定义常量的区别,说法不正确的有()

A:define宏是在预处理阶段展开。const常量是编译运行阶段使用

B:宏没有类型,不做任何类型检查,仅仅是展开。const常量有具体的类型,在编译阶段会执行类型检查

C:define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。const常量会在内存中分配(可以是堆中也可以是栈中)

D:const定义和#define定义的常量在程序运行过程中只有一份拷贝

答案及解析 D

A:正确,在预处理阶段会进行处理预处理指令的处理,#define定义的宏是在预处理阶段进行替换的,注意是仅替换,并不会检查合法性。const常量是在编译、运行阶段进行使用的。 

B:正确:所有的宏替换只是替换,就替换完就OK,所以并不会检查其合法性,而const定义的常量是内置类型(int,double,float等)所以会对其进行类型检查。 

C:正确:宏定义在程序中使用了几次在预处理阶段就会被展开几次,并不会增加内存占用,但是宏定义每展开一次,代码的长度就要发生变化,而const常量也会为其分配内存,如果const修饰的是由malloc,realloc等开辟的空间,就是在堆上分配的。

D:错误:const定义的常量只有一次拷贝,而define定义的变量在内存中并没有拷贝,因为所有的预处理指令都在预处理时进行了替换,并不分配内存。

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

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

相关文章

2023年咸阳市《网络建设与运维》赛题解析------四、安全配置

安全配置 说明:IP地址按照题目给定的顺序用“ip/mask”表示,IPv4 any地址用0.0.0.0/0,IPv6 any地址用::/0,禁止用地址条目,否则按零分处理。 1.FW1配置IPv4 nat,实现集团产品1段IPv4访问Internet IPv4,转换ip/mask为200.200.200.16/28,保证每一个源IP产生的所有会话将…

Spring+Mybatis整合

整合代码 源码执行流程

Java拼图游戏

运行出的游戏界面如下&#xff1a; 按住A不松开&#xff0c;显示完整图片&#xff1b;松开A显示随机打乱的图片。 User类 package domain;/*** ClassName: User* Author: Kox* Data: 2023/2/2* Sketch:*/ public class User {private String username;private String password…

超详细 | 萤火虫算法原理及其实现(Matlab)

群智能(Swarm Intelligence&#xff0c;SI)是一类分散自组织系统的集体智能行为的总称&#xff0c;该表述最早在1989年由Gerardo Beni在分子自动机系统中提出。SI系统可视作一组简单的个体&#xff0c;其个体与个体、个体与环境之间存在交互作用&#xff0c;最终表征出智能行为…

MPN – 制造零件号

S/4 1610 中的 MPN – 基于 NAST 的输出管理 我试图查找有关 MPN 设置的信息&#xff0c;但找不到详细的配置步骤。在浏览了一些信息和 help.sap 链接后&#xff0c;我能够在 S/4 1610 系统中配置 MPN 设置&#xff0c;这与使用旧输出类型&#xff08;Nast 和输出类型 NEU&…

【 云原生 | K8S 】kubeadm 部署Kubernetes集群

目录 1 环境准备 2 所有节点安装docker 3 所有节点安装kubeadm&#xff0c;kubelet和kubectl 4 部署K8S集群 4.1 查看初始化需要的镜像 4.2 初始化kubeadm 4.3 设定kubectl 4.4 所有节点部署网络插件flannel master&#xff08;2C/4G&#xff0c;cpu核心数要求大于2&am…

Jenkins代码检测和本地静态检查

1&#xff1a;Jenkins简介 Jenkins是一个用Java编写的开源的持续集成工具&#xff1b;Jenkins自动化部署可以解决集成、测试、部署等重复性的工作&#xff0c;工具集成的效率明显高于人工操作&#xff1b;并且持续集成可以更早的获取代码变更的信息&#xff0c;从而更早的进入测…

【数据结构】10道经典面试题目带你玩转链表

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 一.移除链表元素 二.反转链表 三.链表的中间结点 四.链表中倒数第K个结点 五.合并两个有序链表 六.链表分割 七.链表的回文结构 八.相交链表 九.环形链表 一.移…

C++初阶 日期类的实现(上)

目录 一、前置准备 1.1获得每月的天数 1.2获得每年的天数 1.3构造函数&#xff0c;析构函数和拷贝构造函数 二、日期与天数的,-,,-实现 2.1运算符重载 2.2运算符的实现 2.3-运算符的实现 2.4-运算符的实现 三、&#xff0c;--的实现 3.1前置&#xff0c;后置的实现 …

(带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程

源码简介&#xff1a; 1、会员管理&#xff1a; 该系统分为三个级别的会员流程&#xff1a;总站管理员、代理与会员&#xff08;会员有普通会员、中级会员和高级会员三个等级&#xff09;。总站管理员可以添加代理用户并为其充值余额&#xff0c;代理用户可以为普通用户充值余…

Mysql-CRUD(增删查改)

CRUD : Create( 创建 ), Retrieve( 读取 ) &#xff0c; Update( 更新 ) &#xff0c; Delete &#xff08;删除&#xff09; 1.Create 语法&#xff1a; INSERT [ INTO ] table_name [( column [, column ] ...)] VALUES (value_list) [, (value_list)] ... 1.1 全列…

java 访问sqlserver 和 此驱动程序不支持jre1.8错误

sqlserver数据如下&#xff1b; TestSQL.java&#xff1b; import java.sql.*;public class TestSQL {public static void main(String[] args) throws ClassNotFoundException, SQLException {String driverName "com.microsoft.sqlserver.jdbc.SQLServerDriver";…

nacos集群部署

GitHub - nacos-group/nacos-k8s: This project contains a Nacos Docker image meant to facilitate the deployment of Nacos on Kubernetes using StatefulSets. 需要修改两个文件 --- apiVersion: v1 kind: Service metadata:name: nacos-headlessnamespace: project-guli…

vue-router的编程式导航有哪些方法?

Vue Router 提供了几种编程式导航的方法&#xff0c;主要包括以下几种&#xff1a; router.push(location, onComplete?, onAbort?)&#xff1a;跳转到新的 URL&#xff0c;类似于 <router-link> 的 to 属性。可以指定路径或者命名的路由。 router.replace(location, …

[ATC复盘] abc329 20231118

[ATC复盘] abc329 20231118 总结A - Spread1. 题目描述2. 思路分析3. 代码实现 B - Next1. 题目描述2. 思路分析-3. 代码实现 C - Count xxx1. 题目描述2. 思路分析3. 代码实现 D - Election Quick Report2. 思路分析3. 代码实现 E - Stamp2. 思路分析3. 代码实现 F - Colored…

git基本操作(配图超详细讲解)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 创建git本地仓库 配置仓库 认识工作区&#xff0c;暂存区&#xff0c;版本库 修改文件 版本回退 撤销修改 删除文件 创建git本地仓库 要提前说的是&#xff0c;仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂…

内网穿透的应用-通过内网穿透快速搭建公网可访问的Spring Boot接口调试环境

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

acme在同一台服务器上设置多个Ali_key实现自动ssl申请和续期

在同一台服务器上设置多个Ali_key&#xff0c;您可以按照以下步骤进行操作&#xff1a; 首先&#xff0c;确保您已经安装了acme.sh工具。如果没有安装&#xff0c;请先安装acme.sh&#xff0c;您可以使用以下命令安装acme.sh&#xff1a; curl https://get.acme.sh | sh安装完…

windows nodejs 15.0.0下载安装

下载 Node v15.0.0 (Current) | Node.js (nodejs.org) 下载地址 https://nodejs.org/dist/v15.0.0/node-v15.0.0-x64.msi 安装 双击运行 等待安装完成 确认安装成功 管理员运行cmd 查看版本号