C语言习题课(指针).ppt

上传人:牧羊曲112 文档编号:5426237 上传时间:2023-07-05 格式:PPT 页数:25 大小:236.49KB
返回 下载 相关 举报
C语言习题课(指针).ppt_第1页
第1页 / 共25页
C语言习题课(指针).ppt_第2页
第2页 / 共25页
C语言习题课(指针).ppt_第3页
第3页 / 共25页
C语言习题课(指针).ppt_第4页
第4页 / 共25页
C语言习题课(指针).ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《C语言习题课(指针).ppt》由会员分享,可在线阅读,更多相关《C语言习题课(指针).ppt(25页珍藏版)》请在三一办公上搜索。

1、习题课(函数指针),一、有关指针的数据类型,1、指针变量a所指的字符串长度为(),这个长度是可以用strlen(a)测出来的。char*a=“nMy Name is”wang fei”.n”;(1)26(2)27(3)28(4)24(5)232、下面程序的作用是,将两个变量中的值互换,请检查程序是否正确,如不正确的,请改正。#include void main()int a=3,b=4;int*p1,*p2,*p;p1=,这里改为:int*p1,*p2,p;这里改为:p=*p1;*p1=*p2;*p2=p;,3、已设p1和p2为指针变量,且已指向同一个整 型数组中的元素,a是一个整型变量,问下

2、面 哪一个语句不能正确执行?(1)a=*p1(2)a=*p1+*p2(3)a=*p1-*p2(4)p1=a-p24、有一个二维数组a34,2行3列元素的正确表 示方法为()。(1)&a23(2)a2+3(3)*(a+2)+3(4)*(a2+3),5、若有语句:int a=4,*p=4)Por,7、下面说明不正确的是:1)int*a4;3)float(*p)();2)int*p;4)char*(*a);8、以下程序段的输出结果为:#include void main()int s=1,2,3,4,5,6,7,8,9,*p;p=s;*(p+5)=22;p+;printf(%d,%dn,*p,*(p

3、+4);,输出结果是:2,22,9、下列程序的输出结果是:#include void main()int a5=2,4,6,8,10,*p,*k;p=a;k=A)4 4 B)2 2 C)2 4D)结果错误,10、写出下面程序的运行结果。#include stdio.h#include string.hvoid main()char a30=nice to meet you!;int b;b=strlen(a)-9;strcpy(a+b,you);printf(%sn,a);,运行结果:nice to you!,11、下列程序的输出结果是多少?#include void fun(int*a,in

4、t*b)int k;k=5;*a=k;*b=*a+k;void main()int*a,*b,x=10,y=15;a=,运行结果:5,105,10,12、以下程序段的输出结果是()#include void main()int a10=9,8,7,6;int*p;p=a;printf(%d,%dn,*p,*(p+2);,运行结果:9,7,13、已有变量定义和函数调用语句:int a=25;print_value(A)23 B)24 C)25 D)26,14、阅读下面程序,输出结果是多少?#include stdio.hvoid main()int c6=1,2,3,4,5,6;int*p;p=

5、c;printf(%d,*+p);p=p+3;printf(%dn“,*p-);,运行结果:2,5,15、阅读下面程序,则程序的输出结果是多少?#include void main()int i;char*p;char*name=Ann,Hare,Jack,Mary;printf(n Studentss names are:n);for(i=2;i4;i+)p=name+i;printf(%sn,*p);,运行结果:JackMary,16、写出程序的运行结果。#include#include void fun(char*s)int i;char a10=opqrst;for(i=0;ai!=0

6、;i+)*(s+i)=ai;void main()char*p,a=abcdef;p=a;fun(p);printf(%s,p);,运行结果:opqrst,17、写出程序的运行结果。#include#include void fun(char*s)char a10;strcpy(a,opqrst);s=a;void main()char*p,a=abcdef;p=a;fun(p);printf(%s,p);,运行结果:abcdef,18、写出程序的运行结果#include void fill(char*p)p=opqrst;void main()char t=abcdef;fill(t);pr

7、intf(%s,t);,运行结果:abcdef,19、写出程序的运行结果#include void fun(char*s)s=“opqrst;void main()char*p=abcdef;fun(p);printf(%s,p);,运行结果:abcdef,20、写出程序的运行结果#include void main()char*p=BOOL,OPK,H,SP;int i;for(i=3;i=0;i-,i-)printf(%c,*pi);printf(n);,运行结果:SO,#include void main()char*month13=january,february,march,apri

8、l,may,june,july,august,september,october,november,decenber;int n;printf(input month:);scanf(%d,编一个程序,输入月份号,输出该月份的英文月名。,有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。,#include void input(int*p,int n)int i;printf(请输入%d个整数:,n);for(i=0;i=p;h-)for(i=0;im;i+)t=*(h+i);*(h+i)=*(h+i+1);*(h+i+1)=t;void main()int m,a10;i

9、nput(a,10);output(a,10);printf(请输入要把后面多少个整数移动到前面?);scanf(%d,有一字符串,包含n个字符,写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。,#include#define M 5/从第个字符开始复制(可以行更改)/*定义函数:把指针head处开头的字符串从第m个字符开始复制到指针cpy开头的字符数组*/char*stringcpy(char*head,int m,char*cpy)char*h,*c;/定义两个工作指针int i=0;h=head;c=cpy;/工作指针分别指向源字符串和目标字符串while(i=m-

10、1)h=head+i;if(*h=0)break;i+;/这个循环是为了把指针h指向第m个字符while(*h!=0)*c=*h;c+;h+;/这个循环是从第个字符开始逐个字符进行复制*c=*h;/复制源字符串末尾的字符0return cpy;/给函数返回目标字符串首地址void main()char c181,c281;/c1是源字符串,c2是目标字符串printf(请输入源字符串:n);gets(c1);/输入源字符串printf(目标字符串是:n);puts(stringcpy(c1,M,c2);/输出目标字符串,有N个人围成一圈,顺序排号,从第一个人开始报数(从一到三报数),凡报到三的人退出圈子,问最后留下的是原来第几号的那位?,#include void main()int i,k,m,n,num50,*p;scanf(%d,i是数组计数变量k是按1,2,3报数是的计数变量m是退出的人数的计数变量,0,0,0,0,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号