PTA:C课程设计(5)

news2025/6/20 17:00:03

山东大学(威海)2022级大一下C习题集(5)

  • 函数题
    • 5-6-1 求一组数中的平均值及最大值
    • 5-6-2 判断满足条件的三位数
    • 5-6-3 函数实现字符串逆序
    • 5-6-4 查找子串
    • 5-6-5 计算最长的字符串长度
    • 5-6-6 二分查找
  • 编程题
    • 5-7-1 找最长的字符串
    • 5-7-2 藏头诗
    • 5-7-3 英文单词排序

函数题

5-6-1 求一组数中的平均值及最大值

接口:

float Fun(  int *p, int n,int *max);

其中 p、n、max 都是用户传入的参数。函数求数组中n个元素的平均值、最大值。最大值通过max带回,函数返回平均值 。

float Fun( int *p, int n,int *max)
{
    float sum = 0.0,ave = 0.0;
    int i  = 0;
    *max = 0;
    for(i = 0;i<n;i++)
    {
        sum += *(p+i);
        if(*(p+i) > *max)
            *max = *(p+i);
    }
    ave = 1.0*sum/n;
    return ave;
}

5-6-2 判断满足条件的三位数

接口:

int search( int n );

统计给定区间内的三位数中有两位数字相同的完全平方数(如144、676)的个数。

其中传入的参数int n是一个三位数的正整数(最高位数字非0)。函数search返回[101, n]区间内所有满足条件的数的个数。

int Jud(int i)
{
    int a,b,c;
    a = i%10;
    i/=10;
    b = i%10;
    i/=10;
    c = i%10;
    if((a==b&&b!=c)||(a==c&&b!=c)||(c==b&&c!=a))
        return 1;
    else
        return 0;
}
int J2(int i)
{
    int j = 10;
    for(;j<40;j++)
    {
        if(j*j==i)
            return 1;
    }
    return 0;
}
int search( int n )
{
    int i = 101;
    int count = 0;
    for(;i<=n;i++)
    {
        if(Jud(i)&&J2(i))
            count++;
    }
    return count;
}

5-6-3 函数实现字符串逆序

接口:

void f( char *p );

函数f对p指向的字符串进行逆序操作。要求函数f中不能定义任何数组,不能调用任何字符串处理函数。

void f( char *p )
{
    char t;
    int n = 0;
    char *tt = p;
    while(*tt!='\0')
    {
        n++;
        tt++;
    }
    
    for(int i = 0;i<n;i++)
    {
        char * t1 = p;
        for(int j = 0;j<n-i-1;j++)
        {
            t = *t1;
            *t1 = *(t1+1);
            *(t1+1) = t;
            t1++;
        }
    }
}

5-6-4 查找子串

接口:

char *search( char *s, char *t );

函数search在字符串s中查找子串t,返回子串t在s中的首地址。若未找到,则返回NULL

char *search( char *s, char *t )
{
    char *pos = s;
    char *s1 = s;
    char *s2 = t;
    if(*t=='\0')
    {
        return s;
    }
    
    while(*pos!='\0')
    {
        s1= pos;
        s2 = t;
        while(*s1 == *s2&& *s2 != '\0')
        {
            s1++;
            s2++;
        }
        if(*s2== '\0')
            return pos;
        pos++;
    }
    return NULL;
}

5-6-5 计算最长的字符串长度

接口:

int max_len( char *s[], int n );

实现一个函数,用于计算有n个元素的指针数组s中最长的字符串的长度。
其中n个字符串存储在s[]中,函数max_len应返回其中最长字符串的长度。

int max_len( char *s[], int n )
{
    int max = 0;
    int i =0 ;
    for(i = 0;i<n;i++)
    {
        if(strlen(s[i])>max)
            max = strlen(s[i]);
    }
    return max;
}

5-6-6 二分查找

接口:

int Search(int *p, int n, int k,int *Count);

实现一个函数,该函数采用二分查找法从一个已经升序排序的数组中,查找某个数k。如果找到k, 输出k所在的数组下标(0~n-1)及比较次数。若k不存在,输出-1和比较次数。

其中 p为数组首地址,n为数组长度,k为待查找的数, *Count为比较次数。
函数返回值:如果k在数组中返回其下标值,没找到返回-1。

int Search(int *p, int n, int k,int *Count)
{
    int left = 0,right = n-1,mid;
    int i = 0;
    *Count = 0;
    while(left<=right)
    {
        mid = (left+right)/2;
        (*Count)++;
        if(*(p+mid)<k)
        {
            left = mid+1;
        }
        else if(*(p+mid)>k)
        {
            right = mid-1;
        }
        else
        {
            return mid;
        }
        
    }
        return -1;
}

编程题

5-7-1 找最长的字符串

在这里插入图片描述

