函数

article/2025/10/15 4:23:17

1.编写函数,完成下面的程序,将一个字符串中的字母排序后输出。输出要求:字母从小到大排序(包括大小写)后的字符串。例如:

输入:Hello World!

输出:!HWdellloor

程序中的必要代码为:

main()
{
char s[80];
gets(s);
sortchar(s);

puts(s);

}

#include<stdio.h>
#include<string.h>
void sortchar(char s[])
{int n;
n=strlen(s);
int min,t,i,j;
for(i=0;i<n-1;i++)         【选择排序】
{ min=i;
for(j=i+1;j<n;j++)
{if(s[min]>s[j])
min=j;
}
t=s[i];           【符号记清楚啊】
s[i]=s[min];
s[min]=t;} 
}
int main()
{char s[80];gets(s);sortchar(s);puts(s);}

2.请编一个函数fun,其中n所指存储单元中存放了数组中元素的个数。函数的功能是:删除所有值为y的元素。已在主函数中给数组元素赋值,y的值由主函数通过键盘读入。

程序的必要代码为:

int main()

{ int aa[M]={1,2,3,3,2,1,1,2,3,4,5,4,3,2,1}, n=15, y, k;

   scanf("%d",&y);n = fun(aa, n, y);for(k=0; k<n; k++ )printf("%d ",aa[k]);printf("\n");

return(0);

}

#include<stdio.h>
#define M 15
int fun(int aa[],int n,int y)
{ int j,i,k;
for(i=0;i<n;i++)if(aa[i]==y){   for(k=i+1;k<n;k++)    【删除y】{aa[k-1]=aa[k];}n--;i--;
}
return n;
}int main(){    int aa[M]={1,2,3,3,2,1,1,2,3,4,5,4,3,2,1}, n=15, y, k;scanf("%d",&y);n=fun(aa, n, y);for(k=0; k<n; k++ ) printf("%d ",aa[k]);printf("\n");return(0);
}
  1. 编写函数,统计给定字符串中各个字母出现的次数,不区分大小写。在main函数中输入一个字符串,调用该函数进行计算,然后输出统计结果。

输入要求:任意一个字符串。

程序的必要代码为:

main()

{ char str[255];

 int count[26]={0};int i;gets(str);counta_z(str,count);for(i=0;i<26;i++)if(count[i])printf("%c出现的次数为:%d\n",i+'a',count[i]);

}

#include<stdio.h>
void counta_z(char str[],int count[])     加一下[]
{  	int i;for(i=0;str[i]!='\0';i++)             这个里面不用输入str,也不用设count{if(str[i]>='a'&&str[i]<='z')count[str[i]-'a']++;if(str[i]>='A'&&str[i]<='Z')count[str[i]-'A']++;  }
}int main()
{char str[255];int count[26]={0};int i;gets(str);counta_z(str,count);for(i=0;i<26;i++)if(count[i])printf("%c出现的次数为:%d\n",i+'a',count[i]);
}

4.编写一个函数char my_toupper(char ch),其功能是判断输入字符是否为小写字母,若是,返回其对应的大写字母,否则返回原字符。然后在main函数中输入一个字符,调用该函数得到其大写字母或原字符并输出。

程序的必要代码为:

void main()

{ char ch;

 ch=getchar();putchar(my_toupper(ch));

}

#include<stdio.h>
char my_toupper(char ch) 
{
if(ch>='a'&&ch<='z')
return ch-32;else
return ch;}
void main()
{    char ch;ch=getchar();putchar(my_toupper(ch));}

5.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。

程序的必要代码为:

main( )

{ int u,v,h,x;

scanf("%d%d",&u,&v);

h=hcf(u,v);

printf(“H.C.F=%d\n”,h);

x=lcd(u,v,h);

printf(“L.C.D=%d\n”,x);

}

#include<stdio.h> 
int hcf(int u,int v);
int lcd(int u,int v,int h);
int main( ){   int u,v,h,x;scanf("%d%d",&u,&v);h=hcf(u,v);printf("H.C.F=%d\n",h);   x=lcd(u,v,h);printf("L.C.D=%d\n",x);}int hcf(int u,int v){  int i,h;h=u<v?u:v;    先取小的那个,一直往下除直到除尽为止while(u%h!=0||v%h!=0)h--;return h;}int lcd(int u,int v,int h){ int x;x=u*v/h;      乘积除以最大公约数就是最小公倍数return x;}

