现在的位置: 首页 > 14 二级C语言 > 正文

2011年9月全国二级C上机真题第5~6套

2013年02月25日 14 二级C语言 ⁄ 共 896字 ⁄ 字号 暂无评论

【程序填空题_6】给定程序中,函数fun的功能是:统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include  <stdio.h>
#include  <stdlib.h>
void fun(char  *s, int  a, double  f)
{
    /**********found**********/
    ____________ fp;
    char  str[100], str1[100], str2[100];
    int  a1;
    double  f1;
    fp = fopen("file1.txt", "w");
    fprintf(fp, "%s  %d  %f\n", s, a, f);
    /**********found**********/
    _________________;
    fp = fopen("file1.txt", "r");
    /**********found**********/
    fscanf(__________,"%s%s%s", str, str1, str2);
    fclose(fp);
    a1 = atoi(str1);
    f1 = atof(str2);
    printf("\nThe result :\n\n%s %d %f\n", str, a1, f1);
}
main()
{
    char  a[10]="Hello!";
    int  b=12345;
    double  c= 98.76;
    fun(a,b,c);
}

【程序修改题_6】给定程序MODI1.C中函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。
例如,当字符串中的内容为:”abcdabfabcdx”,t中内容为:”ab”时,输出结果是:abcdx。
当字符串中的内容为:”abcdabfabcdx”,t中内容为:”abd”时,输出结果是:not be found!。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define    N  10
typedef  struct  ss {
    char  num[10];
    int  s;
} STU;
STU *fun(STU  a[], int  m)
{
    STU  b[N], *t;
    int  i,j,k;
    /**********found**********/
    t=(STU *)calloc(sizeof(STU),m)
      for(i=0; i<N; i++)  b[i]=a[i];
    for(k=0; k<m; k++) {
        for(i=j=0; i<N; i++)
            if(b[i].s > b[j].s)  j=i;
        /**********found**********/
        t(k)=b(j);
        b[j].s=0;
    }
    return  t;
}
outresult(STU  a[], FILE  *pf)
{
    int  i;
    for(i=0; i<N; i++)
        fprintf(pf,"No = %s  Mark = %d\n", a[i].num,a[i].s);
    fprintf(pf,"\n\n");
}
main()
{
    STU  a[N]= { {"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},
        {"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}
    };
    STU  *pOrder;
    int  i, m;
    printf("***** The Original data *****\n");
    outresult(a, stdout);
    printf("\nGive the number of the students who have better score:  ");
    scanf("%d",&m);
    while( m>10 ) {
        printf("\nGive the number of the students who have better score:  ");
        scanf("%d",&m);
    }
    pOrder=fun(a,m);
    printf("***** THE  RESULT *****\n");
    printf("The top  :\n");
    for(i=0; i<m; i++)
        printf("   %s    %d\n",pOrder[i].num , pOrder[i].s);
    free(pOrder);
}

【程序设计题_6】函数fun的功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。
例如,当a=45,b=12时,调用该函数后,c=5142。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#define    N    80
int  fun(int  a[], int  n)
{
 
}
 
main()
{  int  a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20;
   printf("The original data :\n");
   for(i=0; i<n; i++)printf("%3d",a[i]);
   n=fun(a,n);
   printf("\n\nThe data after deleted :\n");
   for(i=0;i<n;i++)printf("%3d",a[i]); printf("\n\n");
}

抱歉!评论已关闭.