上机实验指导Word格式.docx

上传人:b****5 文档编号:18584365 上传时间:2022-12-28 格式:DOCX 页数:27 大小:46.31KB
下载 相关 举报
上机实验指导Word格式.docx_第1页
第1页 / 共27页
上机实验指导Word格式.docx_第2页
第2页 / 共27页
上机实验指导Word格式.docx_第3页
第3页 / 共27页
上机实验指导Word格式.docx_第4页
第4页 / 共27页
上机实验指导Word格式.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

上机实验指导Word格式.docx

《上机实验指导Word格式.docx》由会员分享,可在线阅读,更多相关《上机实验指导Word格式.docx(27页珍藏版)》请在冰豆网上搜索。

上机实验指导Word格式.docx

实验二C语言的基础知识

1、掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。

2、学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

3、进一步熟悉C程序的编辑、编译、连接和运行的过程。

二、实验实训内容

1、输入程序,运行出结果。

mian()

{

charc1,c2;

c1=97;

c2=98;

c1<

c2;

}

2、分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。

main()

inti,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

cout<

i<

j<

m<

n;

1、在此基础上

1)将第二行改为:

intc1,c2;

再使之运行。

3)再将第三行改为:

c1=300;

c2=400;

再使之运行,分析其运行结果。

在该程序中,说明了字符型数据在特定情况下可作为整型数据处理,整型数据有时也可以作为字符型数据处理。

2、此程序主要考查自加、自减运算符以及复合运算符的用法。

1、“=”和“==”有什么区别?

2、“&

”和“&

&

”、“|”和“||”有什么区别?

实验三简单的C程序设计

1.理解C语言程序的顺序结构

2.掌握常用的C语言语句,熟练应用赋值、输入、输出语句。

1、按格式要求输入/输出数据

#include"

iostream.h"

inta,b;

flostx,y;

charc1,c2;

cin>

>

a>

b;

x>

y;

c1>

c2;

a<

b<

x<

y<

2、输入三角形三边长,求三角形面积。

#include“math.h”

floata,b,c,s,area;

b>

c;

s=1.0/2*(a+b+c);

area=sqrt(s*(s-a)*(s-b)*(s-c));

area;

3、已知圆半径,圆柱高,求圆周长,圆柱体积。

floatr,h,l,v,pi;

pi=3.1415926;

r>

h;

l=2*pi*r;

v=pi*r*r*h;

l;

v;

4、输入一个摄氏温度,要求输出华氏温度。

公式为f=5/9*c+32.

floatc,f;

f=5.0/9*c+32;

1、第一题运行程序,必须按如下方式在键盘上输入数据

a=3,b=7↙

8.5,71.82↙

aA↙

2、修改输出格式控制符,观察输出结果的变化。

1、已知圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。

2、输入一个华氏温度,要求输出摄氏温度。

公式为c=5/9*(f-32)。

实验四选择结构程序设计

1、了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);

2、学会正确使用逻辑运算符和逻辑表达式;

3、熟练掌握if语句和switch语句。

编写程序完成下列题目:

1、已知三个数a,b,c,找出最大值放于max中。

2、输入某学生的成绩,经处理后给出学生的等级,等级分类如下:

90分以上(包括90):

A

80至90分(包括80):

B

70至80分(包括70):

C

60至70分(包括60):

D

60分以下:

E

3、有一函数:

y=

用scanf函数输入x的值(分别为x<

1,1~10,

10三种情况),求y值。

1、分析:

由已知可得在变量定义时定义四个变量a,b,c和max,a,b,c是任意输入的三个数,max是用来存放结果最大值的。

第一次比较a和b,把大数存入max中,因a,b都可能是大值,所以用if语句中if——else形式。

第二次比较max和c,把最大数存入max中,用if语句的第一种形式if形式。

Max即为a,b,c中的最大值。

#include"

inta,b,c,max;

/*定义四个整型变量*/

if(a>

=b)

max=a;

/*a>

=b*/

else

max=b;

/*a<

b*/

if(c>

max)

max=c;

/*c是最大值*/

"

max="

max;

若输入下列数据,分析程序的执行顺序并写出运行结果

(1)a=1,b=2,c=3

(2)a=2,b=1,c=3

(3)a=3,b=2,c=1

