C语言程序设计习题6(11页).doc
《C语言程序设计习题6(11页).doc》由会员分享,可在线阅读,更多相关《C语言程序设计习题6(11页).doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-C语言程序设计习题6-第 11 页 习题6参考解答 1请解释以下术语的含义:地址 指针 指针变量 直接访问 间接访问解:(1)地址:内存单元的编号叫做地址。(2)指针:内存单元的编号叫做地址,通常也叫做指针。(3)指针变量:在语言中,允许用一个变量来存放指针,这种变量称为指针变量。(4)直接访问:通过变量名称引用变量内存单元的方式称为直接访问。(5)间接访问:利用了指针变量,通过变量的指针(即变量的内存地址)来引用内存单元的值,这种方式称为间接访问。2指针能参与哪几种运算?举例说明。解:(1)指针变量和整数可以进行加/减运算:p+、p-、p+i、p-i、p+=i、p-=i (2)指针变量可进
2、行赋值运算:p=&a; 变量a的地址赋给p,即指针p指向ap=array; 数组array首地址赋给pp=&arrayi; 数组元素arrayi的地址赋给pp=max; 函数max的入口地址赋给pp1=p2; 指针p2的值赋给指针p1,即p1、p2所指的数据相同 (3)同类指针变量在一定的条件下可以作相减运算: p-q (4)同类指针变量在一定的条件下可以作比较运算: pq 3判断下面两个程序的正误,若错误指出原因。(1)#includeint main()char *p;p=DATA;printf(%sn,*p);return 0;解:该程序错。应为:printf(%sn,p);(2)#in
3、cludeint main()int *p;*p=25;printf(%d,*p);return 0;解:该程序错。指针变量没有赋初值。4输入3个整数,输出其中最大数。要求用指针变量实现。解:#includestdio.hint main()int a=0,b=0,c=0;int*aa=NULL,*bb=NULL,*cc=NULL,*p=NULL;aa=&a,bb=&b,cc=&c;printf(input 3 number:);scanf(%d %d %d,&a,&b,&c);printf(a=%d b=%d c=%dn,a,b,c); p=aa;if(*p*bb) p=bb;if(*p*c
4、c) p=cc;printf(%dn,*p);return 0; 程序运行情况如下:input 3 number:4 5 9a=4 b=5 c=995有3个整型变量i,j,k。请编写一个程序,设置3个指针变量p1,p2,p3,分别指向i,j,k,然后通过指针变量使i,j,k 3个变量的值顺序交换,即原来i的值赋给j,把j的原值赋给k,把k的原值赋给i。i,j,k的原值由键盘输入,要求输出i,j,k的原值和新值。解:#include int main() int i,j,k,tmp; int *p1,*p2,*p3; scanf(%d%d%d,&i,&j,&k); printf(Before c
5、hange:%dt%dt%dn,i,j,k); p1 = &i; p2 = &j; p3 = &k; tmp=*p3; *p3=*p2; *p2=*p1; *p1=tmp; printf(After change:%dt%dt%dn,i,j,k); return 0; 程序运行情况如下:1 2 3Before change:123After change:3 1 26输入一个10个元素的一维数组,在主函数中用scanf函数输入。用指针方式编程找出最大和最小数,并指出最大数和最小数的位置。解:int y_max(int *p,int n) int max=*p,i,k=0; for(i=0;in
6、;i+) /*这里判断到in,而不是i=n*/if(max*(p+i) k=i;max=*(p+i); /*记得要在这里更新一下max的记录*/return k; #define N 10 #include int main() int aN;int i,m,max; for(i=0;iN;i+) scanf(%d,&ai); for(i=0;iN;i+) printf(%d ,ai); m=y_max(a,N); printf(nmax=a%d=%d,m,am); return 0; 程序运行情况如下:1 5 6 78 9 6 4 7 2 31 5 6 78 9 6 4 7 2 3max=a
7、3=787输入一段文字,统计其中所包含的数字字符和字母字符个数。解:#include#include#include#define N 80int cnum=0,dnum=0; /*全局变量用于在两个函数之间传递数据*/int main()char chN;void count(char c);int i,n;gets(ch);n=strlen(ch);for(i=0;i=0&c=A&c=a&c=z) cnum+;return 0; 程序运行情况如下:hello123455,58请写出下列程序段的输出结果。(1)#include int main()int a=1,2,3,4,5,6,*p;p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 习题 11
限制150内