C语言问题急

11. 若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是
(3分)
A、 B、 C、 D、 F、
A、i=*p;
B、p*=*&j;
C、i=&j;
D、 i=**p;
F、

12. 若有以下定义和语句:
int s[4][5],(*ps)[5];
ps=s;
则对s数组元素的正确引用形式是

(3分)
A、 B、 C、 D、 F、
A、 ps+1
B、 *(ps+3)
C、 ps[0][2]
D、*(ps+1)+3
F、

13. 在说明语句:int *f();中,标识符f代表的是
(3分)
A、 B、 C、 D、 F、
A、一个用于指向整型数据的指针变量
B、一个用于指向一维数组的行指针
C、一个用于指向函数的指针变量
D、一个返回值为指针型的函数名
F、

14. 不合法的main函数命令行参数表示形式是

(3分)
A、 B、 C、 D、 F、
A、main(int a,char *c[])
B、main(int arc,char **arv)
C、main(int argc,char *argv)
D、main(int argv,char *argc[])
F、

16. 下列程序的输出结果是
main()
{ char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf("%d",*--p);
}(3分)
A、 B、 C、 D、 F、
A、非法
B、a[4]的地址
C、5
D、3
F、

17. 假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是
(3分)
A、 B、 C、 D、 F、
A、free(q); p->next=q->next;
B、(*p).next=(*q).next; free(q);
C、 q=(*q).next; (*p).next=q; free(q);
D、q=q->next; p->next=q; p=p->next; free(p);
F、

18. 以下函数返回a所指数组中最小的值所在的下标值
fun(int *a, int n)
{ int i,j=0,p;
p=j;
for(i=j;iif(a[i]return(p);
}
在下划线处应填入的是
(3分)
A、 B、 C、 D、 F、
A、 i=p
B、a[p]=a[i]
C、 p=j
D、 p=i
F、

19. 有如下说明
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是

(3分)
A、 B、 C、 D、 F、
A、*P+9
B、*(P+8)
C、*P+=9
D、P+8
火急答第一的加分

哈哈,又是仪起啊....学习好认真啊,呵呵,都都第二次给你做试题了,上次好象是做的前10个是不,嘿嘿,原来没发全

11.没有答案,你把具体的写出来我给你答案,可以发消息给我

12.选择D,是用一维指针数组来处理二维数组的,我们知道,数组可以用指针来操作也可以用数组元素下标来操作,这里是用指针来操作的,因为它是二维数组,所以就需要用一维指针数组来操作,或者用数组元素下标来操作,如果是处理一维数组,就可以直接定义个指针来操作了,这里因为是处理二维数组,所以用的是一维指针数组来处理的,指针数组的定义方式是这样的
比如:int a[N][M];
定义与之对应的一维指针数组应该为int *ptr[M];具体你可以仔细看看书,其他的不对

13.D
int *f();和int (*f)();二者是区别很大的
前者是定义一个函数,该函数返回类型为int *类型.书上叫指针函数
重点放在函数,而指针是修饰函数的,表明它定义的是一个函数
后者叫函数指针,他是函数指针的定义,表明定义一个指针f,该指针是一个指向函数的指针
14.C
16.B
你要知道,a是数组的首地址,实际也就是个指针,给指针加5,实际就是对指针进行运算,使指针向后移动,从而改变了指针的指向,然后由于是前缀加,所以还是选这个
17.书上应该有的,也没给图,不过你仔细看下书应该知道了
18.for(i=j;iif(a[i]return(p); 这是什么啊,好象没写全
19.B
等价于*(a+8),现在看到了把,其实数组名就相当于一个指针
你使用
int a[5]={1,2,3,4,5};
int *p=a;
实际上,这里数组名就等价于指针p的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-05-16
11,你的题有问题,应该是”*p=&j;”
选D;
解析:int i, j=2,*p=&i;
指针p指向i的地址
A是把j的地址给i 了 ;
B C肯定错;
D把*p的值给了i;
所以选D.

12, 选D
*(ps+1)+3指s[1][3]这个元素;
其他都有错;
13,选D
int * f();
意思是这个函数返回一个整形指针;
14,选C
char *argv是一个字符串指针;
16,选C
main()
{ char a[10]= {9,8,7,6,5,4,3,2,1,0},*p=a+5; //p=a[5];
printf("%d",*--p); //*--p=a[4];
}
输出 5;
19,选B
A C都表示a[9]=10;
B *(P+8) =a[8]=9;
所以选B.
第2个回答  2008-05-06
11 B答案是否应为 *p=*&j
12 C
13 D
14 C
16 C
17 图何在?
18 下划线?
19 B
第3个回答  2008-05-06
11:A
12:D
13:D
14:C
16:C
17&18图没,又没清楚题目;
19:B
第4个回答  2008-05-06
C D C B C 17、18题目不清 B