C语言程序设计 实验报告2.3_c语言程序设计试题三

其他范文 时间:2020-02-28 11:08:35 收藏本文下载本文
【www.daodoc.com - 其他范文】

C语言程序设计 实验报告2.3由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言程序设计试题三”。

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 void main(){ int i,n,s=1;printf(“Please enter n:”);scanf(“%d”,n);for(i=1,i

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,„)CijCij1*(i-j1)/ j(j=0,1,2,3,„,i)本程序中为了打印出金字塔效果,要注意空格的数目。一位数之间是3个空格,两位数之间有2个空格,3位数之间只有一个空格,程序编制过程中要注意区分。

(4)编写一个程序,将用户输入的任意正整数逆转,例如,输入1234,输出4321。

4.选做题

32f(x)3x4x5x130满足精度e=10-6 编写一个程序,用牛顿迭代法求方程的一个近似根,并在屏幕上输出所求近似根。

x0axxkf(xk)/f'(xk),其中f'(x)是牛顿迭代法:求方程近似根的迭代公式为k1函数f(x)的导函数。牛顿迭代法首先任意设定的一个实数a来作为近似根的迭代初值x0,然后用迭代公式计算下一个近似根x1。如此继续迭代计算x2, x3, „, xn, 直到xnxn1精度e

,此时值xn即为所求的近似根。

2.3:

1.源程序改错:(源程序)

#include void main(){ int i,n,s=1;printf(“Please enter n:”);scanf(“%d”,n);for(i=1,i

(修改后程序)#include int main(void){

int i,n,s=1;

printf(“Please enter n:”);

scanf(“%d”,&n);

for(i=1;i

s=s*i;

printf(“%d!= %d”,n,s);

return 0;}

2.源程序修改替换

(1)修改第1题,分别用while和do-while语句替换for语句。(while)

#include int main(void){ int i=1,n,s=1;printf(“Please enter n:”);scanf(“%d”,&n);while(i

(do-while)#include int main(void){ int i=1,n,s=1;printf(“Please enter n:”);scanf(“%d”,&n);do {s=s*i;i++;} while(i

(2)修改第1题,输入改为“整数S”,输出改为“满足n!≥S的最小整数n”。例如输入整数40310,输出结果为n=8。

#include int main(void){ int i,n=1,s;printf(“Please enter s:”);scanf(“%d”,&s);for(i=1;n= %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 void main(){

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

{

printf(”Wrong input.n“);

return 1;

}

if(x

{

tax = 0.00;

}

else if(x>=1000&&x

{

tax = 0.05 * x;

}

else if(x>=2000&&x

{

tax = 0.10 * x;

}

else if(x>=3000&&x

{

tax = 0.15 * x;

}

else if(x>=4000&&x

{

tax = 0.20 * x;

}

else

{

tax = 0.25 * x;

} printf(”Tax of salary %.2f YUAN is %.2f YUAN.n“, x, tax);}

(2)将输入的一行字符复制到输出,复制过程中将一个以上的空格字符用一个空格代替。

#include int main(){ char c,flag;for(flag=0;(c=getchar())!='n';){

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列位置的值),而的计算如下:

Ci01

(i=0,1,2,„)CijCij1*(i-j1)/ j(j=0,1,2,3,„,i)本程序中为了打印出金字塔效果,要注意空格的数目。一位数之间是3个空格,两位数之间有2个空格,3位数之间只有一个空格,程序编制过程中要注意区分。

#include int Combination(int a,int b);int Triangle(int n);int main(void){ printf(”input the number for triangle of Yanghuin“);Triangle(9);} int Combination(int a,int b){ int t,p,s=1,q=1;if(a==0||b==0){ printf(”%4d“,q);} else{ for(t=b-a+1;t

(4)编写一个程序,将用户输入的任意正整数逆转,例如,输入1234,输出4321。#include #include int main(void){ int a,i,c,n=0;char m;for(a=0;m=getchar(),m!='n';a++){ c=m-'0';n=n+c*pow(10,a);} printf(”%dn“,n);}

4.选做题

-6 编写一个程序,用牛顿迭代法求方程f(x)3x4x5x130满足精度e=10的一个近似根,并在屏幕上输出所求近似根。

32x0axxkf(xk)/f'(xk),其中f'(x)是牛顿迭代法:求方程近似根的迭代公式为k1函数f(x)的导函数。牛顿迭代法首先任意设定的一个实数a来作为近似根的迭代初值x0,然后用迭代公式计算下一个近似根x1。如此继续迭代计算x2, x3, „, xn, 直到xnxn1精度e,此时值xn即为所求的近似根。

#include #include double f(double x);double f_(double x);double root(double m);int main(){ double m=1;printf(”%lfn“,root(m));return 0;}

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)

四、实验体会

了解更多有关C语言的语法知识和循环结构以及熟练了调试过程。

下载C语言程序设计 实验报告2.3word格式文档
下载C语言程序设计 实验报告2.3.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文