C语言第八章 指针

2019-08-20 18:44

第八章 指针

一、选择题

1.变量的指针,其含义是指该变量的 B 。(0级)

A)值 B)地址 C)名 D)一个标志 2.设有说明 int (﹡ptr)[M];其中ptr是 C 。(0级)

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

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

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

D) 具有 M个指针元素的一维指针数组,每个元素都只能指向整型量 3.选择出 i的正确结果 B 。(1级)

int i; char ﹡s=〞a\\045+045\\ˊb〞; for ( i=0;s++;i++); A)5 B)8 C)11 D)12 4.如下程序的执行结果是 C 。(1级) # include

main( ) {int i; char ﹡s=〞a\\\\\\\\\\n 〞; for( i=0; s[i]!=?\\0?;i++) printf(〞%c 〞,﹡(s+i)); }

A)a B)a\\ C)a\\\\ D)a\\\\\\\\ 5.如下程序的执行结果是 B 。(2级) # include

main() { static int a[ ]={1,2,3,4,5,6}; int ﹡p; p=a;

﹡(p+3)+=2; printf(〞%d,%d\\n 〞,﹡p,﹡(p+3)); }

A)1,3 B)1,6 C)3,6 D)1,4 6.如下程序的执行结果是 C 。(2级) # include

main( ) { static int a[ ][4]={1,3,5,7,9,11,13,15,17,19,21,23};

int (﹡p)[4], i=1,j=2; p=a;

printf(〞%d \\n 〞, ﹡(﹡(p+i)+j)); }

A)9 B)11 C)13 D)17

7.若有以下定义,则对a数组元素的正确引用是 D 。(1级) int a[5], ﹡p=a;

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

8.若有以下定义,则对a数组元素地址的正确引用是 D 。(1级)

int a[5], ﹡p=a;

A)p+5 B)﹡a+1 C)&a+1 D)&a[0]

9.若有定义: int a[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为 A 。(1级)

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

10.若有定义: int a[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的正确引用为 D 。(1级)

A)﹡(a [i] +j ) B)(a+i) C)﹡(a+j) D)a[i]+j 11.设有下面的程序段: char s[ ]= 〞china 〞; char ﹡p; p=s;

则下列叙述正确的是 D 。(0级)

A)s和p完全相同 B)数组s中的内容和指针变量p中的内容相等 C)s数组长度和p所指向的字符串长度相等 D)﹡p与s[0]相等

12.若有语句:char s1[ ]= 〞string 〞, s2[8],﹡s3,﹡s4= 〞string2 〞;则对库函数strcpy的错误调用是 C 。(1级)

A)strcpy(s1, 〞string2 〞); B)strcpy(s4, 〞string1 〞); C)strcpy(s3, 〞string1 〞); D)strcpy(s1, s2);

13.若有定义:int a[5];则a数组中首元素的地址可以表示为 C 。(1级)

A)&a B)a+1 C)a D)&a[1] 14.以下与int ﹡q[5];等价的定义语句是 C 。(1级)

A)int q[5] B)int ﹡q C)int ﹡(q[5]); D)int (﹡q)[5];

15.若有以下定义,则﹡(p+5)表示 B 。(1级)

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

16.若有定义:int ﹡p[4];则标识符p B 。(0级)

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

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

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

A)a,point,*&a B) &*a,&a,*point C)*&point,*point,&a D) &a,&*point,point 18.若有说明:int *p,m=5,n;以下正确的程序段是 D 。(1级)

A)p=&n; scanf(“%d”,&p); B) p=&n; scanf(“%d”,*p); C) scanf(“%d”,&n); *p=n; D) p=&n; *p=m; 19.下面程序段的运行结果是 B 。(1级)

char str[ ]=“ABC”,*p=str; printf(“%s\\n”,*(p+1));

A) 66 B) BC C)字符?B?的地址 D)字符?B?20.已有定义int k=2,

*ptr1,*ptr2;且ptr1和ptr2均已指向同一个变量k,下面不正确执行的赋值语句是: B 。(1级)

A) k=*ptr1+*ptr2 ; B) ptr2=k; C) ptr1=ptr2; D)k=*ptr1*(*ptr2); 21.有以下程序 main()

