二级C语言题解:统计奇偶个数以及和与差、拼接字符串中数字并计算差值、提取字符串数组中单词尾部字母

目录

一、程序填空 --- 统计奇偶个数以及和与差

题目

分析

二、程序修改  --- 拼接字符串中数字并计算差值

题目

分析

三、程序设计题 --- 提取字符串数组中单词尾部字母

题目

分析


前言:
本节讲解C语言二级的统计奇偶个数以及和与差、拼接字符串中数字并计算差值、提取字符串数组中单词尾部字母

ps:分析的文字是对程序整体的解读,如果时间急,可以直接看代码中的解释

一、程序填空 --- 统计奇偶个数以及和与差

难度:☆

题目

函数fun的功能是:
根据形参c中存储的整数序列
分别统计偶数元素奇数元素的个数
将统计结果以结构变量返回主函数
结构变量的类型由程序中定义的struct pair给出
它包含两个整数变量成员
依次对应偶数个数与奇数个数之和偶数个数与奇数个数之差
形参d中存储的是)列的长度。
例如:
若c中存储的数值依次为3,7,1217,2,d为5,则所数返回的结构变量中,第一个成员的值为5,第二个成员的值为-1。主函类输出n1 = 5,n2 = -1
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果

代码如下: 
在1️⃣2️⃣3️⃣处填空

#include  <stdio.h>
struct pair {int n1, n2;
};struct pair fun(int* c, int d) { int i;/**********************found***********************/___1️⃣____;p.n1 = p.n2 = 0;/**********************found***********************/for (i=0; i<d; ____2️⃣____) {if (c[i] % 2 == 0)p.n1++;else
/**********************found***********************/____3️⃣____;}p.n1 = p.n1 + p.n2;p.n2 = p.n1 - p.n2 - p.n2;return p;
}int main( ) { int i, c[100], d;struct pair p;scanf("%d", &d);for (i = 0; i < d; i++)scanf("%d", &(c[i]));p = fun(c, d);printf("n1=%d,n2=%d", p.n1, p.n2);return 0;
}

分析

本题中简单理解就是,有一个结构体,其中的
n1保存的是偶数个数与奇数个数之和
n2保存的是偶数个数与奇数个数之差
根据题中代码得到以下思路:

  1. n1先保留偶数的个数
  2. n2先保存奇数的个数
  3. 最后再根据代码可知,n1最终存放的是偶数个数与奇数个数之和,n2最终存放的是偶数个数与奇数个数之差

解答代码如下:

#include  <stdio.h>
struct pair {int n1, n2;
};struct pair fun(int* c, int d) { int i;/**********************found***********************///可以通过下面的p的调用可知//还需要一个结构体p//则定义这个结构体p1️⃣struct pair p;p.n1 = p.n2 = 0;/**********************found***********************///可以知道变量i是来遍历这个c这个指针//因此是每次加一,所有缺了i++for (i=0; i<d; 2️⃣i++) {if (c[i] % 2 == 0)p.n1++;else
/**********************found***********************///由上方if中的n1++可知//还缺少n2++3️⃣p.n2++;}p.n1 = p.n1 + p.n2;p.n2 = p.n1 - p.n2 - p.n2;return p;
}int main( ) { int i, c[100], d;struct pair p;scanf("%d", &d);for (i = 0; i < d; i++)scanf("%d", &(c[i]));p = fun(c, d);printf("n1=%d,n2=%d", p.n1, p.n2);return 0;
}

二、程序修改  --- 拼接字符串中数字并计算差值

难度:☆

题目

函数 fun 的功能是:将形参 str 中混杂的数字按从前往后出现的次序从左往右拼接成一个整数,用该整数减去 str 中所有数字之和,结果返回主函数输出。若形参 str 中没有数字,则函数 fun 返回 0 给主函数。
例如:若 str 的内容为 "A3Kym9E1",则抽取的数字为 391,所有数字之和为 13,则函数返回 378,程序输出 378。
请改正函数 fun 中指定部位的错误,使它能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。

代码如下:
在代码中找出错误并修改

#include <stdio.h>
#include <string.h>int fun(char* str) 
{  int i, k, s;i = 0;s = 0;
/**********************found***********************/for (k=0; k<=strlen(str); k++) {
/**********************found***********************/if ( (str[k] >= 0) && (str[k] <= 9) ) {i = i * 10 + str[k] - '0';s = s + str[k] - '0';}}/**********************found***********************/return k;
}int main()
{ char str[100];int l;printf("input string:");scanf("%s", str);l = fun(str);printf("num:%d\n", l);return 0;
}

分析

需求:

  1. 先将字符串里的数字按顺序拼接成整数以及数字之和
  2. 再将拼接的数字减去数字之和,并将这个值作为函数值返回

解答代码如下:

