2011年计算机等级二级C语言章节习题及答案(11)
填空题(请将每一个空的正确答案写在答题卡相应序号后。) 7.31 下面程序的功能是输出数组s中最大元素的下标,请填空。 main() { int k, p,s[]={1, -9, 7, 2, -10, 3}; for(p =0, k =p; p< 6; p++) if(s[p]>s[k])【1】 printf("%d\n", k); } 正确答案:k=p; 7.32 以下程序可把输入的十进制数以十六进制数的形式输出,请填空。 main() { char b[17]={"0123456789ABCDEF"}; int c[64],d,i=0,base=16; long n; printf("Enter a number:\n");scanf("%ld",&n); do { c[i]=【2】; i++; n=n/base; }while(n!=0); printf("Transmite new base:\n"); for(--i;i>=0;--i) { d=c[i]; printf("%c",b【3】); } printf("\n"); } 正确答案: nose [d] 7.33 以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。 请填空。 #include #define N 80 int fun(int a[], int n) { int i,j=1; for(i=1;iif(a[j-1]【4】a[i]) a[j++]=a[i]; 【5】; } main() { int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, i, n=19; printf("The original data :\n"); for(i=0; iprintf("=",a[i]); n=fun(a,n); printf("\nThe data after deleted :\n"); for(i=0; iprintf("=",a[i]); printf("\n\n"); } 正确答案: != return j 7.34 下列程序的输出的结果是 【6】 , 【7】 。 main() { int i,j row,colum,m; static int array[3][3]={{100,200,300},{28,72,-30}{-850,2,6}}; m=array[0][0]; for(i=0;i<3;i++) for(j=0;j<3;j++) if(array[i][j]<m) { m=array[i][j]; colum=j; row=i; } printf("%d,%d,%d\n",m,row,colum); } 正确答案:-850,~2,0 7.35 下面程序是求出数组arr的两条对角线上元素之和,请填空。 #include "stdio.h" main() { int arr[3][3]={2,3,4,8,3,2,7,9,8},a=0,b=0,i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) if( 【8】) a=a+arr[i][j]; for(i=0;i<3;i++) for( 【9】 ;j>=0;j--) if( 【10】) b=b+ arr[i][j]; printf("%d,%d\n",a,b); } 正确答案:i==j j=2 i+j==2 相关资料 |