

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十章指针 一选择题 1.变量的指针,其含义是指该变量的 _ A )值 B)地址 C)名 D)一个标志 2.已有定义 int k=2;int *ptr1,*ptr2; 且 ptr1 和 ptr2 均已指向变量 k,下面不能正确执行 的赋值语句是 。 A) k=*ptr1+*ptr2 B) ptr2=k C) ptr1=ptr2 D) k=*ptr1*(*ptr2) 3.若有说明:int *p,m=5,n; 以下程序段正确的是 。 A) p=&n ; B) p = &n ; scanf( %d ,&p); scanf( %d ,*p); C) scanf( %d,&
2、;n); D) p = &n ; *p=n ; *p = m ; 4.已有变量定义和函数调用语句: int a=25;print_value(&a); 下面函数的输出结果 void prin t_value(i nt *x) printf( %dn ”+*x); A) 23 B)24 C) 25 D)26 5. 若有说明:int *p1, *p2,m=5,n; _ 以下均是正确赋值语句的选项是 B) p 仁&m; p2=&n; *p1 =* p2 ; C) p 仁&m; p2=p1 ; D) p 仁&m; *p 仁*p2 ; 6. 若有语句:in
3、t *p,a=4; 和 p=&a;下面均代表地址的一组选项是 _ A) a,p,*&a B)&*a,&a,*p C)*&p,*p,&a D) &a,&*p,p 7. 下面判断正确的是 _ 。 A) char *a= ch in a” 等价于 char *a; *a= ch in a; B) char str1O= “hina ”;等价于 char str1O; str = “hina; C) char *s= ch in a; 等价于 char *s; s= ch in a; D) char c4= abc,d4= abc;等价于
4、 char c4=d4= abc; 8. _ 下面程序段中,for 循环的执行次数是 _ 。 char *s= ta018bc; for ( ; *s!= 0; s+) printf( *” A) 9 B) 7 9. 下面能正确进行字符串赋值操作的是 A) char s5= ABCDE ”; C) char *s ; s= ABCDE ; 10. 下面程序段的运行结果是 _ char *s= abcde; s+=2 ; printf( %d,s); A) cde B)字符 C)字符c的地址 D)不确定 11. 设 pl 和 p2 是指向同一个字符串的指针变量, c 为字符变量,则以下不能正确执
5、行的赋 值语句是 _ 。 A) p 仁&m; p2=&p1 ; C) 6 D) 5 B) char s5= AC,D,E; D) char *s; scanf( %s,s); A) c=*p1+*p2 B) p2=c C) p 仁 p2 D) c=*p1*(*p2) 12. _ 设有程序段:char s =china;char *p ; p=s ;则下面叙述正确的是 _ 。 A) s 和 p 完全相同 B) 数组 s 中的内容和指针变量 p 中的内容相等 C) s 数组长度和 p 所指向的字符串长度相等 D) *p 与 s0相等 13. 以下与库函数 strcpy(char *
6、p1,char *p2) 功能不相等的程序段是 _ A) strcpy1(char *p1,char *p2) while (*p1+=*p2+)!= ); B) strcpy2(char *p1,char *p2) while (*p1=*p2)!= ) p1+; p2+ C) strcpy3(char *p1,char *p2) while (*p1+=*p2+); D) strcpy4(char *p1,char *p2) while (*p2) *p1+=*p2+ ; 14. 下面程序段的运行结果是 _ 。 char a = ”anguage, *p ; p=a ; while (*p
7、!= ) printf( %c”*p-32); p+ ; A) LANGUAGE B) Ianguage C) LANG 15. 若有语句:char s1 = string ,s28,*s3,*s4= string2;则库函数 A) strcpy(s1, string2 ”; C) strcpy(s3, string1); 16. 以下与库函数 strcmp(char *s,char *t) A) strcmp1(char *s,char *t) for ( ; *s+=*t+;) if (*s= = 0 return 0 ; return (*s - *t); B) strcmp2(char
8、 *s,char *t) for ( ; *s+=*t+;) if (!*s) return 0 ; return (*s - *t); C) strcmp3(char *s,char *t) for ( ; *t= =*s;) if (!*t) return 0 ; t+ ; s+ ; return (*s - *t); D) strcmp4(char *s,char *t) for ( ; *s=*t; s+, t+ ) if (!*s) return 0 ; return (*t - *s); 17. 以下说明不正确的是 _ 。 A) char a10= china; C) char *
9、a; a= ch in a; D) IangUAGE strcpy 的错误调用 B) strcpy(s4, string1; D) strcpy(s1,s2); 功能相等的程序段是 _ B) char a10,*p=a; p= ”china; D) char a10,*p; p=a= ”china; 18.设有说明语句: char a= ” It is mine ” ;char *p= ” It is mine ” ;贝 U 以下不正确的叙 述是 A) a+1 表示的是字符 t 的地址 B) p 指向另外的字符串时,字符串的长度不受限制 C) p 变量中存放的地址值可以改变 D) a 中只能存
10、放 10 个字符 19.若已定义 char s10;则在下面表达式中不表示 s1的地址是 _ A) s+1 B) s+ C) &s0+1 D) &s1 20.右有疋义: int 则对 a 数组兀素的止确引用是 。 A) *&a5 B) a+2 C) *(p+5) D) *(a+2) 21.若有定义: int 则对 a 数组兀素地址的止确引用是 。 A) p+5 B) *a+1 、比乙 z.r-t 、 r . 、C) &a+1 D) &a0 22.右有疋乂 :int a5;a 数组中自兀素的地址可以表示为 。 A) &a B) a+1 C) a D
11、) &a1 23. 以下与int * q5; 等价的定义语句是 。 A) int q5 B) int *q C) int *(q5) D) in t (*q)5 24. 以下选项中, 对指针变量 p的不正确操作是 。 A) int a3, *p; B) i int a5, *p; C) int a5; D) int a5 p=&a; p=a; int *p=a; int *p1,*p2=a *卩仁*p2; 25. 若有定义:int x10=0,1,2,3,4,5,6,7,8,9,*p1; 则数值不为 3 的表达式是 _ A) x3 B) p1=x+3,*p1+ C) p1=x+
12、2,*(p1+) D) p1=x+2,*+p1 26. 若有说明:char *language= FORTRAN ”,”BASIC ”,”PASCAL ”,”JAVA ”,”C”;贝 U Ian guage2的值是 _。 A )一个字符 B )一个地址 C) 一个字符串 D) 一个不定值 27. 设有定义:char *cc2= 1234”,”5678”;则正确的叙述是 _ 。 A) cc 数组的两个元素中各自存放了字符串 ”1234”和”5678”的首地址 B) cc 数组的两个元素分别存放的是含有 4 个字符的一维字符数组的首地址 C) cc 是指针变量,它指向含有两个数组元素的字符型一维数
13、组 D) cc 数组元素的值分别维”1234”和”5678” 28. 已有定义 int (*p)(); 指针 p 可以 _ 。 A)代表函数的返回值 B)指向函数的入口地址 C)表示函数的类型 D )表示函数返回值的类型 29. 已有函数 max(a,b),为了让函数指针变量 p 指向函数 max,正确的赋值方法是 _ A) p=max; B) p=max(a,b); C) *p=max; D) *p=max(a,b); 30. 若有函数 max(a,b),并且已使函数指针变量 p 指向函数 max,当调用该函数时,正确的 调用方法是 _ 。 A) (*p)max(a,b) B) *pmax(
14、a,b); C) (*p)(a,b); D )*p(a,b); 31. 以下正确的叙述是 _ 。 A) C 语言允许 main函数带形参,且形参个数和形参名均可由用户指定 B) C 语言允许 main函数带形参,形参名只能是 argc 和 argv C) 当 main函数带有形参时,传给形参的值只能从命令行中得到 D) 若有说明:int main(int argc,char *argv),贝 U argc 的值必须大于 1 二.填空题 1. 在 C 程序中,指针变量能够赋 _ 值或 _ 值。 2. 在 C 语言中,数组名时一个不可改变的 _ ,不能对它进行赋值运算。 3. 若有定义语句:int
15、 a4=0,1,2,3,*p;p=&a1; 则 +(*p)的值是 _ 。 4. 若有定义:int a23=2,4,6,8,10,12; 则*(&a00+2*2+1) 的值是 _ *(a1+2)的值是 _ 。 5. 若有程序段: int *p3,a6,i; for (i=0; i3; i+) pi=&a2*i; 则*p0引用的是 a 数组元素 _ ,*(p1+1)引用的是 a 数组元素 _ 。 三程序阅读题 1. 写出下面程序的运行结果。 fun c(char *s,char a,i nt n) int j; *s=a; j=n ; while (*ssj) j -; r
16、eturn j; mai n () char c6; int i ; for (i=1; i=5 ; i+) *(c+i)= A+i+1; printf( %dn”,fun(c, E,5); 2. 写出下面程序的运行结果。 fun (char *s) char *p=s; while (*p) p+ ; return (p-s); mai n () char *a= abcdef; printf( %dn ,fu n( a); 3. 写出下面程序的运行结果。 sub(char *a,i nt t1,i nt t2) char ch; while (t1t2) ch = *(a+t1); *(a
17、+t1)=*(a+t2) ; *(a+t2)=ch ; t1+ ; t2 -; mai n () char s12; int i; for (i=0; i12 ; i+) si= i+32 ; sub(s,7,11); for (i=0; i12 ; i+) pri ntf ( %c”si); printf( h”; abcdefglkjih 4当运行以下程序时,写出输入 6 /的程序运行结果。 sub(char *a,char b) while (*(a+)!= 0); while (*(a - 1)sex); 8. 以下引用不合法的是 struct s int i1; struct s *
18、i2,*i0 ; a3=2,&a1, 0 , 4,&a2,&a0, 6, A) ptr-i1+ B ) *ptr-i2 C ) 9. 若有以下程序段: )scanf( )scanf( 0 +ptr-i0 “ %d ,&pup0.age); ,&a1 , *ptr=a; D ) *ptr-i1 则以下表达式中值为 2 的是 _ A) int B ) *(p+)-m C ) (*p).m D ) *(+p)-m 10. 若要利用下面的程序段使指针变量 p 指向一个存储整型变量的存储单元,则在【】中应 有的内容是 _ 。 int *p ; p = 【】malloc(sizeof(int); A) int B )int * C )(*int) D )(int*) 11. 下面对 typedef 的叙述中不正确的是 _ 。 A) 用 typedef 可以定义多种类型名,但不能用来定义变量 B) 用 typedef
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文明驾考试题及答案
- 物业人员考试题及答案
- 封窗美化改造方案
- 物理管理面试题及答案
- 模拟盲人考试题及答案
- 高端酒店客房楼顶花园使用权租赁合同
- 设计院新员工入职培训方案
- 教育功能概述
- 脊柱侧弯的护理病例讨论
- 感觉与挫折教育
- GB/T 40427-2021电力系统电压和无功电力技术导则
- GB/T 25413-2010农田地膜残留量限值及测定
- GB/T 17007-1997绝缘栅双极型晶体管测试方法
- GB/T 15056-2017铸造表面粗糙度评定方法
- 化学水处理安全检查表
- DB34-T 4102-2022废旧锂离子动力蓄电池贮存安全技术条件-高清现行
- 景陵峪构造报告构造地质学
- GB∕T 8163-2018 输送流体用无缝钢管
- T∕ASC 17-2021 电动汽车充换电设施系统设计标准
- 机动车排放检验检测方法内部审批程序
- 2MW工商业分布式光伏电站项目可行性研究报告
评论
0/150
提交评论