#include <stdio.h>
#include <string.h>int fun(char* str) 
{  int i, k, s;i = 0;s = 0;
/**********************found***********************///从strlen函数的功能可以知道//serlen返回的是字符串个数//而从0开始,所以要是小于for (k=0; 1️⃣k<strlen(str); k++) {
/**********************found***********************///注意这里比较的是字符而非数字 if ( (str[k] >= '0'2️⃣) && (str[k] <= '9'2️⃣) ) {//数字拼接的作用i = i * 10 + str[k] - '0';//数字之和s = s + str[k] - '0';}}/**********************found***********************///根据题目可以知道,最终要返回的是//拼接数字减去数字之和return 3️⃣i - s;
}int main()
{ char str[100];int l;printf("input string:");scanf("%s", str);l = fun(str);printf("num:%d\n", l);return 0;
}

 

三、程序设计题 --- 提取字符串数组中单词尾部字母

难度:☆☆☆

题目

请编写函数 fun,其功能是:
从一行单词字符串数组 a 中分别提取每个单词尾部的字母,组成一个新的字符串数组 b,并通过实参返回。
单词分隔是以一个空格或几个空格进行分隔。

例如:
This is a C program
输出:ssaCm

代码如下:
在fun函数中编写

#include <stdio.h>
#include <string.h>
#include <conio.h>
void NONO();void fun(char a[], char b[])
{}void main()
{char a[]="This is a C program", b[100];fun(a,b);printf("%s\n",b);
}

分析

由题意可知:因为单词分隔是以一个空格或几个空格进行分隔
所以可以判断一个空格后面是否为字母,如果为字母则表示为一个字母
再取i - 1的值即可
最后一个单词的右边是斜杠零不是空格,所以最后一个单词加不进
所以最后要将最后一个单词的尾部字母单独加入

解答代码如下:

#include <stdio.h>
#include <string.h>
#include <conio.h>void fun(char a[], char b[])
{int i, j = 0;//flag来控制空格前一个是否为字母int flag = 0;//遍历整个字符串for(i = 0; a[i] != '\0'; i++){    if( a[i] >= 'a' && a[i] <= 'z' || a[i] >= 'A' && a[i] <= 'Z' ){flag = 1;}else if( a[i] == ' ' ){   //如果flag等于1//则表示空格前一个是字母//就代表着为一个单词if( flag == 1 ){   b[j++] = a[i - 1];flag = 0;}}}//因为还有\0前面还是一个单词//所以要单独加入b[j] = a[i - 1];//因为是字符串,所以还要加入'\0'b[j + 1] = '\0';
}void main()
{char a[]="This is a C program", b[100];fun(a,b);printf("%s\n",b);
}

希望这篇文章对您(* ̄︶ ̄)
专栏:二级C语言

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

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

相关文章

【四川乡镇界面】图层shp格式arcgis数据乡镇名称和编码2020年wgs84无偏移内容测评

本文将详细解析标题和描述中提到的IT知识点&#xff0c;主要涉及GIS&#xff08;Geographic Information System&#xff0c;地理信息系统&#xff09;技术&#xff0c;以及与之相关的文件格式和坐标系统。 我们要了解的是"shp"格式&#xff0c;这是一种广泛用于存储…

kaggle比赛入门 - House Prices - Advanced Regression Techniques(第三部分)

本文承接上一篇。 1. 数据预处理流水线&#xff08;pipelines&#xff09; from sklearn.compose import ColumnTransformer from sklearn.pipeline import Pipeline from sklearn.impute import SimpleImputer from sklearn.preprocessing import StandardScaler, OneHotEnc…

constexpr 实现编译时加密

介绍一种利用 constexpr 实现编译时加密&#xff0c;运行时解密的方法。本文将介绍这一技术&#xff0c;并展示一个具体的实现示例。 ::: tip 逆向工程常通过执行文件的中静态字符串信息找到关键点函数进行逆向&#xff0c;编译时加密可以一定程度上避免这个问题。 ::: 什么是…

关于MySQL InnoDB存储引擎的一些认识

文章目录 一、存储引擎1.MySQL中执行一条SQL语句的过程是怎样的&#xff1f;1.1 MySQL的存储引擎有哪些&#xff1f;1.2 MyIsam和InnoDB有什么区别&#xff1f; 2.MySQL表的结构是什么&#xff1f;2.1 行结构是什么样呢&#xff1f;2.1.1 NULL列表&#xff1f;2.1.2 char和varc…

2018年全国硕士研究生入学统一考试管理类专业学位联考英语(二)试题-解析版

&#x1f3e0;个人主页&#xff1a;fo安方的博客✨ &#x1f482;个人简历&#xff1a;大家好&#xff0c;我是fo安方&#xff0c;目前中南大学MBA在读&#xff0c;也考取过HCIE Cloud Computing、CCIE Security、PMP、CISP、RHCE、CCNP RS、PEST 3等证书。&#x1f433; &…

高可用集群故障之join

本文记录了在部署高可用的k8s集群时&#xff0c;遇到的一个故障及其解决方法。 集群环境 描述&#xff1a;三主三从&#xff0c;eth0为外网网卡&#xff0c;eth1为内网网卡&#xff0c;内网互通。 需求&#xff1a;eth0只负责访问外网&#xff0c;eth1作为集群间的通信。 主…

