20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises28

该博客记录了20201学期成信大《C语言程序设计B》的C-trainingExercises28练习,包含P330、P796等多道题。每道题给出了题目要求、解答程序,部分还提及测试文件内容及运行后产生文件的参考内容。

20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises28

P330

测试文件内容,文件名:Test.txt

/*      stdlib.h
        Definitions for common types, variables, and functions.
        Copyright (c) Borland International 1987,1988
        All Rights Reserved.
*/
char   *_Cdecl ltoa     (long vaLue, char *string, int radix);
int     _Cdecl putenv   (const char *name);
unsigned _Cdecl _rotl   (unsigned value, int count);
unsigned _Cdecl _rotr   (unsigned value, int count);
void    _Cdecl swab     (char *from, char *to, int nbytes);
char   *_Cdecl ultoa    (unsigned long kvAluE, char *string, int radix);

题目要求:

在这里插入图片描述

解答程序:

/* 
从键盘输入一个文本文件的文件名(约定:字符数≤127字节,可含路径),再在屏幕上显示该文件的内容。注意,对于文件中的字符*,在屏幕上改为显示字符@。
  单击此处下载程序运行时测试用的文件Test.txt。
编程可用素材:
printf("input the file's name: ");
printf("\nfile open error!");
printf("------------------------File Begin:----------------------\n");
printf("\n------------------------ File End. ----------------------\n");
 */

#include <stdio.h>
#include <stdlib.h>

#define N 128

int main(void)
{
   
   
    FILE *fp;
    char myPath[N];
    char ch;

    printf("input the file's name: ");
    gets(myPath);

    fp = fopen(myPath, "r");
    if (fp == NULL)
    {
   
   
        printf("\nfile open error!");
        goto ERROR;
    }
    printf("------------------------File Begin:----------------------\n");
    // read file char by char
    ch = fgetc(fp);
    while(!feof(fp))
    {
   
   
        if (ch == '*')
        {
   
   
            ch = '@';
        }
        putchar(ch);
        ch = fgetc(fp);
    }
    printf("\n------------------------ File End. ----------------------\n");
    

ERROR:
    if (fp != NULL)
    {
   
   
        fclose(fp);
    }

    return 0;
}

P796

题目要求:

在这里插入图片描述

解答程序:

/* 
编写一程序P796.C实现以下功能
  在磁盘上新建一个文件Test.txt,将从键盘读入的多个字符存储到该文件中,要求如下:
  (1)若输入的字符中有小写字母,则应先将其转换为大写后再存入。
  (2)输入!表示输入结束且!不存入文件中。
  (3)当文件创建失败或向文件写入字符时出错,应显示指定的出错信息并终止程序的执行。
  (4)程序的返回值(即由main函数return的值和程序使用exit终止运行时返回的值,也称退出代码)规定为:
    ①运行正常返回0 ②文件创建失败返回1 ③向文件写入字符时出错返回2
  编程可用素材:
printf("\nCreate file error!\n");
printf("Input chars: ");
printf("\nWriting file error!\n");
  程序的运行效果应类似地如图1所示,文件Test.txt的内容应类似地如图2所示。图1中的“Input chars: ”后面的内容系从键盘输入。

Input chars: ok?
It is easy?

6789235*()*&@#you
hi!
 */
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   
   
    FILE *fp = NULL;    // 首先置空,防止野指针
    char ch;

    fp = fopen("Test.txt", "w");
    if (fp == NULL)
    {
   
   
        printf("\nCreate file error!\n");
        exit(1);
    }

    printf("Input chars: ");
    // while ((ch = getchar()) != '!')
    while (scanf("%c",&ch)!=EOF<
### 回答1: 您好,我是AI语言助手,以下是对您的回复: 20201022-成信大-c语言程序设计-20201学期《c语言程序设计b》是一门面向学生的C语言程序设计课程,主要教授C语言的基础知识和编程技巧,包括数据类型、运算符、流程控制语句、函数、指针、数组、结构体等内容。通过本课程的学习,学生可以掌握C语言的基本语法和编程思想,提高编程能力和解决问题的能力,为以后的编程学习和工作打下坚实的基础。 ### 回答2: 20201学期的《c语言程序设计b》是一个深入学习C语言的课程,教授的是C语言的高级应用。在本次课程中,学生将会进一步学习C语言的语法、程序设计思路以及具体的编码实践。 首先,学生将会学习C语言中的函数、指针、结构体、联合体、枚举等高级概念。这些概念是C语言面向对象编程中至关重要的概念,也是学生在日后编写复杂程序时所必须了解的内容。此外,在学习这些概念的同时,学生还将学习如何使用宏定义和预编译指令来进一步优化程序性能。 其次,学生将会进行具体的编码实践,包括基于C语言的数据结构设计和实现、字符串处理、文件操作、网络编程等等。这些项目和实践将会提供给学生量的机会来将所学的概念应用到具体的场景中,帮助学生更深入地理解C语言的应用。 此外,学生还将参加课堂讨论、代码评审等活动,通过这些活动来提高自己的编程能力、代码质量和团队协作能力。教师也将会给学生提供详细的反馈,帮助他们改善自己的问题和提高自己的能力。 总之,《c语言程序设计b》是一门非常重要的课程,对于学生日后从事计算机编程工作具有非常重要的意义。通过学习这门课程,学生将会幅提高自己的编程能力、透彻理解C语言并将其应用到实际工作中。 ### 回答3: 成信大-20201学期《c语言程序设计b》是一门针对深入学习C语言的高级课程,内容涵盖了高级数据结构、算法设计、动态内存分配、文件操作等等。 在这门课程中,学生将通过实践和理论学习,掌握C语言的高级编程技巧和策略。课程的重点之一是高级数据结构,包括链表、树、哈希表、图等等,学生将深入理解数据结构的实现和应用。 除此之外,课程还将涉及算法设计和分析,学生将学习如何设计出高效的算法,并进行时间和空间复杂度分析。动态内存分配和文件操作也是这门课程的重点,这些技术对于C语言程序设计来说非常重要。 学生在课程中还将开展实践项目,以实现理论学习。通过项目实践,学生将在实际中应用学到的技术,发现其中存在的问题并解决。 总之,成信大-20201学期《c语言程序设计b》是一门非常高级的、面向深度学习的课程。通过系统学习和实践的方式,学生将深入掌握C语言的高级编程技巧。这门课程对于想要深入学习C语言的学生来说是非常重要的。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值