c语言每日一练(6)

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

五道选择题:

1、如下程序的功能是( )

#include <stdio.h>
int main()
{char ch[80] = "123abcdEFG*&";int j;puts(ch);for (j = 0; ch[j] != '\0'; j++)//1if (ch[j] >= 'A' && ch[j] <= 'Z')//2ch[j] = ch[j] + 'e' - 'E';//3puts(ch);return 0;
}

A、 测字符数组ch的长度
B、 将数字字符串ch转换成十进制数
C、 将字符数组ch中的小写字母转换成大写                                                                                      D、 将字符数组ch中的大写字母转换成小写

解析:观察代码构成,发现主要部分为代码1,2,3。先看代码1,代码1的意思是,只要字符不为'\0'它就会遍历下去,所以代码1这个循环会将字符串ch给遍历一遍。继续观察,循环里包含着代码2,代码2包含着代码3。代码2是个if表达式,进入代码3的条件是对应字符为大写字母,最后看下代码3,要注意的一点:a的ASCII码值为97,A的ASCII码值为65,大小写字母之间的ASCII码值是定值为32,因此,可以看出代码3的作用是将大写字母转化为小写字母,综上所述,该函数的作用是将字符串中的大写字母转化为小写字母。故选D

 

2、以下程序运行时,输入  1abcedf2df<回车>    的输出结果是( )

#include <stdio.h>
int main()
{char ch;while ((ch = getchar()) != '\n')//1{if (ch % 2 != 0 && (ch >= 'a' && ch <= 'z'))//2ch = ch - 'a' + 'A';//3putchar(ch);}printf("\n");return 0;
}

A、 1abcedf2df      B、 1ABCEDF2DF

C、 1AbCEdf2df    D、 1aBceDF2DF

解析:这道题与上一道题类似。观察代码,发现主要构成为代码1,2,3。可以看出代码1通过getchar将我们输入的字符串依次分解为一个个字符,并令这一个个字符依次进入代码2判定下一步操作。

看到代码2,发现代码2进入的条件得是小写字母,且对应的ASCII码值不能被2整除,a的ASCII码值为97,因此a,c,e,g......便可以进入到代码3。代码3的作用可以看出是将小写字母转化为大写字母。综上所述,我们输入 1abcedf2df<回车>    1,2不会进入,保留原样,a,c,e均被转化为大写字母,所以最后的结果为1AbCEdf2df,故选C

3、以下对C语言函数的有关描述中,正确的有【多选】( )
A、 在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体
B、 函数的实参和形参可以是相同的名字
C、 在main()中定义的变量都可以在其它被调函数中直接使用
D、 在C程序中,函数调用不能出现在表达式语句中

解析:基础题,A选项是定义了,对。形参和实参可以同名,形参可以理解为实参的一份临时拷贝,在计算机存储上它们的空间是相互独立,互不影响的,故B对。当函数有返回值时是可以在其他被调函数中使用的,故C错。D选项和C错的一样。综上所述,答案为AB

4、在上下文及头文件均正常的情况下,下列代码的输出是( )

#include<stdio.h>
void print(char* s)
{if (*s){print(++s);printf("%c", *s);}
}
int main()
{char str[] = "Geneius";print(str);return 0;
}

A、suiene        B、neius       C、run-time error       D、suieneG

解析:使用了递归调用的方式逆序打印字符串,但因为先++后使用的原因最后一个字符是打印不出来的,所以答案选A


 5、给定 fun 函数如下,那么 fun(10) 的输出结果是( )

int fun(int x)
{return (x == 1) ? 1 : (x + fun(x - 1));
}

A、 0         B、 10        C、 55         D、 3628800

解析: 观察代码,发现当x等于1时,返回值1,不为1则递归调用。10这个数有点大,我们用3先走进去试一下,3走进去,发现不为1,走(3+fun(3-1)),所以fun(3)=(3+fun(3-1))。fun(2)接着走,2不等于1,走(2+fun(2-1)),所以fun(2)=(2+fun(2-1)),1等于1返回1,所以fun(1)=1,fun(2)=(2+1),fun(3)=3+2+1,可以看出,是个等差数列。

故fun(10)=1+2+3+4+.....+10结果为55,答案为C

 

编程题1: 

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

思路:两个循环,一个循环找最大。一个循环来比较,有则返回最大元素下标,无则返回-1 

