【C | PTA】指针专项练习(二)

【C/PTA —— 13.指针2(课外实践)】 6-1 鸡兔同笼问题 阅读详情

本文结合PTA专项练习带领读者掌握指针,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。

6-1 鸡兔同笼问题

《孙子算经》记载:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”
函数原型

int ChickenRabbit(int *chicken, int *rabbit, int head, int foot);

说明:head 和 foot 为头和脚的数量,chicken 和 rabbit 为指示鸡和兔数量的指针。若问题有解,则将鸡和兔的数量保存到 chicken 和 rabbit 所指示的变量中,函数值为 1(真);否则不改变 chicken 和 rabbit 所指示的变量,函数值为 0(假)。
裁判程序

#include <stdio.h>


int ChickenRabbit(int *chicken, int *rabbit, int head, int foot);


int main()

{

    int h, f, c, r;

    scanf("%d%d", &h, &f);

    if (ChickenRabbit(&c, &r, h, f))

    {

        printf("%d %d\n", c, r);

    }

    else

    {

        puts("None");

    }

    return 0;

}


/* 你的提交代码将被嵌在这里 */

输入样例1

35 94

输出样例1

23 12

输入样例2

30 71

输出样例2

None

int ChickenRabbit(int *chicken, int *rabbit, int head, int foot)
{
	for(int i=0;i<=head;i++)
	{
		int j=head-i;
		if(i*2+j*4==foot)
		{
			*chicken=i;
			*rabbit=j;
			return 1;
		}
	}
	return 0;
}//简单判断即可

6-2 冒泡排序

输入n(1<=n<=10)个整数,将它们从小到大排序后输出,要求编写函数bubble()实现冒泡排序算法。
函数接口定义:

void bubble (int a[ ], int n);

其中 a为数组,n为数据个数。
裁判测试程序样例:

#include <stdio.h>

void bubble (int a[ ], int n);

int main(void)

{    

  int n, a[10];

    int i;

    scanf("%d", &n);

    for (i=0; i<n;i++)

        scanf("%d",&a[i]);

    bubble(a,n);

    for (i=0; i<n; i++)

        printf("%d ",a[i]);

  printf("\n");

    return 0;

}


/* 请在这里填写答案 */

输入样例:

8
7 3 66 3 -5 22 -77 2

输出样例:

-77 -5 2 3 3 7 22 66

void bubble (int a[ ], int n)
{
    for(int i=0;i<n-1;i++)
    {
        for(int j=0;j<n-i-1;j++)
        {
            if(a[j]>a[j+1])
            {
                int t=a[j+1];
                a[j+1]=a[j];
                a[j]=t;
            }
        }
    }
}

6-3 字符串反正序连接

先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。
函数接口定义:

void fun (char *s, char *t);

其中s和 t 都是用户传入的参数。函数先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。

裁判测试程序样例:

#include <stdio.h>

void fun (char *s, char *t);

int main()

{ char s[100], t[100];

scanf("%s", s);

fun(s, t);

printf("%s\n", t);

return 0;

}


/* 请在这里填写答案 */

输入样例:

abcd

输出样例:

dcbaabcd

void fun (char *s, char *t)
{
    int j=0;
    //计算长度
    int l=0;
    while(s[l]!='\0')
    l++;
    
    for(int i=l-1;i>=0;i--)
    {
        t[j]=s[i];
        j++;
    }
    
    int p=j;
    for(int i=0;i<l;i++)
    {
        t[p]=s[i];
        p++;
    }
    t[p]='\0';
}

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

本题要求实现一个函数,用于计算有n个元素的指针数组s中最长的字符串的长度。
函数接口定义:

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

其中n个字符串存储在s[]中,函数max_len应返回其中最长字符串的长度。
裁判测试程序样例:

#include <stdio.h>

#include <string.h>

#include <stdlib.h>


#define MAXN 10

#define MAXS 20


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


int main()

