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}; //设每个数字出现的次数为0
	scanf("%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≤6
	int 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'以外的大写字母。试编写相应程序。

英文辅音字母是除AEIOU以外的字母。本题要求编写程序,统计给定字符串中大写辅音字母的个数。

输入格式:

输入在一行中给出一个不超过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\rightarrow Z

B\rightarrow Y

C\rightarrow X

D\rightarrow W

      …

X\rightarrow C

 Y\rightarrow B

 Z\rightarrow A

本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:

原字母对应字母
AZ
BY
CX
DW
XC
YB
ZA

输入格式:

输入在一行中给出一个不超过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;
        else
            len++;
        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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【学习心得】Python好库推荐——captcha

Captcha的全称是"Completely Automated Public Turing test to tell Computers and Humans Apart",完全自动化的图灵测试,用于区分计算机和人类。说直白点就是验证码&#xff0c;验证你是人而不是爬虫。 Captcha的原理就是利用计算机目前还无法进行实时视觉辨识和字符…

情人节到了,写一份爱心程序(python)

前言 情人节到了&#xff0c;写一份爱心代码给喜欢的人呀 公式 首先我们介绍下爱心的公式的参数方程&#xff1a; x 16 s i n 3 ( t ) x 16sin^3(t) x16sin3(t) y 13 c o s ( t ) − 5 c o s ( 2 t ) − 2 c o s ( 3 t ) − c o s ( 4 t ) y 13cos(t) - 5cos(2t) - 2co…

linux学习进程控制【创建-终止-等待】

目录 1.进程创建 1.1fork函数 1.2写时拷贝 2.进程终止 2.1进程退出场景 2.2进程退出方式 3.进程等待 3.1进程等待的必要性 3.2等待方式 3.2.1wait&#xff08;&#xff09; 3.2.2waitpid&#xff08;&#xff09; 3.3轮训等待 总结&#xff1a; 1.进程创建 …

新火种AI|2024,得AI芯片者得天下。

作者&#xff1a;小岩 编辑&#xff1a;彩云 北京时间2月11日&#xff0c;国内阖家团圆的大年初二&#xff0c;OpenAI创始人Sam Altman通过社交平台向外界宣布了一件重大事项&#xff1a;OpenAI 即将启动“造芯计划”&#xff0c;他还并表示&#xff0c;“建设大规模的 AI 基…

数据类型与变量

目录 作业回顾 有关JDK, JRE, JVM三者&#xff1a; 判断题 新课学习 字面常量 数据类型 变量 整型变量 长整型变量 短整型变量 字节型变量 浮点型变量 字符型变量 布尔型变量 类型转换 自动类型转换&#xff08;隐式&#xff09; 强制类型转换&#xff08;显式…

easyx搭建项目-永七大作战(割草游戏)

永七大作战 游戏介绍&#xff1a; 永七大作战 游戏代码链接&#xff1a;永七大作战 提取码&#xff1a;ABCD 不想水文了&#xff0c;直接献出源码&#xff0c;表示我的诚意

C++中的volatile:穿越编译器的屏障

C中的volatile&#xff1a;穿越编译器的屏障 在C编程中&#xff0c;我们经常会遇到需要与硬件交互或多线程环境下访问共享数据的情况。为了确保程序的正确性和可预测性&#xff0c;C提供了关键字volatile来修饰变量。本文将深入解析C中的volatile关键字&#xff0c;介绍其作用、…

Redis缓存穿透、缓存击穿、缓存雪崩

一、缓存穿透 缓存穿透是指查询一个不存在的数据&#xff0c;mysql查询不到数据也不会直接写入缓存&#xff0c;就会导致每次请求都查数据库 比如一个get请求&#xff1a;api/getById/1 解决方案一&#xff1a;缓存空数据&#xff0c;查询返回的数据为空&#xff0c;仍把这个空…

【Node.js】path 模块进行路径处理

Node.js 执行 JS 代码时&#xff0c;代码中的路径都是以终端所在文件夹出发查找相对路径&#xff0c;而不是以我们认为的从代码本身出发&#xff0c;会遇到问题&#xff0c;所以在 Node.js 要执行的代码中&#xff0c;访问其他文件&#xff0c;建议使用绝对路径 实例&#xff1…

Javaweb基础-前端工程化学习笔记

前端工程化&#xff1a; 一.ES6 变量与模版字符串 let 和var的差别&#xff1a; <script>//1. let只有在当前代码块有效代码块. 代码块、函数、全局{let a 1var b 2} console.log(a); // a is not defined 花括号外面无法访问console.log(b); // 可以正常输出…

vmware workstation群晖虚拟机vmdk文件导出

为了防止群晖虚拟机中整个挂掉&#xff0c;里面的文件导不出来&#xff0c;尝试直接从vmdk中获取内容。 1、想采用diskgenius去读取文件&#xff0c;发现volume1是空的。只能读取群晖的系统文件。 2、选择另一个linux系统的虚拟机&#xff0c;选择对应的vmdk 3、如果有文件管理…

SIFT 3D关键点检测以及SAC-IA粗配准

一、SIFT 3D关键点检测 C #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/common/io.h> #include <pcl/visualization/pcl_visualizer.h> #include <boost/thread/thread.hpp> #include &…

C#查找字符串中的所有数字: 面向对象的自定义方法 vs 使用char.IsDigit()方法

目录 一、涉及到的方法 1.面向对象的自定义方法 2.面向对象编程技术定义 3.使用char.IsDigit()方法 二、实例 1.源码 2.生成效果 一、涉及到的方法 1.面向对象的自定义方法 查找字符串中的所有数字时&#xff0c;首先将所有数字存储到一个字符串数组中&#xff0c;然后…

《软件方法(下)》8.2.5.1 类名中是否有形容词(202402更新)

8.2.5.1 类名中是否有形容词 如果存在“形容词&#xff08;的&#xff09;名词”这样的类名&#xff0c;例如“待支付&#xff08;的&#xff09;订单”、“合适&#xff08;的&#xff09;会议室”&#xff0c;可以先把形容词从类名移除&#xff0c;转成类的一个状态属性。很…

Three.JS教程5 threejs中的材质

Three.JS教程5 threejs中的材质 一、什么是Three.js材质&#xff1f;二、Three.js的材质类型1. 材质类型2. 材质的共用属性&#xff08;1&#xff09;.alphaHash : Boolean&#xff08;2&#xff09;.alphaTest : Float&#xff08;3&#xff09;.alphaToCoverage : Boolean&am…

智胜未来,新时代IT技术人风口攻略-第三版(弃稿)

文章目录 前言鸿蒙生态科普调研人员画像高校助力鸿蒙高校鸿蒙课程开设占比教研力量并非唯一原因 机构入场红利机构鸿蒙课程开设占比机构对鸿蒙的一些诉求 企业布局规划全盘接纳仍需一段时间企业对鸿蒙的一些诉求 鸿蒙实际体验高校用户群体场景分析企业用户群体场景分析培训机构…

无人驾驶控制算法LQR和MPC的仿真实现

1 首先来说说LQR 1.1 Problem Statement 首先我们简单的假设一个物理系统&#xff0c;在光滑的一维地面上有一个质量为 m m m 的滑块&#xff0c;初始位置与初始速度都为 0 0 0&#xff0c;现需要设计控制器&#xff0c;在传感器测得滑块位置 x x x 的基础上&#xff0c;为…

Flutter 3.19 发布,快来看看有什么更新吧?

参考链接&#xff1a;https://medium.com/flutter/whats-new-in-flutter-3-19-58b1aae242d2 新年假期的尾巴&#xff0c;Flutter 迎来了 3.19 更新&#xff0c;该版本带来了 Gemini&#xff08;Google’s most capable AI &#xff09; 的 Dart SDK&#xff0c;更好控制动画颗粒…

扶贫|精准扶贫管理系统|基于Springboot的精准扶贫管理系统设计与实现(源码+数据库+文档)

精准扶贫管理系统目录 目录 基于Springboot的精准扶贫管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 &#xff08;1&#xff09;用户信息管理 &#xff08;2&#xff09;贫困户信息管理 &#xff08;3&#xff09;新闻类型管理 &a…

【论文精读】GPT2

摘要 在单一领域数据集上训练单一任务的模型是当前系统普遍缺乏泛化能力的主要原因&#xff0c;要想使用当前的架构构建出稳健的系统&#xff0c;可能需要多任务学习。但多任务需要多数据集&#xff0c;而继续扩大数据集和目标设计的规模是个难以处理的问题&#xff0c;所以只能…