四川师范大学c语言实验报告(4)

2019-06-11 12:48

{ if(a[i]

(3)测试数据:137 114 155 107 146 173 160 166 172 186 (4)运行结果:186 173 172 166 160 155 146 137 114 107 (5)问题及解决方法:无 三、实验总结:

(1)熟练地掌握了选择排序和穷举算法的使用; (2)掌握了对二维数组的简单的使用。

实验五 函数 实验

(验证性 综合性 实验 5学时)

一、目的要求:

(1)学习函数的编程思想,编写一个包括3~4个函数的程序。 (2)掌握函数中参数传递的两种方式和函数的相互调用。 (3)编写实验报告。

二、实验内容(参考实验指导书):

1、写一个函数int digit( int n , int k ),它返回数n的从右向左的第k个十进数字值。例如,函数调用digit(1234,2)将返回值3。 (1)算法描述:

int digit( int n , int k ) {

for(i=0;i

{

d=n; n=n/10; } return d;

}

用scanf输入数,调用函数int digit输出结果

第 16 页 共 16 页

(2)源代码及说明: #include int digit(int n,int k) { int i; int m; for(i=0;i

main() { int x; x = digit(1234,2); printf(\}

(3)测试数据:digit(1234,2)将返回值3 (4)运行结果:3

(5)问题及解决方法:无

2、写一个函数int isprime(int n),当n是质数时,函数返回非零值;当n是合数时,函数返回零值。

(1)算法描述:

int isprime(int n){ for(i=2;i

if(n%i==0) return 0; else

return 1; } }

if(n==1) return 0 (2)源代码及说明:

#include int isprime(int n) {

int i;

if(n==1) { return 0; }

第 17 页 共 17 页

for(i=2;i<=n-1;i++){ if(n%i==0){ return 0; } }

return 1; }

main() {

int r;

r = isprime(5); printf(\ r = isprime(8); printf(\}

(3)测试数据:2 4 (4)运行结果:1 0

(5)问题及解决方法:无

3、写一个函数reverse( char s[]),将字符串s[]中的字符串倒序输出。试分别用递归和非递归两种形式编写。 (1)算法描述:

递归:递归的出口:

if(n==1)

printf(\

递归的形式

printf(\ s[n-1]='\\0'; reverse(s); 非递归:

利用倒序特点,进行交换

for(i=0;i

(2)源代码及说明: 递归:

void reverse( char s[]) { int n; n=strlen(s); if(n==1) {

第 18 页 共 18 页

printf(\ return ; } printf(\ s[n-1]='\\0'; reverse(s); }

非递归:

void reverse( char s[]) { int n; int i,j; char temp; n=strlen(s); if(n==1) { printf(\ return ; } for(i=0;i

(3)测试数据: (4)运行结果:

(5)问题及解决方法:

4、写一个主函数输入测试数据(自己指定),并调用上述函数,检查函数功能的正确性。 (5)一个数如果从左到右和从右到左读,数字是相同的,则称这个数字为回文数,比如898、1221、15651都是回文数。求:既是回文数又是质数的5位十进制数有多少个?要求:回文判断和质数判断都需要通过子函数实现,输出的时候要求5个数字一行。 (1)算法描述:

用递归和非递归写出函数reverse( char s[]) 递归:递归的出口:

if(n==1)

printf(\

递归的形式

第 19 页 共 19 页

printf(\ s[n-1]='\\0'; reverse(s); 非递归:

利用倒序特点,进行交换

for(i=0;i

}

写出主函数,调用函数reverse( char s[]) (2)源代码及说明: 递归:

#include #include void reverse( char s[]) { int n; n=strlen(s); if(n==1) { printf(\ return ; } printf(\ s[n-1]='\\0'; reverse(s); }

int main() { char text[10]={'a','b','c','d','e','f','g','h','m','o'}; int i,n=10; for(i=0;i

非递归:

#include #include

第 20 页 共 20 页


四川师范大学c语言实验报告(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版小学五年级下册语文1-8单元测试卷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: