c语言每日一练(11)

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

五道选择题:

1.执行完下面一段程序后输出的值是()

#include<stdio.h>
int main()
{
int a = 1,b = 3,c = 5,d = 4;
int x = 0;
if (a < b)//1
if (c < d) x = 1;//2
else//3
if (a < c)//4
if (b < d) x = 2;//5
else x = 3;//6
else x = 6;//7
else x = 7;//8
printf("%d", x);
}

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

解析:易错题, 观察代码发现在代码1之前所做的操作只是简单地对变量初始化,到了代码1之后则是一大堆的if,else,这个地方其实考察的便是if,else的匹配问题,if,else的匹配在没有外界因素的影响之下秉承着就近原则,也就是if和else的相对距离小的会互相匹配上,根据这个我们可以得出,2和3匹配,5和6匹配,4和7匹配,1和8匹配

明白了匹配关系之后我们顺着代码走就行了,首先a<b成立,走到2,c<d不成立,走到3再走到4,a<c成立,走到5,b<d成立,令x=2,剩下的else就不用走了,因为之前已经匹配过了。故最后打印出来的是2,选B

拓展:当a=4,b=3,c=5,d=4时会打印出来什么(其他不变),                                           

拓展解析:根据if,else的匹配问题,在a<b不成立时,就已经走到了代码8,令x=7,故最后会打印出7

2、以下程序的运行结果是()

#include<stdio.h>
int main()
{int m = 6;if (m++ > 6)printf("%d\n", m);else printf("%d\n", --m);
}

A、4       B、5      C、 7     D、 6

解析:前面有好好做题的小伙伴看到这道题估计是直呼简单。首先定义并初始化m=6,接着走if,后置++,先使用后++,因此6>6不成立,走到else,此时m=7,最后前置--,先--后使用,所以m-1=6,并打印,故最后输出6,选D

3、以下程序运行的结果是()

#include<stdio.h>
int main()
{int k;int a[3][3] = { 1,2,3,4,5,6,7,8,9 };for (k = 0; k < 3; k++) printf("%d ", a[2 - k][k]);
}

A、3 6 9      B、7 5 3     C、9 6 3     D、3 5 7

解析:观察代码发现,主要部分就是一个循环打印。首先定义了一个二维数组,并在里面存放1,2,3,4,5,6,7,8,9接着在循环中打印二维数组中的对应内容。

循环次数少,不需要找规律直接代入,当k=0时,打印a[2][0],当k=1时,打印a[1][1],当k=2时,打印a[0][2]。a[2][0]根据数组的下标就是打印出第三行第一个元素,也就是7,a[1][1]打印出第二行第二个元素,5,a[0][2]打印出第一行第三个元素,3。综上所述,选B

4、有两个字符数组a和b,则以下正确的语句是_________()【多选】
A、printf("%s %s",a,b);      B、scanf(“%s %s”,a,b);

C、scanf("%s %s",&a+1,&b+1);D、printf("%s %s",&a,&b);

解析:易错题,考察的是你对于指针,scanf和printf的综合理解。首先我们要明白的一点就是,数组的名字往往代表着它们的首地址,本题没有特殊情况,下一题我给大家讲一种特殊情况。

选项A,以字符串的形式打印a和b,没取地址,但数组名本身此时是地址,故可以,A正确。选项B,使用scanf对a,b字符串修改,此时数组名依然是地址,没毛病,B正确。

选项C,首先对数组名取地址得到的地址确实就是数组的首地址,但是,它的权重是整个数组,什么意思,就是a+1是跳过一个元素,&a+1则是跳过整个数组,C越界,故错误。选项D,对数组名取地址,得到数组首地址并进行打印,没问题,D正确

 5、在32位平台下程序运行的结果是()

#include<stdio.h>
int main()
{int a = 0;char b[9] = "abc";int arr[3] = { 0 };printf("%d ", sizeof(&a));//1printf("%d ", sizeof(a));//2printf("%d ", sizeof(&b));//3printf("%d ", sizeof(b));//4printf("%d ", sizeof(&arr));//5printf("%d ", sizeof(arr));//6
}

A、4 4 4 4 4 4 B、4 4 4 9 4 3   C、4 4 4 9 4 12   D、4 4 4 9 4 4

解析:在32位平台下地址的字节数为4,因此一遇到地址就直接判定为4。代码1,地址,打印4。代码2,整型变量的字节大小为4,打印4。代码3,地址,打印4。代码4,数组名,地址,打印4,代码5,地址,打印4,代码6,地址,打印4,所以答案为4 4 4 4 4 4,选A,好像很合理,实则大错特错。在使用sizeof的时候数组名所代表的并不是数组首元素的地址而是整个数组   也就是说,sizeof(数组)计算的是整个数组所占的字节数,所以代码4和代码6应该打印出9和12,故答案为,4,4,4,9,4,12选C 

 编程题1:

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

