当前位置:IT认证>计算机二级

问题:

[单选] 有以下程序:
#include<stdio.h>
main()
{int a[J一{1,2,3,4,5,6,7,8,9,10,11,12),*P=a
+5;
*q=NULL;+q=*(p+5);
printf(”%d%d\n”,*q,*q);
}
程序运行后的输出结果是(  )。

A . 运后后报错
B . 6 6
C . 6 11
D . 5 10

下列关于定点数与浮点数的叙述中错误的是(  )。 在实数的浮点表示中,阶码是一个整数。 整数是实数的特例,也可以用浮点数表示。 实数的补码是其对应的反码在最后一位加1。 相同长度的浮点数和定点数,前者可表示数的范围要大于后者。 标准库函数fgets(S,n,file)的功能是(  )。 从文件file中读取长度为n的字符串存入字符数组s中。 从文件file中读取长度不超过n-1个字符的字符串放到字符数组S中。 从文件file中读到n个字符串存入字符数组s中。 从文件file中读取长度为n-1个字符的字符串存人字符数组s中。 下面程序段的输出结果是(  )。int i=32770:printf(”%d\n”,i); 32769。 32767。 -32766。 输出不确定数。 若有定义“double a;”,则正确的输入语句是(  )。 scan{(”%if”,a);。 scanf(”%f”,&a);。 scan{(”%If”,&a)。 scan{(”%le”,&a);。 #define能作简单的替代,用宏来替代计算多项式5*X*x 4-5*x+5的值的函数f,正确的宏定义语句为(  )。 #define f(x)  5*x*x+5*X+5。 #define f5*x*x+5*x+5。 #define f(a)  (5*a”a+5*a+5)。 #define(5*x*x+5+x+5)  f(x)。 有以下程序:
#include<stdio.h>
main()
{int a[J一{1,2,3,4,5,6,7,8,9,10,11,12),*P=a
+5;
*q=NULL;+q=*(p+5);
printf(”%d%d\n”,*q,*q);
}
程序运行后的输出结果是(  )。
参考答案:

  参考解析

【解析】本题中首先定义了一个一维数组。并初始化,由于定义该数组的时候省略了长度,因此该数组的长度为初始化时候赋初值的个数即为12。数组名a代表数组的首地址,所以*p-a+5语句使得P指向数组的第6个元素,而在程序中定义了一个指针q并让它指向空,实际上程序并没有在内存中为指针q开辟存储空间,这样给q赋值不允许的,故该程序运行后报错。

在线 客服