C程序设计语言2nd 课后习题
课后习题编程
壹花壹草壹世界
这个作者很懒,什么都没留下…
展开
-
练习1-20编写程序detab ,将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方。假设制表符终止位的位置是固定的,比如每隔n列就会出现一个制表符终止
练习1-20编写程序detab ,将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方。假设制表符终止位的位置是固定的,比如每隔n列就会出现一个制表符终止可以通过这篇文章了解制表符的原理:在这篇文章了解了什么是制表符终止位?_Eureka1024的博客-CSDN博客_制表符终止位#include <stdio.h>#define N 8int main(){ //制表符原理 printf("1234567\t0\n"); pri原创 2021-11-16 15:17:38 · 720 阅读 · 0 评论 -
练习1-19编写函数reverse (s),将字符串s中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序。
练习1-19编写函数reverse (s),将字符串s中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序。#include <stdio.h>#include <string.h>#define MAX_LINE 1000int getline(char line[]);//反转字符串void reverse(char s[]);int main(){ char line[MAX_LINE] = {"7、Eventuall原创 2021-11-16 15:17:29 · 1532 阅读 · 0 评论 -
练习1-18编写一个程序,删除每个输入行末尾的空格及制表符,并删除完全是空格的行。
练习1-18编写一个程序,删除每个输入行末尾的空格及制表符,并删除完全是空格的行。#include <stdio.h>#include <string.h>#define MAX_LINE 1000int getline(char line[], int maxline);void trimedRight(char text[],int max);char textData[100][MAX_LINE];int main(){ char line[M原创 2021-11-16 15:17:11 · 363 阅读 · 0 评论 -
练习1-17编写一个程序,打印长度大于80个字符的所有输入行
练习1-17编写一个程序,打印长度大于80个字符的所有输入行#include <stdio.h>#include <stdlib.h>#include <string.h>#define LIMIT_LENGTH 100#define MAX_LINE 1000//line存放每一个字符串,并返回line字符串的长度int getline(char line[],int maxline);//将from字符数组复制到to数组void copy(c原创 2021-11-16 15:16:58 · 1135 阅读 · 0 评论 -
练习1-15重新编写1.2节中的温度转换程序,使用函数实现温度转换计算
练习1-15重新编写1.2节中的温度转换程序,使用函数实现温度转换计算#include <stdio.h>float fahrToCelsius(float fahr);int main(){ printf("%3s %6s\n","fahr","Celsius"); for(float fahr = 0; fahr<=300;fahr+=20) printf("%3.0f %8.1f\n",fahr,fahrToCelsius(fahr原创 2021-11-16 15:16:46 · 386 阅读 · 0 评论 -
练习1-14编写一个程序,打印输入中各个字符出现频度的直方图
练习1-14编写一个程序,打印输入中各个字符出现频度的直方图#include <stdio.h>#define LENGTH 128int main(){ //使用下标存储ascii码表中的所有字符 int charactor[LENGTH] = {0}; int c; while((c=getchar()) != EOF ) { charactor[c]++;//对应的字符加1,(数组里的值存放的是每个字符出现的数量原创 2021-11-16 15:16:34 · 184 阅读 · 0 评论 -
练习1-13编写一个程序,打印输入中单词长度的直方图。水平方向的直方图比较容易绘制,垂直方向的直方图则要困难些。
练习1-13编写一个程序,打印输入中单词长度的直方图。水平方向的直方图比较容易绘制,垂直方向的直方图则要困难些。目录水平直方图实现垂直直方图实现水平直方图实现#include <stdio.h>//输出单词长度//直方图int main(){ int c ,state = 0; int number = 0;// 累加单词字符个数 while((c=getchar()) != EOF) { if(!(c == ' .原创 2021-11-16 15:16:17 · 574 阅读 · 0 评论 -
练习1-12编写一个程序,以每行一个单词的形式打印其输入。
练习1-12编写一个程序,以每行一个单词的形式打印其输入。#include <stdio.h>#define IN 1#define OUT 0int main(){ int c, nw, state; state = OUT;//表示不在单词里 nw = 0; int i = 1; while ((c=getchar()) != EOF) { //如果不是以下字符就输出 //并将sta原创 2021-11-16 15:16:01 · 284 阅读 · 2 评论 -
练习1-10编写一个将输入复制到输出的程序,并将其中的制表符替换为\\t,把回退符替换为b,把反斜杠替按为。这样可以将制表符和回退符以可见的方式显示出来。
练习1-10编写一个将输入复制到输出的程序,并将其中的制表符替换为\\t,把回退符替换为b,把反斜杠替按为。这样可以将制表符和回退符以可见的方式显示出来。#include <stdio.h>int main(){ int c; while((c=getchar())!=EOF) { if(c == '\t') { putchar('\\'); putchar('t');原创 2021-11-15 08:42:01 · 280 阅读 · 0 评论 -
练习1-9编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替。
练习1-9编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替。#include <stdio.h>//将多个空格替换成一个空格输出int main(){ int c ; int temp = 0;//保存上一个字符 while((c = getchar()) != EOF) { //判断上一个字符跟下一个字符是不是一样,而且为空格 //哪里是就继续循环不往下走 if(temp ==原创 2021-11-15 08:22:12 · 393 阅读 · 1 评论 -
练习1-8编写一个统计空格、制表符与换行符个数的程序。
练习1-8编写一个统计空格、制表符与换行符个数的程序。#include <stdio.h>//统计行数,空格,制表符数量int main(){ int c ; int number_line = 0; int space_line = 0; int tab_line = 0; while((c=getchar()) != EOF) { if(c =='\n') ++number_line;原创 2021-11-15 08:15:12 · 881 阅读 · 0 评论 -
练习1-7编写一个打印EOF值的程序
练习1-7编写一个打印EOF值的程序#include <stdio.h>int main(){ printf("%d\n",EOF);}输出EOF的结果为-1相关笔记:EOF(end of file)文件结束符,定义在<stdio.h>头文件中,是个整型数,具体数值为什么不重要,只要与任何char类型的值都不相同即可。...原创 2021-11-15 08:10:34 · 1172 阅读 · 0 评论 -
练习1-6 验证表达式getchar ()不等于EOF的值是0还是1
练习1-6 验证表达式getchar ()!=EOF的值是0还是1#include <stdio.h>int main(){ while(1) printf("%d\n",(getchar()!=EOF));//输出永远为1 return 0;}输出如下:原创 2021-11-15 08:04:56 · 227 阅读 · 1 评论 -
练习1-5修改温度转换程序,要求以逆序(即按照从300度到0度的顺序)打印温度转换表。
练习1-5 修改温度转换程序,要求以逆序(即按照从300度到0度的顺序)打印温度转换表。#include <stdio.h>//逆序输出int main(){ float fahr,celsius;//华氏,温氏 float lower,upper,step; lower = -17.8;//温度表下限 upper =148.9;//温度表上限 step = 11.1;//步长 celsius = upper;//1.修改起始为最大原创 2021-11-15 07:55:25 · 719 阅读 · 0 评论 -
练习1-4编写一个程序打印摄氏温度转换为相应华氏温度的转换表。
练习1-4 编写一个程序打印摄氏温度转换为相应华氏温度的转换表。利用公式转换一下即可#include <stdio.h>//打印华氏与摄氏温度对照表//公式:C= 5/9*(F-32)//C表示摄氏温度//F表示华氏温度int main(){ float fahr,celsius;//华氏,温氏 float lower,upper,step; lower = -17.8;//温度表下限 upper =148.9;//温度表上限 s原创 2021-11-15 07:47:19 · 1306 阅读 · 0 评论 -
练习1-3修改温度转换程序,使之能在转换表的顶部打印一个标题。
练习1-3 修改温度转换程序,使之能在转换表的顶部打印一个标题。#include <stdio.h>//打印华氏与摄氏温度对照表//公式:C= 5/9*(F-32)//C表示摄氏温度//F表示华氏温度int main(){ float fahr,celsius;//华氏,温氏 float lower,upper,step; lower = 0;//温度表下限 upper = 300;//温度表上限 step = 20;//步长原创 2021-11-15 07:37:53 · 262 阅读 · 0 评论 -
练习1-2做个实验,当printf 函数的参数字符串中包含\\c(其中c是上面的转义字符序列中未曾列出的某一个字符)时,观察一下会出现什么情况。
练习1-2做个实验,当printf 函数的参数字符串中包含\\c(其中c是上面的转义字符序列中未曾列出的某一个字符)时,观察一下会出现什么情况。#include <stdio.h>int main(){ //简单使用转义字符 printf("Hello\n"); printf("\n"); printf("Hello\tHello\n"); printf("\n"); printf("Hello\bHello\n"); pri原创 2021-11-15 07:10:52 · 342 阅读 · 0 评论 -
练习1-1在你自己的系统中运行“hello ,world ”程序。再有意去掉程序中的部分内容,看看会得到什么出错信息。
练习1-1在你自己的系统中运行“hello ,world ”程序。再有意去掉程序中的部分内容,看看会得到什么出错信息。#include <stdio.h>int main(){ //简单的输出 printf("Hello World!"); return 0;}相关笔记:注意分号,双引号等必须是英文符号,使用中文符号将出现错误 语句以分号结束 printf是一个打印输出的库函数 用双引号括起来的字符序列称为字符串或字符串常量(如:原创 2021-11-15 06:57:23 · 184 阅读 · 0 评论