{

    int i, n;

    char *string[MAXN] = {NULL};

    

    scanf("%d", &n);

    for(i = 0; i < n; i++) {

        string[i] = (char *)malloc(sizeof(char)*MAXS);

        scanf("%s", string[i]);

    }

    printf("%d\n", max_len(string, n));


    return 0;

}


/* 你的代码将被嵌在这里 */

输入样例:

4
blue
yellow
red
green

输出样例:

6

6-5 查找星期

本题要求实现函数,可以根据下表查找到星期,返回对应的序号。
序号 星期
0 Sunday
1 Monday
2 Tuesday
3 Wednesday
4 Thursday
5 Friday
6 Saturday
函数接口定义:

int getindex( char *s );

函数getindex应返回字符串s序号。如果传入的参数s不是一个代表星期的字符串,则返回-1。
裁判测试程序样例:

#include <stdio.h>

#include <string.h>


#define MAXS 80


int getindex( char *s );


int main()

{

    int n;

    char s[MAXS];

    

    scanf("%s", s);

    n = getindex(s);

    if ( n==-1 ) printf("wrong input!\n");

    else printf("%d\n", n);


    return 0;

}


/* 你的代码将被嵌在这里 */

输入样例1:

Tuesday

输出样例1:

2

输入样例2:

today

输出样例2:

wrong input!

int getindex( char *s )
{
    if(strcmp(s,"Sunday")==0)
        return 0;
    if(strcmp(s,"Monday")==0)
        return 1;
    if(strcmp(s,"Tuesday")==0)
        return 2;
    if(strcmp(s,"Wednesday")==0)
        return 3;    
    if(strcmp(s,"Thursday")==0)
        return 4;    
    if(strcmp(s,"Friday")==0)
        return 5;    
    if(strcmp(s,"Saturday")==0)
        return 6;

    return -1;
}

7-1 C程序设计 实验5-7 数组指针作函数参数

数组指针作函数参数
输入m个学生(最多30人)n门课程(最多5门)的成绩,然后计算并打印每个学生各门课的总分和平均分。其中,m和n的值由用户从键盘输入。
输入格式:

输入顺序如下:

学生个数m 课程数n
学生1课程1分数 学生1课程2分数 ... 学生1课程n分数
学生2课程1分数 学生2课程2分数 ... 学生2课程n分数
...
学生m课程1分数 学生m课程2分数 ... 学生m课程n分数

输出格式:

每个学生总分(整数) 平均分(实数,保留1位小数)
输入样例:

在这里给出一组输入。例如:

2 3
61 62 70
75 82 90

输出样例:

在这里给出相应的输出。例如:

193 64.3
247 82.3

#include <stdio.h>
int main()
{
	int m,n;scanf("%d%d",&m,&n);int a[n];
	for(int i=0;i<m;i++)
	{
		double sum=0;
		double aver;
		for(int j=0;j<n;j++)
		{
			scanf("%d",&a[j]);
			sum+=a[j];
		}
		aver=sum/n;
		printf("%.0f %.1f\n",sum,aver);
	}
	
}

7-2 查找奥运五环色的位置

奥运五环的5种颜色的英文单词按一定顺序排列{“red”, “blue”, “yellow”, “green”, “black” },定义指针数组并初始化,输入任意一个颜色的英文单词,从已有颜色中查找并输出该颜色的位置值,若没有找到,则输出"Not Found"。
输入格式:

输入一个代表颜色的单词。
输出格式:

输出单词对应的位置值,如果未找到,输出Not Found。
输入样例:

yellow

输出样例:

3

#include <stdio.h>
#include <string.h>
int main()
{
	char* colors[]={"red","blue","yellow","green","black"};
	char color[100];
	int flag=-1;
	
	
	scanf("%s",color);
	for(int i=0;i<5;i++)
	{
		if(strcmp(color,colors[i])==0)
		{
			flag=i;
			break;
		}
	}
	
	if(flag!=-1)
	printf("%d",flag+1);
	else
	printf("Not Found");
}
【WUT】PTA 2022春-MOOC-练习题 数组 | 函数和指针 | 选择结构 | 顺序结构 | 循环结构 阅读详情

