第五届全国信息水平设计大赛C语言程序设计A卷答案

来源:互联网 发布:55开女朋友的淘宝店 编辑:程序博客网 时间:2024/04/29 22:28
#include <stdio.h>#include <conio.h>/*1、编程实现:有二维数组a[3][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}},   将数组a的每一行元素均除以该行上的主对角元素(第1行同除以a[0][0],   第2行同除以a[1][1],...),按行输出新数组。(20分)*/int main(){    double a[3][3] = { { 5.4, 3.2, 8},                       { 6, 4, 3.3 },                       { 7, 3, 1.3 }                     };    int i, j;    double tmp;     //---------------输出原数组------------------------------    puts("原数组内容:");    for (i = 0; i < 3; i ++)    {        for (j = 0; j < 3; j++)        {            printf("%lf  ", a[i][j]);        }        putchar(10);    }    for (i = 0; i < 3; i++)    {        tmp = a[i][i];        for (j = 0; j < 3; j++)        {            a[i][j] /= tmp;        }    }    //---------------输出新数组------------------------------    puts("新数组内容:");    for (i = 0; i < 3; i ++)    {        for (j = 0; j < 3; j++)        {            printf("%lf  ", a[i][j]);        }        putchar(10);    }    getch();    return 0;}#include <stdio.h>#include <conio.h>#include <math.h>/*3、 编程:设x取值为区间[1,20]的整数,求函数f(x)=x-sin(x)- cos(x)    的最大值,要求使用自定义函数实现f(x)功能。(20分)*/double f(int x);int main(){    int i, j;    double maxFx = 0.0, tmp = 0.0;    for (i = 1; i <= 20; i++)    {        tmp = f(i);        if (maxFx - tmp < 1e-7)            maxFx = tmp;    }    printf("maxF(x) = %lf\n", maxFx);    getch();    return 0;}double f(int x){    return (double)(x - sin(x) - cos(x));}#include <stdio.h>#include <conio.h>#include <string.h>/*    4.编写函数fun,通过指针实现将一个字符串反向。要求主函数输入      字符串,通过调用函数fun实现输入字符串反向。(20分)*/void fun(char str[]){   int len = strlen(str);   int i, j;   char tmp;   for (i = 0, j = len-1; i < j; i++, j--)   {       tmp = str[i];       str[i] = str[j];       str[j] = tmp;   }}int main(){    char str[100];    gets(str); //输入字符串    puts("字符串反向前:");    puts(str);    fun(str);    puts("字符串反向后:");    puts(str);    getch();    return 0;}#include <stdio.h>#include <conio.h>#include <string.h>/*   5、已知学生三门课程基本信息如下。请使用结构体编程,计算学生三门   课程平均成绩后,列表输出学生的姓名、数学、英语、计算机、平均分信   息,并按平均分排序。(20分)   姓名  数学 英语 计算机   Mary  93    100   88   Jone   82    90   90   Peter   91    76   71   Rose   100   80   92*//*------------声明结构-------------------*/typedef struct Student{    char name[20];    float math;    float english;    float computer;    float avg;}STU;int cmp(const void *lhs, const void *rhs){    STU *f = (STU *)lhs;    STU *s = (STU *)rhs;    return f->avg - s->avg > 1e-7;}int main(){    STU s[4] = {{"Mary", 93, 100, 88, 0.0}, {"Jone", 82, 90, 90, 0.0},                {"Peter", 91, 76, 71, 0.0}, {"Rose", 100, 80, 92, 0.0}};    float average = 0.0f;    int i, j;    for (i = 0; i < 4; i++)    {        s[i].avg += s[i].math + s[i].english + s[i].computer;        s[i].avg /= 3;    }    //从小到大排序    qsort(s, 4, sizeof(s[0]), cmp);    for (i = 0; i < 4; i++)    {        printf("%-8s%-5.0f%-5.0f%-5.0f%-5.3f\n", s[i].name,               s[i].math, s[i].english, s[i].computer, s[i].avg);    }    return 0;} #include <stdio.h>#include <conio.h>#include <string.h>typedef struct ARTICLE{    char word[15];    int counter;}Article;//判断是否已经存在int isExist(Article *art, int size, char *tmp);int main(){    Article article[200];    char tmp[15];    int i = 0, size, index;    for (i = 0; i < 200; i++)//初始化    {        article[i].counter = 1;    }    i = 0;//不能少这一步    scanf("%s", article[i].word);    size = 1;    while ( scanf("%s", tmp) && strcmp(tmp, "000") != 0)    {        index = isExist(article, size , tmp);        //printf("index = %d\n", index);        if (index != -1)        {            article[index].counter++;        }        else        {            strcpy(article[++i].word, tmp);            size += 1;        }    }    for (i = 0; i < size; i++)    {        printf("%s\t", article[i].word);    }    putchar(10);    for (i = 0; i < size; i++)    {        printf("%d\t", article[i].counter);    }    putchar(10);    return 0;}int isExist(Article *art, int size, char *tmp){    int i;    for (i = 0; i < size; i++)    {        if (strcmp(tmp, art[i].word) == 0)            return i;//返回下标    }    return -1;}