C语言期末实验之函数

合集下载

C语言期末复习例题

C语言期末复习例题

1.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?()2.输入三角形边长,求面积(顺序)3. 输入三个数,按由小到大的次序输出(选择)4.读10个整数存入数组,找出其中最大值和最小值(数组)5. 把100~200之间不能被3整除的数输出(作图,写程序)6.输入两个整数,求平方和(函数)7.求10个学生的平均成绩(函数-数组)8.把一个学生的信息放在一个结构体变量中,然后输出这个学生的信息(结构体)。

9,输出程序的运行结果(指针)#include <stdio.h>void main(){char string1[]={"ABCDEFGHIJ"};char string2[10];void s(char *p,char *q,int m);s(string1,string2,5);printf("%s\n",string2);}void s(char *p,char *q,int m){int n=0;while(n<m-1){n++;p++;}while(*p!='\0'){*q=*p;p++;q++;}*q='\0';}(1)#include <stdio.h>void main(){float downHeight = 100;float upHeight = 0;float totalLength = 0;int i;totalLength = downHeight;//第一次落下for(i=0;i<9;i++){upHeight = downHeight/2;//新的高度downHeight = upHeight;totalLength += upHeight+downHeight;//跳起再落下次数i+2 }printf("%d次落下经过的长度:%f\n",i+1,totalLength);printf("第%d次反弹高度为:%f\n",i+1,upHeight/2);(2)#include <math.h>#include <stdio.h>void main(){ float a,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n",a,b,c,s);printf("area=%7.2f\n",area);}(3)#include <stdio.h>void main(){ float a,b,c,t ;scanf("%f,%f,%f",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf(“%5.2f,%5.2f,%5.2f”,a,b,c);}(4).#include <stdio.h>#define SIZE 10void main(){ int x[SIZE],i,max,min;printf("Enter 10 integers:\n");for(i=0;i<SIZE;i++){ printf("%d:",i+1);scanf("%d",&x[i]);}max=min=x[0];for(i=1;i<SIZE;i++){ if(max<x[i]) max=x[i];if(min>x[i]) min=x[i];}printf("Maximum value is %d\n",max);printf("Minimum value is %d\n",min);}(5).#include <stdio.h>void main(){ int i;for(i=100;i<=200;i++){ if(i%3= =0)continue;printf(“%d”,n);}}(6)#include <stdio.h>int fun1(int x,int y);void main(void){ int a,b;scanf(“%d%d”,&a,&b);printf(“The result is:%d\n”,fun1(a,b) ); }int fun1(int x,int y){ int fun2(int m);return ( fun2(x)+fun2(y) );}int fun2(int m){ return (m*m);}(7)#include <stdio.h>void main(){ float average(float array[10]);float score[10], aver;int i;printf("Input 10 scores: \n");for( i=0; i<10; i++ )scanf("%f", &score[i]);printf(“\n”);aver=average(score);printf("Average is: %5.2f", aver);}float average(float array[10]){ int i;float aver,sum=array[0];for( i=1; i<10; i++ )sum=sum+array[i];aver=sum/10;return (aver);}(8)#include <stdio.h>void main(){struct student{ int num; char name[20];char sex; char addr[20];}student1={10101,“Li Lin”,‘M’,“123 Beijing Road”};printf("NO.:%d\nname:%s\n sex:%c\naddress:%s\n",student1.num, , student1.sex, student1.addr);}。

清华大学“C语言程序设计”期末试卷

清华大学“C语言程序设计”期末试卷

