C语言实验4
C语言实验四

1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
·…·
·…·
·…·
1 2 3…8 9 8…3 2 1
对应答案:实验4程序流程控制
1.参考程序
#define PI 3.14159
main()
{
float r,c,s1,s2,v;
printf("Enter r:");
scanf("%f",&r);
exit(0);
}
do
{
printf("%d",x%10);
i++;
x=x/10;
}while(x!=0);
printf("\ni=%d\n",i);
}
5.参考答案
(1)2 2 3 3 4 4 5 5 5 6 6 7 7 7 7
(2)Chi(注意:回车符“↙”也作为一个字符)
(3)x=13
6.分析
方法一:借助最大公约数。两个数的最小公倍数等于这两个数的积除以其最大公约数,这样,可以先利用辗转相除法求出最大公约数,进而求出最小公倍数。
3.先分析下面程序的功能,然后输入一个3位整数进行调试,看一看分析的结果是否正确。
main()
{
int n,x1,x2,x3,y;
printf("Enter n:");
scanf("%3d",&n);
x1=n/100;
x2=n/10%10;
x3=n/100;
y=x3*100+x2*10+x1;
printf("y=%d",y);
《C语言程序设计》实验四

电子科技大学计算机学院标准实验报告(实验)课程名称C语言程序设计电子科技大学教务处制表电子科技大学实验报告四学生姓名:学号:指导教师:王瑞锦实验地点:实验日期:年月日一、实验室名称:软件实验室二、实验项目名称:函数的应用及预处理三、实验学时:2四、实验原理:使用Turbo C软件(简称TC),在微型计算机上,对其程序进行编辑、编译、连接与运行。
Turbo C是一个集成环境,它具有方便、直观、易用的界面和丰富的库函数。
通过上机练习掌握在TC环境下编辑、编译、连接、和运行C程序的方法和过程。
五、实验目的1.掌握C语言中定义函数的方法;2.掌握函数传值调用的方法;3.掌握函数传址调用的方法;4.掌握递归函数的设计方法;5.掌握命令行参数的使用方法;6.掌握函数在不同文件中的编译、链接方法。
六、实验内容编程实验,完成以下上机内容,调试运行程序并完成报告1)、教材第七章习题7.4;2)、编写一个实现冒泡法排序的函数,并在主函数中从键盘上输入6个数后进行排序输出;3)、教材第七章习题7.11;4)、教材第七章习题7.15;5)、教材第七章习题7.24;6)、求解汉渃塔(tower of Hanoi)问题。
在一块平板上立有3根立柱,从左到右分别标记为A,B,C。
最初在A柱上放有6个大小不等的圆盘,并且大盘在下面,小盘在上面。
要求将这些盘从A移到C(可以借助B柱)。
条件是:每次只能移动一个盘,并且不允许把大盘放在小盘的上面。
(提示:利用函数的递归调用);七、实验器材(设备、元器件):pc硬件要求:CPU PII 以上,64M 内存,1OOM 硬盘空间即可。
软件要求:DOS3.0以上/Windows98/Me/XP/NT/2000。
八、实验步骤:实验编程与运行结果⑴编写一个求两个整数的最小公倍数的函数,两个整数由键盘输入,用主函数调用这个函数,并输出结果。
程序文件名为7_4.c,源程序清单如下:#include<stdio.h>lcd(int a,int b){int temp,num1,num2;num1=a;num2=b;while(num2!=0){temp=num1%num2;num1=num2;num2=temp;}return(a*b/num1);}main(){int t,x,y;printf("Please input two integers:");scanf("%d,%d",&x,&y);if(x>y){t=x;x=y;y=t;}printf("lcd(%d,%d)=%d\n",x,y,lcd(x,y));}运行结果:⑵编写一个实现冒泡法排序的函数,并在主函数中从键盘上输入6个数后进行排序输出。
实验报告二厦门理工学院C语言选修课上机实验实验4循环结构

