C语言程序设计(第四版)—习题7程序设计题
目录
1.选择法排序。
2.求一批整数中出现最多的数字。
3.判断上三角矩阵。
4.求矩阵各行元素之和。
5.求鞍点。
6.统计大写辅音字母。
7.字符串替换。
8.字符串转换成十进制整数。
1.选择法排序。
输入一个正整数n(1<n≤10),再输入n个整数,将它们从大到小排序后输出。试编写相应程序。
本题要求将给定的n个整数从大到小排序后输出。
输入格式:
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。
输入样例:
4 5 1 7 6输出样例:
7 6 5 1
#include<stdio.h>
int main()
{int a[10];int n;scanf("%d",&n);int i,j;for(i=0;i<n;i++)//输入数组内数字scanf("%d",&a[i]);int max,temp;for(j=0; j<n; j++)//选择排序{max = j;for(i=j+1; i<n; i++){if(a[max]<a[i])max = i;}temp = a[j];a[j] = a[max];a[max] = temp;}for(i=0;i<n-1;i++)//输出printf("%d ",a[i]);printf("%d",a[n-1]);return 0;
}
2.求一批整数中出现最多的数字。
输入一个正整数n(1<n≤1 000),再输入n个整数,分析每个整数的每一位数字,求出现次数最多的数字。例如输入3个整数1234、2345、3456,其中出现次数最多的数字是3和4,均出现了3次。试编写相应程序。
给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。
输入格式:
输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。
输出格式:
在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。
输入样例:
3 1234 2345 3456输出样例:
3: 3 4
#include <stdio.h>
int main () {int n,i,x;int mostC[10]= {0}; //设每个数字出现的次数为0scanf("%d",&n);for(i=0; i<n; i++) {scanf("%d",&x);if(x==0)//输入数字为0时,0出现一次mostC[0]++;else {while(x>0) { //记录每个数字出现的次数mostC[x%10]++;x/=10;}}}int max = 0;//出现的最多次数for(i=0; i<10; i++) {if(max<mostC[i])max = mostC[i];}printf("%d:",max);for(i=0; i<10; i++)if(mostC[i]==max)//找和最多出现次数相等的数字printf(" %d",i);return 0;
}
3.判断上三角矩阵。
输入一个正整数n(1≤n≤6)和 n 阶方阵 a 中的元素,如果 a 是上三角矩阵,输出 “ YES ”,否则,输出 “ NO ”。上三角矩阵指主对角线以下的元素都为0的矩阵,主对角线为矩阵的左上角至右下角的连线。 试编写相应程序。
上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。
本题要求编写程序,判断一个给定的方阵是否上三角矩阵。
输入格式:
输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。
输出格式:
每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。
输入样例:
3 3 1 2 3 0 4 5 0 0 6 2 1 0 -8 2 3 1 2 3 1 4 5 0 -1 6输出样例:
YES NO NO
矩阵的坐标位置间的关系:

