C语言基础测试题05

来源:互联网 发布:人工智能 电影在线 编辑:程序博客网 时间:2024/05/29 17:04

   //练习1:冒泡排序:每次找出最大的放到后面,相邻之间比较,a1>a2交换         ¡要求手写

    

    //每次从第一个元素开始比较,相邻之间比较,遇到后面的比前面的大,则交换两个数,保证最大的放后面

    //每次找到一个最大的,下次寻找次大的次数就-1

    //n个数寻找最大的数需要n-1

//void sort (int arr[],int n)

//    {

//         //计算数组元素的个数(只适应基本数据类型: int double char float)

//       

//        for (int i=0; i<n-1; i++)//找最大的数要找n-1

//        {   //每次找最大的数都是从第一个数开始找

//            //每次找到一个最大数之后,下次比较的个数就少了一个

//            for (int j=0; j<n-i-1; j++)

//              //如果遇到前面的数比后面的数大,则交换两个数

//            {

//                if (arr[j]>arr[j+1])

//                {

//                    //交换相邻的俩个数,保证最大的放后面

//                    int temp = arr[j];

//                    arr[j]=arr[j+1];

//                    arr[j+1]= temp ;

//                }

//            }

//        }

//    }

//

//int main()

//{

//    int arr[8] = {1,3,4,2,5,6,8,7};

//      //数组作为函数的实参,只需要写数组名即可

//    sort(arr,8);

//    for (int i=0; i<8; i++)

//    {

//        printf("%d ",arr[i]);

//    }

//         return 0;

//}

    //练习2:字符串中的一位数的基本运算,:输入字符串"1+2"输出结果为3,输入字符串1*2输出结果为2

//int main()

//{

//    char arr[3]; //输入的是3个字符,所以arr[3]char定义

//    int sum;

//   

//    printf("输入字符串:\n");

//    scanf("%s",arr);

//    

//    

//    if (arr[1]=='+')

//    {

//        sum=(arr[0]-48)+(arr[2]-48);

//    }

//    else if(arr[1]=='-')

//    {

//        sum=(arr[0]-48)-(arr[2]-48);

//    }

//    else if(arr[1]=='*')

//    {

//        sum=(arr[0]-48)*(arr[2]-48);

//    }else

//    {

//        sum=(arr[0]-48)/(arr[2]-48);

//    }

//    printf("%d",sum );

//

//    

//    return 0;

//}

//练习3:用指针打印数组

//int main(){

//    int arr[10]={1,2,3,4,5,6,7,8,9,10};

//    

//    int *cp = arr;

//    

//    for (int i=0; i<10; i++)

//    {

//        printf("%d ",*(cp+i));

//    }

//    

//    return 0;

//}


//练习4:用函数交换两个数.

// void changeNum(int i, int j)

//{

//    int temp;

//    temp=j;

//    j=i;

//    i=temp;

//    

//  //  return temp;

// printf("交换后是:%d%d\n",i,j);

//}

//

//  int main()

//{

//    int a ;

//    int b ;

//    printf("请输入两个数:\n");

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

//    printf("交换前是:%d%d\n",a,b);

//    changeNum(a,b);

//    

//}


//练习5:用函数比较两个数

//void compare(int i,int j)

//{

//  int max;

//  if (i>j)

//      max=i;

//  else

//      max=j;

//printf("%d%d比较,大的数是:%d\n",i,j,max);

//

//}

//

//int  main ()

//{

//    int a = 10;

//    int b = 20;

//    compare(a,b);

//

//

//}



//总结


    //使用指针来打印数组

//int main(){

//    int bb[10]={1,2,3,4,5,6,7,8,9,10};

//     //   方法1.移动指针

//    int *qqa = bb;   //int *qqi = &bb[0];qqi等于bb[0]的地址,*qqi就是bb[0]所在地址的数值.

//    

//           for (int i=0; i<10; i++)

//        {

//            printf("%d \n",*qqa);

//            

//            qqa++;//指针向右移动

//    

//        }

//        //让指针回到起始地址

//       qqa = bb;     //qqa=&bb[0];

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

//    

//      //  方法2.使用指针加上偏移量来输出数组元素

//        int *qqq = bb;   //*qqq就是bb[0](1)的地址

//        for (int i=0; i<10; i++)

//        {

//            //此种方式不会移动指针

//            printf("%d ",*(qqq+i));

//        }

//    return 0;

//}

//        //打印*qqq验证,qqq指针是否移动

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

    

      //掌握方法1.2


    //方法3.使用类似数组的访问方式

//    int *aaa = bb;

//    for (int i=0; i<10; i++) {

//        //此种方式也不会影响指针的位置

//        printf("aaa[%d]=%d ",i,aaa[i]);

//    }

    //方法4.使用数组名来访问(此处省略...)

    

    

    //函数中指针的使用概述:

    //返回一个字符串/字符数组,使用char *

    //返回一个整型的数组使用 int *

    //参数:如果是数组 char *ch,char ch[], int *ch,int ch[]

    

    


0 0
原创粉丝点击