《高级语言程序设计》实验报告实验序号:2 实验项目:数据类型、运算符和表达式09机制2 学号232 姓名叶志伟专业、班级实验地点1-511 指导教师胡亮实验时间 3.15一、实验目的及要求1.掌握C基本数据类型的基本概念、基本属性。
2.学会如何书写一个整型、字符型、实型常量。
3.掌握C算术运算符的基本概念、基本属性、运算规则。
二、实验设备(环境)及要求使用Visual C++ 6.0;windows系列操作系统的环境。
三、实验内容与步骤1.输入下列源程序,进行修改、编译、连接和运行。
程序:main ( ){ char c1,c2;c1=97;c2=98;printf("%c,%c\n",c1,c2);printf("%d,%d\n",c1,c2);}运行结果是:两行结果的不同是由什么引起的:程序定义了输出的类型,第一个输出字符型,另一个输出整型。
2.输入并运行下面的程序:#include<stdio.h>void main(){char c1,c2,c3;c1=getchar();c3=getchar();putchar(c1);putchar(c2);putchar(c3);}观察以下不同输入时的输出,分析不同输出的原因。
(↙表示回车)(1)123↙(2)12↙(3)1↙2↙运行结果是:分析运行结果:getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.3.把以上程序改写如下,用于上面相同的输入运行,分析不同输出的原因。
实验4:Linux C语言编程和调试

实验报告4课程名称:Linux基础实验名称:Linux C语言编程和调试学生姓名:班级:学号:指导老师:钱振江成绩:一、实验目的1.掌握Linux环境下C程序的编辑、编译、运行等操作;2.掌握多文件的编译及连接;3.初步掌握gdb调试方法;二、实验任务与要求1.在Linux环境下C程序的编辑、编译与运行;2.多文件的编译及连接;3.应用gdb调试程序;4.随机数的应用;三、实验工具与准备计算机PC机,Linux Ubuntu操作系统四、实验步骤与操作指导1.调试下列程序。
程序通过创建一个小型函数库,它包含两个函数,然后在一个示例程序中调用其中一个函数。
这两个函数分别是pro1和pro2。
按下面步骤生成函数库及测试函数库。
步骤1 为两个函数分别创建各自的源文件(将它们分别命名为pro1.c和pro2.c)。
[root@localhost root]# vi pro1.c#include <sdtio.h>void pro1(int arg){printf(“hello:%d\n”,arg) ;}[root@localhost root]# vi pro2.c#include <sdtio.h>void pro2(char *arg){printf(“您好:%s\n”,arg) ;}步骤2 分别编译这两个文件,生成要包含在库文件中的目标文件。
这通过调用带有-c 选项的gcc编译器来实现,-c选项的作用是阻止编译器创建一个完整的程序,gcc将把源程序编译成目标程序,文件名为以.o结尾。
如果此时试图创建一个完整的程序将不会成功,因为还未定义main函数。
[root@localhost root]# gcc -c pro1.c pro2.c[root@localhost root]# ls *.opro1.o pro2.o步骤3 现在编写一个调用pro2函数的程序。
首先,为库文件创建一个头文件lib.h。
c语言实验报告实验

c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。
二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。
三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。
熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。
2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。
运用 switch 语句进行多分支选择,处理不同的情况。
利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。
3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。
掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。
4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。
实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。
5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。
掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。
6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。
了解共用体的概念和使用场景,比较结构体和共用体的区别。
四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。
C语言实验报告4

