非线性叙事的反恐电影:几道C的题

来源:百度文库 编辑:高校问答 时间:2024/04/28 22:05:48
下列语句定义正确的是:(d)
A INT A[1][4]={1,2,3,4,5};
B FLOAT X[3][]={{1},{2},{3}};
C LONG B[2][3]={{1},{1,2},{1,2,3}};
D DOUBLE Y[][3]={0};

执行下列程序后y的值为(b)
static int a[]={1,3,5,7,9};
int y,x,*ptr;
y=1;
ptr=&a[1];
for(x=0;x<3;x++)
y*=*(prt+x);
a:105 b:15 c:945 d:无确切值

若有以下定义:(b)
int a[]={1,2,3,4,5,6,7,8,9,10],*p=a;
则值为三的表达式是:
A;p+=2,*(p++);
B;p+=2,*++p;
C;p+=3,*p++;
D;p+=2,++*p;

以下程序,若第一个printf输出是194,则第二个printf输出的结果为:(d)
main()
int a[]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n",p+9);
}
A212 B204 C1a4 D1a6

若有定义语句(d)
intc[4][5],(*cp)[5];cp=c;
则对c数组正确地引用是(D)
A;cp+1
B;*(cp+3)
C;*(cp+1)+3
D;*(*cp+2)

若有定义;
main
{ int i,x[3][3]={1,3,5,7,9,11,13,15,17,19,21,23};
int(*p)[4]=,i,j,k=0;
for(i=0;i<3;i++)
for(j=0;j<2;i++)
k+=*(*(p+i)+j);
printf("%d\n",k);
}
其输出结果是(a)
A 60
B 68
C 99
D 108
要过程,谢谢谢谢谢谢!!
不好意思,又写错了.
第六题定义为
main
{ int i, a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int(*p)[4]=a,i,j,k=0;
for......
.
.
.
.
题见长征出版社<全国计算机等级考试二级C考点与题解>答案也可能有问题
2,4,6我用tuebo c2.0做过试验答案正确,就是不太明白,.谢谢各位了
!

第一题 A项超出定义数组范围
B项X[3][] 错误定义
C项B[2][3]两行三列
D项正确
第二题
ptr=&a[1]; 则ptr指向数组a[1]的地址为3
for(x=0;x<3;x++)
做a[1]+a[2]+a[3]
则等与15
第三题
*p=a;p指向a的首地址
p+=2,p指向a[2];
*++p; * ++为同级运算符方向自右向左
p先自增1再取值为3
第四题
p指向a的首地址
printf("%x\n",p);//打印p 的16进制为194
printf("%x\n",p+9);//p指向 a[9]
数组为正型变量,每个元素占用两个字节
一共加18个字节,16进制为12,加
上194 等与1a6(H)
第五题
不会做了~~~
(*cp)[5];是指针型数组
第六题
int(*p)[4]=a
a 是什么????

呵呵,楼上的高手都解释的差不多了,小弟就说说第五题吧
CP是一个指向数组的指针,该数组包含5个int型元素。
CP+1:是一个指针,类型和CP是相同的,指向c[1]
*(CP+3):是一个指针,类型是int *;指向c[3][0]
*(cp+1)+3:是一个指针,类型是int *;指向c[1][3]
*(*cp+2):是int型的,该表达式等于c[2][0]