样例: 输入 1 2 -4 0 32 1 -2 2 输出 3 -4+x^2
第三部分
综合问题 (任选一题完成,共 10 分)
3-A. 代数式处理 ( 3-A.cpp ) 读入一个仅含变量 x 的代数式和 x 的值, 输出该式在 x=x0 处的函数值和导函数的值。 表达式中除了字母 x 和+, -, *, /, (, )外没有其他字符
试卷说明: 考试形式为上机考试,考试时间总计 3 小时 请在 C 盘根目录下建立一个子目录,以自己的学号命名,并将所有的程序存入 此目录。如,学号为 010000 的同学,需要建立目录 C:\010000,并将程序存入 此目录。按照题目名称中指定文件名保存你的程序,并保存一个备份,以免程 序被意外破坏。例如,第一题应当保存一个叫做 1-1bak.cpp 的文件。 3-A 和 3-B 最多只能选择一道题目。如果同时存在 3-A.cpp 和 3-B.cpp,我们将 随机选择一道题目进行评分。 所有题目采用键盘输入和屏幕输出,你的程序不得访问任何文件。 评分时将查看源程序,请严格遵守题目中给出的限制。
输入: 先读入一个字符串,字符总数不超过 100 并且不会有格式错误的代数式。 然后读入一实数作为 x0 的值。
输出:
7
包含两个实数,分别是函数值和导函数值。把所得结果保留 2 位小数输出。如果出 现分母为 0 的情况则只输出一个字符串"error"。
样例: 输入 x*(x+x/x) 100 输出 10100.00 201.00
输入: 第 1 行为一个整数 t,表示任务的类型,t=1 表示做加法,t=2 表示做减法。 第 2 行为 1 个整数 n,表示需要计算的数的位数。 以后 n 行,每行为 2 个数字,分别是同一位上的被加数和加数(当 t=1 时);或被 减数和减数(当 t=2 时)。从第 3 行起,位数依次由高到低,第 3 行为最高位,第 n+2 行为最低位。

重庆邮电大学c语言上机实验期末实验报告

重庆邮电大学c语言上机实验期末实验报告

C语言程序实验报告姓名:班级:学号:学院:自动化第一章熟悉c语言编程环境实验目的及要求(1)了解c语言编程环境visual c++6.0的组成。

(2)了解并掌握c语言集成开发环境visual c++6.0的使用方法(3)了解并掌握c语言程序的基本结构,能够编写简单的程序(4)掌握c语言程序的上机步骤实验步骤:例1-1:编写一个简单的c语言程序,在屏幕上显示:”Hello World!”。

#include<stdio.h>void main(){printf("Hello World!\n");}实习题目1.41.写出下面程序执行结果。

#include<stdio.h>void main(){printf("我可以写c语言程序了!\n");}2编写c程序#include<stdio.h>void main(){printf("*\n");printf("**\n");printf("***\n");}第二章简单c语言程序设计实验目的及要求(1)进一步熟悉并掌握visual c++6.0集成开发环境的使用(2)熟练掌握c语言程序上机编写的步骤(3)掌握算术表达式、赋值表达式的使用(4)掌握c语言输入、输出函数的使用(5)能够编写简单的c语言程序(6)掌握简单c语言程序的差错方法实验步骤:例2-1:已知两个变量a、b,其值分别为100和200,编程求它们的和sum。

#include<stdio.h>void main(){int a,b,SUM;a=100;b=200;SUM=a+b;printf("他们的和是%d\n”,SUM);}例2-2已知一个圆柱体的半径r为6,高h为7,编写程序求圆柱体的体积。

#include<stdio.h>void main(){float r,h;float s;float v;r=6.0;h=7.0;s=3.14*r*r;v=s*h;printf("圆柱体的体积为%f\n",v);}2.4实习题目1写程序结果#include<stdio.h>void main(){int a;float b;a=4;b=9.5;printf("a=%d,b=%4.2f\n",a,b);}2已知直角三角形的两个直角边长分别为3、4,求此直角三角形的斜边长c及面积s。

大学计算机C语言期末考试 (C语言考试系统)

大学计算机C语言期末考试 (C语言考试系统)

一填空题1.已知a=13,b=6, a^b的十进制数值为【1】2. 如果函数不要求带回值,可用【1】来定义函数返回值为空.3. 当a=3,b=2,c=1;时,执行以下程序段后 b=【1】. if(a>b) a=b; if(b>c) b=c; else c=b; c=a;答:14. c语言程序的三种基本结构是:顺序结构,选择结构,【1】结构.答:循环结构5. C程序在执行过程中,不检查数组下标是否【1】.6. 若有定义:int a[3][2]={2,4,6,8,10,12};,则*(a[1]+1)的值是【1】.7. C语言中调用【1】函数来关闭文件.8. 在c程序中,只能给指针赋NULL值和【1】值.9. 表达式 i++ 相当于表达式i=【1】.10.若x和n均是int型变量,且x和n的初值均为5,则计算表达式 x+=n++ 后x的值为【1】,n 的值为【2】.二判断题1. #define 和printf 都不是C语句。

2. 在Turbo C中,整型数据在内存中占2个字节。

