《二级C语言上机一百题.pdf》由会员分享,可在线阅读,更多相关《二级C语言上机一百题.pdf(207页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、你好,计算机二级考试上机考试的题目出于这100道题,改变的只是某些数据。题型是不会改变的。建议考试过程中一定要仔细,希望你能考过二级。上 机 题 库第一部分填空题注意:源程序存放在考生文件夹下的BL AN K 1.C中。1 .不得增行或删行,也不得更改程序的结构!2 .请在程序下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。:力 康 排;,戢煞的功能是:计算出带有头接点的单向链表中各结点数据域之和作为函数值返回。#i n cl u d e#i n cl u d e#d e f i n et y p e d e fNs t r u ct8l i s t i n t d a t a;s
2、 t r u ct l i s t*n e x t;S L I S T;S L I S T *cr e a t l i s t(i n t *);v o i d o u t l i s t(S L I S T *);i n t f u n(S L I S T *h)S L I S T *p;p=h-n e x t;w h i l e(p)i n t s=0;s+=p-_ _ _ 1 _ _ _;d a t ap=p-_ _ _ 2 _ _ _;n e x t)r e t u r n s;m a i n()S L I S T *h e a d;i n t a N =1 2,8 7,4 5,32,
3、9 1,1 6,2 0,4 8;h e a d=cr e a t l i s t(a);o u t l i s t(h e a d);p r i n t f(n s u m=%d n”,f u n(_ _ _ 3_ _ _);h e a d)S L I S T *cr e a t l i s t(i n t a)S L I S T *h,*p,*q;i n t i;h=p=(S L I S T *)m a l l o c(s i ze o f(S L I S T);f o r(i=0;i d a t a=a i ;p-n e x t=q;p=q;)p-n e x t=0;r e t u r n
4、 h;)v o i d o u t l i s t(S L I S T *h)S L I S T *p;p=h-n e x t;i f (p=N U L L)p r i n t f(z,T h e l i s t i s N U L L!n );e l s e p r i n t f (z,n H e a d );d o p r i n t f (-%d”,p-d a t a);p=p-n e x t;w h i l e(p!=N U L L);p r i n t f (-En d n );)2.给定程序中,函数F U N的功能是:求出形参S S所指字符串数组中最长字符串的长度,其余字符串左边
5、用字符*补齐,使其与最长的字符串等长。字符串数组中工有M个字符串,且串长 N。S i n cl u d eS i n cl u d e#d e f i n e#d e f i n eM 5N 2 0v o i d f u n (ch a r (*s s)N )i n t i,j,k=0,n,m,l e n;f o r(i=0;i n)n=l e n;k=_ _ _ 1 _ _ _;i)f o r(i=0;i=0;j)l e ns s i m =s s i j ;f o r(j=0;j n-l e n;j+)s s i j =3;,*m a i n()ch a r s M N =s h a n
6、g h a i ,g u a n g zh o u ,b e i j i n g ,t i a n j i n g ,cch o n g q i n g ;i n t i;p r i n t f (,z n T h e o r i g i n a l s t r i n g s a r e :n );f o r (i=0;i M;i+)p r i n t f (,%s n,/,s s i );p r i n t f(n);f u n(s s);p r i n t f(n T h e r e s u l t:n );f o r(i=0;i M;i+)p r i n t f(s n”,s s i
7、);3.人员记录由编号和出生年,月,日组成,N名人员的数据已在主函数中存入结构体数组s t d且编号唯一。函 数fun的功能是;找出指定编号人员的数据,作为函数值返回,有主函数输出,若指定编号不存在,返回数据中的编号为空串。#i n cl u d et t i n cl u d e#d e f i n et y p e d e f ch a ri n tS T U;N 8s t r u ctn u m 1 0 ;y e a r,m o n t h,d a y ;1 _ _ _f u n (S T U *s t d,ch a r *n u m)S T U i n t i;S T U a=,9 9
8、 9 9,9 9,9 9;f o r (i=0;i N;i+)i f (strc mp(2,n u m)=0 )s t d i .n u mr e t u r n (_ _ _3);s t d i r e t u r n a;)m a i n()S T U s t d N =1 1 1 1 1 1”,1 9 8 4,2,1 5,2 2 2 2 2 2”,1 9 8 3,9,2 1,333333,1 9 8 4,9,1,“4 4 4 4 4 4,1 9 8 3,7,1 5,“5 5 5 5 5 5,1 9 8 4,9,2 8,6 6 6 6 6 6,1 9 8 3,1 1,1 5,S T U p
9、;“7 7 7 7 7 7,1 9 8 3,6,2 2,“8 8 8 8 8 8,1 9 8 4,8,1 9;ch a r n 1 0 =6 6 6 6 6 6”;p=f u n(s t d,n);i f (p.n u m 0 =0)p r i n t f (z,n N o t f o u n d !n );e l s e p r i n t f (,z n S u cce e d !n );p r i n t f C%s%d-%d-%d nz/,p.n u m,p.y e a r,p.m o n t h,p.d a y);)4.给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域
10、递增有序链接。函数f u n 的功能:删除链表中数据域值相同的结点,使之保留一个。#i n cl u d e#i n cl u d e d e f i n e N 8t y p e d e f s t r u ct l i s t i n t d a t a;s t r u ct l i s t *n e x t;S L I S T;v o i d f u n(S L I S T *h)S L I S T *p,*q;p=h-n e x t;i f (p!=N U L L)q=p-n e x t;w h i l e(q!=N U L L)i f (p-d a t a=q-d a t a)p-n
11、 e x t=q-n e x t;f r e e (_ _ _ 1 _ _ _);qq=p-_ _ _ 2 _ _ _;n e x te l s e p=q;q=q-_ _ _ 3_ _ _;n e x t)S L I S T *cr e a t l i s t(i n t *a)S L I S T *h,*p,*q;i n t i;h=p=(S L I S T *)m a l l o c(s i ze o f(S L I S T);f o r(i=0;K N;i+)q=(S L I S T *)m a l l o c(s i ze o f(S L I S T);q-d a t a=a i ;
12、p-n e x t=q;p=q;)p-n e x t=0;r e t u r n h;)v o i d o u t l i s t(S L I S T *h)S L I S T *p;p=h-n e x t;i f (p=N U L L)p r i n t f (n T h e l i s t i s N U L L!n );e l s e p r i n t f(n H e a d );d o p r i n t f (/-%d/z,p-d a t a);p=p-n e x t;w h i l e (p!=N U L L);p r i n t f(-En d n);m a i n()S L
13、I S T *h e a d;i n t a N =l,2,2,3,4,4,4,5);h e a d=cr e a t l i s t(a);p r i n t f(n T h e l i s t b e f o r e d e l e t i n g :n );o u t l i s t(h e a d);f u n (h e a d);p r i n t f (z,n T h e l i s t a f t e r d e l e t i n g :n );o u t l i s t (h e a d);5 .函 数f u n的 功 能 是 进 行 数 字 字 符 转 换。若 形 参c h
14、中是数字字符F 9 ,贝 0 转 换 成 9 ,1 转 换 成 8 ,2 转 换 成 7 9 转 换 成 0 ;若 是 其 他 字 符 则 保 持 不 变;并 将 转 换 后的结果作为函数值返回.t t inc lu de _1_fu n(c ha r c h)c ha rrif(c h=0&-2)c h=9,ret u rn 9-(c h-_ 3_);O ret u rn c h;ma in()c ha r c l,c 2;print f(nT he resu lt :n);c l=,2;c 2=fu n(c l);print f(/zc l=%c c 2=%c n”,c l,c 2);c
15、l=,8;c 2=fu n(c l);print f(,c l=%c c 2=%c n”,c l,c 2);c l=,a;c 2=fu n(c l);print f(c l=%c c 2=%c n”,c l,c 2);)6.给 定 程 序 中,函 数fu n的 功 能 是:对 形 参ss所 指 字 符 串 数 组 中 的M字 符串按长度由短到长进 行 排 序。#inc lu de4inc lu det t definet t defineS S所 指 字 符 串 数 组 中 共 有M个 字 符 串,且 串 长Nvoid fu n(c ha r int i,j,520(*ss)N)k,n M;c
16、 ha r t N;for(i=0;iM;i+)n i=st rlen(ss i);for(i=0;iM-l;i+)k=i;MNfor(j=_1_;jn j)k=_ 2 _;jif(k!=i)st rc py(t,ss i);st rc py(ss i,ss k);st rc py (ss k,_3_);tn k=n i;)ma in()c ha r s M N =sha ngha i,gu a ngz hou,b eijing,t ia njing,c c hongqing;int i;print f(X nT he origina l st rings a re:n);for(i=0;iM
17、;i+)print f(%s n”,ss i);print f(n);fu n(ss);print f(nT he resu lt :n);for(i=0;iM;i+)print f(%s n”,ss i);7.函 数F U N的功能是:从三个形参a,b,c中找出中间的哪个数,作为函数值返回。例如,当a=3,b=5,c=4 时,中数为 4。t t inc lu de int fu n(int a,int b,int c)int t;t =(a b)?(b c?b :(a c?c:1):(a c)?2 :(b c)?c:3);ret u rn t;1.a 2.a 3.bma in()int a
18、l=3,a 2=5,a 3=4,r;r=fu n(a l,a 2,a 3);print f(nT he middle nu mb er is:%d n,r);8.给定程序中,函数F U N的功能是:统计出带有头结点的单向链表中接点的个数,存放在形参N所指的存储单元中。inc lu de t t inc lu de t t define N 8t y pedef st ru c t list int da t a;st ru c t list *next;S L I S T;S L I S T *c rea t list(int *a);void ou t list(S L I S T *);v
19、oid fu n(S L I S T *h,int *n)S L I S T *p;*n=1;0p=h-next;whi le(p)(*n)+;p=2;p-next)ma i n()S LIS T*hea d;i nt a N=12,87,45,32,91,16,20,48,num;hea d=crea tli st(a);outli st(hea d);fun(h e ad,3);&numpri ntf(/znnumber=%d n/,,num);)S LIS T*crea tli st(i nt a )S LIS T*h,*p,*q;i nt i;h=p=(S LIS T*)ma lloc
20、(si zeof(S LIS T);for(i=0;i d a ta=a i;p-next=q;p=q;)p-next=0;return h;voi d outli st(S LIS T*h)S LIS T*p;p=h-next;i f(p=NULL)pri ntf(z,The li st i s NULL!n);else pri ntf(z,nHea d );d o pri ntf(一%d,p-d a ta);p=p-next;whi le(p!=NULL);pri ntf(-End n);)9.给定程序的功能是:调用函数FUN将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值
21、为1,失败时返回值为0 o 在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名房子变量sfna me中,目标文件名放在变量tfna me中。#i nclud e#i nclud e i nt fun(cha r*source,cha r*ta rget)FILE*fs,*ft;cha r ch;i f(fs=fopen(source,_1_)=NULL)rreturn 0;i f(ft=fopen(ta rget,w)=NULL)return 0;pri ntf(nThe d a ta i n fi le:n);ch=fgetc(fs);whi le(!feof(_2_)fs put
22、cha r(ch);fputc(ch,_3_);ftch=fgetc(fs);)fclose(fs);fclose(ft);pri ntf(nn);return 1;)ma i n()cha r sfna me 20=myfi lel”,tfna me 20=myfi le2;FILE*myf;i nt i;cha r c;myf=fopen(sfna me,w);pri ntf(nThe ori gi na l d a ta :n);for(i=l;i 30;i+)c=A+ra nd()%25;fpri ntf(myf,c,c);pri ntf c);fclose(myf);pri ntf(
23、nn);i f(fun(sfna me,tfna me)pri ntf(S ucceed!”);else pri ntf(Fa i l!);1 0.给定程序中,函数F U N的功能是:在形参S所指字符串中的每个数字字符之后插入一个*。例如,形参S所指字符串为:d ef35 a d h3kjsd f7.执行结果为:d ef3*5*a d h3*kjsd f7*#i nclud e voi d fun(cha r*s)i nt i,j,n;for(i=0;s i!八O;i+)i f(s i =1 s i=9)&n=0;whi le(s i+l+n!=_2_)n+;0for(j=i+n+l;j i;
24、j)s j+l=_3_;s js j+l=,*;i=i+l;)ma i n()cha r s 80=ba 3a 5 4cd 23a”;pri ntf(nThe ori gi na l stri ng i s:%sn,s);fu n(s);print f(nT he resu lt is:%s n”,s);11.给定程序中,函数F U N的功能是:将形参S T D所指结构体数组中年龄最大者的数据作为函数值返回,并 将ma in函数输出。t t inc lu de t y pedef st ru c t c ha r na me 10;int a ge;S T D;S T D fu n(S T D
25、 st d,int n)S T D ma x;int i;m ax=1;st d 0for(i=l;in;i+)if(ma x.a ge_2_)ma x=st d i;st d i.a geret u rn ma x;)ma in()S T D st d 5=a a a”,17,b b b”,16,c c c”,18,ddd”,17,eee”,15 ;S T D ma x;ma x=fu n(st d,5);print f(nT he resu lt:n);print f(nN a me:%s,A ge:%d n”,_3_ ,ma x.a ge);ma x.na me)12.给定程序中,函数f
26、 u n功能是:在带有头结点的单向链表中,查找数据域中为C H的结点,找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为CH的结点,函数返回0值。inc lu de#inc lu de#definet y pedefNst ru c t8list int da t a;st ru c t list S L I S T;*next;S L I S T *c rea t list(c ha r*);void ou t list(S L I S Tint fu n(S L I S T *h,S L I S T *p;p=h-next;*);c ha r c h)int n=0;while(
27、p!=_1_)n+;N U L Li f(p-d a ta=ch)return _2_;nelse p=p-next;)return 0;)ma i n()S LIS T*hea d;i nt k;cha r ch;cha r a LNJ =m,p,g,a,w,x,r,d);hea d=crea tli st(a);outli st(hea d);pri ntf(Enter a letter:,z);s c an f&c h);k=fun(_3_);hea d,chi f(k=0)pri ntf(,znNot found !nz,);else pri ntf(The sequence numb
28、er i s:%d n”,k);)S LIS T*crea tli st(cha r*a)S LIS T*h,*p,*q;i nt i;h=p=(S LIS T*)ma lloc(si zeof(S LIS T);for(i=0;i d a ta=a i;p-next=q;p=q;)p-next=0;return h;)voi d outli st(S LIS T*h)S LIS T*p;p=h-next;i f(p=NULL)pri ntf(,znThe li st i s NULL!n);else pri ntf(nHea d);d o pri ntf(z,-%c,p-d a ta);p=
29、p-next;whi le(p!=NULL);pri ntf(-End n);)13.给定程序的功能是:从键盘输入若干行文本(每行不超过8 0 个字符),写到文件myfi le4.txt中,用-1 作为字符串输入结素的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数rea d T e x t 和 wri te Text实现.#i nclud e#i nclud e#i nclud e voi d Wri teText(FILE*);voi d Rea d Text(FILE*);ma i n()FILE*fp;if(fp=fopen(,zmy file4,t xt ,w)二
30、二 N U L L)print f C open fa il!nz/);exit (0);W rit eT ext(fp);fc lose(fp);if(fp=fopen(z,my file4.t xt,r)=N U L L)print f C open fa il!nz/);exit(0);Rea dT ext(fp);fc lose(fp);)void W rit eT ext (F I L E _1_)*fw c ha r st r 81;print f(X nE nt er st ring wit h-1 t o end:n);get s(st r);while(st rc mp(st
31、 r,-1)!=0)fpu t s(_2_,fw);fpu t s(n,fw);st rget s(st r);)void Rea dT ext(F I L E *fr)c ha r st r 81;print f(nRea d file a nd ou t pu t t o sc reen:n);fget s(st r,81,fr);while(!feof(fr)print f _3_);st rfget s(st r,81,fr);)14.给定程序中,函数F U N 的功能是:有N X N矩阵,根据给定的m(m=N)值,将每个元素中的值均右移m 个位置,左边置为0 o 例如,N=3,m=2
32、,有下列矩阵1 2 3 0 0 14 5 6程序执行结果为 0 0 47 8 9 0 0 7t t inc lu de#define N 4void fu n(int (*t)N,int m)int i,j;for(i=0;i=0;j-)t i j+_2_=t i j;mfor(j=0;j_3_;j+)mt i j=0;)ma i n()i nt t N=21,12,13,24,25,16,47,38,29,11,32,5 4,42,21,33,10),i,j,m;pri ntf(nThe ori gi na l a rra y:n”);for(i=0;i N;i+)for(j=0;jN;j+
33、)pri ntf(缎2d t i j);pri ntf(n);)pri ntf(*Input m(m=%d):,N);s c an f&m);fun(t,m);pri ntf(nThe result i s:n);for(i=0;i N;i+)for(j=0;jN;j+)pri ntf(*%2d *,t i j);pri ntf(n);)15.函数FUN的功能是;把形参a 所指数组中的最大值放杂a 0中,接着求出a 所指数组中的最小值防在a l中;再把a 所指数组元素中的次大值a 2中,把a 所指数组的数据最初排列为:1,4,2,3,9,6,5,8,7,则按规则移动后,数据排列为:9,1,8,
34、2,7,3,6,4,5。形 参 n中存放a 所指数组中数据的个数。i nclud e#d efi ne N 9voi d fun(i nt _1_,i nt n)*a i nt i,j,ma x,mi n,px,pn,t;for(i=0;i n-l;i+=2)2 ma x=mi n=a i;px=pn=i;for(j=_ 3 _;jn;j+)i i f(ma x a j)mi n=a j;pn=j;)i f(px!=i)t=a i;a i =ma x;a px=t;i f(pn=i)pn=px;)i f(pn!=i+1)t=a i+l;a i+l=mi n;a pn=t;)ma in()int
35、 b N =l,4,2,3,9,6,5,8,7,i;print f(nT he origina l da t a :n);for(i=0;iN;i+)print f(%4d,b i);print f(n);fu n(b,N);print f(nT he da t a a ft er moving:n);for(i=0;iN;i+)print f(z,%4d ,b i);print f(n);16.给定程序中,函数F U N的功能是;求S S所指字符串数组中长度最厂的字符串所在的行下标,作为函数值返回,并把其串长防在形参n所指变量中。S S所指字符串数组中共有M个字符串,且串长 N.#in cl
36、 u de t t de f in e M 5#de f in e N 20in t f u n (ch ar(*s s)_ _ _ 1_ _ _ ,in t *n)N in t i,k=0,l e n=0;f o r(i=0;i*n)*n=3;1 e nk=i;)re t u rn (k);)m ain()ch ar s s M N=s h an g h ai,g u an g z h o u,be ijin g,t ian jin g,cch o n g q in g ;in t n,k,i;p rin t f (,z n T h e o rig in al s t rin g s are
37、 :n);f o r(i=0;iM;i+)p u t s(s s i);k=f u n(s s,&n);p rin t f (/z n T h e l e n g t h o f l o n g e s t s t rin g is :%d n,n);p rin t f (n T h e l o n g e s t s t rin g is :%s n,z,s s k);17.函 数F UN的功能是:逆置数组元素中的值。例如:若a所指数组中的数据依次为:1,2,3,4,5,6,7,8,9,则逆置后依次为:9,8,7。6,5,4,3,2,1。形 参n给出数组中数据的个数。#in cl u de
38、v o id f u n(in t a ,in t n)in t i,t;f o r(i=0;i_ _ _ 1_ _ _;i+)n/2(t=a i:a i =_ _ _ 2_ _ _ a n-l-i:a n-l-i=_ _ _ 3_ _ _;t)m ain()in t b 9 =1,2,3,4,5,6,7,8,9,i;p rin t f(n T h e o rig in al dat a:n);f o r(i=0;i9;i+)p rin t f (%4d,b i);p rin t f(n);f u n (b,9);p rin t f(n T h e dat a af t e r in v e
39、rt :n);f o r(i=0;i9;i+)p rin t f (/%4d,b i);p rin t f (n);)18.给定程序中,函数FU N的功能是:在形参S所指字符串中寻找与参数C 相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。例如,S 所指字符串:baacda,c中的字符为:a,执行后S 所指字符串为:baaaacdaat t in cl u de v o id f u n(ch ar*s,ch ar c)in t i,j,n;/*f o u n d*/f o r(i=0;s i !=_ _ _ 1_ _ _;i+)0if (s i=c)(/*f
40、 o u n d*/n=2;0w h il e(s i+l+n !=0,)n+;f o r(j=i+n+l;ji;j-)s j+l =s j;/*f o u n d*/s j+l =s _ _ _ 3_ _ _ ;ii=i+l;)m ain()ch ar s 80=baacda”,c;p rin t f (/z n T h e s t rin g:%s n”,s);p rin t f(n l n p u t a ch aract e r:;s can f(%c,&c);f u n(s,c);p rin t f(n T h e re s u l t is:%s n”,s);19.函数FU N的功
41、能是:把形参a所指数组总的奇数原顺序依次存放到a 0,a l La 2.中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a 所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后,a 所指数组中数据为:9、1、3、5、7,返回值为5Of t in cl u de#de f in e N 9in t f u n(in t a ,in t n)in t i,j;j=0;f o r(i=0;in;i+)if (a i%2=1)1(a j =a i;_ _ _ 2_ _ _;j+)re t u rn _ _ _ 3_ _ _;jm ain()in t b N =9,1,4,
42、2,3,6,5,8,7,i,n;p rin t f(n T h e o rig in al dat a:n);f o r(i=0;iN;i+)p rin t f (z/%4d”,b i);p rin t f(n);n =f u n (b,N);p rin t f(*n T h e n u m be r o f o dd:%d n”,n);p rin t f(n T h e o dd n u m be r:n);f o r(i=0;in;i+)p rin t f(%4d,b i);p rin t f(n);20.给定程序的功能是:调用函数FU N将指定源文件中的内容复制到指定的目标文件中,复制成
43、功时函数返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名防在变量s f n am e 中,目标文件名放在变量t f n am e 中。in cl u de in cl u de in t f u n(ch ar*s o u rce,ch ar*t arg e t)FILE*f s,*f t;ch ar ch;if(f s=f o p e n(s o u rce,_ _ _ 1_ _ _)=NU LL)rre t u rn 0;if(f t=f o p e n(t arg e t,w)=NU LL)re t u rn 0;pri ntf(nThe d a ta i n f
44、i le:n);ch=fgetc(fs);whi le(!feof(_2_)fs putcha r(ch);fputc(ch,_3_);ftch=fgetc(fs);fclose(fs);fclose(ft);pri ntf(nn);return 1;)ma i n()cha r sfna me 20=myfi lel”,tfna me 20=,myfi le2,z;FILE*myf;i nt i;cha r c;myf=fopen(sfna me,w);pri ntf(nThe ori gi na l d a ta :n);for(i=l;i 30;i+)c-A+ra nd()%25;fpr
45、i ntf(myf,%c”,c);pri ntf c);fclose(myf);pri ntf(nn);i f(fun(sfna me,tfna me)pri ntf(S ucceed!);else pri ntf(Fa i l!);21.函数FUN的功能是:计算直 到 巳 10-6.若x=2.5,函数值为:12.182494.ntti nclud e S i nclud e d ouble fun(d ouble x)d ouble f,t;i nt n;f=1.0+_1_;xt=X;n=1;d o n+;t*=x/_2_;nf+=_1_;t whi le(fa bs(t)=le-6);re
46、turn f;m ain()do u bl e x,y;x=2.5;y =f u n(x);p rin t f(n T h e re s u l t is :n);p rin t f (x f-l Z.6f y=%T 2.6f n”,x,y);22.给定程序中,函数FU N的功能是:统计形参S所指字符串中数字字符出现的次数,并存放在 形 参 t 所 指 的 变 量 中 最 后 在 函 数 中 输 出。例 如,形 参 所 指 的 字 符 串为:abcde f 35adg h 3kjs df 7.输出结果为:4 in cl u de v o id f u n(ch ar*s,in t *t)in
47、t i,n;n=0;f o r(i=0;1 !=NU LL;i+)s iif (s i=,0&s i=_ _ 2_ _ _)n+;,9,*t=_ _ _ 3_ _ _;n)m ain()ch ar s 80=abcde f 35adg h 3kjs df 7”;in t t;p rin t f(n T h e o rig in al s t rin g is :%s n,s);f u n(s,&t);p rin t f(n T h e re s u l t is :%d n,t);)23.用筛选法可得到2-n(n 10000)之间的所有素数,方法是:首先从素数2 开始,将所有2 的倍数的数从数
48、表中删去(把数表中相应位置的值置成0)接着从数表中找下一个非0 数,并从数表中找下一个非0 数,并从数表中删去该书的所有倍数:依次类推,直到所找的下一个数等于n为止。这样会得到一个序列3,5,7,11,13,17,19,23,函数FU N用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。#in cl u de in t f u n(in t n)in t aEl OOOO,i,j,co u n t=0;f o r(i=2;i=n;i+)a i =i;i=2;w h il e (in)/f o r(j=a i*2;j=n;j+=_ _ _ 1_ _ _)a ia j =0;i+;
49、/w h il e (a i=_ _ _ 1_ _ _)0i+;p rin t f (n T h e p rim e n u m be r be t w e e n 2 t o%d n/z,n);f o r(i=2;i=n;i+)/if (a i !=3)0 co u n t+;p rin t f(co u n t%15?%5d:n%5d”,a i);re t u rn co u n t;)m ain()in t n=20,r;r=f u n (n);p rin t f (z/n T h e n u m be r o f p rim e is :%d n”,r);2 4 给定程序中,函数FU
50、N的功能是:将N X N 矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若N=3,有下列矩阵:1 2 3 3 24 5 6 交换后为:47 8 9 9 815 67 in cl u de de f in e N 4v o id f u n (in t _ _ _ 1_ _ _,in t n)t N N in t i,s;f o r(2;i+)i=0;iN s=t i i;t i i=t i n-i-1;t i n-l-i=_ _ _ 3_ _ _;s)m ain()in t t N =21,12,13,24,25,16,47,38,29,11,32,54,42,21,3