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;//1
		if (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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一站式印度跨境电商平台开发--多用户购物商城搭建

搭建一个一站式印度跨境电商平台开发&#xff0c;需要考虑以下几个方面&#xff1a;平台设计&#xff0c;技术架构&#xff0c;多用户购物商城搭建。 一、平台设计&#xff1a; 1. 市场调研&#xff1a;了解印度电商市场的特点和需求&#xff0c;确定目标用户群体。 2. 平台功…

【CSS3】CSS3 动画 ④ ( 使用动画制作地图热点图 )

文章目录 一、需求说明二、动画代码分析1、地图背景设置2、热点动画位置测量3、热点动画布局分析4、动画定义5、小圆点实现6、波纹效果盒子实现7、延迟动画设置 三、代码示例 一、需求说明 实现如下效果 , 在一张地图上 , 以某个位置为中心点 , 向四周发散 ; 核心 是实现 向四周…

【Java Web基础】mvn命令、Maven的安装与配置

本文极大程度上来自Maven安装(超详解)&#xff0c;但是担心安的过程中遇到什么不一样的问题&#xff0c;顺便加深印象&#xff0c;所以还是打算自己弄一篇。 目录 第一步&#xff1a;Download Maven第二步&#xff1a;解压与安装2.1 解压2.2 安装 第一步&#xff1a;Download …

Three.js纹理贴图

目录 Three.js入门 Three.js光源 Three.js阴影 Three.js纹理贴图 纹理是一种图像或图像数据&#xff0c;用于为物体的材质提供颜色、纹理、法线、位移等信息&#xff0c;从而实现更加逼真的渲染结果。 纹理可以应用于Three.js中的材质类型&#xff0c;如MeshBasicMaterial…

ClickHouse(九):Clickhouse表引擎 - Log系列表引擎

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术&#xff0c;IT贫道_Apache Doris,Kerberos安全认证,大数据OLAP体系技术栈-CSDN博客 &…

Clickhouse 数据存储

一、数据分区 数据是以分区目录的形式组织的&#xff0c;每个分区独立分开存储.这种形式&#xff0c;查询数据时&#xff0c;可以有效的跳过无用的数据文件。 1.1 数据分区的规则 分区键的取值&#xff0c;生成分区ID&#xff0c;分区根据ID决定。根据分区键的数据类型不同&am…

PoseiSwap 开启“Poseidon”池,治理体系或将全面开启

PoseiSwap曾在前不久分别以IDO、IEO的方式推出了POSE通证&#xff0c;但PoseiSwap DEX中并未向除Zepoch节点外的角色开放POSE资产的交易。而在前不久&#xff0c;PoseiSwap推出了全新的“Poseidon”池&#xff0c;该池将向所有用户开放&#xff0c;并允许用户自由的进行质押、交…

springboot(2)

springmvc 把软件系统分为3个基本部分&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器 &#xff08;Controller&#xff09;。 模型&#xff08;Model&#xff09;&#xff1a;Model是由一个实体Bean实现的&#xff0c;是数据的载体…

【Pytorch+torchvision】MNIST手写数字识别

深度学习入门项目&#xff0c;含代码详细解析 在本文中&#xff0c;我们将在PyTorch中构建一个简单的卷积神经网络&#xff0c;并使用MNIST数据集训练它识别手写数字。 MNIST包含70,000张手写数字图像: 60,000张用于培训&#xff0c;10,000张用于测试。图像是灰度&#xff08;即…

特殊符号的制作 台风 示例 使用第三方工具 Photoshop 地理信息系统空间分析实验教程 第三版

特殊符号的制作 首先这是一个含有字符的&#xff0c;使用arcgis自带的符号编辑器制作比较困难。所以我们准备采用Adobe Photoshop 来进行制作符号&#xff0c;然后直接导入符号的图片文件作为符号 我们打开ps&#xff0c;根据上面的图片的像素长宽比&#xff0c;设定合适的高度…

SIP协议之音/视频转换

在SIP通话应用场景中&#xff0c;有时需要在音频和视频通话中进行切换&#xff0c;这个功能实现的需要发送re-INVITE重新协商媒体&#xff0c;即重新协商媒体&#xff08;SDP)中是否允许视频。 一、实现原理 1.1 音频转视频 音频通话过程中&#xff0c;发起方重新发送INVITE消…

【力扣每日一题】2023.8.6 两两交换链表中的节点

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个链表&#xff0c;让我们两两交换相邻节点的值&#xff0c;并且不能通过修改节点内部的值来达到这一目的&#xff0c;如果可…

【计算机视觉 | Kaggle】飞机凝结轨迹识别 Baseline 分享和解读(含源代码)

文章目录 一、导读二、比赛背景三、比赛任务四、比赛数据五、评价指标六、Baseline6.1 Training part6.2 Submission part 一、导读 比赛名称&#xff1a;Google Research - Identify Contrails to Reduce Global Warming https://www.kaggle.com/competitions/google-researc…

Meta开源AI音频和音乐生成模型

在过去的几年里&#xff0c;我们看到了AI在图像、视频和文本生成方面的巨大进步。然而&#xff0c;音频生成领域的进展却相对滞后。MetaAI这次再为开源贡献重磅产品&#xff1a;AudioCraft&#xff0c;一个支持多个音频生成模型的音频生成开发框架。 AudioCraft开源地址 开源地…

使用Flask框架mock server实战(三)

1、demo1&#xff1a;登录接口 1.1 Flask代码 from flask import request, Flask, jsonify# 创建1个实例 app Flask(__name__)# 解决接收中文报文乱码问题 app.config[JSON_AS_ASCII] False# 登录接口 # 指定路由和请求方法。strict_slashesFalse 对URL最后的/符合是否严格…

QT生成可执行文件的步骤

QT生成可执行文件的步骤 第一步&#xff1a;debug为release&#xff0c;然后进行编译 第二步&#xff1a;添加QT生成必要的库 首先&#xff0c;建立一个新的文件夹&#xff0c;然后将Release中的可执行文件拷贝到新的文件夹中 然后&#xff0c;在新建文件夹中生成必要的库 …

设计模式---工厂模式

1.什么是设计模式 软件设计模式&#xff08;Design pattern&#xff09;&#xff0c;又称设计模式&#xff0c;是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 …

Leetcode-每日一题【剑指 Offer 18. 删除链表的节点】

题目 给定单向链表的头指针和一个要删除的节点的值&#xff0c;定义一个函数删除该节点。 返回删除后的链表的头节点。 注意&#xff1a;此题对比原题有改动 示例 1: 输入: head [4,5,1,9], val 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点&#xff0c;那么在调…

Vue2:组件高级(下)

Vue2&#xff1a;组件高级&#xff08;下&#xff09; Date: May 25, 2023 Sum: 自定义指令、插槽、商品列表、动态组件 目标&#xff1a; 自定义指令 基础概念&#xff1a; 概念&#xff1a; 内置指令&#xff1a;vue 官方提供了 v-for、v-model、v-if 等常用的内置指令。…

Python练习 linux系统资源监控

yum install python3 yum -y install python3-pip yum -y install epel-release yum -y install gcc python-devel pip install --trusted-host pypi.tuna.tsinghua.edu.cn psutil 初版&#xff1a; import os import sys import time import platform import subprocess …