int diagonalSum(int** mat, int matSize, int* matColSize){
int sum=0;
int i=0;
for(i=0;i<matSize;i++)
{sum+=mat[i][matSize-i-1]+mat[i][i];//将对角线上的加起来
}
if(matSize%2!=0)
//为奇数有重复,要减去
{i=matSize/2;sum-=mat[i][i];
}
return sum;
}

编程题2:

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

提示:注意细节,避免越界,避免忽略特殊情况,其次还需要注意的一点则是已经有花的地方不能再种了

bool canPlaceFlowers(int* flowerbed, int flowerbedSize, int n) {int i = 0;int count = 0;if (n == 0)//特殊情况单独处理return true;if (flowerbedSize == 1)//特殊情况单独处理{if (flowerbed[0] == 0)return true;elsereturn false;}for (i = 0; i < flowerbedSize; i++){if (flowerbed[i] == 1)//有花了就直接跳过{continue;}if (i == 0)//第一个元素和最后一个元素正常处理会越界,单独考虑{if (flowerbed[1] == 0){flowerbed[0] = 1;count++;//种上了计数器+1并修改对应位置的值continue;//种上了就直接返回}elsecontinue;//没种上意味着不能种也返回}if (i == flowerbedSize - 1){if (flowerbed[flowerbedSize - 2] == 0){flowerbed[flowerbedSize - 1] = 1;count++;//种上了计数器+1并修改对应位置的值continue;//种上了就直接返回}elsecontinue;//没种上意味着不能种也返回}if (flowerbed[i - 1] == 0 && flowerbed[i + 1] == 0)//通常情况分析{flowerbed[i] = 1;count++;//种上了计数器+1并修改对应位置的值continue;}}if (n <= count){return true;}elsereturn false;
}

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

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

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

相关文章

面试之快速学习计算机网络-http

1. HTTP常见状态码 2. 3开头重定向&#xff0c;4开头客户端错误&#xff0c;5开头服务端错误 2. HTTP 报文 1. start-line&#xff1a;请求行&#xff0c;可以为以下两者之一&#xff1a; 请求行&#xff1a; GET /hello-world2.html HTTP/1.1状态行&#xff1a;HTTP/1.1 200…

数据库——Redis 单线程模型详解

文章目录 Redis 基于 Reactor 模式来设计开发了自己的一套高效的事件处理模型 &#xff08;Netty 的线程模型也基于 Reactor 模式&#xff0c;Reactor 模式不愧是高性能 IO 的基石&#xff09;&#xff0c;这套事件处理模型对应的是 Redis 中的文件事件处理器&#xff08;file …

大模型是什么?泰迪大模型能够解决企业哪些痛点?

什么是大模型&#xff1f; 大模型是指模型具有庞大的参数规模和复杂程度的机器学习模型。在深度学习领域&#xff0c;大模型通常是指具有数百万到数十亿参数的神经网络模型。这些模型需要大量的计算资源和存储空间来训练和存储&#xff0c;并且往往需要进行分布式计算和特殊…

一百六十五、Kettle——用海豚调度器调度Linux资源库中的kettle任务脚本(亲测、附流程截图)

一、目的 在Linux上脚本运行kettle的转换任务、无论是Linux本地还是Linux资源库都成功后&#xff0c;接下来就是用海豚调度Linux上kettle任务 尤其是团队开发中&#xff0c;基本都要使用共享资源库&#xff0c;所以我直接使用海豚调度Linux资源库的kettle任务脚本 二、前提条…

<C++> 内存管理

1.C/C内存分布 让我们先来看看下面这段代码 int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] {1, 2, 3, 4};char char2[] "abcd";char *pChar3 "abcd";int *ptr1 (int *) mal…

【Java 高阶】一文精通 Spring MVC - 转发重定向(四)

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…

芯讯通SIMCOM A7680C (4G Cat.1)AT指令测试 TCP通信过程

A7680C TCP通信 1、文档准备 去SIMCOM官网找到A7680C的AT指令集 AT指令官网 进入官网有这么多AT指令文件&#xff0c;只需要找到你需要用到的&#xff0c;这里我们用到了HTTP和TCP的&#xff0c;所以下载这两个即可。 2、串口助手 任意准备一个串口助手即可 这里我使用的是XC…

浅析Python爬虫ip程序延迟和吞吐量影响因素