实验4 逻辑结构程序设计1.实验目的、要求(1)C语言表示逻辑量的方法。
(2)学会正确使用逻辑运算符和逻辑表达式。
(3)熟悉掌握if语句和switch语句。
(4)掌握简单的算法及程序调试。
2.实验内容(1)输入程序并运行,观察运行结果并分析。
#include “stdio.h”int main( ){ int a=1,b=3,c=5,d=4,x;if(a<b)if(c<d) x=1;elseif(a<c)if(b<d) x=2;else x=3;else x=6;else x=7;printf(“x=%d\n”,x );return(0); }(2)编写程序。
有一函数:x (x<1)y= 2x-1 (1≤x<10)3x-11 (x≥10)用scanf函数输入x的值,输出y的值。
#include"stdio.h"int main(){int x,y;scanf("%d",&x);if(x<1)y=x;else{if(x>=1&&x<10)y=2*x-1;elsey=3*x-11;}printf("%d",y);return 0;}(3)补全程序并运行。
输入两个数,将较小者输出,应用条件运算符。
#include "stdio.h"int main( ){int a,b,min;printf("\n please input two numbers:\n");scanf("%d,%d",&a,&b);if(a>b)min=b;elsemin=a;printf("min=%d",min);return 0;}(4)给出一个百分制成绩,要求输出成绩等级A、B、C、D、E:90分以上为A,80—89分为B,70—79分为C,60—69分为D,60分以下为E。
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语言实验4:选择结构程序设计

