当前位置:文档之家› C语言函数练习题2

C语言函数练习题2

C语言函数练习题2
C语言函数练习题2

/*

姓名:白银

日期:

描述:英尺,英寸,米,厘米之间的转换*/

#include <>

float GetInch(float feet);

float GetMeter(float inch);

float GetCentiMeter(float meter); void main()

{

float inch;

float meter;

float centimeter;

printf("请输入英尺的值\n");

scanf("%f",&feet);

inch=GetInch(feet);

printf("转换成英寸的结果是%.2f:",inch);

printf("\n");

meter=GetMeter(GetInch(feet));

printf("转换成米的结果是%.2f:",meter);

printf("\n");

centimeter=GetCentiMeter(GetMeter(GetInch(feet))); printf("转换成米的结果是%.2f:",centimeter);

printf("\n");

}

float GetInch(float feet)

{

inch=feet*12;

return inch;

}

float GetMeter(float inch)

{

float meter;

meter=inch*;

return meter;

}

float GetCentiMeter(float meter) {

float centimeter;

centimeter=meter*100;

return centimeter;

}

/*

姓名:白银

日期:

描述:底和高求三角形面积

*/

#include <>

float GetArea(float h,float l); void main()

{

float area;

float h;

float l;

printf("请输入底和高\n"); scanf("%f,%f",&l,&h);

area=GetArea(h,l);

printf("三角形面积=%.2f",area); printf("\n");

}

float GetArea(float h,float l) {

float area;

area=h*l/2;

return area;

}

/*

姓名:白银

日期:

描述:函数递归求阶乘

*/

#include <>

int GetFactorial(int number); void main()

{

int number;

unsigned long int result; printf("请输入number的值\n"); scanf("%d",&number);

result=GetFactorial(number); printf("结果是%d\n",result);

}

int GetFactorial(int number) {

int result;

if(number==1)

{

result=1;

}

else

{

result=GetFactorial(number-1)*number; }

return result;

}

/*

姓名:白银

日期:

描述:画出一个正方形

*/

#include <>

void Draw(int num);

void OutPut1(int num);

void OutPut2(int num);

void main()

{

int num;

printf("请输入正方型的行数\n"); scanf("%d",&num);

Draw(num);

printf("\n");

}

void OutPut1(int num)

{

int i;

for(i=0;i

printf("*");

}

for(i=0;i

printf("\n");

}

}

void OutPut2(int num) {

int i;

for(i=0;i

printf("\n");

for(i=0;i

printf("*");

}

}

void Draw(int num) {

int i;

int j;

OutPut1(num);

for(i=0;i

for(j=0;j

{

if((i==0&&j==0)||(i==(num-1)&&j==0)||(i==(num-1)&&j== (num-1))||(i==0&&j==(num-1)))

{

printf("*");

}

else

{

printf(" ");

}

}

printf("\n");

}

OutPut2(num);

}

/*

姓名:白银

日期:

描述:求出3个数字的立方的和

*/

#include <>

#include <>

float GetNumber(float a,float b,float c); void main()

{

float a,b,c;

float num;

printf("请输入3个数字\n");

scanf("%f%f%f",&a,&b,&c);

num=GetNumber(a,b,c);

printf("结果=%.2f\n",num);

float GetNumber(float a,float b,float c) {

float num;

num=(float) (pow(a,3)+pow(b,3)+pow(c,3)); return num;

}

/*

作者:白银

日期:

描述:输入一定的钱数,得出最少需要多少张

*/

#include <>

int GetMoney(int *num,int money);

void main()

int a[7];

int *p;

int num;

p=#

printf("请输入钱数\n");

scanf("%d",p);

a[0]=GetMoney(p,100);

a[1]=GetMoney(p,50);

a[2]=GetMoney(p,20);

a[3]=GetMoney(p,10);

a[4]=GetMoney(p,5);

a[5]=GetMoney(p,2);

a[6]=GetMoney(p,1);

printf("需要100元的%d张\n",a[0]);

printf("需要50元的%d张\n",a[1]); printf("需要20元的%d张\n",a[2]); printf("需要10元的%d张\n",a[3]); printf("需要5元的%d张\n",a[4]); printf("需要2元的%d张\n",a[5]); printf("需要1元的%d张\n",a[6]);

}

int GetMoney(int *num,int money) {

int count;

count=*num/money;

*num=*num%money;

return count;

}

/*

作者:白银

日期:2007,6,11

描述:输入一个数转换成16,2,12,7,8进制的数字,并且输出。。。。*/

#include <>

void GetSixteen(int num);入成绩\n2.成绩排序\n3.成绩输出\n4.退出");

printf("\n****************************************\n");

scanf("%d",&b);

if(b==1)

{

num=InPut(a);

printf("学员总数是%d",num);

}

else if(b==2)

{

Sort(a,num);

}

else if(b==3)

{

OutPut(a,num);

}

}

}

