程序填空题 1.
下述程序是一个选择排序程序,请填完整空缺部分。
Void select _sort (int p [ ], int n ) { int i, j, k, temp; for ( i =0 ;i for ( j=i+1 ; j if (k!=i) { temp= p[k]; p[k]=p[i];p[i]=temp;} } } main() { int i,a[20]; for (i =0; i<20; i++) scanf (“%d”,&a[i]); select_sort(a,20); for ( i = 0;i<20; i++) printf (“%d\\t”,a*i+;printf (“\\n”); } 2. 下面程序的功能是:计算1到10之间的奇数之和及偶数之和, 请填空。 # include { int a, b, c , i; a = c = 0 ; for(i=0;i<=10;i+=2) { a + = i ; b=i+1 ; c += b ; } printf ( “偶数之和= %d \\n “, a ) ; printf ( “奇数之和= %d \\n “, c – 11 ); } 3. 下面程序的功能是:输出100 以内能被 3 整除且个位数为 6 的所有整数,请填空: main() { int i , j ; for ( i = 0 ;i<10; i + + ) { j = i * 10 + 6 ; if ( j%3!=0) continue ; printf ( “ %d” , j ) ; } } 4.程序读入20个整数,统计非负数的个数,并计算非负数之和。 #include “stdio.h” main() { int I,a[20],s,count; ____s=count=0____; for(I=0;I<20;I++) scanf(“%d”,_&a[i]__); for(I=0;I<20;I++) { if(a[I]<0) continue; s+=a[I]; count++ } printf(“s=%d\\t count=%d\\n”,s,count); } 5.下面的程序用以分别求出数组两条对角线上的各元素之和。 #include “stdio.h” main() { int a[3][3]={1,2,3,4,5,6,7,8,9}; int sum1,sum2,k,j; sum1=sum2=0; for(k=0;k<3;k++) sum1+=a[i][i]; for(k=0;k<3;k++) for(j=2;j>=0;j--) if(_(i+j)==2________) sum2+=a[k][j]; printf(“sum1=%d\\tsum2=%d\\n”,sum1,sum2); } 6.已知整型数组w中的元素已经由小到大排序,函数fun用以将整数x插入到数组w中,要求插入后的数组元素依然有序。其中n所指的存储单元中存放着数组元素的个数。 void fun(int *w, int x, int *n) { int k,p=0; w[*n]=x; while(x>w[p]) __p++____; for(k=*n;k>p;k--) w[k]=__w[k-1]__; ___w[p]=x____________; ++*n; } 7.函数strlen用于确定一个给定字符串str的长度(不包括‘\\0’)。 strlen(char *str) { int num=0; while(*str++!=’\\0’) ++num; return(_num___); } 8.已知第一个学生的年龄为10岁,,第二个学生年比第一个学生的年龄大2岁,??以此类推,以下程序用于计算学生年龄,请补充完整。 #include “stdio.h” age(int n) { int c; if(n= =1) c=10; else c=__age(n-1)+2____; return( c ) ; } main() { int n=5; printf(“age:%d\\n”,age(n)); }