C指针函数习题精编版

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

C指针函数习题

文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

C++指针函数习题一、选择题

1.以下程序的运行结果是()。

sub(intx,inty,int*z){ *z=y-x;}

voidmain()

{ inta,b;

sub(10,5,&a);

sub(7,a,&b);

cout<

}

A)5,2B)-5,-2C)-5,-12D)5,-2

2.函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则()。A)称为函数的直接递归调用B)称为函数的间接递归调用C)称为函数的循环调用D)C语言中不允许这样的递归调用

3.变量的指针,其含义是指该变量的()。

A)地址B)值C)名D)一个标志

4.已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是()。

A)k=*ptr1+*ptr2;B)ptr2=k;C)ptr1=ptr2;D)k=*ptr1*(*ptr2);

5.(去掉)若有说明语句:double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是

A)*p=&a;scanf(“%lf”,p);B)*p=&a;scanf(“%f”,p);

C)p=&a;scanf(“%lf”,*p);D)p=&a;scanf(“%lf”,p);

6.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是()。

A)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point

7.设char*s="\ta\103bc";则指针变量s指向的字符串所占的字节数是()。

A)9B)5C)6D)7

8.下面程序段的运行结果是()。

char*s="abcde";s+=2;cout<

A)cdeB)字符'c'C)字符'c'的地址D)无确定的输出结果

9.设有下面的程序段:则下列叙述正确的是()。

chars[]="china";char*p;p=s;

A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等

C)*p与s[0]相等D)s数组长度和p所指向的字符串长度相等

10.若有定义inta[5],*p=a;则对a数组元素的正确引用是()。

A)*&a[5]B)a+2C)*(p+5)D)*(a+2)

11.若已定义chars[10];则在下面表达式中不表示s[1]的地址的是()。

A)s+1B)s++C)&s[0]+1D)&s[1]

12.下面程序的运行结果是()。

#include<>

#include<>

intmain()

{ char*s1="AbDeG";

char*s2="Abdeg";

s1+=2;s2+=2;

cout<

}

A)负数B)正数C)零D)不确定的值

13.若有定义:int*p[4];则标识符p()。

A)是一个指向整型变量的指针B)是一个指针数组名

C)是一个指针,它指向一个含有四个整型元素的一维数组D)说明不合法

14.若有inta[10],*p=a;则p+5表示()。

A)元素a[5]的地址B)元素a[5]的值C)元素a[6]的地址D)元素a[6]的值

15.设有以下定义:则正确的叙述是()。

char*cc[2]={"1234","5678"};

A)cc数组的两个元素中各自存放了字符串"1234"和"5678"的首地址

B)cc数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

C)cc是指针变量,它指向含有两个数组元素的字符型一维数组

D)cc数组元素的值分别是"1234"和"5678"

16.若有以下定义,则能够正确表示数组元素x[1][2]的表达式是()。

intx[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int*p=&x[0][0];

A)p[1][2]B)(*p+1)+2C)p+5D)p[5]

17.语句int(*ptr)();的含义是()。

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

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

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

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

18.已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是()。

A)p=max;B)*p=max;C)p=max(a,b);D)*p=max(a,b);

19.下面程序段的运行结果是()。

chara[]="language",*p;p=a;

while(*p!='u'){cout<<(*p-32);p++;}

A)LANGUAGEB)languageC)LANGD)language

20.关于语句int*ptr();以下说法正确的是()。

A)ptr是一个指针变量

B)*ptr是一个函数名

C)这个语句是定义函数的语句

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

21.以下叙述中正确的是()。

A)局部变量说明为static存储类,其生存期将得到延长B)全局变量说明为

static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同

22.有以下程序,程序运行后的输出结果是()。

A)64,28B)4,4C)4,3D)64,64

#include<>

#definef(x)(x*x)

intmain()

{inti1,i2;

i1=f(8)/f(4);i2=f(4+4)/f(2+2);

相关文档
最新文档