功能:用冒泡法对数组a中的n个整数非降序排序。 请改正程序中的错误。 void swap(int *x, int *y){ int z; (1) } void bubbleSort(int a[], int n) { int i, j; for(i=0; i<n-1; i++){ (2) if((3) ) { (4) ; } int main(){ i, a[5]="{5,4,1,2,3}," n="5;" (5) return 0; (1)a. z="x;" x="y;" y="z;" b. *x="*y;" *y="z;" c. d. *z="*x;" a. for(j="1;" j++) j>0; j--) D. for(j=i; j<n-1; j++) (3) a. a[i]>a[j] B. a[i]>a[i+1] C. a[j]>a[j+1] D. a[i]>a[0] (4) A. swap(a+i, a+i+1) B. swap(a[i],a[i+1]) C. swap(a[j],a[j+1]) D. swap(a+i, a+j) (5) A. bubbleSort(int a[], int n) B. bubbleSort(a[], n) C. bubbleSort(a[5], n) D. bubbleSort(a, n)
第1题
第4题
OUT58.DAT文件中。
例如:5591是素数,则该数满足条件,存入数组b中,且个数cnt=cnt+1。
9812是非素数,则该数不满足条件,忽略。
注意:部分源程序已给出。
程序中已定义数组:a[300],b[300],已定义变量:cnt。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
试题程序:
include<stdio.h>
int a[300],b[300],cnt=0;
int isP(int m)
{
int i;
for(i=2;i<m;i++)
if(m%i==0) return 0;
return 1;
jsValue()
{
}
main ( )
{
int i;
readDat ();
jsValue();
writeDat ();
printf ("cnt=~/od\n",cnt);
for (i=0; i<cnt; i++)
printf("b[%d]=%d\n",i,b[i]);
}
readDat ( )
{
FILE *fp;
int i;
fp=fopen ("IN58. DAT", "r");
for (i=0; i<300; i++)
fscanf (fp, "%d, '", &a [i] );
fctose(fp);
}
writeDat ()
{
FILE *fp;
int i;
fp=fopen ( "OUT58. DAT", "w" );
fprintf ( fp, "%d\n", cnt);
for (i=0; i<cnt; i++)
fprintf(fp, "%d\n",b[i]);
fclose (fp);
}
第5题
例如:5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。
9812是非素数,则该数不满足条件,忽略。
注意:部分源程序已给出。程序中已定义数组:a[300]、b[300];已定义变量:cnt。请勿改动主函数main()、读函数 readDat()和写函数writeDat()的内容。
[试题程序]
include<stdio.h>
int a[300],b[300],cnt=0;
int isP(int m)
{
int i;
for(i=2;i<m;i++)
if(m%i==0)return 0;
return 1;
}
void jsValue()
{
}
main()
{
int i;
readDat();
jsValue();
writeDat();
for(i=0;i<cnt;i++)printf("b[%d]=%d\n",i,b[i]);
}
readDat()
{
FILE *fp;
int i;
fp=fopen("IN14.DAT","r");
for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);
fclose(fp);
}
writeDat()
{
FILE *fp;
int i;
fp=fopen("OUT14.DAT","w");
fprintf(fp,"%d\n",cnt);
for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]);
fclose(fp);
}
第6题
例如:5591是素数,则该数满足条件,存入数组b中,且个数cnt=cnt+1。
9812是非素数,则该数不满足条件,忽略。
注意:部分源程序已给出。
程序中已定义数组:a[300],b[300],已定义变量:cnt。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
试题程序:
include<stdio.h>
int a[300],b[300],cnt=0;
int isP(int m)
{
int i;
for(i=2;i<m;i++)
if(m%i==0) return 0;
return 1;
}
jsValue()
{
}
main()
{
int i;
readDat();
jsValue();
writeDat();
printf("cnt=%d\n",cnt);
for(i=0;i<cnt;i++)
printf("b[%d]=%d\n",i,b[i]);
}
readDat ( )
{
FILE *fp;
int i;
fp= fopen ( "IN58. DAT", "r" );
for (i=0; i<300; i++)
fscanf(fp,"%d,",&a[i])
fclose (fp);
}
writeDat ( )
{
FILE *fp;
int i;
fp=fopen ( "OUT58. DAT", "w" );
fprintf(fp,"%d\n",cnt);
for (i=0; i<cnt; i++)
fprintf (fp, "%d\n", b[i]
fclose(fp);
}
第7题
【C 代码】 include < stdio.h> void quicksort(int a[] ,int n) { int i ,j; int pivot = a[0]; //设置基准值 i =0; j = n-l; while (i< j) { while (i<j &&(1)) j-- //大于基准值者保持在原位置 if (i<j) { a[i]=a[j]; i++;} while (i,j &&(2)) i++; //不大于基准值者保持在原位置 if (i<j) { a[j]=a[i]; j--;} } a[i] = pivot; //基准元素归位 if ( i>1) (3) ; //递归地对左子序列进行快速排序 if ( n-i-1>1 ) (4) ; //递归地对右子序列进行快速排序 } int main () { int i,arr[ ] = {23,56,9,75,18,42,11,67}; quicksort ( (5) ); //调用 quicksort 对数组 arr[ ]进行排序 for( i=0; i<sizeof(arr) /sizeof(int); i++ ) printf(" %d\t" ,arr[i]) ; return 0; }
第8题
给定个数的数组,其中,为非负整数,求中的最大数. 考虑下述算法A,先把数组从中间划分成两个个数的数组和,在和中用同样的算法通过数之间的比较运算找最大数,如果的最大数是,的最大数是,那么就是问题的解。 假设对于个数的数组,在最坏情况下算法A的比较次数是,则的精确值是?
A、
B、
C、
D、
E、
F、
第9题
#include"stdio.h"
main()
{int i,a[20],s,n;
s=n=0:
for(i=0;i<20;i++)scanf("%d",&a[i])
for(i=0;i<20;i++)
{if(a[i]<0)break;
S+=a[i];n++;
}
printf("s=%d\t,n=%d\n",s,n);
}
错误:______
改正:______
参考答案:错误
第10题
部分源程序已给出。
请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。
include<stdio.h>
include<conio.h>
define MAXNUM 200
int xx[MAXNUM];
iht totnum=0;
iht totcnt=0;
double totpjz=0.0;
int readdat(void);
void writedat(void);
void calvalue(void)
{
}
void main ()
{
int i;
clrscr ();
for (i=0; i if (readdat ())
{
printf("Can't open the data file in.dat!\007\n");
return;
}
calvalue ();
printf ( "totnum=%d\n", totnum);
printf ( "totcnt=%d\n" , totcnt );
printf ( "totpj z=%. 21f\n", totpj z);
writedat ();
}
int readdat (void)
{
FILE *fp;
int i=0;
if( (fp=fopen ("in.dar", "r") )==NULL) return 1;
while ( ! feof (fp))
fscanf (fp, "%d, ", &xx [i++] ;
fclose (fp);
return 0;
}
void writedat (void)
{
FILE *fp;
fp=fopen ( "out. dar", "w" )
fprint f ( fp, "%d\n%d\n%. 21 f\n", totnum, totcnt, totpjz);
fclose (fp);
}
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!