函数学习与部分习题分析

题一:交换两个整数

由于函数的形式参数仅仅是原参数的一份拷贝,无法对函数原参数产生实质改变,因此我选择使用&a,&b这样的实际参数,使用指针变量*x与*y分别接收。由于指针变量就是用于存放地址,所以指针变量*x,*y的地址分别和&a,&b相同。,即当*x发生改变时,原参数也发生改变,再引入一个局部变量tmp,这样我们就能实现函数中整数的换位!

题二:判断一个年份是否是闰年

 

多组输入:这里我采用了多组输入的方式,使得程序能够判断更加多的年份。因为scanf函数在我输入一个值后,其会返回一个1.同理,倘若你输入两个值,其会返回2,将此放入while中即可达成多组输入的目的,当你想要不在输入一个数字时,只按一下回车键即可,因为此时无值输入,scanf函数返回一个0,与while中的条件不符,循环无法继续进行。

定义一个常量接收函数返回值再衔接if条件判断:我们写函数时可以常定义一个变量去接收函数返回值,因为形式参数作为一个局部变量,在程序走出函数时,函数的局部变量就被销毁,我们需要一个变量来接受函数的结果,并且这还有利于衔接条件判断,使得程序的逻辑更加清晰!

 题目三:利用函数打印出一个范围内的素数,如100~200

 

这道题的难点在于两个for循环嵌套的使用熟悉程度.

当num=100时,进入Judge函数,因为x是num的形式参数,所以x=100,而第二个循环此时对y大小的要求是2~99,倘若此处没有return 0,而是printf(“%d”,x/y)的话,程序会用x=100去依次除以y=2~99所有的数并打印出来,而此时有return,程序即会在第一次x%y==0时就终止此次剩余所有循环,返回0 ,由于C语言的特点就是非零为真,零为假,这使得0进入到if中时,会因不满足条件,令程序停滞不前。

当一个数完完整整不满足x%y==0时,程序走出第二个for,来到return 1这里,1被返回至if的条件中去,满足C语言逻辑,程序往下走,将这个数打印出来!

函数学习的日常积累:

1.一个函数仅能返回一个结果

2.一个函数内复合语句中定义的变量只能在复合语句中使用,并非全函数范围内适用

3.函数能够嵌套调用,不得嵌套定义

4.一个C语言源程序中,main函数的位置可以任意

5.在不同的函数中可以使用相同名称的变量,这是因为不同的函数拥有不同的作用域,各自的变量仅在各自作用域中存活

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值