相关推荐

C语言 PTA 因子之和通过指针变量间接传回主函数

C语言 PTA 因子之和通过指针变量间接传回主函数 因子之和通过指针变量间接传回主函数 (10分) 编写一个函数fun,功能是计算给定整数n的所有因子(不包括1和自身)之和,和值通过指针变量间接传回主函数。 函数接口定义: void fun(int n,int *m); 其中 n 和 m 都是用户传入的参数。函数计算给定整数 n 的所有因子(不包括1和自身)之和,和值通过指针变量 m 间接传回主函数。 裁判测试程序样例: #include <stdio.h> void fun(int

Moriafly的博客 2918

6-1 查找星期 (10 分)

本题要求实现函数,可以根据下表查找到星期,返回对应的序号。 序号 星期 0 Sunday 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 函数接口定义: int getindex( char *s ); 函数getindex应返回字符串s序号。如果传入的参数s不是一个代表星期的字符串,则返回-1。 裁判测试程序样例: #inc

Ashes881502的博客 874

C#实现根据数字序号输出星期几的简单实例

本文以实例代码实现了C#根据数字序号输出星期几,用户可通过输入数字0~6,输出星期各天的英语单词,程序中主要是演示if语句和switch语句的用法,当然其中的英文可以改成中文。 具体实现代码如下: //Select.cs程序内容:通过输入数字0~6,输出星期各天的英语单词演示if语句和switch语句的用法 using System; class Select { public static void Main() { Console.WriteLine(请输入数字:); Console.WriteLine(1~6表示星期一到星期六;0表示星期天);

实验11-1-3 查找星期 (15 分)

本题要求实现函数,可以根据下表查找到星期,返回对应的序号。 序号 星期 0 Sunday 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 函数接口定义: int getindex( char *s ); 函数getindex应返回字符串s序号。如果传入的参数s不是一个代表星期的字符串,则返回-1。 裁判测试程序样例: #include <stdio.h> #include &

Re:从零开始的代码生活的博客 2567

Dzzoffice结合OnlyOffice 报错排查流程总结

首先访问 OnlyOffice 首页,如下图:出现上图仍旧不能说明你的 OnlyOffice 服务已经成功安装,我们需要启动 OnlyOffice 服务测试用例来检测,可以看到上图出现了两条命令,第一条命令是用来启动测试用例服务的,我们只需要在后台执行该命令即可,Windows环境是以管理员身份运行Windows PowerShell输入即可运行了。

小胡的博客 4597

Windows 10/11一键搞定HDF5文件查看:HDFView 3.4.1免配置安装指南(附中文路径避坑技巧)

本文详细介绍了HDFView 3.4.1在Windows 10/11上的免配置安装方法及中文路径优化技巧。作为HDF5文件查看的专业工具,HDFView 3.4.1简化了安装流程,提升了科研数据处理效率,特别适合遥感、气象等领域的研究人员使用。

qsc9012345的博客 1146

PTA 查找奥运五环色的位置

PTA 查找奥运五环色的位置

LYQ_YXQ的博客 2623

Anaconda镜像源切换全攻略:从清华源到恢复默认设置的完整流程

本文详细介绍了Anaconda镜像源的管理与优化,重点讲解了如何配置清华源以提升国内下载速度。内容涵盖镜像源工作原理、清华源详细配置步骤、多源管理策略、常见问题排查以及如何安全恢复默认设置,帮助用户构建完整的镜像源管理体系。

weixin_28828243的博客 1021

【C PTA】指针专项练习(二)_其中s和 t 都是用户传入的参数。函数先将在字符串s中的字符按逆序存放到t串中,然

* 你的提交代码将被嵌在这里 *//* 你的代码将被嵌在这里 *//* 你的代码将被嵌在这里 *//* 请在这里填写答案 *//* 请在这里填写答案 */

2401_86951341的博客 571

Allegro 16.6 高级技巧实战:用Region规则和动态间距搞定高密度连接器布局布线

