2006年4月全国计算机等级考试二级C语言考前密卷1
来源:优易学  2011-11-20 15:27:03   【优易学:中国教育考试门户网】   资料下载   IT书店

项d:!((a(22)以下程序运行后,输出结果是_________。
   main()
   {
   char*d[]。{"ab","cde"};
   printf("%x",d[1]);
   }
   a)cde           b)字符c的ascii码值
   c)字符c的地址       d)出错
   答案:c
   评析:指针数组中的每一个元素都相当于一个指针变量。一维指针数组的定义形式为:类型名+数组名[数组长度],在本题main函数中定义指针数组d,它有两个元素,其初值分别是"ab"、"cde"的首地址。db]的值为"cde"的首地址。%x是指以十六进制数形式输出整数。
(23)设有如下程序
   #include
   main()
   {
   int**k,*j,i=100;
   j=&i; k=&j;
   printf("%d\n",**k);
   }
   上述程序的输出结果是________。
   a)运行错误        b) 100 
   c)i的地址        d)j的地址
   答案:b
   评析:j=&i,j的值就是i的地址,*j=100,将j的地址赋给k,这时*k=j,那么,**k=*j,而1=100,所以**k=100,最后的打印结果应当为100。
(24)设有以下语句,其中不是对a数组元素的正确引用的是:_______(其中o≤i<10)
   int a=[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;
   a)a[p-a]         b)(&a[i])
   c)p[i]          d)*(*(a+i))
   答案:d
   评析:观察程序可知,a实际上就是数组a的首地址,所以"+(a+i)"表示的就是数组a中的第i个元素的值,进而,我们可以知道+(t(a+i))必然不是对a数组元素的正确引用。
(25)以下程序运行后,输出结果为________。
   main()
   {
   int a[2][3]={1,3,5,7,9,1 1},*s[2],**pp,*p;
   s[0]=a[0],s[1]=a[1];
   pp=s;
   p=(int*)malloc(sizeof(int));
   **pp=s[1][1];
   p=*pp;
   printf("%d\n",*p);
   }
   a)l            b)7
   c)9            d)1l
   答案:c
   评析:s是一个含有两个元素的指针数组,pp是一个指向指针变量的指针,s[o]是指向二维数组a行下标为0的元素的首地址,即a[0儿0]的地址,s[1]为a[1][0]的地址。pp的值为s[o]的地址。**pp=s[1][l]后,a[0][0]的值将被赋值为all][l]的值,执行p=*pp;后,p中将是s[0]的值,最后的输出语句将输出地址s[0]所指向的数据,即a[0][o]。

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训