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

合集下载

c语言实验报告(附答案版)

c语言实验报告(附答案版)
二、实验目的
1、熟练掌握while,do—while,for语句实现循环的方法,包括如何正确地设定循环条件,如何控制循环的次数。
2、掌握break语句与continue语句的使用方法。
3、熟悉循环的嵌套以及从循环体内退出循环的处理。
4、理解什么是循环程序结构。
三、实验指导
为了达到最佳的实验效果,以下提供几条适于模块化编程的指导意见,可供参考。
实验1简单判定性问题求解
一、实验学时
完成本实验需4学时。
二、实验目的
1、阅读程序题
(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法;
(2)掌握不同的类型数据之间赋值的规律;
(3)掌握数据在内存中的存储方式;
(4)学会输入、输出函数的基本格式和使用方法;
(5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。
1)解题分析:解决问题的关键算法为求圆的面积并按要求输出。循环求圆的面积area,若area<40,则用continue语句提前结束本次循环并开始新一轮循环,若area>90,则用break语句跳出循环。
2)算法流程图如图2-1:
3)综合分析
需要从循环体中提前跳出循环,或者在满足某种条件下,不执行循环中剩下的语句而立即从头开始新的一轮循环,这时就要用到break和continue语句。
(1)将一个百分制成绩转换成等级制成绩,百分制与等级制的对应关系如下表:
百分制
90-100
80-89
70-79
60-69
<60
等级制





具体要求如下:
1)用switch语句实现该功能;

C语言实验册完整答案

C语言实验册完整答案

实验2答案五.程序改错#include<stdi o.h>int main(void){int x=3,y;y = x*x;printf("%d = %d * %d\n",y,x,x); /* 输出*/printf("%d * %d = %d\n",x,x,y);return 0;}六、一般编程题6.1#include<stdio.h>int main(void){int x,y;printf("Input x: ");scanf("%d",&x);printf("Input y: ");scanf("%d",&y);printf("%d + %d = %d\n",x,y,x+y);printf("%d - %d = %d\n",x,y,x-y);printf("%d * %d = %d\n",x,y,x*y);printf("%d / %d = %d\n",x,y,x/y);printf("%d %% %d = %d\n",x,y,x%y);return 0;}6.2#include<stdio.h>int main(void){ float x; double y;printf("Input x: ");scanf("%f",&x);printf("Input y: ");scanf("%lf",&y);printf("%f + %f = %f\n",x,y,x+y);printf("%f - %f = %f\n",x,y,x-y);printf("%f * %f = %f\n",x,y,x*y);printf("%f / %f = %f\n",x,y,x/y);return 0;}6.3#include<stdio.h>int main(void){ char c;printf("Input c: ");scanf("%c",&c);printf("%c\n",c+32);return 0;}6.4#include<stdio.h>int main(void){int celsius,fahr;fahr = 150;celsius = 5*fahr/9 - 5*32/9;printf("fahr = %d, celsius = %d\n", fahr, celsius);return 0;} 如果使用公式9)32(5-⨯=f c 计算结果不一样,celsius = 65。

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

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

实验三循环结构程序设计(参考答案)1、设计程序sy3-1.c,计算并输出n(包括n)以内所有能被5或9整除的自然数的倒数之和。

例如输入n 的值为20时,输出0.583333。

算法分析:穷举1~n(含n)之间的每一个整数,能否被5或者9整除。

如果能,则把它的倒数累加到累加器里去。

因为能被5整除的自然数,应该至少从5才可能,所以循环控制变量i可以5开始。

参考答案:#include<stdio.h>void main(){int n,i;double s=0; //累加器要赋初值为0,结果为小数,所以定义为实数类型printf("请输入n的值:");scanf("%d",&n);for(i=5;i<=n;i++) //穷举小于等于n的自然数if(i%5==0||i%9==0)s=s+1.0/i;// 因为i是整数类型,所以1/i的值为0printf("s=%f\n",s);}运行结果:2、设计程序sy3-2.c,计算并输出给定整数n的所有因子(不包括1与自身)之和。

