当前位置:首页 » 编程语言 » 有关函数的代码c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

有关函数的代码c语言

发布时间: 2022-10-17 09:57:14

c语言程序 关于函数

#include <stdio.h>

char *mystrcpy(char str1[], char str2[])
{
int i = 0;
while (str2[i])
{
str1[i] = str2[i];
i++;
}
str1[i] = '\0';
return str1;
}

char *mystrcat(char str1[], char str2[])
{
int i = 0, j = 0;

while (str1[i]) i++;
while (str2[j]) str1[i++] = str2[j++];
str1[i] = '\0';
return str1;
}

int mystrcmp(char str1[], char str2[])
{
int i = 0, j = 0;

while (str1[i] || str2[i])
{
if (str1[i] != str2[i])
return str1[i] - str2[i];
i++;
}
return 0;
}

int main(void)
{
char str1[100] = "abc", str2[100] = "def", str3[200];
mystrcpy(str3, str1);
puts(str3);
mystrcat(str3, str2);
puts(str3);
if (mystrcmp(str3, str2) > 0)
printf("%s > %s\n", str3, str2);
else
printf("%s < %s\n", str3, str2);
return 0;

}

② 用C语言编写:编写一个函数,要求在主函数中输入两个数,输出其中最大值。

C语言代码如下:

#include<stdio.h>

int main()

{

int a,b;

printf("please enter two number:"); -----两个数字用空格隔开,以回车键结束输入。

scanf("%d %d",&a,&b);if(a>b)

printf("The max is %d",a);

else if(b>a)

printf("The max is %d",b);

else

printf("The two Numbers are the same");

return 0;

}

运行结果图:

(2)有关函数的代码c语言扩展阅读:

c语言特点:

基本特性:

1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。

2、结构式语言:结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。

C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

