收藏 分享(赏)

c语言第8章课堂讨论.ppt

上传人:无敌 文档编号:375911 上传时间:2018-04-03 格式:PPT 页数:17 大小:211.50KB
下载 相关 举报
c语言第8章课堂讨论.ppt_第1页
第1页 / 共17页
c语言第8章课堂讨论.ppt_第2页
第2页 / 共17页
c语言第8章课堂讨论.ppt_第3页
第3页 / 共17页
c语言第8章课堂讨论.ppt_第4页
第4页 / 共17页
c语言第8章课堂讨论.ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、第7章 习题讨论,退出,问答题,填空题,编程题,阅读程序题,一、回答下列问题,写出相应语句,1、假设float型变量x1和x2已定义过,且x1已初始化为7.3; float x1=7.3,x2,(1)定义指向float型变量的指针变量fptr;(2)使fptr指向x1;(3)输出fptr指向的变量的值;(4)将fptr指向变量的值赋给x2;(5)输出x2的值;(6)输出x1的地址;(7)输出fptr的值,float *fptr,fptr=,printf(“%f”,*fptr);,x2=*fptr;,printf(“%f”,x2);,printf(“%u”,printf(“%u”, fptr);

2、,一、回答下列问题,写出相应语句,2、假设int型在内存中占两个字节,回答下列问题。,(1)定义1个int型数组num,有10个元素,且初始化为:0,1,2,3,4,5,6,7,8,9。假设数组的首地址是1002500。 int num10=0,1,2,3,4,5,6,7,8,9;(2) 定义1个指向int型的指针变量nptr,并指向数组num; (3)用下标法输出num中的所有元素;(4)用地址法输出num中的所有元素(5)用指针法输出num中的所有元素,int *nptr=num;,for(i=0; i10; i+)printf(“%d”,numi);printf(“%d”;*(num+i

3、);printf(“%d”,*(nptr+i);printf(“%d”,*(nptr+);,一、回答下列问题,写出相应语句,2、假设int型在内存中占两个字节,回答下列问题。,(1)定义1个int型数组num,有10个元素,且初始化为:0,1,2,3,4,5,6,7,8,9。假设数组的首地址是1002500。 int num10=0,1,2,3,4,5,6,7,8,9;(6)假设nptr指向num的首元素,nptr+8是什么?*(nptr+8)又是什么?(7)假设nptr指向num5,nptr-=4指向哪个元素,nptr中的值是多少?,答:nptr+8是指向num8;*(nptr+8)是数组元

4、素num8的值,答:nptr-=4指向num1;nptr中的值是1002500+2=1002502。,二、填空题,1、 运算符用于返回变量在内存中的地址; 运算符用于返回指针变量指向变量的值。,&,*,2、以下函数用来求两个整数之和。 add(x,y, ) int ; =x+y;,p,x,y,*p,*p,4、以下函数完成两个字符串的连接。 void str(str1,str2) char *str1,*str2; int i=0,j; while(str1i+!=0); /*循环将i定位到字符串尾部*/ for(j=0;str2j!= ;j+) str1i+j= ; str1i+j= ;,st

5、r2j,0,0,二、填空题,3、下面程序调用findmax函数求出数组中的最大值以及最大值在数组中的下标。,findmax(s,t,k)int s ,t,k;int p; for(p=0,*k=p;ps*k) ; /*从(1) (2) (3) (4)中选一个答案填空*/,main()int a10,i,k;for(i=0;i10;i+) scanf(“%d”.,(1) k=p; (2) *k=p; (3) k=p-s; (4) *k=p,*k=p,三、阅读分析下列程序,写出运行结果,1、#define M 2 #define N M+4 int a =10,20,30; /*全局数组*/ su

6、b1(x,y,z) int x,y,z; int t;t=xy?x:y;a1=tz?t:z; return t; main() int k;k=sub(M*N,*(a+1),*(a+2); printf(“%d,%dn”,k,*(a+1);,M*N=2*2+4=8,8,20,30,8 , 8 (输出三个数中的小数),三、阅读分析下列程序,写出运行结果,2、#include main() int a =1,2,3,4,5,6,*p; p=a;*(p+3)+=2; /*p仍然指向a0*/ printf(“%dn”,*p); printf(“%dn”,*(p+3);,16,三、阅读分析下列程序,写出

7、运行结果,3、#include #define MAX 6 main()int aMAXMAX;void sunb1();sub2(); /*函数声明*/ sub1(a);sub2(*a),void sub1(s) int (*s)MAX; /*指向具有MAX个元素的一维数组的行指针*/int i,j;s00=1 /*指针变量s可以当作二维数组名使用*/ for(i=1;iMAX;i+) si0=1;sii=1; for(j=1;ji;j+) sij=si-1j-1+si-1j;,void sub2(w)int *w; /*指向数组元素的指针*/ int i,j;for(i=0;iMAX;i+

8、) for(j=0;j=I;j+) printf(“%5d”,*(w+i*MAX+j); printf(“”);,1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1,a是数组首行地址,*a是首行首列元素地址,杨辉三角形,四、程序题(要求用指针变量完成),1、有一个字符串,包含n个字符。写一函数将此字符串中从第m个字符开始的全部字符复制成另一个字符串。void aa(p1,p2,m)char *p1,*p2;int m;int i; for(i=0;im-1;i+) p1+; /*将p1指针指向第m个字符*/ while(*p1!=0) *p2=*p1;p2+

9、;p1+;) *p2=0; ,四、程序题,2、在主函数中输入10个整数,用另一个函数将10个整数按逆序存放,然后在主函数中输出结果,编程思路:(1)在main函数中定义一维数组a,并利用循环为数组元素赋值;(2)建立函数ss完成数组中的10个数按逆序存放(首尾交换)(3)函数调用,实参为数组名,形参为指针变量,在被调函数中,将指针变量作为数组名对数组进行操作。(4)最后在main函数中完成逆序存放后数组的输出。,#includeaa(int *s)int i,t; for(i=0;i5;i+) t=si;si=s9-i;s9-i=t;void main() int i,a10; for(i=0

10、;i10;i+) scanf(%d,补充练习,1若有以下定义和语句,且0i10,则对数组元素地址的正确表示是() int a =0,1,2,3,4,5,6,7,8,9,*p; p=a;A 不能表示字符C的是()As2Bs3CscaD*(p+2)3.以下选项中,对指针变量p的正确操作是( )A.int a5,*p;p=a; B.int a5,*p;p=a;C.int a5;int *p=a5; D.int a5;int*p,p2=a; *p=*p2;,B,B,B,5.若有定义int a5,i,*p=a;且0i5,则对a数组元素的正确引用有( ) A.ai B.*(a+i) C.*(p+i) D.

11、*(&a+i) E.p+i,6.设有说明:int a23; 请用四种方式来表示数组元素a12。,ABC,(1)*(*(a+1)+2) (2)*(*a+1*3+2)(3)*(a1+2) (4) *(a0+1*3+2),3有下列程序: func(int x,int y, int *jia, int *jian) *jia=x+y; *jian=x-y; main( ) int i=10,j=3,x1,x2; func( i,j,则其运行结果是() A0,0 B.10,3C.13,7D.7,13,C,5阅读下面程序,写出运行结果。#include#include void f(char *s) ch

12、ar *t,c,*p=s;for(t=s+strlen(s)-1;st;s+,t-) c=*s;*s=*t;*t=c; printf(%sn,p);void main (void) char a20=abcdefg;f(a);,6阅读下列程序并写出运行结果。main( ) char s=abcdel2345,*q=s;int a=0;for(;qs+5;q+)printf(c,*q);a=f(s);printf(na=dn,a);int f(char*p) int x=0;while(*p+!=0)x+;return x;,abcdea=10,10.下列程序中字符串中各单词之间有一个空格,写出程序的输出结果。 #include #include main()char str1=How do you do; puts(str1);strcpy(str1+strlen(str1)/2,es she);printf(%sn,str1); ,

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

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报