计算机二级C语言编程题库100题
2011,____年上机题 100 题库 1 第 1 题 m 个人的成绩存放在 score 数组中,请编写函数 fun,它的功能 是将低于平均分的人作为函数值返回,将低于平均分的分数放在below 所指 定的函数中。 答案 int funint score[],int m,int below[] { int i,k0,aver0; fori0;i<m;i averscore[i]; aver/m; fori0;i<m;i ifscore[i]<aver { below[k]score[i]; k; } return k; } 2 第 2 题 请编写函数 fun,它的功能是求出 1 到 100 之内能北 7 或者 11 整除,但不能同时北 7 和 11 整除的所有证书,并将他们放在 a 所指的数组中, 通过 n 返回这些数的个数。 1 1 / 7070 答案 void funint *a, int *n { int i,j0; fori2;i<1000;i if i70 || i110 *nj; } 3 第 3 题 请编写函数 void funint x,int pp[],int *n,它的功能是求出能整除 x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数 的个数通过形参 n 返回。 答案 void funint x, int pp[ ], int *n { int i1,j0;k0,*tpp; fori0;i<x;i ifi20 { t[j]I; j; } 2 2 / 7070 fori0;i<j;i ifxt[i]0 { pp[k]t[i]; k; } *nk; } 4 第 4 题 请编写一个函数 void funchar *tt,int pp[],统计在 tt 字符中“a“到 “z“26 各字母各自出现的次数,并依次放在 pp 所指的数组中。 答案 void funchar *tt, int pp[] { int i; for i0;i<26;i pp[i]0; while *tt { switch *tt { case ‘a’ pp[0];break; case ‘b’ pp[1];break; 3 3 / 7070 case ‘c’ pp[2];break; case ‘d’ pp[3];break; case ‘e’ pp[4];break; case ‘f’ pp[5];break; case ‘g’ pp[6];break; case ‘h’ pp[7];break; case ‘i’ pp[8];break; case ‘j’ pp[9];break; case ‘k’ pp[10];break; case ‘l’ pp[11];break; case ‘m’ pp[12];break; case ‘n’ pp[12];break; case ‘o’ pp[14];break; case ‘p’ pp[15];break; case ‘q’ pp[16];break; case ‘r’ pp[17];break; case ‘s’ pp[18];break; case ‘t’ pp[19];break; case ‘u’ pp[20];break; case ‘v’ pp[21];break; case ‘w’ pp[22];break; 4 4 / 7070 case ‘x’ pp[23];break; case ‘y’ pp[24];break; case ‘z’ pp[25];break; } tt; } } 5 第 5 题 请编写一个函数 void funint m,int k,int xx[],该函数的功能是将 大于整数 m 且紧靠 m 的 k 各素数存入 xx 所指的数组中。 答案 void funint m, int k, int xx[] { int g0,I,j,flag1; forim1;i<m*m;i { forj0;j<I;j { ifij0 flag1; else { flag0; 5 5 / 7070 break; } } if flag1 k--; } else break; } } } 6 第 6 题 请编写一个函数 void funchar a[],char[],int n,其功能是删除以 各字符串中指定下标的字符。其中,a 指向原字符串,删除后的字符串存放在b 所指的数组中,n 中存放指定的下标。 答案 void funchar a[],char b[], int n { int I,j0; 6 6 / 7070 for i0;i<LEN;i if in { b[j]a[i]; j; } b[j]‘\0’; } 7 第 7 题 请编写一个函数 int funint *s,int t,int *k,用来求除数组的最大元 素在数组中的下标并存放在 k 所指的储存单元中。 答案 void fun int *s, int t, int *k { int I, max; maxs[0]; fori0;i<t;i if s[i]max { maxs[i]; *kI; } } 7 7 / 7070 8 第 8 题 编写函数 fun,功能是根据以下攻势计算 s,计算结果作为函数值 返回;n 通过形参传入。S11/121/123.1/1234n 答案 float fun int n { int i; float s1.0, t1.0; fori2;i<n;i { tti; ss1/t; } return s; } 9 第 9 题 编写一个函数 fun,它的功能是根据以下公式求 p 的值,结果 由函数值带回。M 与 n 为两个正整数,且要求 mn。 pm/nm-n 答案 float funint m, int n { float p,t1.0; int I; for i1;i<m;i 8 8 / 7070 tt*I; pt; fort1.0,i1;i<n;i tt*I; pp/t; fort1.0,i1;i<m-n;i tt*I; pp/t; return p; } 10 第 10 题 编写函数 fun,它的功能是利用以下的简单迭代方法求方程 cosx-x0 的一个实根。 迭代步骤如下1取 x1 初值为 0.0; 2x0x1,把 x1 的值赋各 x0; 3x1co