c语言每日一练(4)

五道选择题

1、有以下代码,程序的输出结果是( )

#include <stdio.h>
int main()
{int a = 0, b = 0;for (a = 1, b = 1; a <= 100; a++){if (b >= 20) break;//1if (b % 3 == 1)//2{b = b + 3;continue;}b = b-5;//3}printf("%d\n", a);return 0;
}

A.10       B.9       C.8       D.7

解析: 先看代码构成,代码的主要部分是一个循环,最终目标是打印出a的大小。

直接看循环,for循环先将a和b都初始化成了1,循环进行的条件是a<=100,循环每次结束后,a+1

接着看循环的内部,1代码代表的意思是,当b>=20时会执行break语句,跳出循环。

2代码表达的意思是当b%3==1,也就是当b=3*n+1的时候会执行b+3,然后执行continue语句。

continue语句的作用是直接中止这次循环,然后执行a++,再判断循环是否能够继续,如果能则继续循环。

3代码表达的意思是b-5

观察完代码的构成,我们可以看出,b=1。而从语句2进入的条件可以看出,当b为3*n+1的话就一定会执行语句2,当b的值大于20时就会直接跳出循环,打印目标。                               而每执行一次语句2,b都会+3,所以,b会一直走语句2 当b>20时就会跳出循环,而a的值也就是b加3的次数再a原来的值即可(b只要加了3就会执行continue间接使a+1)                      可以看出,当b=3*7+1的时候会跳出循环,这时b已经加过7次3了,7+1就是8,所以最后会打印出8,所以答案选C 

 

 2、下面代码的结果使()

#include <stdio.h>
int main()
{int arr[] = {1,2,(3,4),5};printf("%d\n", sizeof(arr));return 0;
}

A.4      B.16     C.20     D.5

解析:这是一道基础题,就考验你的基础扎不扎实。arr这个数组看似有5个元素,实际上只有4个元素,为什么?因为arr数组中有一个逗号表达式,而逗号表达式的运算规则是从左往右依次计算,整个表达式的值为最后一个表达式的值。4个整型元素所占的字节数为4*4=16,因此答案为B    

 

3、以下叙述中正确的是( )
A. 只能在循环体内和switch语句体内使用break语句
B. 当break出现在循环体中的switch语句体内时,其作用是跳出该switch语句体,并中止循环体的执行
C. continue语句的作用是:在执行完本次循环体中剩余语句后,中止循环
D. 在while语句和do-while语句中无法使用continue语句

解析:A选项,在循环体里使用break可以跳出循环,在switch语句中使用break可以跳出switch,除了这两种用法,break确实不能被用在其他地方。故A对。

B选项,break只会跳出一层循环,同样的,在switch语句中它也只会跳出一层switch,站在break的角度来看,switch和循环语句是等价的,谁来我都只跳过一层,B的描述则是跳出了两层,故B错。

C选项跟continue语句的作用完全不符,continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环,故C错。D选项大错特错,continue语句设计出来就是给循环用的。综上所述,答案选A

4、设函数 fun 和实参数组的说明是如下形式,则对函数的调用语句中,正确的是( )

void fun(char ch,float x[]);
float a[10];

A.fun("asd",a[ ])       B.fun('x' ,  A)

C.fun('68'  , 2.8)       D.fun(32 , a)

解析:这类题目,看着好做,实际上也很好做(滑稽)。目标就是要和被调用的函数的参数类型保持一致便可以实现函数的成功调用。

先看函数,函数的返回类型是void型,参数一个为char(字符)型,一个为float[ ](浮点型数组) ,因此,第一个变量传字符型变量,第二个变量传一个浮点型数组或者传一个float*的指针。先观察第一个变量,A传了一个字符串显然错误,A排除。BC均传了一个字符,正确。

而D传了一个数字,好像错了,但它是对的,为什么?因为字符型的变量的本质其实是它们的ASCII码值,因此字符型其实是可以被看作是整型家族的成员的,传递32给fun函数,相当于传递了ASCII码值为32的字符,故D对。

再看第二个变量,A已经被排除,不用看。B,B传了一个字符,不符合我们分析的结果,错,C传了一个浮点数,错。D传了数组名,而数组名在通常情况下被看作数组首元素的地址,也就是传递了一个float*的指针。符号条件。综上所述,答案选D

 5、在C语言中,以下正确的说法是( )
A. 实参和与其对应的形参各占用独立的存储单元
B. 实参和与其对应的形参共占用一个存储单元
C. 只有当实参和与其对应的形参同名时才共占用存储单元
D. 形参是虚拟的,不占用存储单元

解析:在调用函数的时候,真实传递给函数的是实参,函数定义部分函数名后的参数是形参。形参和实参的名字是可以相同的,在函数调用的时候,形参是实参的一份临时拷贝,分别占用不同的内存空间,所以A正确,B错误。即使形参和实参的名字相同,也是占用不同的内存空间,C错误。函数如果不被调用时,函数的形参是形式上存在的,但是函数在被调用的时候,形参是要分配内存空间的,所以D错误。综上所述,答案选A

编程题1:

寻找奇数_牛客题霸_牛客网 

 这道题要是对^(异或)操作符了解的小伙伴是非常简单的。^操作符的作用可以将两个数相同的位变为0,不同的位变为1,那么两个相同的数^就会出现0,而^又是满足交换律的   所以我们不需要在意^的顺序,偶数次出现的数一旦被^就会像对对碰一样变为0。奇数次出现一旦被^就只会剩下它本身,因此,遍历一遍数组,然后在遍历的过程中^最后出来的结果就是奇数次出现的数。

#include <stdio.h>
int main() {
int a=0;
scanf("%d",&a);
int i=0;int order=0;
//order=0是因为,异或操作符^0才会保持不变,^1可能会使最后一位丢失
for(i=0;i<a;i++)
{int b=0;scanf("%d",&b);order^=b;//边输入,边异或
}
printf("%d",order);
}

编程题2:

截取字符串_牛客题霸_牛客网

 目标是输出截取后的字符串,创建两个数组,一个数组用来存放输入的字符串,通过遍历的方式使另一个数组存放截取后的字符串,最后打印出对应数组即可。

#include <stdio.h>
#include<string.h>
int main() {char arr1[1000]={0};char arr2[1000]={0};gets(arr1);
//使用gets,避免字符串中有空格
//空格会使scanf的输入中止int len=strlen(arr1);
//计算输入的字符串长度int k=0;scanf("%d",&k);if(k>=len)
//当k>=len时就不用截取了,直接打印就可以{printf("%s",arr1);return 0;}for(int i=0;i<k;i++){arr2[i]=arr1[i];//将前k个字符截取到对应数组中}printf("%s",arr2);
}

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

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

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

相关文章

MySQL: Failed to Connect to MySQL at XXXX:3306 with user root

客户端连接MySQL服务器&#xff0c;报错&#xff1a; 解决方案&#xff1a; 没有让root用户远程登录&#xff0c;需要设置&#xff1b; 进入MySQL服务器&#xff0c;修改一下 # mysql -h localhost -uroot -P3306 -p12345678 mysql: [Warning] Using a password on the comm…

IoTDB 1.x 开启外部访问

对于部署的IoTDB数据库&#xff0c;如果需要局域网内其他设备进行访问的处理。 1、防火墙开放端口 无论windows还是liunx都需要你将6667默认的端口加入防火墙中&#xff0c;否则肯定是无法访问端口 2、修改配置文件 对conf/iotdb-datanode.properties文件中的 修改为本机的…

【ChatGPT 指令大全】怎么使用ChatGPT来帮我们写作

在数字化时代&#xff0c;人工智能为我们的生活带来了无数便利和创新。在写作领域&#xff0c;ChatGPT作为一种智能助手&#xff0c;为我们提供了强大的帮助。不论是作文、文章&#xff0c;还是日常函电&#xff0c;ChatGPT都能成为我们的得力助手&#xff0c;快速提供准确的文…

‘vue’不是内部或外部命令,也不是可运行的程序或批处理文件的原因及解决方法

今天我在用node.js的时候&#xff0c;结果出现如下错误&#xff1a; C:\Users\xiesj> vue -v vue不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 原因&#xff1a; 1、确定npm是否已正确安装&#xff1f; 2、确定vue以及vue-cli已正确安装&#xff1f;…

COCOS项目运行的时候图片模糊的原因

1、首先。用X坐标来分析&#xff0c;如果size*Anchor Position有小数&#xff0c;如上图57*0.5667695.5。这样就会导致x模糊。如果y同样计算结果包含小数&#xff0c;那么y也会模糊。xy同时模糊的情况是最模糊的。 2、如果当前node没有问题&#xff0c;那么就要检查上级node是…

@ControllerAdvice注解使用及原理探究 | 京东物流技术团队

最近在新项目的开发过程中&#xff0c;遇到了个问题&#xff0c;需要将一些异常的业务流程返回给前端&#xff0c;需要提供给前端不同的响应码&#xff0c;前端再在次基础上做提示语言的国际化适配。这些异常流程涉及业务层和控制层的各个地方&#xff0c;如果每个地方都写一些…

CD4029计数器实测仿真及BCD转七段码

前面的博文中&#xff0c;我们介绍过CD40110(这是一个常见的直接接7段数码管的计数器&#xff0c;我们这里介绍一款新的计数器CD4029&#xff0c;这也是很常见的计数器&#xff0c;不同的是后者可以输出BCD编码。 文章目录 一、总体效果二、CD4029的管脚和功能介绍1、芯片功能简…

【CSS】旋转中的视差效果

效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"/><meta http-equiv"X-UA-Compatible" content"IEedge"/><meta name"viewport" content"widthdevice-…

【算法|数组】快慢指针

算法|数组——快慢指针 引入 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你…

图像的平移变换之c++实现(qt + 不调包)

1.基本原理 设dx为水平偏移量&#xff0c;dy为垂直偏移量&#xff0c;则平移变换的坐标映射关系为下公式&#xff0c;图像平移一般有两种方式。 1.不改变图像大小的平移&#xff08;一旦平移&#xff0c;相应内容被截掉&#xff09; 1&#xff09;当dx > width、dx < -wi…

hive编译报错整理

背景 最近在修hive-1.2.0的一个bug&#xff0c;需要修改后重新打包部署到集群&#xff0c;打包的时候报下面的错误&#xff0c;原因很简单&#xff0c;从远程仓库里面已经拉不到这个包了。 org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde was not found in http…

用 docker 创建 jmeter 容器,能做性能测试?

我们都知道&#xff0c;jmeter 可以做接口测试&#xff0c;也可以用于性能测试&#xff0c;现在企业中性能测试也大多使用 jmeter。docker 是最近这些年流行起来的容器部署工具&#xff0c;可以创建一个容器&#xff0c;然后把项目放到容器中&#xff0c;就可以构建出一个独立的…

基于react-native的简单消息确认框showModel

基于react-native的简单消息确认框showModel 效果示例图组件代码ShowModel/index.jsx使用案例device.js安装线性渐变色 效果示例图 组件代码ShowModel/index.jsx import React, {forwardRef, useImperativeHandle, useState} from react; import {View,Text,Modal,TouchableOp…

安全防御(3)

1.总结当堂NAT与双机热备原理&#xff0c;形成思维导图 2.完成课堂nat与双机热备试验 引用IDS是指入侵检测系统&#xff0c;它可以在网络中检测和防御入侵行为。IDS的签名是指根据已知入侵行为的特征制定的规则&#xff0c;用于检测和警告可能存在的入侵行为。签名过滤器可以根…

4.2 Windows终端数据安全

数据参考&#xff1a;CISP官方 目录 系统备份与还原数据备份数据粉碎数据加密 一、系统备份与还原 为什么需要系统备份 系统越用越慢系统故障导致不稳定系统无法登录 系统备份重新部署 (重装系统、重置系统) 丟失配置&#xff0c;需要重新配置个人数据丢失的风险 系统…

MySQL数据库基础

目标&#xff1a; 1.数据库操作&#xff1a;创建数据库&#xff0c;删除数据库 2.常用数据类型 3.表的操作&#xff1a;创建表&#xff0c;删除表 数据库操作 &#xff08;1&#xff09;显示数据库 show databases&#xff1b; &#xff08;2&#xff09;创建数据库 创建一个…

论文笔记:SUPERVISED CONTRASTIVE REGRESSION

2022arxiv的论文&#xff0c;没有中&#xff0c;但一作是P大图班本MIT博&#xff0c;可信度应该还是可以的 0 摘要 深度回归模型通常以端到端的方式进行学习&#xff0c;不明确尝试学习具有回归意识的表示。 它们的表示往往是分散的&#xff0c;未能捕捉回归任务的连续性质。…

【C++】右值引用

文章目录 右值引用值得形式返回对象的缺陷移动语句移动赋值 右值引用 能够取地址、能够被修改的被称之为左值。 不能够取地址、不能够被修改、以及将亡值被称之为右值。 普通类型的变量&#xff0c;因为有名字&#xff0c;可以取地址&#xff0c;都认为是左值。const修饰的常量…

Oracle以逗号分隔的字符串拆分为多行数据实例详解

前言 近期在工作中遇到某表某字段是可扩展数据内容&#xff0c;信息以逗号分隔生成的&#xff0c;现需求要根据此字段数据在其它表查询相关的内容展现出来&#xff0c;第一想法是切割数据&#xff0c;以逗号作为切割符&#xff0c;以下为总结的实现方法&#xff0c;以供大家参…

ORB-SLAM2学习笔记6之D435i双目IR相机运行ROS版ORB-SLAM2并发布位姿pose的rostopic

文章目录 0 引言1 D435i相机配置2 新增发布双目位姿功能2.1 新增d435i_stereo.cc代码2.2 修改CMakeLists.txt2.3 新增配置文件D435i.yaml 3 编译运行和结果3.1 编译运行3.2 结果3.3 可能出现的问题 0 引言 ORB-SLAM2学习笔记1已成功编译安装ROS版本ORB-SLAM2到本地&#xff0c…