{ char a,b,c,*d; a='\\'; b='\\xbc';

c='\\0xab'; d=\

printf(\}

编译时出现错误,以下叙述中正确的是 D 。(1级) A)程序中只有a='\\';语句不正确。 B)b='\\xbc';语句不正确。

C)d=\语句不正确。

D)a='\\';和 c='\\0xab';语句都不正确。 22.若有一些定义和语句 #include int a=4,b=3,*p,*q,*w;

p=&a; q=&b; w=q; q=NULL;

则以下选项中错误的语句是 C 。(1级) A) *q=0; B) w=p; C) *p=&a; D) *p=*w; 23.有以下程序

int *f(int *x,int *y) { if(*x<*y) return x; else return y; }

main()

{ int a=7,b=8,*p,*q,*r; p=&a; q=&b; r=f(p,q);

printf(\}

执行后输出结果是 B 。(2级)

A) 7,8,8 B) 7,8,7 C) 8,7,7 D) 8,7,8 24.有以下程序 main()

{ char *s[]={\p=s[1];

printf(\}

执行后输出结果是 C 。(1级)

A) n,two B) t,one C) w,one D) o,two 25.有以下程序 main()

{ int x[8]={8,7,6,5,0,0},*s; s=x+3;

printf(\}

执行后输出结果是 B 。(1级)

A) 随机值 B) 0 C) 5 D) 6 26.有以下程序 main()

{ char str[]=\while(*ps) ps++;

for(ps--;ps-str>=0;ps--) puts(ps);}

执行后输出结果是 C 。(1级)

A) yz<回车>xyz B) z<回车>yz

C) z<回车>yz<回车>xyz D) x<回车>xy<回车>xyz 27.有以下程序 main()

{int a[][3]={{1,2,3},{4,5,0}},(*pa)[3],i; pa=a;

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

if(i<2) pa[1][i]=pa[1][i]-1; else pa[1][i]=1;

printf(\}

执行后输出结果是 A 。(2级)

A) 7 B) 6 C) 8 D) 无确定值 28.有以下程序

void fun(int *a,int i,int j) { int t; if (i

{ t=a[i];a[i]=a[j];a[j]=t; fun(a,++i,--j); } }

main()

{ int a[]={1,2,3,4,5,6},i; fun(a,0,5);

for(i=0;i<6;i++) printf(\}

执行后输出结果是 A 。(2级)

A) 6 5 4 3 2 1 B) 4 3 2 1 5 6 C) 4 5 6 1 2 3 D) 1 2 3 4 5 6 29.有以下程序

main(int argc,char *argv[]) { int n,i=0;

while(argv[1][i]!='\\0') { n=fun(); i++;}

printf(\}

int fun()

{ static int s=0; s+=1; return s; }

假设程序编译、连接后生成可执行文件exam.exe,若键入以下命令

exam 123〈回车〉

则运行结果为 A 。(2级)

A) 6 B) 8 C) 3 D) 4 30.有如下程序段 int *p,a=10,b=1 p=&a; a=*p+b;

执行该程序段后,a的值为 B 。(1级)

A) 12 B) 11 C) 10 D) 编译出错

31.对于基类型相同的两个指针变量之间,不能进行的运算是 C 。(0级)

A)< B) = C) + D) –

32.以下函数返回a所指数组中最小的值所在的下标值。

fun(int *a, int n) { int i,j=0,p; p=j;

for(i=j;i在下划线处应填入的是 D 。(0级)

A) i=p B) a[p]=a[i] C) p=j 33.有如下说明

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是 B 。(1级)

A) *p+9 B) *(p+8) C) *p+=9 34.有如下程序 main()

{ char s[]=”ABCD”, *P;

for(p=s+l;p;p++) printf(“%s\\n”,*p); } 该程序的输出结果是 D 。(2级)

A) ABCD B) A C) B D) BCD BCD B C CD CD C D D D D 35.有如下程序 main()

{ char ch[2][5]={“6937”,”8254”},*p[2]; int i,j,s=0;

for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++)

for(j=0;p[i][j]>?\\0?;j+=2) s=10*s+p[i][j]-?0?; printf(“%d\\n”,s); }

该程序的输出结果是 C 。(2级)

A) 69825 B) 63825 C) 6385 36.执行以下程序后,a的值为 C 。(1级)

D) p=i

D) p+8 D) 693825


C语言第八章 指针.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:功、功率、机械效率计算题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: