C语言实验报告参考答案 原
C语言实验报告第6章答案
6.2基础实验一、程序分析分析以下程序段完成的功能,填写在序号后的空白处,并运行验证结果。
1. ⊙以下程序的运行结果是:_______s=12345↙____________________。
#include <stdio.h>int main( ){ inta[]={1,2,3,4,5},i,j=1,s=0;for(i=4;i>=0;i--){ s=s+a[i]*j;j=j*10;}printf(“ s= %d \n” , s );return 0;}2. 以下程序的运行结果是:_____7 5 3______________________。
#include<stdio.h>int main( ){ int k ;int a[3][3]={9,8,7,6,5,4,3,2,1};for(k=0;k<3;k++)printf(“%d ”,a[k][2-k]);return 0;}3. 以下程序的功能是:____查找最大值元素及下标_________________。
#include <stdio.h>int main( ){ int i, j ,x =0 ,y = 0 , m ;int a[3][3] = { 1, -2 , 0 , 4 , -5 , 6 , 2 , 4 };m = a [0][0] ;for (i=0 ;i < 3 ;i++)for (j = 0 ; j<3 ; j++ )if ( a[ i] [ j ] >m ){ m = a[ i ][ j ] ;x = i ;y = j ;}printf(“ ( % d , % d ) = % d \n”, x , y,m );return 0;} 运行结果:___(1 , 2 ) = 6↙_________________4. 以下程序的的运行结果是:__8,I am student!___________________。
大学大一c语言程序设计实验室上机题全部代码答案(实验报告)
大学大一c语言程序设计实验室上机题全部代码答案(实验报告)大学大一C语言程序设计实验室上机题全部代码答案(实验报告)实验目的:本实验旨在让大一学生通过实际操作掌握C语言的基本语法和常见程序设计题型,提高编程能力。
实验要求:1. 学生需要在实验室中完成上机题,并编写相应的代码。
2. 要求代码具有良好的结构和规范,能够正确运行,并符合题目要求。
3. 学生需要记录代码的思路和过程,并在实验报告中进行详细说明。
实验过程:本次实验共包括以下几个上机题,分别是:1. 题目:输入两个整数,计算它们的和。
实现思路:- 首先,定义两个整型变量a和b,用来保存输入的两个整数。
- 然后,使用scanf函数分别读取两个整数的值。
- 接下来,定义一个整型变量sum,用来保存两个整数的和。
- 使用sum = a + b计算两个整数的和。
- 最后,使用printf函数将结果输出到屏幕上。
2. 题目:输入一个整数n,计算1到n之间所有整数的和。
实现思路:- 首先,定义一个整型变量n,用来保存输入的整数。
- 然后,使用scanf函数读取整数n的值。
- 接下来,定义一个整型变量sum,用来保存1到n之间所有整数的和。
- 使用for循环语句,从1循环到n,累加每个整数的值。
- 最后,使用printf函数将结果输出到屏幕上。
3. 题目:输入一个整数n,判断它是否是质数。
实现思路:- 首先,定义一个整型变量n,用来保存输入的整数。
- 然后,使用scanf函数读取整数n的值。
- 接下来,定义一个布尔型变量isPrime,用来保存n是否是质数的判断结果。
- 使用for循环语句,从2循环到n-1,判断n是否能被其中任意一个整数整除。
- 如果n能被任意一个整数整除,则将isPrime设为假;否则,将isPrime设为真。
- 最后,根据isPrime的值,使用printf函数输出相应的判断结果。
4. 题目:输入一个正整数n,输出n的所有因子。
实现思路:- 首先,定义一个整型变量n,用来保存输入的正整数。
C语言实验报告
实验目的1. 掌握关系运算符和逻辑运算符的运算规则,学会使用关系表达式和逻辑表达式正确描述选择结构的判断条件。
2. 熟练掌握if语句,能够正确使用if语句和if语句的嵌套编写选择结构程序,正确理解程序的执行流程。
3. 掌握switch语句的格式和功能。
实验内容1. 实验4_1.设整型变量a、b、c分别存放从键盘输入的三个整数。
编写C程序,按从大到小排列这三个数,使a成为最大值,c成为最小值,并且按序输出这三个数。
(《C语言程序设计教程-习题解答与实验指导》第125页,实验4,实验内容1)(1)请将.c源程序文本复制粘贴到下框中(2)请将运行结果截图粘贴到此处:(3)思考并回答:①从键盘输入三个整数需要用到scanf 函数,和在源程序中直接赋值有什么区别?答:scanf函数提供一种交互输入方式,在程序运行工程中,需要从键盘输入数据,可以实现一种程序进行多次不同数据的运算,在一定程度上减少了程序出错的可能性,而在源程序中直接赋值只能够进行固定的数据处理,若想进行其他数据的处理,则需要修改程序。
②使用条件表达式实现求两个数中的最大(小)值,如何书写表达式?答:求最大值:(a>b)?(max=a):(max=b);求最小值:(a<b)?(min=a):(min=b);2.实验4_2.编写C 程序,计算下面分段函数的值。
(《C 语言程序设计教程-习题解答与实验指导》第126页,实验4,实验内容2) 要求:①用scanf 函数输入x 的值。
②运行程序时分别按照x 的值小于0,x 的值在0和15之间,x 的值大于15这三种情况输入数据,检查输出的y 值是否正确。
(1)请将.c 源程序文本复制粘贴到下框中y =x+10, (x<0)3x+5, (0≤x<15) 2x-10, (x ≥15)(2)请将运行结果截图粘贴到此处:(3)思考并回答:判断x的值在0和15之间可否使用表达式“0<=x<15”?为什么?正确的表示方法是什么?答:不能,关系运算符具有左结合性,“0<=x<15”等价于“(0<=x)<15”,该运算结果会出现错误,若x的值只要是大于0的数,表达式的运算结果都为1,即逻辑真,并不能判断x的值是否符合要求。
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语言实验报告 实验四 参考答案
实验四循环结构程序设计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语言实验报告 实验三 参考答案
实验十 参考答案(指针)三、实验内容( 按要求完善或设计以下程序,并调试分析运行结果)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语言实验报告第3章答案
3.2基础实验一、程序分析1.以下程序若输入’a’,则输入格式为:__c1=a____;运行结果为:___a,A↙_____。
#include<stdio.h>intmain( ){char c1,c2;scanf(“c1=%c”,&c1);c2=c1-32;printf(“%c,%c\n”,c1,c2);return 0;}2.以下程序如果使得a的值为2、b的值为3,则输入格式为:_a=2,b=3__;运行结果为:_2,3↙_。
#include<stdio.h>intmain( ){ int a,b;scanf(“a=%d,b=%d”,&a,&b);printf(“%d,%d\n”,a,b);return 0;}3.以下程序若输入12.3、7.6、1.1,则输入格式为:_12.3 7.6 1.1__;运行结果为:_aver=7.00___。
#include<stdio.h>intmain( ){ floata,b,c,d;scanf(“%f%f%f”,&a,&b,&c);d=(a+b+c)/3;printf(“aver=%.2f”,d);return 0;}二、程序填空1.输入一个四位整数,求各位数字之和(如1234,则结果为1+2+3+4=10)。
若输入3562,则运行结果为:___3+5+6+2=16↙____________。
#include <stdio.h>intmain( ){ int n,a,b,c,d,m;scanf(“%d”,&n);a=n%10;b=(n/10)%10;c=(n/100)%10;d=__n/1000________;m=__a+b+c+d________;printf(“%d+%d+%d+%d=%d\n ”, d,c,b,a,m);return 0;}2.给定一个华氏法表示的温度值,将其转换为摄氏法表示的温度,转换公式为则运行结果为:__f=64.00,c=17.78↙__。
《C语言程序设计》实验报告(实验1-11) 2013.3
《C语言程序设计》实验报告2012~2013学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++ 6.0一、实验目的:1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序;2.通过运行简单的C程序,初步了解C源程序的特点。
二、预习内容:教材《C语言程序设计教程》第1章。
三、实验内容:1. 在Visual C++ 6.0环境下输入并运行下面的程序:#include <stdio.h>int main( ){printf("This is a C program.\n");return 0;}2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。
#include <stdio.h>int main( ){int a,b,suma=3;b=4;sun=a+b;print(“%d+%d=%d\n”,a,b,sum);return 0;}四、实验结果:1. 运行结果(或截图):2. (1) 改正后的源程序:(2) 运行结果(或截图):五、思考题:1. 一个C程序上机的步骤有哪些?答:2. 组成C程序的基本单位是函数,一个函数包括哪几个部分?答:成绩指导教师签名实验二实验项目名称:数据类型、运算符和表达式所使用的工具软件及环境:Visual C++ 6.0一、实验目的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3. 掌握基本算术运算符及其表达式的使用方法;4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。
二、预习内容:教材《C语言程序设计教程》第2章。
三、实验内容:1. 在Visual C++ 6.0环境下输入下面的程序,编译、连接、调试该程序。
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↙。
C语言程序设计实验报告参考答案
main()
{
inta,b,c,s;
scanf("%d%d%d",&a,&b,&c);
s=a+b+c;
printf("%d=%d+%d+%d\n",s,a,b,c);/*输出 s=a+b+c*/
printf("%d+%d+%d=%d\n",a,b,c,s);/*输出 a+b+c=s*/
长沙理工大学 C 语言实验报告参考答案
实验一熟悉 C 语言程序开发环境及数据描述
四、程序清单
1.编写程序实现在屏幕上显示以下结果: Thedressislong Theshoesarebig Thetrousersareblack 答案: #include<stdio.h> main() {
printf("Thedressislong\n"); printf("Theshoesarebig\n"); printf("Thetrousersareblack\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include<stdio.h> main() {
printf("nislessthan0\n"); elseif(n==0)
printf("nisequalto0\n"); else
printf("nisgreater0\n"); }
六、调试和测试结果
2(1)Enteraandx:56 a=5,f(6)=0.24
c语言实验报告
实验报告1,已知三角形的边为a ,b ,c ,试设计程序输入三边的值并计算三角形的面积,已知三角形的面积计算公式为:S=(a+b+c )/2; Area=c)-b)(s -a)(s -s(s截图为程序及其运行结果分析:常错的地方就是容易后面使用到的字母忘记定义导致程序不认识不能运行,另外地址符&容易忘记,后面有使用的函数公式是在math.h 里面的,也不能忘记#include “math.h ”,最后就是中英文输入标点符号的区别,必须都是英文标点。
2,求ax ²+bx+c=0方程的根,a,b,c 由键盘输入,设b ²-4ac>0,已知求根公式为: X1=2a 4ac -b 2+-b ;X2=aac b b 242---;截图为程序及其运行结果分析:一是注意地址符,注意定义到所有用到的字母,3,已知三角形的边为a,b,c,三角形的面积计算公式为:S=(a+b+c)/2;Area=c)-b)(s-a)(s-s(s试设计程序计算三角形的面积,当三边不满足三角形条件时,提示用户输入错误。
截图为程序及其运行结果,当三边不满足三角形时提示错误分析:程序编辑过程中注意最基本的是用英文符号,定义所有需要的字母,括号不能掉4,求ax²+bx+c=0方程的根,a,b,c由键盘输入并为任意实数,已知求根公式为:X1=2a 4ac -b 2+-b ;X2=aac b b 242---; 提示:根为虚数时的输入语句:printf("x1=%lf+i%lf",p,q);printf("x1=%lf-i%lf",p,q);P=-b/2a; q=a acb 242-.截图为程序及其运行结果,由于输入为任意实数,则可能不满足方程,各种情况都要予以考虑,因此用到else if 语句5,在我们国内的大学生中,学生的学习成绩以百分制计算,但有些国家的大学是以等级记录学生的成绩,例如:A,B,C,D,E等,假设需要按下表进行转换,编写程序,使用switch 语句根据输入的百分制分数,输出相应的分数等级(设输入为任意实数)需要注意事项是switch 语句中,每一个单独的case 语句后面break 不能少,其他的基本与 百分制 分数等级 90-100 A 80-89 B 70-79 C 60-69 D 0-59 E前面相同,英文符号,定义字母,下面截图中是程序及其运行结果,当分数不在0-100范围时显示为错误,6,已知三角形的边为a,b,c,试设计程序输入三边的值并计算三角形的面积。
C语言实验报告 实验八 参考答案
实验七八 函 数(一) 参考答案1.请编写程序sy8-1.cpp ,要求:(1)设计一个fun 函数用来计算并输出n (包括n )以内能被5 或9 整除的所有自然数的倒数之和。
(2)在主函数中输入数据,调用fun 函数,输出结果。
例如,若主函数从键盘给n 输入20后,则输出为s=0.583333。
【解题思路】用循环穷举1~n 之间各数,若余5等于0或余9等于0,则将其表示为倒数并累加即可。
注意分式若需要得到实数结果则必须至少有一个操作数是实数类型。
【参考答案】#include <stdio.h>double fun(int n){ double s=0;int i;for(i=1;i<=m;i++)if(i%5==0||i%9==0)s=s+1.0/i;return s;}main( ){ int n;double s;printf("\nInput n: ");scanf("%d",&n);s=fun(n);printf("s=%f\nlf",s);}2.请编写程序sy8-2.cpp ,要求:(1)设计一个fun 函数用来计算下列多项式的值。
(2)在主函数中输入数据,调用fun 函数,输出结果。
例如:若n 的值为11时,函数的值为1.83333【解题思路】根据多项式各项的变化规律可以看出各项的分子为常量1,分母是从1到n 累加和。
【参考答案】#include <stdio.h>float fun(int n){ float sum=0,s=0; //sum 存多项式的累加和,s 存分母的累加和int i;for(i=1;i<=n;i++){ s=s+i; //先求分母的累加sum=sum+1/s;}return sum;}main()n s ⋯++++⋯++++++=321132112111{int n; float s;printf("\nPlease enter n:");scanf("%d", &n);s = fun(n);printf("the result is: %f\n", s);}3.请编写程序sy8-3.cpp,要求:(1)设计一个fun函数,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。
C语言实验报告答案
C语⾔实验报告答案南京信息⼯程⼤学实验(实习)报告实验(实习)名称:指针及其应⽤⽇期:得分:指导⽼师:院系:应⽤⽓象学院专业:班次:姓名:学号:实验⽬的(1)掌握变量的指针及其基本⽤法。
(2)掌握⼀维数组的指针及其基本⽤法。
(3)掌握指针变量作为函数的参数时,参数的传递过程及其⽤法。
⼀.实验内容(1)运⾏以下程序,并从中了解变量的指针和指针变量的概念。
(2)运⾏以下程序,观察&a[0]、&a[i]和p的变化,然后回答以下问题:1.程序的功能是什么?2.在开始进⼊循环体之前,p指向谁?3.循环每增加⼀次,p的值(地址)增加多少?它指向谁?4.退出循环后,p指向谁?5.你是否初步掌握了通过指针变量引⽤数组元素的⽅法?(3)先分析以下程序的运⾏结果,然后上机验证,并通过此例掌握通过指针变量引⽤数组元素的各种⽅法。
(4)编写函数,将n个数按原来的顺序的逆序排列(要求⽤指针实现),然后编写主函数完成:①输⼊10个数;②调⽤此函数进⾏重排;③输出重排后的结果。
⼆.分析与讨论(1)指针的定义⽅法,指针和变量的关系。
定义⽅法:数据类型 *指针变量名;如定义⼀个指向int型变量的指针——int *p;则我们可以继续写如下代码——int a = 4;p = &aprintf("%d", *p);在这⾥,我们定义了⼀个变量a,我们把它理解为内存空间连续的4个字节(int型占⽤4字节),则这4个字节的空间保存着⼀个数4。
&是取地址符号,即把变量a的地址(即这4个字节的⾸地址)赋给指针p (记住指针p的类型和变量a的类型要保持⼀致,否则的话,要进⾏类型转换)。
这样⼦,指针p就保存着变量a的地址。
我们如果把指针p当做内存空间⾥⾯另外⼀个连续的4个字节,那么这4个字节保存的数就是变量a的地址。
printf("%d",*p)和printf("%d",a)的结果是⼀样的。
c语言实验报告三答案(完整版)
实验三循环控制实验课程名:高级语言程序设计(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语言实验报告(一)
C语言程序设计实验报告2013--2014学年第二学期 2013 级专业:班级:学号:姓名:一、实验题目:顺序结构二、实验目的:(略)三、实验内容1. 程序验证(略)2.程序设计1)编写程序,已知圆半径radius=1.25,求圆周长和面积。
源代码: #include <stdio.h>#include <math.h>#define PI 3.14159void main( ){double r,l,s;r=1.25;l=2.0*PI*r;s=PI*r*r;printf("l=%f,s=%f\n",l,s);}运行结果:2)编写程序完成单个字母的大小写转换。
源代码:#include <stdio.h>void main(){char c;c='a';c=c-32;printf("%c\n",c);}运行结果:3)任意从键盘输入一个三位整数,要求正确分离出它的个位、十位和百位数,并分别在屏幕上显示。
源代码:#include<stdio.h>void main(){int x,l,m,n;printf("请输入一个三位数\n");scanf("%d",&x);l=x/100;m=(x/10)%10;n=x%10;printf("l=%d\n,m=%d\n,n=%d\n",l,m,n);}运行结果:(学习的目的是增长知识,提高能力,相信一分耕耘一分收获,努力就一定可以获得应有的回报)。
C语言实验报告 实验一 参考答案
实验一参考答案1、数据类型、运算符和表达式的应用(1)整型数据的溢出(建立程序文件名为sy1-1.c)# include <stdio.h>void main(){short int a,b;a=32767;b=a+1;printf("a=%d,b=%d\n",a,b);}程序运行结果:a=32767,b=-32768原因:32767是short int型数据的最大值,其二进制为(0111111111111111),在其上加1后产生溢出,变成-32768的补码,其二进制为(1000000000000000)。
整数在内存中以二进制补码形式存放,运算时符号位也要参与运算。
结论:使用整型数据应注意其表示范围,避免产生溢出。
(2)浮点型数据的舍入误差(建立程序文件名为sy1-2.c)# include <stdio.h>void main(){float a,b;a=123456.789e5;b=a+20;printf("a=%f\tb=%f\n",a,b);}程序运行结果:a=1345678848.000000 b=12345678868.000000原因:理论分析a变量的值为12345678900,b的值经计算应为12345678920,结果输出的a和b的值都不对,原因是float型数据的有效数字位数为7位,后几位数字都是不准确的。
结论:应当避免将一个很大的数和一个很小的数直接相加或相减,否则会“丢失”较小的数。
(3)字符型数据和整型数据的混合使用(建立程序文件名为sy1-3.c)# include <stdio.h>void main(){char c1,c2;c1=65; c2=66;printf("%c %c\n",c1,c2);}程序运行结果:A B原因:c1,c2两个变量的类型为char型,在内存中分配1B的存储空间用于存放字符的ASCII码二进制,其存放的数据范围为0~255。
C语言实验报告实验五参考答案
C语言实验报告实验五参考答案实验五一维数值数组(参考答案)1、设计程序sy5-1.c,计算n门课程的平均分。
例如:若有5门课程的成绩是:90.5.72.80.61.5.55,则平均分是:71.80.算法分析:先求n门课的成绩总和,(累加求和),再用累和除以课程数。
参考答案:includevoid main()double score[30]。
sum=0,aver;int n,i;printf("Inputn:");scanf("%d",&n);printf("请依次输入%d门课程的成绩",n);for(i=0;i<n;i++)scanf("%lf",&score[i]);sum=sum+score[i];aver=sum/n;printf( "\nAverage scoreis: %5.2f\n"。
aver);运行结果:2、设计步伐sy5-2.c,对输入的10个整数按倒序寄存后输出成效。
算法阐发:利用“半数交流”算法,最前面的元素和末了面的元素交流,逐步向中央挨近。
可利用两个下标变量i和XXX。
参考答案:includeint main()int a[10]={1,2,3,4,5,6,7,8,9,10};int i,j,t;for( i=0,j=9.i<j。
i++,j--)//逐一向中,交换。
直到已没有元素没交换t=a[i]。
a[i]=a[j]。
a[j]=t;}// a[i]-数组前端的数,a[j]-数组后端的数printf("交流后数组元素是:");for(i=0;i<10;i++)printf("%5d",a[i]);//%5d,5透露表现宽度printf("\n");//输出完所有的数后换行return 0;运行结果:3、设计程序sy5-3.c,输入10个整数,找出其中的最大数及其所在的下标。
C实验报告1参考答案
2+4=6
(2)从键盘输入两个整数,输出这两个整数的差。根据注释信息填写完整程序,以
实现其功能。程序以文件名 sy1_5.c 保存。
#include<stdio.h>
该程序的运行结果:
main()
Input a,b please !20 17
{
20-17=3
int a,b,m;
printf("Input a,b please ! ");
二、实验内容
1.改错题 在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。 (1)下列程序的功能为:已知圆锥半径 r 和高 h,计算圆锥体积 v。纠正程序中存在的错 误,以实现其功能。程序以文件名 sy2_1.c 保存。计算圆锥体积的公式为:
#include stdio.h main();
scanf("%d%d",&a,&b); /*从键盘输入两个整数分别赋予 a 和 b*/
sum=a*a+b*b;
/*赋值语句,把 a2+b2 的结果赋给变量 sum*/
printf("%d*%d+ %d*%d=%d\n",a,a,b,b,sum); /*输出语句*/
}
该程序的运行结果:
Please Input a,b 24 2*2+4*4=20
printf("%c,%d\n",c1,c1); c2=c1+26; printf("%c,%d\n",c2,c2);
c2=c1-32; /* 转换为大写字母 */ /* 输出大写字母及其 ASCII 码值 */
} 2.程序填空题 (1)下列程序的功能为:按给定格式输入数据,按要求格式输出结果。补充完善程序,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(y%2==1)printf("%d\t",i);
}
return 0;
}六、调试和测试结果
1.输入:2 3
输出:s=8
2.输出:共有668个素数
2.
3、输出结果为:
实验六 数组
四、设计流程(算法描述)
(请写出上机内容1的算法描述)
设置两个变量分别指示头和尾。第一个和最后一个元素值互换,然后头和尾变量向里移动,最终到两变量相遇为止。
if(prime(i)==1){k++;printf("%d is a prime muber \n",i);}
printf("共有%d个素数\n",k);
}
3.编写自定义函数count(int x),计算x的因子个数。利用此函数找出并输出1~1000中有奇数个不同因子的整数。
#include<stdio.h>
j=pow(i,2);
sum +=j;
}
printf("the square sum is:%d\n",sum);
return 0;
}
2.一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出2~5000中的所有完数。
#include<stdio.h>
#include<math.h>
main()
main()
{
int a,b,c;
scanf("%d%d",&a,&b);
if(a>=b)
printf("c=%d\n",a*b);
else
printf("c=%d\n",a/b);
return 0;
}
(3)输入a、b、c三个整数,输出最大数。
#include<stdio.h>
main()
{
int a,b,c,x;
while(i<j)
{
k=a[i];
a[i]=a[j];
a[j]=k;
i +=1;
j -=1;
}
}
2.已知某数列的前两项为2和3,其后每一项为其前两项之积。编程实现:从键盘输入一个整数x,判断并输出x最接近数列的第几项?
#include<stdio.h>
#include<math.h>
void Mad(int a[],int n)
s=1;
for(i=1;i<=n;i++)
{
s *=m;
}
return s;
}
int main(void)
{
int m,n;
scanf("%d%d",&m,&n);
printf("s=%ld\n",power ( m,n));
return 0;
}
2.编写自定义函数prime(int x),判断x是否为素数。利用此函数编写程序找出3~5000中的所有素数,并输出素数的个数。
#include<stdio.h>
#include<math.h>
int prime(int m)
{
int i,k;
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>k)return 1;
return 0;
}
main()
{
int i,k;
k=0;
for(i=3;i<=5000;i++)
2:结果:6 28 496
3、输入0,输出sin(0.00)=0.000000
输入1.57,输出sin(1.57)=1.000000
输入0.5,输出sin(0.50)=0.479426
实验五 函数和编译预处理
四、设计流程(算法描述)
(请写出上机内容2的算法描述)
求素数的方法就是:给定一个大于3的数x,从2到X的平方根遍历,只要有数可以被x整除,就不是素数
改成scanf("%c%*c%c%*c%d",&a,&b,&c);
printf("\'%c\',\'%c\',%d\n",a,b,c);
2(1)从键盘输入两个八进制数,计算两数之和并分别用十进制和十六进制数形式输出。
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d%d",&a,&b);
c = a + b;
printf("%d\n",c);
printf("%x\n",c);
return 0;
}
2(2)编写程序:从键盘输入两个实数a和x,按公式计算并输出y的值:
#include<stdio.h>
#include<math.h>
int main()
{
float a,x,y;
scanf("%f%f",&a,&x);
(请写出上机内容2(3)题的算法描述)
主要是两两比较,然后得出最大的数
五、程序清单
(1)输入一个整数,若大于等于0,输出提示信息“is positive”,否则输出“is negative”。
#include<stdio.h>
#include<math.h>
main()
{
int a;
scanf("%d",&a);
y = pow(a,5) + sin(a*x) + exp(a*x) + log(a+x);
printf("y=%f\n",y);
return 0;
}
五、调试和测试结果
2(1) 输入: 12 14
输出:26
1a
2(2)输入:1 0
输出:2.000000
实验三 选择结构程序设计
四、设计流程(算法描述)
{
int i,j,sum=0;
for(i=2;i<=5000;i++) //遍历从2到5000的所有数
{
sum = 0;
for (j=1;j<=i/2;j++) //找出给定整数X的所有因子和
{
if(i%j == 0)
sum +=j;
}
if(i == sum) //sum为因子和,如果和i相等,则输出
3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将0赋给c。(提示:用条件运算符)
答案:
#include<stdio.h>
main()
{
int a,b,c;
a=0;
b=-10;
c= (a>b) ? b:a;
printf("c = %d\n",c);
}
五、调试和测试结果
printf("a/c的余数=%d\n",y);
}
(2)
#include<stdio.h>
main()
{
int a,b,c,d;
float x;
a=160;
b=46;
c=18;
d=170;
x=(a+b)/(b-c)*(c-d);
printf("(a+b)/(b-c)*(c-d)=%f\n",x);
}
输出:the number is positve
输入: -2
输出:the number is negetive
2(2) 输入: 3 2 输出:c=6
输入: 2 3 输出:c=0
2(3)输入:3 2 1 输出:the max number is:3
输入:2 3 1 输出:the max number is:3
{
int i;
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,sum;
sum = 0;
for (i=1;i<=100;i++)
sum += i;
printf("the sum is:%d\n",sum);
sum =0;
for(i=1;i<=100;i++)
{
1.编译、连接无错,运行后屏幕上显示以下结果:
The dress is long
The shoes are big
The trousers are black
2、(1)编译、连接无错,运行后屏幕上显示以下结果:
a/b的商=7
a/c的商=3
a/b的余数=10
a/c的余数=15
(2)编译、连接无错,运行后屏幕上显示以下结果:
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);