C填空题50题 下载本文

} 答案: 1). 0

2). len++ 或 ++len 或 len=len+1 或 len=1+len 或 len+=1

第9题 (30.0分) 题号:634

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:随机产生10个范围在[0,99]之间,互不相同的正整数存入 数组t,并求出这10个数据的最小值和次小值。其中最小值 存入min1,次小值存入min2。程序中rand()函数功能是产 生一个随机正整数。

--------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。

-------------------------------------------------------*/

#include #include void main(){

int n[100]={0},t[10]; int i=0,k;

int min1=100, min2=100; srand(32767); while(i<10){ do{

k=rand()0; }while(n[k]); n[k]=1;

/***********SPACE***********/ t[【?】]=k; }

for(i=0;i<10;i++){ printf(\ if(t[i]

/***********SPACE***********/ 【?】; min1=t[i]; }

else if(t[i]

}

printf(\} 答案: 1). i++ 2). min2=min1

第10题 (30.0分) 题号:638

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:函数gcd()计算整型数组a中相邻两元素的最大公约数,最 小公倍数,其中最大公约数存入数组b中,最小公倍数存入 数组c中。

--------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。

-------------------------------------------------------*/

#include #include

void gcd(int a[],int n,int b[],int c[]){ int i,x,y,z;

/***********SPACE***********/ for(i=0;i<【?】;i++){ x=a[i]; y=a[i+1]; while(z=x%y){ x=y;y=z; } b[i]=y;

/***********SPACE***********/ c[i]=a[i]*a[i+1]/【?】; } }

int main(){

int a[5]={8,12,5,7,14}; int b[4],c[4]; int i; gcd(a,5,b,c);

for(i=0;i<5;i++)

printf(\ printf(\ for(i=0;i<4;i++)

printf(\ printf(\ for(i=0;i<4;i++)

printf(\ printf(\ getch(); return 0; } 答案:

1). n-1 或 =n-2 2). b[i] 或 y

第11题 (30.0分) 题号:639

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:函数reverse()对字符串str进行逆序。

--------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。

-------------------------------------------------------*/

#include #include #include

void reverse(char str[]){ int len, j; char c;

/***********SPACE***********/ len = 【?】(str);

/***********SPACE***********/ for (j=len-1; 【?】; j--){ c=str[j];

str[j]=str[len-1-j]; str[len-1-j]=c; } }

int main(){ char a[80];

printf(\ gets(a);

reverse(a);

printf(\ puts(a); getch(); return 0; } 答案: 1). strlen

2). j>=len/2 或 j>=len>>1 或 j>=(len>>1)

第12题 (30.0分) 题号:640

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:对主函数main()中数组a进行处理:如果相邻元素相同则保留 一个。例如对数组a处理后,它的前11个元素为 {-5,7,-4,25,0,2,4,16,8,5,20}。

--------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。

-------------------------------------------------------*/

#include #include

int main(){

int a[20]={-5,-5,7,-4,-4,25,25,0,0,0,2,4,16,16,8,5,5,5,5,20}; int i,prev,next; prev=0; next=1;

while(next<20){

/***********SPACE***********/ if(a[prev]!=【?】) a[++prev]=a[next]; next++; }

/***********SPACE***********/