《C程序设计》作业内容资料.docx
《《C程序设计》作业内容资料.docx》由会员分享,可在线阅读,更多相关《《C程序设计》作业内容资料.docx(13页珍藏版)》请在冰豆网上搜索。
《C程序设计》作业内容资料
《C程序设计》作业内容
实验一C语言的运行环境的使用
一、目的与要求
1.了解Windows系统下C语言的运行环境,熟悉C程序调试、运行的基本操作方法。
2.熟练掌握编辑、编译、连接和运行C程序的方法。
3.通过运行简单的C程序,初步了解C源程序的特点。
4.初步理解C语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运行结果的基本输出方法。
二、实验例题
在C语言运行环境下,按以下例题要求完成程序的编辑、编译、连接和运行,直至取得正确的运行结果。
【例1】编程实现在屏幕上显示如下三行文字
Hello,world!
WolcometotheClanguageworld!
Everyonehasbeenwaitingfor.
(1)输入如下程序:
#include
intmain()
{
printf("Hello,World!
\n");
printf("WolcometotheClanguageworld!
\n");
printf("Everyonehasbeenwaitingfor.\n");
return0;
}
(2)将输入的程序以文件名example.c存盘。
(3)编译:
通过“组建”(Build)下拉菜单中的“编译”(compile)命令,编译example.c,若出现编译错误,则修改程序,重新编译,直至编译成功,系统自动生成目标文件example.obj。
(4)连接:
通过“组建”(Build)下拉菜单中的“组建”(Build)命令,生成以.exe为扩展名的可执行文件example.exe。
(5)运行:
通过“组建”菜单下的“执行”(Excute)命令运行程序并观察运行结果。
【例2】编写程序,将两个整数相加,并输出结果。
#include
intmain()
{inta,b,sum;
a=123;b=456;
sum=a+b;
printf(“sumis%d\n”,sum);
return0;}
运行方法例1,运行结果为:
sumis579。
【例3】编写程序,要求从键盘输入2个整数,输出其中较大的数。
#include
intmain()
{inta,b,c;
intmax(int,int);
scanf(“%d,%d”,&a,&b);//等待用户从键盘输入2个整数,输入时两数以逗号间隔
c=max(a,b);
printf(“max=%d”,c);
return0;
}
intmax(intx,inty)
{intz;
if(x>y)z=x;
elsez=y;
return(z);
}
注意:
(1)第5行使用了输入函数scanf,程序运行之后,光标停留在用户屏幕上等待用户输入两个整数,比如输入“3,5”,回车,程序取得输入数据后继续运行,最后输出运行结果,即在用户屏幕上显示“max=5”。
(2)该例定义了max函数,并在主函数中调用max函数实现了找出两数中较大数的功能。
(3)请思考,如果直接在主函数中对两数进行比较从而找出较大数,程序该如何编写?
【例4】输入并运行下程序,观察运行结果。
#include
intmain()
{charc1,c2;
c1=97;
c2=98;
printf(“%c%c”,c1,c2);
return0;
}
在此基础上,
(1)在第6行后面加入下面的printf语句,运行并观察运行结果。
printf(“%d,%d”,c1,c2);
(2)再将第3行改为:
intc1,c2;
运行并观察运行结果。
(3)再将第4、5行改为:
c1=300;c2=400;
再使之运行,观察并思考运行结果。
该程序说明了字符型数据在特定情况下可作为整型数据处理,整型数据有时也可以作为字符型数据处理。
【例5】分析下面程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。
#include
intmain()
{
charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;
printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);
printf(“\t%c%c”,c4,c5);
return0;
}
该程序主要考查对转义字符的掌握情况。
【例6】分析下面程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。
#include
intmain()
{inti,j,m,n;
i=8;j=10;
m=++i;n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
return0;
}
分别作以下改动之后,先分析再运行,并对结果进行比对:
(1)将第5行改为:
m=i++;n=++j;
(2)程序改为:
#include
intmain()
{inti,j;
i=8;j=10;
printf(“%d,%d”,i++,j++);
return0;
}
(3)在
(2)的基础上,将printf语句改为:
printf(“%d,%d”,++i,++j);
(4)再将printf语句改为:
printf(“%d,%d,%d,%d”,i,j,i++,j++);
(5)程序改为:
#include
voidmain()
{inti,j,m=0,n=0;
i=8;j=10;
m+=i++;n-=--j;
printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);
}
此程序主要考查自加、自减运算符以及复合运算符的用法。
三、上机内容
1.参照例题,编写一个C程序,输出以下信息:
****************************
Hello,World!
****************************
四、实验结果分析
对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。
实验二顺序结构与选择结构程序设计
一、实验目的及要求
1.理解C语言程序的顺序结构;
2.掌握常用的C语言语句,熟练应用赋值、输入、输出语句;
3.了解C语句表示逻辑量的方法(以0代表“假”,以1代表“真”);
4.学会正确使用逻辑运算符和逻辑表达式;
5.熟练掌握if语句和switch语句。
二、实验内容
1、已知圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
2、输入一个华氏温度,要求输出摄氏温度。
公式为c=5/9*(f-32)。
3、有3个整数a、b、c,由键盘输入,编程序按从小到大的顺序将它们排序并输出。
4、编程序计算下面的函数:
x0y=|x|+23≤x≤4
sin(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、企业发放的奖金根据利润提成。
若利润I≤10万元,奖金可提10%;若10万100万时,超过100万元部分按1%提成。
从键盘输入当月利润I,求应发奖金总数。
三、实验结果分析
对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。
实验三循环结构程序设计
一、实验目的及要求
1.熟练掌握while、do—while和for三种循环语句的应用。
2.掌握基本的编程算法。
二、实验内容
1、利用公式
sinx=x-x3/3!
+x5/5!
-x7/7!
+x9/9!
-…+(-1)(n-1)·x(2n-1)/(2n-1)!
编程计算sinx的值。
设x=0.5,n=9。
2、编写程序求:
3、输入20个有符号整数,统计正整数、零、负整数的个数。
4、输入m个数,求其最大数、最小数和平均值。
5、在100和1000之间,有多少个其数字之和等于9而且该数可被5整除的整数?
6、一位同学问老师和老师夫人的年龄是多少,老师说:
“我年龄的平方加上我夫人的年龄恰好等于1053,而我夫人年龄的平方加上我的年龄等于873。
”试计算老师和其夫人的年龄。
7、打印下列图案
*
***
*****
***
*
三、实验结果分析
对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。
实验四、数组程序设计
一、实验目的及要求
1.掌握一维、二维数组的定义、赋值和输入输出的方法;
2.掌握字符数组的使用;
3.掌握与数组有关的算法(例如排序算法)。
二、实验内容
1、给整型二维数组b[3][4]输入12个数据,计算并输出数组中所有正数之和、所有负数之和。
2、青年歌手参加歌曲大奖赛,有10个评委进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。
分析:
这道题的核心是排序。
将评委所打的10个分数利用数组按增序(或降序)排列,计算数组中除第一个和最后一个分数以外的数的平均分。
3、设二维数组b[5][4]中有鞍点,即b[i][j]元素值在第i行中最大,且在第j列中最小,试编写一程序找出所有的鞍点,并输出其下标值。
也可能没有。
4、从键盘输入一数,然后在一个整型一维数组a[20]中,用折半查找法找出该数是数组中第几个元素的值。
如果该数不在数组中,则打印”Nofound”。
5、编程打印如下图形:
*
**
**
**
*
6、有一电文,已按下列规律译成译码:
A→Za→z
B→Yb→y
C→Xc→x
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。
非字母字符不变。
编写一个程序将密码译成原文,并输出密码和原文。
三、实验结果分析
对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。
实验五函数程序设计
一、目的与要求
1.掌握C语言函数的定义方法、函数的声明及函数的调用方法。
2.了解主调函数和被调函数之间的参数传递方式。
二、实验内容
1、分别编写求圆面积和圆周长的函数,另编写一主函数调用之,要求主函数能输入多个圆半径,且显示相应的圆面积和周长。
2、编写一程序,把M×N矩阵a的元素逐列按降序排列。
假设M、N不超过10。
分别编写求一维数组元素值最大和元素值最小的函数,主函数中初始化一个二维数组a[10][10],调用定义的两函数输出每行、每列的最大值和最小值。
3、编写一判别素数的函数,在主函数中输入一个整数,输出该数是否为素数的信息。
4、编写一个将两个字符串连接起来函数(即实现strcat函数的功能),两个字符串由主函数输入,连接后的字符串也由主函数输出。
5、编写计算最小公倍数的函数,试由主函数输入两个正整数a和b调用之。
计算最小公倍数的公式为:
lcm(u,v)=u*v/gcd(u,v)(u,v≥0)
其中,gcd(u,v)是u、v的最大公约数。
lcm(u,v)是u、v的最小公倍数。
三、实验结果分析
对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。
实验六指针程序设计
一、目的与要求
1.通过实验进一步掌握指针的概念,学会定义和使用指针变量;
2.能正确使用数组的指针和指向数组的指针变量;
3.能正确使用字符串的指针和指向字符串的指针变量;
4.了解指向函数的指针变量的使用方法;
二、实验内容
1、编写子函数,对传送过来的三个数按由小到大的顺序排列,并通过形参传回调用函数。
2、编写函数intfind(int*p,intn,intx),在指针p所指的数组中查找整型数x,如果x在数组中,则该函数返回1,否则返回0。
n为数组的大小。
3、(选做)有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前m个数(如下图所示)。
写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个整数。
4、(选做)在主函数中输入10个不等长的字符串。
用另一个函数对它们按升序排序,然后在主函数中输出这10个已排序的字符串。
5、(选做)编写一程序,统计从键盘输入的命令行中第二个参数所包含的英文字符个数。
三、实验结果分析
对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。
实验七结构体、共用体程序设计
一、目的与要求
1.掌握结构体类型变量的定义和使用;
2.掌握结构体类型数组的概念和使用;
3.了解共用体的概念与使用。
二、实验内容
编程序,然后上机调试运行下列程序。
1.有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出每门课的班级平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩)。
要求用input函数输入10个学生数据;用average函数求总平均分;用max函数找出最高分的学生数据;班级平均分和最高分学生的数据都在主函数中输出。
2.设有两个人员的数据,一个学生,一个教师。
学生的数据中包括:
学号、姓名、班级,、教师的数据中包括:
工号、姓名、职称。
现将两人的数据放在同一表格中,要求输入两人的数据,再将输入的内容输出。
提示:
参考教材例9.11(P320)
三、实验结果分析
对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。
实验八文件程序设计
一、目的与要求
1.掌握文件和文件指针的概念以及文件的定义方法。
2.了解文件打开和关闭的概念和方法。
3.掌握有关文件操作的函数。
二、实验内容
1、有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出每门课程的班级平均成绩,并将学生数据和班级平均分存放在磁盘文件“stud.txt”中。
2、将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu_sort”中。
三、实验结果分析
对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。