C语言作业。棒棒忙

2 思考题
1.若要对a进行自减运算,则a应有下面说明 。
A)int p[3]; B)int k; C)char *a[3] D)int b[10];
int *a=p; int *a=&k; int *a=b+1;
2. 以下选项中,对指针变量p的不正确操作是 。
A)int a[3], *p; B)int a[5], *p; C)int a[5]; D)int a[5]
p=&a; p=a; int *p=a=100; int *p1,*p2=a;
*p1=*p2;
3.下面程序段的输出是 。
int a[ ]={2,4,6,8,10,12,14,16,18,20,22,24},*q[4],k;
for (k=01 k<4; k++) q[k]=&a[k*3];
printf(“%d\n”,q[3][0]);
A)8 B)16 C)20 D)输出不合法
4.下面程序的运行结果是 。
main ( )
{ int x[5]={2,4,6,8,10}, *p, **pp ;
p=x , pp = &p ;
printf(“%d”,*(p++));
printf(“%3d”,**pp);
}
A)4 4 B)2 4 C)2 2 D)4 6
5. 若有定义int x[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*p)[3]=x ; 则能够正确表示数组元素x[1][2]的表达式是 。
A)*((*p+1)[2]) B)(*p+1)+2
C)*(*(p+5)) D)*(*(p+1)+2)
6.写出下面程序的运行结果。
func(char *s,char a,int n)
{ int j;
*s=a; j=n ;
while (*s<s[j]) j-- ;
return j;
}
main ( )
{ char c[6] ;
int i ;
for (i=1; i<=5 ; i++) *(c+1)=’A’+i+1;
printf(“%d\n”,fun(c,’E’,5));
}

1、多选?只有C选项的a不能自减,char *a[3]是一个指针数组,a是数组的首地址,是一个常量
2、C int *p=a=100; a是数组a[5]的首地址,是一个地址常量,不能再给它赋值
3、D
4、B
5、D
6、fun(char *s,char a,int n)的功能是从数组s[n+1]的最后一个元素s[n]往前开始遍历查找第一个第一个小于或等于'a'的元素,并返回其下标。c[6]={'a','C','D','E','F','G'},'a' = 'A'+32;
输出:5
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-23
孩子 打好基础 对自己是有好处的追问

- -对这个完全没兴趣,只求过2级。

第2个回答  2012-05-23
装个Turbo c++ ,代码考进去,编译错的,就错的。
第3个回答  2012-05-23
。。
相似回答