C语言实验报告参考源代码
- 格式:doc
- 大小:229.50 KB
- 文档页数:27
C语言程序设计上机实验报告实验一一、实验名称: C程序的运行环境和运行C程序的方法二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C程序三、实验内容:(1). 输入并运行一个简单的C程序。
(2). 设计程序,对给定的两个数求和。
(3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。
四、源程序代码:代码1:#include<stdio.h>int main(){printf("hello world!\n");return 0;}运行结果1:程序分析1:代码2:#include<stdio.h> int main(){int a=5,b=6,c;c=a+b;printf("c=%d\n",c);return 0;}运行结果2:程序分析2:代码3:#include<stdio.h>int main(){int a=5,b=6,c;if(a>b){c=a;}else{c=b;}printf("%d\n",c);return 0;}运行结果3:程序分析3:五.实验总结C语言程序设计上机实验报告实验二一、实验名称:顺序结构程序设计二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法,熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。
三、实验内容:(1). 编写程序,实现小写字母转大写。
(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。
(3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。
(4). 编写程序,实现单字符getchar和putchar输入输出。
(5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。
四、源程序代码代码1:#include<stdio.h>int main(){char c1,c2;c1=getchar();printf("%c,%d\n",c1,c1);c2=c1-32;printf("%c,%d\n",c2,c2);return 0;}运行结果1:程序分析1:代码2:#include<stdio.h>int main(){int a=5,c1,c2;double b=3.141592653,c3,c4;c1=a/b;c3=a/b;c2=a+b;c4=a+b;printf("%d,%d,%lf,%lf\n",c1,c2,c3,c4);return 0;}运行结果2:程序分析2:代码3:#include<stdio.h>int main(){here: printf("计算三角形的面积请输入‘1’,立方体的体积和表面积请输入‘2’,圆的面积和周长请输入‘3’.\n");int a;scanf("%d",&a);if(a==1){double l,h,s;printf("请输入三角形的底边长和所在底边的高.");scanf("%lf%lf",&l,&h);s=l*h/2;printf("三角形的面积为%.16f\n",s);}else if(a==2){printf("请输入立方体的长宽高.");double b,c,d,v,s;scanf("%lf%lf%lf",&b,&c,&d);v=b*c*d;s=b*c+b*d+c*d;printf("立方体的体积为%.16f,表面积为%.16f\n",v,s);}else{double r,s,c,m;printf("请输入圆的半径");scanf("%lf",&r);m=3.141592653;s=m*r*r;c=2*m*r;printf("圆的面积为%.16f,圆的周长为%.16f\n",s,c);}goto here;}运行结果3:程序分析3:代码4:#include<stdio.h> int main(){getchar();putchar('b');return 0;}运行结果4:程序分析4:代码5:#include<stdio.h>int main(){int a;printf("请输入任意十进制整数:");scanf("%d",&a);printf("转换为八进制数为:%o\n转化为十六进制数为:%x\n",a,a); return 0;}运行结果5:程序分析5:五、实验总结C语言程序设计上机实验报告实验三一、实验名称:选择结构程序设计二、实验目的:正确使用逻辑运算符和逻辑表达式,熟练掌握if 语句和switch 语句,学习调试程序。
C语言实验报告(三)华北水院高级语言程序设计(c语言)实验报告2022-2022学年第二学期2022年级专业班级:学号:姓名:一、实验题目:循环结构程序设计二、实验目的:(略)三、实验内容1.程序验证(略)2。
程序设计1)找出100-900之间的无暇素数。
所谓无暇素数是指本身为素数,且其逆序数也是素数的数。
例如:113是一个素数,311也是一个素数,113就是无暇素数。
源代码:运行结果:intbsingle100_u900(inTV)/*这是一个用户定义的函数,用于判断它是否是介于100和900之间的素数*/{inti;如果(v%2);elsereturn0;for(i=3;i<=v/2;i+=2)if(v%i);elsereturn0;return1;}voidmain(){inta,b,c,d,e,w;对于(a=101;a<=900;a+=2){c=a/100;d=a/10;e=a;w=100*e+10*d+c;if(bsingle100_900(a)&&bsingle100_900(w))printf(\}}2)编程:用迭代法求一个数的平方根。
平方根的迭代公式如下:xn+1=(xn+A/xn)/2;设置x0=A/2;当迭代相邻两项差的绝对值小于10-5时,迭代结束。
源代码:运行结果:#include#includeintmain(){doublex1,x2,a;intf;Printf(\请输入a:\scanf(\X1=a/2;x2=0;F=0;while(1){x1=(x1+a/x1)/2;if(f)break;如果(abs(x1-x2)<1e-5)f=1;x2=x1;}printf(\}华北水利学院高级语言程序设计(C语言)实验报告2021--2021学年第二学期2021级专业班级:学号:姓名:3)写一个问答游戏。
计算机在10到100之间进行四次运算,每个问题得10分,用户给出答案。
实验数据处理C语言源代码#include#include#include#include#define MAX 20typedef struct wuli{float d[MAX];char name[10];int LEN;float ccha[MAX]; /*残差数组*/float avg; /*data的平均值*/double sx; /*标准偏差Sx*/double DU; /*总不确定度*/}wulidata;wulidata *InputData();void average(wulidata *wl);void YCZhi(wulidata *wl);void CanCha(wulidata *wl);void BZPianCha(wulidata *wl);/*标准偏差*/void BQDdu(wulidata *wl);/*总不确定度*/void rage(wulidata *wl);void output(wulidata *wl);/*----------------------------------------------------------*/void line(){int i;printf("\n");for(i=0;i<74;i++)printf("=");printf("\n");}/*-------------------------------------------------------*/wulidata *InputData(){int i=0,k;float da;char Z=0;wulidata *wl;wl=(wulidata *)malloc(sizeof(wulidata));printf("请为你要处理的数据起一个名字:");scanf("%s",wl->name);printf("\n下面请你输入数据%s具体数值,数据不能超过MAX个\n",wl->name);printf("当name='#'时输入结束\n");do{printf("%s%d=",wl->name,i+1);scanf("%f",&da);wl->d[i]=da;i++;if(getchar()=='#') break;}while(wl->d[i-1]!=0.0&&iwl->LEN=i-1;do{printf("你输入的数据如下:\n");for(i=0;iLEN;i++)printf("%s%d=%f\t",wl->name,i+1,wl->d[i]);printf("\n你是否要作出修改(Y/N)?");while( getchar()!='\n');Z=getchar();if( Z=='y'||Z=='Y'){printf("你须要修改哪一个元素,请输入其标号i=(1~%d)\n",wl->LEN);while( getchar()!='\n');scanf("%d",&k);printf("\n%s%d=",wl->name,k);scanf("%f",&(wl->d[k-1]));}else if(Z=='n'||Z=='N')printf("OK!下面开始计算。
C语言程序设计实验及代码随着计算机技术的快速发展,C语言作为一种高效且强大的编程语言,被广泛应用于软件开发、嵌入式系统以及科学计算等领域。
在学习C语言编程的过程中,进行实验并编写相应的代码是非常重要的一部分,可以帮助我们巩固所学的知识并提高编程能力。
本文将介绍几个常见的C语言程序设计实验,并给出相应的代码示例。
一、实验一:Hello, World!实验目的:熟悉C语言编程环境,掌握简单的编译和运行操作。
实验内容:编写一个简单的程序,在屏幕上输出"Hello, World!"。
代码示例:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```二、实验二:求两个整数的和与差实验目的:学习C语言中的基本数据类型和算术运算符的使用。
实验内容:编写一个程序,输入两个整数并计算它们的和与差,然后输出结果。
代码示例:```c#include <stdio.h>int main() {int num1, num2, sum, diff;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;diff = num1 - num2;printf("两数之和:%d\n", sum);printf("两数之差:%d\n", diff);return 0;}```三、实验三:判断一个数是奇数还是偶数实验目的:学习C语言中的分支语句的使用。
实验内容:编写一个程序,输入一个整数,并判断它是奇数还是偶数,然后输出结果。
代码示例:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数。
实验5三种基本结构的综合应用4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。
例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。
试求[100,999]之内的所有逆向超级素数的个数。
#include "stdio.h"main(){int i,j,k,m,p,q,n=0;for(i=100;i<=999;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j>=i) /*三位数是素数时*/{k=i%100; /*去掉百位数字*/if(k>=10) /*十位数字不是0时*/{for(m=2;m<k;m++)if(k%m==0)break;if(m>=k) /*两位数是素数时*/{p=i%10; /*p为个位数字*/for(q=2;q<p;q++)if(p%q==0)break;if(q>=p)n++;}}}}printf("%d\n",n);}Key:575.求[2,400]中相差为10的相邻素数对的对数。
#include "stdio.h"main(){int i,j,k,m,p,q,n=0;for(i=2;i<=400;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j>=i) /*i是素数时*/{for(k=i+1;k<i+10;k++){for(m=2;m<k;m++)if(k%m==0)break;/*k不是素数时终止if语句的内层循环*/if(m>=k)break;} /*k是素数时终止if语句的外层循环*/if(k>=i+10) /*[i+1,i+9]不是素数时*/{for(q=2;q<k;q++)if(k%q==0)break;if(q>=k) /*i+10是素数时*/n++;}}}printf("%d\n",n);}Key:56.求[1,21]范围内的梅森尼数#include "math.h"main(){long n,k=2,m,p,q;for(n=2;n<=21;n++){ k=k*2; p=k-1;m=sqrt(p);for(q=2;q<=m;q++)if(p%q==0) break;if(q>m) printf("%5ld",n);}}Key: 2 3 5 7 13 17 197.求1000以内的亲密数对main(){int a,b,n,m,q,p;for(a=1;a<1000;a++){n=0;for(q=1;q<=a/2;q++)if(a%q==0) n+=q;for(b=a;b<=1000;b++){ m=0;for(p=1;p<=b/2;p++)if(b%p==0) m+=p;if(a==m&&b==n) printf("%5d%5d",a,b);}}}/*Key:6 6 28 28 220 284 496 496*/实验6 数组及其应用3.由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。
西安郵電大學C语言课程设计报告题目: 职工工资管理系统院系名称: 计算机学院专业名称: 软件工程班级:学生姓名:学号(8位):指导教师:设计起止时间: 2013年06月03日~2013年06月12日一.设计目的1.通过本课程设计, 强化上机动手能力, 使学生在理论和实践的基础上进一步巩固《c语言程序设计》课程学习的内容, 掌握工程软件设计的基本方法.2.学会将知识应用于实际的方法, 提高分析和解决问题的能力, 增加综合能力.3.为后续各门计算机课程的学习打下坚实基础; 为毕业设计和以后工作打下必要基础。
二.设计内容本设计主要包括了用户登录和主菜单,其中用户登录包括了一下几个功能1.新用户的注.2.用户登.3。
用户密码的修改。
而主菜单包括: 1.职工信息的录.2.职工信息的修.3.选择性排.4.统计人数和工.5. 输出现有的信.6.自定义查询信息。
三. 概要设计1. 功能模块图;1.2. 各个模块详细的功能描述。
2.修改密码的时候, 需要输入原密码, 并且输入两次新的密码必须相同才能完成密码的修改。
3.用户登录: 需要输入用户名和密码, 如果用户名不存在或密码错误会给出相应的提醒, 当输入正确的时候会进入主菜单。
4.新用户注册:需要输入注册的用户和密码, 如果用户明已被注册过会给出相应的提醒。
5.职工信息的输入:是从无开始输入职工的信息, 同样也会给出输入内容的提醒, 当输入最后一次职工的信息为零时结束输入, 同是会将输入的信息写入到文件里。
6.修改职工信息其中包括a.添加职工信息和输入职工信息相同在添加完会提醒是否继续添加。
b.修改员工信息: 此时会出现选择性修改职工的哪项信息,先进行选择再进行修改。
C.删除员工信息: 需要输入所要删除员工的姓名或id进行删除!如果删除不成功或者删除者不存在会给出相应的提醒。
7.统计信息: 会自动的统计现有员工的总人数和现有员工的总工资。
8.输出现有职工的信息: 会显示现在记录的职工的各项信息。
实验三循环控制实验课程名:高级语言程序设计(C)专业班级:学号:姓名:实验时间:实验地点:指导教师:一、实验目的和要求1. 熟练掌握用while语句、do while语句和for语句实现循环的方法。
2. 掌握在程序设计中用循的方法实现一些常用算法。
并进一步学习调试程序的方法。
二、实验内容1、任务名称程序c40101.c求1+…+100,填空,实现该功能。
(1、)源代码:#include<stdio.h>int main(){int s,i;s=0;for(i=1;i<=100;i++)s=s+i;printf("1+2+...+100=%d\n",s);return 0;}运行结果:(需要截图)(2、)源代码:#include<stdio.h>int main(){int s=0,i=1;while(i<=100){s+=i;i++;}printf("1+2+...+100=%d\n",s);return 0;}运行结果:运行结果分析:2、任务名称:分别运行这两个程序,若输入7,这两个程序的结果分别是多少?若输入12,这两个程序的结果又分别是多少?比较为什么会有这样的区别?(1、)源代码:#include <stdio.h>void main(){ int i,n,sum=0;scanf("%d",&i);n=i;while(i<=10){ sum+=i;i++;}printf("%d+...+10=%d\n",n,sum);}运行结果:(需要截图)(2、)源代码:#include <stdio.h>int main(){ int i,n,sum=0;scanf("%d",&i);n=i;do{ sum+=i;i++;} while(i<=10);printf("%d+...+10=%d\n",n,sum);return 0;}运行结果:运行结果分析:3、任务名称:下面程序,若输入12345,分析输出结果是多少?源代码:#include <stdio.h>void main( ){ long data;scanf("%ld",&data);while(data){ printf("%ld,",data%10);data=data/10;}}运行结果:(需要截图)运行结果分析:4、任务名称:程序c40104.c 实现求Fibonacci 数列的前n 个数。
西安郵電學院C语言课程设计报告书系部名称通信工程系学生姓名王子源专业名称通信工程专业班级通工0901班学号03091001指导教师衡霞2010年06月07日至时间2010年06月18日实验题目学生宿舍管理系统一、实验目的通过进行计算机实践,更加系统地理解和掌握C语言的基本概念、语言特点和编程技巧。
利用系统提供的标准函数和自定义函数进行程序设计,培养利用C语言设计综合程序的能力。
二、实验内容在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。
进一步掌握各种函数的应用。
三、需求分析本学生信息管理系统包含输入记录,显示记录,按房间号排序并显示,按学号排序并显示,插入一条记录按学号排序并显示,按姓名查找,删除一条记录,查找并显示一个记录,查找并修改一个记录,从文件中读入数据,循环写入数据等功能.需求分析:输入记录(Input)显示记录(Display)按房间号排序并显示(Sort_by_roomnum)按学号排序并显示(Sort_by_num)插入一条记录按学号排序并显示(Insert_a_record)按姓名查找,删除一条记录(Delete_a_record)查找并显示一个记录(Query_a_record)查找并修改一个记录(Change_a_record)从文件中读入数据(AddfromText)循环写入数据(WritetoText)四.概要设计1.系统分析功能模块图:总目录以及下属的各个模块,这样可以使得程序的书写脉络清晰流畅。
程序结构图2、模块功能说明(1)输入记录模块(Input):用于输入学生的各项信息(2)显示记录模块(Display):按照输入的顺序显示出每个学生的各项信息(3)按房间号排序并显示模块(Sort_by_roomnum):按照房间号顺序显示每个学生信息(4)按学号排序并显示模块(Sort_by_num):按照学号顺序显示每个学生信息(5)插入一条记录按学号排序并显示模块(Insert_a_record):插入一条记录并按学号显示出所有记录。
c语⾔实验报告⼀、实验内容1. 调试教材例10.1 ⾄例10.6,仔细分析程序和运⾏结果,理解程序每⼀⾏代码。
2. 完成《C程序设计(第四版)学习辅导》实验12 ⽂件操作 (P267)。
⼆、实验⽬的学习对⽂件的输⼊输出三、实验过程与步骤(1)使⽤Visual C++建⽴⼀个控制台⼯程(2)在⼯程中建⽴源⽂件并编写程序(3)编程后编译,若出现编译错误则应该检查错误并改正(4)运⾏程序并观察结果并记录四、程序分析例10-1从键盘输⼊⼀些字符,逐个把它们送到磁盘上去,直到⽤户输⼊⼀个“#”为⽌#include#includeint main(){FILE*fp;char ch,filename[10];printf("请输⼊所⽤的⽂件名:");scanf("%s",filename);if((fp=fopen(filename,"w"))==NULL) //打开输出⽂件并使fp指向此⽂件{printf("⽆法打开此⽂件\n"); //如果打开时出错,就输⼊“打不开”的信息exit(0); //终⽌程序}ch=getchar(); //⽤来接收最后输⼊的回车符printf("请输⼊⼀个准备存储到磁盘的字符串(以#结束):");ch=getchar(); //接收从键盘输⼊的第⼀个字符while(ch!='#') //当输⼊‘#’时结束循环{fputc(ch,fp); //向磁盘⽂件输出⼀个字符putchar(ch); //将输出的字符显⽰在屏幕上ch=getchar(); //再接收从键盘输⼊的⼀个字符}fclose(fp);putchar(10); //关闭⽂件return 0; //向屏幕输出⼀个换⾏符}实验结果:例10-2将⼀个磁盘⽂件中的信息复制到另⼀个磁盘⽂件中。
今要求将上例建⽴的file1.dat⽂件中的内容复制到另⼀个磁盘⽂件file2.dat 中。
华北水利水电大学C语言程序设计实验报告2014--2015学年第二学期 2014 级材料成型及控制工程专业班级:学号姓名:一、实验题目:顺序结构二、实验目的:(略)三、实验内容1. 程序验证(略)2.程序设计1)编写程序,已知圆半径radius=,求圆周长和面积。
源代码:运行结果:#include <>#define PIvoid main( ){float r,c,s;r=;c=2*PI*r;s=PI*r*r;printf("c=%f,s=%f\n",c,s);}2)编写程序完成单个字母的大小写转换。
源代码:运行结果#include<>void main( ){char c;c='a';c=c-32;printf("%c",c);}3)任意从键盘输入一个三位整数,要求正确分离出它的个位、十位和百位数,并分别在屏幕上显示。
源代码:#include <> 运行结果:void main(){int i,j,k,t;scanf("%d",&t);i=t%10;j=t/10%10;k=t/100;printf("i=%d,j=%d,k=%d",i,j,k);}(1)设变量a、b、c分别存放从键盘输入3个整数。
编写程序,按从大到小的顺序排列这3个整数,使a成为最大的,c成为最小的,并且按序输出这3个整数。
源代码:运行结果:#include <>int main (){int a,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(c>b){t=c;c=b;b=t;}printf("%d%5d%5d\n",a,b,c);return 0;}(2)输入某学生的考试成绩等级A、B 、C、 D,要求按照等级输出对应的分数段。
实验5三种基本结构的综合应用4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。
例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。
试求[100,999]之内的所有逆向超级素数的个数。
#include "stdio.h"main(){int i,j,k,m,p,q,n=0;for(i=100;i<=999;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j>=i) /*三位数是素数时*/{k=i%100; /*去掉百位数字*/if(k>=10) /*十位数字不是0时*/{for(m=2;m<k;m++)if(k%m==0)break;if(m>=k) /*两位数是素数时*/{p=i%10; /*p为个位数字*/for(q=2;q<p;q++)if(p%q==0)break;if(q>=p)n++;}}}}printf("%d\n",n);}Key:575.求[2,400]中相差为10的相邻素数对的对数。
#include "stdio.h"main(){int i,j,k,m,p,q,n=0;for(i=2;i<=400;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j>=i) /*i是素数时*/{for(k=i+1;k<i+10;k++){for(m=2;m<k;m++)if(k%m==0)break;/*k不是素数时终止if语句的内层循环*/if(m>=k)break;} /*k是素数时终止if语句的外层循环*/if(k>=i+10) /*[i+1,i+9]不是素数时*/{for(q=2;q<k;q++)if(k%q==0)break;if(q>=k) /*i+10是素数时*/n++;}}}printf("%d\n",n);}Key:56.求[1,21]范围内的梅森尼数#include "math.h"main(){long n,k=2,m,p,q;for(n=2;n<=21;n++){ k=k*2; p=k-1;m=sqrt(p);for(q=2;q<=m;q++)if(p%q==0) break;if(q>m) printf("%5ld",n);}}Key: 2 3 5 7 13 17 197.求1000以内的亲密数对main(){int a,b,n,m,q,p;for(a=1;a<1000;a++){n=0;for(q=1;q<=a/2;q++)if(a%q==0) n+=q;for(b=a;b<=1000;b++){ m=0;for(p=1;p<=b/2;p++)if(b%p==0) m+=p;if(a==m&&b==n) printf("%5d%5d",a,b);}}}/*Key:6 6 28 28 220 284 496 496*/实验6 数组及其应用3.由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。
若找到,返回其下标值;否则,返回-1。
折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(low<high),然后用m与中间位置(mid)上元素的值进行比较。
如果m的值大于中间位置元素的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中。
直到low>high,查找结束。
请改正程序中的错误,使它能得出正确的结果。
#include <stdio.h>#define N 10main(){ int i,a[N]={-3,4,7,9,13,45,67,89,100,180 },k=-1,m;int low=0,high=N-1,mid;printf("a数组中的数据如下:");for(i=0;i<N;i++) printf("%d ", a[i]);printf("Enter m: "); scanf("%d",&m);while(low<=high){ mid=(low+high)/2;if(m<a[mid])high=mid-1;/************found************/else If(m > a[mid])low=mid+1;/************found************/else {k=mid;continue;} }if(k>=0) printf("m=%d,index=%d\n",m,k);else printf("Not be found!\n");}Key:第一个错误:else If(m > a[mid]) 应改为:else if(m > a[mid]) 因C语言关键字必须小写。
第二个错误:else {k=mid;continue;} 应改为:else {k=mid;break;} 因找到就可终止循环。
4.有一个3*4矩阵,找出每行中最大的元素并与第1列元素交换。
具体要求如下:(1)使用二维数组存放该3*4矩阵。
(2)定义并初始化该二维数组。
(3)输出原矩阵和处理后的矩阵进行比较。
【程序源代码】#include "stdio.h"main(){ int i,j,k,temp;int data[3][4]={{12,15,7,11},{14,6,10,21},{25,7,16,45}};printf("the original matrix:\n");for(i=0;i<=2;i++){ for(j=0;j<=3;j++)printf("%d\t",data[i][j]);printf("\n"); /*打印原矩阵*/}for(i=0;i<=2;i++){k=0;for(j=1;j<=3;j++)if(data[i][j]>data[i][k])k=j;temp=data[i][0];data[i][0]=data[i][k];data[i][k]=temp;} /*求每行最大数并与第1列上的元素交换*/printf("\nthe handled matrix:\n");for(i=0;i<=2;i++){for(j=0;j<=3;j++)printf("%d\t",data[i][j]);printf("\n");} /*打印处理后矩阵,此时第1列上的元素为每行的最大数*/ }5.猴子选大王问题:n个人围坐一圈,并顺序编号1~n,从1号开始数,每数到m个就让其出局,重复...。
求最后出局者的编号。
当n=50,m=3时,答案为11 具体要求如下:(1)使用一维数组存放每个人的编号,每数到m个数就让其出局,出局者编号为0。
(2)使用for循环嵌套实现。
【程序源代码】#include "stdio.h"main(){int a[51],i,j,m=0,n;for(i=1;i<=50;i++)a[i]=i;/*为了符合习惯,数组下标从1开始,下标就是编号*/for(j=1;j<=50/3;j++) /*外层循环最多循环50/3次*/for(i=1;i<=50;i++){if(a[i]!=0)m++; /*对未出局者计数*/if(m==3)a[i]=0,n=i,m=0;/*对出局者编号为0,并保存原编号,计数从0开始*/}printf("last: %d\n",n);} /*最后出局者的编号*/实验7函数及其应用3.排错题:下列给定程序中函数fun 的功能是:用递归算法求形参a 的平方根。
请改正程序中的错误,使它能计算出正确的结果。
注意:源程序不得增行或删行,也不得更改程序的结构!例如,a 为2 时,平方根值为:1.414214。
#include <stdio.h>#include <math.h>/**********found**********/void fun(double a, double x0){ double x1, y;x1=(x0+a/x0)/2.0;/**********found**********/if( fabs(x1-x0)<=0.00001 )y=fun(a,x1);else y=x1;return y;}main( ){ double x;printf("Enter x: "); scanf("%lf",&x);printf("The square root of %lf is %lf\n",x,fun(x,1.0));}Key:第一个错误:void fun(double a, double x0) 应改为:double fun(double a, double x0) 因根据题意,需通过调用fun()函数返回a的平方根,故必须将void改为double,否则不能用带值的return语句。
自增。
第二个错误:if( fabs(x1-x0)<=0.00001 ) 应改为:if( fabs(x1-x0)>=0.00001 ) 因只有fabs(x1-x0)>=0.00001才须递归。
4.设计一个程序,判断一个整数n 是否是素数。
具体要求如下:(1)编制一个函数int prime(number),判断整数number 是否是素数。
(2)编制主函数,由键盘输入整数number,调用(1)中的函数,若返回值为真则是素数,否则不是素数。
(3)分别用以下数据运行该程序:103,117。
【程序源代码】#include "stdio.h"main(){ int number;printf("请输入一个正整数:\n");scanf(" %d",&number);if (prime(number))printf("\n %d是素数. ",number);elseprintf("\n %d不是素数. ",number);}int prime(number)int number;{int flag=1,n;for(n=2;n<number/2&&flag==1;n++)if (number%n==0)flag=0;return(flag);}5.编写程序,通过两个自定义函数分别求两个正数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。