C语言理论题
第2题 C:s是一个指向int类型的指针变量,没赋初值的话,*s无意义,故A错,在s没指向一个数组之前,s[0]也是没有意义的,故B错,a是数组a[]的地址,故D错,选C,把a数组的第二个元素的地址赋给指针变量s 第3题 B:声明指针变量p时给他赋值&a[0]+1,故p指向a数组的第二个元素,所以...
1.设变量定义为"int a[2]={1,3},*p=&a[0]+1;"则*p的值是___
int a[2]={1,3},*p=&a[0]+1 首先执行&a[0]+1,既把a[0]的地址加一个sizeof(int)个字节,也就是a[1]所以*p=a[1]=3
设变量定义为“int a[2]={1,3}, *p=&a[0]+1;”,则*p的值是___。具体...
p的值是3。第一条输出语句:printf("%s*p=&a[0]+1 相当于 int *p; p=a+1; 所以答案*p=a[1]=3。&a[0] 就是a数组的首地址 即相当于a 。 a+1就相当于指针下移一个单位。inta[2]={1,3}即a[0]=1,a[1]=3。p=&a[0]+1 这是一个指针变量,*p=&a[0]+1就是a[0]的地...
设有变量定义 int a[3][2]={1,2,3,4,5,6}, (*p)[2]=a;表达式**(p+2...
(*p)[2]=a表示将p定义为一个指向含2个元素的一维数组的指针变量,那么二维数组就可以看作是一维数组a[3],其中每一个元素都是一个一维数组,a[1]={1,2},a[2]={3,4},a[3]={5,6};则p+2就指向了a[3],*(p+2)是a[3]的首地址,**(p+2)就是a[3]的首元素,即为5。
int a={1,2,3,4}; int *p=(int *)((int)a+1); P指向了什么?
1. int a = {}; 貌似应该是int a[] = {};2. "(int)a",已经把a的地址强转成int型数字(32bit),所以“((int)a+1); ”实际指向了整个数组内存块的第二个地址,即a[0]的第二个字节。3.这种用法比较危险,特别是在某些特殊处理器上,如果对32bit(int)变量的访问,访问地址不是4...
自考“C语言程序设计”模拟试题一
{int a=5,b=-1,c; c=adds(a,b); printf(“%d”,c); c=adds(a,b); printf(“%d\\n”,c); } int adds(int x,int y) {static int m=0,n=3; n*=++m; m=n%x+y++; return(m); } A. 2,3 B. 2,2 C. 3,2 D. 2,4 11、下列描述中不正确的是( )。 A. 字符型数组中可能...
全国计算机等级考试三级笔试试题及答案?
A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;(16) 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b\/b的值是( )。A)6.500000 B)6 C) 5.500000 D) 6.000000(17) 已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的...
C语言选择题
46.设有语句int a=3;则执行语句a+ =a*a;后,变量a的值是( D)。A.3 B.9 C.12 D.18 47.若有定义int a=7; float x=2.5, y = 4.7; 则表达式x+a%3*(int) (x + y) %2\/4的值是( D)。A.2.750000 B.0.00000 C.3.500000 D.2.500000 48.对y在[3,23]...
C++经典面试问题
把一个指针变量的值赋予指向相同类型变量的另一个指针变量(int a; int *pa=&a; int *pb; pb=pa; ) 把数组的首地址赋予指向数组的指针变量(int a[5],*pa; pa=a; 也可写为:pa=&a[0];) 如果给指针加1或减1 ,实际上是加上或减去指针所指向的数据类型大小。 当给指针加上一个整数值或减去一个...
设变量定义为int a[3]=|{1,4,7},*p=&a[2],则*--p的值
4 *p=&a[2]即 *p==7 这时 *--p先让p后退一个为止,然后给他赋值 所以*--p==a[1]==4