例如,输入n的值是856时,应输出763。

算法分析:因子,就是能整除n的值。

所以从2到n-1穷举每个数是不是它的因子,是就累加到s中。

参考答案:#include<stdio.h>void main(){int s=0,n,i;printf("请输入n:");scanf("%d",&n);for(i=2;i<n;i++) //穷举所有可能为因子的整数if(n%i==0) //因子即是能整除n的数s=s+i;printf("%d的所有因子之和是:%d\n",n,s);}运行结果:3、设计程序sy3-3.c,输入一个整数,要求将该整数上各位数字是偶数的数取出,并按原来从高位到低位的顺序组成一个新数。

C实验报告答案

C实验报告答案

C程序设计初步一、实验目的(1) 熟悉C语言程序的运行环境(VC++ 。

(2) 掌握C语言程序的上机步骤,了解运行C程序的方法。

(3) 掌握C语言程序的书写格式和C语言程序的结构。

二、实验内容(均要求给出运行结果)1.程序改错题(1) 以下程序实现计算x×y的值并将结果输出。

请改正程序中的错误。

#include ""void main()/**********FOUND**********/{ int x=y=4;z=x*y;/**********FOUND**********/printf("z=%d/n", Z);}答案:=======(答案1)=======int x=,4,y=4,z;=======(答案2)=======printf("z=%d\n", z);(2) 以下程序实现输入圆的半径,求圆的周长。

请改正程序中的错误。

#include ""void main(){ int r;float l;printf("Enter r:");scanf("%d", &r);/**********FOUND**********/l=2πr/**********FOUND**********/printf("l=%d\n",l);}答案:=======(答案1)=======l=2**r;=======(答案2)=======printf("l=%f\n", l);2.程序填空题(1) 下面程序能对两个整型变量的值进行交换,请填空。

#include ""void main(){ int a=3,b=4,t;t=a;/***********SPACE***********/【】;/***********SPACE***********/【】;printf("a=%d,b=%d\n",a,b);}答案:=======(答案1)=======a=b=======(答案2)=======b=t(2) 下面程序不用第三个变量,实现两个数的对调操作。

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

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

实验四循环结构程序设计2(参考答案)(1)编写程序sy4-1.c,输入n,计算并输出如下多项式的值:S n=1+1/2!+1/3!+1/4!+…+1/n!。

例如输入n为15时,输出1.718282。

算法分析:第一项可以看成1/1!,用循环控制累加n个分式,分式的分母是i!,分子固定为1。

参考答案:# include <stdio.h>void main(){double s=0,p=1;int i,n;scanf("%d",&n);for(i=1;i<=n;i++){p = p * i ; //计算分母i!s = s + 1 / p ; //累加}printf("s=%lf\n",s);}运行结果:(2)编写程序sy4-2.c,输入n,根据以下公式计算s:,例如当n=11时,结果为1.833333。

算法分析:该多项式的分母是累加。

参考答案:# include <stdio.h>void main(){double sn=0,s=0;int i,n;scanf("%d",&n);for(i=1;i<=n;i++){s = s + i ; //计算分母1~i的累加和sn = sn + 1 / s ;}printf("sn=%lf\n",sn);}运行结果:(3)编写程序sy4-3.c,计算3~n之间所有素数的平方根之和,要求:输入n,输出结果。

例如,输入n 的值是100,则输出结果是148.874270。

注意n应在2~100之间。

算法分析:穷举3~n之间的数找素数,若是素数则累加她的平方根。

参考答案:# include <stdio.h># include <math.h>void main(){int i,j,n,flag;double s=0;scanf("%d",&n);for(i=3;i<n;i++) //穷举3~n之间找素数{flag=1; //假设当前的i是素数,标志变量设为1for(j=2;j<i;j++) //穷举要判断是否是素数的i的除数,范围2~i-1if(i%j==0) //若i能被j整除,则不是素数{ flag=0; break; } //标志变量改为0,并终止循环if( flag == 1 )s = s + sqrt( i ); //若i是素数,则累加sqrt(i)}printf("s=%f\n",s);}运行结果:(4)编写程序sy4-4.c,根据以下公式求p的值,(m与n为两个正整数且m>n)。

计算机C语言实验报告含答案

计算机C语言实验报告含答案

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

………………………………………………………………………………………………一、实验题目: 语句与顺序结构控制程序设计1)编写程序, 已知圆半径radius=1.25,求圆周长和面积。

