大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includestdio.h
创新互联专注于阿里地区网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供阿里地区营销型网站建设,阿里地区网站制作、阿里地区网页设计、阿里地区网站官网定制、成都小程序开发服务,打造阿里地区网络公司原创品牌,更为您提供阿里地区网站排名全网营销落地服务。
#define N 100
void fun(int *a,int n) { int i,k; k=a[n-1]; for ( i=n-1;i0;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;in;i++ ) scanf("%d",a[i]);
printf("请输入后移数据个数: "); scanf("%d",m);
for ( i=0;im;i++ ) fun(a,n);
for ( i=0;in;i++ ) printf("%d ",a[i]); printf("\n");
}
你说的就是库函数的源码,也就是glibc,源码在可以下到,比如下载,打开后就可以看到你需要的各种库的具体实现代码,比如在string中的strcat.c中就有
char *strcat (dest, src)
char *dest;
const char *src;
{
char *s1 = dest;
const char *s2 = src;
reg_char c;
/* Find the end of the string. */
do
c = *s1++;
while (c != '\0');
/* Make S1 point before the next character, so we can increment
it while memory is read (wins on pipelined cpus). */
s1 -= 2;
do
{
c = *s2++;
*++s1 = c;
}
while (c != '\0');
return dest;
}
我去,几乎没有对的地方。
首先,指针默认只有一个地址的长度的空间,存不了那么多的字符。
其次,传值和传地址一塌糊涂,完全就是乱写么。
scanf的第二个参数是地址,如果本身不是指针则需要取址符。
我给你重写了算了
#includestdio.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;ilength;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(ilength)
{
if(x==array[i])
return i;/*既然找到了,那就直接返回就行了*/
i++;
}
return -1;
}
C语言代码如下:
#includestdio.h
int main()
{
int a,b;
printf("please enter two number:"); -----两个数字用空格隔开,以回车键结束输入。
scanf("%d %d",a,b);if(ab)
printf("The max is %d",a);
else if(ba)
printf("The max is %d",b);
else
printf("The two Numbers are the same");
return 0;
}
运行结果图:
扩展资料:
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语言-百度百科