找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 79|回复: 0

第12章习题

[复制链接]

620

主题

336

回帖

1057

积分

管理员

积分
1057
发表于 2026-3-9 10:56:25 | 显示全部楼层 |阅读模式
第12章习题:

1,用scanf接收输入的日期,格式为YYYY-MM-DD,然后再用printf函数按DD/MM/YYYY的格式打印输出。
参考答案:
# include <stdio.h>


int main (void)
{
    int y, m, d;
    printf ("请输入YYYY-MM-DD格式的日期:");
    scanf ("%d-%d-%d", & y, & m, & d);
    printf ("%d/%d/%d\n", d, m, y);
}


以上答案未考虑非法输入的情况。

2,用scanf 输入一个整数和一个浮点数,然后用printf输出。要求:整数占 8 个字符宽度,右对齐(不足补空格);浮点数占 10 个字符宽度,保留 2 位小数,右对齐。
参考答案:
# include <stdio.h>


int main (void)
{
    int i;
    float f;
    printf ("请输入一个整数和一个浮点数:");
    scanf ("%d", & i);
    scanf ("%f", & f);
    printf ("%8d%10.2f\n", i, f);
}

3,编写两个程序,第一个程序用scanf输入若干学生的姓名(字符串)、学号(整数)、成绩(浮点数),然后将这些数据保存为文件myfile3.dat;第二个程序从文件myfile3.dat中读取所有学生的数据,并用printf以表格的形式输出。要求姓名占10个字符宽度,左对齐;学号占6个字符宽度,右对齐;成绩占8个字符宽度,保留 1 位小数,右对齐。
参考答案:
第一个程序:
# include <stdio.h>


struct stud
{
    char name[17];
    int id;
    float score;
};


# define N 5


int main (void)
{
    struct stud studs [N];


    for (int x = 0; x < N; x ++)
    {
        printf ("姓名:");
        scanf ("%16s", studs [x].name);


        printf ("学号:");
        scanf ("%d", & studs [x].id);


        printf ("成绩:");
        scanf ("%f", & studs [x].score);
    }


    FILE * fp;
    fp = fopen ("myfile3.dat", "wb");
    if (fp == NULL) {
        printf("无法创建文件!\n");
        return 1;
    }


    fwrite (studs, sizeof (struct stud), N, fp);
    fclose (fp);
}

第二个程序:
# include <stdio.h>


struct stud
{
    char name[17];
    int id;
    float score;
};


# define N 5


int main (void)
{
    struct stud studs [N];


    FILE * fp;
    fp = fopen ("myfile3.dat", "rb");
    if (fp == NULL) {
        printf("无法打开文件!\n");
        return 1;
    }


    fread (studs, sizeof (struct stud), N, fp);
    fclose (fp);


    printf ("--------------------------------\n");
    for (int x = 0; x < N; x ++)
        printf ("%-10s%6d%8.1f\n", studs [x].name, studs [x].id, studs [x].score);
    printf ("--------------------------------\n");
}


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2026-3-30 16:14 , Processed in 0.245155 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表