FPGA实现任意角度视频旋转(完结)视频任意角度旋转实现

本文主要介绍如何基于FPGA实现视频的任意角度旋转&#xff0c;关于视频180度实时旋转、90/270度视频无裁剪旋转&#xff0c;请见本专栏前面的文章&#xff0c;旋转效果示意图如下&#xff1a; 为了实时对比旋转效果&#xff0c;采用分屏显示进行处理&#xff0c;左边代表旋转…

10.business english-global market

eco-friendly case study: 案例学习 At the workshop工作坊, they agreed to emphasize eco-friendliness,adapt messageing, and boost digital marketing to stand out globally. Our study shows that more people want eco-friendly products in different places.Looks …

动手学图神经网络(8):在消息传递中定制聚合操作

在消息传递中定制聚合操作 安装Pytorch和PyG # 安装所需的包 import os import torch os.environ[TORCH] = torch.__version__# 以下是安装命令,实际运行时可取消注释 #!pip install -q torch-scatter -f https://data.pyg.org/whl/torch-${TORCH}.html #!pip install -q to…

RocketMQ原理—5.高可用+高并发+高性能架构

大纲 1.RocketMQ的整体架构与运行流程 2.基于NameServer管理Broker集群的架构 3.Broker集群的主从复制架构 4.基于Topic和Queue实现的数据分片架构 5.Broker基于Pull模式的主从复制原理 6.Broker层面到底如何做到数据0丢失 7.数据0丢失与写入高并发的取舍 8.RocketMQ读…

一文简单回顾Java中的String、StringBuilder、StringBuffer

简单说下String、StringBuilder、StringBuffer的区别 String、StringBuffer、StringBuilder在Java中都是用于处理字符串的&#xff0c;它们之间的区别是String是不可变的&#xff0c;平常开发用的最多&#xff0c;当遇到大量字符串连接的时候&#xff0c;就用StringBuilder&am…

Go:基于Go实现一个压测工具

文章目录 写在前面整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理 客户端模块Http客户端处理Grpc客户端处理Websocket客户端处理 连接处理模块GrpcHttp 统计数据模块统计原理实现过程 写在前面 本篇主要是基于Go来实现一个压测的工具&#xff0c;关于压测的内…

Redis --- 分布式锁的使用

我们在上篇博客高并发处理 --- 超卖问题一人一单解决方案讲述了两种锁解决业务的使用方法&#xff0c;但是这样不能让锁跨JVM也就是跨进程去使用&#xff0c;只能适用在单体项目中如下图&#xff1a; 为了解决这种场景&#xff0c;我们就需要用一个锁监视器对全部集群进行监视…

【贪心算法】洛谷P1090 合并果子 / [USACO06NOV] Fence Repair G

2025 - 01 - 21 - 第 45 篇 【洛谷】贪心算法题单 -【 贪心算法】 - 【学习笔记】 作者(Author): 郑龙浩 / 仟濹(CSND账号名) 洛谷 P1090[NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G 【贪心算法】 文章目录 洛谷 P1090[NOIP2004 提高组] 合并果子 / [USACO06…

小盒科技携手体验家,优化智能教育服务体验,打造在线教育新高度

北京小盒科技有限公司&#xff08;简称“小盒科技”&#xff0c;由“作业盒子”更名而来&#xff09;是一家专注于教育科技的公司&#xff0c;致力于利用人工智能、大数据等先进技术&#xff0c;为中小学教育提供创新的解决方案和产品。 近日&#xff0c;「小盒科技」携手体…

KNN算法学习实践

1.理论学习 原文链接 ShowMeAI知识社区 2.案例实践 假如一套房子打算出租&#xff0c;但不知道市场价格&#xff0c;可以根据房子的规格&#xff08;面积、房间数量、厕所数量、容纳人数等&#xff09;&#xff0c;在已有数据集中查找相似&#xff08;K近邻&#xff09;规格…

PhotoShop中JSX编辑器安装

1.使用ExtendScript Tookit CC编辑 1.安装 打开CEP Resource链接&#xff1a; CEP-Resources/ExtendScript-Toolkit at master Adobe-CEP/CEP-Resources (github.com) 将文件clone到本地或者下载到本地 点击AdobeExtendScriptToolKit_4_Ls22.exe安装&#xff0c;根据弹出的…

ESP32-CAM实验集(WebServer)

WebServer 效果图 已连接 web端 platformio.ini ; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library stor…

强化学习数学原理(三)——值迭代

一、值迭代过程 上面是贝尔曼最优公式&#xff0c;之前我们说过&#xff0c;f(v)v&#xff0c;贝尔曼公式是满足contraction mapping theorem的&#xff0c;能够求解除它最优的策略和最优的state value&#xff0c;我们需要通过一个最优v*&#xff0c;这个v*来计算状态pi*&…

vue(33) : 安装组件出错解决

1. request to https://registry.npm.taobao.org/semver/download/semver-6.1.1.tgz?cache0&other_urlshttps%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.1.1.tgz failed, reason: certificate has expired 这个错误提示表明你在尝试从https://reg…