C语言程序设计-函数-实验报告_第1页
C语言程序设计-函数-实验报告_第2页
C语言程序设计-函数-实验报告_第3页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第11页共10页实验报告专软件工程班X班学_XXXXXXXXXXX_姓 实验日期:201X年X月X日 报告退发订正、重做 课C程序设计实验实验名函 数 一、实验目的①熟练掌握C程序中函数的定义;②掌握函数的调用,函数参数的传递;③熟练掌握函数的嵌套调用和递归调用;二、实验环境(描述实验的软件、硬件环境)①软件环境:windowsxp/win7等操作系统,MicrosoftVisualC++6.0编译器;②硬件环境:PC机一台三、实验内容、步骤和结果分析题目一题目一要求:main函数中调用该函数对输入的数值进行判断,并输出判断结果;<=1时,停止输入和判断。#include<stdio.h>#include<math.h>/*=======判断质数(素数)的函数=======*/intjudgePrime(intn){for(inti=2;i<=sqrt(n);i++)//一个数n如果是合数,那么它的所有的因子不超过n的开方{if(n%i==0)return0;elsecontinue;}return1;}/*=======判断质数(素数)的函数=======*/intmain(){printf("\n提示:输入一个数字来判断是否是质数(素数,当输入数值<=1时,停止输入和判断。for(intnum=2,temp;num>1;){printf("Pleaseenteranumber:");scanf("%d",&num);if(num<=1)break;//当输入数值<=1时,停止输入和判断temp=judgePrime(num);if(temp==0)printf("%disnotaprimenumner!\n\n",num);elseprintf("%disaprimenumner!\n\n",num);}return0;题目二题目二:使用习题1中所编写的判断质数的函数验证哥德巴赫(Goldbach)的1+1猜想 任何一个>=6的偶数都可以表示成两个素数之和要求:①屏幕提示用户一个>=6的偶数;②2个素数之和的表达式;③当输入数据<6或者不是偶数时,停止输入和验证。#include<stdio.h>#include<math.h>/*=======判断质数(素数)的函数=======*/intjudgePrime(intn){for(inti=2;i<=sqrt(n);i++)//一个数n如果是合数,那么它的所有的因子不超过n的开方{if(n%i==0)return0;elsecontinue;}return1;//true-->1,false-->0}/*=======验证哥德巴赫猜想的函数(调用judgePrime)=======*/intproveGoldbach(intm){if(m<6||m%2!=0)return0;//判断是否大于等于6或者不是偶数for(intj=2;j<(m/2);j++){if(judgePrime(j)==1&&judgePrime(m-j)==1)//判断两数是否都等于质数{printf("\t%d=%d+%d\n",m,j,m-j);}}}intmain(){printf("\n提示:输入一个偶数来验证哥德巴赫猜想,当输入数值<6时,停止输入和判断。\n\n");for(intnum=6;num>=6;){inttemp;printf("Pleaseenteranumber:");scanf("%d",&num);temp=proveGoldbach(num);if(temp==0)//当输入小于6或者不是偶数时结束return0;printf("================================================================================");}}题目三:编写一个求阶乘的函数,接着调用该函数实现组合的求解题目三要求:①提示用户输入n和m的数值;②输出的 结果#include<stdio.h>/*=======阶乘函数=======*/intfac(intn){intf;if(n<0)printf("n<0,dataerror!");elseif(n==0||n==1)f=1;elsereturnf;}/*=======组合函数=======*/intcombine(intm,intn){returnfac(n)/(fac(n-m)*fac(m));}/*=======main函数=======*/voidmain(){intm,n;intres;printf("\n提示:这是求组合求和公式的函数,输入两个整数(分别为上标和下标)\n\n");loop:printf("Pleaseentertwonumbers:");scanf("%d%d",&m,&n);if(m>n)//判断上标大于小标重新输入gotoloop;res=combine(m,n);printf("\tResultis%d\n",res);题目四题目四:编写一个求矩阵中最大元素以及最小元素的函数selectMaxAndMin(),在main函数中调用该函数要求:最大值和最小值的输出操作,可以放在selectMaxAndMin()函数中#include<stdio.h>#defineROW4//矩阵的行#defineCOLUMN4//矩阵的列/*=======在矩阵中选择最大最小数的函数=======*/voidselectMaxAndMin(intarry[ROW][COLUMN])//用指针更方便{inttempMax,tempMin;if(arry[0][0]>arry[0][1])//赋初始值{}else{}