#include<stdio.h>
#include<string.h>
int main()
{
    int n;
    scanf("%d",&n);
    char c[1200][90] ={0};
    int max = 0,i,x;
    int len[1200] = {0};
    for(i = 0;i<n;i++)
    {
        scanf("%s",c[i]);
        len[i] = strlen(c[i]);
        if(len[i]>max)
        {
            max = len[i];
            x = i;
        }
    }
    printf("The longest is: %s",c[x]);
    return 0;
}

5-7-2 藏头诗

在这里插入图片描述
注意这里规定一个汉字占三字节

#include<stdio.h>
int main()
{
    char c[4][26] = {0};
    char pr[13] = {0};
    for(int i = 0;i<4;i++)
    {
        scanf("%s",c[i]);
    }
    for(int j = 0;j<4;j++)
    {
        for(int k = 0;k<3;k++)
        {
            pr[3*j+k] = c[j][k];
        }
    }
    pr[12] = '\0';
    printf("%s",pr);
    return 0;
}

5-7-3 英文单词排序

在这里插入图片描述

#include<stdio.h>
#include<string.h>
int main()
{
    char c[20][20] = {0};
    char t[18] = {0};
   	int i=0,j = 0,k = 0;
	while(1)
	{
		scanf("%s",c[i]);
		if(c[i][0]=='#')
			break;
		i++;
	}
    for(j=0;j<i-1;j++)
		for(k=0;k<i-j-1;k++)
			if(strlen(c[k])>strlen(c[k+1]))
			{
				strcpy(t,c[k]);
				strcpy(c[k],c[k+1]);
				strcpy(c[k+1],t);		
			}

    for(j=0;j<i;j++)
		printf("%s ",c[j]);
    return 0;
}

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

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

相关文章

第七天sql优化篇

一、查询SQL尽量不要使用select *&#xff0c;而是select具体字段 因为select * 进行查询时&#xff0c;很可能就不会使用到覆盖索引了&#xff0c;就会造成回表查询 select stu.name from student stu; 二、如果知道查询结果只有一条或者只要最大/最小一条记录&#xff…

CMMI认证唯一查询官网

CMMI是“能力成熟度模型集成”的意思。是一种评估或者认证制度。最新的CMMI V2.0模型有四个视图&#xff0c;DEV开发视图、SVC服务视图、供应商、人力资源&#xff0c;目前开发视图是全球应用最广泛的&#xff0c;主要是由CMMI研究院主任评估师按照CMMI模型检查企业或组织的软件…

HTML - 实现IE浏览器访问网址自动跳转至谷歌浏览器打开

HTML - 实现IE浏览器访问网址自动跳转至谷歌浏览器打开一. 实现代码二. IE浏览器设置一. 实现代码 注意&#xff1a;代码中的数据变量需要使用 var 声明 核心代码var href "http://www.baidu.com" //创建ActiveXObject实例&#xff0c;只在IE下有效&#xff0c;才可…

TensorFlow详解2原理

一、从helloworld开始 二、Tensorflow编程模式 一般有两种编程模式。 第一种是命令式编程–Torch&#xff0c; 第二种是符号式编程–Tensorflow; tensorflow比torch有相对的一定的优化&#xff1b; 命令式编程实际上是一种最常见的编程模式&#xff0c;因为易于理解而且基本没…

怎么压缩pdf,如何压缩pdf大小,4种高质量办法

怎么压缩pdf&#xff0c;如何压缩pdf大小&#xff0c;如何找到最合适、最高效的方法&#xff0c;是每一个人必须认真对待的问题。那么我们如何能提高工作效率呢&#xff1f;在办公中我们首先就是要先制定工作计划&#xff0c;心中有机会才能合理的安排工作时间&#xff0c;这样…

工业企业清洁运输台账存在的问题及应对措施

按照超低排放政策规定&#xff0c;企业要实现清洁运输超低排放改造&#xff0c;除了提高企业大宗物料和清洁方式运输比例外&#xff0c;同时还要建立清洁运输台账&#xff0c;根据台账等数据资料判断企业清洁运输比例是否满足要求。而目前对于大多数未完成超低排放的企业来说&a…

Nand Flash基础知识

1、Nand Flash组织架构 Device&#xff08;Package&#xff09;就是封装好的nand flash单元&#xff0c;包含了一个或者多个target。一个target包含了一个或者多个LUN&#xff0c;一个target的一个或者多个LUN共享一组数据信号。每个target都由一个ce引脚&#xff08;片选&…

07-vue的组件化

文章目录1.概述存在的问题&#xff1a;那么如何解决这种状况&#xff1a;2.组件化1.基本概述2.优点1.概述 对于前端来说&#xff0c;我们为用户创造价值才是特别需要关注的一个问题&#xff0c;这么多年过去了&#xff0c;前端到底为用户创造了什么价值呢&#xff1f; 70 年代…