源代码: 运行结果:#include <stdio.h> d=7.853981#define PI 3.1415926 s=4.908735void main(){float r=1.25,d,s;d=2.0*PI*r;s=PI*r*r;printf("d=%f\n",d);printf("s=%f\n",s);}2)编写程序完成大写字母的小写转换。

源代码: 运行结果:#include <stdio.h> 请输入一个大写字母:H void main() H h{char ch1,ch2;printf("请输入一个大写字母:");ch1=getchar();ch2=ch1+32;printf("%c %c\n",ch1,ch2);}3)任意从键盘输入一个三位整数, 要求正确分离出它的个位、十位和百位数, 并分别在屏幕上显示。

源代码: 运行结果:#include <stdio.h> 请输入一个整数 :123 void main() b=1,s=2,g=3{int a,g,s,b;printf("请输入一个整数: ");scanf("%d",&a);b=a/100;s=(a%100)/10;g=a%10;printf("b=%d,s=%d,g=%d\n",b,s,g);}二、实验题目: 选择结构程序设计程序设计1)设变量a、b、c分别存放从键盘输入的3个整数。

编写程序, 按从大到小的顺序排列这3个整数, 使a成为最大的, c成为最小的, 并且按序输出这3个整数。

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

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

实验十 参考答案(指针)三、实验内容( 按要求完善或设计以下程序,并调试分析运行结果)1. 程序填空题 给定程序BLACK10-1.C 中,函数fun 的功能是:将形参n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n 传回所指变量。

例如,输入一个数:27638496,新的数:为739。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

【解题思路】第一处:t 是通过取模的方式来得到*n 的个位数字,所以应填:10。

第二处:判断是否是奇数,所以应填:0。

第三处:最后通形参n 来返回新数x ,所以应填:x 。

2. 程序改错题 给定程序MODI10-1.C 中函数fun 的功能是: 计算n 的5次方的值(规定n 的值大于2、小于8),通过形参指针传回主函数;并计算该值的个位、十位、百位上数字之和作为函数值返回。

例如,7的5次方是16807, 其低3位数的和值是15。

【解题思路】第一处:变量d 的初始值应为1。

第二处:整除的符号是 /。

3. 程序设计题 请编写函数fun ,它的功能是:求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。

例如,若 x 中的值为: 35,则有 4 个数符合要求,它们是: 1, 5, 7, 35。

【解题思路】本题是求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。

【参考答案】void fun ( int x, int pp[], int *n ){ int i; *n=0;for(i=1; i <= x; i++)if((x % i== 0) && (i % 2)) pp[(*n)++]=i;}4. 程序填空题 给定程序中,函数fun 的功能是:找出N ×N 矩阵中每列元素中的最大值,并按顺序依次存放于形参b 所指的一维数组中。

C语言实验报告第5章答案

C语言实验报告第5章答案

5.2基础实验一、程序分析1.以下程序的运行结果是a=3,b=7↙。

#include <stdio.h>intmain( ){ int a=2,b=8;while(b--<0)b-=a ;a++ ;printf(“a=%d,b=%d\n”,a,b);return 0;}2.以下程序的运行结果是sum=14。

#include <stdio.h>intmain( ){ int n,sum= 0 ;n=2345;do{ sum = sum +n%10;n=n/10;} while(n);printf(“sum=%d ”,sum);return 0;}3.以下程序的运行结果是2550。

