C语言程序设计实验手册Word下载.docx

上传人:b****5 文档编号:21476676 上传时间:2023-01-30 格式:DOCX 页数:22 大小:53.82KB
下载 相关 举报
C语言程序设计实验手册Word下载.docx_第1页
第1页 / 共22页
C语言程序设计实验手册Word下载.docx_第2页
第2页 / 共22页
C语言程序设计实验手册Word下载.docx_第3页
第3页 / 共22页
C语言程序设计实验手册Word下载.docx_第4页
第4页 / 共22页
C语言程序设计实验手册Word下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C语言程序设计实验手册Word下载.docx

《C语言程序设计实验手册Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验手册Word下载.docx(22页珍藏版)》请在冰豆网上搜索。

C语言程序设计实验手册Word下载.docx

学会使用编程环境VC++,启动、编辑、编译、运行、保存、关闭、打开)

1.3编程

在屏幕上显示如下网格。

+---+---+

|||

 

1.4调试示例

改正下列程序中的错误,在屏幕上显示“WelcometoYou!

”。

(掌握找错、改错的方法)

源程序:

#include<

stdio.h>

intmian(void)

{

printf(WelcometoYou!

\n"

getchar();

return0;

}

注:

需要修改的语句直接在程序上标注并修改

实验总结:

实验二用C语言编写简单程序

1.掌握算术表达式和赋值表达式的使用

2.掌握基本输出函数的使用

3.能够自己编程实现简单的数据处理

4.熟练掌握简单if语句使用

5.熟练掌握for语句的使用

6.掌握简单C程序的查错方法、单步调试

2.1调试以下程序,求华氏温度对应的摄氏温度。

计算公式为:

C=5*(f-32)/9

#include<

stdoi.h>

intmain(void)

intcelsius;

fahr;

scanf("

%d"

fahr);

celsius=5*(fahr-32)/9;

printf("

fahr=d,celsius=%d\n"

fahr,celsius);

2.2编写程序计算定期存款本利之和:

设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计算n年后的本利之和deposit。

要求定期存款的年利率rate、存款期n和存款本金capital均由键盘输入,输出时保留两位小数。

deposit=capital(1+rate)n

2.3计算身体质量指数

一个称为“身体质量指数”(BMI)的量用来计算与体重有关的健康问题的危险程度。

BMI按下面的公式计算:

BMI=w/h2

其中w是以千克为单位的体重。

h是以米为单位的身高。

大约20至25的BMI的值被认为是“正常的”,编写一个应用程序,输入体重和身高,输出BMI,并判断是否正常。

2.4水仙花数判断

输入一个三位数,判断是否是水仙花数,水仙花数是3位数,数本身的值恰好等于各位数字的立方和如:

153=13+53+33

学号:

实验三分支结构程序设计

1.熟悉掌握关系表达式和逻辑表达式的使用

2.熟练掌握用嵌套的if语句和switch语句实现多分支结构程序设计

3.掌握使用断点调试程序的方法

3.1按要求调试程序

输入参数a,b,c,求一元二次方程ax2+bx+c=0的根。

include<

math.h>

{doublea,b,c,d;

Entera,b,c\n"

);

%lf%lf%lf"

&

a,&

b,&

c);

d=b*b-4*a*c;

if(a==0){

if(b=0){

if(c==0)

printf("

参数都为零,方程无意义!

\n"

/*调试时设置断点*/

else

a和b为0,c不为0,方程不成立\n"

}

else

printf("

x=%0.2f\n"

-c/b);

}

else

if(d>

=0){/*调试时设置断点*/

x1=%0.2f\n"

(-b+sqrt(d))/(2*a));

x2=%0.2f\n"

(-b-sqrt(d))/(2*a));

else{

x1=%0.2f+%0.2fi\n"

-b/(2*a),sqrt(-d)/(2*a));

x2=%0.2f-%0.2fi\n"

/*调试时设置断点*/

调试时按注释位置设置三个断点,单击Go按钮,输入2.18.93.5,观察变量值的情况。

第一次断点:

a,b,c的值分别是:

第二次断点:

d的值是:

第三次断点:

运行窗口显示:

3.2求三角形的面积和周长

输入三角形的三条边a,b,c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数);

否则,输出“Thesesidesdonotcorrespondtoavalidtriangle”。

在一个三角形中,任意两边之和大于第三边。

三角形的面积计算公式:

其中:

s=(a+b+c)/2

3.3计算个人所得税

输入一个职工的月薪salary,输出应交的个人所得税tax(保留2位小数)。

tax=rate*(salary-3500)-deduction

当salary<

=3500时,rate=0,deduction=0;

当3500<

salary<

=5000时,rate=3%,deduction=0;

当8000<

=12500时,rate=20%,deduction=555;

当12500<

=38500时,rate=25%,deduction=1005;

