二级C语言题解:矩阵主、反对角线元素之和,二分法求方程根,处理字符串中 * 号
目录
一、程序填空📝 --- 矩阵主、反对角线元素之和
题目📃
分析🧐
二、程序修改🛠️ --- 二分法求方程根
题目📃
分析🧐
三、程序设计💻 --- 处理字符串中 * 号
题目📃
分析🧐
今日题的总结
前言
本文讲解:矩阵主、反对角线元素之和,二分法求方程根,处理字符串中 * 号🏠我的主页:我的主页
📚系列专栏:系列专栏
![]()
一、程序填空📝 --- 矩阵主、反对角线元素之和
难度:⭐
题目📃
在此程序中,函数 fun 的功能是:计算 N×N 矩阵的主对角线元素和反对角线元素之和,并作为函数值返回。要求先累加主对角线元素中的值,再累加反对角线元素中的值。
例如,若 N = 3,有下列矩阵:
1 2 3
4 5 6
7 8 9首先累加 1、5、9,然后累加 3、5、7,函数返回值为 30。
代码如下:
在1️⃣2️⃣3️⃣处填空
#include <stdio.h>
#define N 4
int fun(int t[][N], int n)
{ int i, sum;
/**********found**********/1️⃣;for(i=0; i<n; i++)
/**********found**********/sum+= 2️⃣;for(i=0; i<n; i++)
/**********found**********/sum+= t[i][n-i-3️⃣] ;return sum;
}
void main()
{ int t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j;printf("\nThe original data:\n");for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%4d",t[i][j]);printf("\n");}printf("The result is: %d",fun(t,N));
}
分析🧐
这道题相对简单
- 填写:sum = 0
由下方的sum的使用可以知道
这个sum没有赋初值
又因为是sum是用来做累加求和
所以初始值是0 - 填写:t[ i ][ i ]
由题意可以知道,这里有两个for循环
这里的第一个就是累加从左往右(主对角线)的长度
可以看出规律,都是行列相等的 - 填写:1
这个循环,是来实现反对角线的(从右往左)
可以写一下反对角线的各个元素,就可以得出规律了


解答代码如下:
#include <stdio.h>
#define N 4
int fun(int t[][N], int n)
{ int i, sum;
/**********found**********/1️⃣sum = 0;for(i=0; i<n; i++)
/**********found**********/2️⃣sum+= t[i][i];for(i=0; i<n; i++)
/**********found**********/3️⃣sum+= t[i][n-i-1] ;return sum;
}
void main()
{ int t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j;printf("\nThe original data:\n");for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%4d",t[i][j]);printf("\n");}printf("The result is: %d",fun(t,N));
}
二、程序修改🛠️ --- 二分法求方程根
难度:⭐
题目📃
在此程序中,函数 fun 和 funx 的功能是:用二分法求方程 2x³ - 4x² + 3x - 6 = 0 的一个根,并要求绝对误差不超过 0.001。
例如,若给 m 输入 - 100,n 输入 90,则函数求得的一个根为 2.000。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件 modi1.c 中。
不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
代码如下:
在代码中找出2个错误并修改
#include <stdio.h>
#include <math.h>
double funx(double x)
{ return(2*x*x*x-4*x*x+3*x-6); }
double fun( double m, double n)
{
/************found************/int r;r=(m+n)/2;
/************found************/while(fabs(n-m)<0.001){ if(funx(r)*funx(n)<0) m=r;else n=r;r=(m+n)/2;}return r;
}
void main( )
{ double m,n, root;printf("Enter m n : \n"); scanf("%lf%lf",&m,&n);root=fun( m,n );printf("root = %6.3f\n",root);
}
分析🧐
这道题的意思难以理解,但是不要被这个文字描述吓到了,看他在程序里挖的错,都是一眼能够看出来的
- 第8行改为
double r;
函数的返回值是double类型
而最后是返回r的,所以很明显 i 是double - 第11行改为
while(fabs(r)<0.001)
由题目可知,绝对值不超过0.001
所以是小于0.001
解答代码如下:
#include <stdio.h>
#include <math.h>
double funx(double x)
{ return(2*x*x*x-4*x*x+3*x-6); }
double fun( double m, double n)
{
/************found************/1️⃣ double r;r=(m+n)/2;
/************found************/2️⃣ while(fabs(r)<0.001){ if(funx(r)*funx(n)<0) m=r;else n=r;r=(m+n)/2;}return r;
}
void main( )
{ double m,n, root;printf("Enter m n : \n"); scanf("%lf%lf",&m,&n);root=fun( m,n );printf("root = %6.3f\n",root);
}
三、程序设计💻 --- 处理字符串中 * 号
难度:⭐⭐⭐
题目📃
在此程序中,规定输入的字符串中只包含字母和 * 号。
编写函数 fun,其功能是:除了字符串前导和尾部的号外,将串中其它的 * 号全部删除。形参 h 已指向字符串中第一个字母,形参 p 指向字符串的中最后一个字母。在编写函数时,不得使用 C 语言提供的字符串函数。例如,若字符串中的内容为 ******ABC*DEFG******,删除后,字符串中的内容应当是:******ABCDEFG******。在编写函数时,不得使用 C 语言提供的字符串函数。
注意:部分源程序在文件 prog1.c 中。
请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。
代码如下:
在fun函数中编写
#include <stdio.h>
void fun( char *a, char *h,char *p )
{}void main()
{ char s[81],*t, *f;printf("Enter a string:\n");gets(s);t=f=s;while(*t)t++;t--;while(*t=='*')t--;while(*f=='*')f++;fun( s , f,t );printf("The string after deleted:\n");puts(s);
}
分析🧐
可以先看main函数的功能,就是将t指针跳过后面的*号,还有将f指针是跳过前面的*号
而后在fun函数中,h指针相当于指向在左边第一个非*号地址的位置
p指针是指向右边非*号地址的位置
这也就相当于是帮我们省去了考虑前后导零的情况了
之后就可以想到覆盖,当h指针是*号,就覆盖它
如果不是*号就向前走