#include <stdio.h>intmain( ){ int i,s=0;for(i=0;i<=100;i++)if(i%2==0)s=s+i;printf(“%d”,s);return 0;}4.以下程序的运行结果是#↙。

#include <stdio.h>intmain( ){ int i;for(i=1;i<6;i++){ if(i%2) {printf(“#”);break;}printf(“*”);}printf(“\n”);return 0;}5.以下程序的运行结果是#*#*#↙。

#include <stdio.h>intmain( ){ int i;for(i=1;i<6;i++){ if(i%2) {printf(“#”);continue;}printf(“*”);}printf(“\n”);}6.以下程序的运行结果是。

#include <stdio.h>intmain( ){ int i,j;for(i=1; i<=4;i++){ for(j=1;j<=2*i-1;j++)printf(“”);for(j=1;j<=4-i;j++)printf(“*”);printf(“\n”);}return 0;}5.3拓展实验一、程序分析2.⊙以下程序的运行结果是:x=5 y=3 z=0↙。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言实验报告参考答案实验一熟悉C语言程序开发环境及数据描述四、程序清单1.编写程序实现在屏幕上显示以下结果:The dress is longThe shoes are bigThe trousers are black答案:#include<>main(){p rintf("The dress is long\n");p rintf("The shoes are big\n");p rintf("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(){i nt a,b,c,x,y;a=150;b=20;c=45;x=a/b;y=a/c;p rintf("a/b的商=%d\n",x);p rintf("a/c的商=%d\n",y);x=a%b;y=a%c;p rintf("a/b的余数=%d\n",x);p rintf("a/c的余数=%d\n",y);}(2)#include<>main(){i nt a,b,c,d;f loat x;a=160;b=46;c=18;d=170;x=(a+b)/(b-c)*(c-d);p rintf("(a+b)/(b-c)*(c-d)=%f\n",x);}3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将0赋给c。

(提示:用条件运算符)答案:#include<>main(){i nt a,b,c;a=0;b=-10;c= (a>b) b:a;p rintf("c = %d\n",c);}五、调试和测试结果1.编译、连接无错,运行后屏幕上显示以下结果:The dress is longThe shoes are bigThe trousers are black2、(1) 编译、连接无错,运行后屏幕上显示以下结果:a/b的商=7a/c的商=3a/b的余数=10a/c的余数=15(2) 编译、连接无错,运行后屏幕上显示以下结果:(a+b)/(b-c)*(c-d)=3. 编译、连接无错,运行后屏幕上显示以下结果:c =-10实验二顺序结构程序设计四、程序清单1.键盘输入与屏幕输出练习问题1 D 。

问题2 改printf("%c,%c,%d\n",a,b,c);这条语句改成:printf("%c %c %d\n",a,b,c);问题3 改scanf("%c%c%d",&a,&b,&c);这条语句改为:scanf("%c,%c,%d",&a,&b,&c);问题4 改printf("%c,%c,%d\n",a,b,c);这条语句改成:printf("\’%c\’ \’ %c\’ %d\n",a,b,c);问题5 把scanf("%c%c%d",&a,&b,&c);和printf("%c,%c,%d\n",a,b,c);改成scanf("%c%*c%c%*c%d",&a,&b,&c);printf("\'%c\',\'%c\',%d\n",a,b,c);2(1)从键盘输入两个八进制数,计算两数之和并分别用十进制和十六进制数形式输出。