int InPut(int *a)

{

int i;

printf("请输入学员的成绩(00为退出输入)\n"); for(i=0;i

{

scanf("%d",a+i);

if(*(a+i)==00)

{

break;

}

}

return i;

}

void OutPut(int *a,int num) {

int i;

printf("成绩输出\n");

for(i=0;i

{

printf("%d ",*(a+i));

}

printf("\n");

}

void Sort(int *a,int num) {

int i;

int j;

int temp;

for(i=0;i

for(j=0;j

{

if(*(a+j)>*(a+j+1))

{

temp=*(a+j);

*(a+j)=*(a+j+1);

*(a+j+1)=temp;

}

}

}

printf("排序完成\n"); }

C语言实验报告《函数》

C语言实验报告《函数》 C语言实验报告《函数》 学号: __________ 姓名: __________ 班级: __________ 日期: __________ 指导教师: __________ 成绩: __________ 实验四函数 一、实验目的 1、掌握函数定义、调用和声明的方法 2、掌握实参和形参之间的传递方式 3、函数的嵌套调用 二、实验内容 1、写一个函数,将两个字符串连接。(习题 8. 6) 2、编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。(习题 8.9)

3、请将实验三中的实验内容三改正后,再改写成函数形式(排序部分)。物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板 三、实验步骤与过程 四、程序调试记录 一、实验目的 1.观察植物细胞有丝分裂的过程,识别有丝分裂的不同时期。 初步掌握制作洋葱根尖有丝分裂装片的技能。 3.初步掌握绘制生物图的方法。 二、实验原理在植物体中,有丝分裂常见于根尖、茎尖等分生区细胞,高等植物细胞有丝分裂的过程,分为分裂间期和分裂期的前期、中期、后期、末期。可以用高倍显微镜观察植物细胞的有丝分裂的过程,根据各个时期细胞内染色体(或染色质)的变化情况,识别该细胞处于有丝分裂的哪个时期,细胞核内的染色体容易被碱性染料着色。 三、材料用具洋葱根尖、显微镜、载玻片、盖玻片、滴管、镊子、培养皿、铅笔、质量分数为15%的盐酸、体积分数为95%的酒精、质量分数为0.01gml的龙胆紫(或紫药水) 四、实验过程(见书P39) 1.洋葱根尖的培养(提前3—4天) 2.解离: 5min 3.漂洗: 10min 4.染色: 5min

c语言实验报告

C语言实验报告 说明 1,所有程序均用VC6.0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。 2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。 实验2 数据类型、运算符和表达式 一、实验目的: (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。 (2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。 (3)掌握C语言的输入和输出函数的使用 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。 三、程序调试与问题解决: (1)输人并运行下面的程序 #include void main() { char c1,c2; c1='a'; c2='b'; printf("%c %c\n",c1,c2); } ○1运行此程序。 ○2在上面printf语句的下面再增加一个printf语句。

printf("%d %d\n",c1,c2); 再运行,并分析结果。 输出结果如图,编译成功,无错误。 ○3将第3行改为 int c1,c2; 再运行,并分析结果。 ○4再将第4、5行改为 c1=a; c2=b; 再运行,并分析结果。 a,b没有定义,编译报错。 ○5再将第4、5行改为 c1=‘’a‘’; c2=‘’b‘’; 再运行,并分析结果。 ○6再将第4、5行改为 c1=300; c2=400; 再运行,并分析结果。 以字符型输出时,输出的将是300,400对应的字符。 (2)输人并运行教材第3章习题3. 6给出的程序 #include main () { char c1='a',c2='b',c3='c',c4='\101',c5='\116';

游戏C语言实验报告

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录 一、实验目的和要求 .................................................................................................................................................... 二、实验环境、内容和方法 ........................................................................................................................................ 三、程序设计 ................................................................................................................................................................ 四、源代码 .................................................................................................................................................................... 五、调试与运行结果.................................................................................................................................................... 六、总结........................................................................................................................................................................

C语言实验报告参考答案原

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include<> main() {

int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include<> main() { int a,b,c,d; float x; a=160; b=46; c=18;

d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7

C语言实验报告

实验一进制转换 一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、VC6.0的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。 五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制的转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。

七、实验步骤 #include char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void fun(int n, int m) { int i=-1, a[100]; if(m!=16) { while(n) { a[i++]=n%m; n=n/m; } while(i!=-1) printf("%d",a[--i]); printf("\n"); } else { while(n) { a[++i]=num[n%16]; n/=16; } while(i!=-1) printf("%c",a[i--]); printf("\n"); } } int main() { int a, c; char cIn = 0; do { printf("\n输入正整数,转换的进制:"); scanf("%d %d",&a,&c); fun(a,c); printf("Go on? (Y/N):"); cIn = getchar( ); if(cIn == 'N' || cIn == 'n') return 0; } while(1);fun(a,c);

C语言实验报告(四)

C语言实验报告(四) 一、实验目的 1.掌握C语言中函数和模块 2.掌握怎样定义函数,如何调用或使用函数,如何声明函数 3.掌握函数的参数,了解在函数调用时,参数是如何传递的 4.在使用函数的过程中怎样确定函数的参数 5.如何使用局部变量和全局变量 二、实验内容 1. 偶数判断 描述: 编写一个用户自定义函数,该函数有一个整型参数,函数的功能是:当这个整型数的值是偶数时,函数的返回值为0,当这个整型数的值是奇数时,返回值为1 。编写一个程序,从键盘输入m个整数,分别调用用户自定义函数来判断这m个整数的奇偶性。 输入: 第一行为一个整数m,表示要判断m个整数的奇偶性;紧接着是m行,每行一个整数。 输出:有m行,分别对应输入的第2到第m+1行的整数的奇偶性样例输入: 2 1 6 样例输出: 奇数 偶数

·程序代码: #include"stdio.h" int isEven(int a) { if(a%2==0) return 1; else return 0; } int main() { int m,i,b; scanf("%d",&m); for(i=1;i<=m;i++) { scanf("%d",&b); if(isEven(b)==1) printf("偶数\n"); else printf("奇数\n"); } return 0; } 2.温度转换 描述: 编写一个用户自定义函数,函数的功能是:将华氏温度转F换为摄氏温度C。转换公式为:C=5*(F-32)/9。编写一个程序,输出指定范围的华氏温度与摄氏温度的对照表,其中华氏温度步长为4。 输入: 两个空格隔开的整数n,m(且0

C语言实验报告范文

实验名称:指针及其应用日期:得分:指导老师: 专业:班次:姓名:学号: 实验目的 (1)掌握变量的指针及其基本用法。 (2)掌握一维数组的指针及其基本用法。 (3)掌握指针变量作为函数的参数时,参数的传递过程及其用法。一.实验内容( 1)运行以下程序,并从中了解变量的指针和指针变量的概念。 (2)运行以下程序,观察 &a[0] 、&a[i] 和 p 的变化,然后回答以下问题: 1.程序的功能是什么? 2.在开始进入循环体之前, p 指向谁? 3.循环每增加一次, p 的值(地址)增加多少?它指向谁? 4.退出循环后, p 指向谁? 5.你是否初步掌握了通过指针变量引用数组元素的方法?( 3)先分析以下程序的运行结果,然后上机验证,并通过此例掌握通过指针变量引用数组元素的各种方法。 ( 4)编写函数,将 n 个数按原来的顺序的逆序排列(要求用指针实现),然后编写主函数完成: ①输入 10 个数; ②调用此函数进行重排; ③输出重排后的结果。 二.分析与讨论 ( 1)指针的定义方法,指针和变量的关系。 定义方法: 数据类型 * 指针变量名 ; 如定义一个指向 int 型变量的指针—— int *p; 则我们可以继续写如下代码—— int a = 4; p = &a; printf("%d", *p); 在这里,我们定义了一个变量a,我们把它理解为内存空间连续的 4个字节(int 型占用 4字节),则这 4个字节的空间保存着一个数 4。&是取地址符号,即把变量a的地址(即这4个字节的首地址)赋给指针p (记住指针p的类型和变量a的类型要保持一致,否则的话,要进行类型转换)。这样子,指针p就保 存着变量a的地址。我们如果把指针p当做内存空间里面另外一个连续的 4个字节,那么这4个字节保存的数就是变量a的地址。printf("%d",*p)和 printf("%d",a)的结果是一样的。这里的*是取变量符号(与&刚好作用相反,通过变量的地址找到变量),与定义时 int *p 的*号作用不同(定义时的 *表示该变量是个指针变量,而非是取它指向的变量)。 ( 2)数组和指针的关系。 指针与数组是 C 语言中很重要的两个概念,它们之间有着密切的关系,利用这种

C语言实验四实验报告——函数

一、实验项目名称 函数 二、实验目的 1.掌握C函数的定义方法、函数的调用方法、参数说明以及返回值。掌握实参与形参的对应关系以及参数之间的“值传递”的方式;掌握函数的嵌套调用及递归调用的设计方法; 2.掌握全局变量和局部变量、动态变量与静态变量的概念和使用方法; 3.在编程过程中加深理解函数调用的程序设计思想。 三、实验内容 1.多模块的程序设计与调试的方法; 2.函数的定义和调用的方法; 3.用递归方法进行程序设计。 具体内容: 1.编写一个函数primeNum(int num),它的功能是判别一个数是否为素数。如果num 是素数,返回该数;否则返回0值。 要求: (1)在主函数输入一个整数num,调用该函数后,输出num是否是素数的信息。输出格式为:num is prime或num is not prime。 (2)分别输入以下数据:0,1,2,5,9,13,59,121,运行程序并检查结果是否正确。 2.编写函数computNum( int num),它的功能是计算任意输入的一个正整数的各位数字之和,结果由函数返回(例如:输入数据是123,返回值为6)。 要求:num由主函数输入,调用该函数后,在主函数内输出结果。 3.编写函数,mulNum(int a,int b),它的功能是用来确定a和b是否是整数倍的关系。如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。 要求: (1)在主函数中输入一对数据a和b,调用该函数后,输出结果并加以相应的说明。例如:在主函数中输入:10,5 ,则输出:10 is multiple of 5. (2)分别输入下面几组数据进行函数的正确性测试:1与5、5与5、6与2、6与4、20与4、37与9等,并对测试信息加以说明。 4.编写一个计算组合数的函数combinNum(int m,int n)。计算结果由函数返回。 计算组合数的公式是: c(m,n)=m!/(n!*(m-n)!) 要求: (1)从主函数输入m和n的值。对m>n、m

C语言实验报告6——函数

学生实验报告 学号 : 日期 : 2014-06-22 系别计算机科 学与技术 专业 计算机科学 与技术(师) 班级姓名 课程名称程序设计基础 课程 类型 专业课学时数 2 实验 名称 函数 实验目的: 掌握C语言函数的定义与调用方法; 理解C语言函数的调用过程; 学会编写函数构造程序.。 实验要求: 实验后写实验报告。 1.实验内容: 1.阅读下列程序并执行,理解程序的功能并记录程序运行结果#include "stdio.h" int x,y; void num() { int a = 15,b = 10; x = a - b; y = a + b; } void main() { int a = 7,b = 5; x = a + b; y = a - b; num(); printf("%d,%d\n",x,y);

} 运行结果: 2、阅读下面程序并执行,理解程序并记录程序运行结果#include "stdio.h" void main() { int a=2,i; for (i=0;i<3;i++)printf("%4d",f(a)); } f(int a) {

int b=0; int c=3; b++; c++; return(a+b+c); } 运行结果: 3、调试运行教材146页-156页例7.1-例7.3页程序,理解并掌握程序改进所采用的程序设计技术。 7.1题

#include "stdio.h" /*函数功能:用迭代法计算n!*/ long Fact (int n) { int i; long result=1; for(i=2;i<=n;i++) { result*=i; } return result; } int main() { int m; long ret; printf("Input m:"); scanf("%d",&m); ret=Fact(m); printf("%d!=%ld\n",m,ret); return 0;

C语言程序设计实验报告(函数)

C语言程序设计实验报告(实验名称:函数) 1实验目的 (1)掌握函数的定义方法、调用方法、参数说明以及返回值; (2)掌握实参与形参的对应关系,以及参数之间的“值传递”的方式; (3)掌握函数的嵌套调用及递归调用的用的设计方法; (4)在编程过程中加深理解函数调用的程序设计思想。 2实验内容 (1)编写一个函数primeNum(int x),功能是判别一个数是否为素数。 要求: ①在主函数中输入一个整数x(直接赋值或从键盘输入); ②函数类型为空值(void),调用primeNum( )函数后,在函数中输出x是 否为素数的信息,输出格式为“x is a prime number”或”x is not a prime number”; ③分别输入一下数据:0,1,2,5,9,13,59,121,并运行程序,检查 结果是否正确。 (2)编写函数 mulNum(int a,int b),它的功能是用来确定a和b是否是整数倍的关系。如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。 要求: ①在主函数中从键盘输入一对整型数据a和b; ②调用函数后,根据返回值对a和b的关系进行说明。例如,在主函数中输 入:10,5,则输出“10 is a multiple of 5”; ③分别输入下面几组数据进行函数的正确性测试:1与5,5与5,6与2,6 与4,20与4,37与9。

3算法描述流程图 (1)primeNum(int x)(判别一个数是否是素数)函数流程图 ①主函数流程图:

②判断素数函数流程图:

(2)mulNum(int a,int b)(确定a和b是否是整数倍的关系)函数流程图 ①主函数流程图:

C语言实验报告数组

C 语言实验报告 实验名称专业 姓名学号 班级指导老师 实验七数组 1. 实验目的 (1))熟练掌握一维数组、二维数组的定义、初始化和输入/输出方法;(2))熟练掌握字符数组和字符串函数的使用; (3))掌握与数组有关的常用算法(如查找、排序等)。 2. 实验指导 (1))对任意一个一维型数组,从中找出数组元素的最大值和最小值并输出。要求: ①数组有十个元素; ②使用scanf 函数实现数组元素的输入前给出必要的提示; ③输出时,首先输出数组的十个元素,然后输出其最大值和最小值。 分析指导: ①算法分析:首先定义一个数组,通过循环从键盘输入十个数组元素的值,再 通过另一个循环判断数组元素的最大只和最小值; ②根据分析情况编写程序: #include main() { int a[10],i,max,min; printf("please input ten integers:"); for(i=0;i<=9;i++) { scanf("%d",&a[i]); } max=a[0]; min=a[0]; for(i=1;i<=9;i++) { if(a[i]>max) max=a[i]; if(a[i]

(2) ) 编写函数 cmpStr(char s1[],char s2[]) 比较两个字符串 s1 和 s2 的大小。如果s1>s2, 返回一个正数 ;s1=s2, 返回 0; s1