解答代码如下:
#include <stdio.h>
void fun( char *a, char *h,char *p )
{//p指向最右边非星号的位置//h指向最左边非星号的位置int j;while(h < p){//让flag指向h,代替h指针移动//如果直接让h指针移动的话,就只能执行一次了char *flag = h;if(*flag == '*'){//如果是*号,就将其覆盖for(j = 0; flag[j] != '\0'; j++)flag[j] = flag[j + 1];//覆盖完后,长度也要减少一个,所以p--p--;//如果不是*号的话h指针就向前移动}else h++;}
}void main()
{ char s[81],*t, *f;printf("Enter a string:\n");gets(s);t=f=s;while(*t)t++;t--;while(*t=='*')t--;while(*f=='*')f++;fun( s , f,t );printf("The string after deleted:\n");puts(s);
}
今日题的总结
如果遇到题目看不懂,一定不要慌,先看看代码中能不能找出解出这个空的条件
希望本文能够帮助到你😊
相关文章:
二级C语言题解:矩阵主、反对角线元素之和,二分法求方程根,处理字符串中 * 号
目录 一、程序填空📝 --- 矩阵主、反对角线元素之和 题目📃 分析🧐 二、程序修改🛠️ --- 二分法求方程根 题目📃 分析🧐 三、程序设计💻 --- 处理字符串中 * 号 题目…...
利用 Python 爬虫获取按关键字搜索淘宝商品的完整指南
在电商数据分析和市场研究中,获取商品的详细信息是至关重要的一步。淘宝作为中国最大的电商平台之一,提供了丰富的商品数据。通过 Python 爬虫技术,我们可以高效地获取按关键字搜索的淘宝商品信息。本文将详细介绍如何利用 Python 爬虫技术获…...
什么是幂等性
幂等性(Idempotence)是一个在数学、计算机科学等多个领域都有重要应用的概念,下面从不同领域为你详细介绍其含义。 数学领域 在数学中,幂等性是指一个操作或函数进行多次相同的运算,其结果始终与进行一次运算的结果相…...
群晖NAS如何通过WebDAV和内网穿透实现Joplin笔记远程同步
文章目录 前言1. 检查群晖Webdav 服务2. 本地局域网IP同步测试3. 群晖安装Cpolar工具4. 创建Webdav公网地址5. Joplin连接WebDav6. 固定Webdav公网地址7. 公网环境连接测试 前言 在数字化浪潮的推动下,笔记应用已成为我们记录生活、整理思绪的重要工具。Joplin&…...
示例:JAVA调用deepseek
近日,国产AI DeepSeek在中国、美国的科技圈受到广泛关注,甚至被认为是大模型行业的最大“黑马”。在外网,DeepSeek被不少人称为“神秘的东方力量”。1月27日,DeepSeek应用登顶苹果美国地区应用商店免费APP下载排行榜,在…...
【提示工程】:如何有效与大语言模型互动
随着人工智能技术的快速发展,大语言模型(LLM)如 GPT 系列在各类任务中的应用越来越广泛。从文本生成到代码编写,从数据分析到内容创作,这些模型展现出了强大的能力。然而,要充分发挥大语言模型的潜力,关键在于如何设计高质量的提示词(Prompts)。这门技术被称为提示工程…...
操作系统—经典同步问题
补充 互斥信号量mutex初值均为1 同步信号量根据问题实际描述自己设计 生产者-消费者问题 问题描述:一组生产者进程和一组消费者进程 共享一个初始为空、大小为n的缓冲区。(缓冲区:临界资源) 只有缓冲区没满时,生产者…...
profinet工业通信协议网关:提升钢铁冶炼智能制造效率的利器
工业通信协议网关profinet转ethercat(稳联技术WL-PN-ECATM)在钢铁冶炼生产线中的智能应用实践 在现代钢铁冶炼生产中,复杂的设备互联和数据传输对生产效率和质量控制至关重要。本案例详细阐述了某大型钢铁集团通过工业通信协议网关实现生产线…...
Vue基础:计算属性(描述依赖响应式状态的复杂逻辑)
文章目录 引言computed() 方法期望接收一个 getter 函数可写计算属性:计算属性的 Setter计算属性的缓存机制调试 Computed引言 推荐使用计算属性来描述依赖响应式状态的复杂逻辑 computed 函数:它接受 getter 函数并为 getter 返回的值返回一个不可变的响应式 ref 对象。 c…...
leetcode:1534. 统计好三元组(python3解法)
难度:简单 给你一个整数数组 arr ,以及 a、b 、c 三个整数。请你统计其中好三元组的数量。 如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件,则认为它是一个 好三元组 。 0 < i < j < k < arr.length|arr[i] - arr[j]| &l…...
BUU27 [SUCTF 2019]CheckIn1
题目是上传文件 直接上传muma.jpg还不成功: 好吧,那做一个图片马上去,换马以后发现还是不行,呃啊啊啊啊 干啥啥不行,搜wp第一名,哎 新面孔:exif_imagetype 函数在 PHP 中用于检测一个文件是否为…...
unity学习30:Audio Source, Audio clip 音效和音乐
目录 1 音乐相关必须要有 Audio listener 和Source 2 Scene里必须要有 Audio listener 3 Audio Source 3.1 Audio Source 就是音源,可播放的音乐clip 分类 3.2 创建Audio Source 3.3 各种属性 3.4 3D sound Settings 4 使用脚本来播放声音 4.1 声明AudioC…...
【Qt 常用控件】输入类控件1(QLineEdit和QTextEdit 输入框)
目录 1.QLineEdit 单行输入框 例:输入个人信息,通过按钮提交 例:为输入框设置验证器,检查输入的电话 例:验证两次输入的密码是否一致 例:是否显示密码按钮,toggled信号。 2.QTextEdit多行输入框 、QPl…...
openEuler22.03LTS系统升级docker至26.1.4以支持启用ip6tables功能
本文记录了openEuler22.03LTS将docker升级由18.09.0升级至26.1.4的过程(当前docker最新版本为27.5.1,生产环境为保障稳定性,选择升级到上一个大版本26的最新小版本)。 一、现有环境 1、系统版本 [rootlocalhost opt]# cat /etc…...
深入解析:如何利用 Java 爬虫按关键字搜索淘宝商品
在电商领域,通过关键字搜索商品是常见的需求。无论是商家分析竞争对手,还是消费者寻找心仪的商品,获取搜索结果中的商品信息都至关重要。本文将详细介绍如何利用 Java 爬虫按关键字搜索淘宝商品,并提供完整的代码示例。 一、Java…...
STM32上部署AI的两个实用软件——Nanoedge AI Studio和STM32Cube AI
1 引言 STM32 微控制器在嵌入式领域应用广泛,因为它性能不错、功耗低,还有丰富的外设,像工业控制、智能家居、物联网这些场景都能看到它的身影。与此同时,人工智能技术发展迅速,也逐渐融入各个行业。 把 AI 部署到 STM…...
C++ Primer 成员访问运算符
欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...
芯科科技的BG22L和BG24L带来应用优化的超低功耗蓝牙®连接
全新的BG22L为常见蓝牙设备提供强大的安全性和处理能力,而BG24L支持先进的AI/ML加速和信道探测功能 2025年2月6日 – 致力于以安全、智能无线连接技术,建立更互联世界的全球领导厂商Silicon Labs(亦称“芯科科技”,NASDAQ&#x…...
java后端开发面试常问
面试常问问题 1 spring相关 (1)Transactional失效的场景 <1> Transactional注解默认只会回滚运行时异常(RuntimeException),如果方法中抛出了其他异常,则事务不会回滚(数据库数据仍然插…...
双非硕士的抉择:自学嵌入式硬件开发还是深入Linux C/C++走软开?
今天给大家分享的是一位粉丝的提问,双非硕研一是自学嵌入式走偏硬件还是说深入学习Linuxc/c走软开呢? 接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。 粉丝提问: 老师好ÿ…...
从‘点一下’到‘连一连’:Qt6中PushButton信号与槽的5种连接方式详解(含Lambda表达式实战)
从‘点一下’到‘连一连’:Qt6中PushButton信号与槽的5种连接方式详解(含Lambda表达式实战) 在Qt框架中,PushButton作为最基础的交互控件之一,其信号与槽机制是构建响应式用户界面的核心。随着Qt6的发布,信…...
知识竞赛代表队分组方法详解
🎲 知识竞赛代表队分组方法详解公平 均衡 策略 让每一支队伍都在合适的起点🎯 引言知识竞赛中,代表队的合理分组是赛事公平与精彩的基础。无论是学校比赛、企业活动还是大型公开赛,组织者都需要根据队伍数量和赛制选择合适的分…...
欢迎使用Marp CLI
欢迎使用Marp CLI 【免费下载链接】marp-cli A CLI interface for Marp and Marpit based converters 项目地址: https://gitcode.com/gh_mirrors/ma/marp-cli 第二页幻灯片 列表项1列表项2列表项3 代码演示 def hello_world():print("Hello from Marp CLI!"…...
Visual C++运行库终极指南:如何一键修复所有Windows程序依赖问题
Visual C运行库终极指南:如何一键修复所有Windows程序依赖问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过打开软件时突然弹出&…...
别再只会用digitalWrite了!用Arduino UNO的PWM引脚玩转RGB呼吸灯(附完整代码)
Arduino PWM实战:从呼吸灯到RGB色彩控制的深度探索 引言:为什么我们需要PWM? 想象一下,你第一次接触Arduino时,可能从最简单的Blink程序开始——让LED灯以固定频率闪烁。这种简单的开关控制能满足基础需求,…...
OpenMetadata企业级元数据平台:智能化数据治理的架构革新与实践路径
OpenMetadata企业级元数据平台:智能化数据治理的架构革新与实践路径 【免费下载链接】OpenMetadata OpenMetadata is a unified metadata platform for data discovery, data observability, and data governance powered by a central metadata repository, in-dep…...
Empire(帝国)CMS 7.5 恶意文件上传-CVE-2018-18086
登录管理员页面:这里经过多次测试,直接上传一句话样本文件的话不生效(避坑),并且$符需要做转义(避坑),否则:方式1:<?php file_put_contents("getshell.php"…...
反向海淘代购集运系统三种搭建路径对比:自研、开源二开、SaaS
「技术、数据、接口、系统问题欢迎留言私信沟通」引言:标准业务架构# 系统演示、API测试控制台:http://console.open.onebound.cn/console/?iRookie用户层(Web / App / 小程序)↓ 网关层(Nginx / Gateway)…...
从零构建MCP服务:AI应用外部工具集成入门指南
1. 项目概述:从零构建你的第一个MCP服务 最近在AI应用开发圈里,MCP(Model Context Protocol)这个词的热度越来越高。如果你正在尝试将大型语言模型(LLM)的能力集成到自己的应用里,或者想为你的A…...
突破性能瓶颈:Photoshop图层批量导出工具的架构解析与工作流优化
突破性能瓶颈:Photoshop图层批量导出工具的架构解析与工作流优化 【免费下载链接】Photoshop-Export-Layers-to-Files-Fast This script allows you to export your layers as individual files at a speed much faster than the built-in script from Adobe. 项目…...
