C程序设计第十章习题

2024-05-14 02:36

本文主要是介绍C程序设计第十章习题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

3. 向文件中输入字符串

代码:

#include "stdio.h"void main() {FILE *file;file = fopen("test.txt", "w");char str[200];gets(str);int i = 0;while(str[i]) {if(str[i] >= 'a' && str[i] <= 'z') str[i] = str[i] + 'A' - 'a';i++;}fputs(str, file);fclose(file);
}

输出结果:

 

4.合并字符串,并且写入新文件C中。

 代码:

#include "stdio.h"void init();
char *read(char *file_name, char *str);
char *merge(char *A, char *B, char *C);
void sort(char *str);
void write(char *file_name, char *str);void main() {init();char A[200];read("A.txt", A);char B[200];read("B.txt", B);char C[400];merge(A, B, C);printf("%s\n", C);sort(C);printf("%s\n", C);write("C.txt", C);
}void init() {FILE *afile, *bfile;afile = fopen("A.txt", "w");bfile = fopen("B.txt", "w");char A[200] = "afjfaojfoqjefqpoqhf";char B[200] = "ajiafdhiophpahofhap";fputs(A, afile);fputs(B, bfile);fclose(afile);fclose(bfile);
}char *read(char *file_name, char *str) {FILE *file = fopen(file_name, "r");fgets(str, 200, file);fclose(file);return str;
}
char *merge(char *A, char *B, char *C) {int count = 0;for(int i = 0; A[i]; i++) {C[i] = A[i];count++;}for(int i = 0; B[i]; i++) {C[count] = B[i];count++;}C[count] = 0;return C;   
}void sort(char *str) {char *c = str;char *p = str + 1;char temp;while (*c){p = c + 1;while(*p) {if(*c > *p) {temp = *p;*p = *c;*c = temp;}p++;}c++;}
}
void write(char *file_name, char *str) {FILE *file = fopen(file_name, "w");fputs(str, file);fclose(file);
}

输出结果:

5. 将平均分写入文件中保存

参考第九章9_5题

代码:

#include "stdio.h"struct Student
{int num;char name[10];int score[3];int mean;
};
void print(struct Student *student, int count);
void input(struct Student *student, int count);
int get_mean(struct Student *student, int count);void main() {int count = 2;struct Student *student = (struct Student *) malloc (count * sizeof(struct Student));input(student, count);print(student, count);//printf("The mean score is: %d\n", get_mean(student, count));get_mean(student, count);FILE *file;file = fopen("stud", "w+");for(int i = 0; i < count; i++) {fwrite(&student[i], sizeof(struct Student), 1, file);}print(student, count);// for(int i = 0; i < count; i++) {//     fread(&student[i], sizeof(struct Student), 1, file);//     printf("The student info is %d, %s, %d, %d, %d, %d\n", student->num, student->name, student->score[0], student->score[1], student->score[2], student->mean);// }fclose(file);free(student);
}
void print(struct Student *student, int count) {for(int i = 0; i < count; i++) {printf("The student info is %d, %s, %d, %d, %d, %d\n", student->num, student->name, student->score[0], student->score[1], student->score[2], student->mean);student++;}
}
void input(struct Student *student, int count) {for(int i = 0; i < count; i++) {printf("Please input student info(like 001,jin,100):");scanf("%d %s %d %d %d", &(student + i)->num, (student + i)->name, (student + i)->score, (student + i)->score + 1, (student + i)->score + 2);//(student + i)->num=1; (student + i)->name="jin"; (student + i)->score=100;}
}
int get_mean(struct Student *student,int count) {for(int i = 0; i < count; i++) {//printf("get_mean:%d", student->score[0]);student->mean = (student->score[0] + student->score[1] + student->score[2])/3;student++;}return 0;
}

 输出结果:

6. 平均成绩排序

代码:

 

struct Student *head_node = c;struct Student *node = c->next;while (head_node->next){while(node) {if(head_node->mean > node->mean) {swap(&head_node->mean, &node->mean);for(int i = 0; i < 3; i++) {swap(&(head_node->score[i]), &(node->score[i]));}swap(&head_node->num, &node->num);for(int i = 0; i < 10; i++) {swap_c(&(head_node->name[i]), &(node->name[i]));}}node = node->next;}head_node = head_node->next;node = head_node->next;}}
void swap(int *a, int *b) {int temp;temp = *b;*b = *a;*a = temp;
}void swap_c(char *a, char *b) {char temp;temp = *b;*b = *a;*a = temp;
}

输出结果:

 

11. 读写文件

代码:

#include "stdio.h"void main() {FILE *file;file = fopen("test.txt", "a");char str[3][200];for(int i = 0; i < 3; i++) {gets(str[i]);int j = 0;while(str[i][j]) {if(str[i][j] >= 'a' && str[i][j] <= 'z') str[i][j] = str[i][j] + 'A' - 'a';j++;}fputs(str[i], file);}fclose(file);file = fopen("test.txt", "r");char str1[600];fgets(str1, 600, file);printf("%s", str1);fclose(file);
}

