2016C语言习题全集及答案:指针01.docVIP

  • 278
  • 0
  • 约5.55千字
  • 约 6页
  • 2017-07-05 发布于江西
  • 举报
2016C语言习题全集及答案:指针01

第七单元 指 针 选择题 1、 若有以下定义和语句,且0≤i10则对数组元素的错误引用是 。 int a[10]={1,2,3,4,5,6,7,8,9,10},*p,i; p=a; A. *(a+i) B. a[p-a] C. p+i D. *(a[i]) 2、 若有定义:int a[3][4]; , 不能表示数组元素a[1][1]。 A. *(a[1]+1) B. *(a[1][1]) C. (*(a+1)[1]) D. *(a+5) 3、 对如下定义,以下说法中正确的是 。 A. char *a[2]={ abcd,ABCD}; B. 数组a的元素值分别为abcd和ABCD C. a是指针变量,它指向含有两个数组元素的字符型数组 D.数组a的两个元素分别存放的是含有4个字符的一维数组的首地址 4、 数组a的两个元素中各自存放了字符’a’、’A’的地址 char *s=\t\\Name\\Address\n; 指针s所指字符串的长度为: 。 A. 说明不合法 B. 19 C. 18 D. 15 5、 分析下面函数,以下说法正确的是 。 swap(int *p1,int *p2) { int *p; *p=*p1; *p1=*p2; *p2=*p; } A. 交换*p1和*p2的值 B. 正确,但无法改变*p1和*p2的值 C. 交换*p1和*p2的地址 D. 可能造成系统故障,因为使用了空指针 6、 设有说明int (*ptr)[M]; 其中ptr是 。 A. M个指向整型变量的指针 B. 指向M个整型变量的函数指针 C. 一个指向具有M个整型元素的一维数组的指针 D. 具有M个指针元素的一维指针数组,每个元素都只能指向整型量 7、 在说明语句:int *f(); 中,标识符代表的是: 。 A. 一个用于指向整型数据的指针变量 B. 一个用于指向一维数组的指针 C. 一个用于指向函数的指针变量 D. 一个返回值为指针型的函数名 8、 若int x ,*pb; ,则正确的赋值表达式是 。 A. pb=x B. pb=x; C. *pb=x; D. *pb=*x 9、 有如下程序段 int *p ,a=10 ,b=1 ; p=a ; a=*p+b ; 执行该程序段后,a 的值为 。 A. 12 B. 11 C. 10 D. 编译出错 10、若有以下定义和语句: double r=99 , *p=r ; *p=r ; 则以下正确的叙述是 。 A. 以下两处的*p 含义相同,都说明给指针变量p 赋值 B. 在double r=99,*p=r;中,把r 的地址赋值给了p 所指的存储单元 C. 语句*p=r;把变量r 的值赋给指针变量p D. 语句*p=r;取变量r 的值放回r 中 11、要求函数的功能是交换x 和y 中的值,且通过正确调用返回交换结果.能正确执行 此功能的函数是 。 A. funa (int *x,int *y) { int *p; *p=*x; *x=*y;*y=*p; } B. fund (int x,int y) { int t; t=x;x=y;y=t; } C. func (int *x,int *y) { *x=*y;*y=*x;} D. fund (int *x,int *y) { *x=*x+*y;*y=*x-*y;*x=*x-*y; } 12、若有说明:long *p ,a;则不能通过scanf 语句正确给输入项读入数据的程序段 是 。 A. *p=a; scanf(%ld,p); B. p=(long *)malloc(8); scanf(%ld,p); C. scanf(%ld,p=a); D. scanf(%ld,a); 13、对于类型相同的两个指针变量之间,不能进行的运算是 。 A. B. = C. + D. - 14、若已定义:int a[9] ,*p=a;并在以后的语句中未改变p 的值,不能表示a[1] 地 址的表达式是 。 A. p+1 B

文档评论(0)

1亿VIP精品文档

相关文档