五道选择题:

1、下列定义数组的语句中正确的是【多选】( )

A、

#define size 10
char str1[size], str2[size+2];

B、char str[]; C、int num['10'];

D、int n=5; int a[n][n+2];

2、已知 i,j 都是整型变量,下列表达式中,与下标引用 X[i][j] 不等效的是【多选】( ) 

A、*(X[i]+j)    B、*(X+i)[j]     C、*(X+i+j)        D、*(*(X+i)+j)

c语言每日一练(7)-LMLPHP

 A、*(X[i]+j)    B、*(X+i)[j]     C、*(X+i+j)        D、*(*(X+i)+j)

 3、二维数组X按行顺序存储,其中每个元素占1个存储单元。若 X[4][4] 的存储地址为Oxf8b82140 X[9][9] 的存储地址为 Oxf8b8221c ,则 X[7][7] 的存储地址为( )

A、Oxf8b821c4 B、Oxf8b821a6 C、Oxf8b82198 D、Oxf8b821c0

4、下列代码运行后的结果是什么( )

#include<stdio.h>
int main()
{
	char a = 'a', b;//1
	printf("%c,", ++a);//2
	printf("%c\n", b = a++);//3
	return 0;
}

A、b,b       B、b,c        C、a,b         D、a,c 

c语言每日一练(7)-LMLPHP 5、求函数返回值,传入 -1 ,则在64位机器上函数返回( )

int func(int x)
{
int count = 0;
while (x)
{
count++;
x = x&(x - 1);//与运算
} 
return count;
}

A、死循环      B、64       C、32        D、16

c语言每日一练(7)-LMLPHP

编程题1:

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

c语言每日一练(7)-LMLPHP

int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize){
int i=0;*returnSize=0;
int*new=(int*)malloc(sizeof(int)*numsSize);
//创建数组
for(i=0;i<numsSize;i++)
{
    int tmp=abs(nums[i]);
    //下标不能为负数
    tmp-=1;
    //因为是1到n的范围,对应的下标减1才能得到
    nums[tmp]=-abs(nums[tmp]);
    //把对应下标变为负数,用绝对值避免负负得正
}
for(i=0;i<numsSize;i++)
{
    if(nums[i]>0)
    {
        new[*returnSize]=i+1;
       //+1得对应的位置
        (*returnSize)++;
    }
}
return new;
//返回数组
}

 编程题2:

 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

c语言每日一练(7)-LMLPHP

int findMaxConsecutiveOnes(int* nums, int numsSize){
int i=0;int count=0;int max=0;
for(i=0;i<numsSize;i++)
{
    if(nums[i]==1)
    {
        count++;
    }
    else
    {
        max=max>count?max:count;
        //比较当前连续的次数和之前连续的次数,大的赋值给max
        count=0;
    }
}
max=max>count?max:count;
//出来之后再判定一次,避免漏判
return max;
}

  好了,今天的练习到这里就结束了,感谢各位友友的来访,祝各位友友前程似锦O(∩_∩)O

 

08-14 18:14