(4)a=3,b=1,c=2

(5)a=3,b=3,c=2

(6)a=2,b=1,c=2

2、方法一:

(用if嵌套`)

分析:

由题意知如果某学生成绩在90分以上,等级为A;

否则,如果成绩大于80分,等级为B;

否则,如果成绩大于70分,等级为C;

否则,如果成绩大于60分为D;

否则,如果成绩小于60分,等级为E;

但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。

因此,再用if嵌套前,应先判断输入的成绩是否在0~100之间。

#include"

intscore;

chargrade;

\npleaseinputastudentscore:

;

cin>

score;

if(score>

100||score<

0)

\ninputerror!

else

{if(score>

=90)

grade='

A'

=80)

B'

{if(score>

=70)

grade='

C'

else

{if(score>

=60)

D'

elsegrade='

E'

}

\nthestudentgrade:

grade);

输入测试数据,调试程序。

测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。

方法二:

用switch语句

switch语句是用于处理多分支的语句。

注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。

所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。

则由此可得把score除十取整,化为相应的常数。

intg,s;

charch;

\ninputastudentgrade:

g;

s=g/10;

if(s<

0||s>

10)

cout<

{switch(s)

{case10:

case9:

ch='

break;

case8:

case7:

case6:

default:

\nthestudentscort:

ch;

输入测试数据,同方法一一样调试程序并写出结果。

3、分析:

y是一个分段表达式。

要根据x的不同区间来计算y的值。

所以应使用If语句。

intx,y;

”pleaseinputx:

”;

x;

if(x<

1)

y=x;

“y=”<

elseif(x<

10){

y=2*x-1;

y=3*x-11;

}

c语言如何表示“真”与“假”?

系统如何判断一个量的“真”与“假”?

实验五循环结构程序设计

熟练掌握while、do—while和for三种循环语句的应用。

编写程序,完成下列题目:

1、求5!

2、求和s=1!

+2!

+3!

3、求和s=1!

+5!

4、求和s=3+33+333

5、有一数列:

2/1,3/2,5/3,8/5,…求出这个数列的前10项之和。

6、打印500以内的“水仙花数”。

“水仙花数”是一个三位数,其各位数立方和等于该数本身。

7、一个数如果恰好等于它的因子之和,这个数就称为完数。

求100之内的所有完数。

1、程序清单:

intn,t;

n=1;

t=1;

while(t<

=5)

n=n*t;

t=t+1;

2、程序清单:

intn,s=0,t=1;

for(n=1;

n<

=3;

n++)

t=t*n;

s=s+t;

s;

3、程序清单:

ints=0,t,i,j;

for(i=1;

i++)

for(j=1;

=2*i-1;

j++)

t=t*j;

4、程序清单:

ints=0,t=3,i;

t=10*t+3;

5、程序清单:

intn,t,;

floata=2,b=1,s=0;

=10;

s=s+a/b;

t=a;

a=a+b;

b=t;

6、程序清单:

inti,j,k,n;

for(n=100;

=500;

i=n/100;

j=n/10-i*10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

7、程序清单:

intn,s,j;

=100;

s=0;

if(n%j==0)

s=s+j;

if(s==n)

求Sn=a+aa+aaa+…+aa…a之值,其中a是一个数字。

例如:

2+22+222+2222+22222(此时n=5),n由键盘输入(分别用while和for编程)。

实验六函数

1、掌握C语言函数的定义方法、函数的声明及函数的调用方法。

2、了解主调函数和被调函数之间的参数传递方式。

1、写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。

2、写一函数,是给定的一个二位数组(4×

4)转置,即行列互换。

3、写两个函数,分别求两个正数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。

两个正数由键盘输入。

4、写一函数,用“起泡法”对输入的10个字符按由小到大顺序排序。

intnumber;

“请输入一个正整数:

\n”;

number;

if(prime(number))

“\n%d是素数.”<

“\n%d不是素数.”<

intprime(number)/*此函数用于判别素数*/

intflag=1,n;

for(n=2;

number/2&

flag==1;

if(number%n==0)

flag=0;

return(flag);

判断素数的算法,我们在以前学习循环的时候已经学过了,在这里只是把这个算法用函数的形式表示出来。

这里我们要注意函数的

定义、声明的方法和格式。

/*矩阵的转置*/

#defineN4

intarray[N][N];

convert(array)

intarray[4][4];

inti,j,t;

for(i=0;

N;

for(j=i+1;

t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;

inti,j;

“输入数组元素:

for(j=0;

array[i][j];

“\n数组是:

array[i][j]<

conver(array);

“转置数组是:

本例题用数组作为函数参数,大家要注意数组作为函数参数时的用法。

stdio.h"

hcf(u,v)

intu,v;

inta,b,t,r;

if(u>

v)

t=u;

u=v;

v=t;

a=u;

b=v;

while((r=b%a)!

=0)

b=a;

a=r;

return(a);

lcd(u,v,h)

intu,v,h;

return(u*v/h);

intu,v,h,l;

u>

h=hcf(u,v);

H.C.F=%d\n"

l=lcd(u,v,h);

L.C.D=%d\n"

这是一个十分典型的算法,同学们一定要认真分析、学习。

/*起泡法排序*/

#defineN10

charstr[N];

inti,flag;

for(flag=1;

flag==1;

“\n输入字符串,长度为10:

str;

if(strlen(str)>

N)

“超过长度,请重输!

flag=0;

sort(str);

“\n排序结果:

str[i];

sort(str)

chart;

for(j=1;

(i<

N-j)&

(str[i]!

=’\0’);

if(str[i]>

str[i+1])

t=str[i];

str[i]=str[i+1];

str[i+1]=t;

编写一个程序,包括主函数和如下子函数。

(1)输入10个无序的整数;

(2)用起泡方法从大到小排序;

(3)要求输入一个整数,用折半查找法找出该数,若存在,在主函数中输出其所处的位置,否则,插入适当位置。

input函数完成10个整数的录入。

sort函数完成起泡法排序,search函数完成输入数的查找。

实验七指针

1.掌握指针变量的定义与引用。

2.熟练使用函数指针、数组指针、字符串指针编写应用程序。

1、写一函数,求一个字符串的长度。

2、编写一个函数,将数组中n个数按反序存放。

3、设一个函数,调用它时,每次实现不同的功能:

(1)求两个数之和;

(2)求两个数之差;

(3)求两个数之积。

(1)本部分习题要求全部用指针完成;

(2)在main函数中输入字符串,并输出其长度;

(3)本题不能使用strlen()函数;

方法说明:

在主函数中定义一个指向字符串的指针变量pstr,并将输入的字符串的首地址赋值给pstr,然后调用求字符串长度的函数strlenth(char*p),得到字符串的长度。

在函数strlenth(char*p)中,判断*p是否为’\0’,如果不为’\0’,则进行len++的操作,直到遇到’\0’为止。

然后返回len值。

求字符串长度的函数strlenth(char*p)算法如下:

(1)定义intlen=0;

(2)当*p!

=’\0’时,重复执行(2.1)(2.2),否则算法终止。

len=len+1

p++

(3)return(len)

2、分析:

(1)在主函数中输入10个数,并输出排好序的数。

(2)编写函数invert()将10个数按反序存放。

(1)在主函数中输入2个数a,b,并输出a,b的和、差和乘积。

(2)分别编写函数add()、sub()、mul()计算两个数的和、差、积。

(3)编写函数process(),分别调用函数add()、sub()、mul()。

实现指针移动的几种方法。

实验八一维数组

1、掌握一维数组的定义、赋值和输入输出的方法;

2、掌握字符数组的使用;

3、掌握与数组有关的算法(例如排序算法)。

1、在键盘上输入N个整数,试编制程序使该数组中的数按照从大到小的次序排列。

2、青年歌手参加歌曲大奖赛,有10个评委对她的进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。

3、输入一串字符,计算其中空格的个数。

C中数组长度必须是确定大小,即指定N的值。

排序的方法有多种,我们取出其中两种作为参考。

方法一:

起泡排序

从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;

如次序不对则使这两个数交换位置。

第一遍的(N-1)次比

较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。

源程序如下:

inta[N],i,j,temp;

pleaseinput%dnumbers\n"

for(i=0;

a[i];

N-1;

for(j=0;

N-1-i;

if(a[j]>

a[j+1])

temp=a[j];

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

a[j+1

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

当前位置:首页 > 农林牧渔

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

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