可否解释这两道题,对的为什么对,错的又是为什么错的??

  1. 设有 double x[5],*p=x;则 scanf 能正确读数据给 x[0]的格式是( C)。
    A)("%f",x); B)("%lf",*x); C)("%lf",p); D)("%lf",p[0]);

  2. 有定义:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是( A)。
    A)p=s[0]; B)p=k; C)p=s; D)k=s;

5.A 应该用%lf B x是指针,*x是x[0](相当于没加&)  C  p=x 相当于("%lf",x)可以  D 没有加&
6.A 指针p指向一维数组 B (*k)[3] 是指一个指针,指向char[3]数组,p与k不同级  C p与s不同级  D s如果是s[10][3]可以
参考
char *a[3] 一个大小是3的数组,数组的元素是 char *指针
char (*a)[3] 一个指针,指向的是char[3]数组
后者用于函数传参
例如
void fun(char (*a)[3]);
char a[10][3];
fun(a);