C语言二级,函数、数组、指针等的整理和课后题解答.doc

C语言二级,函数、数组、指针等的整理和课后题解答.doc

ID:56720944

大小:2.16 MB

页数:60页

时间:2020-07-06

C语言二级,函数、数组、指针等的整理和课后题解答.doc_第1页
C语言二级,函数、数组、指针等的整理和课后题解答.doc_第2页
C语言二级,函数、数组、指针等的整理和课后题解答.doc_第3页
C语言二级,函数、数组、指针等的整理和课后题解答.doc_第4页
C语言二级,函数、数组、指针等的整理和课后题解答.doc_第5页
资源描述:

《C语言二级,函数、数组、指针等的整理和课后题解答.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第一个try(x,y,z)中的xyz是实参,中的xyz是形参,因为是void,没有return,所以无返回值,所以输出的(4)仍是2,3,0。转换就是实参-----形参-----return------实参。xy是实参,有值,是10,20。ab是形参,(1)(4)中的xy不能换为ab,因为没有定义的ab不能用。此处没有return,所以(4)不能输出交换后的ab值。7-7先读懂题意,这个主函数是一定要写出来的,关键在看返回值怎么弄。注意(1)程序开始一定要有主函数的额定义,。(2)中可以加上==1,但是因为i

2、f判断时就是1和0,所以此处不用写上1。(3)下面的a是形参。(4)for循环控制着if和return0,在for---if---return0执行完了才会执行return1。如果在return1前面加上else的话,那么就会循环一次而判断一次,就输出一个0,不会整个循环完后返回1或0。(5)两个return的时候只执行一个return。如条件成立的时候,执行return0,不成立的时候执行return1。不断。。。需要用循环,那么是用while还是for,则看:若是当。。。则用while,如果是一个范围,则

3、用while,若果是对次数什么的限制的话,就是用for。不断输出结果,所以putchar(c)是放在和c=myupper(c)一样额括号内,如果是吧putchar(c)放在括号外面的话,就不会不断输出,只会输出一个,且是最后一个。只要接受到的不是@,那么while久会一直循环。7-9这个程序里没有实参和形参,是可以的,可以独立完成自己的事儿,不用实参传给形参。这个程序也可以不用定义函数,直接把循环写在主函数中。说明:7.1A,从主函数开始。B、可以在程序的任意位置,如果实在main函数后面的话,记得开始要在函

4、数最初的地方有个函数说明的语句。7.2如果函数没有说明格式的话,默认的是int型。7.3括号里是逗号表达式,所以两个括号,算是两个实参。i=0,s=1i=1,s=1+1i=2,s=1+1+0.5把每次s返回的值给a,那么a+=f(i)就是这三个s相加,最后等于5.5,还是float型。里头不能写*pa,*pb,因为scanf里头是取地址,如&a。pa和pb就是地址了,若加上*,那么就成了地址里的内容了。printf应该换成scanf。是选的&x,&y,是地址,取址。这是通过地址实现的函数调用,可以改为通过指针

5、的方式,p,q指向&x,&y,其实还是地址,不过是用指针实现的。8-9(1)(2)(2)中是真的把2、3、0传递给了中的xyz,后面的xyz也可以换成abc等其他变量。实参传递给形参的是值。自定义函数中换的是abc的值,并没有换xyz的值,没有return,所以到主函数之后还是没有换xyz的值。(1)中形参是指针,传给,那么指针ab指向的是xy地址里的内容,所以在自定义函数中指针的值互换了,那么就是把xy地址中的内容互换了,所以最终到主函数之后,xy的值还是互换了。指针是变量,并没有实值,指向的是地址值,是个

6、数。实参是地址,则形参是指针,函数中又调用了函数,调用了两个函数,迭代。中的ab是否有*:当传递的是地址值x,y时,只写a,b就行;当传递的是地址中的值(即指针)&x,&y时,ab要加上*。这个是集变量定义和赋值于一身,所以是对的,但是要是只是写*pk=&k就是错的,要么*pk=*(&k),要么pk=&k。**k是指指向指针*k的指针是。8.9中j是a。当一个指针还没有指向一个具体的变量地址时,对它进行的赋值都是不合法的。第九章数组9-4课#includemain(){inta[10];in

7、ti;for(i=0;i<10;i++){scanf("%d",&a[i]);printf("a[i]=%d",a[i]);}}如果没有蓝色的这两个括号,这个程序就不能输入一个输出一个,因为for循环只控制最近的。&a[i]这个有了指针后很少用,还可以把&a[i]换成指针,如下面这个程序所示。虽然输出的是10个数,但其实指针并没有移动,根本就没有输出这么多数,只有a[0]接受到了,首地址嘛。所以要再加上一个for循环,控制输出。#includemain(){inta[10];inti,*

8、p;p=a;for(i=0;i<10;i++)scanf("%d",p++);for(i=0;i<10;i++)若这个for没有,那么最后的输出就不会都出现。printf("a[%d]=%d",i,a[i]);}9-5输出部分是输出一个数判断一次,取余10时是否为零,是否换行。还有把30直接定义成字符变量m,以后直接可用m。如下a指向a数组的首地址,所以p=a+4之后,就指向了a数组中的第五个数,即

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。