我的C程序设计语言学习日记#01
来源:互联网 发布:php服务器配置 编辑:程序博客网 时间:2024/05/17 05:00
这几个程序笼统的涵盖了C中宏定义、循环语句、标准的输入输出语句(包括了数值、字符的输入输出)、字符变量和字符串常量等知识点,主要是为了适应C语言编程环境而设立的。
- 1-1 打印温度对照表
- 1-2 输入字符计数程序
- 1-3 各类字符统计程序
- 1-4 行数统计程序
- 1-5 单词打印程序
- 1-6 打印输入最长行
- 1-7 行倒放输出
- 参考学习资料
1-1 打印温度对照表
#include <stdio.h>/*定义常数常量*///表的下限#define LOWER 0//表的上限#define UPPER 300//步长#define STEP 20/*打印华氏温度-摄氏温度对照表*/main(){ int fahr; /*for循环语句*/ for(fahr = LOWER;fahr <= UPPER;fahr += STEP) printf("%3d %6.1f\n",fahr,(5.0/9.0)*)(fahr-32));}
注意点:
- 利用了公式:摄氏度 =(5/9)(华氏度-32)
- 用#define进行符号常量的预编译,格式:#define 名字 替换文本
- for循环语句格式:for(起始定义; 循环条件; 循环附加操作){语句执行内容}
1-2 输入字符计数程序
#include <stdio.h>/*统计输入字符数:版本1*/int main(){ long nc; nc = 0; while (getchar() != '\n') ++nc; printf("%ld\n",nc); return 0;}
#include <stdio.h>/*字符计数版本2*/int main(){ double nc; for(nc = 0;getchar() != '\n';++nc) ; printf("%.0f\n",nc); return 0;}
注意点:
- 两个程序的差别有2:
- 使用了不同类型的循环语句
- 使用不同的变量储存字符数
- 在编程中使用getchar()函数体会其作用
1-3 各类字符统计程序
#include <stdio.h>int main(){ int c,i,nwhite,nother; int ndigit[10]; nwhite = nother = 0; for(i=0;i < 10;++i) ndigit[i] = 0; while((c = getchar()) != EOF) if(c >= '0' && c <= '9') ++ndigit[c-'0']; else if(c == ' '|| c == '\n' || c == '\t') ++nwhite; else ++nother; printf("各个数字出现次数:\n"); for(i=0;i<10;++i) printf("'%d' - %d次\n",i,ndigit[i]); printf("空白字符出现次数:%d次\n其他字符出现次数:%d次\n",nwhite,nother); return 0;}
注意点:
- 字符 ‘1’~ ‘9’的值为0到9
- 用 c-‘0’来表示 c 字符或字符串对应的数值
1-4 行数统计程序
#include <stdio.h>/*行数输入统计*/int main(){ int c,n; n = 0; while((c = getchar()) != EOF) if(c == '\n') ++n; printf("%d\n",n); return 0;}
注意点:
- EOF(end of file)为文件结束符,值为-1
- Windows的DOS界面中使用‘Enter,Ctrl+Z,Enter’来输入EOF符结束输入
- Linux的终端界面中使用‘Enter,Ctrl+D’来输入EOF符结束输入
1-5 单词打印程序
#include <stdio.h>/*以一个单词一行的形式打印输入*/int main(){ printf("输入一个句子,本程序将以一个单词一行的形式打印显示\n请输入:"); char c; while((c = getchar()) != '\n') { if(c == ' ') printf("\n"); else putchar(c); } printf("\n"); return 0;}
1-6 打印输入最长行
#include <stdio.h>#define MAXLINE 1000 /*允许输入的最大长度*/int getline(char line[],int maxline);void copy(char to[],char from[]);//打印最长的输入行main(){ int len; //当前行长度 int max; //目前为止发现的最大行长度 char line[MAXLINE]; //当前输入行 char longest[MAXLINE]; //用于保存最长的行 max = 0; while((len = getline(line,MAXLINE)) > 0) if(len > max){ max = len; copy(longest,line); } if(max > 0) //存在这样的行? printf("%s",longest); return 0;}//getline函数:将一行读入到s中并返回其长度int getline(char s[],int lim){ int c,i; for(i=0;i<lim-1 && (c = getchar()) != EOF && c != '\n';++i) s[i] = c; if(c == '\n') { s[i] = c; ++i; } s[i] = '\0'; return i;}//copy函数:将from复制到to;这里假定to足够大void copy(char to[],char from[]){ int i; i = 0; while((to[i] = from[i]) != '\0') ++i;}
注意点:
- 本程序使用多个函数并在其中进行传值调用
- 这里的字符数组发挥了很大作用,难度也较大,需好好体会其运用原理
1-7 行倒放输出
#include <stdio.h>int main(){ char c,s[1000]; int i = 0; while((c = getchar()) != '\n'){ s[i] = c; i++; } if(c == '\n') i--; int k; char l[i]; for(k=0;k<=i;k++) l[k]=s[i-k]; printf("%s\n",l); return 0;}
参考学习资料
《C程序设计语言》
阅读全文
0 0
- 我的C程序设计语言学习日记#01
- 我的C程序设计语言学习日记#02
- 我的C程序设计语言学习日记#03
- 我的C程序设计语言学习日记#04
- 我的C程序设计语言学习日记#05
- 我的学习日记!
- 我的学习日记
- C程序设计语言 学习总结
- C程序设计语言学习笔记
- c程序设计语言学习笔记
- 学习-《C程序设计语言》第一章
- 我的Unity3D学习日记-01
- C程序设计语言练习题之 1-19, 我的编程
- 反省——“我的程序设计语言(非编程)学习”
- 我的Java学习日记
- c语言之消除注释函数的实现——我读《c程序设计语言》
- C语言学习日记01
- 《C 程序设计语言》的相关信息
- Maven入门指南② :Maven 常用命令,手动创建第一个 Maven 项目
- python [:-1]
- Oracle 学习(三):pl/sql自动保存上次的窗口界面
- JavaScript基础
- chart.js插件生成折线图时数据普遍较大时Y轴数据不从0开始的解决办法
- 我的C程序设计语言学习日记#01
- keras/构建卷积神经网络识别mnist
- 561. Array Partition I
- [bzoj2199][Usaco2011 Jan]奶牛议会 2-sat
- 数据类型和类型转换
- 高仿App--元贝驾考(二)Dialog工具类
- C++10进制转16进制
- Maven入门指南③:坐标和依赖
- linux通过关键字查找