当38500<

=58500时,rate=30%,deduction=2755;

当58500<

=83500时,rate=35%,deduction=5505;

当83500<

salary时,rate=45%,deduction=13505;

3.4计算出租车费

某市不同品牌出租车价格为:

捷达5元起价,1公里内收起步价,1公里外按1.4元/公里收取;

速腾7元起价,1公里内收起步价,1公里外按1.4元/公里收取;

红旗10元起价,1公里内收起步价,1公里外按1.5元/公里收取。

编写程序,从键盘输入乘车车型和乘车公里数,输出应付的车费。

(采用switch语句实现车型选择)

实验四循环结构程序设计

1.熟练掌握for、while、和do…while语句实现循环程序设计

2.理解循环条件和循环体,以及三种循环语句的相同和不同之处

3.熟练掌握break、continue语句的使用

4.掌握使用“Debug”菜单调试程序的方法

4.1按要求调试程序

改正下列程序中的错误,输入2个正整数m和n,输出它们的最小公倍数和最大公约数。

{

intm,n,j,k;

/*j表示最小公倍数,k表示最大公约数*/

do{

Inputm:

"

%d"

m);

Inputn:

n);

}while(m<

0||n<

0);

j=m;

while(j%n!

=0)/*调试时设置断点*/

j=j+m;

k=(m*n)/j;

/*调试时设置断点*/

最小公倍数是%d\n最大公约数是%d\n"

j,k);

调试时按注释位置设置二个断点,单击Go按钮,输入37,观察变量值的情况。

m,n的值分别是:

j的值是:

若结果不对,停止调试,改正错误后,取消第一个断点,单击Go,到断点处,此时j的值是:

4.2编写程序

输入一批正整数(以0或负数为结束标志),求其中的偶数和。

4.3编写程序

给一个不多于5位的正整数,要求:

a.求出它是几位数;

  b.分别输出每一位数字;

c.按逆序输出各位数字,例如原数为321,应输出123

4.4统计素数并求和

输入2个正整数m和n(1<

=m,n<

=500),统计并输出m和n之间的素数的个数以及这些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。

4.5编写程序

用一张一元票换1分、2分和5分的硬币(至少各一枚),问有哪几种换法?

各几枚?

4.6猜数游戏

先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;

否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,结束游戏。

【思考】如果用scanf输入用户猜测的数据时,如果用户不小心输入了非法字符,如字符a,那么程序运行就会出错,用什么方法可以避免这样的错误发生呢?

请编写程序验证方法的有效性。

实验五函数程序设计

1.熟练掌握函数的定义和调用

2.熟练掌握使用函数编写程序

3.掌握函数的实参、形参和返回值的概念和使用

4.掌握单步调试进入函数和跳出函数的方法

5.1改错

改正下列程序中的错误,计算1!

+2!

+3!

+4!

+…+10!

的值,要求定义并调用函数fact(n),计算n!

,函数类型是double。

doublefact(intn)

intmain(void)

inti;

doublesum;

for(i=1;

i<

10;

i++)

sum=sum+fact(i);

/*设置断点*/

1!

+2!

+…+10!

=%f\n"

sum);

doublefact(intn);

doubleresult;

=n;

fact(n)=fact(n)*i;

returnresult;

1.需要修改的语句直接在程序上标注并修改

2.设置断点,单步进入函数和从函数返回主调函数

5.2求a+aa+aaa+aa⋯a

输入2个正整数a和n,求a+aa+aaa+aa⋯a(n个a)之和。

要求定义并调用函数fn(a,n),它的功能是返回aa⋯a(n个a)。

例如,fn(3,2)的返回值是33。

5.3统计一个整数中数字的个数

要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。

例如,countdigit(10090,0)的返回值是3

5.4判断素数

输入一个正整数n,如果它是素数,输出"

YES"

,否则,输出"

NO"

(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。

要求定义并调用函数prime(m)判断m是否为素数。

5.5输出Fibonacci序列

=10000),输出m和n之间所有的Fibonacci数。

Fibonacci序列(第1项起):

1123581321......

要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。

例如,fib(7)的返回值是13。

例:

括号内是说明

输入:

20100(m=20,n=100)

输出:

21345589(20到100之间的Fibonacci数)

实验六数组程序设计

1.熟练掌握一维数组、二维数组编程方法

2.熟练掌握字符串的存储和操作方法

3.熟练掌握排序算法

6.1改错

改正下列程序中的错误,输入一个正整数n(0<

n<

9)和一组(n个)有序的整数,再输入一个整数x,把x插入到这组数据中,使该组数据仍然有序。

intmain()

inti,j,n,x,a[n];

输入数据的个数n:

"

输入%d个整数:

n);

for(i=0;

n;

i++)

a[i]);

输入要插入的整数:

x);