tempMax=arry[0][0];tempMin=arry[0][1];tempMax=arry[0][1];tempMin=arry[0][0];for(inti=0;i<ROW;i++)//判断大小,分别赋值{for(intj=0;j<COLUMN;j++){if(arry[i][j]>tempMax){tempMax=arry[i][j];}if(arry[i][j]<tempMin){tempMin=arry[i][j];}}}printf("\tMaxis%d\n\tMinis%d\n",tempMax,tempMin);}//主函数intmain(){intmat[ROW][COLUMN];printf("Pleaseentera%dX%dmatrix:\n",ROW,COLUMN);for(inti=0;i<ROW;i++)//输入矩阵{for(intj=0;j<COLUMN;j++){scanf("%d",&mat[i][j]);}}selectMaxAndMin(mat);return0;}题目五题目五要求:某日,我军某部截获了一份敌方电报,经过仔细分析后发现:该电文中所有的字母字符都是经过某种运算后得到的,然那些非字母字符则没有经过任何处理。例如,原文中的字符A对应电文中的字符E,原文中的字符b对应电文中的字符f,原文中的字符W对应电文中的字符符!在电文中仍为!#include<stdio.h>#defineSIZE20 //定义大小/*=======密码翻译的函数=======*/chartrans(chara){if((a>='a'&&a<='v')||(a>='A'&&a<='V')){}else{

returna+4;if(a>='w'||a>='W'){}else{

returna-22;returna;}}}//主函数intmain(void){printf("请输入原文:\n\n\n");charstr[SIZE];gets(str);printf("\n\n\n");printf("正在破解……\n\n\n");printf("破译的原文是:");for(inti=0;i<20;i++){str[i]=trans(str[i]);if(str[i]=='\0')//判断是否结束break;printf("%c",str[i]);}printf("\n");题目六题目六:编写一个函数,求解输入矩阵的转置矩阵并输出#include<stdio.h>#defineROW3//矩阵的行#defineCOLUMN4//矩阵的列/*=======矩阵的输入函数=======*/voidmatInput(intmat[][COLUMN]){for(inti=0;i<ROW;i++)for(intj=0;j<COLUMN;j++){printf("请输入矩阵元素[%d][%d]=:",i,j);scanf("%d",&mat[i][j]);}}/*=======原始矩阵的打印函数=======*/voidmatPrint(intmat[][COLUMN]){for(inti=0;i<ROW;i++){for(intj=0;j<COLUMN;j++){printf("%3d",mat[i][j]);}printf("\n");}}/*=======转置矩阵的打印函数=======*/voidmatTrasPrint(intmat[][COLUMN]){intarr[COLUMN][ROW];for(inti=0;i<COLUMN;i++){for(intj=0;j<ROW;j++){arr[i][j]=mat[j][i];printf("%3d",arr[i][j]);}printf("\n");}}/*=======main函数=======*/intmain(void){printf("================================================================================");printf("%dX%d的矩阵:\n",ROW,COLUMN);intmat[ROW][COLUMN];matInput(mat);printf("================================================================================");printf("原始矩阵为:\n");matPrint(mat);printf("================================================================================");printf("原始矩阵的转置矩阵为\n");matTrasPrint(mat);return0;}题目七:用户输入的字符串,以相反的顺序打印出来。题目七要求:利用递归函数调用形式#include<stdio.h>#defineSI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论