#include<stdio.h>
int main(){int T;scanf("%d",&T);//输入待测矩阵的个数int n;int x;while(T--){int flag = 1;//标记,flag=1是上三角矩阵,否则flag=0不是scanf("%d",&n);for(int i=0;i<n;i++){//n行for(int j=0;j<n;j++){//列scanf("%d",&x);if(i>j && x!=0){flag = 0;}}}if(flag == 1){printf("YES\n");}else {printf("NO\n");}}return 0;
}
4.求矩阵各行元素之和。
输入2个正整数 m和 n(1≤m≤6,1≤n≤6),然后输入矩阵a(m行n列)中的元素,分别求出各行元素之和,并输出。试编写相应程序。
本题要求编写程序,求一个给定的m×n矩阵各行元素之和。
输入格式:
输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间
以空格分隔。
输出格式:
每行输出对应矩阵行元素之和。
输入样例:
3 2 6 3 1 -8 3 12输出样例:
9 -7 15
#include<stdio.h>
int main()
{int m,n;scanf("%d %d",&m,&n);int a[m][n];for(int i=0;i<m;i++){int sum=0;for(int j=0;j<n;j++){scanf("%d",&a[i][j]);sum+=a[i][j];}printf("%d\n",sum);}return 0;
}
5.求鞍点。
输入1个正整数n(1≤n≤6)和n阶方阵a中的元素,假设方阵a最多有1个鞍点,如果找到a的鞍点,就输出其下标,否则,输出 “ NO ”。鞍点的元素值在该行上最大,在该列上最小。试编写相应程序。
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
本题要求编写程序,求一个给定的n阶方阵的鞍点。
输入格式:
输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。
输出格式:
输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。
输入样例1:
4 1 7 4 1 4 8 3 6 1 6 1 2 0 7 8 9输出样例1:
2 1输入样例2:
2 1 7 4 1输出样例2:
NONE
#include<stdio.h>
int main(){int arr[6][6];//题目中说明:1≤n≤6int n;scanf("%d",&n);for(int i=0;i<n;i++)for(int j=0;j<n;j++)scanf("%d",&arr[i][j]);int Hmax=0,Lmin=0; int L=-1,H=-1;for(int i=0;i<n;i++){Hmax = arr[i][0];for(int j=0;j<n;j++){if(arr[i][j] >= Hmax){//找i行里面的最大的数,所在的列Hmax = arr[i][j];L = j;}}Lmin = arr[0][L];for(int k=0;k<n;k++){//遍历L列所在的每一行if(arr[k][L] <= Lmin){//列里面找最小Lmin = arr[k][L];H = k;}}if(Hmax == Lmin){break;} }if(Hmax == Lmin){printf("%d %d",H,L);}else{printf("NONE");}return 0;
}
6.统计大写辅音字母。
输入一个以回车结束的字符串(少于80个字符),统计并输出其中大写辅音字母的个数。大写辅音字母是指除 'A', 'E', 'I', 'O', 'U'以外的大写字母。试编写相应程序。
英文辅音字母是除
A、E、I、O、U以外的字母。本题要求编写程序,统计给定字符串中大写辅音字母的个数。输入格式:
输入在一行中给出一个不超过80个字符、并以回车结束的字符串。
输出格式:
输出在一行中给出字符串中大写辅音字母的个数。
输入样例:
HELLO World!输出样例:
4
#include<stdio.h>
int main()
{char ch[90];gets(ch);int i=0;int num=0;//统计大写辅音字母的个数while(ch[i]!='\0'){if((ch[i]>='B'&&ch[i]<='Z')&&ch[i]!='E'&&ch[i]!='I'&&ch[i]!='O'&&ch[i]!='U')num++;i++;}printf("%d",num);return 0;
}
7.字符串替换。
输入一个回车结束的字符串(少于80个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串。试编写相应程序。
原字母对应字母
…
本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:
原字母 对应字母 A Z B Y C X D W … … X C Y B Z A 输入格式:
输入在一行中给出一个不超过80个字符、并以回车结束的字符串。
输出格式:
输出在一行中给出替换完成后的字符串。
输入样例:
Only the 11 CAPItaL LeTtERS are replaced.输出样例:
Lnly the 11 XZKRtaO OeGtVIH are replaced.
对应的规律:
#include<stdio.h>
int main(){char ch[80],op;int len = -1;while(1){scanf("%c",&op);if(op=='\n')break;elselen++;ch[len] = op;}for(int i=0;i<=len;i++){if(ch[i]>='A'&&ch[i]<='Z'){ch[i] = 155-ch[i];}}for(int i=0;i<=len;i++){printf("%c",ch[i]);}return 0;
}
8.字符串转换成十进制整数。
输入一个以字符 “ # ”结束的字符串,滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果过滤后字符串的首字符为 “ - ”,代表该数是负数。试编写相应程序。
输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。
输入格式:
输入在一行中给出一个以#结束的非空字符串。
输出格式:
在一行中输出转换后的十进制数。题目保证输出在长整型范围内。
输入样例:
+-P-xf4+-1!#输出样例:
-3905
#include<stdio.h>
int main(){char op[80];char ch;int n=0;//十六进制字符个数int flag = 1;//标记符号do{scanf("%c",&ch);if((ch>='a'&&ch<='f') || (ch>='A'&&ch<='F') || (ch>='0'&&ch<='9')){op[n] = ch;n++;}if(ch=='-' && n==0){//在第一个十六进制字符之前存在字符“-”flag = -1;}}while(ch != '#');int sum = 0;int c = 1;for(int i=n-1;i>=0;i--){if(op[i]>='a'&&op[i]<='z')sum+=(op[i]-'a'+10)*c;if(op[i]>='A'&&op[i]<='Z')sum+=(op[i]-'A'+10)*c;if(op[i]>='0'&&op[i]<='9')sum+=(op[i]-'0')*c;c*=16;}printf("%d",flag*sum);return 0;
}相关文章:
C语言程序设计(第四版)—习题7程序设计题
目录 1.选择法排序。 2.求一批整数中出现最多的数字。 3.判断上三角矩阵。 4.求矩阵各行元素之和。 5.求鞍点。 6.统计大写辅音字母。 7.字符串替换。 8.字符串转换成十进制整数。 1.选择法排序。 输入一个正整数n(1<n≤10)…...
ZCC6982-同步升压充双节锂电池充电芯片
特性 ■高达 2A 的可调充电电流(受实际散热和输入功率限制) ■支持 8.4V、8.6V、8.7V、8.8V 的充满电压(限QFN) ■高达 28V 的输入耐压保护 ■高达 28V 的电池端耐压保护 ■宽输入工作电压范围:3.0V~6.5V ■峰值…...
定时器(基本定时器、通用定时器、高级定时器)
目录 一、基本定时器 二、通用定时器 三、高级定时器 一、基本定时器 1、作用:计时和计数。 二、通用定时器 1、除了有基本定时器的计时和计数功能外,主要有输入捕获和输出比较的功能,硬件主要由六大部分组成: ① 时钟源 ② 控…...
009集——磁盘详解——电脑数据如何存储在磁盘
很多人也知道数据能够保存是由于设备中有一个叫做「硬盘」的组件存在,但也有很多人不知道硬盘是怎样储存这些数据的。这里给大家讲讲其中的原理。 首先我们要明白的是,计算机中只有0和1,那么我们存入硬盘的数据,实际上也就是一堆0…...
鸿蒙开发-HarmonyOS UI架构
初步布局Index 当我们新建一个工程之后,首先会进入Index页。我们先简单的做一个文章列表的显示 class Article {title?: stringdesc?: stringlink?: string }Entry Component struct Index {State articles: Article[] []build() {Row() {Scroll() {Column() …...
Flutter 动画(显式动画、隐式动画、Hero动画、页面转场动画、交错动画)
前言 当前案例 Flutter SDK版本:3.13.2 显式动画 Tween({this.begin,this.end}) 两个构造参数,分别是 开始值 和 结束值,根据这两个值,提供了控制动画的方法,以下是常用的; controller.forward() : 向前…...
用HTML5 Canvas创造视觉盛宴——动态彩色线条效果
目录 一、程序代码 二、代码原理 三、运行效果 一、程序代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!-- 声明文档类型为XHTML 1.0 Transitional -…...
云原生介绍与容器的基本概念
云原生介绍 1、云原生的定义 云原生为用户指定了一条低心智负担的、敏捷的、能够以可扩展、可复制的方式最大化地利用云的能力、发挥云的价值的最佳路径。 2、云原生思想两个理论 第一个理论基础是:不可变基础设施。 第二个理论基础是:云应用编排理…...
Flash存储
目录 一、MCU读写擦除Flash步骤 1、写flash步骤: 2、读flash步骤: 3、擦除flash步骤: 4、要注意的地方: 一、MCU读写擦除Flash步骤 1、写flash步骤: (1)解锁 2、读flash步骤: 3、擦除flash步骤&#x…...
Day 44 | 动态规划 完全背包、518. 零钱兑换 II 、 377. 组合总和 Ⅳ
完全背包 题目 文章讲解 视频讲解 完全背包和0-1背包的区别在于:物品是否可以重复使用 思路:对于完全背包问题,内层循环的遍历方式应该是从weight[i]开始一直遍历到V,而不是从V到weight[i]。这样可以确保每种物品可以被选择多次…...
使用PaddleNLP UIE模型提取上市公司PDF公告关键信息
项目地址:使用PaddleNLP UIE模型抽取PDF版上市公司公告 - 飞桨AI Studio星河社区 (baidu.com) 背景介绍 本项目将演示如何通过PDFPlumber库和PaddleNLP UIE模型,抽取公告中的相关信息。本次任务的PDF内容是破产清算的相关公告,目标是获取受理…...
软件工程师,OpenAI Sora驾到,快来围观
概述 近期,OpenAI在其官方网站上公布了Sora文生视频模型的详细信息,展示了其令人印象深刻的能力,包括根据文本输入快速生成长达一分钟的高清视频。Sora的强大之处在于其能够根据文本描述,生成长达60秒的视频,其中包含&…...
【Linux 04】编辑器 vim 详细介绍
文章目录 🌈 Ⅰ 基本概念🌈 Ⅱ 基本操作1. 进入 / 退出 vim2. vim 模式切换 🌈 Ⅲ 命令模式1. 光标的移动2. 复制与粘贴3. 剪切与删除4. 撤销与恢复 🌈 Ⅳ 底行模式1. 保存文件2. 查找字符3. 退出文件4. 替换内容5. 显示行号6. 外…...
KMP算法详解
1. 问题引入 链接:leetcode_28 题目:s1字符串是否包含s2字符串,如果包含返回s1中包含s2的最左开头位置,不包含返回-1 暴力方法就是s1的每个位置都做开头,然后去匹配s2整体,时间复杂度O(n*m) KMP算法可以…...
ubuntu22.04@laptop OpenCV Get Started: 013_contour_detection
ubuntu22.04laptop OpenCV Get Started: 013_contour_detection 1. 源由2. 应用Demo2.1 C应用Demo2.2 Python应用Demo 3. contour_approx应用3.1 读取图像并将其转换为灰度格式3.2 应用二进制阈值过滤算法3.3 查找对象轮廓3.4 绘制对象轮廓3.5 效果3.6 CHAIN_APPROX_SIMPLE v.s…...
[ai笔记5] 个人AI资讯助手实战
欢迎来到文思源想的ai空间,这是技术老兵重学ai以及成长思考的第5篇分享,也是把ai场景化应用的第一篇实操内容! 既然要充分学习和了解ai,自然少不了要时常看看ai相关资讯,所以今天特地用字节的“扣子”做了一个ai的资讯…...
QT+OSG/osgEarth编译之八十九:osgdb_ply+Qt编译(一套代码、一套框架,跨平台编译,版本:OSG-3.6.5插件库osgdb_ply)
文章目录 一、osgdb_ply介绍二、文件分析三、pro文件四、编译实践一、osgdb_ply介绍 斯坦福三角形格式(Stanford Triangle Format)是一种用于存储三维模型数据的文件格式,也称为 PLY 格式。它最初由斯坦福大学图形实验室开发,用于存储和共享三维扫描和计算机图形数据。 P…...
机器人专题:我国机器人产业园区发展现状、问题、经验及建议
今天分享的是机器人系列深度研究报告:《机器人专题:我国机器人产业园区发展现状、问题、经验及建议》。 (报告出品方:赛迪研究院) 报告共计:26页 机器人作为推动工业化发展和数字中国建设的重要工具&…...
算法沉淀——哈希算法(leetcode真题剖析)
算法沉淀——哈希算法 01.两数之和02.判定是否互为字符重排03.存在重复元素04.存在重复元素 II05.字母异位词分组 哈希算法(Hash Algorithm)是一种将任意长度的输入(也称为消息)映射为固定长度的输出的算法。这个输出通常称为哈希…...
深入理解Redis哨兵原理
哨兵模式介绍 在深入理解Redis主从架构中Redis 的主从架构中,由于主从模式是读写分离的,如果主节点(master)挂了,那么将没有主节点来服务客户端的写操作请求,也没有主节点给从节点(slave&#…...
DDoS防护架构解析与实战经验
随着互联网业务的迅猛发展,企业在享受技术红利的同时,也面临着越来越复杂的安全挑战。分布式拒绝服务攻击(DDoS)作为一种常见的网络攻击手段,能够通过大量的虚假流量导致服务器过载,从而影响业务的正常运行…...
别等 SQL 跑慢了再靠猜,NineData 怎样把问题一步步看清
SQL 变慢最怕的不是慢本身,而是大家一开始只能靠猜。明明语法没报错,业务一上线却卡住了;多了一个函数、少了一个索引,或者关联顺序不合适,就可能让数据库白白扫描一大堆数据。在很多团队里,这类问题最早往…...
别再手动算考勤了!我用Python+企业微信API写了个自动统计脚本(附源码)
告别手工考勤:Python企业微信API自动化统计实战指南 每次月底统计考勤时,行政同事总要加班到深夜,手动核对上百条打卡记录。迟到、早退、外勤打卡...各种状态让人眼花缭乱。作为技术团队的一员,我决定用Python企业微信API打造一个…...
C166编译器内联展开机制与嵌入式性能优化
1. C166编译器运行时库函数的内联展开机制解析在嵌入式开发领域,C166架构因其高效的实时性能被广泛应用于工业控制领域。作为长期使用Keil C166工具链的开发者,我发现编译器对标准库函数的内联优化处理直接影响着代码的执行效率和内存占用。本文将深入剖…...
Perplexity搜索功能隐藏入口全解锁:9个未公开Pro技巧,第7个连官方文档都没写!
更多请点击: https://intelliparadigm.com 第一章:Perplexity搜索功能隐藏入口全解锁:现象与价值重估 Perplexity.ai 的公开界面长期以简洁问答框为核心,但其底层实际嵌套了多组未在UI中显式暴露的高级搜索能力——包括语义过滤、…...
Unity3d之随机生成数字
UnityEngine.Random.Range(min,max)包含最小值不包含最大值Mathf.Clamp是限定范围...
NIC-400周期模型构建失败分析与解决方案
1. 问题概述:NIC-400周期模型构建失败场景分析最近在Arm IP Exchange平台上构建NIC-400周期模型时,不少工程师遇到了构建失败的问题。作为Arm CoreLink系列网络互连控制器的重要验证工具,周期模型的正确构建直接影响后续系统级验证的效率。根…...
从‘班级-学生’数据实战出发:手把手教你用R语言的lme4包搞定多层线性模型(MLM/HLM)
从班级-学生数据实战:R语言lme4包多层线性模型全流程解析 当研究者面对具有层级结构的数据时(如学生嵌套于班级、员工嵌套于公司),传统线性回归的独立性假设往往被打破。多层线性模型(Multilevel Linear Models, MLM&a…...
2026年AI求职必看:掌握这3类岗位核心技能,年薪百万不是梦!收藏备用
本文分析了AI行业招聘市场的两极分化现象,并深入拆解了算法工程师、大模型应用开发、AI产品经理三类热门岗位的真实招聘要求和面试准备重点。文章指出,企业对AI人才的要求已从"会调模型"转向"能落地产品",复合型人才需求…...
Keil MDK中EVR选项缺失的解决方案与原理
1. 问题现象解析:EVR选项缺失的典型表现 在Keil MDK开发环境中使用Event Recorder(事件记录器)时,开发者常会遇到一个令人困惑的现象:按照官方文档配置printf重定向到EVR时,STDOUT的下拉菜单中本该出现的&q…...