本文深入探讨了Allegro 16.6在高密度连接器布局布线中的高级技巧,重点介绍了Region规则和动态间距属性的应用。通过局部规则覆盖和分层控制,解决0.5mm以下引脚间距的布线难题,提升PCB设计效率和质量。

weixin_30352645的博客 440

手把手教你学GPU的KMD专栏--3.1 设备初始化流程深度解析

本文深入解析了KMD(内核模式驱动)设备初始化流程,这是GPU驱动开发最基础且关键的环节。初始化流程包括6个核心阶段:KMD模块加载、PCIe设备探测匹配、GPU硬件初始化、显存分配映射、中断系统配置和设备注册。每个阶段都有详细步骤解析,涉及关键数据结构和错误处理机制。文章还分析了常见问题(驱动加载失败、显存分配失败、中断配置失败)的解决方案,并指出未来趋势将向动态初始化、安全增强和AI优化方向发展。正确高效的初始化流程是确保GPU被操作系统安全使用的前提,也是后续内存管理、任务调度等功能的基础。

MHD0815的博客 262

【C | PTA】结构体专项练习

本文结合PTA专项练习带领读者掌握结构体,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。

等风来 6995

Matlab:Matlab 软件学习之Matlab内置的各种系统的简介、案例应用(基于Simulink模糊控制仿真/二阶瞬态震荡电路案例)之详细攻略

选择左上角要编辑变量的图标,给定当前变量的论域Range,设置隶属函数类型type(八种隶属函数类型以供选择),最后选中某个隶属度函数(选中为红色),移动绘图区的每个隶属度函数的三个端点(竖向为权重)。(1)、首先在模糊规则编辑器左边选择一个输入变量,并选中它的一个语言值(隶属函数),然后编辑器右边选择一个输出变量,并选中它的一个语言值(隶属函数),然后将这种关系添加到模糊规则中。制定完成后,会形成模糊规则矩阵,系统会根据模糊输入量(如r1、r2),经过模糊规则(如45条),进而确定输出量(Y1、Y2)。

走向CTO之路 1123

【C | PTA】指针专项练习(一)

函数fun的功能是在指针a所指向的一维数组中找出其中最大的数及其下标,下标存到指针b所指的变量里,函数返回最大值。函数fun的功能是:求两数平方根之和,作为函数值返回。输入第一行给出两个正整数m和n(1≤m,n≤6),再输入m行数据,每行n个整数,每个整数之间用空格分隔。函数求 a 指针和 b 指针所指的两个数的平方根之和,并返回和。将输入的任意两个4位正整数的后两位互换,例如输入1234和5678,交换之后输出1278和5634。函数的功能是删除指针 s 所指的字符串中的所有数字字符。

等风来 6220

HTML蓝色动态爱心(完整代码)

HTML语言实现蓝色动态爱心的完整代码。

AIGC 8万+

Office系列完全干净卸载工具合集(最全)

使用 Microsoft Fix it 卸载 Microsoft Office 套件 一、Windows 7、Windows Vista或Windows XP下卸载Office 1.MicrosoftEasyFix50416 工具用来卸载office 2003 MicrosoftEasyFix50416_Office2003.msi 2.MicrosoftEasyFix50154 工具用来卸载office 2007 MicrosoftEasyFix50154_Office2007.msi 3.Microso

业精于勤,荒于嬉 3万+

【C | PTA】结构体进阶练习

本文结合PTA专项练习带领读者掌握结构体,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。

等风来 6292

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

PTA-武汉理工大学C理论课学习及答案二

这是一篇whut学子写的关于自己学习c理论课的心得之谈。 PTA的答案及解析。

m0_51982410的博客 2万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

PTA考前练习错题集

PTA错题集 1.对于已正确定义的二维数组a, *(a[i]+j)与a[i][j]的含义相同。 对 2.结构体成员的类型必须是基本数据类型。 错 3.设变量定义为 int a[2]={1,3}, p=&a[0]+1;,则p的值是( )。 3 4.在一个被调用函数中,关于 return 语句使用的描述,错误的是(D )。 被调用函数中可以不用 return 语句 被调用函数中可以使用多个 return 语句 被调用函数中,如果有返回值,就一定要有 return 语句 被调用函数中,一个 return

