C语言程序练习题


#import <Foundation/Foundation.h>

#import "DIyici.h"

#include "string.h"

#include <stdio.h>


/*

  

void dy(int *a ,int *b);

void dy(int *a ,int *b)

{

    int p;

    p = *a;

    *a = *b;

    *b = p;

    printf("&a=%p,%p\n",a,b);

    printf("a=%d,%d",*a,*b);

}

 *///指针函数调用两个数值转换

/*

int manxxx(int a , int b);

int manxxx(int a , int b)

{

    return a>b?a:b;

}

 *///函数调用两个数判断大小

/*

 void rn(int a);

 void rn(int a)

{

    if ((a%4==0&&a%100!=0)||a%400==0)

    {

        printf("yes");

    }

    else

    {

        printf("no");

    }

}

 *///函数调用求闰年

int main(int argc, const char * argv[])

{

    /*

    int aa = 3;

    int bb = 7;

    printf("&aa=%p,%p\n",&aa,&bb);

    dy(&aa, &bb);

    printf("&aa=%p,%p\n",&aa,&bb);

    printf("%d,%d",aa,bb);

   *///指针函数调用两个数值转换

   

    

    

    

/*

    int b;

    printf("请输入一个数:");

    scanf("%d",&b);

    rn(b);

 *///函数调用求闰年

/*

    int x=9,y=12;

    int mm=manxxx(x,y);

    printf("%d",mm);

 *///函数调用两个数判断大小


/*

    

    int a[5];

    printf("请输入五个数字:\n");

    

    for (int i=0; i<5; i++) {

        scanf("%d",&a[i]);

        

    }

    printf("你输入五个数字是:\n");

    for (int i=0; i<5; i++) {

        

        printf("%d\t",a[i]);

    }

    printf("\n你输入的数字按照从大到小的顺序排列为:\n");

    for (int i=0; i<5; i++)

    {

        for (int j=i+1; j<5; j++)

        {

            if (a[i]<a[j])

            {

                int b;

                b=a[i];

                a[i]=a[j];

                a[j]=b;

            }

            

        }

    printf("%d\t",a[i]);

    }

 *///冒泡排序

/*

    int a;

    printf("请输入一个年份:");

    scanf("%d",&a);

    if((a%4==0&&a%100!=0) || a%400==0)

    {

        printf("这个年份是润年");

    }

    else

    {

     printf("这个年份不是润年");

    

    }

    *///判断润年

/*

    int a;

    printf("请输入一个四位数:");

    scanf("%d",&a);

    

    if (a==((a/1000)*(a/1000)*(a/1000)*(a/1000)+(a%1000/100)*(a%1000/100)*(a%1000/100)*(a%1000/100)+(a/10%10)*(a/10%10)*(a/10%10)*(a/10%10)+(a%10)*(a%10)*(a%10)*(a%10)))

    {

        printf("这个数是水仙花数");

    }

    else {

    

        printf("这个数bu是水仙数");

    }

   *///水仙花数

/*  int g,s,b,q;

    for (q=1; q<10; q++)

    {

        for (b=0; b<10; b++)

        {

            for (s=0; s<10; s++)

            {

                for (g=0; g<10; g++)

                {

                    int num=q*1000+b*100+s*10+g;

                    if (q*q*q*q+b*b*b*b+s*s*s*s+g*g*g*g==num)

                    {

                        printf("%d\t",num);

                    }

                    

                }

            }

        }

    }

    *///打印四位水仙花

/*

    for (int i=0; i<5; i++)//控制换行

    {

    

        for (int m=5; m>i; m--)//控制空格

        {

        printf(" ");

        }

    

        for (int n=0; n<2*i-1; n++)// 控制*

        {

        printf("*");

        }

        printf("\n");//换行

    }

   

   *///打印三角形

/*    int i,j;

    for ( i=2; i<100; i++)

    {

        for ( j=2; j<i; j++)

        {

            if (i%j==0)

            {

                break;

            }

        }

        if (i==j)

        {

            printf("%d\t",i);

        }

    }

*///100内的素数

/*

    int year, bol;

    scanf("%d",&year);

    if (year%4!=0)

    {

        bol=1;

    }

    else if(year%400==0)

   

    {

        bol=1;

    }

     else if (year%100!=0)

    {

        bol=1;

    }

    if (bol==1) {

        printf("yes");

    }

    else

    {

        printf("no");

    }

 *///找闰年

/*

#if 0

    int n;

    int a[100];

    time_t t;

    srand((int)time(&t));

    for (int m=0; m<10; m++)

    {

        n = (int)(100.0*rand()/(RAND_MAX+1.0));

    }

    printf("%d\n",n);

    for (int i=0; i<100; i++)

    {

        a[i]=i+1;

        if (i>=n)

        {

            a[i]=i;

        }

        printf("%d\t",a[i]);

    }

    for (int i=0; i<100; i++)

    {

        if (a[i+1]-a[i]==0)

        {

            printf("\n%d",a[i]);

            break;

        }

    }

    

#endif

     *///随机数,然后找出随机数

/*

    int a;

    printf("请输入一个数:");

    scanf("%d",&a);

    for (int i=2; i<a; i++)

    {

        if (a%i!=0) {

            printf("YES");

            break;

        }

        else

        {

            printf("NO");

            break;

        }

    }

     *///找素数

/*

    int a,b;//a是你要输入的数,b是你要输入数的位数

    long sun;//相加的结果


    printf("shu ru liang ge shu:");

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

    int c=a;//c是接收a的初值,

    for (int i=1; i<b; i++)

    {

        sun+=c;

        printf("%d+",c);

        c=c*10+a;//把接收的值变成(例如:3333333333

    }

    printf("%d=%ld",c,sun+c);

*///3+33+333+3333+33333=37035

/*

    int year,month,day;

    int num;

    printf("请输入一个年,月,日");

    scanf("%d%d%d",&year,&month,&day);

    if ((year%4==0&&year%100!=0) ||year%400==0){

       

        switch (month) {

            case 1:

                num =day;

                break;

            case 2:

                num = 31+day;

                break;

            case 3:

                num = 31+29+day;

                break;

            case 4:

                num = 31+29+31+day;

                break;

            case 5:

                num = 31+29+31+30+day;

                break;

            case 6:

                num = 31+29+31+30+31+day;

                break;

            case 7:

                num = 31+29+31+30+31+30+day;

                break;

            case 8:

                num = 31+29+31+30+31+30+31+day;

                break;

            case 9:

                num = 31+29+31+30+31+30+31+31+day;

                break;

            case 10:

                num = 31+29+31+30+31+30+31+31+30+day;

                break;

            case 11:

                num = 31+29+31+30+31+30+31+31+30+31+day;

                break;

            case 12:

                 num = 31+29+31+30+31+30+31+31+30+31+30+day;

            default:

               printf("error") ;

                break;

        }

        printf("%d",num);

        

    }

    else{

        switch (month) {

            case 1:

                num =day;

                break;

            case 2:

                num = 31+day;

                break;

            case 3:

                num = 31+28+day;

                break;

            case 4:

                num = 31+28+31+day;

                break;

            case 5:

                num = 31+28+31+30+day;

                break;

            case 6:

                num = 31+28+31+30+31+day;

                break;

            case 7:

                num = 31+28+31+30+31+30+day;

                break;

            case 8:

                num = 31+28+31+30+31+30+31+day;

                break;

            case 9:

                num = 31+28+31+30+31+30+31+31+day;

                break;

            case 10:

                num = 31+28+31+30+31+30+31+31+30+day;

                break;

            case 11:

                num = 31+28+31+30+31+30+31+31+30+31+day;

                break;

            case 12:

                num = 31+28+31+30+31+30+31+31+30+31+30+day;

            default:

                printf("error") ;

                break;

        }

        printf("%d",num);


    }

    

*///给定年月日,判断是这个年份的多少天

/*    int a[3][2]={1,2,3,4,5,6};

    int b[2][3];

    printf("转换前的数组:\n");

    for (int i=0; i<3; i++) {

        for (int j=0; j<2; j++) {

           

             printf("a[%d][%d]=%d  ",i,j,a[i][j]);

        }

        printf("\n");

    }

    

    printf("\n");

    printf("转换后的数组:\n");

    for (int i=0; i<2; i++) {

        for (int j=0; j<3; j++) {

            b[j][i]=a[i][j];

            printf("b[%d][%d]=%d  ",i,j,b[j][i]);

        }

        printf("\n");

    }

*///数组转换

/*    char a[5];

    char b[5];

    printf("请输入一个字符串");

    scanf("%s",a);

    for (int i=0; i<5; i++) {

        b[i] = a[4-i];

        printf("%c",b[i]);

      

    }

*///字符串,倒着输出


    /**

     *自定义字符串拼接和复制函数的方法

     *(注意:要导入头文件:#include "string.h"

     */

/*    

    char a[10];

    char b[10];

    printf("请输入第一个字符串:");

    scanf("%s",a);

    printf("请输入第二个字符串:");

    scanf("%s",b);

    strcat(a,b);//合并字符串

    printf("字符合并后为:");

    puts(a);//打印字符串;

    printf("字符复制后为:");

    strcpy(a,b);//字符串A复制给B

    puts(a);//打印字符串

    *///字符串合并

/*

    char a[]="hello ";

    char b[]="word";

    int i,j;

//    for (i=0; a[i] != '\0'; i++);//判断a[]什么时候为‘\0’,

//    for (j=0; a[j] != '\0'; j++)

//    {

//        a[i+j] = b[j];//b[j]的值赋在a[i+j]的后面

//    

//    }

//    a[i+j] = '\0';//拼接完成要结束

//        printf("%s\n",a);//打印a[]赋值后的结果

        

    for ( i=0; b[i] != '\0'; i++)

    {

        a[i] = b[i];//b[i]的值赋给a[i]

    }

    a[i] = '\0';//复制完成要结束

        printf("%s",a);

 *///字符串拼接,复制

 /*

    int year,month,today,sum;

    int days[]={31,28,31,30,31,30,31,31,30,31,30,31};

    printf("请输入一个年份:");

    scanf("%d%d%d",&year,&month,&today);

    printf("你输入的日期是:%d%d%d",year,month,today);

    if (month>12 || month<=0) {

        printf("你输入的月份错误!");

    }

    if ((year%4==0 &&year%100!=0)||year%400==0) {

        days[1] =29;

    }

    for (int i=0; i<month-1; i++) {

        sum=sum+days[i];

    }

    sum=sum+today;

    if(month==1){

        sum=today;

    }

    printf("\n你输入的日期是当年的第%d",sum);

  *///给定年月日判断是这个年份的多少天

  /*

    int *p;

    int a = 100;

    p = &a;

    printf("p=%p\n",p);

    printf("*p=%d\n",*p);

    printf("&a=%p\n",&a);

  *///指针赋值

/*

//    

//    int a[5] = {1,2,3,4,5};

//    int *p = (int *)(&a+1);//&a+1,是在a指向的地址加个1,即:4+1

//    printf("%d",*(p-1));//p-1,a的地址已经加1了,现在又减1.即:5-1

//    

    int array[5] = {1,2,3,4,5};

    int *r;

    r = array;

    printf("%d",*r);

    r++;

    printf("%d",*r);

 *///指针数组的自增

 /*

    int a[5] = {1,2,3,4,5};

    int *p;

    p = a;

    for (int i=0; i<5; i++, p++) {

                printf("%d",*p);

         }

    printf("\n");

    p = a+4;

    for (int j=4; j>=0; j--,p--) {

        printf("%d",*p);

      

    }

   *///指针数组倒序排列

 /*

  //struct 结构体创建的关键字

    struct student {

        char *name;

        int  age;

        float score;

        

    }boy,boy1={"xhj",20,98.9};//创建结构体的对象方法一

   // struct student boy1 = {"xhj",20,98.9};//创建结构体的对象方法二

    boy.age = 26;

    printf("boy=%d\n",boy.age);

    printf("boy1=%d,%s,%f",boy1.age,boy1.name,boy1.score);

   

    struct student str1,str2;//创建结构体的对象方法三

    str1.age = 23;

    printf("str1=%d\n",str1.age);

    str1.name = "xuhejie";

    printf("str1=%s\n",str1.name);

    str2.age = 27;

    printf("str2=%d\n",str2.age);

  *///结构体的创建

  /*

    enum week//enum 枚举类型名{取值表};

    {Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,

    }a;

    enum week b,c,d,e,f,g;

    a=Monday;

    b=Tuesday;

    c=Wednesday;

    d=Thursday;

    e=Friday;

    f=Saturday;

    g=Sunday;

    printf("%d",a);

   

 *///枚举类型

/*

    int n,cent;

//    int k;

    printf("Please enter the number of array:\n");

    scanf("%d",&n);//输入你要输入数的个数

    printf("Please enter the array:\n");

    int array[n];

    for (int i=0; i<n; i++)

    {

        scanf("%d",&array[i]);//输入数组

        cent+= array[i];//求所以数组的和

    }

//    while (k<n)

//    {

//        cent+=array[k];

//        k++;

//    }

    printf("%lf",(double)cent/n);//注意转换为double,因为平均值有小数

 

 *///输入N个数然后求其平均值

 /*

    int a,b,c,d;

    a=5;

    b=5;

    c=(a++)+(a++)+(a++);//5+6+7

    d=(++b)+(++b)+(++b);//6+7+8

    printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);//a=8,b=8,c=18,d=21

*///自增方法

/*   

int a,b,c,d;

        scanf("%d%d%d%d",&a,&b,&c,&d);

        printf("max=%d",((a>b?a:b)>c?(a>b?a:b):c)>d?((a>b?a:b)>c?(a>b?a:b):c):d);

            

        printf("min=%d",((a<b?a:b)<c?(a<b?a:b):c)<d?((a<b?a:b)<c?(a<b?a:b):c):d);

*/// 输入四个数,然后输出最大的数,和最小的数
/*  

   int n;

        int a[100];

        time_t t;

        srand((int)time(&t));

        for (int m=0; m<10; m++)

        {

            n = (int)(100.0*rand()/(RAND_MAX+1.0));

        }

        printf("%d\n",n);

        for (int i=0; i<100; i++)

        {

            a[i]=i+1;//这样是因为a[0]的值是1i为下标

            if (i>=n)

            {

                a[i]=i;

            }

            printf("%d\t",a[i]);

        }

        for (int i=0; i<100; i++)

        {

            if (a[i+1]-a[i]==0)

            {

                printf("\n%d",a[i]);

                break;

            }

        }


    }
*///随机一个100内的数,然后找出这个数 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值