6.编写函数int reverse(int number),它的功能是将number逆序,在main函数中输入一个整数,调用该函数得到逆序的数并输出。例如reverse(11233)的返回值为33211。
#include <stdio.h>
int reverse(int number);
void main()
{ int number;
scanf("%d",&number);
printf("%d", reverse(number) );
}

int reverse(int number){int sum=0;while(number>0){sum=sum*10+number%10;number=number/10;}
return sum;
}

7.编写函数 int substring(char s[], char sub[]),查找sub串在字符串s中第一次出现的位置,若找到,函数返回对应位置,否则返回-1。注意主串第1个字符的位置为1。例如s串为“abcdefg”,sub串为“def”,则返回值为4。在main函数中输入主串和子串,调用该函数并输出结果。

输入要求:需要2行。第1行输入主串s,第2行输入子串sub。

示例如下:

abcdefgdefg

def

输出要求:根据实际情况输出子串的位置或提示“***子串没有找到!”(其中***要用实际的子串替代)

示例如下:

子串def在主串abcdefgdefg中第一次出现的位置是4

程序的必要代码为:

void main(void)

{

char s[99],sub[99];gets(s);gets(sub);if(substring(s,sub)==-1)printf("%s子串没有找到!",sub);elseprintf("子串%s在主串%s中第一次出现的位置是%d",sub,s,substring(s,sub));

}

8.编写函数void find_max( int a[][4], int n, int b[2]) 求出二维整型数组中元素的最大值及其下标号。在main函数中输入一个二维数组,调用函数find_max()求出最大值及其下标号,在主函数中输出。其中:二维数组行数由用户确定(不超过10),列数固定为4列。

输入要求:第1行输入二维数组的行数,然后分m行输入二维数组,元素之间用空格分隔。示例如下:

3

18 2 3 4

8 7 6 18

9 10 11 12

输出要求:第一个最大值及下标。示例如下:

最大值array[0][0]=18

提示:这里至少需要返回二维数组元素的行,列两个值,而函数只能返回1个值(无法返回2个值),所以只能通过数组作为参数的方法将值带回来。在main函数中输入一个二维整型数组,调用该函数得到最大值所在的下标,并输出最大值及其下标号。

程序的必要代码为:

main()

{

  int array[10][4],m[2],n,i,j;scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<4;j++)scanf("%d",&array[i][j]);find_max(array,n,m);printf("最大值array[%d][%d]=%d",m[0],m[1],array[m[0]][m[1]]);

}

#include<stdio.h>
int find_max( int a[][4], int n, int b[2]);
int main()
{int array[10][4],m[2],n,i,j;scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<4;j++)scanf("%d",&array[i][j]);find_max(array,n,m);printf("最大值array[%d][%d]=%d",m[0],m[1],array[m[0]][m[1]]);}int find_max( int a[][4], int n, int b[2])
{   int i,j,k,t;int max=0;for(i=0;i<n;i++){for(j=0;j<4;j++){  if(a[i][j]>max)max=a[i][j];	   }
}for(i=n-1;i>=0;i--)   【既然只要前面的,那就从后往前找最后一个】for(j=3;j>=0;j--)if(max==a[i][j])   【俩等号,你是瞎子吗】{ k=i;t=j;}   b[0]=k;b[1]=t;}

在这里插入图片描述

9.编写一个函数void sort(int a[],int n),实现整型数组元素的升序排列。在main函数中输入数组元素个数和各个元素(不超过10个整数),之后调用sort函数进行排序,在主函数中输出排序后的结果。

输入要求:需要输入2行。第1行输入数组元素的个数n;第2行输入n个数组元素。

输入示例:

5

1 9 4 5 7
输出要求:输出2行。第1行为未排序的数组,每个数值之后都用1个空格分隔;第2行为升序排序后的数组,每个数值之后都用1个空格分隔。

输出示例:

排序之前的数组:1 9 4 5 7

排序之后的数组:1 4 5 7 9

程序的必要代码为:

main()