#include <>int main(){int a,b,c;s canf("%d%d",&a,&b);c = a + b;p rintf("%d\n",c);p rintf("%x\n",c);r eturn 0;}2(2)编写程序:从键盘输入两个实数a和x,按公式计算并输出y的值:5ax++=)ln()sin(y++eaxaax#include<>#include<>int main(){float a,x,y;s canf("%f%f",&a,&x);y = pow(a,5) + sin(a*x) + exp(a*x) + log(a+x);p rintf("y=%f\n",y);r eturn 0;}五、调试和测试结果2(1) 输入: 12 14输出:261a2(2) 输入:1 0输出:实验三选择结构程序设计四、设计流程(算法描述)(请写出上机内容2(3)题的算法描述)主要是两两比较,然后得出最大的数五、程序清单(1)输入一个整数,若大于等于0,输出提示信息“is positive”,否则输出“is negative”。

#include<>#include<>main(){int a;s canf("%d",&a);i f(a>=0)printf("the number is positve\n");e lseprintf("the number is negetive\n");r eturn 0;}(2)输入两个整数a和b,若a>=b时,求其积c并显示;若a<b时,求其商c并显示。

#include<>main(){int a,b,c;s canf("%d%d",&a,&b);i f(a>=b)printf("c=%d\n",a*b);e lseprintf("c=%d\n",a/b);r eturn 0;}(3)输入a、b、c三个整数,输出最大数。

#include<>main(){int a,b,c,x;scanf("%d%d%d",&a,&b,&c);i f(a>=b)x=a;e lsex=b;i f (x<c)x=c;p rintf("the max number is:%d\n",x);r eturn 0;}六、调试和测试结果2(1) 输入: 2输出:the number is positve输入: 0输出:the number is positve输入: -2输出:the number is negetive2(2) 输入: 3 2 输出:c=6输入: 2 3 输出:c=02(3) 输入:3 2 1 输出:the max number is:3输入:2 3 1 输出:the max number is:3输入:1 2 3 输出:the max number is:3实验四循环结构程序设计四、设计流程(算法描述)(请写出上机内容2的算法描述)首先求出每一个给定数的所有因子和,然后从2到5000循环,那一个数x与因子之和相等,就是完数。

五、程序清单1.编写程序:求1+2+3+...+100和12+22+33+ (1002)#include<>#include<>int main(){int i,j,sum;s um = 0;f or (i=1;i<=100;i++)sum += i;p rintf("the sum is:%d\n",sum);s um =0;f or(i=1;i<=100;i++){j=pow(i,2);sum +=j;}p rintf("the square sum is:%d\n",sum);r eturn 0;}2.一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出2~5000中的所有完数。

#include<>#include<>main(){int i,j,sum=0;f or(i=2;i<=5000;i++) 写程序:计算sinx 的近似值,精确到10-6。

++-+-= !7!5!3sin 753x x x x x其实 )!12()1(sin )12(1n )1(--=-∞=-∑n x x n n 所以程序 #include <> #include <> main() { float x,sinx,i,t; printf("请输入一个x 值(弧度值):"); scanf("%f",&x); sinx=0; t=x;i=1; while(fabs(t)>=1e-6) { sinx=sinx+t; t=t*(-x*x/(2*i*(2*i+1)));i++;}printf("sin(%.2f)=%.6f\n",x,sinx);}六、调试和测试结果 1:结果:the sum is :5050the square sum is :3383502:结果:6 28 4963、输入0,输出sin=输入,输出sin=输入,输出sin=实验五 函数和编译预处理四、设计流程(算法描述)(请写出上机内容2的算法描述)求素数的方法就是:给定一个大于3的数x ,从2到X 的平方根遍历,只要有数可以被x 整除,就不是素数五、程序清单1.编写自定义函数long power(int m,int n),计算nm 的值。

利用此函数编程序实现:从键盘输入两个整数m 和n ,计算出n m 的值。

#include<>long power(int m,int n)编写自定义函数count(int x),计算x 的因子个数。

利用此函数找出并输出1~1000中有奇数个不同因子的整数。

#include<>#include<>int count(int x){i nt sum,i;s um =0;入:2 3输出:s=82.输出:共有668个素数2.3、输出结果为:实验六数组四、设计流程(算法描述)(请写出上机内容1的算法描述)设置两个变量分别指示头和尾。

相关文档
最新文档