3. 语句scanf("%7.2f",&a);是一个合法的scanf函数。

4. 如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。

5. 若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为6。

6. 如果有一个字符串,其中第十个字符为'\n',则此字符串的有效字符为9个。

7. 结构体类型只有一种。

8. 在C 语言中,此定义和语句是合法的:enum aa{ a=5,b,c}bb;bb=(enum aa)5;9. 7&3+12的值是15。

10. 若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。

三单选题1. 以下程序段的输出结果为()。

char c[]="abc"; int i=0; do ;while(c[i++]!='\0');printf("%d",i-1);(A)abc(B)ab(C)2(D)32. 以下叙述正确的是()。

2022年宜春学院公共课《C语言》科目期末试卷A(有答案)

2022年宜春学院公共课《C语言》科目期末试卷A(有答案)

2022年宜春学院公共课《C语言》科目期末试卷A(有答案)一、填空题1、请读以下函数:getbits(unsigned x,unsigned p,unsigned n)'{x=((x<<(p+1-n))&((unsigned)~0>>n));return(x);}假设机器的无符号整数字长为16位。

若调用此函数时x=0115032,p=7,n=4,则函数返回值的八进制数是_______。

2、一个C语言源程序由若干函数组成,其中至少应含有一个________3、结构化程序由________、________ 、________ 3种基本结构组成。

4、若采用十进制数的表示形式,则077为_______,0111为_______,0xab为_______。

5、在C语言中,用“\”开头的字符序列称为转义字符。

转义字符“\n”的功能是_______;转义字符“\r”的功能是_______。

6、若有以下定义和语句:int*p[3],a[6],i;for(i=0;i<3;i++)p[i]=8&a[2*i];则*p[0]引用的是a数组元素_______,*(p[1]+1)引用的是a数组元素_______。

7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。

函数中错误的部分是_______,改正后为_______。

void add(float a,float b){float c;c=a+b;return c;}8、已有定义int a;float b,x;char cl,c2;为使a=3、b=6.5、x=12.6、cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为_______。

9、设有如下结构体说明:struct ST{int a;float b;struct ST*c;doublex[3];}st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。

云南师范大学《C语言》期末考试样卷及答案

云南师范大学《C语言》期末考试样卷及答案

云南师范大学《C语言》期末考试样卷及答案云南师范大学2011-2012学年下学期统一考试《计算机技术基础》(C语言)期末考试样卷考试方式(闭卷机考)考试时量:100分钟试卷编号(样卷)一、判断题:(每题1分,共15分)1.在C程序中,注释内容在编译时被忽略,因此好的C程序不需要注释。

BA.对B.错2.#define是一种特殊的C语句,在行末没有分号。

BA.对B.错3.C语言中表达式3%2是合法的表达式。

AA.对B.错4.在C程序中,赋值语句x=123和x=0123后,变量x的值是不同的。

AA.对B.错5.2&&3的结果为1。

AA.对B.错6.C程序总是从程序的第一条语句开始顺序执行。

BA.对B.错7.C语言中,函数的定义可以嵌套。

BA.对B.错8.结构体中的成员变量可以有不同的数据类型。

AA.对B.错9.出现在主调函数之前的用户自定义函数,可以不必加函数声明。

AA.对B.错10.C语言中用for循环语句实现的功能,用while循环语句不一定能实现。

BA.对B.错11.有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为5的表达式是*(P+4)。

AA.对B.错12.字符串和字符数组都要求其最后一个字符为’\0’。

BA.对B.错13.合理使用共用体可以节省内存空间。

AA.对B.错14.函数是C程序的基本单位。

AA.对B.错15.全局变量在程序中的任何地方都有效。

BA.对B.错二、单选题(在本题的每一小题的被选答案中只有一个正确答案,多选不给分,每题1分,共40分)1、下面叙述错误的是____。

DA.C程序中,各种括号应成对出现B.C程序中,赋值号的左边不可以是表达式C.C程序中,变量名的大小写是有区别的D.C程序中,若未给变量赋初值,则变量的初值自动为02.有宏定义:#define E 2.718则编译预处理时将E替换成一个____。

DA.单精度常量B.单精度变量C.双精度变量D.字符串3、C程序中,合法的关键字是____。

C语言程序设计实验五:函数(5篇范例)

