VIL.指针 1.有四组对指针变量进行操作的语句,以下判断正确的选项是() 1)int *p,*q;q-p; int a,*p,*q;p=q=&a; 2)int a,*p,*q;q=&a;p=*q; int a=20,*p;*p=a; 3)int a=b-0,*p;p=&a;b=*p; int a=20,*p,*q=&a; *p=*q; 4)inta=20,*p,*q=&a,p=q, int p,*q; q=&p; A.1正确,234不正确 B.14正确,23不正确 C.3正确,124不正确 D.以上结论都不正确 2.下面判断正确的是() A.char*a=”china”,等价于char*a,*a=”china'”, B.char str[10]={“china"};等价于char str[10l,str0={china”}; C.char*s=”china”,等价于char*s,s=”china”, D.char cl4]=”abc”,d[4]=”abc”,等价于char cl4]=d4]=”abc”; 3.以下正确的程序段是() A.char str[20];scanf("%s",&str); B.char *p; scanf(%s”,p; C.char str[20];scanf(%s",&str[2]); D.char str[20l,*p=str,scanf(“%s”,p[2]), 4.若有定义;inta[2][3]:则对数组a的第i行第j列元素值的正确引用为() A.*(*(a+i)tj) B.(a+i) C.*(a+j) D.*(a+i)+j 5.若有定义:int(*p)[4;则标识符p() A.是一个指向整型变量的指针 B.是一个指针数组名 C.是一个指针,它指向一个含有四个整型元素的一维数组 D.定义不合法 6.以下正确的叙述是 A.C语言允许main函数带形参,且形参个数和形参名称均可由用户指定 B.C语言允许main函数带形参,形参名只能是argc和argv C.当main函数带有形参时,传给形参的值只能从命令行中得到 D.若有说明:main(int argc,char*argv),则形参argc的值必须大于1 7.己有定义int(*p)0:指针p可以() A.代表函数的返回值 B.指向函数的入口地址 C.表示函数的类型
VII. 指针 1. 有四组对指针变量进行操作的语句,以下判断正确的选项是() 1) int *p,*q; q=p; int a, *p,*q; p=q=&a; 2) int a,*p,*q; q=&a; p=*q; int a=20,*p; *p=a; 3) int a=b=0,*p; p=&a; b=*p; int a=20,*p,*q=&a; *p=*q; 4) int a=20,*p,*q=&a; p=q; int p,*q; q=&p; A. 1 正确,234 不正确 B. 14 正确,23 不正确 C. 3 正确,124 不正确 D. 以上结论都不正确 2. 下面判断正确的是() A. char *a=”china”;等价于 char *a; *a=”china”; B. char str[10]={“china”};等价于 char str[10]; str[]={“china”}; C. char *s=”china”;等价于 char *s; s=”china”; D. char c[4]=”abc”, d[4]=”abc”;等价于 char c[4]=d[4]=”abc”; 3. 以下正确的程序段是() A. char str[20]; scanf(“%s”,&str); B. char *p; scanf(“%s”,p); C. char str[20]; scanf(“%s”,&str[2]); D. char str[20], *p=str; scanf(“%s”,p[2]); 4. 若有定义;int a[2][3];则对数组 a 的第 i 行第 j 列元素值的正确引用为() A. *(*(a+i)+j) B. (a+i) C. *(a+j) D. *(a+i)+j 5. 若有定义:int (*p)[4]; 则标识符 p() A. 是一个指向整型变量的指针 B.是一个指针数组名 C.是一个指针,它指向一个含有四个整型元素的一维数组 D. 定义不合法 6. 以下正确的叙述是 A. C 语言允许 main 函数带形参,且形参个数和形参名称均可由用户指定 B. C 语言允许 main 函数带形参,形参名只能是 argc 和 argv C.当 main 函数带有形参时,传给形参的值只能从命令行中得到 D. 若有说明:main(int argc,char *argv),则形参 argc 的值必须大于 1 7. 已有定义 int (*p)();指针 p 可以() A. 代表函数的返回值 B.指向函数的入口地址 C.表示函数的类型
D.表示函数返回值的类型 8.用最少的辅助存储单元将数组中的个数颠倒顺序,仍然存放再原来的数组中(要求用 指针表示数组元素) 9. 编写整数的四则运算程序dd,它计算来自命令行的逆波兰表达式(两操作数在前,运 算符在后)。例如,命令行为add23+4*,则计算(2+30*4;又如,命令行为add234+*,则 计算2*(3+4). l0.下面findmax函数将计算数组中最大元素及其下标值和地址值,请编写*findmax()函数 #include int*findmax(int *s.int t.int *k) { } main() {inta10={12,23,34,45,56,67,78,89,11.22},k*add: add=findmax(a,10.&k): printf(%d,%d,%o\n",a[k],k,add);
D. 表示函数返回值的类型 8. 用最少的辅助存储单元将数组中的 n 个数颠倒顺序,仍然存放再原来的数组中(要求用 指针表示数组元素) 9. 编写整数的四则运算程序 add,它计算来自命令行的逆波兰表达式(两操作数在前,运 算符在后)。例如,命令行为 add 23+4*,则计算(2+30*4;又如,命令行为 add 234+*,则 计算 2*(3+4). 10. 下面 findmax 函数将计算数组中最大元素及其下标值和地址值,请编写*findmax()函数 #include int* findmax(int *s,int t,int *k) { } main() {int a[10]={12,23,34,45,56,67,78,89,11,22},k,*add; add=findmax(a,10,&k); printf(“%d,%d,%o\n”,a[k],k,add); }