程序填空文档格式.docx
- 文档编号:22940750
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:136
- 大小:91.54KB
程序填空文档格式.docx
《程序填空文档格式.docx》由会员分享,可在线阅读,更多相关《程序填空文档格式.docx(136页珍藏版)》请在冰豆网上搜索。
\n"
);
N;
i++)
{for(j=0;
j++)printf("
%3d"
x[i][j]);
2.给定程序中,函数fun的功能是:
将形参s所指字符串中所有ASCII码值小于97的字符存入形参t所指字符数组中,形成一个新串,并统计出符合条件的字符个数作为函数值返回。
例如,形参s所指的字符串为:
Abc@1x56*,程序执行后t所指字符数组中的字符串应为:
A@156*。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
intfun(char*s,char*t)
{intn=0;
while(*s)
{if(*s<
97){
*(t+n)=*s;
n++;
*s;
*(t+n)=0;
returnstrlen(t);
{chars[81],t[81];
intn;
\nEnterastring:
gets(s);
n=fun(s,t);
\nThereare%dletterwhichASCIIcodeislessthan97:
%s\n"
n,t);
3.给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。
stdlib.h>
voidfun(char*s,inta,doublef)
{
FILEfp;
charstr[100],str1[100],str2[100];
inta1;
doublef1;
fp=fopen("
file1.txt"
"
w"
fprintf(fp,"
%s%d%f\n"
s,a,f);
fclose(fp);
r"
fscanf(fp,"
%s%s%s"
str,str1,str2);
a1=atoi(str1);
f1=atof(str2);
\nTheresult:
\n\n%s%d%f\n"
str,a1,f1);
{chara[10]="
Hello!
"
;
intb=12345;
doublec=98.76;
fun(a,b,c);
4.给定程序中,函数fun的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序。
即若原链表结点数据域从头至尾的数据为:
10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:
2、4、6、8、10。
#defineN6
typedefstructnode{
intdata;
structnode*next;
}NODE;
voidfun(NODE*h)
{NODE*p,*q;
intt;
p=h;
while(p){
q=p->
next;
while(q)
{if(p->
data>
q->
data)
{t=p->
data;
p->
data=q->
data=t;
q=q->
p=p->
NODE*creatlist(inta[])
{NODE*h,*p,*q;
inti;
h=NULL;
{q=(NODE*)malloc(sizeof(NODE));
data=a[i];
next=NULL;
if(h==NULL)h=p=q;
else{p->
next=q;
p=q;
returnh;
voidoutlist(NODE*h)
{NODE*p;
p=h;
if(p==NULL)printf("
ThelistisNULL!
else
{printf("
\nHead"
do
->
%d"
p->
data);
p=p->
while(p!
=NULL);
End\n"
{NODE*head;
inta[N]={0,10,4,2,8,6};
head=creatlist(a);
\nTheoriginallist:
outlist(head);
fun(head);
\nThelistafterinverting:
5.函数fun的功能是:
计算
直到
。
若x=2.5,函数值为:
1.917915。
注意:
不得增行或删行,也不得更改程序的结构!
math.h>
doublefun(doublex)
{doublef,t;
f=1.0+x;
t=x;
n=1;
do{
t*=(-1.0)*x/n;
f+=t;
while(fabs(t)>
=1e-6);
returnf;
{doublex,y;
x=2.5;
y=fun(x);
\nTheresultis:
x=%-12.6fy=%-12.6f\n"
x,y);
6.用筛选法可得到2~n(n<
10000)之间的所有素数,方法是:
首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);
接着从数表中找下一个非0数,并从数表中删去该数的所有倍数;
依此类推,直到所找的下一个数等于n为止。
这样会得到一个序列:
2,3,5,7,11,13,17,19,23,……
函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。
intfun(intn)
{inta[10000],i,j,count=0;
for(i=2;
=n;
i++)a[i]=i;
i=2;
while(i<
n){
for(j=a[i]*2;
j+=a[i])
a[j]=0;
i++;
while(a[i]==0)
\nTheprimenumberbetween2to%d\n"
n);
if(a[i]!
=0)
{count++;
printf(count%15?
%5d"
:
\n%5d"
a[i]);
returncount;
{intn=20,r;
r=fun(n);
\nThenumberofprimeis:
%d\n"
r);
7.人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。
函数fun的功能是:
找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结
果。
#defineN8
typedefstruct
{intnum;
intyear,month,day;
}STU;
intfun(STU*std,STU*k,intyear)
{inti,n=0;
for(i=0;
if(std[i].year==year)
k[n++]=std[i];
return(n);
{STUstd[N]={{1,1984,2,15},{2,1983,9,21},{3,1984,9,1},{4,1983,7,15},
{5,1985,9,28},{6,1982,11,15},{7,1982,6,22},{8,1984,8,19}};
STUk[N];
inti,n,year;
Enterayear:
"
scanf("
&
year);
n=fun(std,k,year);
if(n==0)
\nNopersonwasbornin%d\n"
year);
\nThesepersonswerebornin%d\n"
n;
%d%d-%d-%d\n"
k[i].num,k[i].year,k[i].month,k[i].day);
8.给定程序中,函数fun的功能是:
在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。
例如,s所指字符串为:
baacda,c中的字符为:
a,执行后s所指字符串为:
baaaacdaa。
voidfun(char*s,charc)
{inti,j,n;
s[i]!
=0;
if(s[i]==c)
{
n=0;
while(s[i+1+n]!
='
\0'
)n++;
for(j=i+n+1;
j>
i;
j--)s[j+1]=s[j];
s[j+1]=c;
i=i+1;
{chars[80]="
baacda"
c;
\nThestring:
s);
\nInputacharacter:
%c"
c);
fun(s,c);
9.给定程序中,函数fun的功能是:
判断形参s所指字符串是否是"
回文"
(Palindrome),若是,函数返回值为1;
不是,函数返回值为0。
是正读和反读都一样的字符串(不区分大小写字母)。
例如,LEVEL和Level是"
,而LEVLEV不是"
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
string.h>
ctype.h>
intfun(char*s)
{char*lp,*rp;
lp=s;
rp=s+strlen(s)-1;
while((toupper(*lp)==toupper(*rp))&
&
(lp<
rp)){
lp++;
rp--;
if(lp<
rp)return0;
elsereturn1;
{chars[81];
Enterastring:
%s"
if(fun(s))printf("
\n\"
%s\"
isaPalindrome.\n\n"
elseprintf("
isn'
taPalindrome.\n\n"
10.给定程序中,函数fun的功能是:
将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。
abs5def126jkm8,程序执行后的输出结果为:
22。
{intsum=0;
while(*s){
if(isdigit(*s))sum+=*s-48;
s++;
returnsum;
\n\n"
n=fun(s);
%d\n\n"
n);
11.给定程序中,函数fun的功能是:
计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
例如,有10个正数:
411734019242881214,平均值为:
19.700000
移动后的输出为:
170198121441342428
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
#defineN10
doublefun(double*x)
{
inti,j;
doubleav,y[N];
av=0;
/**********found**********/
i++)av+=x[i]/N;
for(i=j=0;
if(x[i]<
av)
{
/**********found**********/
y[j]=x[i];
x[i]=-1;
j++;
}
i=0;
while(i<
N)
{
if(x[i]!
=-1)y[j++]=x[i];
i++;
for(i=0;
i++)x[i]=y[i];
returnav;
doublex[N];
i++){x[i]=rand()%50;
%4.0f"
x[i]);
\nTheaverageis:
%f\n"
fun(x));
i++)printf("
%5.0f"
12.给定程序中,函数fun的功能是:
在带有头结点的单向链表中,查找数据域中值为ch的结点。
找到后通过函数值返回该结点在链表中所处的顺序号;
若不存在值为ch的结点,函数返回0值。
typedefstructlist
{intdata;
structlist*next;
}SLIST;
SLIST*creatlist(char*);
voidoutlist(SLIST*);
intfun(SLIST*h,charch)
{SLIST*p;
intn=0;
p=h->
{n++;
if(p->
data==ch)returnn;
elsep=p->
return0;
{SLIST*head;
intk;
charch;
chara[N]={'
m'
'
p'
g'
a'
w'
x'
r'
d'
};
Enteraletter:
ch);
k=fun(head,ch);
if(k==0)printf("
\nNotfound!
Thesequencenumberis:
k);
SLIST*creatlist(char*a)
{SLIST*h,*p,*q;
h=p=(SLIST*)malloc(sizeof(SLIST));
{q=(SLIST*)malloc(sizeof(SLIST));
next=q;
p=q;
next=0;
voidoutlist(SLIST*h)
\nThelistisNULL!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 填空