第一篇:C语言实验报告《逻辑结构程序设计》
学号:__________ 姓名:__________ 班级:__________ 日期:__________
指导教师:__________ 成绩:__________
实验二 逻辑结构程序设计
一、实验目的1、学会正确使用逻辑运算符和逻辑表达式
2、熟练掌握if语句和switch语句
3、熟练掌握用while语句、do-while语句和for语句实现循环的方法
4、掌握在程序设计中的常用算法(如递推等)
二、实验内容
1、输入百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以上为‘A’,80——89分为‘B’,70——79分为‘C’,60——69分为‘D’,60分以下为‘E’。(习题5.6)
2、求1!+2!+3!+4!+ … +20!(习题6.4)
3、编写程序并输出下列图形:
*******
*****
***
*
三、实验步骤与过程
物理实验报告 ·化学实验报告 ·生物实验报告 ·实验报告格式 ·实验报告模板
四、程序调试记录
第二篇:《C语言程序设计》实验报告
指导教师学院专业班级学号姓名实验室
实验题目:
实验要求:
实验内容及步骤:
运行结果
心得体会:
第三篇:Java语言程序设计实验报告1
《Java语言程序设计》实验报告一
学生姓名: 孙文琳
班级: 信息111
学号:201152275119 实验地点: 经管中心证券实验室
指导教师:赵利平实验日期:
2012.3.6
实验环境:Windows 2000+JDK1.6
1.实验目的(1)养成良好的编程风格;(2)掌握字符数据类型及其运算;
(3)熟悉从输入对话框获取输入和从控制台获取输入两种方法;(4)掌握布尔运算符;(5)掌握分支语句if和switch。
2.实验内容(1)在控制台下求两个实数的最大值:完成实验教材P22程序清单2-2;(2)
3.实验过程
报告撰写具体要求:上述实验内容要求写出源代码及运行结果。实验内容(1)://CompareTwoNumbersl.java
import java.util.Scanner;
public class CompareTwoNumbers1{
double number1,number2;
Scanner scanner;
public CompareTwoNumbers1(){
System.out.println(“请输入两个数字:”);
scanner=new Scanner(System.in);
number1=scanner.nextDouble();
number2=scanner.nextDouble();
System.out.println(“较大的数是:”+(number1>number2?number1:number2));
}
public static void main(String args[]){ CompareTwoNumbers1 ct=new CompareTwoNumbers1();System.exit(0);}
}
实验内容(2):
//DollarConvertor.java import java.util.Scanner;public class DollarConvertor{ public static void main(String args[]){ System.out.println(“请输入美元数:”);Scanner scanner=new Scanner(System.in);double i=scanner.nextDouble();double result=i*6.2875;System.out.println(“对应的人民币数:”+result);} }
实验内容(3): public class MultiplyList1{ public static void main(String args[]){ String output=“";for(int row=1;row<=9;row++){ for(int col=1;col<=row;col++)output+=col+”*“+row+”=“+(row*col)+” “;output+=”n";} System.out.println(output);System.exit(0);}}
4.实验总结
心得体会:做实验要小心翼翼,注意Java大小区分
第四篇:C语言程序设计 实验报告2.3
C语言程序设计
实验报告
专业
班级
日期
11月26日
成绩
实验组别
第 2(2.3)次实验
指导教师
李开
学生姓名
学号
同组人姓名
实验名称 流程控制实验
一、实验目的
(1)掌握复合语句、if语句、switch语句的使用,熟练掌握for、while、do-while三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语句。
(2)熟练运用for、while、do-while语句来编写程序。(3)练习转移语句和标号语句的使用。
(4)使用集成开发环境中的调试功能:单步执行、设置断点、观察变量值。
二、实验任务
3.2 实验内容及要求 1.源程序改错
下面是计算s=n!的源程序,在这个源程序中存在若干语法和逻辑错误。要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。例如,8!=40320。#include
2.源程序修改替换
(1)修改第1题,分别用while和do-while语句替换for语句。
(2)修改第1题,输入改为“整数S”,输出改为“满足n!≥S的最小整数n”。例如输入整数40310,输出结果为n=8。
3.程序设计
(1)假设工资税金按以下方法计算:x < 1000元,不收取税金;1000 ≤ x < 2000,收取5%的税金;2000 ≤ x < 3000,收取10%的税金;3000 ≤ x < 4000,收取15%的税金;4000 ≤ x < 5000,收取20%的税金;x>5000,收取25%的税金。输入工资金额,输出应收取税金额度,要求分别用if语句和switch语句来实现。
(2)将输入的一行字符复制到输出,复制过程中将一个以上的空格字符用一个空格代替。
(3)打印如下杨辉三角形。
/*第0行 */ 1 1 /*第1行 */ 1 2 1 /*第2行 */ 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1
jjCCii每个数据值可以由组合计算(表示第i行第j列位置的值),而的计算如下:
Ci0(i=0,1,2,„)CijCij1*(i-j1)/ j(j=0,1,2,3,„,i)本程序中为了打印出金字塔效果,要注意空格的数目。一位数之间是3个空格,两位数之间有2个空格,3位数之间只有一个空格,程序编制过程中要注意区分。
(4)编写一个程序,将用户输入的任意正整数逆转,例如,输入1234,输出4321。
4.选做题
32f(x)3x4x5x130满足精度e=10-6 编写一个程序,用牛顿迭代法求方程的一个近似根,并在屏幕上输出所求近似根。
x0axxkf(xk)/f'(xk),其中f'(x)是牛顿迭代法:求方程近似根的迭代公式为k1函数f(x)的导函数。牛顿迭代法首先任意设定的一个实数a来作为近似根的迭代初值x0,然后用迭代公式计算下一个近似根x1。如此继续迭代计算x2, x3, „, xn, 直到xnxn1精度e
,此时值xn即为所求的近似根。
2.3:
1.源程序改错:(源程序)
#include
(修改后程序)#include
int i,n,s=1;
printf(“Please enter n:”);
scanf(“%d”,&n);
for(i=1;i<=n;i++)
s=s*i;
printf(“%d!= %d”,n,s);
return 0;}
2.源程序修改替换
(1)修改第1题,分别用while和do-while语句替换for语句。(while)
#include
(do-while)#include
(2)修改第1题,输入改为“整数S”,输出改为“满足n!≥S的最小整数n”。例如输入整数40310,输出结果为n=8。
#include = %d”,i-1,s);return 0;}
3.程序设计
(1)假设工资税金按以下方法计算:x < 1000元,不收取税金;1000 ≤ x < 2000,收取5%的税金;2000 ≤ x < 3000,收取10%的税金;3000 ≤ x < 4000,收取15%的税金;4000 ≤ x < 5000,收取20%的税金;x>5000,收取25%的税金。输入工资金额,输出应收取税金额度,要求分别用if语句和switch语句来实现。
(switch语句)#include
printf(“输入你的工资 ”);
int t;
float x;
scanf(“%f”,&x);
t =(int)(x/1000.0);
switch(t){
case 0:
printf(“no tax!n”);
break;
case 1:
printf(“%fn”,0.05*x);
break;
case 2:
printf(“%fn”,0.10*x);
break;
case 3:
printf(“%fn”,0.15*x);
break;
case 4:
printf(“%fn”,0.20*x);
break;
case 5:
printf(“%fn”,0.25*x);
break;
default:
printf(“%fn”,0.25*x);
break;
}
return 0;}
(if语句)
#include “stdio.h” int main(int argc, char *argv[]){
float x, tax;
scanf(“%f”, &x);
if(x<0)
{
printf(“Wrong input.n”);
return 1;
}
if(x<1000)
{
tax = 0.00;
}
else if(x>=1000&&x<2000)
{
tax = 0.05 * x;
}
else if(x>=2000&&x<3000)
{
tax = 0.10 * x;
}
else if(x>=3000&&x<4000)
{
tax = 0.15 * x;
}
else if(x>=4000&&x<5000)
{
tax = 0.20 * x;
}
else
{
tax = 0.25 * x;
} printf(“Tax of salary %.2f YUAN is %.2f YUAN.n”, x, tax);}
(2)将输入的一行字符复制到输出,复制过程中将一个以上的空格字符用一个空格代替。
#include
if(c==' '){
if(flag==0){
putchar(c);
flag=1;
}
}
else{
putchar(c);
flag=0;
}
}
return 0;}
(3)打印如下杨辉三角形。
/*第0行 */ 1 1 /*第1行 */ 1 2 1 /*第2行 */ 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1
jjCCii每个数据值可以由组合计算(表示第i行第j列位置的值),而的计算如下:
Ci01
(i=0,1,2,„)CijCij1*(i-j1)/ j(j=0,1,2,3,„,i)本程序中为了打印出金字塔效果,要注意空格的数目。一位数之间是3个空格,两位数之间有2个空格,3位数之间只有一个空格,程序编制过程中要注意区分。
#include
(4)编写一个程序,将用户输入的任意正整数逆转,例如,输入1234,输出4321。#include
4.选做题
-6 编写一个程序,用牛顿迭代法求方程f(x)3x4x5x130满足精度e=10的一个近似根,并在屏幕上输出所求近似根。
32x0axxkf(xk)/f'(xk),其中f'(x)是牛顿迭代法:求方程近似根的迭代公式为k1函数f(x)的导函数。牛顿迭代法首先任意设定的一个实数a来作为近似根的迭代初值x0,然后用迭代公式计算下一个近似根x1。如此继续迭代计算x2, x3, „, xn, 直到xnxn1精度e,此时值xn即为所求的近似根。
#include
double f(double x){ return(3*x*x*x-4*x*x-5*x+13);} double f_(double x){ return(9*x*x-8*x-5);} double root(double m){ double n;n=m-f(m)/f_(m);if(fabs(m-n)<=0.000001){ return n;} else{ return root(n);} }
四、实验体会
了解更多有关C语言的语法知识和循环结构以及熟练了调试过程。
第五篇:C语言程序设计—函数—实验报告
实 验 报 告
专业
软 件 工 程
班级
X
班
学号_ XXXXXXXXXXX_
姓名
实验日期:201X年X月X日
报告退发(订正、重做)
课程
C程序设计实验
实验名称
函
数
一、实验目的
① 熟练掌握C程序中函数的定义; ② 掌握函数的调用,函数参数的传递; ③ 熟练掌握函数的嵌套调用和递归调用;
二、实验环境(描述实验的软件、硬件环境)
① 软件环境:windows xp/win7等操作系统,Microsoft Visual C++ 6.0编译器; ② 硬件环境:PC机一台
三、实验内容、步骤和结果分析
题目一:编写一个用来判断质数(素数)的函数。
要求:
(1)在main函数中调用该函数对输入的数值进行判断,并输出判断结果;(2)当输入数值<=1时,停止输入和判断。
#include
} /*=======判断质数(素数)的函数=======*/ int main(){
printf(“n提示:输入一个数字来判断是否是质数(素数),当输入数值<=1时,停止输入和判断。nn”);for(int num=2,temp;num>1;){ printf(“Please enter a number:”);for(int i=2;i<=sqrt(n);i++)//一个数n如果是合数,那么它的所有的因子不超过n的开方 {
} return 1;if(n%i==0)return 0;else continue;
}
} scanf(“%d”,&num);if(num<=1)break;//当输入数值<=1时,停止输入和判断 temp=judgePrime(num);if(temp==0)printf(“%d is not a prime numner!nn”,num);else printf(“%d is a prime numner!nn”,num);return 0;
题目二:使用习题1中所编写的判断质数的函数验证哥德巴赫(Goldbach)的1+1猜想-----任何一个>=6的偶数都可以表示成两个素数之和
要求:
① 屏幕提示用户一个>=6的偶数;
② 输出这个偶数等于2个素数之和的表达式; ③ 当输入数据<6或者不是偶数时,停止输入和验证。
#include
for(int i=2;i<=sqrt(n);i++)//一个数n如果是合数,那么它的所有的因子不超过n的开方 {
if(n%i==0)return 0;else continue;
} } return 1;//true-->1,false-->0 /*=======验证哥德巴赫猜想的函数(调用judgePrime)=======*/ int proveGoldbach(int m){
} int main(){
}
printf(“n提示:输入一个偶数来验证哥德巴赫猜想,当输入数值<6时,停止输入和判断。nn”);for(int num=6;num>=6;){
} int temp;printf(“Please enter a number:”);scanf(“%d”,&num);temp=proveGoldbach(num);if(temp==0)//当输入小于6或者不是偶数时结束 return 0;printf(“==================================”);if(m<6||m%2!=0){
} if(judgePrime(j)==1&&judgePrime(m-j)==1)//判断两数是否都等于质数 { } printf(“t%d = %d + %dn”,m,j,m-j);return 0;//判断是否大于等于6或者不是偶数 for(int j=2;j<(m/2);j++)
题目三:编写一个求阶乘的函数,接着调用该函数实现组合的求解要求:
① 提示用户输入n和m的数值; ② 输出的 结果
#include
} /*=======组合函数=======*/ int combine(int m,int n){ } /*=======main函数=======*/ void main(){
int m,n;int res;printf(“n提示:这是求组合求和公式的函数,输入两个整数(分别为上标和下标)nn”);scanf(“%d%d”,&m,&n);if(m>n)//判断上标大于小标重新输入 goto loop;return fac(n)/(fac(n-m)*fac(m));int f;if(n<0)printf(“n<0,data error!”);f=1;else if(n==0||n==1)else f=fac(n-1)*n;return f;loop:printf(“Please enter two numbers:”);
}res=combine(m,n);printf(“tResult is %dn”,res);
题目四:编写一个求矩阵中最大元素以及最小元素的函数selectMaxAndMin(),在main函数中调用该函数
要求:
最大值和最小值的输出操作,可以放在selectMaxAndMin()函数中
#include
/*=======在矩阵中选择最大最小数的函数=======*/ void selectMaxAndMin(int arry[ROW][COLUMN])//用指针更方便 {
int tempMax,tempMin;if(arry[0][0]>arry[0][1])//赋初始值 {
} else {
} for(int i=0;i } } for(int j=0;j } if(arry[i][j]>tempMax){ } if(arry[i][j] } int mat[ROW][COLUMN];printf(“Please enter a %d X %d matrix:n”,ROW,COLUMN);for(int i=0;i } selectMaxAndMin(mat);return 0;for(int j=0;j 题目五:编写一个编码原文的函数,对于给定的内容,按照敌方的规律对其进行编码 要求: 某日,我军某部截获了一份敌方电报,经过仔细分析后发现:该电文中所有的字母字符都是经过某种运算后得到的,然那些非字母字符则没有经过任何处理。例如,原文中的字符A对应电文中的字符E,原文中的字符b对应电文中的字符f,原文中的字符W对应电文中的字符A,原文中的字符!在电文中仍为! #include //定义大小 /*=======密码翻译的函数=======*/ char trans(char a){ } //主函数 int main(void){ printf(“请输入原文:nnn”);char str[SIZE];gets(str);printf(“nnn”);if((a>='a'&&a<='v')||(a>='A'&&a<='V')){ } else { } if(a>='w'||a>='W'){ } else { return a;} return a-22;return a+4; }printf(“正在破解……nnn”);printf(“破译的原文是:”);for(int i=0;i<20;i++){ } printf(“n”);str[i]=trans(str[i]);if(str[i]==' ')//判断是否结束 break;printf(“%c”,str[i]); 题目六:编写一个函数,求解输入矩阵的转置矩阵并输出 #include } /*=======原始矩阵的打印函数=======*/ for(int i=0;i for(int j=0;j } printf(“请输入矩阵元素 [%d][%d]=:”,i,j);scanf(“%d”,&mat[i][j]); void matPrint(int mat[][COLUMN]){ } /*=======转置矩阵的打印函数=======*/ void matTrasPrint(int mat[][COLUMN]){ } /*=======main函数=======*/ int main(void){ } printf(“==================================”);printf(“请输入一个 %d X %d 的矩阵:n”,ROW,COLUMN);int mat[ROW][COLUMN];matInput(mat);printf(“==================================”);printf(“原始矩阵为:n”);matPrint(mat);printf(“==================================”);printf(“原始矩阵的转置矩阵为n”);matTrasPrint(mat);return 0;int arr[COLUMN][ROW];for(int i=0;i } for(int j=0;j } printf(“n”);arr[i][j]=mat[j][i];printf(“%3d”,arr[i][j]);for(int i=0;i } for(int j=0;j 题目七:用户输入的字符串,以相反的顺序打印出来。 要求:利用递归函数调用形式 #include int i=0;if(a[i]!=' '){ } int main(void){ }printf(“t提示:输入一串字符以相反的顺序打印n”);char str[SIZE];gets(str);reverse(str);printf(“n”);return 0; } else return;reverse(&a[i+1]);//递归调用 printf(“%c”,a[i]); 四、讨论