{

int a[10],i,n;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);printf("排序之前的数组:");for(i=0;i<n;i++)printf("%d ",a[i]);sort(a,n);printf("\n排序之后的数组:");for(i=0;i<n;i++)printf("%d ",a[i]);

}
在这里插入图片描述

#include<stdio.h>
int sort(int a[],int n);
int main()
{int a[10],i,n;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);printf("排序之前的数组:");for(i=0;i<n;i++)printf("%d ",a[i]);sort(a,n);printf("\n排序之后的数组:");for(i=0;i<n;i++)printf("%d ",a[i]);
}int sort(int a[],int n)
{ int i,j,t; 
for(i=0;i<n-1;i++)for(j=0;j<n-i-1;j++)   【冒泡排序】if(a[j+1]<=a[j])      【比的是j】{t=a[j];a[j]=a[j+1];a[j+1]=t; 
}
}

10.编写函数long compose(long number)完成如下功能:将长整型数中数字为偶数的数依次取出,构成一个新数返回,例如,假设长整型数为:87653142时,则返回的数为:8642。

然后在main函数中输入一个长整型数,调用该函数得到新的数,并输出结果。

程序的必要代码为:

int main()

{

long int n ;

scanf("%ld",&n);

printf("%ld\n",compose(n));

return 0;

}

#include<stdio.h>

long compose(long number);
int main()
{long int n ;scanf("%ld",&n);printf("%ld\n",compose(n));return 0;}
long compose(long number)
{ int  h=1,i,t;long int s=0;  while(number!=0){   t=number%10;number=number/10;i=t%2;if(i==0){s=s+t*h;h=h*10;}}return s;
}

11.输入1 个正整数 n (1≤n≤6)和n 阶方阵a中的元素,如果a的每一行的最大元素值都相等, 输出"YES", 否则, 输出"NO"。

例:输入:

3

-1 -2 -3

-10 -2 -1

-8 -1 -2

输出:

YES

#include<stdio.h>
int max(int a[6][6],int n);
int main()
{ int a[6][6];
int n,m;
scanf("%d\n",&n);
int i,j;
for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&a[i][j]);m=max(a,n);if(m==1)printf("YES");elseprintf("NO");  } int max(int a[6][6],int n){int i,j,k=0,t;int max[6];for(i=0;i<n;i++){ max[i]=a[i][0]; for(j=0;j<n;j++){if(a[i][j]>max[i]){max[i]=a[i][j];}}	} for(i=0;i<n-1;i++){if(max[i]==max[i+1])k++;}t=k+1;if(t==n)return 1;else return 0;} 

11.输入一个大于等于6的偶数,将它表示为两个素数之和(输出所有的组合)。

要求:用自定义函数int prime(int n)来判断n是否为素数。

例如:输入10

输出:10=3+7

    10=5+5
#include<stdio.h>
#include<math.h> 
int prime(int n);
int main()
{  int i,k,t;int num;scanf("%d",&num);for(i=3;i<=num/2;i++){ k=prime(i);t=prime(num-i);if(k+t==2)printf("%d=%d+%d",num,i,num-i);}
}
int prime(int n)
{   int m;m=sqrt(n);int i;for(i=2;i<=m;i++)     【判断素数 i从2开始 小于等于号】{if(n%i==0)break;}if(i>m)return 1;else return 0;}

12.编写1个函数判断一个整数是否左右对称数。 要求函数为: fun(long n)

要求在主程序中输入一个整数,如果该数对称,输出"YES";否则,输出"NO"。

例如 输入:1235321 输出:YES

 输入: 1210        输出:NO

程序的必要代码为:

main( )

{ long in;

scanf("%ld",&in);if(fun(in))  printf("YES\n");elseprintf("NO\n");

}

#include<stdio.h>
long fun(long n);
int main()
{   long in; scanf("%ld",&in);if(fun(in))  printf("YES\n");elseprintf("NO\n");}long fun(long n){  int i=0,t;long m=0;long j=n;while(n!=0){m=m*10+n%10;n=n/10;}if(m==j)return 1;else return 0;
}

13对每个字符串做如下处理:删除字符串所有连续相同的字符,然后输出该字符串。

要求:使用函数void del_samechar(char str[])实现对字符串str中所有连续相同的字符的删除。

例:输入:room 输出:rm

  输入:aabaaama    输出:bma

程序的必要代码为:

main()

{ char str[100];

gets(str);del_samechar(str);puts(str);

}

、程序题章节:第八章 指针知识点:无所属语言:C试题难度:一般
输入多行字符串(有可能有空格),最后一行为#号作为结束,按照由小到大的顺序将字符串分行输出(不输出"#")。

例如输入:

I study very hard.

C language is very interesting

He is a professfor.

输出:

C language is very interesting

He is a professfor.

I study very hard.


http://chatgpt.dhexx.cn/article/GqTGof00.shtml

相关文章

HangOver

How far can you make a stack of cards overhang a table? If you have one card, you can create a maximum overhang of half a card length. (We’re assuming that the cards must be perpendicular to the table.) With two cards you can make the top card overhang t…

❤️对比PyWinAuto和uiautomation实现微信联系人自动采集❤️

大家好,我是小小明。昨天我在《UI自动化工具轻松实现微信消息的自动收发和朋友圈爬取》一文中演示了UIAutomation的三个使用示例,链接:https://blog.csdn.net/as604049322/article/details/119899542 由于昨天对UIAutomation的API了解还不够全面,个别代码优化空间还较大。…

适用于winform程序的UI自动化实现(python+uiautomation)

适用于winform程序的UI自动化实现&#xff08;pythonuiautomation&#xff09; 一、使用的工具和库 定位工具&#xff1a;inspect&#xff08;提取码&#xff1a;kvwx&#xff09;、UISpy(提取码&#xff1a;ab0e) python库使用&#xff1a;subprocess&#xff08;内置库&…

WPF UIAutomation测试套件开发

目录 介绍 目标 测试方案 功能测试&#xff08;黑匣子&#xff09; 测试示例 设计 记录测试并生成测试方法 更新测试方法并构建 测试用例规范 测试方法 初始化方法 实现自定义TestContext 测试配置 关于CodedUI的常见问题 不要手动更改* .Designer.cs文件中的代…

安卓手机 Python 自动化( uiautomation、uiautomation2、weditor )

其他自动化工具或者框架&#xff1a; Airtest&#xff1a;https://airtest.readthedocs.io/zh_CN/latest/autojs&#xff1a;Auto.js快速入门实战教程&#xff1a;https://zhuanlan.zhihu.com/p/90065914appium&#xff1a;https://blog.csdn.net/freeking101/article/details/…

UIAutomation识别UI元素

