标题:[求助]C语言试题解答。
只看楼主
冰霜圣诞节
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-9-1
结帖率:100%
已结贴  问题点数:20 回复次数:11 
[求助]C语言试题解答。
17、           若有说明:int a[3][4];则对a数组元素的正确引用是______。
A) a[2][4]        B) a[1,3]       C) a[1+1][0]         D) a(2)(1)


 以下程序的输出的结果是
main( )
{ int i;
for (i=1;i<=2;i++)  incre();
}
incre()
{ static   int  x=1;
x*=x+1;
printf("%d",x);
}


34、           有如下定义
struct person{char name[9]; int age;};
strict person class[10]={"Johu", 17,
"Paul", 19,
"Mary", 18,
"Adam”, 16,};
根据上述定义,能输出字母M的语句是
A) prinft("%c\n",class[3].mane);
B) pfintf("%c\n",class[3].name[1]);
C) prinft("%c\n",class[2].name[1])
D) printf("%c\n",class[2].name[0]);


35、           以下程序的输出结果是哪一项?
#include <stdio.h>
main()
{
   int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}, *p[4],i;
   for(i=0;i<4;i++)
      p[i]=&a[i*3];
   printf("%d\n",p[3][2]);
}
    A. 输出项不合法    B. 6
    C. 8               D. 12
C语言菜鸟,望大虾多多支持,多多帮助,谢谢!!
搜索更多相关主题的帖子: C语言 试题 解答 
2010-09-01 17:55
功夫熊猫
Rank: 2
等 级:论坛游民
帖 子:54
专家分:30
注 册:2010-7-14
得分:5 
c,26,d,12
2010-09-01 18:17
冰霜圣诞节
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-9-1
得分:0 
回复 2楼 功夫熊猫
请给我详细解答一下,谢谢
2010-09-01 19:20
冰霜圣诞节
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-9-1
得分:0 
请高手详细解答一下啊,谢谢!!!!!!!
2010-09-01 19:21
S_12s
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:110
专家分:670
注 册:2010-7-21
得分:5 
第一道:A中数组的下标是从0开始的(即a[x][y]中下标y是0-3,[]中可以是表达式,其他没什么说了……
第二道:因为x定义成static类型,意思是函数调用结束后,不释放x;第一次调用incre()后,x=2,先输出2,再次调用incre()时,x是为2的,所以执行x*=x+1后,x=6,输出6;
第 三道:strict person class[10]= {"Johu", 17,"Paul", 19,"Mary", 18,"Adam”, 16,};是对数组中的前5个元素赋值(即 class[0].name="Johu",class[0].age=17,依此下去);
第四道:*p[4]是指针数组,for(i=0;i<4;i++) p[i]=&a[i*3];将a转换成二维数组的形式存储在p中,
p中的数据:
1,2,3,
4,5,6,
7,8,9,
10,11,12
2010-09-01 19:44
失落黑子
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2010-9-1
得分:5 
楼上头像真强
2010-09-01 21:11
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
得分:5 
以下是引用S_12s在2010-9-1 19:44:10的发言:

第一道:A中数组的下标是从0开始的(即a[x][y]中下标y是0-3,[]中可以是表达式,其他没什么说了……
第二道:因为x定义成static类型,意思是函数调用结束后,不释放x;第一次调用incre()后,x=2,先输出2,再次调用incre()时,x是为2的,所以执行x*=x+1后,x=6,输出6;
第 三道:strict person class[10]= {"Johu", 17,"Paul", 19,"Mary", 18,"Adam”, 16,};是对数组中的前5个元素赋值(即 class[0].name="Johu",class[0].age=17,依此下去);
第四道:*p[4]是指针数组,for(i=0;i<4;i++) p=&a;将a转换成二维数组的形式存储在p中,
p中的数据:
1,2,3,
4,5,6,
7,8,9,
10,11,12
我想知道 喜洋洋到底在干什么?
BZ别删我贴
我会回来的。。。。。。。

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-09-01 21:14
冰霜圣诞节
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-9-1
得分:0 
回复 5楼 S_12s
谢谢。。。。。请具体跟我说说最后一题中for(i=0;i<4;i++)
      p[i]=&a[i*3];
具体怎么通过循环让A中的数据放在P中的,那个I*3怎么用的,我没怎么看懂,谢谢!!!
2010-09-01 21:17
功夫熊猫
Rank: 2
等 级:论坛游民
帖 子:54
专家分:30
注 册:2010-7-14
得分:0 
第四题p中的数据应该是:
1,2,3,4,5,6,7,8,9,10,11,12
4,5,6,7,8,9,10,11,12
10,11,12

2010-09-01 21:22
S_12s
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:110
专家分:670
注 册:2010-7-21
得分:0 
首先你要明白,p[i]里面存放的是地址;接着就是赋值了,i=0时,就将a[0]的地址赋值给p[0]了,如此下去……
p[3]就是a[9]的地址,你把a[9]后的三个数当作一个数组的话(10,11,12),那p[3]就是数组的首地址(假设用S来代替p[3]),
那p[3][2]就是S[2]了,就是12……
2010-09-01 21:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-317436-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018075 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved