/********found********/ p = j
for (i=j; i { /********found********/ p = i; t = a[p]; a[p] = a[i]; a[i] = t; } } } main() { int a[N] = {9, 6, 8, 3, -1}, i, m = 5; printf(\ for (i=0; i for (i=0; i printf(\ } 第 1 处:p = j 应改为 p=j; 第 2 处:p = i 应改为 p=j; 编程题 请编写一个函数 int fun(int*s,int t,int*k),用来求出数组的最大 元素在数组中的下标并存放在 k 所指的存储单位中。 例如,输入如下整数: 876 675 896 101 301 401 980 431 451 777 则输出结果为:6,980。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。 试题程序: # include # include int a[10]={876,675,896,101,301,401,980,431,451,777}, k ; FILE *out; fun(a,10,&k); printf(\ out = fopen(\ fprintf(out, \k, a[k]); fclose(out); } 答案是: void fun (int *s,int t,int *k) { int I ,max; max=s[0]; for(i=0;i max=s[i]; *k=I; } } 第 8 套 填空题 请补充 main 函数,该函数的功能是:从键盘输入一组整数,使 用条件表达式找出最大的整数。当输入的整数为 0 时结束。 例如,输入 1 2 3 5 4 0 时,最大的数为 5。 请勿改动主函数 main 和其他函数中的任何内容,仅在 fun 函数 的横线上填入所编写的若干表达式或语句。 试题程序: #include #include int num[N]; int i = -1; int max = 0; printf(\integer number: \\n\ do { i++; printf(\i); scanf(\max = } while( } 第 1 处填空:&num[i]或 num+i 第 2 处填空:max 3 2 ); 1 ); num[i] : max; printf(\ 改错题 下列给定程序中,函数 fun 的功能是:在字符串 str 中找出 ASCII 码值最大的字符,将其放在第一个位置上;并将该字符前的原字 符向后顺序移动。例如,调用 fun 函数之前给字符串输入: ABCDeFGH,调用后字符串中的内容为 eABCDFGH 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序 的结构! 试题程序:#include /********found********/ void fun(char *p); { char max, *q; int i = 0; max = p[i]; while (p[i] != 0) { if (max < p[i]) { /********found********/ max = p[i]; p = q+i; } i++; } while (q > p) { *q = *(q-1); q--; } p[0] = max;
计算机二级C语言上机题库及答案(100套)



