试管什么时候排精-试管测试变化
百度文库
-
让每个人平等地提升自我
云南农业大学
C
语言公共课
实
验
指
导
书
目
录
1
百度文库
-
让每个人平等地提升自我
实验一
C
语言的运行环境及简单的程序调试
.
............ .................................................. .......
3
实验二
数据类型、运算符和表达式
.................................................. .......................................
4
实验三
最简单程序设计
................. .................................................. ........................................
5
实验四
选择结构程序设计
................ .................................................. .....................................
6
实验五
循环控制
............... .................................................. ..................................................
11
实验六
数组
...... .................................................. .................................................. .................
1
7
实验七
函数的定义及调用
............................ .................................................. .....................
2
3
实验八
指
针
*
(选做)
....... .................................................. ..............................................
2
8
实验九
综合应用(一)
.................................. .................................................. ...................
3
1
实验十
2
综合应用(二)
.................. .................................................. ...................................
3
6
百度文库
-
让每个人平等地提升自我
实验一
C
语言的运行环境及简单的程序调试
一、目的和要求
1
、熟悉
C
语言运行环境。
2
、掌握C语言程序的书写格式和C语言程序的结构。
3
、掌握< br>C
语言上机步骤,了解运行一个
C
程序的方法。
4
、本实验可在学习完教材第一章后进行。
二、实验内容
1
、了解
vc++
编程环境,掌握调试程序过程和常用命令。
2
、有下面的C程序,目的是想计算由键盘输入的任意两个整数的积。
/****************/
#include
;
main()
scanf(“%x,%y”,&x,%y)
p=prodct(x,t)
printf(“The product is :”,p)
int prodct(int a ,int b )
int c
c=a*b
return c
请调试上述程序。
三、实验步骤
1、静态地检查上述程序,改正程序中的错误。
2、在编辑状态下照原样键入上述程序。
3、编译并运行上述程序,记下所给出的出错信息。
4、按照事先静态检查后所改正的情况,进行纠错。
5、再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。
6、下面给出6组测试用例,你认为哪几组较好?为什么?
(1)
0
,
0
(2)
0
,
99
(3)20,50
(4)33000,20
(5)-5,-2
(6)-5,2
要测试出上述程序中所有错误,你认为应当用几组测试用例?
四、分析与讨论
3
百度文库
-
让每个人平等地提升自我
1、
记下在调试过程中所发现的错误、
系 统给出的出错信息和对策。
分析讨论对策成功或失
败的原因。
实验二
数据类型、运算符和表达式
一、目的和要求
1、了解C语言中数据类型的意义。
2、掌握不同数据类型之间的赋值的规律。
3
、学会有关
C
语言的有关运算符,以及包含这些运算符的表达式,特别是是
++
和--
运算符的使 用。
4
、进一步熟悉
C
程序的编辑环境。
二、实验内容和步骤
1、下面的程序试图计算由键盘输入的任意两个整数的平均值:
#
include <>
main()
{
int x,y,a;
scanf(“%x,%y,&x,&y);
a=(x+y)/2;
printf(“The average is :”
a);
}
调试无语法错误后,分别使用下列测试用例对上述程序进行测试:
(1)2,6
(1)1,
3
(3)-2,-6
(4)-1,-3
(5)-2,6
(6)-1,3
(7)1,0
(8)1,6
(9)32800,33000
(10)-32800,33000
(
1
)
、分析上述哪几组测试用例较好?通过测试,你发现程序有什么错误了吗? 若有错误,
请指出错误原因。
(2)
、
函数
sizeof
用以测试一个数据或类型所占用的存储空间的字节数。
请编写一个程序,
测试各基本数 据类型所占用的存储空间大小。
2
、输入以下程序
main()
{int j,k,m,n;
k=8;
j=10;
4
百度文库
-
让每个人平等地提升自我
m=k++;
n=++j;
printf(“%d,%d,%d,%d”,k,j,m,n);
}
(
1
)
、分析程序的运行结果。
(
2
)
、运行程序,观察结果与分析是否一致。
4
、编写一个C语言程序,测试下列各表达式
i , j
i + 1,j + 1
i + + ,j + +
+ + i, + + j
i + + + + + j
+ + i + + + + + j + +
要求在各表达式中
i
和
j
都分别有相同的初值。在实验中注意下列问题:
(1)
哪些表达式是错误的?为什么?
(2)
理解+,++,++
i
,
i
++的意义和优先级别。
三、分析与讨论
如何正确地选用数据类型、总结运算符的优先级?
实验三
最简单程序设计
一、目的和要求
1、掌握C语言程序输入、输出的方法和格式。
2、本实验可在学习教材第四章后进行。
二、实验内容与步骤
1、输入并编辑下面的程序
main()
{
int a,b;
float c,d;
long e,f;
unsigned int u,v;
char c1,c2;
scanf(“%d,%d”,a,b);
scanf(“%f,%f”,c,d);
scanf(“%ld,%ld”,e,f);
scanf(“%o,%o”,u,v);
scanf(“%c,%c”,c1,c2);
printf(“
n”);
printf(“a=%7d,b=%7d
n”,&a,&b);
5
百度文库
-
让每个人平等地提升自我
printf(“c=%10.2f,d=%10.2f
n”,&c,&d);
printf(“e=17ld,f=%17ld
n”,&e,&f);
printf(“u=%o,d=%o
n”,&u,&v);
printf(“c1=%c,d=%c
n”,&c1,&c2);
这个程序有语法错误吗?为什么?
2、调试上述程序无语法错误后,用下面的测试数据,对程序进行测试:
a=123 ,b=456,c=,d=,e=70000,f=2174506,u=62000,v=58765,c1= ’a’,c2=’b’
分析运行结果。特别注意输入
c1,c2
的值是什么?什么原因?
3、将输入
e
和
f
的语句改为:
scanf(“%d,%d”,&e,&f);
再用上述测试数据测试并分析结果。
4、将输入
u
、
v
的语句改为:
scanf(“%d,%d”,&u,&v);
再用上述测试数据测试并分析结果。
5、将输出
e
,
f
的语句改为:
printf(“e=%17d,f=%17d
n”,e,f);
再用上述测试数据测试并分析结果。
6、将输出
u
、
v
的语句改为:
printf(“u=%u,v=%u
n”,u,v);
或
printf(“u=%d,v=%d
n”,u,v);
再用上述测试数据测试并分析结果。
7、请读者自己修改程序和改变数据输入的形式,分析各种情况下的输入与输出。
8 、在
scanf(“%c,%c”,&c1,&c2)
;语句之前加一个语句:
getchar();
9、验证转义字符
n
与
r
的意义有何不同。
三、分析与讨论
1、总结在
printf
函数中可以使用的各种格式指定符,并给出样例。
2、总结在
printf
函数中可以使用的各转义字符及其功能。
实验四
选择结构程序设计
一、实验目的
1、了解条件与程序流程的关系
.
2、了解用不同的数据使程序的流程覆盖不同的语句、分支和路径。
3、了解
C
语句表示逻辑量的方法(以
0
代表“假”以
1
代表“真”
)
;
4
、学会正确使用逻辑运算符和逻辑表达式;
5
、熟练掌握
if
语句和
switch
语句。
二、实验内容和步骤
1
、
6
百度文库
-
让每个人平等地提升自我
(1)
、题目
有如下程序段:
{……
if (a>1&&b= =0) x=x/a;
if(a==2||x>1) x=x+1;
}
为了更容易明白程序的逻辑结构,我们用图所示流程图来加以描述。
y
a>1&&b= =0
n
x=x/a
a= =2||x>1
y
n
x=x+1
要求增加一些输入语句和输出语句,以便使上述程序能在不同的
a,b
和
x
值 下运行,并
且能观察程序流程经过(覆盖)了哪些语句、哪些分支及哪些路径。
(2)
、实验步骤
记下分别使用下列各组数据运行时的操作流程。
(1)
a=1,b=1,x=1;
(2)
a=1,b=1,x=2;
(3)
a=3,b=0,x=1;
(4)
a=2,b=1,x=4;
(5)
a=2,b=1,x=1;
(6)
a=1,b=0,x=2;
(7)
a=2,b=1,x=1;
(8)
a=3,b=0,x=2
。
2
、
(
1
)
、题目
已知三个数
a
,
b
,
c
,找出最大值放于
max
中。
分析:由已 知可得在变量定义时定义四个变量
a
,
b
,
c
和
m ax
,
a
,
b
,
c
是任意输入的
三个数,
max
是用来存放结果最大值的。
第一次比较
a
和
b
,
把大数存入
max
中,
因
a
,
b
都可 能是大值,所以用
if
语句中
if
——
else
形式。第 二次比较
max
和
c
,把最大数存
入
max
中,用
if
语句的第一种形式
if
形式。
Max
即为
a< br>,
b
,
c
中的最大值。
#
include
main()
{
7
百度文库
-
让每个人平等地提升自我
int a,b,c,max;
/*
定义四个整型变量
*/
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
if (a>=b)
max=a;
/*a>=b*/
else
max=b;
/*aif (c>max)
max=c;
/*c
是最大值
*/
printf(
}
(
2
)
、实验步骤
若输入下列数据,分析程序的执行顺序并写出运行结果
(
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
3
、
(
1
)
、题目
输入某学生的成绩,经处理后给出学生的等级,等级分类如下:
90
分以上(包括
90
)
:
A
80
至
90
分(包括
80
)
:
B
70
至
80
分(包括
70
)
:
C
60
至
70
分(包括
60
)
:
D
60
分以下:
E
方法一:
(
用
if
嵌套
`)
分析:
< br>由题意知如果某学生成绩在
90
分以上,等级为
A
;否则,如果成绩大 于
80
分,等级为
B
;否则,如果成绩大于
70
分,等级为
C
;否则,如果成绩大于
60
分为
D
;否则,如
果 成绩小于
60
分,
等级为
E
;
但当我们输入成绩时也可能输 错,
出现小于
0
或大于
100
,
这时也要做处理,输出出错 信息。因此,再用
if
嵌套前,应先判断输入的成绩是否在
0~100
之间。
#include
main()
{
int
score;
char
grade;
printf(
scanf(
if(score>100||score<0)
printf(
else
{ if(score>=90)
8
百度文库
-
让每个人平等地提升自我
grade='A';
else
{ if(score>=80)
grade='B';
else
{if(score>=70)
grade='C';
else
{ if(score>=60)
grade='D';
else grade='E';
}
}
}
printf(
}
}
输入测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例 如此题中得
100
分,
60
分,
0
分以及小于
0< br>和大于
100
的数据。
方法二:用
switch
语句
分析:
switch
语句是用于处理多分支的语句。注意,
case
后的表达式必 须是一个常量表达式,
所以在以用
switch
语句之前,必须把
0~100
之间的成绩分别化成相关的常量。所有
A
(除
100
以外)
,
B
,
C
,
D
类的成绩的共同特点是十位数相同,此外都是
E
类。则由此
可得把
score
除十取整,化为相应的常数。
#include
main()
{
int g,s;
char ch;
printf(
scanf(
s=g/10;
if(s<0||s>10)
printf(
else
{ switch (s)
{ case 10:
case 9:
ch='A';
break;
case 8:
ch='B';
break;
case 7:
ch='C';
break;
case 6:
ch='D';
break;
default: ch='E';
}
9
百度文库
-
让每个人平等地提升自我
printf(
}
}
输入测试数据,同方法一一样调试程序并写出结果。
4
、
有一函数:
x
y=
x<1
1=
3x-11
x>=10
用
scanf
函数输入
x
的值
(
分别为
x<1,1 ~10,>=10
三种情况
),
求
y
值。
分析:
y
是一个分段表达式。要根据
x
的不同区间来计算
y
的值。 所以应使用
If
语句。
main()
{
int x,y;
printf(“please input x :”);
scanf(“%d”,&x);
if (x<1)
{
y=x;
printf(“y=%d
n”,y);
}
else if (x<10)
{
y=2*x-1;
printf(“y=%d
n”,y);
}
else
{
y=3*x-11;
printf(“y=%d
n”,y);
}
三、作业
1
、
c
语言如何表示“真”与“假”?系统如何 判断一个量的“真”与“假”?
2
、写出下面各逻辑表达式的值。设
a=3,b=4,c=5
(1)
、
a+b>c&&b= =c
(2)
、
a||b+c&&b-c
(3)
、
!
(a>b)&&!c||1
(4)
、
!(x=a)&&(y=b)&&0
(5)
、
!(a+b)+c-1&&b+c/2
3
、有
3
个整数
a
、
b
、
c,
由键盘输入,输出其中最大的 数。
4
、有一函数:
10
百度文库
-
让每个人平等地提升自我
x
y=
2x-1
3x-11
x<1
1=
写一程序,输入
x,
输出
y
。
5
、给 出一百分制成绩,要求输出成绩等级
A
、
B
、
C
、
D
、
E
。
90
分以上为
A
,
80~89< br>为
B
,
70~79
分为
C
,< br>60~69
分为
D
,
60
分以下为
E
。
6
、给一个不多于
5
位的正整数,要求:
(
1
)求出它是几位数;
(
2
)
、分别打出每一位数字;
(
3
)
、按逆序打出各位数字,例如原数为
321
,应输出
123
。
7
、输入
4
个整数,要求按由小到大的顺序输出。
四、分析讨论
(
1
)
用哪一组数据就可使程序 中的每个处理语句都执行一次?为了找出程序中各条处理语
句中的错误,应该使用什么样的数据对程序进 行测试?请上机验证自己的结论。
(
2
)
用哪两组数据 就可以使程序段中的每个分支都运行一次?这种情形与上面的讨论有何
不同?如果为了找出程序中积压分 支中的错误,
应该使用什么样的数据对程序进行测试?请
上机验证自己的结论。
(
3
)
用哪两组数据就可以把判定框中的每个条件运算都进行一次 ?如果为了测试出判定条
件中的错误,应使用哪些数据对程序进行测试?请上机验证自己的结论。
(
4
)
用哪四组数据才可以把各种条件的组合都检测一遍?
< br>如果为了测试各种条件的组合的
情形,应该使用什么样的测试数据?请上机验证自己的结论。
(
5
)
用哪四组数据才可以把起始到终止的各条路径都覆盖 一次?如果为了测试出程序在不
同路径下的错误,应该使用什么样的测试数据?请上机验证自己的结论。
实验五
循环控制
一、目的和要求
1
、掌握在程序设计条件型循环结构时,如何正确地设定循 环条件,以及如何控制循环
的次数。
2
、了解条件型循环结构的基本测试方法。
3
、掌握如何正确地控制计数型循环结构的次数。
4
、了解对计数型循环结构进行测试的基本方法。
5
、了解在嵌套循环结构中,提高程序效率的方法。
二、实验内容与步骤
1
、
(
1
)、下面是一个计算
e
的近似值(使误差小于给定的δ)的程序。
main()
{double e=,x=,y,detax
;
11
百度文库
-
让每个人平等地提升自我
int i=1;
printf(“
n please input enter a error:”);
scanf(“%lf”,&detax);
y=1/x;
while(y>=detax)
{
x=x*I;
y=1/x;
e=e+y;
++i;
}
printf(“%”,e);
}
(
2
)
、实验步骤
(
1
)
、阅读上面的程序,写出程序所依据的计算公式。
(
2
)
、当输入的
detax
各是什么值时,能分别使程序按下面的 要求运行:
.
不进入循环;
.
只循环一次;
.
只循环两次;
.
进入死循环
(
程序将永远循环下去
)
。
为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?
(
3
)
、
原程序中
while
语句中的
y>=detax
,
分别换成
y>detax,y=detax,y
观察程序运行将会有什么变化。
假如不知道机器内的程序中的各语句实际上是什么 ,
分别输入什么样的
detax
来测试出
while
语句的循环条件 写错了。
(
4
)
、把原程序中
while
语句之 前的
y=1/x
语句去掉,观察程序的运行将会发生什么样
的变化。
假如不知道机器内的程序实际上是怎么写的,
输入什么样的
detax
就能测试出少 了上述
这条语句。
(
5
)
、若把原程序中的
++ i
换成
i++,
观察程序的运行发生了什么变化?
假如不知道这条 语句到底是怎么写的
,
输入什么样的
detax
就能测试出这条语句写错了< br>.
(
6
)
、
把原程序中的
while
结构 改写成
do
—
while
结构
,
再分别按上述的
( 2)
、
(
3
)两步进
行实验。
2
、求
5
!
main()
{
int n,t;
n=1;
t=1;
while(t<=5)
{
n=n*t;
t=t+1;
}
12
百度文库
-
让每个人平等地提升自我
printf(“%d”,n);
}
3
、求和
s=1!+2!+3!
main()
{
int n,s=0,t=1;
for(n=1;n<=3;n++)
{
t=t*n;
s=s+t;
}
printf(“%d”,s);
}
4
、求和
s=1!+3!+5!
main()
{
int s=0,t,i,j;
for(i=1;i<=3;i++)
{
t=1;
for(j=1;j<=2*i-1;j++)
t=t*j;
s=s+t;
}
printf(“%d”,s);
}
5
、求和
s= 3+33+333
main()
{
int s=0,t=3,i;
for(i=1;i<=3;i++)
{
s=s+t;
t=10*t+3;
}
printf(“%d”,s);
}
6
、有一数列:
2 /1
,
3/2
,
5/3
,
8/5
,
…求出这个数列的前
10
项之和。
main()
{
int n,t,;
float a=2,b=1,s=0;
for(n=1;n<=10;n++)
{
13
百度文库
-
让每个人平等地提升自我
s=s+a/b;
t=a;
a=a+b;
b=t;
}
printf(“%f”,s);
}
7
、打印
500
以内的
“
水仙花数
”
。
“
水仙花数
”
是一个三位数,其各位数立方和等于该数
本身。
main()
{
int i,j,k,n;
for(n=100;n<=500;n++)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if(n= =i*i*i+j*j*j+k*k*k)
printf(“ %d”,n);
}
}
8
、一个数如果恰好等于它的因子之和,这个数就称为完数。求
100< br>之内的所有完数。
main()
{
int n,s,j;
for(n=1;n<=100;n++)
{
s=0;
for(j=1;j
s=s+j;
if (s= =n)
printf(“%d”,s);
}
}
9
、计算两个数的最大公约数;
分析:首先,随机输入两个数
m< br>,
n(
默认
m>n)
;其次,
算法:使
k
为
m
除以
n
的余数,如果
m
能被
n
整除,则
k
值为
0
,
n
为这两个数的最大公
约数,否则,使
k
代替
n
,
n
代替
m
,重复以上过程,直 到
k
值为
0
。
#include
main()
{
int m,n,k,result;
printf(
scanf(
if(m>0&&n>0) /*
限定两个正整数
*/
14
百度文库
-
让每个人平等地提升自我
{
do
{
k=n%m;
if(k= =0)
result=m;
else
{
n=m;
m=k;
}
}while(k>0); /*
循环取余求出最大公因子
*/
printf(
}
else printf(
}
10
、 用牛顿迭代求方程
2x3-4x2+3x-6=0
在附近的根。
#include “”
main()
{
float x,x0,f,f1;
x=;
do
{ x0=x;
f=((2*x0-4)*x0+3)*x0-6;
f1=(6*x0-8)*x0+3;
x=x0-f/f1;
}
while(fabs(x-x0)>=1e-5);
printf(“%6.2f”,x);
}
11
、打印下列图案
*
***
*****
********
main()
{ int i,j;
for(i=1; i<=4;i++)
{for(j=1;j<= 4-i;j++)
printf(
“ ”);
for(j=1;j<=2*i-1;j++)
printf(“*”);
printf(“
n”);
15
百度文库
-
让每个人平等地提升自我
}
}
12
、判断
m
是否是素数。
程序:
#include <>
main()
{
int m,i,k;
scanf(“%d”,&m);
k=sqrt(m+1);
for(i=2;i<=k;i++)
if (m%i= =0)
break;
if(i>=k+1)
printf(“%d is a prime number
n”,m);
else
printf(“%d is not a prime
number
n”,m);
}
三、作业
1< br>、输入两个正整数
m
和
n
,求其最大公约数和最小公倍数。
2
、求
Sn=a+aa+aaa+…+aa…a
之值,其中a
是一个数字。例如:
2+22+222+2222+22222
(此时
n=5
)
, n
由键盘输入。
3
、求和
1
!
+2
!
+3
!
+4
!
+…20
!
4
、打印
100-999
之间所有的
“
水仙花数”
。
“
水仙花数
”
是一个三位数,其各位数立方和
等于 该数本身。
5
、一个数如果恰好等于它的因子之和,这个数就称为完数。求
1000
之内的所有完数。
6
、有一数列:
2/1
,3/2
,
5/3
,
8/5
,
…
求出这个数列的 前
20
项之和。
7
、用迭代法求
x= √a
。求平方根的迭公式为
xn+1=1/2(xn+a/xn)
要求前后两次求出的
x
的差的绝对值小于
10-5
8
、用牛顿迭代求方程
2x3-4x2+3x-6=0
在附近的根。
9
、打印下列图案
*
***
*****
***
*
四、分析讨论
总结一下测试条件循环结构的一般方法。
16
百度文库
-
让每个人平等地提升自我
实验六
数组
一、目的和要求
1
、掌握数组定义的规则。
2
、掌握
C
语言数组的基本用法。
3
、掌握一维数组的定义、赋值和输入输出的方法;
4
、掌握字符数组的使用;
5
、掌握与数组有关的算法(例如排序算法)
;
6
、掌握二维数组的定义、赋值和输入输出的方法;
7
、掌握字符数组的使用;
8
、掌握与数组有关的算法(例如排序算法)
。
二、实验内容与步骤
1
、编写程序,测试下列数组的定义方式是否正确
(1)
main()
{
int n;
scanf(“%d”,&n);
int a[n];
……
}
(2)
main()
{
const int n=10;
int a[n];
}
(3)
#include <>
#define M 10
main()
{
int a[M];
}
(4)
main()
{
int a[2+2*4];
17
百度文库
-
让每个人平等地提升自我
}
(5)
#include <>
#define M 2
#define N 8
main()
{ int a[M+N];
}
通过这一实验
,
可以说明什么问题
?
2< br>、运行下面的
C
程序
,
根据运行结果
,
可以说明什么
?
main( )
{ int num[5]={1,2,3,4,5};
inti i;
for(i=0;i<=5;i++)
printf(“%d”,num[i]);
}
3
、操作符
&
用以求一个变量的地址,
这在函数
scanf
中已经使用过了。现在要你设计一个程
序,
返回一个
3 * 5
的 二维数组各元素的地址
,
并由此说明二维数组中各元素是按什么顺序存
诸的。
4
、
1983
年
,
在
ACM
图林奖颁奖大 会上
,
杰出的计算机科学家
,UNIX
的鼻祖
,C
语言的创 始人
之一
,
图林大奖得主
,Ken Thompson
上台的第一 句话是
:
“我是一个程序员
,
在我的
1040
表上
,
我自豪地写上了我的职业。
作为一个程序员,
我的工作就是写程序,
今天我 将向大家提供一
个我曾经写过的最精练的程序。
”这个程序如下:
char s []={
‘
t’
,
‘0’
,
‘
n’
,
‘}’
,
‘;’
,
‘
n’
,
‘
n’
,
‘/’
,
‘*’
,
‘
n’
,
/* (213 lines deleted)*/
0
}
;
/*
* The string is a
* representation of the body
18
百度文库
-
让每个人平等地提升自我
* of this program from ‘0’
* to the end
*/
main( )
{ int i;
pri
ntf(“char
ts[]={
” };
for (i=0;s[i];i++)
printf(“
t%d,
n”,s[i]);
printf(“%s”,s);
}
请上机运行这个程序
,
指出它的功能和运行结果。
5
、在 键盘上输入
N
个整数,试编制程序使该数组中的数按照从大到小的次序排列。
分析:
C
中数组长度必须是确定大小,即指定
N
的值。排序的方法有多种, 我们取出其中
两种作为参考。
方法一:起泡排序
从第一个数开始 依次对相邻两数进行比较,
如次序对则不做任何操作;
如次序不对则使这两
个数交换位 置。第一遍的(
N-1
)次比较后,最大的数已放在最后,第二遍只需考虑(
N-1< br>)
个数,以此类推直到第(
N-1
)遍比较后就可以完成排序。
源程序如下:
#define N 10
#include
main()
{
int a[N],i,j,temp;
printf(
for(i=0;i
for(i=0;i
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
printf(
for(i=0;i
}
方法二:选择排序
首先找出值最小的数,
然后把这个数与第一个数交换,< br>这样值最小的数就放到了第一个位置;
然后,
在从剩下的数中找值最小的,
把它 和第二个数互换,
使得第二小的数放在第二个位置
19
百度文库
-
让每个人平等地提升自我
上。以此类推,直到所有的值从小到大的顺序排列为止。
#include
#define N 10
main()
{
int a[N],i,j,r,temp;
printf(
for(i=0;i
for(i=0;i
for(j=i+1;j
if(r!=i)
{
temp=a[r];
a[r]=a[i];
a[i]=temp;
}
}
printf(
for(i=0;i
printf(
}
6
、
青年歌手参加歌曲 大奖赛,
有
10
个评委对她的进行打分,
试编程求这位选手的平均得分
(去掉一个最高分和一个最低分)
。
分析:这道题的核心是排序。将评委所打的< br>10
个分数利用数组按增序(或降序)排列,计
算数组中除第一个和最后一个分数以外的 数的平均分,其中排序部分这里用选择法实现。
main()
{int i,j,min;
float temp,ave=0;
float a[11]; printf(
输入评委所打的分数:
n
for(i=1;i<=10;i++)
scanf(
for(i=1;i<=9;i++)
{min=i;
for(j=i+1;j<=10;j++)
if(a[min]>a[j])
min=j;
temp=a[i];
a[i]=a[min];
20
百度文库
-
让每个人平等地提升自我
a[min]=temp;
}
for(i=2;i<=9;i++) /*
注意
i
值的变化范围
*/
ave=ave+a[i];
printf(
选手所得最后分数:
%6.1f
printf(
}
7
、输入一串字符,计算其中空格的个数。
#include <>
main( )
{char c[30];
int i,sum=0;
gets(c);
for(i=0;i
sum=sum+1;
printf(
空格数为:
%d n
}
8
、有一个3×
4
的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。
#define M 3
#define N 4
main( )
{int max,i,j,r,c;
static int a[M][N]={{123 ,94,-10,218},{3,9,10,-83},{45,16,44,-99}};
max=a[0][0];
for(i=0;i
{max= a[i][j];
r=i;
c=j;
}
printf(“max=%d , row =%d , colum=%d
n”,max , r, c);
}
9
、打印以下图案:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
main()
{char a[5]={' * ' , ' * ' , ' * ' , ' * ' , ' * '};
int i,j,k;
char space=' ';
21
试管什么时候排精-试管测试变化
试管什么时候排精-试管测试变化
试管什么时候排精-试管测试变化
试管什么时候排精-试管测试变化
试管什么时候排精-试管测试变化
试管什么时候排精-试管测试变化
试管什么时候排精-试管测试变化
试管什么时候排精-试管测试变化
本文更新与2021-02-02 01:43,由作者提供,不代表本网站立场,转载请注明出处:http://www.xapfxb.com/yuer/441298.html
-
上一篇:图书管理系统测试计划书
下一篇:《糖类的种类和功能》教学案3