9道C小题目,能告诉我原因吗

来源:百度知道 编辑:UC知道 时间:2024/07/02 23:08:55
10.若有以下定义,则对a数组元素的正确引用是_________.
int a[5],*p=a;
a)*&a[5] b)a+2 c)*(p+5) d)*(a+2)

11.若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为______.
a)*(a[i]+j) b)(a+i) c)*(a+j) d)a[i]+j

12.若有以下定义,则p+5表示_______.
int a[10],*p=a;
a)元素a[5]的地址 b)元素a[5]的值
c)元素a[6]的地址 d)元素a[6]的值
1.以下程序的功能是:通过指针操作,找出三个整数中的最小值并输出。
请填空。
#include "stdlib.h"
main()
{int *a,*b,*c,num,x,y,z;
a=&x;b=&y;c=&z;
printf("输入3个整数:");
scanf("%d%d%d",a,b,c);
printf("%d,%d,%d\n",*a,*b,*c);
num=*a;
if(*a>*b)______;
if(num>*c)______;
printf("输出最小整数:%d\n",num);
}

2.下面程序段的运行结果是________.
char s[80],*sp="HELLO!";
sp=strcpy(s,sp);
s[0]='h';
puts(sp);

3.下面程序段的运行结果是________.
char str[]="abc\0def\0ghi"

10.D A和C越界了,B是地址明显不对
11.D 你看看二维数组就知道了
12.A p就是a的首地址,从p[0]开始
1. num=*b num=*c 也就是老假设num是最小的,然后挨个比较,不对就交换
2. hELLO! 直接sp直接copy到s中,s的地址赋予sp,输出sp
3. ef p+5指向是e,然后从p+5处输出,遇'\0'结束,所以是ef
4. p1++ *p2 ruturn 0
第一个空是把p1指向实参的最后,第二个空是把p2中的字符copy到p1中
第三个空,你定义conj函数时没定义类型,系统默认为int型,最后应该返回一个整型值,其实这题有问题的
5. 4 12 p指向a的首地址,然后计算就可以了
6. 8 8 两个含义一样,都是a[1][0],二维数组是挨个初始化的

具体不细说了,不想打字了,不明白发消息问吧
建议你把指针和数组好好看看,很重要的,你的这些题都和数组指针有关

请教楼上的:

11.题为什么选D呢?a[i]是数组元素不是地址啊?