程序填空.docx
- 文档编号:1587787
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:198
- 大小:63.68KB
程序填空.docx
《程序填空.docx》由会员分享,可在线阅读,更多相关《程序填空.docx(198页珍藏版)》请在冰点文库上搜索。
程序填空
━━━━━━━━━━━━━━━━━━
一、程序填空共130题
━━━━━━━━━━━━━━━━━━
第1题(9.0分)题号:
441
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
从低位开始取出长整型变量s中奇数位上的数,依次构成一
个新数放在t中。
-------------------------------------------------------*/
#include
#include
voidfun(longs,long*t)
{
longsl=10;
s/=10;
/***********SPACE***********/
*t=s【%】10;
while(s>0)
{
/***********SPACE***********/
s=【s%100】;
/***********SPACE***********/
*t=s%10*sl【+*t】;
/***********SPACE***********/
sl=sl【*】10;
}
}
main()
{longs,t;
clrscr();
printf("\nPleaseenters:
");scanf("%ld",&s);
fun(s,&t);
printf("Theresultis:
%ld\n",t);
}
答案:
1).%
2).s/100
3).+*t
4).*
第2题(9.0分)题号:
439
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
1982年我国第三次人口普查,结果全国人口为10.3亿,假
如人口增长率为5%。
编写一个程序求在公元多少年总人口
翻了一番。
-------------------------------------------------------*/
#include
voidmain()
{
doublep1=10.3,p2,r=0.05;
intn=1;
/***********SPACE***********/
p2=p1*【(1+r)】;
/***********SPACE***********/
while(p2<=【2*p1】)
{
n++;
/***********SPACE***********/
p2=p2*【(1+r)】;
}
/***********SPACE***********/
n=【n+1982】;
printf("%d年人口总数翻了一番,即为%g亿人\n",n,p2);
}
答案:
1).(1+r)或(r+1)
2).2*p1或p1*2
3).(1+r)或(r+1)
4).n+1982或1982+n
第3题(9.0分)题号:
407
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
有五个学生,每个学生有3门课的成绩,从键盘输入以上数
据(包括学生号,姓名,三门课成绩),计算出平均成绩,
设原有的数据和计算出的平均分数存放在磁盘文件"stud"
中。
-------------------------------------------------------*/
#include"stdio.h"
structstudent
{
charnum[6];
charname[8];
intscore[3];
floatavr;
}stu[5];
main()
{
inti,j,sum;
FILE*fp;
/*input*/
for(i=0;i<5;i++)
{
printf("\npleaseinputNo.%dscore:
\n",i);
printf("stuNo:
");
scanf("%s",stu[i].num);
printf("name:
");
scanf("%s",stu[i].name);
sum=0;
/***********SPACE***********/
for(j=0;【j<3】;j++)
{
printf("score%d.",j+1);
scanf("%d",&stu[i].score[j]);
/***********SPACE***********/
sum+=stu[i].【score[j]】;
}
stu[i].avr=sum/3.0;
}
fp=fopen("stud","w");
/***********SPACE***********/
for(i=0;i<5;【i++】)
/***********SPACE***********/
if(fwrite(&stu[i],sizeof(【structstudent】),1,fp)!
=1)
printf("filewriteerror\n");
fclose(fp);
}
答案:
1).j<3或3>j
2).score[j]
3).i++或++i或i=i+1
4).structstudent
第4题(9.0分)题号:
408
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
输入两个整数,求他们的按位与。
-------------------------------------------------------*/
#include
voidmain()
{
intx,y,z=0,a,b,k=1;
scanf("%d,%d",&x,&y);
while(x>0&&y>0)
{
a=x%2;
/***********SPACE***********/
x=【x/2】;
b=y%2;
y=y/2;
/***********SPACE***********/
z=z+【a*b*k】;
k=k*2;
}
/***********SPACE***********/
【printf】("z=%d\n",z);
}
答案:
1).x/2
2).a*b*k或a*b*k
3).printf
第5题(9.0分)题号:
477
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
编写程序,输出1000以内的所有完数及其因子。
说明:
所谓完数是指一个整数的值等于它的因子之和。
例如“6的因子是1、2、3,而6=1+2+3,故6是
一个完数。
-------------------------------------------------------*/
#include
main()
{
inti,j,m,s,k,a[100];
for(i=1;i<=1000;i++)
{
m=i;s=0;k=0;
for(j=1;j /***********SPACE***********/ if(【? 】) { s=s+j; /***********SPACE***********/ 【? 】=j; } if(s! =0&&s==m) { /***********SPACE***********/ for(j=0;【? 】;j++) printf("%4d",a[j]); printf("=%4d\n",i); } } } 答案: 1).m%j==0 2).a[k++] 3).j 第6题(9.0分)题号: 10 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 输出由字符w构造成的形如W的图形。 wwww wwww wwww wwww wwww -------------------------------------------------------*/ voiddraw(intn) { inti,j,k,r,m; /***********SPACE***********/ for(i=1;【? 】;i++) { for(j=1;j<=2;j++) { for(r=1;r printf("w"); /***********SPACE***********/ for(k=1;【? 】;k++)printf(""); printf("w"); for(m=1;m } /***********SPACE***********/ 【? 】; } } #include main() { intn; clrscr(); printf("inputanumber: "); /***********SPACE***********/ 【? 】; draw(n); } 答案: 1).i<=n或n>=i 2).k<=2*n-2*i或2*n-2*i>=k 3).printf("\n") 4).scanf("%d",&n) 第7题(9.0分)题号: 397 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 两个乒乓球队进行比赛,各出三人。 甲队为a,b,c三人,乙 队为x,y,z三人。 已抽签决定比赛名单。 有人向队员打听比 赛的名单。 a说他不和x比,c说他不和x,z比,请编程序找出 三队赛手的名单。 -------------------------------------------------------*/ main() { chari,j,k;/*i是a的对手,j是b的对手,k是c的对手*/ for(i='x';i<='z';i++) for(j='x';j<='z';j++) { /***********SPACE***********/ if(【? 】) /***********SPACE***********/ for(k='x';【? 】;k++) { /***********SPACE***********/ if(【? 】) { /***********SPACE***********/ if(i! ='x'&&k! =【? 】) printf("orderisa--%c\tb--%c\tc--%c\n",i,j,k); } } } } 答案: 1).i! =j或i! =j 2).k<='z'或'z'>=k 3).i! =k&&j! =k或i! =k&&j! =k 4).'z' 第8题(9.0分)题号: 470 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 从两个数组中分别提取任意元素x[i],y[j],问|x[i]-y[j]| 的最小值是多少? -------------------------------------------------------*/ #include /***********SPACE***********/ #definemin(x,y)(【? 】) intmin_distance(intx[],inty[],intm,intn) { intminimum=INT_MAX; intindex_x=0,index_y=0; while(index_x /***********SPACE***********/ if(【? 】) { minimum=min(minimum,x[index_x]-y[index_y]); index_y++; } else { minimum=min(minimum,y[index_y]-x[index_x]); /***********SPACE***********/ 【? 】; } returnminimum; } #include voidmain(void) { intx[]={1,3,7,11,18}; intm=sizeof(x)/sizeof(int); inty[]={4,5,8,13,22}; intn=sizeof(y)/sizeof(int); inti,min_distance(int[],int[],int,int); printf("\nComputeMinimumDistanceBetweenTwoSortedArrays"); printf("\n=================================================="); printf("\n\nGivenArray#1: "); for(i=0;i printf("%5d",x[i]); printf("\n\nGivenArray#2: "); for(i=0;i printf("%5d",y[i]); printf("\n\nMinimumDistance=%d",min_distance(x,y,m,n)); } 答案: 1).x x: y或y>x? x: y 2).x[index_x]>=y[index_y]或y[index_y]<=x[index_x] 3).index_x++或index_x=index_x+1或++index_x 第9题(9.0分)题号: 30 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 输入字符串,再输入一个字符,将字符串中与输入字符相 同的字符删除。 -------------------------------------------------------*/ #include"stdio.h" voidfun(chara[],charc) { inti,j; /***********SPACE***********/ for(i=j=0;【? 】;i++) if(a[i]! =c)a[j++]=a[i]; /***********SPACE***********/ 【? 】; } main() { chara[20],cc; gets(a); /***********SPACE***********/ 【? 】; /***********SPACE***********/ 【? 】; puts(a); } 答案: 1).a[i]! ='\0'或a[i]或a[i]! =NULL 2).a[j]='\0'或a[j]=NULL或a[j]=0 3).cc=getchar()或scanf("%c",&cc) 4).fun(a,cc) 第10题(9.0分)题号: 467 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 输入一个整数n,打印自然数1-n的全排列方案。 -------------------------------------------------------*/ #include #include #defineMAXSIZE20 #defineROTATE(p) { inti,temp;\ temp=perm[p];\ for(i=p-1;i>=0;i--)\ perm[i+1]=perm[i];\ perm[0]=temp;\ } voidmain(void) { intperm[MAXSIZE]; intposition; intn; inti; charline[100]; printf("\nPermutationbyRotationMethod"); printf("\n=============================="); printf("\n\nNumberofElements-->"); gets(line); n=atoi(line); for(i=0;i perm[i]=i+1; position=n-1; /***********SPACE***********/ while(【? 】) { printf("\n"); for(i=0;i /***********SPACE***********/ printf("%d",【? 】); /***********SPACE***********/ position=【? 】; ROTATE(position); while(perm[position]==position+1&&position! =0) { position--; ROTATE(position); } } } 答案: 1).position! =0 2).perm[i] 3).n-1或n-1 第11题(9.0分)题号: 395 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 输入3个数a,b,c,按从小到大的顺序输出。 -------------------------------------------------------*/ main() { voidswap(int*p1,int*p2); intn1,n2,n3; int*pointer1,*pointer2,*pointer3; printf("pleaseinput3number: n1,n2,n3: "); scanf("%d,%d,%d",&n1,&n2,&n3); pointer1=&n1; pointer2=&n2; pointer3=&n3; /***********SPACE***********/ if(【? 】)swap(pointer1,pointer2); /***********SPACE***********/ if(【? 】)swap(pointer1,pointer3); /***********SPACE***********/ if(【? 】)swap(pointer2,pointer3); printf("thesortednumbersare: %d,%d,%d\n",n1,n2,n3); } /***********SPACE***********/ voidswap(【? 】) int*p1,*p2; { intp; p=*p1;*p1=*p2;*p2=p; } 答案: 1).n1>n2或n2 2).n1>n3或n3 3).n2>n3或n3 4).p1,p2 第12题(9.0分)题号: 443 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 企业发放的奖金根据利润提成。 利润(I)低于或
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 填空
![提示](https://static.bingdoc.com/images/bang_tan.gif)