C语言程序设计II实验报告
C语言程序设计实验报告2
实验2 流程控制实验2.1 实验目的(1)掌握复合语句、if语句、switch语句的使用,熟练掌握for、while、do-while三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语句。
(2)熟练运用for、while、do-while语句来编写程序。
(3)练习转移语句和标号语句的使用。
(4)使用集成开发环境中的调试功能:单步执行、设置断点、观察变量值。
2.2 实验内容及要求2.2.1.源程序改错下面是计算s=n! 的源程序,在这个源程序中存在若干语法和逻辑错误。
要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。
例如,8!=40320。
1 #include <stdio.h>2 int main()3 { int i,n,s=1;4 printf("Please enter n:");5 scanf("%d",n);6 for(i=1,i<=n,i++)7 s=s*i;8 printf("%d! = %d",n,s);9 }10 return 0;解答:(1)错误修改:1)输入字符格式错误,正确形式为:scanf(“%d”,&n);2)return 0;与}的相对位置错误,正确形式为:return0;}(2)错误修改后的程序:#include <stdio.h>int main(){ 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;}(3) 运行结果:图1 2.2.1源程序改错测试图2.2.2.源程序修改替换(1)修改第1题,分别用while和do-while语句替换for语句。
计算机二级 C语言 实验报告 样本
循环结构程序设计一、实验目的1.掌握三种循环语句的格式、执行与设计技巧,掌握分支程序结构与循环程序结构的配合(嵌套)使用,使用常用算法设计相应的程序以解决实际问题;2.实验重点——三种循环语句及循环嵌套3.实验难点——循环嵌套4.实验要求——重点讨论for语句及几种常用的程序设计方法:穷举、递推、迭代法二、实验原理1.while语句while语句的一般形式为:while (表达式)语句;其执行准则为当表达式的值为非0时执行while中的内嵌语句。
在表达式中,往往有一个变量用来控制循环的结束,这个变量叫循环控制变量。
在这种循环中,必须在进入循环之前给循环控制变量赋初值,而在循环体中,还要注意必须有一句使循环控制变量的值改变的语句,2.do-while语句一般形式为:do语句while(表达式);执行准则为:先执行一次指定的内嵌语句,而后判断表达式,当表达式的值为0时结束循环。
在表达式中,往往有一个变量用来控制循环的结束,这个变量叫循环控制变量。
在这种循环中,必须在进入循环之前给循环控制变量赋初值,而在循环体中,还要注意必须有一句使循环控制变量的值改变的语句,3.for语句一般形式为:for(表达式1;表达式2;表达式3)语句;执行过程为:①先求解表达式1;②求解表达式2,若其值为真,则执行指定的内嵌语句而后执行下一步;若其值为假,则结束循环;③求解表达式3;④转②;⑤执行for下面的语句。
说明:①一般形式中的表达式1可以省略,此时应该在for 语句前给循环变量赋初值;如for (;i<=100;i++) sum=sum+i;②如果表达式2省略,则循环为无限循环;③表达式3也可以省略,但此时应该另外设法保证循环正常结束;如 for (sum=0,i=1;i<=100;){sum=sum+i;i++}④可以只有表达式2,此时完全等同于while语句;⑤三个表达式都可以省略,此时相当于while(1)语句,循环为无限循环;如for ( ; ;)⑥表达式1和表达式3可以是逗号表达式;⑦表达式2一般是关系表达式。
C语言实验二报告
北京电子科技学院(BESTI)实验报告课程:程序设计基础班级:姓名:学号:成绩:指导教师:张晓昆实验日期:实验密级:预习程度:实验时间:15:30~18:30仪器组次:必修/选修:必修实验序号: 2实验名称:函数编程练习实验目的与要求:主函数通常只处理输入和输出;掌握定义函数的方法;掌握函数实参与形参的对应关系,以及“值传递”的方式;掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法,、了解函数的嵌套调用方法和递归调用方法。
观察堆栈窗口call stack,注意函数调用过程堆栈的动态变化。
有兴趣的同学可以将几个函数分别放到不同的.C文件中,分别编译,再利用Project建立工程文件,然后连接执行,观察结果。
实验内容素数(Prime Number),又称为质数,它是不能被1和它本身以外的其他整数整除的正整数。
按照这个定义,负数、0和1都不是素数,而17之所以是素数,是因为除了1和17以外,它不能被2~16之间的任何整数整除。
任务1:试商法是最简单的判断素数的方法。
用i=2~m-1之间的整数去试商,若存在某个m能被1与m本身以外的整数i整除(即余数为0),则m不是素数,若上述范围内的所有整数都不能整除m,则m是素数。
采用试商法,分别用goto语句、break语句和采用设置标志变量并加强循环测试等三种方法编写素数判断函数IsPrime(),从键盘任意输入一个整数m,判断m是否为素数,如果m是素数,则按"%d is a prime number\n"格式打印该数是素数,否则按"%d is not a prime number\n"格式打印该数不是素数。
然后分析哪一种方法可读性更好。
1、goto语句#include <stdio.h>#include <stdlib.h>int IsPrime(int n); //判断是否是素数的函数原型int main(){int m;printf("Please enter a integer:");scanf("%d", &m); //用户输入欲判断的数if( IsPrime(m) == 1){ //调用判断是否是素数的函数并输出结果printf("%d is a prime number!\n", m);}else{printf("%d is not a prime number!\n", m);}return 0; //返回0} //主函数结束int IsPrime(int n) //判断是否是素数的函数{int i = 2;int j = 0;if(n < 2){ //若n小于2,返回0值return 0;}if(n == 2){return 1;}loop:if(n % i == 0){ //利用goto语句i++;j++;goto loop;}if(j >= 1){ //若j大于2,则说明能被2~n-1之间的数整除,返回0;否则返回1 return 0;}else{return 1;}} //子函数结束2、break语句#include <stdio.h>#include <stdlib.h>int IsPrime(int n); //判断是否是素数的函数原型int main(){int m;printf("Please enter a integer:");scanf("%d", &m); //用户输入欲判断的数if( IsPrime(m) == 1){ //调用判断是否是素数的函数并输出结果printf("%d is a prime number\n", m);}else{printf("%d is not a prime number\n,", m);}return 0; //返回0} //主函数结束int IsPrime(int n) //判断是否是素数的函数{int i;int j = 0;if( n < 2 ){ //若n小于2,返回0值return 0;}for(i = 2; i <= n - 1; i++){if( n % i == 0){ //利用试商法判断是否能被2~n-1之间的数整除j++;}if(j > 1){ //若j大于2,则说明能被2~n-1之间的数整除,返回0;否则返回1 return 0;break;}}if( j == 0)return 1;} //子函数结束3、采用设置标志变量并加强循环测试#include <stdio.h>#include <stdlib.h>int IsPrime(int n); //判断是否是素数的函数原型int main(){int m;printf("Please enter a integer:");scanf("%d", &m); //用户输入欲判断的数if( IsPrime(m) == 1){ //调用判断是否是素数的函数并输出结果printf("%d is a prime number\n", m);}else{printf("%d is not a prime number\n,", m);}return 0; //返回0} //主函数结束int IsPrime(int n) //判断是否是素数的函数{int i;int j = 0;if( n < 2 ){ //若n小于2,返回0值return 0;}for(i = 2; i <= n - 1; i++){if( n % i == 0){ //利用试商法判断是否能被2~n-1之间的数整除j++;}}if(j >= 1){ //若j大于2,则说明能被2~n-1之间的数整除,返回0;否则返回1 return 0;}else{return 1;}} //子函数结束任务2:用数学的方法可以证明,不能被2取整)之间的数整除的数,一定不能被1和它本身之外的其他任何整数整除。
C语言程序设计II实验报告
第二部分实验内容
一、实验目的
1、掌握一维数组的定义和引用
2、掌握一维数组的初始化方法
3、了解与一维数组有关的应用编程方法
二、实验意义
在解决实际问题或实现某些算法时,数组是经常使用的构造数据类型,掌握数组的定义,元素引用特征和数组的编程特色,可加强学生解决实际问题的能力,同时可接触到更多的经典算法,这些算法很多都是通过数组类型存储数据并实现的,有了这些基础后,学生可以在今后的编程中应用这些知识。
数组的实验能让学生进一步的提高程序设计编程和调试的能力,对于数组元素引用及循环控制的特点,也可以在实验中得以加深理解和巩固知识。
三、实验重点
1 一维数组的定义、元素的引用。
2 一维数组编程的循环控制特色。
3 排序等相关算法的实现。
四、实验难点
一维数组编程的循环控制特色,程序调试时的数组越界问题
排序算法的理解和记忆
五、实验方式
提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。
1. 从键盘输入10个整数存放在一维数组里,用冒泡法进行排序输出。
2. 从键盘输入10个整数,找出最大的数并输出该数及其下标。
3. 用scanf函数给二维数组a[3][4]输入12个数据,并求出12个数据中正数
之和,每一行的最小值以及下标值。
2023最新-c语言程序设计实验报告【2篇】
c语言程序设计实验报告【2篇】c语言程序设计实验报告篇一实验名称计算出1000以内10个最大素数之和实验目的1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。
2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。
3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。
进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。
实验内容计算并输出1000以内最大的10个素数以及它们的和。
要求:在程序内部加必要的注释。
由于偶数不是素数,可以不考虑对偶数的处理。
虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。
输出形式为:素数1+素数2+素数3+…+素数10=总和值。
算法描述流程图main函数:判断素数:源程序#include#includeint sushu(int n)/* 判断素数的函数*/{int t,i;t=sqrt(n);for(i=2;i=t;i++)if(n%i==0)/* 如果不是素数,返回0 */return 0;return n;/* 如果是素数,返回该数*/}void main(){int i,j=0,n,m=0,a[1000],x;/*clrscr();*/printf(please input a number form 1 to 1000:);scanf(%d,amp;x);if(x==2)/* x=2时的处理*/printf(%dn,x);else if(x=1) /* x在1~1000范围外时的处理*/printf(error!n);else{if(x%2==0)/* x为偶数时,把x变为奇数*/x--;for(i=x;i1;i-=2)/* x为奇数时,做函数计算*/{n=sushu(i);/* 做判断素数的函数调用*/if(n!=0)/* 对素数的处理*/{a[j]=n;/* 把素数由大至小存入数组a[ ]中*/j++;if(j11)m+=n; /* 统计前10个素数之和*/}}if(j10)/* 当素数个数小于10个时,结果输出*/{for(i=0;i{n=a[i];printf(%d,n);printf(+);}printf(2=);printf(%dn,m+2);}else for(i=0;i10;i++)/* 当素数个数大于等于10个时,结果输出*/{n=a[i];printf(%d,n);if(i9)printf(+);else{printf(=);printf(%dn,m);}}}}测试数据分别输入1000、100、10测试。
《c语言程序设计》实验报告(实验-2)
《c语⾔程序设计》实验报告(实验-2)《C语⾔程序设计》实验报告2013~2014学年第⼆学期班级姓名学号指导教师实验⼀实验项⽬名称:C程序的运⾏环境和运⾏C程序的⽅法所使⽤的⼯具软件及环境:Visual C++ 6.0⼀、实验⽬的:1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运⾏⼀个C程序;2.通过运⾏简单的C程序,初步了解C源程序的特点。
⼆、预习内容:教材《C语⾔程序设计教程》第1章。
三、实验内容:1. 在Visual C++ 6.0环境下输⼊并运⾏下⾯的程序:#includeint main( ){printf("This is a C program.\n");return 0;}2. 在Visual C++ 6.0环境下输⼊下⾯的程序(有语法错误),编译、连接、调试该程序,直⾄程序⽆语法错误,然后运⾏程序,并观察分析运⾏结果。
#includeint main( ){int a,b,suma=3;b=4;sun=a+b;print(“%d+%d=%d\n”,a,b,sum);return 0;}四、实验结果:1. 运⾏结果(或截图):This is a C program.Press any key to continue2. (1) 改正后的源程序:#includeint main( ){int a,b,sum;a=3;b=4;sum=a+b;printf("%d+%d=%d\n",a,b,sum);return 0;}(2) 运⾏结果(或截图):3+4=7五、思考题:1. ⼀个C程序上机的步骤有哪些?答:上级输⼊与编辑源程序—对原程序进⾏编译–与库函数链接–运⾏可执⾏的⽬标程序。
2. 组成C程序的基本单位是函数,⼀个函数包括哪⼏个部分?答:⼀个函数包括两部分:分别为函数头或函数⾸部和函数体。
成绩指导教师签名实验⼆实验项⽬名称:数据类型、运算符和表达式所使⽤的⼯具软件及环境:Visual C++ 6.0⼀、实验⽬的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使⽤⽅法;3. 掌握基本算术运算符及其表达式的使⽤⽅法;4. 掌握++、--运算符、赋值运算符及其表达式的使⽤⽅法。
c语言实验二实验报告
一、实验目的1、掌握关系表达式和逻辑表达式的使用。
2、掌握选择结构程序设计的一般方法。
3、熟练使用if语句进行程序设计。
4、掌握使用switch语句实现多分支选择结构。
二、实验内容有一分段函数如下:编写程序,输入x(实数)的值,输出以如下格式:x=??.??,y=??.?? ( 即小数部分保留2位)程序代码:#include "stdio.h"int main(){float x,y;scanf("%f",&x);if(x<1)y=x*x;if(x>=1&&x<10)y=5*x-1;if(x>=10)y=2*x+4;printf("x=%.2f,y=%.2f\n",x,y);return 0;}2、从键盘输入三个实数,输出最大数和最小数。
样例输入:1.23 3.45 5.67样例输出:5.67 1.23程序代码:#include "stdio.h"int main(){float a,b,c,max,min;scanf("%f%f%f",&a,&b,&c);if(a>b){max=a;min=b;}else{max=b;min=a;}if(a>c)if(b>c){min=c;}else {min=b;}else {max=c;}printf("%.2f %.2f\n",max,min);return 0;}3、读入3个非零的double数后,判别这三个值是否可以表示一个三角形的三条边。
样例输入1:1.23 1.23 1.23样例输出1:yes.样例输入2:5.23 3.45 -12.34样例输出2:no.程序代码:#include "stdio.h"int main(){double a,b,c;scanf("%lf%lf%lf",&a,&b,&c);if(a>0&&b>0&&c>0)if(a+b>c&&b+c>a&&a+c>b)printf("yes.\n");else printf("no.\n");else printf("no.\n");return 0;}4、读入3个非零整数后,判别这三个值是否可以表示一个直角三角形的三条边。
C语言程序设计实验报告2
《C语言程序设计实验报告》
实验编程作业
一.实验目的
1.熟悉运用Visual C++程序,掌握C语言的源程序的编辑、编译、执行的过程。
2.通过完成编程作业,了解并熟悉C语言源程序的特点。
二.实验要求
1.阅读和掌握本实验内容所给的全部程序。
2.熟练掌握C语言源程序的编辑、编译、执行的过程。
三.实验内容及成果展示
调试运行《C语言程序设计实验教程(第二版)》P6-P8编程题训练1.
2.
3.
4.
四.实验心得
1.在再次使用Visual C++进行程序的编辑、编译、和执行后,体会到将源代码输入正确对以后的程序调试、执行省去许多不必要的麻烦。
2.在输入源代码的过程中,认识到1和l的差别,下次碰到此种情况一定会更加细心地对待。
3.熟悉了C语言源程序的特点,能够在不同环境下编辑、编译、与运
行C语言程序。
C语言_实验二、选择结构程序设计
实验二 选择结构程序设计一、实验目的1. 掌握关系表达式和逻辑表达式的使用。
2. 熟悉选择结构程序设计。
3. 熟练使用if 语句进行程序设计。
4. 使用switch 语句实现多分支选择结构。
二、实验内容(1 计算a+|b| 2 判断一个整数是否可以被3和5整除)1.[目的]掌握判断一个字符型数据是否数字字符的方法,以及数字字符转换为相应整数的方法。
[题目内容]从键盘输入一个字符型数据,若输入一个数字字符('0'-'9'),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。
[输入]一个字符型数据[输出]整数或出错信息[提示] 根据字符型数据的ASCII 码值是否在‘0’字符与‘9’字符之间进行判断。
使用if …else …语句和复合语句。
2.[目的]掌握条件表达式的使用[题目内容] 编写一个程序,其功能为:从键盘输入三个数x 、y 、z ,判断x+y=z 是否成立,若成立输出‚x+y=z ‛的信息,否则输出‚x+y!=z ‛的信息。
[输入] 三个数x 、y 、z[输出] ‚x+y=z ‛或‚x+y!=z ‛[提示] 条件判断表达式x+y==z3.[目的]掌握求最大值最小值的方法。
[题目内容] 编写一个程序,其功能为:输入三个整数,输出最大数和最小数。
[输入] 三个整数[输出] 最大值和最小值[提示] 设置最大值变量max 和最小值变量min ;首先比较a,b 的大小,并把大数存入max , 小数存入min ;然后最大值变量max 和最小值变量min 再与c 比较,若c 大于max ,则max 取值c ,否则保持不变;如果c 小于min ,则min 取值c ,否则保持不变。
最后输出max 和min 的值。
使用if …else …语句、if 语句以及复合语句。
4.[目的]运用已学知识解决实际问题。
[题目内容]如下两个线性方程组的两个未知数为x1和x2:ax 1+bx 2=mcx 1+dx 2=n该方程的唯一解为(ad-cb 不等于零时):cb ad bn md x --=1 bcad mc na x --=2 请编写一个程序,读取a 、b 、c 、d 的值,计算x1和x2的值。
C程序设计实验二实验报告
1输入自己编好程序,编译并运行,分析运行结果。
2年增长率不在程序中指定,改用scanf函数语句输入,分别输入7%,8%,10%。观察结果。
3在程序中增加printf函数语句,用来提示输入什么数据,说明输出的是什么数据。
编写程序如下
#include<stdio.h>
将c1,c2定义为整型后,其长度增加,输出时将不会溢出,故结果无误。
(2)输入以下程序。即
用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。问在键盘上如何输入?
#include<stdio.h>
int main()
{
int a,b;
float x,y;
int main()
{char c1,c2;
c1=97;
c2=98;
printf(“%c %c\n”,c1,c2);
printf(“%d %d\n”,c1,c2);息:
printf(“%c %c\n”,c1,c2);输出的是字符型数据,查阅附录B,ASCII值为97,98所对应的字符分别为a和b;printf(“%d %d\n”,c1,c2);输出的则是整型。
实验总结:
老师批语:
2将程序第4,5行改为
c1=197;
c2=198;
运行时输出信息如下
由于c1,c2定义为字符型变量,所以其范围为(0~127),将其以字符输出时,197,198分别对应的是┼,╞;而以整型输出时,数值超出了字符型变量的长度,溢出,故结果有误。
3如果将程序第3行改为
int c1,c2;
运行时输出信息如下:
C语言程序设计实验报告(二)
输入:40,50,60↙
5.运行下述程序,分析输出结果。 main(int b=10; float x=10.0; double y=10.0; printf("a=%d, b=%ld,x=%f, y= %lf\n",a,b,x,y); printf("a=%ld,b=%d, x=%lf,y=%f\n",a,b,x,y); printf("x=%f, x=%e, x=%g\n",x,x,x); } 从此题的输出结果认识各种数据类型在内存的存储方式。
4.了解数据类型在程序设计语言中的意义。
三、实验内容及要求:
内容: 1.编程序,输出如下图形: ** ** ** *** *** **** ****
原程序图
运行结果图
2.编写程序,实现下面的输出格式和结果( 表示空格):
a= 5,b= 7,a-b=-2,a/b= 71%
x=31.19,y= -31.2,z=31.1900
3.编写程序,输入变量 x 值,输出变量 y 的值,并分析输出结果。 (1) y =2.4 * x-1/2 (2) y=x%2/5-x (3) y=x>10&&x<100 (4) y=x>=10||x<=1 (5) y=(x-=x*10,x/=10)
要求变量 x、y 是 float 型。 原程序图
运行结果图
C 语言程序设计实验报告
姓名
学号
系别
班级
09 信息
主讲教师
指导教师
实验日期
专业 信息与计算科学
课程名称
C 语言程序设计
一、实验名称:
同组实验者
实验二、 数据类型及顺序结构
C程序设计实验二实验报告
1输入自己编好程序,编译并运行,分析运行结果。
2年增长率不在程序中指定,改用scanf函数语句输入,分别输入7%,8%,10%。观察结果。
3在程序中增加printf函数语句,用来提示输入什么数据,说明输出的是什么数据。
编写程序如下
#include<stdio.h>
1a=3,b=7,x=8.5,y=71.82,A,a
2a=3 b=7 x=8.5 y=71.82 Aa
3a=3 b=7 8.571.82 Aa
4a=3 b=7 8.5 71.82Aa
53 7 8.5 71.82Aa
6a=3 b=7
8.5 71.82
A
a
7a=3 b=7
8.5 71.82
Aa
8a=3 b=7
int main()
{char c1,c2;
c1=97;
c2=98;
printf(“%c %c\n”,c1,c2);
printf(“%d %d\n”,c1,c2);
return 0;
}
1运行以上程序,分析输出的信息:
printf(“%c %c\n”,c1,c2);输出的是字符型数据,查阅附录B,ASCII值为97,98所对应的字符分别为a和b;printf(“%d %d\n”,c1,c2);输出的则是整型。
2、掌握对各种数值型数据的正确输入方法;
3、学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用;
4、学会编写和运行简单的应用程序;
5、进一步熟悉C程序的编辑、编译、链接和运行的过程。
实验内容与步骤:
《C语言程序设计2》实验报告格式cgp
中国计量学院实验报告实验课程: C 语言程序设计2 实验名称: 综合实验二、综合实验四 班 级: 学 号: 姓 名: 实验日期:一、实验目的1.熟练掌握整除、求余运算符,解决实际问题2.熟练掌握求最小(大)值算法3.熟练掌握用户自定义函数及函数的调用4.熟练掌握文件的读写二、实验内容1. 设计程序:编制函数JSValue(long m)用于判断m 是否是回文数。
如果是,则函数返回1,反之则返回0。
主函数调用函数JSValue(long m),寻找并输出11至999之间的数m ,它满足m 、m*m 、m*m*m 均为回文数,最后把找到的数写入到当前目录下新建文件Design1.dat 中。
说明:所谓回文数是指各位数字左右对称,例如121、676、94249等。
满足上述条件的数如m=11,m^2=121,m^3=1331皆为回文数。
2. 设计程序:编写函数f(x,y),计算z 的值并返回,其中y x y x y x f z +-⋅==54),(,函数类型为float 。
编写主函数,若x 、y 取值为区间[1,6]的整数,调用函数f(x,y),找出使z 取最小值的x1、y1,并将x1、y1以格式"%d,%d"写入到当前目录下新建文件Design2.dat 。
实验成绩: 指导教师签名:三、算法分析及源程序1.(1)算法分析:算法描述(可以画流程图)(2)源代码:2.(1)算法分析:算法描述(可以画流程图)(2)源代码:四、实验数据分析及结论(若运行结果有错,则分析出错原因)1.上机调试,输入运行结果:调试结果分析:2.上机调试,输入运行结果:调试结果分析:五、思考题(要抄题目)1.若需要将一个十进制的正整数转化成二进制,请写出主要的算法。
提示:可以将二进制数存放在一个数组中。
2.在求最小值的算法中,是否可以用0来初始化存放最小值的变量?为什么?3.在C语言中,什么时候可以这样定义数组“int a[];”?是否用“int a[n]”来定义数组?六、实验心得。
c语言实验报告2
c语言实验报告2C语言实验报告2一、实验目的本次实验旨在通过编写C语言程序,加深对C语言基本语法和控制结构的理解,同时提升编程能力。
二、实验内容本次实验要求编写一个简单的学生成绩管理系统。
系统需要实现以下功能:1. 学生信息录入:从键盘输入学生的姓名、学号和成绩,并将其保存到文件中。
2. 学生信息查询:根据学号查询学生的姓名和成绩,并在屏幕上显示出来。
3. 学生成绩统计:计算所有学生的平均成绩,并将结果显示在屏幕上。
三、实验步骤1. 创建一个名为"student.txt"的文本文件,用于保存学生信息。
2. 编写一个函数,用于录入学生信息。
函数首先从键盘输入学生的姓名、学号和成绩,然后将这些信息保存到文件中。
在保存之前,需要先判断文件是否存在,如果不存在则创建新文件。
3. 编写一个函数,用于查询学生信息。
函数从键盘输入学号,然后在文件中查找对应的学生信息,并将结果显示在屏幕上。
如果找不到对应的学生信息,则显示"未找到该学生信息"。
4. 编写一个函数,用于统计学生成绩。
函数读取文件中的所有学生信息,并计算平均成绩。
最后将平均成绩显示在屏幕上。
5. 在主函数中,调用上述三个函数,实现学生成绩管理系统的完整功能。
四、实验结果经过编写和调试,本次实验得到了一个完整的学生成绩管理系统。
该系统可以实现学生信息的录入、查询和统计功能。
在录入学生信息时,用户可以根据提示输入学生的姓名、学号和成绩。
系统会将这些信息保存到文件中,以便后续查询和统计。
在查询学生信息时,用户需要输入学号。
系统会在文件中查找对应的学生信息,并将结果显示在屏幕上。
如果找不到对应的学生信息,系统会给出相应的提示。
在统计学生成绩时,系统会读取文件中的所有学生信息,并计算平均成绩。
最后,系统将平均成绩显示在屏幕上。
五、实验总结通过本次实验,我进一步熟悉了C语言的基本语法和控制结构,提升了编程能力。
在实验过程中,我学会了如何创建和操作文件,并且掌握了文件的读写操作。
C语言实验报告-实验2 顺序结构程序设计
实验2 顺序结构程序设计一、实验目的1. 学会使用自然语言或伪代码描述算法2. 掌握变量、运算符、表达式的使用3. 熟悉顺序结构程序中语句的执行过程4. 掌握标准输入流对象cin及标准输出流对象二、实验内容编写程序在屏幕上显示如图2-1所示的菜单。
图2-1 学生选课管理系统主界面实验步骤:范例:1)在VS2008中新建项目,在项目中新建C++源文件,输入下面程序,并且编译、连接。
//***************************************************************//* 程序名:实训2_1.cp *//* 主要功能: *//* 显示主菜单,并获取用户输入的模块编号 *//***************************************************************#include <iostream> // 包含输入输出接口文件using namespace std; // 引用标准命名空间void mainMenu();int main() // 定义主函数{ // 主函数开始mainMenu();return 0;}void mainMenu(){system("cls");cout<<"\n\n\n\n\n";cout<<"\t\t|---------------学生选课系统(学生版)------------|\n";cout<<"\t\t|\t 0. 退出 |\n";cout<<"\t\t|\t 1. 学生信息管理 |\n";cout<<"\t\t|\t 2. 教师信息管理 |\n";cout<<"\t\t|\t 3. 课程信息管理 |\n";cout<<"\t\t|\t 4. 学生选课管理 |\n";cout<<"\t\t|\t 5. 学生成绩管理 |\n";cout<<"\t\t|\t 6. 信息统计模块 |\n";cout<<"\t\t|-----------------------------------------------|\n\n";cout<<"\t\t\t请输入模块编号(0-6):";}2)运行范例所示程序,观察输出结果实训1要求编写程序在屏幕上显示如图2-2所示的菜单。
c语言实验报告2
c语言实验报告2C语言实验报告2摘要:本实验报告旨在介绍C语言的基本语法和使用方法。
通过实验,我们学习了C 语言的变量、数据类型、运算符、控制语句等基本知识,并实际编写了一些简单的程序进行测试。
本报告将详细介绍实验过程、结果和分析,以及对C语言的进一步学习和应用的展望。
一、实验目的本次实验的主要目的是让学生掌握C语言的基本语法和使用方法,包括变量的定义和使用、数据类型的选择和转换、运算符的应用、控制语句的编写等。
通过实际编写程序,加深对C语言的理解和应用能力。
二、实验内容1. 变量的定义和使用在本次实验中,我们首先学习了如何在C语言中定义变量,并且了解了不同数据类型的区别和应用场景。
通过实际编写程序,我们掌握了变量的声明、赋值和使用方法。
2. 数据类型的选择和转换C语言中有多种数据类型,包括整型、浮点型、字符型等。
在本次实验中,我们学习了如何选择合适的数据类型来存储不同类型的数据,并且了解了数据类型之间的转换规则。
3. 运算符的应用C语言中有多种运算符,包括算术运算符、关系运算符、逻辑运算符等。
在本次实验中,我们学习了这些运算符的使用方法,并且通过实际编写程序进行了测试。
4. 控制语句的编写控制语句是C语言中非常重要的一部分,包括if语句、switch语句、for循环、while循环等。
在本次实验中,我们学习了这些控制语句的使用方法,并且通过实际编写程序进行了测试。
三、实验结果与分析通过本次实验,我们成功掌握了C语言的基本语法和使用方法。
我们能够熟练地定义变量、选择合适的数据类型、运用各种运算符和控制语句来编写程序。
在实际测试中,我们的程序能够正确运行,并且得出了我们预期的结果。
四、结论与展望通过本次实验,我们对C语言有了更深入的了解,并且掌握了一些基本的编程技能。
我们希望在今后的学习中能够进一步深入学习C语言,并且能够将所学的知识应用到实际工程项目中。
我们相信,通过不断地学习和实践,我们一定能够成为优秀的C语言程序员。
《c语言程序设计》实验报告
《c语言程序设计》实验报告《C语言程序设计》实验报告一、引言C语言是一种广泛应用于软件开发领域的高级编程语言。
作为计算机科学专业的学生,学习和掌握C语言程序设计是非常重要的一项基础技能。
本实验报告将对我们在学习过程中进行的一系列实验进行总结和分析,以便更好地理解和应用C语言。
二、实验一:基本语法和数据类型在第一次实验中,我们学习了C语言的基本语法和数据类型。
通过编写简单的程序,我们掌握了变量的声明和定义、输入输出函数的使用以及基本的运算符和控制语句。
这些基础知识为我们后续实验的进行奠定了坚实的基础。
三、实验二:数组和字符串在第二次实验中,我们学习了C语言中数组和字符串的使用。
通过编写程序,我们掌握了数组的声明和初始化、数组元素的访问以及字符串的输入输出和处理。
这些知识使我们能够更好地处理和操作大量数据,提高程序的效率和可读性。
四、实验三:函数和指针第三次实验中,我们深入学习了C语言中函数和指针的使用。
通过编写程序,我们理解了函数的定义和调用、参数传递的方式以及函数的返回值。
同时,我们也学习了指针的概念和使用方法,掌握了指针的声明和初始化、指针与数组的关系以及指针的运算。
这些知识使我们能够更好地组织和管理程序的代码,提高程序的可维护性和可扩展性。
五、实验四:文件操作在第四次实验中,我们学习了C语言中文件操作的相关知识。
通过编写程序,我们掌握了文件的打开和关闭、读写文件以及文件指针的操作。
这些知识使我们能够更好地处理和管理大量的数据,实现数据的持久化和共享。
六、实验五:结构体和链表在第五次实验中,我们学习了C语言中结构体和链表的使用。
通过编写程序,我们理解了结构体的定义和使用、结构体数组的操作以及链表的创建和遍历。
这些知识使我们能够更好地组织和管理复杂的数据结构,实现更加灵活和高效的程序设计。
七、实验六:综合实验在最后一次实验中,我们将前面所学的知识进行综合运用,完成一个综合性的实验项目。
通过实践,我们巩固了前面所学的知识,并提高了解决问题的能力和思维方式。
C语言程序设计 实验报告2--选择结构
福建农林大学金山学院实验报告系(教研室):专业:年级:实验课程:C语言程序设计姓名:学号:实验室号:计算机号:实验时间:指导教师签字:成绩:实验2:选择结构程序设计一、实验目的和要求1.了解C语言表示逻辑量的方法2.正确使用逻辑运算符和逻辑表达式,掌握if语句和switch语句3.结合程序掌握一些简单算法,并学习调试程序二、实验内容和原理1.有一函数:x2+2x-6(x<0,x≠-3)y = x2-5x+6(0≤x<10,x≠2,x≠3)x2-x-15(x=-3,x=2,x=3,x≧10)写一程序,用scanf函数输入x,输出y值。
2.分别用if语句和switch语句编程实现:给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。
90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
3.输入4个整数,要求按由小到大顺序输出。
4.有三个整数a,b,c,由键盘输入,输出其中最大的数,请编写程序。
(用两种方法实现)5.输入出租车类型和里程,计算打车的费用。
计算方式为:3公里以内10元;3公里以上0车型每公里1.5元,1车型每公里2元。
三、实验环境1. 硬件:PC机;2. 软件:Windows操作系统、Visual C++ 6.0,DEV-CPP 。
四、算法描述及实验步骤1、先用scanf函数输入,再用if语句的嵌套来计算该方程。
2、(1)用switch语句时,对输入的数据进行检查,在用score/10将其强制转换得到一个整型。
最后用switch语句执行使其得到一个字符型字母。
(2)用if语句分成各个分数段将符合要求的输出对应的字符。
3、用if语句依次比较的方法排出其大小顺序。
4、(1)先用scanf函数输入,再用if语句的嵌套比较其大小顺序。
(2)带入一个中间数用条件表达式比较其大小顺序。
5、在标题写入条件,3公里以下直接输出。
3公里以上判断车型,再带入相应车型计算车费。
《C语言程序设计2》实验报告
《C语言程序设计2》实验报告———函数与数组的使用一、实验目的:通过几个程序的编写,加深对数组和函数知识的理解和认识。
并掌握函数和数组在程序中的使用方法。
二、内容:1.编写程序:关于函数的程序(1):定义函数返回两个数中的最大数,在主函数中通过调用该函数求三个数中较大的数并输出。
代码:int max(int a,int b){if(a>b)return a;return b;}main(){int a,b,c,m;printf("Enter 3 integers:\n");scanf("%d%d%d",&a,&b,&c);m=max(a,b);m=max(m,c);printf("Max=%d\n",m);getch();}结果:(2)编写一个判断一个整数是否为素数的函数,并求出在2000以内的所有素数。
代码:int sushu(int);main(){int i;for(i=1;i<=2000;i++)if(sushu(i))printf("%4d ",i);getch();}int sushu(int n){int i;if(n==1)return 0;for(i=2;i<=n/2;i++)if(n%i==0)return 0;return 1;}结果:3、求方程ax2+bx+c=0的根,用三个函数分别求b2-4ac大于0、等于0和小于0的根,并输出结果。
从主函数输入a、b、c的值代码:#include<math.h>void TwoJie(int a,int b,int c){double x1,x2;x1=(-b+sqrt(b*b-4*a*c))/(2*a);x2=(-b-sqrt(b*b-4*a*c))/(2*a); printf("x1=%.1f ,x2=%.1f\n",x1,x2); }void OneJie(int a,int b){double x;x=-b/(2*a);printf("x1=x2=%.2f\n",x);}void NoJie( ){printf("NO Jie\n");}main(){int a,b,c;double s;printf("Input a,b,c:");scanf("%d%d%d",&a,&b,&c);s=b*b-4*a*c;if(s>0)TwoJie(a,b,c);if(s==0)OneJie(a,b);if(s<0)NoJie();getch();}结果:4、编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述统计结果。
《c语言程序设计ii教学课件》实验报告_实验4指针(4)(学号_姓名)
实验报告_实验4 指针(4)(学号_姓名)一、实验目的:1、理解内存动态分配的含义,熟悉动态内存申请、释放的相关函数的用法,掌握动态数组创建的方法;2、理解结构体指针的概念,掌握使用结构体指针访问成员的简便书写方法,掌握结构体指针指向数组和作为函数参数的基本用法;3、理解链表的概念,熟悉静态链表、动态链表建立的方法,并能输出链表内容。
二、实验内容1、(基础题)分析、运行下列程序,掌握动态数组创建的方法,然后在标识行(即行1~行8)中设置断点,按F5启动调试、之后不断按F5继续调试,观察动态数组的创建、赋值、删除等操作,并回答相关问题:回答问题:(1)函数malloc()、calloc()各有什么功能?返回值是什么?为什么要进行强制类型转换?(2)函数free()的功能是什么?占用的堆空间是否可以不释放?(3)动态数组有什么优点?2、(基础题)编写程序,求任意n个随机数(10-99)的最小值和最大值。
要求程序中用指针(指向每一个数组元素)对数组array进行访问;部分代码如下,请将程序代码补充完整:(1):(2):(3):(4):(5):3、(基础题)分析、运行程序,并回答相关问题:函数:update( )、display( )、delay( )各实现什么功能?4、(基础题)构造一个静态链表,该链表由三个结点构成,结点中的数据部分包括:姓名、地址、性别、年龄及某课程成绩相关信息。
现要把三个结点的信息输出。
输出结果如下:请补充程序所缺代码,并回答相关问题:(1):(2):(3):(4):(5):(6):(7):问题:(1)链表中“结点”由哪两部分组成?(2)链表中“结点”的指针域如何赋值?(3)怎样访问链表中的各结点?。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计II实验报告题目:实验五函数应用院系名称:计算机学院专业名称:计算机科学与技术班级:学号:学生姓名:指导教师:实验日期:2017年4月1日报告提交截止日期:2017年4月11日一、实验目的1、掌握C语言函数的定义方法、函数的声明及函数的调用方法及调用过程;2、掌握主调函数和被调函数之间的参数传递方式;二、实验内容与要求:1、求两个整数的最大公约数和最小公倍数。
用一个函数求最大公约数,用另一个函数根据求出的最大公约数求最小公倍数。
(提示:设两个整数是a,b,最大公约数是p,最小公倍数是q,那么ab=pq)2、用牛顿迭代法求方程f(x)=ax3+bx2+cx+d=0的根。
系数a、b、c、d由主函数输入。
求根过程写成函数。
(提示:牛顿迭代法是先给定方程f(x)=0的一个较好的初始近似根x0,然后重复使用迭代公式:求x的近似解,直至相邻两次的近似解相差很小为止,如差值的绝对值小于1e-07。
x0可以从键盘输入或直接设定。
)3、定义一个函数,功能是计算n个学生的成绩中高于平均成绩的人数,并作为函数返回值。
用主函数来调用它。
统计30个学生成绩中高于平均成绩的有多少人。
4、∑=+++==ninpppipns1)()2()1()()(ΛΛ,!)(iip=5、编写和调用函数,给定圆筒的内径、外径和高,计算该圆筒的体积;给定圆锥的高、底面半径,计算该圆锥的体积和表面积。
6、编写和调用函数,求出10000以内的所有素数、绝对素数、水仙花数、完全数(或称完数)、互满数。
提示:一个素数经过任意次调换位,仍然为素数,则称其为绝对素数,例如13和31就是一个绝对素数。
水仙花数是指一个三位整数,其各位数字立方之和等于该数。
例如,153就是一个水仙花数:153=1*1*1+5*5*5+3*3*3。
完全数是指一个数正好是它的所有约数(本身除外)之和。
例如,6就是一个完全数,因为6的因子有1、2、3,并且6=1+2+3。
如果有两个数,每一个数的所有约数(除它本身以外)之和正好等于对方,则称这两个数为互满数。
三、实验结果int s(int a,int b,int i) {return a*b/i; }main() {int a,b; while(1) {scanf("%d%d",&a,&b);printf("最大公约数:%d\n 最小公倍数:%d\n",f(a,b),s(a,b,f(a,b))); }}实验测试结果(使用截图,图形格式JPEG 。
截图不要包含源代码):讨论(文本):2题目内容与要求:用牛顿迭代法求方程f(x)=ax 3+bx 2+cx+d=0的根。
系数a 、b 、c 、d 由主函数输入。
求根过程写成函数。
(提示:牛顿迭代法是先给定方程f(x)=0的一个较好的初始近似根x 0,然后重复使用迭代公式:)(')(000x f x f x x -=求x 的近似解,直至相邻两次的近似解相差很小为止,如差值的绝对值小于1e-07。
x 0可以从键盘输入或直接设定。
)算法简要描述(文本):通过构造函数实现题中给的公式。
源代码标识符说明(文本):a,b,c,d,存系数x存根。
源代码(粘贴程序,注意缩进,不得使用截图):#include"stdio.h"#include"math.h"float f1(float a,float b,float c,float d,float x){return (a*x*x*x+b*x*x+c*x+d);}float f2(float a,float b,float c,float x){return (3*a*x*x+2*b*x+c);}main(){while(1){float a,b,c,d,x,y,m,n;scanf("%f%f%f%f%f",&a,&b,&c,&d,&x);do{x=y;m=f1(a,b,c,d,x);n=f2(a,b,c,x);y=x-(m/n);}while(fabs(x-y)>=1e-7);printf("%.2f\n",y);}}实验测试结果(使用截图,图形格式JPEG。
截图不要包含源代码):讨论(文本):3 题目内容与要求:定义一个函数,功能是计算n个学生的成绩中高于平均成绩的人数,并作为函数返回值。
用主函数来调用它。
统计30个学生成绩中高于平均成绩的有多少人。
算法简要描述(文本):构造函数求出平均值,再和平均值一一比较。
源代码标识符说明(文本):p指针变量操作数组。
q存大于平均值成绩的个数。
源代码(粘贴程序,注意缩进,不得使用截图):#include"stdio.h"int f(float *p,int n){int i,q=0;float s=0;for(i=0;i<n;i++)s+=*(p+i);for(i=0;i<n;i++){if(*(p+i)>(s/n))q++;}return q;}main(){float a[30];int i,n=30;for(i=0;i<n;i++)scanf("%d",&a[i]);printf("%d",f(a,n));}实验测试结果(使用截图,图形格式JPEG。
截图不要包含源代码):讨论(文本):讨论(文本):5 题目内容与要求:编写和调用函数,给定圆筒的内径、外径和高,计算该圆筒的体积;给定圆锥的高、底面半径,计算该圆锥的体积和表面积。
算法简要描述(文本):构造圆锥和圆筒体积表面积函数源代码标识符说明(文本):a,b,c存数据。
源代码(粘贴程序,注意缩进,不得使用截图):#include"stdio.h"#include"math.h"#define PI 3.1415926float v(float a,float b,float h){if(b!=0)return PI*(b*b-a*a)*h;return PI*a*a*h/3;}float s(float a,float h){return PI*a*sqrt(a*a+h*h)+PI*a*a;}main(){float a,b,h;while(1){printf("请输入圆筒的内径,外径,高\n");scanf("%f%f%f",&a,&b,&h);printf("v=%f\n",v(a,b,h));b=0;printf("请输入圆锥的半径,高\n");scanf("%f%f",&a,&h);printf("v=%f s=%f\n",v(a,b,h),s(a,h));}}实验测试结果(使用截图,图形格式JPEG。
截图不要包含源代码):讨论(文本):6 题目内容与要求:编写和调用函数,求出10000以内的所有素数、绝对素数、水仙花数、完全数(或称完数)、互满数。
提示:一个素数经过任意次调换位,仍然为素数,则称其为绝对数,例如13和31就是一个绝对素数。
水仙花数是指一个三位整数,其各位数字立方之和等于该数。
例如,153就是一个水仙花数:153=1*1*1+ 5*5*5+3*3*3。
完全数if(a==i)printf("% d",i);} }int w(int x){int j,a=0;for(j=1;j<=x/2;j++)if(x%j==0)a+=j;return a;}int s(int x){int i,j,k;for(i=1;i<=x;i++)if(w(w(i))==i){if(w(i)<i)continue;printf("%d,%d ",i,w(i));}}main(){int i,j=0,x,a,b,c,m[1000];scanf("%d",&x);printf("素数为:\n");for(i=2;i<=x;i++)if(f(i)){printf("%5d",i);if(i>9&&i<100)if(f(i%10*10+i/10))m[j++]=i;if(i>100&&i<=999){c=i%10;a=i/100;b=(i-a*100)/10;if(a%2==0||b%2==0||c%2==0||a==5||b==5||c==5)continue;if(f(a*100+c*10+b)&&f(b*100+c*10+a)&&f(b*100+a*10+c)&&f(c*100 +b*10+a)&&f(c*100+a*10+b))m[j++]=i;}}printf("\n绝对素数为:");for(i=0;i<j;i++)printf("% d",m[i]);printf("\n水仙花数为:"); g(x);printf("\n完全数为:"); h(x);printf("\n互满数为:\n"); s(x);}实验测试结果(使用截图,图形格式JPEG。
截图不要包含源代码):讨论(文本):四、实验心得1 通过这次试验,对构造函数慢慢理解。
2 熟悉调用函数各方面规则。
3。