实验4:选择结构程序设计实验名称:选择结构结构程序设计实验日期:年月日实验报告日期:年月日一、实验目的1、掌握关系、逻辑运算符及其表达式的正确使用。
2、掌握if语句和switch语句的使用。
二、实验环境Vc++6.0三、实验内容在v C下完成程序题:1、有如下函数,要求输入x的值,求y的值。
|X|,X<0Y= X2,0≤X<10LogX,X≥102、输入1-7之间的任意数字,程序按照用户的输入输出相应的星期值。
3、某单位马上要加工资,增加金额取决于工龄和现工资两个因素:对于工龄大于等于20年的,如果现工资高于2000,加200元,否则加180元;对于工龄小于20年的,如果现工资高于1500,加150元,否则加120元。
工龄和现工资从键盘输入,编程求加工资后的员工工资。
四、实验要求1、实验前绘制程序框图,编制源程序、准备测试数据。
2、在vc下完成程序的编辑、编译、运行,获得程序结果。
3、实验中可以采用vc程序调试基本方法协助查找程序中的逻辑问题。
五、实验步骤、过程1、编辑、编译、运行程序题1,分别使用数据-5,0,5,10,100做测试。
人工计算结果分别是。
2、编辑、编译、运行程序题2,分别使用数据1,7,8做测试。
3、编辑、编译、运行程序题3,测试数据见下表:工龄y(年)现工资S0(元)调整后工资S(元)-人工计算结果25 220022 190018 170016 14004、尝试跟踪程序题1运行。
用F7或F8键单步跟踪程序,用^F7检查变量值,用F4可以将程序运行到光标当前位置。
X。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言实验报告课程名称:高级语言程序设计系(院):信息工程学院专业:电子信息工程班级:学生姓名学号:指导教师:开课时间:学年第学期关于实验报告的说明(一)对教师和学生的基本要求1、加实验的学生需提交实验报告, 一次实验写一个实验报告。
实验报告要求字迹工整,文字简练,数据齐全,图表规范,计算正确,分析充分、具体、定量。
2、教师应根据学生在实验中和在实验报告书写中反映出来的认真程度、实验效果、理解深度、独立工作能力、科学态度等给予出恰当的评语,并指出实验报告中的不妥之处,然后依照评分细则,采用100分制评出成绩并签名和评定日期。
如学生抄袭或缺交实验报告达该课程全学期实验报告总次数三分之一以上,不得同意其参加本课程的考核。
3、学期结束后任课教师要及时收交学生实验报告,并按要求给出学生实验报告成绩册和学生实验报告上交到系办公室。
(二)内容填写要求1、实验项目名称:要用最简练的语言反映实验的内容。
2、实验目的和要求:目的和要求要明确,在理论上验证定理、公式、算法,并使实验者获得深刻和系统的理解,在实践上,掌握使用实验设备的技能技巧和程序的调试方法。
3、实验内容及步骤:这是实验报告极其重要的内容。
要抓住重点,可以从理论和实践两个方面考虑。
只写主要操作步骤,不要照抄实习指导,要简明扼要。
还应该画出实验流程图,再配以相应的文字说明,这样既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。
4、实验结果:根据实验目的将原始资料系统化、条理化,用准确的专业术语客观地描述实验现象和结果,要有时间顺序以及各项指标在时间上的关系。
5、实验总结:根据相关的理论知识对所得到的实验结果进行解释和分析和总结。
也可以写一些本次实验的心得以及提出一些问题或建议。
实验报告验证型设计型综合型提示:只能被1和自身整除的自然数称为素数。
coss=t+coss;n=n+2;m=-m;}return coss;}int main(){double e,x,coss;printf("enter e,x:");scanf("%lf%lf",&e,&x);coss=funcos(e,x);printf("%.7lf\n",coss);return 0;}程序2:#include<stdio.h>int prime(int m){int i;for(i=2;i<=m/2;i++){if(m%i==0)break;if(i>=m/2)return 0;elsereturn 1;}}main(){int sum=0,m;for(m=1450;m<=1550;m++) {if(prime(m)==1)sum=m+sum;}printf("sum=%d\n",sum);return 0;}程序3:#include<stdio.h>int fun(int n){if(n/100%10%6==0 && n/1000%6==0 && n%100%6==0) return 1;elsereturn 0;}int main(){int count=0,n;for(n=10000;n<40000;n++){if(fun(n)==1)count=count+1;}printf("count=%d\n",count);return 0;}程序4:#include<stdio.h>int fact(int n){int p=1,i;for(i=1;i<=n;i++)p=p*i;return p;}int main(){int m,n,t;printf("enter n,m");scanf("%d%d",&n,&m);t=fact(n)+fact(m)*fact(n-m);printf("n!+m!*(n-m)!=%d\n",t);return 0;}程序5:#include<stdio.h>#include<math.h>int is(int number){int t,sum=0,m;m=number;while(number!=0){t=number%10;sum=sum+pow(t,3);number=number/10;}if(sum==m)return 1;elsereturn 0;}int main(){int m,n,i;printf("enter m,n:");scanf("%d%d",&m,&n);for(i=m;i<=n;i++){ if(is(i)==1)printf("%d\n",i);}return 0;}程序6:#include<stdio.h>#include<math.h>int reverse( int number) {int t,s=0;while(number!=0){t=number%10;s=s*10+t;number=number/10;}return s;}int main(){int mn,number;printf("enter number:");scanf("%d",&number);mn=reverse(number);printf("%d\n",mn);return 0;}程序7:#include<stdio.h>int fact(int n){if(n==1 || n==0)return 1;elsereturn fact(n-1)*n;}main(){int n,m;printf("enter n,m:");scanf("%d%d",&n,&m);printf("%d\n",fact(n)+fact(m)*fact(n-m));return 0;}程序8:#include<stdio.h>int f(int n){if(n==0)return 0;if(n==1)return 1;elsereturn f(n-2)+f(n-1);}int main(){int n;printf("enter n:");scanf("%d",&n);printf("%d\n",f(n));return 0;}程序9:#include<stdio.h>void dectobin (int n) {if(n>1)dectobin(n/2);printf("%d",n%2);return ;}main(){int n;printf("enter n:");scanf("%d",&n);dectobin(n);}#include<stdio.h>void dectobin (int n) {if(n>0)dectobin(n/2);elsereturn;printf("%d",n%2); }main(){int n;printf("enter n:");scanf("%d",&n);dectobin(n);}选作一:42401.cppint fun(int t){int i;for(i=2;i<=t/2;i++)if(t%i==0)break;if(i>t/2)return 1 ;}#include<stdio.h>#include "G:\CYY\42401.cpp"int main(){int t,count=0,i,n;printf("enter n:");scanf("%d",&n);printf("输入一个数t:");scanf("%d",&t);for(i=1;i<n;i++){printf("输入一个数t:");scanf("%d",&t);if(fun(t)==1)count++;}printf("%d\n",count);}。