C语言程序设计实验五:函数(5篇范例)第一篇:C语言程序设计实验五:函数C语言程序设计实验五:函数1、定义函数返回两个数中较大的数,在主函数中通过调用该函数求三个数中较大的数并输出,编写主函数调用该函数。

说明:(1)请大家按学号来坐,便于考勤和管理。

(2)请珍惜宝贵的实验时间!不要做与实验无关的事情,比如聊QQ、上网或打游戏。

(3)直接把C语言代码粘贴到相应的实验题目下方,上交实验报告时只交word文档。

(4)文档名称:班级+学号后2位+姓名+实验编号,例如12通1班12张山实验五.doc。

第二篇:C语言程序设计实验七:函数、数组、指针C语言程序设计实验七:函数、数组、指针1、程序运行后,用户任意输入一个字符串,求出字符串长度,然后输出字符串内容及个数。

不能使用strlen函数。

求字符串长度函数的函数原型必须如下:int MyStrLenPt(char *str)若输入:nihao123!则输出:nihao123!:9 chars2、编写一个对一维数组进行排序的程序。

要求:写两个函数,一个主函数,一个sort函数。

在主函数中完成数组的输入和输出,通过调用sort函数对数组进行排序。

sort函数的原型为:voidsort(int*p, intn);说明:(1)请大家按学号来坐,便于考勤和管理。

(2)请珍惜宝贵的实验时间!不要做与实验无关的事情,比如聊QQ、上网或打游戏。

(3)直接把C语言代码粘贴到相应的实验题目下方,上交实验报告时只交word文档。

(4)文档名称:班级+学号后2位+姓名+实验编号,例如11电1班12张山实验七.doc。

第三篇:C语言程序设计—函数—实验报告实验报告专业软件工程班级X班学号_ XXXXXXXXXXX_姓名实验日期:201X年X月X日报告退发(订正、重做)课程C程序设计实验实验名称函数一、实验目的① 熟练掌握C程序中函数的定义;② 掌握函数的调用,函数参数的传递;③ 熟练掌握函数的嵌套调用和递归调用;二、实验环境(描述实验的软件、硬件环境)① 软件环境:windows xp/win7等操作系统,Microsoft Visual C++ 6.0编译器;② 硬件环境:PC机一台三、实验内容、步骤和结果分析题目一:编写一个用来判断质数(素数)的函数。

大二c语言期末考试知识点总结

大二c语言期末考试知识点总结C语言作为一门通用的高级编程语言,广泛应用于软件开发、嵌入式系统以及科学计算等领域。

作为大二学生,我们所学的C 语言知识也逐渐深入,为期末考试做好充分的准备非常重要。

下面是我对大二C语言期末考试的知识点进行的总结:一、基本语法和数据类型1. C语言的基本组成部分(头文件、函数、变量等)2. 基本数据类型(整型、浮点型、字符型等)3. 常量和变量的定义及使用4. 运算符(算术运算符、关系运算符、逻辑运算符等)5. 条件语句(if语句、switch语句)6. 循环语句(while循环、for循环)二、数组和字符串1. 数组的定义及使用2. 数组的初始化和操作3. 多维数组的定义和使用4. 字符串的定义和操作5. 字符串的输入输出6. 字符串的比较和拼接三、函数和指针1. 函数的定义和调用2. 函数的参数传递(值传递、地址传递)3. 函数的返回值和递归调用4. 指针的定义和使用5. 指针与数组的关系6. 动态内存分配和释放四、文件操作1. 文件的打开和关闭2. 文件的读取和写入3. 文件指针的操作4. 文件的复制和删除5. 文件的位置指示器和定位五、结构体和枚举1. 结构体的定义和使用2. 结构体的成员和操作3. 枚举类型的定义和使用4. 枚举类型的遍历和比较六、高级特性1. 内存管理(静态内存、栈内存和堆内存)2. 预处理器指令(宏定义、条件编译)3. 大型程序的模块化设计4. 异常处理和错误调试5. 指针与函数指针的应用6. C语言的标准库函数(文件操作、字符串处理、数学函数等)以上是大二C语言期末考试的主要知识点总结,希望对你的复习有所帮助。

在备考期间,要保持良好的学习习惯,多进行实验和编程练习,加深对知识点的理解与掌握。

祝你在考试中取得优异的成绩!。

c语言期末考试试题及答案

1。

一个C程序的组成部分可以是()。

