int array[20]; int i,t; i=0; while(i<20) {
t=rand()0+900; /***********SPACE***********/ if (【?】) {
array[i]=t; printf(\ i++;
if (!(i%5)) printf(\ } }
printf(\} 答案:
1). m%i!=0 或 m%i>0 或 m%i 2). isPrime(t) 或 isPrime(t)!=0
第16题 (30.0分) 题号:644
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
题目:程序首先将随机产生的12个水仙花数存放于一个3行4列的 数组array中,然后找出其中的最大数所在的行号与列号, 并将行号与列号输出在屏幕上。
说明:所谓水仙花数是指其各位数字立方和等于该数本身的数。
--------------------------------------------------------- 注意:除要求填空的位置之外,请勿改动程序中的其他内容。 且不能使用C语言的库函数
-------------------------------------------------------*/
#include
int narcissus()
{
int M,N,t,sum,find=0;
while(!find) {
sum=0;
N=rand()?0+100; M=N; while(M) {
t=M;
/***********SPACE***********/ 【?】; M=M/10; }
if(N==sum) find=1; }
return N; }
int max_value(int array[][4],int rw[]) {
int i,j,max; max=array[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) if(max
max=array[i][j]; rw[0]=i; rw[1]=j; } return max; }
void main() {
int array[3][4]; //用于存放水仙花数
int row_col_num[2]; //用于存放最大水仙数的行列号 int i,j;
srand((unsigned)time(NULL)); printf(\ for(i=0;i<3;i++)
{
for(j=0;j<4;j++) {
array[i][j]=narcissus(); printf(\ }
printf(\ }
/***********SPACE***********/ printf(\【?】);
printf(\ printf(\} 答案:
1). sum=sum+t*t*t 或 sum+=t*t*t 2). max_value(array,row_col_num)
第17题 (30.0分) 题号:645
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
题目:以下程序将5个字符串从小到大进行排序。字符串比较的规 则为:将两个字符串自左至右逐个字符按ASCII码值大小进 行比较,直到出现不同的字符或遇到'\\0'为止。
如果全部字符相同,则认为相等;若出现不相同的字符, 则以第一个不相同字符的比较结果为准。
--------------------------------------------------------- 注意:除要求填空的位置之外,请勿改动程序中的其他内容。 且不能使用C语言的库函数进行填空。
-------------------------------------------------------*/
#include
/*函数compstr(char str1[],char str2[])实现字符串str1和 字符串str2的比较,若str1等于str2,则返回0;若str1小于 str2,则返回-1;若str1大于str2,则返回1*/
int compstr(char str1[],char str2[]){
int flag=0; int i=0;
while (str1[i]&&str2[i]&&!flag) {
/***************SPACE***************/
if (【?】) flag=1; else if (str1[i] if(!str1[i] && str2[i]) flag=-1; else if(str1[i] && !str2[i]) flag=1; return flag; } void main(){ char ls[N][MAXLEN]={\ char t[MAXLEN]; int i, j; for(i=0;i /***************SPACE***************/ if(【?】>0){ strcpy(t,ls[j]); strcpy(ls[j],ls[j+1]); strcpy(ls[j+1],t); } printf(\ for(i=0; i 1). str1[i]>str2[i] 2). compstr(ls[j],ls[j+1]) 第18题 (30.0分) 题号:646 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:程序实现在一个升序排列的整数数组中插入一个数,使数组 仍保持升序排列。 --------------------------------------------------------- 注意:除要求填空的位置之外,请勿改动程序中的其他内容。 且不能使用C语言的库函数进行填空。 -------------------------------------------------------*/ #include /*输出数组元素*/ void print_array(int a[],int n) { int i; for(i=0;i printf(\ printf(\} /*在数组中插入一个元素,使其仍然有序,x为待插入的数, n为数组中原有元素的个数*/ void insert_array(int a[],int n,int x){ int i=n-1; int find=0; while(i>=0 && !find){ if(x /***************SPACE***************/ 【?】 i--; } else find=1; } a[i+1]=x; } void main(){ int a[11]={1,3,5,8,11,13,17,21,26,30},x; printf(\ print_array(a,10); printf(\ scanf(\ insert_array(a,10,x); printf(\ /*调用print_array输出插入元素后的数组*/ /***************SPACE***************/