MS UI Automation(Microsoft User Interface Automation&#xff1a;UIA)是随.net framework3.0一起发布的&#xff0c;虽然在如今这个几乎每天都有各种新名词、新技术出来的所谓的21世纪&#xff0c;它显得已经有些过时了。前些日子&#xff0c;正好一个项目&#xff0c;可以用…

uiautomation实现自动化

1.下载UI SPY 下载地址:https://download.csdn.net/download/yangzhichao_csdn/85389759 2.CMD指令导入uiautomation库 pip install uiautomation 3.打开计算器&#xff0c;然后打开UISpy 如图ControlType为”ControlType.Window” 那么捕获窗口就用:uiautomation.WindowCo…

Python uiautomation初探,测试Win10计算器

在网上找 Python 客户端自动化测试的库&#xff0c;一般有 pywinauto、pywin32、pyautogui、uiautomation。本文仅对 uiautomation 做简单的了解。 MS UI Automation 是 MSAA 技术的一个替代品&#xff1a;即让控件和应用程序具有更好的可达性&#xff08;accessible&#xff…

UIAutomation 自动化

Introduction UI Automation是Microsoft .NET 3.0框架下提供的一种用于自动化测试的技术&#xff0c;是在MSAA基础上建立的&#xff0c;MSAA就是Microsoft Active Accessibility。UI Automation在某些方面超过了MSAA&#xff0c;UI自动化提供了Windows Vista中&#xff0c;微软…

Python UI自动化 编程(一) UIAutomation

Python UI自动化 编程 第一章 Python UI自动化 编程入门之打开文件夹双击文件 文章目录 Python UI自动化 编程前言一、什么是Python UI自动化 编程二、环境说明1、Python环境&#xff1a;Python 3.82、IDE&#xff1a; Pycharm3、使用的库&#xff1a;UIAutomation 三、使用步…

【python】UI自动化-uiautomation

UI自动化-uiautomation 0- 前言1- inspect2- uiautomation3- 【实战】RustDesk软件自动 安装、指定服务器信息4- 参考文章 0- 前言 做应用程序自动点击的记录&#xff0c;暂不完整&#xff0c;仅供参考。参考多位大佬文章&#xff0c;链接在后面涉及工具 inspect【应用程序元素…

CAD 双击实体事件

CAD本身为我们提供的双击事件的设置。工具-工作空间-自定义...打开用户自定界面 窗体内找到双击动作。在双击动作下我们可以看到CAD自带的所有实体 例如我们在双击三维实体时自定义一个事件。那么我们就选中三维实体-快捷特性。在右侧特性里编辑宏内容。以下是系统彼带的宏$M$(…

深入探索透视投影变换(续)

-潘宏 -2009.4.14 -本人水平有限&#xff0c;疏忽错误在所难免&#xff0c;还请各位数学高手、编程高手不吝赐教 -email: popyynetease.com -B站专栏&#xff1a; https://b23.tv/oWsl6PD 在上一篇文章中我们讨论了透视投影变换的原理&#xff0c;分析了OpenGL所使用的透视…

凯文·凯利:AI将改变一切设计工作

每一项新技术诞生之初都会引发新一轮科技恐慌周期&#xff0c;近期大火的AI生成艺术更是如此。连线杂志创始主编、知名科技思想家凯文凯利&#xff08;Kevin Kelly&#xff09;在6个月重度使用之后认为&#xff0c;这次AI进展的确是一次令人震惊的突破。但是&#xff0c;它不会…

鼠标双击退出应用程序简单实现

文章目录 Android 简单模拟鼠标双击退出应用程序&#xff0c;利用Toast提示“再点一次退出”使用Toast鼠标单击提示信息鼠标双击实现退出系统 Android 简单模拟鼠标双击退出应用程序&#xff0c;利用Toast提示“再点一次退出” 使用Toast // 参数&#xff1a;当前上下文环境&…

如何用JavaScript完美地区分双击和单击事件

通过一个悬浮球交互功能的案例来阐述问题&#xff0c;以及解决办法。 实现效果 类似微信里的悬浮窗效果&#xff0c;苹果手机的悬浮球功能效果 1.可以点击拖动&#xff0c;然后吸附在窗口边缘2.点击悬浮球&#xff0c;可以跳转界面&#xff0c;或者更改悬浮球的形态准备 1.移…

单机显示、双击隐藏;事件绑定、单击div、双击div、删除事件;元素显示、隐藏、交替; 向上收缩、向下展开、交替;淡入淡出

单机显示、双击隐藏 <style>div {width: 500px;height: 200px;background-color: green;display: none;} </style> <body><button id"btn">单击显示&#xff0c;双击隐藏</button><br><br><div> </div&…

干货分享 | UE游戏鼠标双击判定

UE虚幻引擎对于游戏开发者来说都不陌生&#xff0c;市面上有47%主机游戏使用虚幻引擎开发游戏。作为是一款游戏的核心动力&#xff0c;它的功能十分完善&#xff0c;囊括了场景制作、灯光渲染、动作镜头、粒子特效、材质蓝图等。本文介绍了虚幻引擎游戏开发过程中游戏鼠标双击判…

鼠标单击变双击问题

解决此问题可以从硬件和软件两方面思考角度入手:我们先把鼠标插在别人的机器上使用,如果没发现问题可能是软件问题,若发现同样的问题则可能是硬件方面的问题。 软件方面:(1)病毒导致将杀毒软件病毒库更新至最新版,全盘扫描。 (2)鼠标属性设置不当我们打开控制面板-&…

鼠标双击事件

随时随地阅读更多技术实战干货&#xff0c;获取项目源码、学习资料&#xff0c;请关注源代码社区公众号(ydmsq666) java中没有给出鼠标双击事件&#xff0c;虽然可以通过事件源e.getClickCount()2来判断鼠标点击次数&#xff0c;但是执行双击事件的同时也执行了单击事件&#x…