A)一个主函数和一至若干个其他函数B)一至若干个主函数C)一个主程序和一至若干个其他函数D)一个主程序和一至若干个子程序2. 一个C程序的执行是从().(A)本程序的main函数开始,到main函数结束(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束(C)本程序的main函数开始,到本程序文件的最后一个函数结束(D)本程序文件的第一个函数开始,到本程序main函数结束3. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。

A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母、数字和下划线中任一种字符4. 设有定义:int m=1,n=-1;则执行语句printf("%d\n",(m-—&++n);后的输出结果是()。

A)–1 B)0 C) 1 D) 25. 表达式11&10的结果用二进制表示为().A)11B)3C)1D)106. 设有语句int a=3;则执行语句a+=a—=a*a后,变量a的值是()。

(A)3(B)0(C)9(D)-127. 在下列选项中,不的赋值语句是().A)t/=5;B)n1=(n2=(n3=0));C)k=i==j;D)a=b+c=1;8。

下列()表达式不满足:当x的值为偶数时值为”真”,为奇数时值"假".A)X%2==0B)!x%2!=0C)(x/2*2-x)==0D)!(x%2)9。

若有定义:int a=8, b= 5,c;执行语句c=a/b+0。

4 后c的值为()A) 1.4 B)1 C) 2。

0 D)210。

假设a=3,b=4,c=5,则逻辑表达式:!(a+b)+c-1&&b+c/2的值是().A)true B)false C)0D) 111。

若int a=3,b=4;则执行c=a++>2||b-->=4之后,b变量的值为()。

c语言实验报告函数总结心得

c语言实验报告函数总结心得本次实验是关于C语言函数的学习和实践,通过对各种函数的手动实现和调用掌握了函数的概念、定义、声明、调用以及传参等知识点。

在实验过程中,我遇到了许多问题,但是通过自己的努力以及与同学和老师的交流,最终解决了这些问题,获得了许多收获和体会。

首先,函数的概念是我们学习的第一个重要知识点。

函数是一段可重用的代码,可以通过函数名进行调用,可以在程序的不同位置多次使用,提高了代码的可读性和维护性。

在函数的定义中,需要指定返回值类型、函数名、参数数量和类型等信息。

在调用函数时,需要按照函数定义中规定的参数类型和顺序传递实参,并根据需要保存函数返回值。

其次,函数的参数传递方式是我们需要掌握的难点之一。

C语言中有多种参数传递方式,包括传值、传址(指针)和传数组等。

函数参数的传递方式会对函数的运行效率和代码结构产生影响。

在实验中,我们通过手动实现字串反转、矩阵转置和选择排序等算法,深入理解了参数传递方式的运用和区别。

另外,在实验中我们还需要学习函数的声明和调用方法。

函数的声明是在不同文件中搭建合理的程序框架所必需的,在函数声明中需要指定参数类型与返回值类型。

函数的调用是在程序具体实现过程中使用的,调用函数时需输入实参,确保函数的正确调用。

在函数的声明和调用中,需要注意参数与返回值的匹配问题,以保证程序的正确性。

最后,在函数实现的过程中,可以使用循环、条件语句、指针和递归等方法,实现各种复杂的算法和操作。

循环语句可以对数据进行重复操作,条件语句可以根据不同条件选择不同的分支,指针可以提高数据的操作效率和灵活性,而递归则可以实现更复杂的算法和数据结构。

在实验过程中,我们通过实现不同的算法,对这些方法的使用和优缺点进行了深入探讨。

总之,通过这次实验,我对C语言函数有了更加深入的理解和掌握。

掌握了函数的定义、声明、调用和传参等核心知识点,同时还进一步学习了诸如指针、递归、数组、链表等数据结构和算法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高级语言程序设计
实验报告
实验编号 1505B000106 实验名称函数调用
实验地点软件实验室(二)
班级18计嵌2
学号20180505216
姓名王尊
一、实验目的
1.设计函数的参数与返回值并实现函数的调用;
2.分析递归函数的执行过程,设计递归函数。

二、实验原理
1.真正的编程工作中,我们需要完成的代码将非常大,所以将代码合理的分为不同的区块,每一个区块具有相对独立的功能,并为其它程序提供对外调用的参数和返回值。

由多个区域组成的程序才会让程序阅读者更方便的理解程序设计的理念。

并可以通过函数让功能被封装起来,使得一个功能可以在不同的情况下被其它功能调用,函数的概念就是这样产生的。

2.当我们调用函数时,对其传入的参数和函数体内接收到的参数其实并不是同一个变量。

调用函数时向函数传入的参数称作实际参数,简称实参,而函数体内部用于接收外部调用时传入的参数的参数称为形式参数,简称形参。

3.根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。

如果一个函数只能被本文件中其他函数所调用,它称为内部函数。

在定义内部函数时,在函数名和函数类型的前面加static,可以使函数的作用域只局限于所在文件。

即使在不同的文件中有同名的内部函数,也互不干扰。

3.
三、实验内容
问题1
输入一批正整数(以零或负数为结束标志),求其中的奇数和。

要求定义和调用函数even(n)判断数的奇偶性,当n为偶数时返回1,否则返回0。

#include "stdio.h"
int even(int n){
if(n%2==0)return 1;
else return 0;
}
int main()
{
int n, s = 0;
scanf("%d", &n);
while (n != 0) {
if (even(n) == 0) {
s += n;
}
scanf("%d", &n);
}
printf("%d\n", s);
return 0;
}
问题2
编写一个函数int same_set(int a[],int b[],int len),该函数检查相等长度的两个数组是否包含相同的元素,若包含相同的元素,则返回1,否则返回0。

其中参数len 是数组a与数组b的元素个数。

不考虑元素的顺序,如果元素重复,重复次数也相同。

在main函数中读入两个整数数组,测试该函数。

#include "stdio.h"
int same_set(int a[],int b[],int len){
int i;
for(i=0;i<len;i++)
if(a[i]!=b[i])return 0;
else return 1;
}
int main(int argc, char* argv[])
{ int m,n,i;
scanf("%d",&n);
int a[50],b[50];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
scanf("%d",&b[i]);
m=same_set(a,b,n);
printf("%d\n",m);
return 0;
}
问题3
输入一个正整数n,生成一张阶乘表,输出1! ~n! 的值。

要求定义和调用函数fact(n)计算n!,函数类型为double。

#include "stdio.h"
double fact(int n){
if(n==0) return 1;
else return n*fact(n-1);
}
int main()
{ int i,n;
scanf("%d",&n);
for(i=1;i<n+1;i++)
printf("%d!=%.0lf\n",i,fact(i));
return 0;
}
问题4
编写一个函数isprime(n).判断整数n是否为素数。

编写程序使用此函数,当输入一个整数时,对它进行判断,当为素数时,输出1;否则,输出0。

#include "stdio.h"
#include "math.h"
int isprime(int n){
int m=(int)sqrt(n);
int i;
for(i=2;i<=m;i++){
if(n%i==0)return 0;
else return 1;
}
}
int main()
{ int n,t;
scanf("%d",&n);
t=isprime(n);
printf("%d\n",t);
return 0;
}
问题5
编写一个函数sum(i),将输入的整型形参数i(i≥0)的各位求和,返回求和结果。

在main()函数中测试此函数,从键盘输入整数n(n∈[1,20]),然后再输入n个非负整数,对于每一个非负整数调用sum函数求各位数和,将结果输出到屏幕。

#include "stdio.h"
int hu(int n)
{
int i,m=0;
for(i=1;;i++)
{
m+=n%10;
n=n/10;
if(n<1)break;
}
return(m);
}
int main()
{
int n,i;
int a[100];
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=n;i++)
{
printf("%d \n",hu(a[i]));
}
return 0;
}
问题6
编写程序,输入2 个正整数m 和n(m≤n),计算并输出从n 个不同元素中取出m 个元素的组合数,要求定义和调用函数fact(n)计算n!,函数类型为double。

#include "stdio.h"
double fact(int n){
if(n==0) return 1;
else return n*fact(n-1);
}
int main()
{ int m,n,t;
scanf("%d%d",&m,&n);
t=fact(n)/fact(n-m)*fact(m);
printf("%d\n",t);
return 0;
}
四、实验小结
对于函数调用的实验,将部分功能写入一个函数里,以供调用是很方便的。

如判断奇偶的函数和计算阶乘的函数和计算各位和的函数,都在本实验中得到良好运用。

被调用的函数必须在被调用的位置之前进行声明,如果函数的定义代码本来就在被调用的位置之前,则不需要重新声明。

相关文档
最新文档