关键词不能为空

当前您在: 首页 > 试管婴儿 >

试管移植100天C语言公共课实验指导书

作者:陕西保健网
来源:http://www.xapfxb.com/yuer
更新日期:2021-02-02 01:43

试管什么时候排精-试管测试变化

2021年2月2日发(作者:上海试管医院来搜乐仁东生)
百度文库

-
让每个人平等地提升自我





云南农业大学
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




(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)-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=2x-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>=10
写一程序,输入
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;jif (n%j= =0)
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;iscanf(
for(i=0;ifor(j=0;j{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
printf(
for(i=0;iprintf(
}
方法二:选择排序

首先找出值最小的数,
然后把这个数与第一个数交换,< br>这样值最小的数就放到了第一个位置;
然后,
在从剩下的数中找值最小的,
把它 和第二个数互换,
使得第二小的数放在第二个位置
19
百度文库

-
让每个人平等地提升自我

上。以此类推,直到所有的值从小到大的顺序排列为止。

#include
#define N 10
main()
{
int a[N],i,j,r,temp;
printf(
for(i=0;iscanf(
for(i=0;i{ r=i;
for(j=i+1;jif(a[j]r=j;
if(r!=i)
{
temp=a[r];
a[r]=a[i];
a[i]=temp;
}
}
printf(
for(i=0;iprintf(
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;iif(c[i]==' ')
sum=sum+1;
printf(
空格数为:
%d n
}
8
、有一个
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;ifor(j=0;jif ( a[i][j]>max)
{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

C语言公共课实验指导书的相关文章