输出结果:

C程序设计最后一篇,记录每一步,加油! 

这篇关于C程序设计第十章习题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/987510

相关文章

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

C语言程序设计(选择结构程序设计)

一、关系运算符和关系表达式 1.1关系运算符及其优先次序 ①<(小于) ②<=(小于或等于) ③>(大于) ④>=(大于或等于 ) ⑤==(等于) ⑥!=(不等于) 说明: 前4个优先级相同,后2个优先级相同,关系运算符的优先级低于算术运算符,关系运算符的优先级高于赋值运算符 1.2关系表达式 用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符

第六章习题11.输出以下图形

🌏个人博客:尹蓝锐的博客 希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏支持一下笔者吧~ 1、题目要求: 输出以下图形

【C++ Primer Plus习题】12.2

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "String.h"using namespace std;int main(){String s1(" and I am a

第十章 【后端】环境准备(10.4)——Vagrant

10.4 Vagrant Vagrant 官网 Vagrant 镜像仓库 下载 安装 直接 install。 设置环境变量 Vagrant 默认将镜像保存在用户文件夹的 .vagrant.d 目录下,若用户文件夹在C盘,下载的镜像文件会大量占用C盘空间。设置环境变量 VAGRANT_HOME 后,Vagrant 会将镜像保存到环境变量指定的文件夹下。

c++习题30-求10000以内N的阶乘

目录 一,题目  二,思路 三,代码    一,题目  描述 求10000以内n的阶乘。 输入描述 只有一行输入,整数n(0≤n≤10000)。 输出描述 一行,即n!的值。 用例输入 1  4 用例输出 1  24   二,思路 n    n!           0    1 1    1*1=1 2    1*2=2 3    2*3=6 4

Python计算机视觉编程 第十章

目录 一、OpenCv基础知识 1.读取和写入图像 2.颜色空间 3.显示图像和结果 二、处理视频 1.输入视频 2.将视频读取到NumPy数组中 三、跟踪 1.光流 2.Lucas-Kanade算法 一、OpenCv基础知识 OpenCV 自带读取、写入图像函数以及矩阵操作和数学库。 1.读取和写入图像 import cv2# 读取图像im = c

智能工厂程序设计 之1 智能工厂都本俱的方面(Facet,Aspect和Respect)即智能依赖的基底Substrate 之1

Q1、昨天分别给出了三个智能工厂的 “面face”(里面inter-face,外面outer-face和表面surface) 以及每个“面face” 各自使用的“方”(StringProcessor,CaseFilter和ModeAdapter)  。今天我们将继续说说三个智能工厂的“方面” 。在展开之前先看一下三个单词:面向facing,取向oriented,朝向toword。理解这三个词 和

Matlab simulink建模与仿真 第十章(模型扩展功能库)

参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili 一、模型扩展功能库中的模块概览         注:下面不会对Block Support Table模块进行介绍。 二、基于触发的和基于时间的线性化模块 1、Trigger-Based Linearization基于触发的线性化模块 (1)每次当模块受到触发时,都会调用linmod或者dlinmod函数