C语言基础程序汇总

来源:互联网 发布:行装软件 编辑:程序博客网 时间:2024/06/05 03:28

C语言基础程序汇总

C语言打印九九乘法表
打印出所有的“水仙花”数。所谓“水仙花”数是指一个3位数,其各个位数字立方和等于该数本身。
c语言实现简单选择排序。
C语言冒泡法排序
C语言利用指针实现strcmp功能
C语言用函数实现strlen功能
编写程序将两个数组完成归并,并存入数组c中;
编写strcat函数(不调用C的字符串库函数,编写函数 strcat).

C语言打印九九乘法表

#include<stdio.h>int main(){    int i,j;    for(i=1;i<10;i++)    {        for(j=1;j<=i;j++)        {            printf("%d*%d=%d  ",j,i,j*i);        }        printf("\n");    }    return 0;}

打印出所有的“水仙花”数。所谓“水仙花”数是指一个3位数,其各个位数字立方和等于该数本身。

#include<stdio.h>int main(){    int n=100,a,b,c,d;    do    {        c=n/100;        a=n%10;        b=(n-c*100-a)/10;        d=a*a*a+b*b*b+c*c*c;        if(n==d)        {            printf("%d\n",n);        }        n++;    }while(n<1000);    return 0;}

c语言实现简单选择排序。

#include<stdio.h>int main(){    int a[] = {1,2,3,4,5,6,7,8};    int b,c,i,j,n;    n = sizeof(a) / sizeof(int);    for(i = 0; i < n-1; i++)    {        c = a[i];        for(j = i+1; j<n; j++)        {            if(c < a[j])            {                b = c;                c = a[j];                a[j] = b;            }        }        a[i] = c;    }    for(i = 0; i<n; i++)    {        printf("%d ",a[i]);    }    printf("\n");    return 0;}

C语言冒泡法排序

#include<stdio.h>int main(){    int a[] = {1,2,3,4,5,6,7,8};    int b,c,i,j,n;    n = sizeof(a) / sizeof(int);    for(i = 0; i < n-1; i++)    {        c = a[i];        for(j = i+1; j<n; j++)        {            if(c < a[j])            {                b = c;                c = a[j];                a[j] = b;            }        }        a[i] = c;    }    for(i = 0; i<n; i++)    {        printf("%d ",a[i]);    }    printf("\n");    return 0;}

C语言利用指针实现strcmp功能

#include<stdio.h>#include<string.h>int my_strcmp(char *a, char *b);int main(){    char a[] = "abcde";    char b[] = "abcde";    printf("use    strcmp = %d\n",strcmp(a,b));    printf("use my_strcmp = %d\n",my_strcmp(a,b));    return 0;}int my_strcmp(char *a, char *b){    int r = 0;    while(*a != '\0' || *b != '\0')    {        r = *a-*b;        if(r != 0)        {            return r;        }        a++;        b++;    }    return r;}

C语言用函数实现strlen功能

#include<stdio.h>#include<string.h>int my_strlen(char * p);int main(){    char s[] = "hello!";    int l;    l=my_strlen(s);    printf("   use strlen=%lu\n",strlen(s));    printf("no use strlen=%d\n",l);             return 0;}int my_strlen(char * p){    int n=0;    while(*p != '\0')    {        n++;        p++;    }    return n;}

编写strcat函数(不调用C的字符串库函数,编写函数 strcat).

已知strcat函数的原型是 char *strcat(char *strDest, const char *strSrc);
strDest是目的字符串,strSrc是源串。

#include<stdio.h>#include<string.h>char *my_strcat(char *p,char *q);int main(){    char s1[100]="so  ";    char c1[100]="so  ";    char s2[]="many!";    char c2[]="many!";    puts(my_strcat(s1,s2));    strcat(c1,c2);    puts(c1);    return 0;}char *my_strcat(char *p,char *q){    char *a,*b;    a=p;    b=q;    while(*a!='\0')    {        a++;    }    while(*b!='\0')    {        *a=*b;        a++;        b++;    }    *a=*b;    return p;}

2. 已知两个升序数组a、b及空数组c:

Int a[] = {1,3,5,7,9,11,13,15,17,19};
Int b[] = {2,4,6,8,10,12,14,16,18,20};
Int c[20];
编写程序将两个数组完成归并,并存入数组c中;

#include<stdio.h>int *paixua(int *a,int *b,int a1,int b1,int *c);int main(){    int a[] = {1,2,4,7},a1 = sizeof(a)/sizeof(int);    int b[] = {2,3,5,8,10,12},b1 = sizeof(b)/sizeof(int);    int c[a1+b1],c1 = a1+b1,i,*p;    p = paixua(a,b,a1,b1,c);    for(i = 0; i<c1; i++)    {        printf("%d\n",c[i]);    }    puts("");    return 0;}int *paixua(int *a,int *b,int a1,int b1,int *c){    int *r = c,*p = c;    int i,j = a1+b1,aa = 0,bb = 0;    for(i = 0; i<j; i++)                //最大比较次数    {        if(*a <= *b && aa<a1)          //取a数组靠前较小的数给c        {            *p = *a;            a++;            p++;            aa++;        }        if(aa == a1)                    //如果a数组先取完跳出循环        {            break;        }        if(*a>*b && bb<b1)             //取b数组靠前较小的数给c        {            *p = *b;            b++;            p++;            bb++;        }        if(bb == b1)                //如果b数组先取完跳出循环        {            break;        }    }    while(aa != a1)                 //如果a数组没有取完,剩下的元素给c数组    {        *p = *a;        p++;        aa++;        a++;    }    while(bb != b1)             //如果b数组没有取完,剩下的元素给c数组    {        *p = *b;        p++;        bb++;        b++;    }    return r;               //返回c数组起始地址}
原创粉丝点击