Nacos2.2版本Tomcat启动报错

Nacos2.2版本Tomcat启动报错 错误日志 查看 logs/start.out&#xff0c;可以看到报错信息 2023-04-09 19:36:23,081 ERROR Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean wi…

Linux系统上如何禁用 USB 存储

Linux系统上如何禁用 USB 存储 为了保护数据不被泄漏&#xff0c;我们使用软件和硬件防火墙来限制外部未经授权的访问&#xff0c;但是数据泄露也可能发生在内部。 为了消除这种可能性&#xff0c;机构会限制和监测访问互联网&#xff0c;同时禁用 USB 存储设备。 我是艾西&…

手写一个Promise

Promise Promise是一个对象&#xff0c;用于解决异步变成的问题&#xff0c;由传统的异步回调为服务端立即调用优化为使用者者掌握回调主动权。 比如传统的JSONP&#xff0c;如下&#xff0c;在请求路由里添加回调函数&#xff0c;由接收请求的一方来调用请求&#xff0c;使用…

小白学Pytorch系列--Torch.nn API Vision Layers(15)

小白学Pytorch系列–Torch.nn API Vision Layers(15) 方法注释nn.PixelShuffle将形状张量(∗&#xff0c;Cr2,H,W)(*&#xff0c;C r^2,H,W)(∗&#xff0c;Cr2,H,W)中的元素重新排列为形状张量(∗&#xff0c;C,Hr,Wr)(*&#xff0c;C,H r,W r)(∗&#xff0c;C,Hr,Wr)&#x…

详细介绍React路由

路由 单页Web应用&#xff08;single page web application&#xff0c;SPA&#xff09;&#xff0c;整个应用只有一个完整的页面&#xff0c;点击页面中的链接不会刷新页面&#xff0c;只会做页面的局部更新。数据都需要通过ajax请求获取, 并在前端异步展现。 一个路由就是一…

高通SDX12:ProSLIC Si32185移植调试

一、SLIC业务流程图 本次在高通SDX12平台上支持语音芯片Si32185大致流程如下: 驱动部分直接放在Kernel中,通过SPI注册设备创建字符节点,与硬件建立连接注册设备成功并在audio_kernel中正确配置FE、BE后,声卡会创建出来应用层直接放在apps_proc下,通过IOCTL操作驱动层,通…

操作系统、输入法和编码的理解

操作系统和输入法 操作系统有一个输入法管理器&#xff0c;叫做IMM,管理系统内的所有输入法&#xff0c;或者说一个输入法想要使用操作系统提供的输入法API,就必须在IMM进行注册。 应用程序和输入法 应用程序一般都会使用输入法&#xff0c;也就是调用输入法的api进行文字输…

Spring boot+Vue3博客平台:文章搜索与推荐和文章阅读统计模块

一、文章搜索与推荐功能 1.前端搜索功能实现 在文章列表组件中添加搜索框&#xff0c;用户可以输入关键字进行文章搜索。同时&#xff0c;在搜索结果下方展示相关文章推荐。 <template><div class"article-list"><div class"search">&…

手写vuex4源码(六)命名空间实现

一、命名空间使用 在子模块对象中添加 namespaced&#xff1a;true&#xff0c;为模块开启命名空间功能&#xff1b; 开启命名空间功能&#xff0c;相当于为每个模块添加独立的作用域&#xff0c;实现模块间状态和事件的隔离&#xff1b; 二、命名空间实现逻辑 在模块注册阶…

Vue3+Typescript+Vitest单元测试环境+组件测试基础篇

上一章我们把环境配置好了&#xff0c;并且进行了最简单的一个单元测试Vue3TypescriptVitest单元测试环境基础用例篇 现在让我们去编写一个最简单的组件 这个代码包含最简单的部分&#xff0c;就是一个按钮&#xff0c;接受一个内容插槽、自身有一个button样式 了解相关API…

JavaWeb——File类和InputStream,OutputStream类详解

目录 一、File类 1、定义 2、属性 3、构造方法 4、方法 &#xff08;1&#xff09;、获取文件路径 &#xff08;2&#xff09;、文件的创建和删除 &#xff08;3&#xff09;、目录的创建 二、InputStream和OutputStream 1、InputStream &#xff08;1&#xff09;、…

从头创建一个新的浏览器,这合理吗?

从头构建一个新浏览器&#xff1f;这如果是不是个天大的“伪需求”&#xff0c;便是一场开发者的噩梦&#xff01; 要知道&#xff0c;如果没有上百亿的资金和数百名研发工程师的投入&#xff0c;从头开始构建一个新的浏览器引擎&#xff0c;几乎是不可能的。然而SerenityOS系统…