作为一名资深的爬虫程序员&#xff0c;今天我们很有必要来聊聊Python爬虫ip程序的延迟和吞吐量&#xff0c;这是影响我们爬取效率的重要因素。这里我们会提供一些实用的解决方案&#xff0c;让你的爬虫程序飞起来&#xff01; 网络延迟 首先&#xff0c;让我们来看看网络延迟对…

软件测试知识点总结(一)

文章目录 前言一. 什么是软件测试二. 软件测试和软件调试的区别三. 软件测试和研发的区别四. 优秀的测试人员所应该具备的素质总结 前言 在现实生活中的很多场景下&#xff0c;我们都会进行测试。 比如买件衣服&#xff0c;我们需要看衣服是不是穿着好看&#xff0c;衣服材质如…

sql server删除历史数据

1 函数 datediff函数: DATEDIFF ( datepart , startdate , enddate )datepart的取值可以是year,quarter,Month,dayofyear,Day,Week,Hour,minute,second,millisecond startdate 是从 enddate 减去。如果 startdate 比 enddate 晚&#xff0c;返回负值。 2 例子 删除2023年以…

核污水会造成什么影响

目录 1.什么是核污水 2.什么是氚元素 3.氚元素的半衰期 4.核污水对人类健康的影响 5.我们应该采取什么措施保护自己 1.什么是核污水 核污水是指核设施&#xff08;如核电站、核燃料回收厂等&#xff09;产生的含有放射性物质的废水。核污水中可能含有放射性同位素、放射性…

Oracle查锁表(史上最全)

Oracle查锁表 Oracle分两种锁&#xff0c;一种是DDL锁&#xff0c;一种是DML锁。一、Oracle DDL锁的解锁&#xff08;dba_ddl_locks视图&#xff09;1.1、查表的DDL锁的详情&#xff08;kill session脚本、表名、执行锁表的SQL等&#xff09;1.2、解锁表的DDL锁1.2.1、解锁表的…

sql入门-多表查询

案例涉及表 ----------------------------------建表语句之前翻看之前博客文章 多表查询 -- 学生表 create table studen ( id int primary key auto_increment comment id, name varchar(50) comment 姓名, no varchar(10) comment 学号 ) comment 学生表; insert…

卷积神经网络——下篇【深度学习】【PyTorch】【d2l】

文章目录 5、卷积神经网络5.10、⭐批量归一化5.10.1、理论部分5.10.2、代码部分 5.11、⭐残差网络&#xff08;ResNet&#xff09;5.11.1、理论部分5.11.2、代码部分 话题闲谈 5、卷积神经网络 5.10、⭐批量归一化 5.10.1、理论部分 批量归一化可以解决深层网络中梯度消失和…

使用PyMuPDF添加PDF水印

使用Python添加PDF水印的博客文章。 C:\pythoncode\new\pdfwatermark.py 使用Python在PDF中添加水印 在日常工作中&#xff0c;我们经常需要对PDF文件进行处理。其中一项常见的需求是向PDF文件添加水印&#xff0c;以保护文件的版权或标识文件的来源。本文将介绍如何使用Py…

Eureka:集群环境配置

创建三个集群 导包 <!-- 导包--><dependencies><!-- Eureka -server --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId><version>1.…

[Open-source tool] 可搭配PHP和SQL的表單開源工具_Form tools(1):簡介和建置

Form tools是一套可搭配PHP和SQL的表單開源工具&#xff0c;可讓開發者靈活運用&#xff0c;同時其有數個表單模板和應用模組供挑選&#xff0c;方便且彈性。Form tools已開發超過20年&#xff0c;為不同領域的需求者或開發者提供一個自由和開放的平台&#xff0c;使他們可建構…

【C++】—— C++11之可变参数模板

前言&#xff1a; 在C语言中&#xff0c;我们谈论了有关可变参数的相关知识。在C11中引入了一个新特性---即可变参数模板。本期&#xff0c;我们将要介绍的就是有关可变参数模板的相关知识&#xff01;&#xff01;&#xff01; 目录 序言 &#xff08;一&#xff09;可变参…

电子电路学习笔记之SA1117BH-1.2TR——LDO低压差线性稳压器

关于LDO调节器&#xff08;Low Dropout Regulator&#xff09;是一种电压稳压器件&#xff0c;常用于电子设备中&#xff0c;用于将高电压转换为稳定的低电压。它能够在输入电压和输出电压之间产生较小的差异电压&#xff0c;因此被称为"低压差稳压器"。 LDO调节器通…

web基础http与apache

一、http相关概念&#xff1a; http概述&#xff1a; HTTP 是一种用作获取诸如 HTML 文档这类资源的协议。它是 Web 上进行任何数据交换的基础&#xff0c;同时&#xff0c;也是一种客户端—服务器&#xff08;client-server&#xff09;协议 为解决"用什么样的网络协…