程序填空题.docx
《程序填空题.docx》由会员分享,可在线阅读,更多相关《程序填空题.docx(20页珍藏版)》请在冰豆网上搜索。
程序填空题
1.下列程序由键盘输入一个文件名,然后把从键盘输入的字符依次存放到磁盘文件中,直到输入一个"#"为止。
#include""
main()
{FILE*fp;
charch,filename[10];
scanf("%s",filename);/*用户输入存在磁盘上的文件名*/
if((fp=⑦(filename,"w"))==NULL)
{printf("cannotopenfile\n");
exit(0);
}
while((ch=getchar())!
='#')
⑧;
fclose(fp);
}
2.下列程序的功能是输出一个整数x的绝对值。
将程序补充完整,填在空内。
#include<>
main()
{intx,①;
scanf("%d",&x);
y=②;
printf("%d\n",y);
}
3.下列程序的功能是输出1~100之间能被7整除的所有整数。
将程序补充完整,填在空内。
main()
{inti;
for(i=1;③;i++)
{if(i%7)④;
printf("%d",i);
}
}
4.以下程序用以删除字符串中所有的空格,请填空。
main()
{chars[100]={"OurteacherteachClanguage!
"};
inti,j;
for(i=j=0;s[i]!
='\0';i++)
if(s[i]!
=''){⑤;j++;}
s[j]=⑥;
printf("%s\n",s);
}
5.结构体数组中存有三个人的姓名和年龄,以下函数fun的功能是输出三人中最年长者的姓名和年龄。
structman
{charname[20];intage;}person[]={{"Mary",16},{"Tom",21},{"Jim",18}};
voidfun(⑦person[])
{inti,old=0;
for(i=0;i<2;i++)
if(person[old].ageprintf("%s%d",person[old].name,person[old].age);
}
6.程序实现当输入的字符为小写字母时,输出对应的大写字母。
#include""
main()
{charch1,ch2;
printf("请输入一个小写字符:
");
scanf("%c",&ch1);
if(①)
{ch2=ch1-②;
printf("%c",ch2);
}
else
printf("输入出错!
");
}
7.求1!
+2!
+3!
+…+10!
。
将程序补充完整,填在空内。
#include<>
main()
{floats=0,t=1;
intn;
for(n=1;③;n++)
{t*=n;
④;
}
printf("1!
+2!
+3!
+...+10!
=%.0f",s);
}
8.下面的程序是使输入的一个字符串按反序存放,在主函数中输入和输出字符串。
#include""
main()
{intinverse(charstr[]);
charstr[100];
printf("InputString:
");
scanf("%s",str);
⑤;
printf("Inversestring:
%s",str);
}
intinverse(charstr[])
{chart;
inti,j;
for(i=0,j=strlen(str);⑥;i++,j--)
{t=str[i];str[i]=str[j-1];str[j-1]=t;}
}
9.下列程序的功能是实现两个变量x和y的值的交换。
main()
{int①=10,y=20;
x+=y;
y=x-y;
②;
printf("\n%d,%d",x,y);
}
10.下面程序的功能是输出两个字符串中对应相等的字符。
#include<>
main()
{
inti=0;
charx[]="programming";
chary[]="Fortran";
while(③)
{
if(x[i]==y[i])
putchar(x[i]);
④;
}
}
11.以下函数用来在w数组中插入x。
n所指向的存储单元中存放w数组中字符个数。
数组w中的字符已按从小到大的顺序排列,插入后数组w中的字符仍有序。
voidfun(char*w,charx,int*n)
{inti,p;
p=0;
w[*n]=x;
while(x>w[p])p++;
for(i=*n-1;i>=p;i--)⑤;
w[p]=x;
⑥;
}
12.以下程序用来判断指定文本文件“”是否能正常打开,请填空
#include<>
main()
{⑦fp;
if((fp=fopen("","r"))==⑧)
printf("未能打开文件!
\n");
else
printf("文件打开成功!
\n");
fclose(fp);
}
13.以下程序的功能是计算:
s=1+12+123+1234+12345。
请填空。
main()
{intt=0,①,i;
for(i=1;i<=5;i++)
{t=i+②;s=s+t;}
printf("s=%d\n",s);
}
14.下面程序的功能是输出以下形式的金字塔图案,请填空。
*
***
*****
*******
main()
{inti,j;
for(i=1;i<=4;i++)
{for(j=1;j<=③;j++)printf(“”);
for(j=1;j<=④;j++)printf(“*”);
printf(“\n”);
}
}
15.函数fun的功能是将s所指字符串中的所有非数字字符移到所有数字字符之后,并保持数字字符和非数字字符原有的先后次序。
#include<>
voidfun(char*s)
{inti,j=0,k=0;
chart1[80],t2[80];
for(i=0;s[i]!
='\0';i++)
if(s[i]>='0'&&s[i]<='9')
{t1[j]=s[i];j++;}
else
{⑤;k++;}
t2[k++]='\0';
for(i=0;ifor(i=0;i}
16.下列程序从一个二进制文件中读取结构体数据,并把读出的数据显示在屏幕上。
#include""
structrec
{inta;
floatb;
};
main()
{FILE*fp;structrecr;
if((fp=⑦("","rb"))==NULL)
{
printf("Nofindthefile!
");
exit(0);
}
do
{fread(&r,sizeof(structrec),1,fp);
if(feof(fp))⑧;
printf("%d,%f",,;
}while
(1);
fclose(fp);
}
17.以下程序用来输出字符串"china"的长度,请填空。
#include"①"
#include""
main()
{chara[]="china";
printf("%d\n",②);
}
18.下列程序的功能是把输入的十进制长整型数以十六进制数的形式输出。
main()
{charb[]="09ABCDEF";
intc[64],d,i=0,base=16;
longn;
scanf("%ld",&n);
do
{c[i]=③;
i++;
n=④;
}while(n!
=0);
for(--i;i>=0;--i)
{d=c[i];printf("%c",b[d]);}
}
19.下列程序的功能是将数组a的元素按行求和并存储到数组s中。
main()
{inta[3][4],s[3]={0};
inti,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",⑤);
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
⑥;
printf("%d\n",s[i]);
}
}
20.以下函数把b字符串连接到a字符串的后面,并返回a中新串的长度。
intstrcat(chara[],charb[])
{intnum=0,n=0;
while(⑦)num++;
while(b[n]!
='\0')
{⑧;num++;n++;}
a[num]='\0';
return(num);
}
21.以下程序的功能是:
输出a、b、c三个变量中的最小值,请填空。
main()
{inta,b,c,t1,①;
scanf("%d%d%d",&a,&b,&c);
t1=ab;
t2=②;
printf("%d\n",t2);
}
22.根据以下函数关系,对输入的x值,计算出相应的y值,设x和y都是整数。
将程序补充完整,填在空内。
main()
{intx,y;
scanf("%d",&x);
if(x<=1)y=x;
elseif(③)y=10*x;
elseif(④)y=x*x+20;
elsey=-1;
if(y!
=-1)printf("%d\n",y);
elseprintf("error\n");
}
23.以下程序的功能是:
求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。
请填空。
main()
{
intx[10],a[9],i;
printf(“往数组x中读入10个整数:
”);
for(i=0;i<10;i++)
scanf("%d",⑤);
for(i=1;i<10;i++)
a[i-1]=x[i]+⑥;
for(i=0;i<9;i++)
printf("%d",a[i]);
printf("\n");
}
24.以下程序中函数fun的功能是:
统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并作为函数值返回。
请填空:
#include<>
#defineN3
typedefstruct
{intnum;charnam[10];charsex;}SS;
intfun(SSperson[])
{inti,n=0;
for(i=0;iif(⑦=='M')n++;
returnn;
}
25.下列程序的功能是将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出。
将程序补充完整,填在空内。
#include<>
main()
{int①=123;
printf("%d,%d,%d\n",②,x/10%10,x/100);
}
26.根据以下函数关系,对输入的x值,计算出相应的y值。
main()
{intx,c;floaty;
scanf("%d",&x);
if(③)c=-1;
elsec=x/10;
switch(c)
{case-1:
y=-10;break;
case0:
y=x;break;
case1:
y=5;break;
case2:
case3:
case4:
______④_______;break;
default:
y=-2;
}
if(y!
=-2)printf("y=%f\n",y);
elseprintf("error\n");
}
main()
{SSW[N]={{1,"AA",'F'},{2,"BB",'M'},{3,"CC",'M'}};
intn;
n=⑧;printf("n=%d\n",n);
}
27.以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,其它依次类推.用#号结束输入,请填空。
#include<>
main()
{intnum[26]={0},i;charc;
while((c=⑤)!
='#')
if(⑥)num[c-‘A’]+=1;
for(i=0;i<26;i++)
printf("%c:
%d\n",i+'A',num);
}
28.人员记录由编号和出生年、月、日组成,N名人员的数据已存入结构体数组std且编号唯一。
函数fun的功能是找出指定编号为num的人员的数据,返回找到的数据在数组中的下标,若指定编号不存在,返回-1。
#include""
#include⑦
#defineN8
typedefstruct
{charnum[10];intyear,month,day;}STU;
intfun(STUstd[],charnum[])
{inti;
for(i=0;iif(strcmp(⑧,num)==0)
returni;
return-1;
}
29.下列程序的功能是输出一个整数x的绝对值。
将程序补充完整,填在空内。
#include<>
main()
{intx,①;
scanf("%d",&x);
y=②;
printf("%d\n",y);
}
30.以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。
例如,输入整数5时(注意:
n不得大于10),程序运行结果如下:
ABCDE
FGHI
JKL
MN
O
请填空完成该程序。
main()
{inti,j,n;charch='A';
scanf("%d",&n);
if(n<11)
{for(i=1;i<=n;i++)
{for(j=1;j<=n-i+1;j++)
{printf("%2c",ch);
③;
}
④;
}
}
elseprintf("nistoolarge!
\n")
printf("\n");
}
31.函数fun的功能是将正整数n的各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数x,并返回。
例如:
n=1234,则x=13。
#include<>
unsignedlongfun(unsignedlongn)
{unsignedlongx=0,i=1;
intt;
while(n)
{t=n%⑤;
if(t%2!
=0)
{x=x+t*i;i=i*10;}
n=⑥;
}
returnx;
}
32.以下程序的功能是将文件的内容复制到中,请填空。
#include<>
main()
{FILE*fp1,*fp2;
charstr[81];;
fp1=fopen("","r");
fp2=fopen("","w");
while(!
feof(fp1))
{fgets(str,81,fp1);
fputs(⑦);
}
fclose(fp1);
⑧;
}
33.下列程序的功能是实现两个变量x和y的值的交换。
将程序补充完整,填在空内。
main()
{intx=10,①=20;
x+=y;
y=x-y;
②;
printf("\n%d,%d",x,y);
}
34.有以下程序段,且变量已正确定义和赋值
for(s=,k=1;k<=n;k++)s=s+(k*(k+1));
printf("s=%f\n\n",s);
请填空,使下面程序段的功能为完全相同
s=;k=1;
while(③)
{s=s+1.0/(k*(k+1));④;}
printf("s=%f\n\n",s);
35.下面rotate函数的功能是:
将n行n列的矩阵A转置为A’,请填空。
#defineN4
voidrotate(inta[][N])
{inti,j,t;
for(i=0;ifor(j=0;⑤;j++)
{t=a[i][j];
⑥;
a[j][i]=t;
}
}
36.函数fun的功能是将存放在结构体数组中的学生数据按照姓名字典序(从小到大)排序。
请在下划线处填入正确的内容使函数完整。
#include<>
#include<>
structstudent
{longsno;/*学号*/
charname[10];/*姓名*/
floatscore[3];/*3门课成绩*/
};
voidfun(structstudenta[],intn)
{⑦t;
inti,j;
for(i=0;ifor(j=i+1;jif(strcmp(⑧)>0)
{t=a[i];a[i]=a[j];a[j]=t;}
}
37.下列程序的功能是把从键盘输入的字符输出。
将程序补充完整,填在空内。
#include<>
main()
{char①;
ch=②;
printf("%c\n",ch);
}
38.下面程序的功能是:
输出100以内能被3整除且个位数为6的所有正整数。
将程序补充完整,填在空内。
#include<>
main()
{inti,j;
for(i=0;③;i++)
{j=i*10+6;
if(④)continue;
printf("%d",j);
}
}
39.下面程序的功能是检查一个N×N矩阵是否对称(即判断是否所有的a[i][j]等于a[j][i])。
请填空。
#defineN4
main()
{inta[N][N]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4};
inti,j,found=0;
for(i=0;ifor(j=0;⑤;j++)
if(a[i][j]!
=a[j][i])
{⑥;
break;
}
if(found)printf("No");
elseprintf("Yes");
}
40.下面程序用以统计文件中小写字母a的个数。
请填空。
#include<>
main()
{FILE*fp;
charm;longn=0;
if((fp=fopen("",⑦))==NULL)
{printf("cannotopenfile\n");exit(0);}
while(!
feof(fp))
{m=fgetc(fp);
if(m=='a')n++;
}
printf("n=%ld\n",n);
⑧;
}