1、 C语言程序设计练习题--程序填空 〖第2题〗(练习题所在文件夹:30) /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:以下程序的功能是用冒泡法对数组a 进行由小到大的 排序。 -------------------------------------------------------*/ void fun(int a[],int n) { int
2、i,j,t; /***********SPACE***********/ for (j=0; 【?】;j++) /***********SPACE***********/ for (i=0; 【?】;i++) /***********SPACE***********/ if(【?】) {t=a[i];a[i]=a[i+1];a[i+1]=t;} } main() { int i,a[10]={3,7,5,1,2,8,6,4,10,9}; /***********SPACE***********/ 【?】; for(i=0;i<1
3、0;i++)
printf("%3d",a[i]);
}
答案:
1). j<=n-1 或 n-1>=j 或 j<=-1+n 或 -1+n>=j 或 j 4、
【程序填空】
---------------------------------------------------------
函数fun的功能是:
求有5个元素的一维数组各元素的和。
-------------------------------------------------------*/
float fun(float a[ ])
{int i;
float s=a[0];
for(i=1;i<5;i++)
/***********SPACE***********/ 5、
s+=【?】[i];
/***********SPACE***********/
return 【?】;
}
void main()
{float sco[5],sum;
int i;
printf("\ninput 5 scores:\n");
for(i=0;i<5;i++)
/***********SPACE***********/
scanf("%f",【?】);
/***********SPACE***********/
sum=fun(【?】);
printf("sum score is %5.2f\n",sum);
}
答案:
1). 6、 a
2). s
3). &sco[i] 或 sco+i
4). sco 或 &sco[0]
〖第5题〗(练习题所在文件夹:5)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:以下程序是用选择法对10个整数按升序排列,程序中有4个空,
填空使程序完整。
------------------------------- 7、/
/***********SPACE***********/
【?】
main()
{
int i,j,k,t,a[N];
for(i=0;i<=N-1;i++)
scanf("%d",&a[i]);
for(i=0;i 8、]) k=j;
/***********SPACE***********/
if(【?】){t=a[i];a[i]=a[k];a[k]=t;}
}
printf("output the sorted array:\n");
for(i=0;i<=N-1;i++)
printf("%5d",a[i]);
printf("\n");
}
答案:
1). #define N 10
2). k=i;
3). j 9、10>j 或 j<=9 或 9>=j
4). k!=i 或 j<=N-1 或 N-1>=j
〖第6题〗(练习题所在文件夹:17)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:以下程序的功能是将一个数组中的元素按逆序存放。
-------------------------------------------------------*/
#define N 7 10、
main ()
{
static int a[N]={12,9,16,5,7,2,1},k,s;
printf("\n the origanal array:\n");
for (k=0;k 11、\n the changed array:\n");
for (k=0;k 12、a[-k+N-1] 或 *(a+k)=*(a+N-k-1) 或 a[6-k]=s
3). a[N-k-1]=s 或 a[N-1-k]=s 或 a[6-k]=s 或 a[N-k-1]=s 或 *(a+N-k-1)=s
4). printf
〖第7题〗(练习题所在文件夹:604)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:从键盘上输入20个元素的值 13、存入一维数组m中,然后将下标
为(0、2、4、6、8、10……18)的元素值赋值给数组n,最
后输出数组n的内容。请填空
-------------------------------------------------------*/
main()
{
int m[20],n[10];
int a,b=0;
for(a=0;a<20;a++)
{
/***********SPACE***********/
scanf("%d",【?】);
/***********SPACE***********/
14、 if(【?】)
{
n[b]=m[a];
/***********SPACE***********/
【?】
}
}
/***********SPACE***********/
for(a=0;【?】;a++)
printf("%d\t",n[a]);
}
答案:
1). &m[a]
2). a%2==0 或 a%2 或 a%2!=1
3). b++; 或 b+=1; 或 b=b+1; 或 b=1+b;
4). a<1 15、0 或 a<=9 或 a 16、s;
int i,j,n;
/***********SPACE***********/
【?】
scanf("%d",&n);
/***********SPACE***********/
for(i=1;i<=n; 【?】)
{
f=1;
/***********SPACE***********/
for(j=1; 【?】;j++)
/***********SPACE***********/
【?】
s=s+f;
}
printf("n=%d,s=%ld\n",n,s);
}
17、答案:
1). s=0;
2). i+=2 或 i=i+2 或 i++,i++ 或 i=2+i
3). j<=i 或 i>=j 或 jj
4). f=f*j; 或 f*=j;
〖第10题〗(练习题所在文件夹:28)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:下面函数为二分法查找key值。数组中元素 18、已递增排序,
若找到key则返回对应的下标,否则返回-1。
-------------------------------------------------------*/
fun(int a[],int n,int key)
{
int low,high,mid;
low=0;
high=n-1;
/***********SPACE***********/
while(【?】)
{
mid=(low+high)/2;
/***********SPACE***********/
if(key 19、SPACE***********/
else if(key>a[mid]) 【?】;
/***********SPACE***********/
else 【?】;
}
return -1;
}
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int b,c;
b=4;
c=fun(a,10,b);
if(c==-1)printf("not found");
else printf("position %d\n",c);
}
答案:
1). 20、low<=high 或 high>=low
2). high=mid-1
3). low=mid+1
4). return mid 或 return (mid)
〖第14题〗(练习题所在文件夹:611)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:以每行5个数输出500以内能被7或17整除的偶数,并求出其和。
程序中有 21、4个空,填空使程序完整。
-------------------------------------------------------*/
#include 22、 {sum=sum+i;
n++;
printf("%6d",i);
/***********SPACE***********/
if(【?】)printf("\n");
}
printf("\ntotal=%d",sum);
}
答案:
1). sum=0;
2). i<=500 或 500>=i 或 i<501 或 501>i 或 !(i>500)
3). i%7==0||i%17==0 或 i%17==0||i%7==0 或 (i%7==0)||(i%17==0) 或 (i%17==0)| 23、i%7==0) 或 i/7*7==i||i/17*17==i 或 (i/7*7==i)||(i/17*17==i)
4). n%5==0
或 n/5*5==n
〖第15题〗(练习题所在文件夹:11)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:以下程序的功能是产生并输出如下形式的方阵。
1 2 2 2 2 2 1
3 1 2 2 2 1 4
3 3 24、1 2 1 4 4
3 3 3 1 4 4 4
3 3 1 5 1 4 4
3 1 5 5 5 1 4
1 5 5 5 5 5 1
-------------------------------------------------------*/
main()
{
int a[7][7];
int i,j;
for (i=0;i<7;i++)
for (j=0;j<7;j++)
{
/***********SPACE***********/
if (【?】) a[i][j]=1;
/***********SPACE****** 25、/
else if (i 26、 }
}
答案:
1). i==j||i+j==6
2). a[i][j]=2
3). i 27、输出斐波那契(Fibonacci)数列(1,1,2,3,5,8,13……)的前20项。
-------------------------------------------------------*/
main()
{
/***********SPACE***********/
int f1,f2,f3,【?】;
f1=1;
/***********SPACE***********/
【?】;
printf("%8d%8d",f1,f2);
for(j=3;j<=20;j++)
{
/***********S 28、PACE***********/
【?】;
printf("%8d",f3);
f1=f2;
/***********SPACE***********/
【?】;
}
}
答案:
1). j
2). f2=1
3). f3=f1+f2 或 f3=f2+f1
4). f2=f3
〖第18题〗(练习题所在文件夹:22)
/*--------------------------------------------- 29、
【程序填空】
---------------------------------------------------------
题目:以下程序的功能是求一个二维数组中每行的最大值和每行
的和。
-------------------------------------------------------*/
#include "stdlib.h"
main()
{
int a[5][5],b[5],c[5],i,j,k,s=0;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j]=r
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818