c学习第6天

3.下面代码运行后m的结果为(C)

int m = 6;

m = (m%3*4)?m/4:--m;

printf("%d",m);

A:1

B:2

C:5

D:6

5.以下代码输出的结果为(D)

           int m = 0;

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

        switch (i) {

            case 0:m++;

            case 1:m++;break;

            case 2:m++;continue;

            case 3:m++;break;

            default:m++;continue;

        }

        m++;

    }

    printf("%d",m);

A:12

B:11

C:10

D:9

6.以下代码运行的结果为(B)

    int i = 1,m = 1;

    for (; i<10; i++) {

        if (i/2 == 2 || i%4==0) { 

            for (int j = 4; j < i; j++) {

                m+=j;

            }

        }

    }

    printf("m = %d",m);

 

A:  26

B:  27

C:  28

D:  29

7. break关键字在哪一种语法结构中不能使用? (C)

A:  for语句

B: switch语句 

C:  if语句

D: D. while语句

8.下列数组说明中,正确的(C)

A:  int array[][]={0};

B: int array[3][]={0}; 

C:  int array[][4]={0};

D: int array[][][5]={0};

10.下列选项中正确的语句组是(D)。

A: char s[8];

   s={"lanou"};

B: char s[8];

   s="lanou";

C:  char * s;

   s={"lanou"};

D: char * s;

   s="lanou";

13.如有定义 int a[6] = {0};int * p1 = a;int * p2 = &a[6]; 则p2-p1的结果为(A)

A: 5

B: 6

C: 20;

D: 24

2.随机找出1到10之间的n个数,找到的数不能重复(注:n小于10,要求高性能)

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

    //随机数个数

    int n = 10;

    //随时数下标

    int postion = 0;

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

        //每次限机的下标递减9,8,7...

        postion = arc4random()%(10-i);

        printf("%d ",a[postion]);

        //将随机出来的元素与最后一个交换(相当于排除)

        int temp = a[postion];

        a[postion] = a[10-i-1];

        a[10-i-1] = temp;

    }

3.  输入一个整数数组,调整数组中数组的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。

int i = 0;
                 int j = 0;
    
                 int temp=0;
    
                 while (i < n)
        {
                if (arr[i]%2==0)
                    {
                        i++;
                        continue;
                     }
            
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
            i++;
            j++;
        }

4.c语言实现一个revert 函数,它的功能是将输入的字符长在原串上倒序后返回。 char  *revertchar  *str

char * revert(char * str)
{
    char * pc=str;
    
    int count=0;
    while ((*(pc+count)!='')) {
        count++;
    }
    char ret_char[count];
    printf("%d
",count);
    for (int i=0; i<count; i++) {
        ret_char[i]=str[count-1-i];
    }
    ret_char[count]='';
    return ret_char;
}
  1. 8.通过折半查找法在数组中找到某个数所在的位置并打印,若该数不存在则打印相应信息。

int a[ ] = {-24, 9, 5, 0, 14, 21, 32, 45, 63, 77}

 

int a[ ] = {-24, 9, 5, 0, 14, 21, 32, 45, 63, 77};
    int value_y=0;
    int value=21,left=0,right=9,mid; /*key是存放需要查找的数的,当然你可以随便改为别的*/
    while(left<=right)
    {
        mid=(left+right)/2;
        if(value==a[mid]) {
            printf("%d
",a[mid]);
            value_y=mid;
            printf("第%d	个数
",value_y+1);
            break;
        }
        else if(value>a[mid])
            left=mid+1;
        else if (value<a[mid]) right=mid-1;
    }
    if (left==0||right==0) {
        printf("不存在这个数");
    }

10.编写程序检查某一个整数中是否有重复的数字,如检查2822中存在重复数字2

 

2.        int num_count=0;
    3.        int flag=0;
    4.        int num=1234;
    5.        int num_copy=num;
    6.        while (num_copy/10) {
    7.            num_count++;
    8.            num_copy/=10;
    9.        }
    10.        
    11.        num_count= num_count+1;
    12.        int arr[num_count];
    13.        for (int i=0; i<num_count; i++) {
    14.            arr[i]=num%10;
    15.            num/=10;
    16.        }
    17.        ////////////test////////
    18.        for (int i=0; i<num_count; i++) {
    19.            printf("%d	",arr[i]);
    20.        }
    21.        ///////////test/////////
    22.        for (int i=0; i<num_count; i++) {//取出数组元素中的一个值,然后和数组中的每个元素进行比较
    23.            for (int j=i+1; j<num_count; j++) {
    24.                if (arr[i]==arr[j]) {
    25.                    flag=1;
    26.                   // break;
    27.                }
    28.            }
    29.        }
    30.        if (flag==1) {
    31.            printf("存在重复数
");
    32.        }
    33.        else
    34.        {
    35.            printf("不存在重复数字
");
    36.        }
    37.        
原文地址:https://www.cnblogs.com/yinyakun/p/3390115.html