i++){

if(x>

a[i])continue;

j=n-1;

while(j>

=i){/*调试时设置断点*/

a[j]=a[j+1];

j++;

}/*调试时设置断点*/

a[i]=x;

break;

if(i==n)a[n]=x;

n+1;

a[i]);

putchar('

\n'

6.2求平均值

输入一个正整数n(1<

=10),再输入n个整数,输出平均值(保留2位小数)。

6.3交换最小值和最大值

=10),再输入n个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。

6.4排序

=10),再输入n个整数,将它们从大到小排序后输出。

6.5改错

改正下列程序中的错误,输入2个正整数m和n(m>

=1,n<

=6),然后输入该m行n列二维数组a中的元素,分别求出各行元素之和并输出。

#include<

intmain()

inta[6][6],i,j,m,n,sum;

inputm,n:

%d%d"

&

m,&

inputarray:

for(i=0;

i<

m;

i++)/*调试时设置断点*/

for(j=0;

n;

j++)

a[i][j]);

sum=0;

i++){

j<

sum=sum+a[i][j];

sumofrow%dis%d\n"

i,sum);

/*调试时设置断点*/

}

6.6编程找鞍点

输入1个正整数n(1≤n≤6)和n阶方阵a中的元素,如果找到a的鞍点(鞍点的元素值在该行上最大,在该列上最小),就输出它的下标,否则,输出"

(设a最多有1个鞍点)。

6.7改错

改正下列程序中的错误,输入一个以回车结束的字符串(少于80个字符),将它的内容逆序输出。

如“ABCD”输出为“DCBA”。

inti,k,temp;

charstr[];

inputastring:

i=0;

while((str[i]=getchar())!

='

i++;

str[i]='

\0'

;

k=i-1;

k;

i++){/*调试时设置断点*/

temp=str[i];

str[i]=str[k];

str[k]=temp;

k++;

str[i]!

putchar(str[i]);

6.8统计大写辅音字母个数

输入一个以回车结束的字符串(少于80个字符),统计并输出其中大写辅音字母的个数(除A、E、I、O、U以外的大写字母)。

实验七指针程序设计

1.理解指针、地址和数组间的关系

2.掌握通过指针操作数组元素的方法

3.掌握数组名作为函数参数的编程方式

4.掌握通过指针操作字符串的方法

7.1改错

改正下面程序中的错误。

有n个整数,使前面各数顺序循环移动m个位置(m<

n)。

编写一个函数实现以上功能,在主函数中输入n个整数并输出调整后的n个整数。

voidmov(int*,int,int);

intmain()

intm,n,i,a[80],*p;

Inputn,m:

n,&

for(p=a,i=0;

i++)

p++);

mov(a,n,m);

Aftermove:

%5d"

a[i]);

voidmov(int*x,intn,intm)

inti,j;

i++){

for(j=n-1;

j>

0;

j--)

x[j]=x[j-1];

/*调试时设置断点*/

x[0]=x[n-1];

7.2查找整数

定义一个函数search(intlist[],intn,intx),在数组list中查找元素x,若找到则返回相应下标,否则返回-1。

在main函数中调用search。

补充程序完成search功能。

intsearch(intlist[],intn,intx);

inti,x,a[10],res;

for(i=0;

i<

10;

scanf("

res=search(a,10,x);

printf("

res);

return0;

intsearch(intlist[],intn,intx)

7.3排序

定义函数voidsort(inta[],intn),用选择法对数组a中的元素排序。

自己定义main函数,并在其中调用sort函数。

7.4改错

输入5个字符串,输出其中最大的字符串。

string.h>

charstr[80],max[80];

Input5strings:

%s"

str);

max=str;

for(i=1;

5;

if(max<

str)/*调试时设置断点*/

Maxis:

%s\n"

max);

}

7.5字符串复制

分别用字符数组和字符指针定义函数strmcpy(s,t,m),将字符串t中从m个字符开始的全部字符复制到字符串s中去。

实验八结构程序设计

1.掌握结构体变量的基本使用方法

2.掌握结构体数组的基本使用方法

3.掌握结构体指针的概念,以及结构指针作为函数参数的编程方法

8.1调试

调试下面的程序,查看运行结果是否和题目要求相符。

输入一个正整数n(3<

=n<

=10),再输入n个雇员的信息(如下表所示),输出每人的姓名和实发工资(基本工资+浮动工资-支出)。

工资表

姓名

基本工资

浮动工资

支出

Zhang

1200

500

100

Wang

3500

1000

Zhao

2400

800

200

intmain(void)

inti,n;

structemp{

charname[10];

floatjbg;

floatfdg;

floatzc;

}s[10];

n="

for(i=0;

%s%f%f%f"

s[i].name,&

s[i].jbg,&

s[i].fdg,&

s[i].zc);

for(i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1