二级C考试分笔试和机试两部分,两部分总分均为100分,两部分考试均需60分以上才能合格发放证书。若其中一科(笔试或机试)通过,另一科可在下一次考试中补考,若补考合格发放证书。若二科均在85分以上,在合格证书上将加印“优秀”字样,若二科均在70分以上,在合格证书上将加印“良好”字样。
(一)笔试
笔试内容分两部分。公共基础知识考核内容:30分;C语言基础知识考核内容:70分。题型分析如下:
1、单向选择题40道题,共70分。
分值分布如下:
其中(1)-(10)、(21)-(40)小题,每題2分,(11)-(20)小题,每题1分。
考核内容分布如下:
(1)-(10)小题为公共基础知识考核内容,共计20分;
(11)-(40)小题为C语言知识考核内容,共计50分。
2、填空题15个空,每空2分,共30分。
考核内容分布如下:
(1)-(5)空为公共基础知识考核内容,共计10分;
(6)-(15)空为C语言知识考核内容,共计20分。
(二)机试
机试三道题:程序填空题,30分;程序修改题,30分;程序设计题,40分。
1、程序填空题
通常会给出一段源代码,设计三个空需要你来填写。每空10分。
例如:
#include
#include
#define M 5
#define N 20
void fun(char (*ss)[N])
{ int i, j, k=0, n, m, len;
for(i=0; i { len=strlen(ss[i]);
if(i==0) n=len;
if(len>n) {
/**********found**********/
n=len; ___1___=i;
}
}
for(i=0; i if (i!=k)
{ m=n;
len=strlen(ss[i]);
/**********found**********/
for(j=___2___; j>=0; j--)
ss[i][m--]=ss[i][j];
for(j=0; j /**********found**********/
___3___='*';
}
}
main()
{ char ss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};
int i;
printf("\nThe original strings are :\n");
for(i=0; i printf("\n");
fun(ss);
printf("\nThe result:\n");
for(i=0; i }
2、程序修改题
通常会给出一段源代码,设计2-3个错误需要你来修改。修改好一处错误得分10分(若有3处错误)或15分(若有2处错误)。例如:
#include
long fun(int g)
{
/**********found**********/
switch(g);
{ case 0: return 0;
/**********found**********/
case 1 ;case 2 : return 1 ;
}
return( fun(g-1)+fun(g-2) );
}
main()
{ long fib; int n;
printf("Input n: "); scanf("%d",&n); printf("n = %d\n",n);
fib=fun(n);
printf("fib = %d\n\n",fib);
}
3、程序设计题
通常会给出一段源代码,要求你来设计其中的一个函数。完全编好,且运行正确得分40分,无中间过程得分。例如: