微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > C语言试题大全四

C语言试题大全四

时间:11-24 来源:互联网 点击:
1.分析输出结果

int arr[] = {6,7,8,9,10};
int *ptr = arr;
*(ptr++)+=123;
printf(“ %d %d ”, *ptr, *(++ptr));

输出:8 8
过程:对于*(ptr++)+=123;先做加法6+123,然后++,指针指向7;对于printf(“ %d %d ”, *ptr, *(++ptr));从后往前执行,指针先++,指向8,然后输出8,紧接着再输出8

2 分析输出结果
void g(int**);
int main()
{
int line[10],i;
int *p=line;

for (i=0;i<10;i++)
{
*p=i;
g(&p); //数组对应的值加1
}
for(i=0;i<10;i++)
printf("%d",line[i]);
return 0;
}

void g(int**p)
{
(**p)++;
(*p)++;//
}

输出:
1
2
3
4
5
6
7
8
9
10

3 用递归算法判断数组a[N]是否为一个递增数组。

答案:
递归的方法,记录当前最大的,并且判断当前的是否比这个还大,大则继续,否则返回false结束:
bool fun( int a[], int n )
{
if( n= =1 )
return true;
if( n= =2 )
return a[n-1] >= a[n-2];
return fun( a,n-1) && ( a[n-1] >= a[n-2] );
}


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top