1、第十章 指针问题与思考一、选择题1. 变量的指针,其含义是指该变量的_b_.a)值 b)地址 c)名 d)一个标志2. 若有说明;i nt *p,m=5,n;以下正确的程序段的是_d_.a)p= b)p=scanf(“%d“, scanf(“%d“,*p);c)scanf(“%d“, d)p=*p=n; *p=m;3. 若有以下定义,则对 a 数组元素的正确引用是_d_.int a5,*p=a;a) *s+=2;printf(“%d“,s);a)cde b)字符c c)字符c的地址 d)无确定的输出结果6. 以下正确的程序段是_C_.a)char str20; b)char *p;scanf(
2、“%s“, scanf(“%s“,p);c)char str20; d)char str20,*p=str;scanf(“%s“, scanf(“%s“,p2);7. 若有说明语句char a=“It is mine“;char *p=“It is mine“;则以下不正确的叙述是_D_.a)a+1 表示的是字符 t 的地址b)p 指向另外的字符串时,字符串的长度不受限制c)p 变量中存放的地址值可以改变d)a 中只能存放 10 个字符8. 下面程序的运行结果是_B_.#include #include main() char *s1=“AbDeG“;char *s2=“AbdEg“;s1+=
3、2;s2+=2;printf(“%dn“,strcmp(s1,s2);a)正数 b)负数 c)零 d)不确定的值9. 下面程序的运行结果是_AC_.#include #include fun(char *w,int n)char t,*s1,*s2;s1=w;s2=w+n-1;while(s1*b) 【1】 num=*b ;if(num*c) 【2】num-*c ;printf(“输出最小整数: %dn“,num);2. 下面程序段的运行结果是_hELLO!_.char s80,*sp=“HELLO!“;sp=strcpy(s,sp);s0=h;puts(sp);3. 下面程序段的运行结果是_
4、ef_.char str=“abc0def0ghi“,*p=str;printf(“%s“,p+5);若有定义:i nt a=2,4,6,8,10,12,*p=a;则 *(p+1)的值是_4_. *(a+5)的值是 _12_.4. 若有以下定义:int a23=2,4,6,8,10,12;则 a10的值是_. * (*(a+1)+0)的值是_.5. 以下程序将数组 a 中的数据按逆序存放,请填空。#define M 8main()int aM,i,j,t;for(i=0;i=0;j-)printf(“%sn“,*(p-);8. char (*pa)10;则 pa 的类型是:_ 指向一维数组的指
5、针,该数组有 10 个 char 型元素 _。9. 设 int a10, b33;数组元素 a5和 b12分别用指针表示的形式是_*(a+5)_和_。10. 下列程序的功能是在数组中同时查找最大元素下标和最小元素下标,分别存放在 main 函数的变量 max 和 min 中,请填空#include “stdio.h“void find(int *a ,int n ,int *max ,int *min)int i;*max=*min=0;for(i=1;ia*max)【1】 ;else if(ai9) tn=tm; n+;【2】tn=0; ;main() char s100;printf(“n input the original string:“);gets(s);delnum(s);puts(s【3】);