for (i=0; i 4.下面程序的功能是:将n各无序整数从小到大排序;判断下面程序的正误,如果错误请改正过来。 main ( ) { int a[100], i, j, p, t, n=20 ; for (j = 0; j for ( i=j+1; i { t = a[j]; a[j] = a[p]; a[p]=t; } } for ( j = 0; j 5.下面程序的功能是:统计子字符串substr在字符串str中出现的次数。例如,若字符串为aaas lkaaas,子字符串为as,则应输出2;判断下面程序的正误,如果错误请改正过来。 main ( ) { char substr[80],str[80]; int i,j,k,num=0; gets(substr); gets(str); for (i = 0, str[i], i++) for (j=i,k=0;substr[k]==str[j];k++,j++) if (substr[k+1]!=?\\0?) { num++; break; } printf(“num=%d”, num); } 五.程序填空题 1.下面程序可求出矩阵a的主对角线上的元素之和,请填(2)空使程序完整。 main ( ) { int a[3][3]={1,3,5,7,9,11,13,15,17} , sum=0, i, j ; for (i=0 ; i<3 ; i++) for (j=0 ; j<3 ; j++) if (【1 】) sum=sum+【2 】; printf(“sum=%d”,sum); } 2.下面程序将十进制整数base转换成n进制,请填(3)空使程序完整。 main ( ) { int i,base,n,j,num[20] ; scanf(“%d”,&n); scanf(“%d”,base) ; do { i++; num[i]=【1 】; n=【2 】; } while (n!=0); for (【3 】) ; printf(“%d”,num[j]) ; } 3.下面程序的功能是输入10个数,找出最大值和最小值所在的位置,并把两者对调,然后输出调整后的10个数,请填(3)空使程序完整。 main ( ) { int a[10],max,min,i,j,k ; for (i=0; i<10; i++) scanf(“%d”,&a[i]); max=min=a[0]; for (i=0; i<10; i++) { if (a[i] 【3 】; for (i=0; i<10; i++) printf(“%d”,a[i]); } 4.下面程序用“插入法”对数组a进行由小到大的排序,请填(3)空使程序完整。 经典算法提示:
相关推荐: