蓝桥杯——2014 HIT计算机研究生机试真题(2017.2.2)

来源:互联网 发布:中国核弹头数量 知乎 编辑:程序博客网 时间:2024/05/21 08:59

源代码:

#include <stdio.h>void YHTriangle(int a[][15], int  n);           /*用于计算杨辉三角形*/void PrintYHTriangle(int a[][15], int  n);      /*用于打印杨辉三角形*/int main(){int a[15][15],n;printf("Input  n(n<=15):\n");scanf("%d",&n);YHTriangle(a,n);PrintYHTriangle(a,n);return 0;}void YHTriangle(int a[][15], int  n){int i,j;for(i=0;i<n;i++)for(j=0;j<=i;j++)a[i][j]=1;for(i=2;i<n;i++){for(j=1;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];}}void PrintYHTriangle(int a[][15], int  n){int i,j;for(i=0;i<n;i++){for(j=0;j<=i;j++)printf("%5d",a[i][j]);printf("\n");}}
程序截图:



源代码:

#include <stdio.h>int main(){int i;double t=1,sum=0,volum;for(i=1;i<=64;i++){sum+=t;t*=2;}volum=sum/1.42e8;printf("sum = %e\n",sum);  printf("volum = %e\n",volum);return 0;}
程序截图:



源代码:

#include <stdio.h>#include <string.h>int CountWords(char str[]);int main(){char str[81];printf("Input a string:\n");gets(str);printf("Numbers of words = %d\n",CountWords(str));return 0;}int CountWords(char str[]){int i,num=0;int len=strlen(str);if(str[0]!=' ')num++;for(i=1;i<len;i++){if(str[i]==' ' && str[i+1]!=' ' && str[i+1]!='\0')num++;}return num;}
程序截图:


4. (10分)改错题:编程统计候选人的得票数。设有3个候选人,Li,Zhang,Fun。

要求输入投票总数n,然后每次输入一个得票的候选人的名字(区分大小写),若选民输错候选人姓名,则按废票处理。

选民投票结束后程序自动显示各候选人的得票结果。

请通过分析和调试程序,发现并改正程序中的错误。

注意:将修改后的完整的源程序写在答题区内。

对于没有错误的语句,请不要修改,修改原本正确的语句也要扣分。

当且仅当错误全部改正,且程序运行结果调试正确,

才给加10分,如果只改正了部分错误,则不加分。

#include <string.h>

 

struct person

{

    char name[20];

    int count;

}

 

person leader[3] = {"Li", 0, "Zhang", 0, "Fun", 0};

 

int main()

{

    int i, j;

    char leader_name[20];

 

    scanf("%d\n", &n);

    for (i = 0; i < n; i++)

    {

        scanf("%s", leader_name);

        for (j = 0; j < 3; j++)

            if (leader_name == leader[j].name)

        leader[j].count++;

    }

    printf("\n");

    for (i = 0; i < 3; i++)

        printf("%5s:%d\n", leader[i].name, leader[i].count);

    return 0;

}

程序运行示例如下:

输入

4

Li

Zhang

zha

Fun

输出

   Li:1

Zhang:1

  Fun:1

改正后源代码:

#include <stdio.h>#include <string.h>struct person{    char name[20];    int count;} leader[3] = {"Li", 0, "Zhang", 0, "Fun", 0}; int main(){    int i, j;    char leader_name[20];int n;    scanf("%d\n", &n);    for (i = 0; i < n; i++)    {        scanf("%s", leader_name);        for (j = 0; j < 3; j++)            if (strcmp(leader_name,leader[j].name)==0)        leader[j].count++;    }    printf("\n");    for (i = 0; i < 3; i++)        printf("%5s:%d\n", leader[i].name, leader[i].count);    return 0;}
程序截图:


1 0
原创粉丝点击