《《C程序设计》作业内容.docx》由会员分享,可在线阅读,更多相关《《C程序设计》作业内容.docx(8页珍藏版)》请在课桌文档上搜索。
1、实验一C语言的运行环境的使用一、目的与要求1 .了解WindoWS系统下C语言的运行环境,熟悉C程序调试、运行的基本操作方法。2 .熟练掌握编辑、编译、连接和运行C程序的方法。3 .通过运行简单的C程序,初步了解C源程序的特点。4 .初步理解C语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运行结果的基本输出方法。二、实验例题在C语言运行环境下,按以下例题要求完成程序的编辑、编译、连接和运行,直至取得正确的运行结果。【例1】编程实现在屏幕上显示如下三行文字Hello,world!WolcometotheClanguageworld!Everyonehasbeenwaitingf
2、or.(1)输入如下程序:#includeintmain()(printf(Hollo,World!nz,);printf(z,WolcometotheClanguageworld!nz,);printf(Everyonehasbeenwaitingfor.n);return0;(2)将输入的程序以文件名example,c存盘。(3:编译:通过“组建(Build)下拉菜单中的“编译”(compile)命令,编译example.c,假设出现编译错误,那么修改程序,重新编译,直至编译成功,系统自动生成目标文件example,obj0(4)连接:通过“组建(BUiId)下拉菜单中的“组建(BUild
3、)命令,生成以.exe为扩展名的可执行文件example.exe0(5)运行:通过“组建菜单下的“执行(Excute)命令运行程序并观察运行结果。【例2】编写程序,将两个整数相加,并输出结果。Sincludeintmain()inta,b,sum;a=123jb=456;sum=a+b;printf(sumis%dn,z,sum);return0;)运行方法例1,运行结果为:sumis579o【例3】编写程序,要求从键盘输入2个整数,输出其中较大的数。Jtincludeintmain()inta,b,c;intmax(int,int);SCanf(%d,%d,&a,&b);等待用户从键盘输入2
4、个整数,输入时两数以逗号间隔c=max(a,b);printf(max=%dz,c);return0;)intmax(intx,inty)intz;if(xy)z=x;elsez=y;return(z);)注意:(1)第5行使用了输入函数SCanf,程序运行之后,光标停留在用户屏幕上等待用户输入两个整数,比方输入“3,5”,回车,程序取得输入数据后继续运行,最后输出运行结果,即在用户屏幕上显示“max%。(2)该例定义了max函数,并在主函数中调用max函数实现了找出两数中较大数的功能。(3)请思考,如果直接在主函数中对两数进展比较从而找出较大数,程序该若何编写【例4】输入并运行下程序,观察运
5、行结果。#includeintmain()charcl,c2;c1=97;c2=98;printf(w%c%c”,cl,c2);return0;)在此根基上,(1)在第6行后面参加下面的Printf语句,运行并观察运行结果。printf(w%d,%d,z,cl,c2);(2)再将第3行改为:intcl,c2;运行并观察运行结果。(3)再将第4、5行改为:c1=300;c2=400;再使之运行,观察并思考运行结果。该程序说明了字符型数据在特定情况下可作为整型数据处理,整型数据有时也可以作为字符型数据处理。【例5】分析下面程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照
6、。#includeintmain()(charcl三,a,c2=b,c3三,c,tc4=f101,tc5三,116,;printf(wa%cb%ctc%ctabcn*,cl,c2,c3);printf(rtt%c%cff,c4,c5);return0;)该程序主要考察对转义字符的掌握情况。【例6】分析下面程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。includeintmain()inti,j,m,n;i=8;j=10;m=+i;n=j+;printf(%d,%d,%d,%d,z,i,j,m,n);return0;)分别作以下改动之后,先分析再运行,并对结果进展
7、比对:(1)将第5行改为:m=i+;n=+j;(2)程序改为:#includeintmain()inti,j;i=8;j=10;Printf(%d,i+,j+);return0;(3)在(2)的根基上,将Printf语句改为:Printf(%d,%d”,+i,+j);(4)再将Printf语句改为:Printf(%d,%d,%d,%d”,i,j,i+,j+);(5)程序改为:-includevoidmainOinti,j,m=0,n=0;i=8;j=10;m+=i+;n-=一j;printf(ui=%d,j=%d,m=%d,n=%d,i,j,m,n);)此程序主要考察自加、自减运算符以及复合运
8、算符的用法。三、上机内容1 .参照例题,编写一个C程序,输出以下信息:Hello,World!*四、实验结果分析对实验结果进展检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。实验二顺序构造与选择构造程序设计一、实验目的及要求1 .理解C语言程序的顺序构造;2 .掌握常用的C语言语句,熟练应用赋值、输入、输出语句;3 .了解C语句表示逻辑量的方法(以O代表”假,以1代表“真);4 .学会正确使用逻辑运算符和逻辑表达式;5 .熟练掌握if语句和switch语句。二、实验内容1、圆半径r=L5,圆柱高h=3,求圆周长,圆面积,圆球外表积,圆球体积,圆柱体积。2、输入一个华氏温度,要求输
9、出摄氏温度。公式为c=59*(f-32).3、有3个整数a、b、c,由键盘输入,编程序按从小到大的顺序将它们排序并输出。4、编程序计算下面的函数:xxly=Jx+23x4ISin(X2)当X取其他值时5、输入一个整数m,判断它能否被7、11、17整除,如果能被以上三个数之一整除,那么输出它能被整除的信息,否那么输出m不能被7、11、17整除的信息。6、电文加密的算法是:将字母A变成字母G,a变成g,B变成H,b变成h,依此类推,并且U变成A,V变成B,等等。从键盘输入一个电文字符,输出其相应的密码。7、企业发放的奖金根据利润提成。假设利润IWlO万元,奖金可提10%;假设10万Vl20万时,那
10、么低于等于10万元的局部按10%提成,高于10万元局部,可提成7.5%;假设20万I40万时,低于等于20万元的局部仍按上述方法提成,高于20万元局部按5%提成;按类似的方法,假设40万I60万元时,高于40万元局部按3%提成;假设60万100万时,超过IoO万元局部按1%提成。从键盘输入当月利润I,求应发奖金总数。三、实验结果分析对实验结果进展检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。实验三循环构造程序设计一、实验目的及要求1 .熟练掌握WhiIe、doWhile和for三种循环语句的应用。2 .掌握基本的编程算法。二、实验内容1、利用公式sinx=-33!+x55!-7
11、7!+x99!-+(-1)(n-l)x2、编写程序求:IOS=Zn!n=l3、输入20个有符号整数,统计正整数、零、负整数的个数。4、输入m个数,求其最大数、最小数和平均值。5、在100和1000之间,有多少个其数字之和等于9而且该数可被5整除的整数?6、一位同学问教师和教师夫人的年龄是多少,教师说:“我年龄的平方加上我夫人的年龄恰好等于1053,而我夫人年龄的平方加上我的年龄等于873。试计算教师和其夫人的年龄。7、打印以以下列图案*三、实验结果分析对实验结果进展检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。实验四、数组程序设计一、实验目的及要求1 .掌握一维、二维数组的定义
12、、赋值和输入输出的方法;2 .掌握字符数组的使用;3 .掌握与数组有关的算法(例如排序算法)。二、实验内容1、给整型二维数组b34输入12个数据,计算并输出数组中所有正数之和、所有负数之和。2、青年歌手参加歌曲大奖赛,有10个评委进展打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。分析:这道题的核心是排序。将评委所打的10个分数利用数组按增序(或降序)排列,计算数组中除第一个和最后一个分数以外的数的平均分。3、设二维数组b54中有鞍点,即bij元素值在第i行中最大,且在第j列中最小,试编写一程序找出所有的鞍点,并输出其下标值。也可能没有。4、从键盘输入一数,然后在一个整型一维数
13、组a20中,用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,那么打印Nofound。5、编程打印如以以下列图形:*6、有一电文,己按以下规律译成译码:A-*Za-*zBiYbyCfXCfX即第一个字母变成第26个字母,第i个字母变成第(26-i+l)个字母。非字母字符不变。编写一个程序将密码译成原文,并输出密码和原文。三、实验结果分析对实验结果进展检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。实验五函数程序设计一、目的与要求1 .掌握C语言函数的定义方法、函数的声明及函数的调用方法。2 .了解主调函数和被调函数之间的参数传递方式。二、实验内容1、分别编写求圆面积
14、和圆周长的函数,另编写一主函数调用之,要求主函数能输入多个圆半径,且显示相应的圆面积和周长。2、编写一程序,把MXN矩阵a的元素逐列按降序排列。假设1、N不超过10。分别编写求一维数组元素值最大和元素值最小的函数,主函数中初始化一个二维数组a1010,调用定义的两函数输出每行、每列的最大值和最小值。3、编写一判别素数的函数,在主函数中输入一个整数,输出该数是否为素数的信息。4、编写一个将两个字符串连接起来函数(即实现StrCat函数的功能),两个字符串由主函数输入,连接后的字符串也由主函数输出。5、编写计算最小公倍数的函数,试由主函数输入两个正整数a和b调用之。计算最小公倍数的公式为:Icm(
15、u,v)=u*vgcd(u,v)(u,v20)其中,gcd(u,v)是u、V的最大公约数。lcm(u,V)是u、V的最小公倍数。三、实验结果分析对实验结果进展检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。实验六指针程序设计一、目的与要求1 .通过实验进一步掌握指针的概念,学会定义和使用指针变量;2 .能正确使用数组的指针和指向数组的指针变量;3 .能正确使用字符串的指针和指向字符串的指针变量;4 .了解指向函数的指针变量的使用方法;二、实验内容1、编写子函数,对传送过来的三个数按由小到大的顺序排列,并通过形参传回调用函数。2、编写函数intfind(int*p,intn,int
16、x),在指针P所指的数组中查找整型数x,如果X在数组中,那么该函数返回L否那么返回0。n为数组的大小。3、(选做)有n个整数,使前面各数顺序向后移In个位置,最后m个数变成最前In个数(如以以下列图所示)。写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个整数。4、(选做)在主函数中输入10个不等长的字符串。用另一个函数对它们按升序排序,然后在主函数中输出这10个已排序的字符串。5、(选做)编写一程序,统计从键盘输入的命令行中第二个参数所包含的英文字符个数。三、实验结果分析对实验结果进展检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。实验七构造体、共用体程序设计一、目
17、的与要求1 .掌握构造体类型变量的定义和使用;2 .掌握构造体类型数组的概念和使用;3 .了解共用体的概念与使用。二、实验内容编程序,然后上机调试运行以下程序。1 .有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出每门课的班级平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩)。要求用input函数输入10个学生数据;用average函数求总平均分;用max函数找出最高分的学生数据;班级平均分和最高分学生的数据都在主函数中输出。2 .设有两个人员的数据,一个学生,一个教师。学生的数据中包括:学号、姓名、班级,、教师的数据中包括:工号、姓
18、名、职称。现将两人的数据放在同一表格中,要求输入两人的数据,再将输入的内容输出。提示:参考教材例9.U(P320)三、实验结果分析对实验结果进展检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。实验八文件程序设计一、目的与要求1 .掌握文件和文件指针的概念以及文件的定义方法。2 .了解文件翻开和关闭的概念和方法。3 .掌握有关文件操作的函数。二、实验内容1、有5个学生,每个学生有3门课的成绩,从键盘输入以上数据1包括学生号,姓名,三门课成绩),计算出每门课程的班级平均成绩,并将学生数据和班级平均分存放在磁盘文件“stud,txt”中。2、将上题stud”文件中的学生数据,按平均分进展排序处理,将已排序的学生数据存入一个新文件“stu_sort中。三、实验结果分析对实验结果进展检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。