C语言程序设计指针作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言程序设计指针作业

一、选择题

【习题1】变量的指针,其含义是指该变量的________

A)值B)地址

C)名D)一个标志

【习题2】若有语句int *point,a; 则point=&a;中运算符&的含义是_____

A)位与运算B)逻辑与运算

C)取指针内容D)取地址

【习题3】若x是整型变量,pb是整型的指针变量,则正确的赋值表达式是

A) pb=&x B) pb=x; C) *pb=&x; D) *pb=*x

【习题4】下面程序段的运行结果是_________

char *s="abcde";

s+=2;

printf("%d",s);

A)cde B)字符’c’C)字符’c’的地址D)无确定的输出结果【习题5】设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是______

A)c=*p1+*p2; B)p2=c C)p1=p2 D)c=*p1*(*p2);

【习题6】若有定义语句

char a[]="It is mine";

char *p="It is mine";

则以下不正确的叙述是________.

A)a+1表示的是字符t的地址

B)p指向另外的字符串时,字符串的长度不受限制

C)p变量中存放的地址值可以改变

D)a中只能存放10个字符

【习题7】若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为___

A)*(a[i]+j) B)(a+i) C)*(a+j) D)a[i]+j

【习题8】设有如下定义:int (*ptr)( );

则以下叙述中正确的是:

A)ptr是指向一维组数的指针变量

B)ptr是指向int型数据的指针变量

C)ptr是指向函数的指针,该函数返回一个int型数据

D)ptr是一个函数名,该函数的返回值是指向int型数据的指针

【习题9】设有定义int (*ptr)[m];其中的标识符ptr是

A)m个指向整型变量的指针

B)指向m个整型变量的函数指针

C)一个指向具有m个整型元素的一维数组的指针

D)具有m个指针元素的一维指针数组,每个元素都只能指向整型量

【习题10】若要用下面的程序片段使指针变量p指向一个存储整型变量的动态

存储单元:int *p;

p=__________ malloc( sizeof(int));

则应填入

A) int B) int * C) (*int) D) (int *)

二、阅读下列程序,填空或给出程序运行结果。

【习题11】以下程序的功能是:通过指针操作,找出三个整数中的最小值并输出。

#include "stdio.h"

main()

{

int *a,*b,*c,num,x,y,z;

a=&x; b=&y; c=&z;

printf("输入3个整数:");

scanf("%d%d%d",a,b,c);

printf("%d,%d,%d\n",*a,*b,*c);

num=*a;

if (*a>*b) _______;

if (num>*c) _______;

printf("输出最小整数:%d\n",num);

}

【习题12】下面程序的功能是将两个字符串s1和s2连接起来,将s2连接到s1后面。请填空。

#include “stdio.h”

#include “string.h”

main()

{ char s1[80],s2[80];

gets(s1); gets(s2);

conn(s1,s2);

puts(s1);

}

conn(char *p1,char *p2)

{ while(*p1) ______;

while(*p2)

{ *p1=______;

p1++; p2++; }

*p1=’\0’;

}

【习题13】以下程序将数组a中的数据按逆序存放,请填空。

#define M 8

#include “stdio.h”

main()

{ int a[M],i,j,t;

for(i=0;i

scanf("%d",a+i);

i=0;j=M-1;

while(i

{

t=*(a+i);

*(a+i)= _______;

*(______)=t;

i++; j--;

}

for(i=0;i

printf("%3d",*(a+i));

}

【习题14】给出程序运行结果。

#include “stdio.h”

void f(int *x,int *y);

main()

{

int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;

p=a;q=&a[7];

while(p

{ f(p,q);

p++;q--;}

for(i=0;i<8;i++)

printf("%d,",a[i]);

}

void f(int *x,int *y)

{ int t;

t=*x;*x=*y;*y=t;

}

【习题15】给出以下程序的输出结果: #include “stdio.h”

void prt(int *m,int n);

main()

{

int a[]={1,2,3,4,5},i;

prt(a,5);

相关文档
最新文档