二级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;这是一种广泛用于存储…

关于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;左边代表旋转…

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;我们就需要用一个锁监视器对全部集群进行监视…

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

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

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*&…

03:Heap代码的分析

Heap代码的分析 1、内存对齐2、Heap_1.c文件代码分析3、Heap_2.c文件代码分析4、Heap_4.c文件代码分析5、Heap_5.c文件代码分析 1、内存对齐 内存对齐的作用是为了CPU更快的读取数据。对齐存储与不对齐存储的情况如下&#xff1a; 计算机读取内存中的数据时是一组一组的读取的…

three.js+WebGL踩坑经验合集(5.2):THREE.Mesh和THREE.Line2在镜像处理上的区别

本文紧接上篇&#xff1a; (5.1):THREE.Line2又一坑&#xff1a;镜像后不见了 本文将解答上篇提到的3个问题&#xff0c;首先回答第二个问题&#xff0c;如何获取全局的缩放值。 scaleWorld这个玩意儿呢&#xff0c;three.js官方就没提供了。应该说&#xff0c;一般的渲染引…

jQuery的系统性总结

前言 jQuery是一个快速、小型且功能丰富的 JavaScript 库&#xff08;实际上就是一堆JS代码&#xff09;。其目的在于&#xff1a;write less do more。 优点&#xff1a; 写得少做得多&#xff1b;兼容性&#xff1b;体积小&#xff1b;链式编程&#xff1b;隐式迭代、插件丰…

【背包问题】完全背包

目录 前言&#xff1a; 一&#xff0c;完全背包问题 问题描述&#xff1a; 模板题目&#xff1a; 题目解析&#xff1a; 代码&#xff1a; 空间优化&#xff1a; 二&#xff0c;典例 1&#xff0c;零钱兑换 题目解析&#xff1a; 算法分析&#xff1a; 代码&#xff…

【Python实现机器遗忘算法】复现2023年TNNLS期刊算法UNSIR

【Python实现机器遗忘算法】复现2023年TNNLS期刊算法UNSIR 1 算法原理 Tarun A K, Chundawat V S, Mandal M, et al. Fast yet effective machine unlearning[J]. IEEE Transactions on Neural Networks and Learning Systems, 2023. 本文提出了一种名为 UNSIR&#xff08;Un…

知识管理平台在企业信息化建设中的应用价值与未来展望

内容概要 在当今信息化时代&#xff0c;企业面临着海量信息的挑战&#xff0c;知识管理平台因此应运而生&#xff0c;成为企业提升管理效率和决策能力的关键工具。知识管理平台不仅仅是一个信息存储的工具&#xff0c;它集成了信息共享、协作与创新、决策支持等多项功能。通过…

MiniHack:为强化学习研究提供丰富而复杂的环境

人工智能咨询培训老师叶梓 转载标明出处 想要掌握如何将大模型的力量发挥到极致吗&#xff1f;叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具&#xff08;限时免费&#xff09;。 1小时实战课程&#xff0c;您将学习到如何轻松上手并有效利用 Llama Facto…