版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全国计算机等级考试C语言一一填空题
注意:源程序存放在考生文件夹下的BLANK1.C中。
1.不得增行或删行,也不得更改程序的结构!
2.请在程序下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
全1――泰———堂———f爱爱—―余余
1.给定程序中,函数FUN的功能是:计算出带有头接点的单向链表中各结点数据域之和作为函数值返|口|。
#include<stdio.h>
#include<stdlib.h>
#defineN8
typedefstructlist
{intdata;
structlist*next;
}SLIST;
SLIST*creatlist(int*);
voidoutlist(SLIST*);
intfun(SLIST*h)
{SLIST*p;ints=0;
p=h->next;
while(p)
(
s+=p->___1___;data
/**********************************found***********亭*********:
p=p->___2___;next
}
returns;}
main()
{SLIST*head;
inta[N]={12,87,45,32,91,16,20,48);
head=creatlist(a);outlist(head);
printf(n\nsum=%d\nn,fun(___3___));head
SLIST*creatlist(inta[])
{SLIST*h,*p,*q;inti;
h=p=(SLIST*)malloc(sizeof(SLIST));
fbr(i=O;i<N;i++)
{q=(SLIST*)malloc(sizeof(SLIST));
q->data=a[i];p->next=q;p=q;
p->next=0;
returnh;
}
voidoutlist(SLIST*h)
{SLIST*p;
p=h->next;
if(p==NULL)printf(nThclistisNULL!\n");
else
{printf("\nHead");
do
{printf(n->%dn,p->data);p=p->next;}
while(p!=NULL);
printfCn->End\n");
2.给定程序中,函数FUN的功能是:求出形参SS所指字符串数组中最长字符串的长度,其余字符串左边
用字符*补齐,使其与最长的字符串等长。字符串数组中工有M个字符串,且串长<N。
#include<stdio.h>
#include<string.h>
#defineM5
#defineN20
voidfun(char(*ss)[N])
{inti,j,k=0,n,m,len;
fbr(i=O;i<M;i++)
{len=strlen(ss[i]);
if(i=0)n=len;
if(len>n){
n=len;k=___11
)
fdr(i=O;i<M;i++)
if(i!=k)
{m=n;
len=strlen(ss[i]);
for(j=_2—;j>=O;j-)len
ss[i][m-]=ss[i][j];
fdr(j=O;j<n-len;j-H-)
ss[i]U]=_3.
main()
{chars[M][N]={nshanghain,,,guangzhou,,,nbeijingn;,tianjingn,ncchongqingn};
inti;
printff'\nTheoriginalstringsare:\nH);
fbr(i=O;i<M;i++)printf("%s\n”,ss[i]);
printf(n\nM);
ftin(ss);
printf(n\nTheresult:\nn);
fbr(i=O;i<M;i-H-)printf(H%s\n",ss[i]);
)
3.人员记录由编号和出生年,月,日组成,N名人员的数据已在主函数中存入结构体数组std且编号唯一。
函数fun的功能是;找出指定编号人员的数据,作为函数值返回,有主函数输出,若指定编号不存在,返回数
据中的编号为空串。
#include<stdio.h>
#include<string.h>
#defineN8
typedefstruct
{charnum[10];
intyear,month,day;
}STU;
___1___fun(STU*std,char*num)STU
{inti;STUa={,,n,9999,99,99};
for(i=0;i<N;i++)
if(strcmp(2,num)=0)std[i].num
return(___3);std[i]
returna;
main()
{STUstd[N]={{"111lir,,1984,2,15},{,,222222H,1983,9,21},{M333333t,,1984,9,1},
{“444444”,1983,7,15},『555555”,1984,9,28},{“666666”,1983,11,15},
「777777”,1983,6,22},{“888888”,1984,8,19}};
STUp;charn[10]=H666666M;
p=fun(std,n);
ifi[p.num[0]=0)
printfi(H\nNotfound!\n");
else
printf(n\nSucceed!\n”);
printf(,,%s%d-%d-%d\nM,p.num,p.year,p.month,p.day);
4.给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的
功能:删除链表中数据域值相同的结点,使之保留一个。
#include<stdio.h>
#include<stdlib.h>
#defineN8
typedefstructlist
{intdata;
structlist*next;
}SLIST;
voidfiin(SLIST*h)
{SLIST*p,*q;
p=h->next;
if(p!=NULL)
{q=p->next;
while(q!=NULL)
{if(p->data=q->data)
{p->next=q->next;
/**********************************found*********************************/
free(___1___);q
q=p->2;next
}
else
{p=q;
q=q->___3___;next
)
)
)
}
SLIST*creatlist(int*a)
{SLIST*h,*p,*q;inti;
h=p=(SLIST*)malloc(sizeof(SLIST));
for(i=0;i<N;i-H-)
{q=(SLIST*)malloc(sizeof(SLIST));
q->data=a[i];p->next=q;p=q;
)
p->next=0;
returnh;
}
voidoutlist(SLIST*h)
{SLIST*p;
p=h->next;
if(p==NULL)printf(H\nThelistisNULL!\n");
else
{printff'nHead)
do{printf(n->%dH,p->data);p=p->next;}while(p!=NULL);
printf(n->End\n");
main()
{SLIST*head;inta[N]={l,2,2,3,4,4,4,5);
hcad=creatlist(a);
printf(n\nThelistbeforedeleting:\nH);outlist(head);
fun(hcad);
printf("\nThelistafterdeleting:\nn);outlist(head);
5.函数fun的功能是进行数字字符转换。若形参ch中是数字字符P〜9;则。转换成9,T转换成8,2
转换成7...9转换成5若是其他字符则保持不变;并将转换后的结果作为函数值返回.
tfinclude<stdio.h>
_1__fun(charch)char
if(ch>=O&&2)ch<=,9,
return9-(ch-___3___);'O'
returnch;
}
main()
{charcl,c2;
printf(M\nTheresult:\nH);
cl='2f;c2=fun(cl);
printf(Mcl=%cc2=%c\n",cl,c2);
cl=8;c2=fun(cl);
printf(Hc1=%cc2=%c\n",c1,c2);
cl-a1;c2=fun(cl);
printf(Mcl=%cc2=%c\n",c1,c2);
6.给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M字符串按长度由短到长进行排序。
SS所指字符串数组中共有M个字符串,且串长〈N。
#include<stdio.h>
#include<string.h>
#defineM5
#defineN20
voidfiin(char(*ss)[N])
{inti,j,k,n[M];chart[N];
for(i=0;i〈M;i++)n[i]=strlen(ss[i]);
for(i=0;i-H-)
{k=i;
fbr(j=___1___;j<M;j-H-)i+1
if(n[k]>n[j])k=_2_;j
if(k!=i)
{strcpy(t,ss[i]);
strcpy(ss[i],ss[k]);
strcpy(ss[k],___3___);t
n[k]=n[i];
}
main()
{chars[M][N]={”shanghai”,"guangzhou"Jbeijing"Jtianjing”Jcchongqing”};
inti;
printf(n\nTheoriginalstringsare:\nn);
fbr(i=O;i<M;i++)printf(n%s\n",ss[i]);
printf(,,\nH);
fun(ss);
printf(n\nTheresult:\n");
fbr(i=O;i<M;i++)printf{n%s\n",ss[i]);
7.函数FUN的功能是:从三个形参a,b,c中找出中间的哪个数,作为函数值返回。例如,当a=3,b=5,c=4时,
中数为4。
#include<stdio.h>
intfun(inta,intb,intc)
{intt;
t=(a>b)?(b>c?b:(a>c?c:___1___)):((a>c)?___2___:((b>c)?c:___3___));
returnt;
}1.a2.a3.b
main()
{intal=3,a2=5,a3=4,r;
r=fun(al,a2,a3);
printf(n\nThemiddlenumberis:%d\nH,r);
8.给定程序中,函数FUN的功能是:统计出带有头结点的单向链表中接点的个数,存放在形参N所指的存
储单元中。
#include<stdio.h>
#include<stdlib.h>
#defineN8
typedefstnictlist
{intdata;
structlist*next;
}SLIST;
SLIST*creatlist(int*a);
voidoutlist(SLIST*);
voidfun(SLIST*h,int*n)
{SLIST*p;
/*******************************************************************/
*n=1;0
p=h->next;
while(p)
{(*n)++;
P=____2.p->next
main()
{SLIST*head;
inta[N]={12,87,45,32,91,16,20,48},num;
head=creatlist(a);outlist(head);
fiin(head,____3);&num
printf(n\nnumber=%d\n,,,nuiTi);
}
SLIST*creatlist(inta[])
{SLIST*h,*p,*q;inti;
h=p=(SLIST*)malloc(sizeof(SLIST));
for(i=0;i<N;i-H-)
{q=(SLIST*)malioc(sizeof(SLIST));
q->data=a[i];p->next=q;p=q;
)
p->next=0;
returnh;
}
voidoutlist(SLIST*h)
{SLIST*p;
p=h->next;
if(p==NULL)printfC'ThelistisNULL!\n)
else
{printf("\nHead");
do
{printf(n->%dn,p->data);p=p->next;}
while(p!=NULL);
printfCM->End\n");}}
9.给定程序的功能是:调用函数FUN将指定源文件中的内容复制到指定的目标文件中,复制成功时函数
返回值为1,失败时返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名房子
变量sfname中,目标文件名放在变量tfname中。
#include<stdio.h>
#include<stdlib.h>
intfiin(char*source,char*target)
{FILE*fs,*ft;charch;
if((fs=fopen(source,_1_))=NULL)"rn
return0;
if((ft=fbpen(target,nw"))==NULL)
return0;
printf("\nThedatainfile:\nM);
ch=fgetc(fs);
while(!feofi(___2___))fs
{putchar(ch);
/**********************************^^und*****************************
fputc(ch,___3___);ft
ch=fgetc(fs);
}
fclose(fs);fclose(ft);
printf(,,\n\n");
return1;
}
main()
{charsfhame[20]=,,myfilel",tfhame[20]="myfile2";
FILE*myf;inti;charc;
myf=fbpen(sfhame,"w”);
printf(H\nTheoriginaldata:\nH);
for(i=l;i<30;i++){c='A,+rand()%25;fprintf(myf;,%c,,,c);printf("%cM,c);)
fclose(myf);printf(n\n\nn);
if(fun(sfhame,tfname))printf(nSucceed!n);
elseprintff'Fail!”);
10.给定程序中,函数FUN的功能是:在形参S所指字符串中的每个数字字符之后插入一个*。例如,形参
S所指字符串为:def35adh3kjsdf7.执行结果为:def3*5*adh3*kjsdf7*
#include<stdio.h>
voidfun(char*s)
{inti,j,n;
for(i=0;s[i]!=、0';i++)
if(s[i]>=,0,_1_s[i]<=,9,)&&
{n=0;
while(s[i+l+n]!=2___)n++;'\0'
fbr(j=i+n+l;j>i;j-)
s[j+l]=_3一;s[j]
s[j+l]-**;
i=i+l;
}
}
main()
{chars[80]=nba3a54cd23an;
printf("\nTheoriginalstringis:%s\n',,s);
fun(s);
printf(n\nTheresultis:%s\nM,s);
11.给定程序中,函数FUN的功能是:将形参STD所指结构体数组中年龄最大者的数据作为函数值返回,
并将main函数输出。
#include<stdio.h>
typedefstruct
{charname[10];
intage;
}STD;
STDfiin(STDstd[],intn)
{STDmax;int
max=1;std[O]
fbr(i=l;i<n;i++)
ififmax.age<2___)max=std[i];std[i].age
returnmax;
}
main()
{STDstd[5]={naaan,l7Jbbb”,16Jccc”,18Jddd”,17Jeee”,15};
STDmax;
max=fun(std,5);
printf(**\nTheresult:\nn);
printf(u\nName:%s,Age:%d\n",___3___,max.age);
12.给定程序中,函数fun功能是:在带有头结点的单向链表中,查找数据域中为CH的结点,找到后通过函
数值返回该结点在链表中所处的顺序号;若不存在值为CH的结点,函数返回0值。
#include<stdio.h>
#include<stdlib.h>
#defineN8
typedefstructlist
{intdata;
structlist*next;
}SLIST;
SLIST*creatlist(char*);
voidoutlist(SLIST*);
intfun(SLIST*h,charch)
{SLIST*p;intn=0;
p=h->next;
/**********************************found*********************************/
while(p!=___1___)NULL
{n++;
if(p->data=ch)return___2n
elsep=p->next;
return0;
main()
{SLIST*head;intk;charch;
chara[N]={,m7p7g,;a7w',,x7r,,,d,};
head=creatlist(a);
outlist(head);
printf(HEnteraletter:0);
scanf^n%cH,&ch);
k=fun(_3_);head,ch
if(k==O)printf「\nNotfbund!\nH);
elseprintf{"Thesequencenumberis:%d\nn,k);
SLIST*creatlist(char*a)
{SLIST*h,*p,*q;inti;
h=p=(SLIST*)malloc(sizeof(SLIST));
fbr(i=O;i<N;i++)
{q=(SLIST*)malloc(sizeof{SLIST));
q->data=a[i];p->next=q;p=q;
p->next=O;
returnh;
}
voidoutlist(SLIST*h)
{SLIST*p;
p=h->next;
if(p==NULL)printf(M\nThelistisNULL!\n");
else
{printfC'\nHeadn);
do
{printf(,'->%cn,p->data);p=p->next;}
while(p!=NULL);
printf(n->End\n");
13.给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作
为字符串输入结素的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数
readText和writeText实现。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
voidWriteText(FILE*);
voidReadText(FILE*);
main()
{FILE*fp;
if((fp=fbpen(,,myfile4.txt,7,wn))=NULL)
{print"'openfail!!\n");exit(O);}
WriteText(fp);
fclose(fp);
if((fp=fbpen(,,myfile4.txt,7,rM))==NULL)
{printf("openfail!!\n");exit(O);}
ReadText(fp);
fclose(fp);
}
voidWriteText(FILE___1___)*fw
{charstr[81];
printf{n\nEnterstringwith-1toend:\n");
gets(str);
while(strcmp(str,n-ln)!=O){
fputs(2_,fw);fputsC^n^fw);
gets(str);
voidReadText(FILE*fr)
{charstr[81];
printff'WReadfileandoutputtoscreen:\n");
fgets(str,81,fr);
while(!feof(fr)){
printf(M%s",_3_);str
fgets(str,81,fr);
14.给定程序中,函数FUN的功能是:有NXN矩阵,根据给定的m(m〈=N)值,将每个元素中的值均右移m
个位置,左边置为Oo例如,N=3,m=2,有下列矩阵
123001
456程序执行结果为004
789007
#include<stdio.h>
#defineN4
voidfun(int(*t)[N],intm)
{inti,j;
fbr(i=O;i<N;_1_)i"
{for(j=N-l-m;j>=0;j-)
t[i]U+_2_]=t[i][j];
for(j=O;j<_3_;j++)m
t[i]Ul=O;
main()
{intt[][N]={21,12,13,24,25,16,47,38,29,ll,32,54,42,21,33,10},i,j,m;
printfi(n\nTheoriginalarray:\nM);
for(i=0;i<N;i++)
{for(j=O;j<N;j++)
printff%2d",t[i][j]);
printf(HInputm(m<=%d):H,N);scanf("%d",&m);
fun(t,m);
printf(u\nTheresultis:\nn);
for(i=O;i<N;i++)
{for(j=0;j〈N;j++)
printf("%2dn,t[i][j]);
printff\n“);
15.函数FUN的功能是;把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值防
在a[l]中;再把a所指数组元素中的次大值a[2]中,把a所指数组的数据最初排列为:1,4,2,3,9,6,5,8,7,则按
规则移动后,数据排列为:9』,8,2,7,3,6,4,5。形参n中存放a所指数组中数据的个数。
#include<stdio.h>
#defineN9
/*******************************************************************/
voidfun(int___1___,intn)
{inti,j,max,min,px,pn,t;
for(i=0;i<n-l;i+=2____)2
{max=min=a[i];
px=pn=i;
for(j=_3_;j<n;j++)i+1
{if(max<a[j])
{max=a[j];px=j;}
if(min>a[j])
{min=a[j];pn=j;}
if(px!=i)
{t=a[i];a[i]=max;a[px]=t;
if(pn==i)pn=px;
if(pn!=i+1)
{t=a[i+1];a[i+1]=min;a[pn]=t;}
main()
{intb[N]={1,4,2,396,5,8,7}』
printf(,,\nTheoriginaldata:\nM);
for(i=0;i<N;i-H-)printf(H%4d”,b[i]);
printf(n\nn);
fun(b,N);
printf(,'\nThedataaftermoving:\n");
fbr(i=0;i<N;i-H-)printf(H%4d”,b[i]);
printf(n\nn);
16.给定程序中,函数FUN的功能是;求SS所指字符串数组中长度最广的字符串所在的行下标,作为函数
值返回,并把其串长防在形参n所指变量中。SS所指字符串数组中共有M个字符串,且串长vNo
#include<stdio.h>
#defineM5
#defineN20
intfun(char(*ss)[___1___],int*n)N
{inti,k=0,len=0;
for(i=0;i<M;i++)
{len=strlen(ss[i]);
if(i=0)*n=_2.len
if(len>*n){
*n=3;len
k=i;
)
)
retum(k);
}
main()
{charss[M][N]={,,shanghai","guangzhouH,nbeijing",,,tianjing,',,,cchongqingn};
intn,k,i;
printff'\nTheoriginalstringsare:\nn);
for(i=O;i<M;i-H-)puts(ss[i]);
k=fun(ss,&n);
printf(n\nThelengthoflongeststringis:%d\n",n);
printf(n\nThelongeststringis:%s\nM,ss[k]);
17.函数FUN的功能是:逆置数组元素中的值。例如:若a所指数组中的数据依次为4,5,6,7,8,9,则逆
置后依次为98,7。6,543,2,1。形参n给出数组中数据的个数。
#include<stdio.h>
voidfiin(inta[],intn)
{inti,t;
fbr(i=0;i<___1___;i++)n/2
t=a[i];
a[i]=—2.a[n-l-i];
a[n-l-i]=_3—;t
main()
{intb[9]={l,2,3,4,5,6,7,8,9},i;
printf(M\nTheoriginaldata:\nn);
for(i=0;i<9;i++)
printf("%4d”,b[i]);
printf(n\nu);
fun(b,9);
printff'\nThedataafterinvert:\n");
for(i=0;i<9;i++)
printfC%4d”,b[i]);
printf(n\nn);
18.给定程序中,函数FUN的功能是:在形参S所指字符串中寻找与参数C相同的字符,并在其后插入一
个与之相同的字符,若找不到相同的字符则函数不做任何处理。例如,S所指字符串:baacda,c中的字符为:a,
执行后S所指字符串为:baaaacdaa。
#include<stdio.h>
voidfun(char*s,charc)
{inti,j,n;
/**********伯und**********/
for(i=0;s[i]!=_1_;i++)
if(s[i]=c)
]********************/
n=____2____;0
while(s[i+1+n]!=,\0,)n++;
for(j=i+n+1;j>i;j-)s[j+1]=s[j];
:******************/
sU+l]=sL_3_];
i=i+1;
main()
{chars[80]=nbaacdaM,c;
printf(u\nThestring:%s\nM,s);
printf(,f\nlnputacharacter:");scanf(M%cH,&c);
fun(s,c);
printf(n\nTheresultis:%s\n",s);
19.函数FUN的功能是:把形参a所指数组总的奇数原顺序依次存放到a[0],a[l],a[2]中,把偶数从数
组中删除,奇数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、
7,删除偶数后,a所指数组中数据为:9、1、3、5、7,返回值为5。
#include<stdio.h>
#defineN9
intfun(inta[],intn)
{inti,j;
j=O;
for(i=0;i<n;i++)
if(a[i]%2=_1_)1
/**********************************i^ound*********************************/
a[j]=a[i];—2_;j++
}
return3;i
main()
{intb[N]={9』,4,2,3,6,5,8,7},i,n;
printf(n\nTheoriginaldata:\n");
for(i=0;i<N;i++)printf(M%4d\b[i]);
printf(n\nH);
n=fun(b,N);
printf(n\nThenumberofodd:%d\n”,n);
printf(n\nTheoddnumber:\n");
for(i=0;i<n;i++)printff%4d”,b[i]);
printf(,,\nn);
20.给定程序的功能是:调用函数FUN将指定源文件中的内容复制到指定的目标文件中,复制成功时函数
返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名防在变量sfnamc中,目
标文件名放在变量tfname中。
#include<stdio.h>
#include<stdlib.h>
intfiin(char*source,char*target)
{FILEcharch;
if((fs=fopen(source,_1_))=NULL)T
return0;
if((ft=fbpen(target,nw"))==NULL)
return0;
printf(n\iiThedatainfile:\n)
ch=fgetc(fs);
while(!feof(___2___))fs
{putchar(ch);
fputc(ch,___3___);ft
ch=fgetc(fs);
fclose(fs);fclose(ft);
printf(n\n\nn);
return1;
main()
{charsfname[20]=,,myfilel",tfhame[20]="myfile2";
FILE*myf;inti;charc;
myf=fopen(sfhame,"wn);
printf(n\nTheoriginaldata:\nn);
fbr(i=l;i<30;i-H-){c=,A,+rand()%25;fprintf(myf;,,%c,,,c);printf("%cH,c);}
fclose(myf);printf(n\n\nn);
if(fun(sfhame,tfname))printf(nSucceed!n);
elseprintfCFail!”);
21.函数FUN的功能是:计算
xX
八工)=i+X+------■+••・・
2!.22\一
直到一<10".若x=2.5,函数值为:12.182494.
n\
#include<stdio.h>
#include<math.h>
doublefiin(doublex)
{double£t;intn;
f=1.0+_1_;x
t=x;
n=1;
do{
n++;
t*=x/2n
f+=_1_;t
}while(fabs(t)>=le-6);
returnf;
main()
{doublex,y;
x=2.5;
y=fun(x);
printf(f,\nTheresultis:\n");
printffx=%・12.6fy=%-12.6f\nH,x,y);
22.给定程序中,函数FUN的功能是:统计形参S所指字符串中数字字符出现的次数,并存放在形参t所
指的变量中最后在函数中输出。例如,形参所指的字符串为:abcdef35adgh3kjsdf7,输出结果为:4。
#include<stdio.h>
voidfun(char*s,int*t)
{inti,n;
n=0;
for(i=0;_1_!=NULL;i++)s[i]
/**********************************found*********************************/
ifi[s[i]>=,0,&&s[i]<=_2_)n++;9
*t=_3—;
}
main()
{chars[80]=Mabcdef35adgh3kjsdnn;
intt;
printf(,'\nTheoriginalstringis:%s\nn,s);
fun(s,&t);
printf(H\nTheresultis:%d\nn,t);
23.用筛选法可得到2—n(nvlOOOO)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从
数表中删去(把数表中相应位置的值置成0)接着从数表中找下一个非0数,并从数表中找下一个非0数,
并从数表中删去该书的所有倍数:依次类推,直到所找的卜一个数等于n为止。这样会得到一个序
列:2,3,5,7,11,13,17,19,23........
函数FUN用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。
#include<stdio.h>
intfun(intn)
{inta[10000],i,j,count=0;
for(i=2;i<=n;i++)a[i]=i;
i=2;
while(i<n){
for(j=a[i]*2;j<=n;j+=_1_)a[i]
a[j]=0;
i++;
while(a[i]=—1_)0
i++;
printf^'VnTheprimenumberbetween2to%d\n",n);
for(i=2;i<=n;i++)
if(a[i]!=3)0
{count++;printf(count%15?"%5dH:n\n%5dn,a[i]);}
returncount;
}
main()
{intn=20,r;
r=fun(n);
printff'\nThenumberofprimeis:%d\nn,r);
24.给定程序中,函数FUN的功能是:将NXN矩阵主对角线元素中的值与反向对角线对应位置上元素
中的值进行交换。例如,若N=3,有下列矩阵:
123321
456交换后为:456
789987
#include<stdio.h>
#defineN4
voidfun(int___1___,intn)t[N][N]
{inti,s;
fbr(___2___;i++)i=0;i<N
{s=t[i][i];
t[i][i]=t[i][n-i-l];
t[i][n-l-i]=_3_;s
main()
{intt[][N]={21,l2,13,24,25,16,47,38,29,11,32,54,42,21,33,10},ij;
printf{n\nTheoriginalarray:\nH);
fbr(i=O;i<N;i++)
{for(j=0;j<N;j++)prmtfCt%d1[i皿);
printff'n”);
fun(t,N);
printf(n\nTheresultis:\n**);
for(i=O;i<N;i-H-)
{for(j=0;j<N;j++)printff%dn,t[i][j]);
printffW”);
25.给定程序中,函数FUN的功能是:在形参S所指字符串中寻找与参数C相同的字符,并在其后插入一
个与相同的字符,若找不到相同的字符则函数不做任何处理。
例如,S所指字符串为:baacda,执行后S所指字符串为:baaaacdaa
#include<stdio.h>
voidfun(char*s,charc)
{inti,j,n;
for(i=0;s[i]!=___1___;i++)
if(s[i]==c)
n=_2_;
while(s[i+1+n]!-\0,)n++;
for(j=i+n+l;j>i;j-)s[j+l]=s[j];
sU+l]=_3_;
i=i+l;
}
}
main()
{chars[80]=,,baacdaM,c;
printf(n\nThestring:%s\nH,s);
printf(f,\nInputacharacter:");scanf(,,%c,\&c);
fun(s,c);
printf(n\nTheresultis:%s\nM,s);
26.函数FUN的功能是:把形参a所指数组中的最小值防在元素a[0]中,接着把形参a所指数组中的最大
值放在a[l]元素中;再把a所指数组元素中的次小值放在a⑵中,把a所指数组元素中的次大值放在a[北
其余以次类推。例如:若a所指数组中的数据最初排列为91,42365,8,7;则按规则移动后,数据排列
为:1,9,2,8,374,6,5。形参n中存放a所指数组中数据的个数。
注意:规定FUN函数中的MAX存放当前所找的最大值,PX存放当前所找最大值的下标。
#include<stdio.h>
#defineN9
voidfiin(inta[],intn)
{inti,j,max,min,px,pn,t;
for(i=0;i<n-l;i+=2)
max=min=1a[i]
px=pn=i;
fbr(j=i+l;j<n;j++){
if(max<2___)a[j]
{max=a[j];px=j;}
if(min>_3_)a[j]
{min=a[j];pn=j;
if(pn!=i)
{t=a[i];a[i]=min;a[pn]=t;
if(px=i)px=pn;
if(px!=i+l)
{t=a[i+l];a[i+l]=max;a[px]=t;}
)
main()
{intb[N]={9,1,423,6,5,8,7}』
printf{n\nTheoriginaldata:\nn);
for(i=0;i<N;i++)printf(H%4db[i]);
printf(n\nn);
fun(b,N);
printftH\nThedataaftermoving:\nn);
fbr(i=0;i<N;i-H-)printf(H%4d”,b[i]);
printf(,,\nu);
27.甲乙丙丁四人同时开始放鞭炮,甲每隔tl秒放一次,乙每隔t2秒放一次,丙每隔t3秒放一次,丁每隔t4
秒放,次,每人各放n次函数FUN的功能是根据形参提供的值,求出总共听到多少次鞭炮声作为函数值返
回。注意,当几个鞭炮同时炸响,只算一次响声,每次响声,第一次响声是在第0秒。
#include<stdio.h>
#defineOK(i,t,n)((_1_%t=0)&&(i/t<n))
intfun(inttl,intt2,intt3,intt4,intn)
{intcount,t,maxt=tl;
if(maxt<t2)maxt=t2;
if(maxt<t3)maxt=t3;
if(maxt<t4)maxt=t4;
count=l;/*给count赋初值*/
for(t=l;t<maxt*(n-l);___2___)t++
if(OK(t,tl,n)||OK(t,t2,n)||OK(t,t3,n)||OK(t,t4,n))
count-H-;
return3count
main()
{inttl=7,t2=5,t3=6,t4=4,n=10,r;
r=fiin(tl,t2,t3,t4,n);
printf("Thesound:%d\n",r);
28.给定程序的功能是调用FUN函数建立班级通讯录。通讯录中记录每位同学的编号,姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件
中。
#include<stdio.h>
#include<stdlib.h>
#defineN5
typedefstruct
{intnum;
charname[10];
chartel[10];
}STYPE;
voidcheck();
intftm(___1*std)STYPE
2_*fp;intFILE
if((3=fbpen("myfHe5.dat“Jwb"))=NULL)
retum(O);
printf(H\nOutputdatatofile!\nM);
fdr(i=O;i<N;i++)
fwrite(&std[i],sizeof(STYPE),1,___3___);fp
fclose(lp);
return(1);
main()
,,,,,,,,M
{STYPEs[10]={{l;'aaaaa\llllir},{l;bbbbbV222222},{l;ccccc'',''333333},
{l,"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- YY 0502-2026关节置换植入器械膝关节假体基本要求
- AI在国际服务贸易中的应用
- 2026年高处作业吊篮安全管理规定
- 2026年日语教师如何制定学期教学计划
- 2026年导医对传染病患者的歧视心理应对
- 2026年国内二手奢侈品交易现状与鉴定市场
- 2026年初中生物教师显微镜操作与切片制作培训
- 2026年运动康复治疗知情同意书规范与法律效力解析
- 2026年医务人员违规违纪行为处理流程
- 2026年医学检验专业男生在行业内的职业定位
- 医院有害生物防治投标方案(技术标)
- 1.《Linux网络操作系统》课程标准
- 史上最全变电站各类设备讲解
- 专利侵权判定的基本问题
- 佛山市公共租赁住房申请书
- 临床药理学(完整课件)
- 供应商入围框架协议
- 天津大学毕业论文答辩PPT模板
- 跨文化交际(课件)
- 设施蔬菜栽培技术课件
- 教师专业技能提升培训-班级管理心理学专题课件
评论
0/150
提交评论