3、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。[

4、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。

C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。

Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。

一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。

特有特点:

1.C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

2.C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

3.不同的变量类型可以用结构体(struct)组合在一起。

4.只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

5.部份的变量类型可以转换,例如整型和字符型变量。

6.通过指针(pointer),C语言可以容易的对存储器进行低级控制。

7.预编译处理(preprocessor)让C语言的编译更具有弹性。

优缺点:

优点

1.简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。

把高级语言的基本结构和语句与低级语言的实用性结合起来。

C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

2.运算符丰富

C语言的运算符包含的范围很广泛,共有34种运算符。

C语言把括号、赋值、强制类型转换等都作为运算符处理。

从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

3、数据类型丰富

C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。

4、表达方式灵活实用

C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。

它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。

5、允许直接访问物理地址,对硬件进行操作

由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。

6、生成目标代码质量高,程序执行效率高

C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当.

C语言一般只比汇编程序生成的目标代码效率低10%~20%。

7、可移植性好

C语言在不同机器上的C编译程序,86%的代码是公共的,所以C语言的编译程序便于移植。在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。

8、表达力强

C语言有丰富的数据结构和运算符。包含了各种数据结构,如整型、数组类型、指针类型和联合类型等,用来实现各种数据结构的运算。

C语言的运算符有34种,范围很宽,灵活使用各种运算符可以实现难度极大的运算。

C语言能直接访问硬件的物理地址,能进行位(bit)操作。兼有高级语言和低级语言的许多优点。

它既可用来编写系统软件,又可用来开发应用软件,已成为一种通用程序设计语言。

另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

缺点

1、 C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。

2、 C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。

从应用的角度,C语言比其他高级语言较难掌握。也就是说,对用C语言的人,要求对程序设计更熟练一些。

③ C语言函数的编程代码,

#include<stdio.h>
void func();
void main()
{
func();
}
void func()
{
printf(“函数func被调用~\n”);
}

④ 在C语言里,关于库函数中各种数学函数的代码。

你说的就是库函数的源码,也就是glibc,源码在ftp://ftp.gnu.org/gnu/glibc可以下到,比如下载ftp://ftp.gnu.org/gnu/glibc/glibc-2.9.tar.gz,打开后就可以看到你需要的各种库的具体实现代码,比如在string中的strcat.c中就有

char*strcat(dest,src)
char*dest;
constchar*src;
{
char*s1=dest;
constchar*s2=src;
reg_charc;
/*Findtheendofthestring.*/
do
c=*s1++;
while(c!='');
/*,sowecanincrement
itwhilememoryisread(winsonpipelinedcpus).*/
s1-=2;
do
{
c=*s2++;
*++s1=c;
}
while(c!='');
returndest;
}

⑤ 求一个C语言程序,关于求和和函数调用的

#include<stdio.h>

int sum(int n)

{

int i=0,s=0;

while(i<=n)

{

s=s+i;

i++;

}


return s;

}

int main()

{

int n;

printf("请输入要累积的数:");

scanf("%d",&n);

sum(n);

printf("累加的结果为%d",sum(n));

return 0;

}

(5)有关函数的代码c语言扩展阅读:

使用函数的优势:

C语言程序鼓励和提倡人们把一个大问题划分成一个个子问题,对应于解决一个子问题编制一个函数,因此,C语言程序一般是由大量的小函数而不是由少量大函数构成的,即所谓“小函数构成大程序”。

这样的好处是让各部分相互充分独立,并且任务单一。因而这些充分独立的小模块也可以作为一种固定规格的小“构件”, 用来构成新的大程序。

参考资料来源:网络-C语言

⑥ C语言常用的函数有哪些

C语言库函数,常用库函数有:

1、scanf格式输入函数

2、printf格式输出函数

3、systemdos命令函数

4、sort排序

5、main主函数

6、fgets文件读取字符串函数

7、fputs文件写入字符串函数

8、fscanf文件格式读取函数

9、fprintf文件格式写入函数

10、fopen打开文件函数

11、getchar输入字符函数

12、putchar输出字符函数

13、malloc动态申请内存函数

14、free释放内存函数

15、abs求绝对值数学函数

16、sqrt求平方根数学函数

(6)有关函数的代码c语言扩展阅读

语言组成:


1、数据类型

C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。

2、常量与变量

常量其值不可改变,符号常量名通常用大写。

变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。

3、数组

如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。

4、指针

如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。

⑦ c语言中有哪些函数

C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数:
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int
getc(FILE
*fp)
getc主要是从文件中读出一个字符.常用的判断文件是否读取结束的语句为
(ch
=
getc(fp))
!=
EOF.EOF为文件结束标志,定义在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定义在stdlib.h中一样,文件也可以被理解为一种流,所以当fp为stdin时,getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch写到文件fp中去.如果fp为stdout,则putc就等同于putchar()了.
int
getchar(void)
getchar主要是从标准输入流读取一个字符.默认的标准输入流即stdio.h中定义的stdin.但是从输入流中读取字符时又涉及到缓冲的问题,所以并不是在屏幕中敲上一个字符程序就会运行,一般是通过在屏幕上敲上回车键,然后将回车前的字符串放在缓冲区中,getchar就是在缓冲区中一个一个的读字符.当然也可以在while循环中指定终止字符,如下面的语句:while
((c
=
getchar())
!=
'#')这是以#来结束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch写到标准流stdout中去.
char
*
gets(char
*str)
gets主要是从标准输入流读取字符串并回显,读到换行符时退出,并会将换行符省去.
int
puts(char
*str)
puts主要是把字符串str写到标准流stdout中去,并会在输出到最后时添加一个换行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放读入的字符数组指针,num是最大允许的读入字符数,fp是文件指针.fgets的功能是读一行字符,该行的字符数不大于num-1.因为fgets函数会在末尾加上一个空字符以构成一个字符串.另外fgets在读取到换行符后不会将其省略.
int
fputs(char
*str,
file
*fp)
fputs将str写入fp.fputs与puts的不同之处是fputs在打印时并不添加换行符.
int
fgetc(FILE
*fp)
fgetc从fp的当前位置读取一个字符.
int
fputc(int
ch,
file
*fp)
fputc是将ch写入fp当前指定位置.
int
fscanf(FILE
*fp,
char
*format,
输入列表)
fscanf按照指定格式从文件中出读出数据,并赋值到参数列表中.
int
fprintf(FILE
*fp,
char
*format,
输出列表)
fprintf将格式化数据写入流式文件中.
数据块读写函数
fread
(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
参数说明:
buffer:是一个指针。
对fread
来说,它是读入数据的存放地址。
对fwrite来说,是要输出数据的地址(均指起始地址)。
size:
要读写的字节数。
count:
要进行读写多少个size字节的数据项。
fp:
文件型指针。

⑧ C语言代码:应用函数求解

#include<stdio.h>

#define N 100

void fun(int *a,int n) { int i,k; k=a[n-1]; for ( i=n-1;i>0;i-- ) a[i]=a[i-1]; a[0]=k; }

void main() { int a[N],n,m,i;

printf("请输入n: "); scanf("%d",&n); if ( n>=N ) n=N;

printf("请输入%d个整数: ",n); for ( i=0;i<n;i++ ) scanf("%d",&a[i]);

printf("请输入后移数据个数: "); scanf("%d",&m);

for ( i=0;i<m;i++ ) fun(a,n);

for ( i=0;i<n;i++ ) printf("%d ",a[i]); printf(" ");

}

⑨ 急求C语言中查找函数的代码

我去,几乎没有对的地方。
首先,指针默认只有一个地址的长度的空间,存不了那么多的字符。
其次,传值和传地址一塌糊涂,完全就是乱写么。
scanf的第二个参数是地址,如果本身不是指针则需要取址符。
我给你重写了算了
#include<stdio.h>
int Retrieve(int array[],int length,int x);/*形参x直接传值就可以了*/
int main()
{
int *a,x;
int length,i;

scanf("%d",&length);
a = (int)malloc(sizeof(int)*length); /*申请一个内存空间用来存放数据,或者直接用一个大数组也可以*/

for(i=0;i<length;i++)
scanf("%d",a+i);/*a本身就是一个地址,不需要加什么符号*/
scanf("%d",&x);/*x是变量,需要取址符*/

printf("%d\n",Retrieve(a,length,x));
return 0;
}
int Retrieve(int array[],int length,int x)
{
int i;
i=0;
/* p=array; 这句其实没必要*/
while(i<length)
{
if(x==array[i])
return i;/*既然找到了,那就直接返回就行了*/
i++;
}

return -1;
}

⑩ C语言strcmp函数是什么样的代码

C语言中strcmp函数是string库的常用函数。其原型代码和介绍如下:

1.先说一下这个函数的实现原理,向strcmp()函数中传入两个字符串(记为str1,str2).传入之后,通过把str1的各字母的ASCII码值和str2的各字母的ASCII码值进行比较。若str1>str2则返回正数,若str1=str2则返回0,否则,则返回负数。

2.下面实现代码:

3.整个函数的原型中得益于“(*str1!='')&&(*str1==*str2)”这一句的代码,因为这样当字符指针指向空,意味着字符串已经移动到最后了,比较结束,此时可以退出循环。而如果两个字符串不相等时,则此时函数也可以退出了。

(10)有关函数的代码c语言扩展阅读:

这个函数要注意一下几点:

①使用*(unsigned char*)str1而不是用*str1。这是因为传入的参数为有符号数,有符号字符值的范围是-128~127,无符号字符值的范围是0~255,而字符串的ASCII没有负值,若不转化为无符号数这回在减法实现时出现错误。

②While循环中ret=*(unsigned char*)str1-*(unsigned char*)str2) && *str1,最后与上str1也可以换成str2,因为前面已经做了相减,无论哪个先为‘’都会退出。因为最后与上str1是为了判断str1是否结束,即是否为‘’。

③这个函数没有判断参数为NULL时的情况,所以当传入NULL时程序会崩溃。网上看别人说商业化代码都会在调用strcmp前先判断是否为NULL,所以可以不用判断NULL;我在VC6上测试string.h中的strcmp(NULL,NULL),程序也会崩溃。这里可以根据实际情况来决定。

参考资料来源:网络-strcmp函数