教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 基础教育 >

C语言指针习题及答案(2)

来源:网络收集 时间:2026-03-17
导读: 33.以下选项中,对指针变量p的正确操作是 B 。 A)int a[3], *p; B)int a[5], *p; C)int a[5]; D)int a[5] p= p=a; int *p=a=100; int *p1,*p2=a; *p1=*p2; 34.若有定义:int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;则

33.以下选项中,对指针变量p的正确操作是 B 。

A)int a[3], *p; B)int a[5], *p; C)int a[5]; D)int a[5]

p=&a; p=a; int *p=a=100; int *p1,*p2=a;

*p1=*p2;

34.若有定义:int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;则数值不为3的表达式是 C 。

A)x[3] B)p1=x+3,*p1++ C)p1=x+2,*(p1++) D)p1=x+2,*++p1 35.下面程序段的输出是 C 。

int a[ ]={2,4,6,8,10,12,14,16,18,20,22,24},*q[4],k; for (k=01; k<4; k++) q[k]=&a[k*3]; printf(“%d\\n”,q[3][0]);

A)8 B)16 C)20 D)输出不合法

36.若要对a进行自增运算,则a应具有下面说明 D 。 A)int a[3][2]; B)char *a[ ]={“12”,”ab”}; C)char (*a) [3] D)int b[10], *a=b;

37.若有定义int a[4][6];则能正确表示a数组中任一元素a[i][j](i,j均在有效范围内)地址的表达式 A 。

A)&a[0][0]+6*i+j B)&a[0][0]+4*j+i C)&a[0][0]+4*i+j D)&a[0][0]+6*j+I 38.下面程序的运行结果是 B 。

main ( )

{ int x[5]={2,4,6,8,10}, *p, **pp ; p=x , pp = &p ; printf(“%d”,*(p++)); printf(“=”,**pp);

}

A)4 4 B)2 4 C)2 2 D)4 6 39.若有定义int x[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*p)[3]=x ; 则能够正确表示数组元素x[1][2]的表达式是 D 。 A)*((*p+1)[2]) B)(*p+1)+2 C)*(*(p+5)) D)*(*(p+1)+2) 40.若有说明:char

*language[]={“FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C”};则language[2]的值是 B 。

A)一个字符 B)一个地址 C)一个字符串 D)一个不定值

41.设有定义:char *cc[2]={“1234”,”5678”};则正确的叙述是 A 。 A)cc数组的两个元素中各自存放了字符串”1234”和”5678”的首地址 B)cc数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 C)cc是指针变量,它指向含有两个数组元素的字符型一维数组 D)cc元素的值分别维”1234”和”5678”

42.已有定义int (*p)( );指针p可以 B 。

A)代表函数的返回值 B)指向函数的入口地址 C)表示函数的类型 D)表示函数返回值的类型 43.已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是 A 。

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

44.若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是 C 或 p(a,b) 。

A)(*p)max(a,b) B)*pmax(a,b); C)(*p)(a,b); D )*p(a,b); 45.以下正确的叙述是 C 。

A)C语言允许main函数带形参,且形参个数和形参名均可由用户指定 B)C语言允许main函数带形参,形参名只能是argc和argv

C)当main函数带有形参时,传给形参的值只能从命令行中得到 D)若有说明: int main(int argc,char **argv),则argc的值必须大于1 三.程序阅读题

1.写出下面程序的运行结果。 5

func(char *s,char a,int n) { int j; *s=a; j=n ; while (*s

for (i=1; i<=5 ; i++) *(c+1)=?A?+i+1; printf(“%d\\n”,func(c,?E?,5)); }

2.写出下面程序的运行结果。 6

fun (char *s) { char *p=s; while (*p) p++ ; return (p-s) ; } main ( )

{ char *a=”abcdef” ; printf(“%d\\n”,fun(a)) ; }

3.写出下面程序的运行结果。 abcdefglkjih

sub(char *a,int t1,int t2) { char ch; while (t1

ch = *(a+t1); *(a+t1)=*(a+t2) ; *(a+t2)=ch ; t1++ ; t2-- ; } } main ( ) { char s[12]; int i; …… 此处隐藏:136字,全部文档内容请下载后查看。喜欢就下载吧 ……

C语言指针习题及答案(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/566301.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)