C语言实验报告(函数应用)

C语言程序设计II实验报告题目:实验五函数应用 院系名称:计算机学院 专业名称:计算机科学与技术 班级: 学号: 学生姓名: 指导教师: 实验日期:2017年4月1日 报告提交截止日期:2017年4月11日

一、 实验目的 1、 掌握C 语言函数的定义方法、函数的声明及函数的调用方法及调用过程; 2、 掌握主调函数和被调函数之间的参数传递方式; 二、 实验内容与要求: 1、 求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数,用 另一个函数根据求出的最大公约数求最小公倍数。(提示:设两个整数是a,b ,最大公约数是p,最小公倍数是q ,那么ab=pq ) 2、 用牛顿迭代法求方程f(x)=ax 3+bx 2+cx+d=0的根。系数a 、b 、c 、d 由主 函数输入。求根过程写成函数。(提示:牛顿迭代法是先给定方程f(x)=0的一个较好的初始近似根x 0,然后重复使用迭代公式: 求x 的近似解,直至相邻两次的近似解相差很小为止,如差值的绝对值小于1e-07。x 0可以从键盘输入或直接设定。) 3、 定义一个函数,功能是计算n 个学生的成绩中高于平均成绩的人数,并 作为函数返回值。用主函数来调用它。统计30个学生成绩中高于平均成绩的有多少人。 4、 ∑=+++==n i n p p p i p n s 1 )()2()1()()( ,!)(i i p = 5、 编写和调用函数,给定圆筒的内径、外径和高,计算该圆筒的体积;给

定圆锥的高、底面半径,计算该圆锥的体积和表面积。 6、编写和调用函数,求出10000以内的所有素数、绝对素数、水仙花数、 完全数(或称完数)、互满数。 提示:一个素数经过任意次调换位,仍然为素数,则称其为绝对素数, 例如13和31就是一个绝对素数。水仙花数是指一个三位整数,其各位 数字立方之和等于该数。例如,153就是一个水仙花数:153=1*1*1+ 5*5*5+3*3*3。完全数是指一个数正好是它的所有约数(本身除外)之和。 例如,6就是一个完全数,因为6的因子有1、2、3,并且6=1+2+3。 如果有两个数,每一个数的所有约数(除它本身以外)之和正好等于对 方,则称这两个数为互满数。 三、实验结果 1 题目内容与要求:求两个整数的最大公约数和最小公倍数。用一个函数求最大 公约数,用另一个函数根据求出的最大公约数求最小公倍数。(提示:设两个整数是a,b,最大公约数是p,最小公倍数是q,那么ab=pq) 算法简要描述(文本):通过循环找出最大公约数,根据公式求最小公倍数。 源代码标识符说明(文本):a,b存储数字i,j找最小公倍数和最大公因数。 源代码(粘贴程序,注意缩进,不得使用截图): #include"stdio.h" int f(int a,int b) {int i,j; if(a>b) {a=a+b;b=a-b;a=a-b; } for(i=a;i>=1;i--) if(a%i==0&&b%i==0) return i; }

c语言实验报告范文.doc

c语言实验报告范文 因为在C语言草创的年代,UNIX是最好的大型机系统.为大家带来的c语言实验报告范文,希望可以帮助大家。 c语言实验报告范文范文1: 1、只有频繁用到或对运算速度要求很高的变量才放到data区内,如for 循环中的计数值。 2、其他不频繁调用到和对运算速度要求不高的变量都放到xdata区。 3、常量放到code区,如字库、修正系数。 4、逻辑标志变量可以定义到bdata中。 在51系列芯片中有16个字节位寻址区bdata,其中可以定义8*16=128个逻辑变量。这样可以大大降低内存占用空间。定义方法是:bdata bit LedState;但位类型不能用在数组和结构体中。 5、data区内最好放局部变量。 因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提高内存利用率。当然静态局部变量除外,其内存使用方式与全局变量相同; 6、确保程序中没有未调用的函数。 在Keil C里遇到未调用函数,编译器就将其认为可能是中断函数。函数里用的局部变量的空间是不释放,也就是同全局变量一样处理。这一点Keil做得很愚蠢,但也没办法。 7、如果想节省data空间就必须用large模式。 将未定义内存位置的变量全放到xdata区。当然最好对所有变量都要指定内存类型。 8、使用指针时,要指定指针指向的内存类型。 在C51中未定义指向内存类型的通用指针占用3个字节;而指定指向data 区的指针只占1个字节;指定指向xdata区的指针占2个字节。如指针p是指向data区,则应定义为:char data *p;。还可指定指针本身的存放内存类型,如:char data * xdata p;。其含义是指针p指向data区变量,而其本身存放在xdata区。

c语言实验报告

课程设计报告 学院:计算机学院·软件学院 课程名称:高级语言程序设计 专业班级:11科技2班 学生姓名:学号: 指导教师:李革 完成时间:2011 年12 月25

目录 1.菜单选择程序课程设计 2.学生信息管理系统课程设计 题目1:菜单选择程序课程设计 一、课程设计内容与要求 1.主菜单 编写程序能够显示以下的主菜单: **************************************** 主菜单: 1.字母数字转换 2.奖金发放 3.打印月历 4.打印水仙花 5.查找最大最小数 6.退出 **************************************** 在主菜单程序中,根据输入的数字1~6来选择相应的选项,在执行完每一个选项之后,返回主菜单(退出除外)。每一个菜单要完成的任务由下面的2~7依次给出。编写的源程序以zhsy1.cpp保存。 2.字母数字转换 编写一个函数,能够将字母电话号码转换成数字号码(假设输入的字母都是大写字母,输入的电话号码以#结束): 例如:输入电话号码:CALLATT,则输出:2255288。 输入电话号码:1-800-COL-LECT,则输出:1-800-265-5328。 提示:电话上的字母、数字对照表如下:2=ABC,3=DEF,4=GHI,5=JKL,6=MNO,7=PRS,8=TUV,9=WXY。如果原始的电话号码中出现了非字母字符,则这部分字符保持不变。 3.奖金发放 企业发放的奖金根据利润提成。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;超过40万元的部分按3%提成,编写一个函数从键盘输入当月利润,输出应发放奖金的总数? 4.打印月历 编写一个函数,打印一个月的月历。要求给出要打印月份的天数以及本月第一天是星期几。

C语言实验报告合集

《C语言程序设计》实验报告 专业: _______ 班级:__________ 学号:______________ 学生姓名:_________ 实验日期:________________ 成绩:______________ 指导老师: ___________ 实验单元一程序基本结构设计 一、实验题目 实验一熟悉VC+■环境 二、实验目的 1. 熟悉C程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C程序的上机过程(编辑、编译、链接和运行) 。 3. 熟悉C程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1. 硬件环境:当前所有电脑硬件环境均支持。 2. 软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1. 源程序代码: #i nclude "stdio.h" int mai n() {int a,b,sum; a=2; b=3; sum=a+b; prin tf("007zha ng\nsum=%d\n",sum); return 0; } 运行结果为:

叵1 "E:\ZHL\Detug\noLexe' 2. 源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)

《C语言程序设计》实验报告 专业:班级:学号:学生姓名: 实验日期:________________ 成绩:_____________ 指导老师:____________ 实验单元一程序基本结构设计 一、实验题目 实验二顺序结构程序设计 二、实验目的 (1)掌握C语言数据类型以及变量的声明。 (2)掌握C语言的赋值运算符、赋值表达式、赋值语句。 (3)掌握C语言的整型和字符型的混合运算。 (4)掌握C语言的输入、输出函数的使用格式。 三、实验内容 1. 有人用温度计测量出华氏温度,现输入华氏温度f,请编写程序把它转换为摄氏温度C。 已知华氏温度和摄氏温度有如下关系:c=59(f-32)。 2. 输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3. 将字符串“ China”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字母 替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1. 硬件环境:当前所有电脑硬件环境均支持。 2. 软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1. 源程序代码: 运行结果为: 2. 源程序代码: 运行结果为: 3. 源程序代码: 欢迎下载3

C语言实验报告 函数

实验名:函数的定义及调用 一、实验目的 1、掌握C语言函数定义及调用的规则。 2、理解参数传递的过程。 二、实验内容 (一))题目1 1、题目内容描述 1、上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。 main() { int,y; printf(“%d\n”,sum(x+y)); int sum(a,b) { int a,b; return(a+b); } } 2、编写并调试一个求n!(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。 三、分析讨论 1、针对以上实验内容写出相应的参数传递过程并分析结果。 2、讨论参数的传递的几种形式。 2、输入和输出信息描述及数据类型确定; 、输入数据 (1) 序号输入数据描述数据类型 1 x,y int 2 a,b int (2)输出数据 序号输出数据描述数据类型 1 x+y int 3、程序源代码(填写程序调试正确后的代码) #include int main() { int sum(int a,int b); //对被调用函数sum 的声明 int x,y,z; scanf("%d,%d",&x,&y);

z=sum(x,y); //调用sum 函数,将其值赋给z printf("%d\n",z); //输出函数结果z return 0;//返回值为0 } int sum(int a,int b) //定义sum函数 { return(a+b); //将a+b的值作为返回值返回到调用sum的位置} 4、程序调试 错误序号错误信息(列出出错语句以及出错 提示) 是否 解决 解决方法 1 In function 'main':| int,y; 是改为int x,y; 2 error: stray '\241' in program| error: expected expression before '%' token| error: stray '\' in program| printf(“%d\n”,sum(x+y));是将整段改为 int sum(int a , int b); int x,y,z; z=sum(x,y); printf("%d\n",z); 3 error: 'a' redeclared as different kind of symbol| error: 'b' redeclared as different kind of symbol| int a,b; 是去掉整句话 4 warning: 'x' is used uninitialized in this function [-Wuninitialized]| 是加上scanf("%d,%d",&x,&y); 5 error: static declaration of 'sum' follows non-static declaration| 是将int及后面的语句块都移到main外面 5、测试与结果分析 (1)、测试数据与结果 测试序号测试用例选取原 因 测试输入数 据 测试输出结果是否 正确 结果分析 1 测试用例4,5 9 是可运算范围内 2 测试用例55555,793 3 63488 是可运算范围内 3 测试用例-89,-79 -168 是可运算范围内 (2)、相关问题回答 2、编写并调试一个求n!(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。 1、输入和输出信息描述及数据类型确定; (1) 、输入数据 序号输入数据描述数据类型 1 n int 2 result long (2)输出数据 序号输出数据描述数据类型 1 result long

《C语言》课内实验报告 函数的调用

《C语言》课内实验报告 学生姓名:宁富伟2015409020124 及学号: 学院:理学院 班级:信计151 课程名称:C语言 实验题目:函数的应用 指导教师 邓冠男副教授 姓名及职称: 朱振菊实验师 2016年04月01日

一、实验题目: 函数的应用 二、实验目的: 1.进一步掌握函数的定义方法、调用方法,实参与形参的对应关系,以及调用函数的执行过程。 2.掌握函数的嵌套调用、递归调用、数组作为函数参数的设计方法。 3.进一步理解变量的作用域和生存期。 三、实验内容: 1.定义一个求阶乘的递归调用函数double fac(int n),在主函数中调用3次该函数分别求出8!、10!、18!的准确值(结果:8!=40320,10!=3628800,18!=6402373705728000)。编写源程序,给出注释及运行结果。(提示,请参阅教材上188页例7.7的程序)。 2.编写一个将n 个整数用选择法按由小到大的顺序排序的函数void sort(int array[], int n),在主函数中调用两次该函数,对任给出个数分别是10和15的两组整数进行排序。编写源程序,给出注释及运行结果。(提示,请参阅教材上196页例7.12的程序)。 3.编写一个求3个学生的各科平均成绩的程序,每个学生有4科成绩,学生成绩存放在a 数组中,求平均成绩需调用函数void aver(float array[][4], int n), n 为学生数,其中a 数组的矩阵表示为 ???? ? ?????=9810099908190878060706765A 。编写源程序, 给出注释及运行结果,自己试着增加学生数或者成绩科数再运行程序。(提示, 可参阅教材198页例7.13的程序,注意按科平均成绩可存入数组A 中,只需将A 增加1行并先付初值0,求出平均值之后替换0) 四、实验结果: 1. 定义一个求阶乘的递归调用函数double fac(int n),在主函数中调用3次该函 数分别求出8!、10!、18!的准确值(结果:8!=40320,10!=3628800,18!=6402373705728000)。编写源程序,给出注释及运行结果。 (1)程序及注释 #include void main() { double fac(int n);//声明fac 函数 int a=8,b=10,c=18;

C语言程序设计实验报告(实验报告)

C语言程序设计实验报告 实验名称计算出1000以内10个最大素数之和实验目的1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。 2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。 3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。 实验内容计算并输出1000以内最大的10个素数以及它们的和。 要求: 在程序内部加必要的注释。由于偶数不是素数,可以不考虑对偶数的处理。虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。输出形式为:素数1+素数2+素数3+…+素数10=总和值。算法描述流程图Main函数: 判断素数: 源程序 #include #include int sushu(int n)/* 判断素数的函数 */ {

int t,i; t=sqrt(n); for(i=2;i<=t;i++) if(n%i==0)/* 如果不是素数,返回 0 */ return 0; return n;/* 如果是素数,返回该数 */ } void main() { int i,j=0,n,m=0,a[1000],x; /*clrscr();*/ printf("Please input a number form 1 to 1000:"); scanf("%d",&x); if(x==2)/* x=2时的处理 */ printf("%d\n",x); else if(x<=1) /* x在1~1000范围外时的处理 */ printf("Error!\n"); else {

C语言程序设计—函数—实验报告

实验报告 专业软件工程班级X 班学号_ XXXXXXXXXXX_ 姓名 实验日期:201X年X月X日报告退发(订正、重做) 课程C程序设计实验实验名称函数 一、实验目的 ①熟练掌握C程序中函数的定义; ②掌握函数的调用,函数参数的传递; ③熟练掌握函数的嵌套调用和递归调用; 二、实验环境(描述实验的软件、硬件环境) ①软件环境:windows xp/win7等操作系统,Microsoft Visual C++ 6.0编译器; ②硬件环境:PC机一台 三、实验内容、步骤和结果分析 题目一:编写一个用来判断质数(素数)的函数。 要求: (1)在main函数中调用该函数对输入的数值进行判断,并输出判断结果; (2)当输入数值<=1时,停止输入和判断。 #include #include /*=======判断质数(素数)的函数=======*/ int judgePrime(int n) { for(int i=2;i<=sqrt(n);i++)//一个数n如果是合数,那么它的所有的因子不超过n的开方 { if(n%i==0) return 0; else continue; } return 1; } /*=======判断质数(素数)的函数=======*/ int main() { printf("\n提示:输入一个数字来判断是否是质数(素数),当输入数值<=1时,停止输入和判断。\n\n"); for(int num=2,temp;num>1;) { printf("Please enter a number:");

scanf("%d",&num); if(num<=1) break;//当输入数值<=1时,停止输入和判断 temp=judgePrime(num); if(temp==0) printf("%d is not a prime numner!\n\n",num); else printf("%d is a prime numner!\n\n",num); } return 0; } 题目二:使用习题1中所编写的判断质数的函数验证哥德巴赫(Goldbach)的1+1猜想-----任何一 个>=6的偶数都可以表示成两个素数之和 要求: ①屏幕提示用户一个>=6的偶数; ②输出这个偶数等于2个素数之和的表达式; ③当输入数据<6或者不是偶数时,停止输入和验证。 #include #include /*=======判断质数(素数)的函数=======*/ int judgePrime(int n) { for(int i=2;i<=sqrt(n);i++)//一个数n如果是合数,那么它的所有的因子不超过n的开方 { if(n%i==0) return 0; else continue;

相关主题
文本预览
相关文档 最新文档