int dominantIndex(int* nums, int numsSize) {int max = 0;int i = 0;int max_order = 0;for (i = 0; i < numsSize; i++){if (max < nums[i]){max = nums[i];//找数组最大值max_order = i;//储存最大值的下标}}for (i = 0; i < numsSize; i++){if (max < nums[i] * 2 && max_order != i)//不能够和自己比{return -1;}}return max_order;
}

编程题2:

图片整理_牛客题霸_牛客网

思路:简单的排序问题,以升序排序即可,可以使用冒泡排序,但没必要,我们有更好qsort函数,qsort函数直接快排,不仅效率高,而且方便。

不明白如何使用qsort函数的宝子们,可以看下博主之前写的博客

手把手教你使用qsort函数_大海里的番茄的博客-CSDN博客

#include <stdio.h>
#include<string.h>
int cmp_char(const void* c1, const void* c2)
{return (*(char*)c1) - (*(char*)c2);
}
int main() 
{char a[1001] = { 0 };gets(a);//获得字符串int len = strlen(a);//计算字符串长度qsort(a, len, sizeof(char), cmp_char);//使用快排函数printf("%s", a);
}

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

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

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

相关文章

华为运动健康,十年创新天地宽

我听一位朋友讲过这样一个故事。某天早上&#xff0c;急诊科的医生迎来了一位患者&#xff0c;患者进来后直接说&#xff1a;“大夫&#xff0c;我房颤了。” 这位医生非常诧异&#xff0c;因为心脏房颤确实非常危急&#xff0c;但很多时候并没有明显的生理体征&#xff0c;患者…

JavaScript之BOM+window对象+定时器+location,navigator,history对象

一.BOM概述 BOM即浏览器对象模型,它提供了独立于内容而与窗口进行交互的对象 BOM的顶级对象是window 二.window对象的常见事件 1.窗口加载事件window.onload window.onload function(){} 或者 window.addEventListener("onload" , function(){}); window.onlo…

Mybatis-plus动态条件查询QueryWrapper的使用

Mybatis-plus动态条件查询QueryWrapper的使用 一&#xff1a;queryWrapper介绍 queryWrapper是mybatis plus中实现查询的对象封装操作类&#xff0c;可以封装sql对象&#xff0c;包括where条件&#xff0c;order by排序&#xff0c;select哪些字段等等&#xff0c;他的层级关…

CentOS7连接网络

1.下载centos7镜像文件 2.安装centos7 3.修改网卡,ens33. 注意: 这里使用的是dhcp,设置IPADDR192.168.31.64一方面是为了后面使用crt或者MobaXterm连接,另一方面它和windows电脑的网卡要一致.这样才可以连接到网络.win r,输入cmd,打开命令窗口输入ipconfig.可以看到IPv4: 102…

phpstorm配置ftp同步文件到服务器

这里的默认快捷键 不是 CtrlS &#xff1b;需要设置快捷键&#xff0c;这里原来是save all操作时上传文件到服务器&#xff1b; ** 设置好快捷键后按 CtrlS就会同步文件&#xff08;添加删除文件后保存&#xff0c;服务器也会同步&#xff09; ** 搜索出save all 后&#xf…

NPM与外部服务的集成(上)

目录 1、关于访问令牌 1.1 关于传统令牌 1.2 关于粒度访问令牌 2、创建和查看访问令牌 2.1 创建访问令牌 在网站上创建传统令牌 在网站上创建粒度访问令牌 使用CLI创建令牌 CIDR限制令牌错误 查看访问令牌 在网站上查看令牌 在CLI上查看令牌 令牌属性 1、关于访问令…

报错注入(主键重复)攻击原理

基本原理 利用数据表中主键不能重复的特点&#xff0c;通过构造重复的主键&#xff0c;使得数据库报错&#xff0c;并将报错结果返回到前端。 SQL说明函数 以pet数据表为例进行说明 rond(): 返回[0,1)区间内的任意浮点数。 count(): 返回每个组的列行数。 如&#xff0…

SWIG使用方法

安装 下载 swigwin软件包&#xff0c;解压到合适的位置&#xff0c;然后将路径添加到环境变量即可。 编写C代码 //vector.hpp class Vector { private:int x;int y; public:Vector(int,int);double abs();void display(); };//vector.cpp #include "vector.hpp" …

CI/CD—K8S 基本理解与部署

1 K8S 是什么 Kubernetes 是一款容器的编排调度工具&#xff0c;来源于 Google 开源的 Brog 系统。Kubernetes简称K8S&#xff0c;是用8代替8个字符 “ubernete” 而成的缩写&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes 的目标是让部署容器化…

解决createRoot is not a function

报错&#xff1a; 出现的原因&#xff1a;在于把react18使用的vite构建&#xff0c;在开发中因react版本太高与其他库不兼容&#xff0c;而在降级的时候&#xff0c;出现以上dom渲染出现报错。 解决&#xff1a;将 src/index.j文件改成如下 import React from react; import…

【数据结构与算法】十大经典排序算法-冒泡排序

&#x1f31f;个人博客&#xff1a;www.hellocode.top &#x1f3f0;Java知识导航&#xff1a;Java-Navigate &#x1f525;CSDN&#xff1a;HelloCode. &#x1f334;掘金&#xff1a;HelloCode &#x1f31e;知乎&#xff1a;HelloCode ⚡如有问题&#xff0c;欢迎指正&#…

锐捷设备密码管理、密码恢复、恢复出厂设置

目录 配置登录用户名密码以及Enable密码 只需要密码登录 需要用户名和密码登录&#xff08;无AAA&#xff09; 需要用户名和密码登录&#xff08;有AAA&#xff09; 密码恢复 Web密码忘记 Telnet/SSH密码忘记 Console密码忘记 所有密码都忘记&#xff0c;通过Console进…

服务器数据恢复-RAID5上层Hyper-V虚拟机数据恢复案例

服务器数据恢复环境&#xff1a; 一台Windows Server服务器&#xff0c;部署Hyper-V虚拟化环境&#xff0c;虚拟机的硬盘文件和配置文件存放在一台DELL存储中。该存储中有一组由4块硬盘组建的RAID5阵列&#xff0c;用来存放虚拟机的数据文件&#xff0c;另外还有一块大容量硬盘…

【TypeScript】进阶之路语法细节,类型和函数

进阶之路 类型别名(type)的使用接口(interface)的声明的使用二者区别&#xff1a; 联合类型和交叉类型联合类型交叉类型 类型断言获取DOM元素 非空类型断言字面量类型的使用类型缩小&#xff08;类型收窄&#xff09;TypeScript 函数类型函数类型表达式内部规则检测函数的调用签…

keil下载程序具体过程:概述

一、前言 keil下载程序具体过程将由一系列的博客组成&#xff0c;将深入探讨keil这种IDE下载镜像文件时具体做了哪些事情。我们平常下载镜像的时候&#xff0c;只是点击了一下Download按钮&#xff0c;剩下的都由keil替代我们完成了。本系列博客将揭示这一过程&#xff0c;keil…

【云原生】kubernetes控制器deployment的使用

目录 ​编辑 1 Controller 控制器 1.1 什么是 Controller 1.2 常见的 Controller 控制器 1.3 Controller 如何管理 Pod 2 Deployment 2.1 创建 deployment 2.2 查看 deployment 2.3 扩缩 deployment 2.4 回滚 deployment 2.5 删除 deployment 1 Controller 控制器 …

markdown命令模板

markdown快速入门(typora) 1、代码块 //代码块语 public static void main(String[] args){}//linux下spring项目的启动命令 # java -jar blog start ## 2、标题&#xff1a;java # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题3、字体 …

Webpack 的 sass-loader 在生产模式下最小化 CSS 问题

学习webpack时候我发现一个问题&#xff1a; 将mode 改为production模式后&#xff0c;生成的css会被压缩了&#xff0c;但是我并没有引入CssMinimizerPlugin插件&#xff0c;然后我试着将optimization.minimize 设置为false&#xff0c;测试是否为webpack自带的压缩&#xff0…

【计算机网络】——数据链路层

二、组帧 1、字符计数法 帧头部使用一个字符来表示帧的大小(包括第一个计数字符) &#xff08;此处一字符一个字节&#xff09; 2、字符填充收尾定界法 特定字符来定界帧的首和尾。若帧中数据段出现等同于特定字符的字符内容&#xff0c;前置一个转义字符。(类似于正则表达…

Postman 的简单使用

什么是Postman 在程序开发中用于调试网络程序或者跟踪网页请求。可以对网页进行简单的基本信息调试。Postman最早是作用chrome浏览器插件存在的&#xff0c;但是2018年初Chrome停止对Chrome应用程序的支持。所以现在Postman提供了独立的安装包&#xff0c;不再依赖于Chrome浏览…