比较两个字符串,将长的字符串的首地址作为函数值返回。
- 格式:doc
- 大小:26.50 KB
- 文档页数:1
程序编程题目1、第一大类(交换类)共7道心之所向,所向披靡2. 程序修改(第3套)给定程序中函数fun 的功能是:通过某种方式实现两个变量的交换,规定不允许增加语句和表达式。
例如变量a中的值原为8,b中的值原为3,程序运行后a中值为3,b 中的值为8./**found**/t=*x; *x=y;/**found**/return(t);2. 程序修改(第60套)给定程序中函数fun的功能是:实现两个整数的交换。
例如给a和b分别输入60和65,输出为:a=65 b=60 /**found**/void fun(int *a,int *b)/**found**/t=*b;*b=*a;*a=t;2. 程序修改(第88套)给定程序中函数fun的功能是:将主函数中两个变量的值进行交换。
例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。
/**found**/void fun(int *x, int *y)/**found**/t=*x,*x=*y,*y=t;2、第二大类(计算类)共22道2. 程序修改(第1套)给定程序中函数fun的功能是:求出以下分数序列的前n 项之和。
2/1+3/2+5/3+8/5+13/8+21/13+……和值通过函数值返回main函数。
例如n=5,则应输出:8.391667。
/**found**/double fun(int n)/**found**/s=s+(double)a/b;2. 程序修改(第6套)给定程序中函数fun的功能是:用递归算法计算列中第n 项的值。
从第一项起,斐波拉契数列为:1、1、2、3、5、8、13、21、……/**found**/switch(g)/**found**/case 1:case 2:return 1;2. 程序修改(第13套)给定程序中函数fun的功能是:求s=aa…aa—…—aaa—aa—a(此处aa…aa表示n个a,a和n的值在1至9之间)。
c语言判断字符串是否相等函数C语言的字符串比较是一种常用的操作,其主要功能是用来判断两个字符串是否相等。
在C语言中,字符串实际上是一个字符数组,因此要比较两个字符串是否相等,就需要比较两个字符数组是否相等。
为了实现这一目的,C语言提供了strcmp()函数。
strcmp()函数是C语言中的标准库函数之一,其作用是比较两个字符串是否相等。
函数的原型如下:int strcmp(const char* str1, const char* str2);该函数接收两个参数,分别为要比较的字符串str1和被比较的字符串str2。
函数的返回值为:- 如果str1小于str2,返回一个负数;- 如果str1等于str2,返回0;- 如果str1大于str2,返回一个正数。
下面是一段使用strcmp()函数的示例代码:```#include <stdio.h>#include <string.h>int main(){char str1[20], str2[20];int result;printf("请输入第一个字符串:"); scanf("%s", str1);printf("请输入第二个字符串:"); scanf("%s", str2);result = strcmp(str1, str2);if(result == 0){printf("两个字符串相等\n"); }else{printf("两个字符串不相等\n"); }return 0;}```在本示例中,我们先定义了两个字符数组str1和str2,然后通过scanf()函数从控制台读入两个字符串。
接着,我们调用了strcmp()函数来比较这两个字符串,将比较结果保存在result变量中。
最后,我们根据比较结果输出不同的提示信息。
strcmp 函数strcmp函数是字符串比较函数,它位于C/C++标准库中,可以用来比较两个字符串的大小。
strcmp数的原型为:int strcmp( const char *s1, const char *s2 );中,s1和s2参数都是指向字符串的指针。
该函数将比较两个字符串的大小,并返回一个整型数值,如果s1大于s2,则该函数返回一个正值;如果s1等于s2,则返回0;如果s1小于s2,则返回一个负值。
strcmp函数是C/C++语言中常用的函数,用于比较字符串,它有两个参数,分别指向两个要比较的字符串。
它可以用来比较两个字符串是否相等或是否大小关系。
strcmp函数可以用于实现字符串的排序,用于判断字符串长度,用于比较文件名,也可以用于模糊字符串的比较。
由于strcmp函数具有实用性和可扩展性,在C/C++语言中有大量应用。
strcmp函数的源码实现可以使用比较简单的循环语句,如下: int strcmp(const char *s1, const char *s2){int i = 0;while(s1[i]!=0 && s2[i]!=0{if(s1[i] > s2[i])return 1;else if(s1[i] < s2[i])return -1;elsei++;}return 0;}上面的代码实现了strcmp函数,当两个字符串的长度一致时,它们的ASCII码值会一一比较,从第一个字符开始比较,当字符串s1中的某个字符的ASCII码小于字符串s2中的某个字符时,此时strcmp函数会返回-1;如果字符串s1中的某个字符的ASCII码大于字符串s2中的某个字符,则strcmp函数会返回1;如果两个字符的ASCII码相等,则继续比较下一个字符,当所有字符都比较完,且对应位置上的字符都相等时,strcmp函数会返回0。
strcmp函数由于可以比较字符串的大小,它在C/C++语言中有着广泛的应用,如:字典序比较,用于判断字符串长度,比较文件名,模糊字符串比较等。
字符串对比函数字符串对比函数是计算机中常用的函数,它可以用来比较两个字符串的相似度。
本文将介绍字符串对比函数的定义、分类、原理及其相关的应用。
一、字符串对比函数的定义字符串对比函数是指将两个字符串进行比较,以得到它们之间的相似度,也称为字符串相似性比较函数。
通过比较两个字符串的相似程度,程序能够自动识别出具有相似特征的字符串,从而实现相关的字符串处理功能。
二、字符串对比函数的分类字符串对比函数可以根据比较方式和标准分为以下几类:(1)基于字符位置比较:例如,strcmp()函数是一种基于字符位置比较的函数,它比较两个字符串的相对位置,可以找出两个字符串中最早出现的不一致字符,并把它们的相对位置作为比较的结果。
(2)基于字符长度的比较:有的字符串对比函数会比较两个字符串的长度,并将较长的字符串作为较大者,比如strncmp()函数(3)基于字符数值的比较:有的字符串对比函数会通过比较字符的数值,来决定字符串大小,比如strncasecmp()函数,它会忽略字符的大小写,而仅通过比较字符的数值来判断字符串的大小。
三、字符串对比函数的原理字符串对比函数有着不同的比较方式和标准,但它们的原理基本相同,即在比较之前,对字符串中的每个字符进行编码,此时每个字符都有一个数值,以此数值来标记字符的位置,然后再进行比较,在不同的比较函数中,具体比较标准也不尽相同,比如strcmp()函数比较两个字符串中最早出现的不一致字符的位置,而strncasecmp()函数则通过比较字符的数值来判断字符串的大小,最后将比较的结果以相应的数值形式输出。
四、字符串对比函数的应用字符串对比函数可以用于比较文本,实现文本分类、文本检索、编辑推荐和机器翻译等功能。
例如,用strcmp()函数可以实现比较两个字符串的相似程度,也可以用于文本检索,比如当用户输入关键词时,系统可以通过比较该词中的每个字符,找出相似度最高的关键词,从而实现检索功能。
2011,2012年上机题100题库1:第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2:第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int*a,int*n){int i,j=0;for(i=2;i<1000;i++)if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}3:第3题请编写函数void fun(int x,int pp[],int*n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x,int pp[],int*n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4:第4题请编写一个函数void fun(char*tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
答案:void fun(char*tt,int pp[]){int i;for(i=0;i<26;i++)pp[i]=0;while(*tt){switch(*tt){case‘a’:pp[0]++;break;case‘b’:pp[1]++;break;case‘c’:pp[2]++;break;case‘d’:pp[3]++;break;case‘e’:pp[4]++;break;case‘f’:pp[5]++;break;case‘g’:pp[6]++;break;case‘h’:pp[7]++;break;case‘i’:pp[8]++;break;case‘j’:pp[9]++;break;case‘k’:pp[10]++;break;case‘l’:pp[11]++;break;case‘m’:pp[12]++;break;case‘n’:pp[12]++;break;case‘o’:pp[14]++;break;case‘p’:pp[15]++;break;case‘q’:pp[16]++;break;case‘r’:pp[17]++;break;case‘s’:pp[18]++;break;case‘t’:pp[19]++;break;case‘u’:pp[20]++;break;case‘v’:pp[21]++;break;case‘w’:pp[22]++;break;case‘x’:pp[23]++;break;case‘y’:pp[24]++;break;case‘z’:pp[25]++;break;}tt++;}}5:第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。
strcmp()字符串⽐较函数⽤法
函数原型:
int strcmp(const char *s1, const char *s2);
头⽂件:
#include <string.h>
功能: ⽤来⽐较两个字符串
参数: s1、s2为两个进⾏⽐较的字符串
返回值: 若s1、s2字符串相等,则返回零;若s1⼤于s2,则返回⼤于零的数;否则,则返回⼩于零的数。
说明: strcmp()函数是根据ACSII码的值来⽐较两个字符串的;strcmp()函数⾸先将s1字符串的第⼀个字符值减去s2第⼀个字符,若差值为零则继续⽐较下去;若差值不为零,则返回差值。
直到出现不同的字符或遇'\0'为⽌。
特别注意: strcmp(const char * s1,const char * s2) 这⾥⾯只能⽐较字符串,不能⽐较数字等其他形式的参数。
代码⽰例:
#include <string.h>
int main(void)
{
char *p="aBc";
char *q="Abc";
char *h="abc";
printf("strcmp(p,q):%d\n",strcmp(p,q));
printf("strcmp(p,h):%d\n",strcmp(p,h));
return 0;
}
//结果:
//strcmp(p,q):32
//strcmp(p,h):-32。
二、程序修改题1.给定程序MODI1.C中函数fun的功能是:计算n!。
2.给定程序MODI1.C中函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。
3.给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。
4.给定程序MODI1.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。
5.给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m<=10)名学生来,并将这些学生数据放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
6.给定程序MODI1.C中函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。
#include <stdio.h>7.给定程序MODI1.C中函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调,次最大数和a[1]中的数对调。
8.给定程序MODI1.C中函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返回。
例如:若k=10,则应输出:3628800。
9.给定程序MODI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A,z转换为a),其它字符不变。
10.给定程序MODI1.C中函数fun的功能是:根据整型形参m,计算如下公式的值:11.给定程序MODI1.C中函数fun的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。
12.给定程序MODI1.C中函数fun的功能是:将s所指字符串中位于奇数位置的字符或ASCII 码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。
13.给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。
习题答案第1章1.1 填空题1.1.1 应用程序ONEFUNC.C中只有一个函数,这个函数的名称是__main 。
1.1.2 一个函数由__函数头__和__函数体__两部分组成。
1.1.3 在C语言中,输入操作是由库函数__scanf 完成的,输出操作是由库函数_printf_完成的。
1.1.4 通过文字编辑建立的源程序文件的扩展名是_.c__;编译后生成目标程序文件,扩展名是__.obj__;连接后生成可执行程序文件,扩展名是_.exe_;运行得到结果。
1.1.5 C语言程序的基本单位或者模块是__函数__。
1.1.6 C语言程序的语句结束符是_;___。
1.1.7 编写一个C程序,上机运行要经过的步骤:______________________________。
1.1.8 在一个C语言源程序中,注释部分两侧的分界符分别为_/*__和__*/__。
1.1.9 C语言中的标识符只能由三种字符组成,它们是字母、数字和下划线。
且第一个字符必须为字母或下划线。
1.1.10 C语言中的标识符可分为关键字、预定义标识符和用户标识符3类。
1.2 选择题1.2.1 一个C程序的执行是从( A )。
A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束1.2.2 以下叙述不正确的是(C)。
A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C) 在C程序中,注释说明只能位于一条语句的后面D) C程序的基本组成单位是函数1.2.3 C语言规定:在一个源程序中,main函数的位置( C )。
A)必须在程序的开头B)必须在系统调用的库函数的后面C)可以在程序的任意位置D)必须在程序的最后1.2.4 C编译程序是(A)。
A)将C源程序编译成目标程序的程序B)一组机器语言指令C) 将C源程序编译成应用软件D) C程序的机器语言版本1.2.5 要把高级语言编写的源程序转换为目标程序,需要使用(D)。
则函数值为NULL。
t1和t2所指字符串的长度相同。
数值返回。
为函数值返回。
11.求k!(k<13),所求阶乘的值作为函数值返回。
方根之和sum。
n的值通过形参传入。
为7,若给num1和num2分别输入27和81,则输出的最大公约数为27。
返回3,若能构成等腰三角形函数返回2,若能构成三角形函数返回1,若不能构成三角形函数返回0。
29.找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
1.将n1.根据形参m,计算如下公式的值。
2.根据整型形参m,计算如下公式的值。
3.根据整型形参m的值,计算如下公式的值。
4.根据整型形参m,计算如下公式的值。
5.传入一个整数m,计算如下公式的值。
8.根据整型形参n,计算如下公式的值。
9.求s的值。
11.应用递归算法求某数a的平方根。
求平方根的迭代公式如下:(x+1)/(x-2) x>0f(x)= 0 x=0或x=2(x-1)/(x-2) x<010 (n=1)fun(n)=fun(n-1)+2 (n>1)16.求出以下分数序列的前n项之和,和值通过函数值返回main函数。
17.求出以下分数序列的前n项之和,和值通过函数值返回main()函数。
所指的数组中。
若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。
为函数值返回。
规定,函数中a1放个位数,a2放十位数。
区中,此存储区的首地址作为函数值返回。
1.给—维数组a输入任意4个整数,并按如下的规律输出。
例如输入1,2,3,4,程序运行后将输出以下方阵:2.根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示的数据,由main()函数输出。
1.并用随机函数为各结点赋值。
将单向链表结点(不包括头结点,并且作为函数值返回。
并且作为函数值返回。