weixin_45921856的博客 3947

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

pta编程题c语言答案,PTA选择题答案_pta题库答案,pta答案

对于刚刚使用PTA的小伙伴会有所帮助,里面有大部分的PTA选择题答案按照标识符的要求,()不能组成标识符。(2分)A.连接符表达式 strcmp("box","boss")的值是一个_(2分)A.正数表达式()的值是0。(2分)A.3/5表达式不能用于判断“x和y不同时为零”。(2分)C.!(x==0y=0)表达式_的值是0。(2分)C.3/5表达式531值是(2分)A.0表达式8>6&gt...

weixin_36317502的博客 1万+

PTA错题集

PTA错题集C语言 一、结构体 1-14、语句int *p; *p=50;执行时,不会有任何错误。 (1分) 我的答案:T 正确答案:F *p是一个指针变量,需赋值一个可用的地址之后才可这样赋值。 1-16调用strcmp函数比较字符串大小时,通常较长的字符串会较大。 (1分) 我的答案按:T 正确答案:F strcmp函数是string compare(字符串比较)的缩写,...

y_ruojiu的博客 2万+

pta题库答案c语言

7. **动态内存分配**:学习如何使用`malloc`、`calloc`、`realloc`和`free`函数进行内存管理。8. **字符串处理**:掌握字符串的基本概念和常用字符串处理函数,如`strcpy`、`strlen`等。4. **指针**:理解指针的基本概念,包括指针的声明、指针与数组、指针与函数等。3. **数组**:掌握数组的声明、初始化、遍历和数组作为函数参数的使用方法。- **理解题目要求**:仔细阅读题目,理解需要解决的问题和题目的具体要求。

youyouxiong的博客 1971

PTA 8习题讲解

PTA 8习题讲解 判断题 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oVECJ83I-1608475074579)(C:\Users\Ale’xi’s’L’x’h\AppData\Roaming\Typora\typora-user-images\image-20201220163240846.png)] 指针变量指向某变量的地址不一定是1000,语句的含义应该是将指针P指向的变量内容赋值为1000. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接

m0_53260948的博客 6365

PTA C语言练习题12(指针1)

一、判断题 *若有定义int a[]={2,4,6,8,10},p=a;a的值是数组首地址,则 (p+1)的值是4。 自己T 正确F 因为 * (p+1)=a[1]=4 * 而 ** (p+1)为 *( *(p+1))意思是二维数组的第一行第0个元素; 二、选择题 下列程序段的输出是____。 int c[]={1, 3, 5}; int *k=c+1; printf("%d", *++k); 思想:*与++优先度一样,从右往左结合,故先算k+1,再取k[2]; 2-7 下列程序执行后的输出结果是(

qq_22272275的博客 3210

c语言pta练习集

c语言习题分享,本篇博客记录了我在刷题过程中遇到的一些没有思路或者借鉴了别人比较好的实现方法

保持学习 2161

pta c语言段错误,PTA常见错误

1.最常犯的错误:格式错误。在PTA程序检测中,输入输出要严格按照题目要求。输出的格式要完全按照题目要求来,该空格地方空格,该换行要换行。否则,就算你运行结果是对的,PTA还是提示你格式错误格式错误1:输出没有完全按照题目要求输出。7-1 计算摄氏温度本题要求编写程序,计算华氏温度100°F对应的摄氏温度。计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型...

weixin_36415835的博客 9108
上一篇: 【Windows】内网穿透实现hMailServer远程发送邮件
下一篇: 【Windows】使用SeaFile搭建本地私有云盘并结合内网穿透实现远程访问
秋说
秋说 优质创作者: 编程框架、信息安全技术领域 优质创作者: 编程框架、信息安全技术领域
博客等级 码龄4年 3万+粉丝 1906原创
评论 30
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值