编程练习——c语言编程题精选(11-20题)
上一篇 / 下一篇 2009-03-02 23:07:43 / 个人分类:编程基础
4y@^M)F011、编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。51Testing软件测试网z t!p
?7g-^"t
主函数:①输入任意10个正整数给数组;②调用SUB1对数组进行排序;③从键盘输入一个正整数,调用SUB2将其插入该数组。51Testing软件测试网"m)F(e\.zhI
#include <stdio.h>
m0eW3jB)`h{9@7Z0#include <stdlib.h>51Testing软件测试网[U
d/a8J
#include <time.h>
ZhjCBl_[ n0#include <math.h>51Testing软件测试网,Ks:c$mc
int array[128]={0};51Testing软件测试网3`]4a;m1r
~W$n
int SUB1()
\!b!cf(X+z4k;U0{51Testing软件测试网!D6j.i }x
P
int i,j;
y2l&S2f4]p1u0 int temp;51Testing软件测试网/G6i1[c/Q/|0Ju
L1_
for(j=9;j>0;j--)51Testing软件测试网Y:d;la X#nT:X
{
;zGi6N#f&i5k#Fl{0 for(i=0;i<j;i++)51Testing软件测试网g't6a4X#l
if(array[i]>array[i+1])
$j9L$wFk$s
Sw c0 {51Testing软件测试网4R n2O]`6Zoj+_ p
temp=array[i];51Testing软件测试网#S/Fp;t M!X/W
array[i]=array[i+1];
\ k6@!x){{#P/i
Q[i%B0 array[i+1]=temp;51Testing软件测试网cs+^ E*dL`q
}51Testing软件测试网4_
`7{kY&hn:N1tA
}
,MCj+MyEt0 return 0;
8kjLI4W(W5Bp0}51Testing软件测试网(b
t%H){A0^7bX
int SUB2(int integer)51Testing软件测试网uNt%r`
{
n'X]b4{D0 int i,j;
p&BU!TT(E"R @2mh0 for(i=0;i<10;i++)51Testing软件测试网[/m6Cs/A'~"SNP
{51Testing软件测试网X]dd)Z#?w
if(array[i]>integer)
J-y%u:i"B
t,P$PW/y0 {
jY1i-\{'j0 for(j=10;j>i;j--)51Testing软件测试网5O1n4m,rB/M
array[j]=array[j-1];51Testing软件测试网f#rZ7\/N
V2K[
array[i]=integer;
k+N9lKf)WZz0 break;
#@0]X]:W9r5`[8K0 }51Testing软件测试网!B9u4b2[#Go{
}
W`XB8W5Rh/O0 return 0;
E?&Ej(ZluY
LCb0}
2_^*GHb0void main()51Testing软件测试网0R5O\K3U$oA` q.P3M
{
x-{Q+].o,f0 int i,integer;51Testing软件测试网u-uq W3q @#L(O\
printf("请输入任意10个正整数\n");
cw)eT2P
Dhs0 for(i=0;i<10;i++)51Testing软件测试网q[;~HJ
scanf("%d",&array[i]);51Testing软件测试网a"XgQt/v*C
if(SUB1()==0)51Testing软件测试网
N5W/H6Z|N
printf("排序完成\n");51Testing软件测试网-E[%sZ3s
printf("请输入一个正整数:");51Testing软件测试网@-o2C2J`6Vs"B
scanf("%d",&integer);51Testing软件测试网 ch `-aNv%e.m
if(SUB2(integer)==0)
7i#ao cm_Mh0 printf("插入数组成功:");51Testing软件测试网8ynm$?8f;D
for(i=0;i<11;i++)
/QI&?-hQoM\0 printf("%d ",array[i]);
}2Pr
Y/`1p8ZU0 printf("\n");51Testing软件测试网@oe7[-y7i|{[
}51Testing软件测试网
}9y0Ua.A4{#o
;ZD
P~&n0de012、编写函数:(1)用选择法将数组排成降序的函数----SUB1;(2)用折半查找法查找某数是否在给定的数组当中的函数----SUB2。
)u Kbn
e"^0主函数:输入任意10个正整数给数组,调用SUB1对数组进行排序,从键盘输入一个正整数,调用SUB2在数组中进行查找,找到后输出“OK”,没有找到则输出“NO FOUND!”。
ELyww
i0#include <stdio.h>
R]"N"z*XN0#include <stdlib.h>
+T:m`8T&v
A(g/}0#include <time.h>51Testing软件测试网QIbuF0@(W8i
#include <math.h>51Testing软件测试网1w;B2G.o.g+D3H
int array[128]={0};51Testing软件测试网{tJ$Q+pl6f
int SUB1()51Testing软件测试网,E~$V&x)O
{
dzc D+P1Z-?0 int i,j,temp;
X_5f
Hfq&h0 for(i=0;i<9;i++)
U9l
NW9rI0 {51Testing软件测试网s,gg*X]&\&V
for(j=i+1;j<10;j++)
5@Z!C-h~0 if(array[i]<array[j])51Testing软件测试网h qr,K|Em#vR
{51Testing软件测试网4Hl!^_#?&VG
w
temp=array[i];
9d+K1K0t.Y_
@0 array[i]=array[j];
k
@O+y#T0aq[V0 array[j]=temp;51Testing软件测试网i,S0Kz,I` {'~
}
+P
n&y%U{ D ]0 }
I4tq+X%R\0 return 0;51Testing软件测试网'@;Q#p
?T]'}`}+Y
}51Testing软件测试网/zDLoS
WM0v}
f$[+]A Tq0@0int SUB2(int integer)51Testing软件测试网\%OZA"T-\4Le
{51Testing软件测试网'I
m%]c4nVW
int head,tail,middle;51Testing软件测试网)C;z K\zK0k w0o%~i
head=0;
bt^S5eb5t
U`
n0 tail=9;
H,?h R2t+@C*`+eI0 middle=(head+tail)/2;
N\ gL~DA)b0 while(tail>=head)51Testing软件测试网
lT0Hs7~;^4[._#U
{
:h3@2V8~
Qpe%Ib0 if(integer>array[middle])
g/r"Q {KWW0 tail=middle-1;
f,`1Dae,M}0 else if(integer<array[middle])51Testing软件测试网h&["[fY'J3`C{
head=middle+1;51Testing软件测试网O2X)UU7Xd\I
else
B
FWp-a^ fqk0 return 1;51Testing软件测试网Tz]6f@Dj(d}#z
middle=(head+tail)/2;
*Hb(J Cd^W e0 }
7EU z(j'N|^0 return 0;
"ceU-^mWz0}
?(@FC~ @/i0void main()
r+mtS \0{
?/WNW/}S
o:D;s fH0 int i;
[Y-Ec+E7BMG1?t0 int integer;51Testing软件测试网*{
?c!D
W Q
printf("请输入10个正整数\n");51Testing软件测试网4Y$T e+~w$?Yh m
for(i=0;i<10;i++)
H|;n&n+B%Y!JR
F0 scanf("%d",&array[i]);51Testing软件测试网:C3t"o*P)T
if(SUB1()==0)
%is
[2B2p
S0 printf("排序成功\n");51Testing软件测试网+X8~
k FR/l0}s-Z
printf("请输入一个正整数:");51Testing软件测试网C5Ldja6t9}i
scanf("%d",&integer);
*K.N!FP`0 if(SUB2(integer)==1)
*[Tui7NV(e0 printf("OK\n");