C语言第九章指针习题.doc

上传人:夏** 文档编号:545086059 上传时间:2022-09-11 格式:DOC 页数:21 大小:177.51KB
返回 下载 相关 举报
C语言第九章指针习题.doc_第1页
第1页 / 共21页
C语言第九章指针习题.doc_第2页
第2页 / 共21页
C语言第九章指针习题.doc_第3页
第3页 / 共21页
C语言第九章指针习题.doc_第4页
第4页 / 共21页
C语言第九章指针习题.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《C语言第九章指针习题.doc》由会员分享,可在线阅读,更多相关《C语言第九章指针习题.doc(21页珍藏版)》请在金锄头文库上搜索。

1、第九章 指针9.1 选择题题9.1 以下程序的运行结果是_。sub(int x,int y,int *z)*z=y-x;main()int a,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf(”4d,4d,4dn”,a,b,c);A) 5,2,3 B)-5,-12,-7C)-5,-12,-17 D)5,-2,-7题9.2 执行以下程序后,a的值为1l,b的值为2。main()int a,b,k4,m6,*p1=&k,*p2=&m; ap1=&m; b=(-*p1)(*p2)十7;print(”adn”,a);printf(”bdn”,b);1l

2、A)一1 B)1 C)0 D)42 A)5 B)6 C)7 D)10题9.3下面程序应能对两个整型变量的值进行交换。以下正确的说法是_main()inta10,b=20;printf(”(1)ad,b=%dn”,a,b);swap(%d,%b);printf(”(2)ad,bdn”,a,b)Swap(int p,int q)int t;tp;p=q;q=t;A)该程序完全正确B)该程序有错,只要将语句swap(&d,&b);中的参数改为a,b即可C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执 行语句不变)即可D)以上说法都不正确题9.4有四组对指针变量进行操作的语句

3、,以下判断正确的选项是_(1)int *p,*q; q=p; int a,*p,*q; p=q=&a;(2)int a,*p,*q; q=&a;p=*q;int a=20,*p; *p=a;(3)int a=b=0,*p; p=&a; b=*p;int a=20,*p,*q=&a;*p=*q;(4)int a=20,*p,*q=&a; p=q; int p,*q; q=&p;A)正确:(1); 不正确:(2),(3),(4)B)正确:(1),(4); 不正确:(2),(3)C)正确:(3); 不正确:(1),(2),(4)D)以上结论都不正确题9.5以下程序中调用scanf函数给变量a输入数值

4、的方法是错误的,其错误原因是_。main() int *p,*q,a,b;P=&a;printf(input a:”);scanf(d”,*p);A)*p表示的是指针变量p的地址B)*p表示的是变量a的值,而不是变量a的地址C)*p表示的是指针变量p的值D)*p只能用来说明p是一个指针变量题9.6以下程序有错,错误原因是_main()int *p,i; char *q,ch;P=&i;q=&ch;*p=40;*p=*q;.A)p和q的类型不一致,不能执行*p*q;语句B)*p中存放的是地址值,因此不能执行*p=40;语句C)q没有指向具体的存储单元,所以*q没有实际意义D)q虽然指向了具体的存

5、储单元,但该单元中没有确定的值,所以不能执行 *p*q;语句 题9.8已有定义 int k=2;int *ptrl,*ptr2;且ptrl和ptr2均已指向变量k,下面不能正确执行的赋值语句是_。A) k=*ptr1+*ptr2; B)ptr2k;C) ptr1=ptr2; D)k*ptrl*(*ptr2);一O题9.9变量的指针,其含义是指该变量的_.A)值 B)地址C)名 D)一个标志题9.10若已定义inta=5;下面对(1),(2)两个语句的正确解释是_(1)int *p=&a; (2)*p=a;A)语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值B)(1)和(2)语句的执行

6、结果,都是把变量a的地址值赋给指针变量pC)(1)在对p进行说明的同时进行初始化,使p指向a (2)将变量a的值赋给指针变量pD)(1)在对p进行说明的同时进行初始化,使p指向a (2)将变量a的值赋于*p题911 若有语句int*point,a4;和point=&a; 下面均代表地址的一组选项是_.A)a,point,*&a B)&*a,&a,*pointC)*&point,*point,&a D)&a,&*point,point题9.13若有说明:int *p,m=5,n; 以下正确的程序段是_A) p=&n; scanf(”d”,&p);B) p=&n; scanf(”d”,*p);C)

7、 scanf(”d”,&n);*p=n;D)p=&n;*p=m;题9.14 若有说明: int *pl,*p2,m=5,n;以下均是正确赋值语句的选项是_A)p1=&m;p2=&p1;B)p1=&m;p2=&n;*p1=*p2;C)p1=&m;p2=p1;D)p1=&m;*p2=*p1;题9.15已有变量定义和函数调用语句:int a=25; print_value(&a);下面函数的正确输出结果是_。void print_value(int * x)printf(”dn”,+*x);A)23 B)24 C)25 D)26题9.16 下面判断正确的是_。A)char *a=china”;等价于

8、char *a;*a=china”;B)char strLl0“china”;等价于char str10; str=“china”;C)char *s”china”;等价于char *s;s=china”;D)charc4abc”,d4abc”;等价于char c4=d4=abc”;题9.17设char *s”ta017bc;则指针变量s指向的字符串所占的字节数是_.A)9 B)5 C)6 D)7题9.18下面程序段中,for循环的执行次数是_。char *s”ta018bc”;for( ;*s!0;s+) printf(“*”);A)9 B)5 C)6 D)7题9.19下面能正确进行字符串赋

9、值操作的是_。A)char s5ABCDE; B)char s5A,B,C,D,E;C)char * s; s”ABCDE”; D)char *s; scanf(”s”,s);题9.20下面程序段的运行结果是_。Char*Sabcde;s+2; printf(”d”,s);A)cde B)字符c C)字符c的地址D)无确定的输出结果题9.21设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是_。A)c=*p1+*p2; B)p2c; C)p1=p2; D)c=*p1*(*p2);题9.22设有下面的程序段:Char s=china; char *p; p=s

10、;则下列叙述正确的是_。A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组长度和p所指向的字符串长度相等D)*p与s0相等题9.23 下面程序段的运行结果是_Char *format”s,a=d,b=%dn”;int a1,b10;a+=b;print(format,”a+=b”,a,b);A)for,”a+b”,ab B)format,”a+b”C)a+=b,all,b=10 D)以上结果都不对题9.24下面程序段的运行结果是_Char *p”d,ad,b=%dn”int a111,b10,c;cab; p+3;printf(p,c,a,b);A)1,a=111,b10

11、B)a1,b111C)a=111,b10 D)以上结果都不对题9.25以下正确的程序段是_A)char str20: scanf(”s”, &str);B)char *p; , scanf(”s”, p);C)char str20; scanf(”s”,&str2;D)char str20, *p=str;scanf(”s”,p2);题926 以下正确的程序段是_。A)char strl 12345”, str2 ”abcdef”; strcpy(strl, str2);B)char str10, *st=”abcde”; strcat(str, st);C)char str10” ”, *S

12、t=”abcde”; strcat(str, st);D)char *stl=”12345,*st2=”abcde”; strcat(stl, st2);题927 下面程序段的运行结果是_。 charstr=”ABC”, *p=str; printf(”dn”,*(p+3); A)67 B)0 C)字符C的地址 D)字符C题928 下面程序段的运行结果是_.Char *p=”abcdefgh”;P+=3;printf(”dn”,strlen(strcpy(p,”ABCD);A)8 B)12 C)4 D)7题9.29 下面程序段的运行结果是_.Char a”1anguage,*p;pa;whil

13、e(*p!uprint(”c,*p-32);p十十;A)LANGUAGE B)1anguage C)LANG D)1angUAGE题9.30若有语句:char sl=”string”,s28,*s3,*s4=”string2”;则对库函数strcpy的错误调用是_。A)strcpy(s1,”string2”);B)strcpy(s4,”stringl”);C)strcpy(s3,”stringl”);D)strcpy(s1,s2);题931以下与厍函数strcpy(char *p1,char *p2) 功能不相等的程序段是_.A) strcpyl(char *p1,char *p2)while(*p1+*p2+)!=0);B) strcpy2(char*p1,ch

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号