C程序设计语言练习题1-2】的更多相关文章

练习1-23 编写一个删除C语言程序中所有的注释语句.要正确处理带引号的字符串与字符常量.在C语言中,注释不能嵌套. 代码如下: #include <stdio.h> // 包含标准库的信息. #define MAXLINE 1000 // 每行最大字符数为1000个. #define BR 10 // 十个字符换一行. int getline(char line[], int maxline); int main() // 定义名为main的函数,它不接受参数值. { int len; in…
练习1-10 编写一个将输入复制到输出的程序,并将起重的制表符替换为\t,把回退符替换成\b,把反斜杠替换为\\.这样可以将制表符和回退符以可见的方式显示出来. 代码如下: #include <stdio.h> // 包含标准库的信息. #include <conio.h> int main( void ) // 定义名为main的函数,它不接受参数值. { printf("======将输入的字符中的制表符替换为\t,退回符替换成\b,反斜杠替换为\\======\n&…
练习1-16 修改打印最长文本行的程序的主程序main,使之可以打印任意长度的输入行的长度,并尽可能多地打印文本. 代码如下: #include <stdio.h> // 包含标准库的信息. #define MAXLINE 10 int getline(char line[], int maxline); int main() // 定义名为main的函数,它不接受参数值. { int len; int max; char line[MAXLINE]; ) { printf("输入的…
练习1-22 编写一个程序,把较长的输入行”折“成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个非空格之后.要保证程序能够智能地处理输入行很长以及在制定的列前没有空格或制表符时的情况. 代码如下: #include <stdio.h> // 包含标准库的信息. #define MAXLINE 1000 // 每行最大字符数为1000个. #define BR 10 // 十个字符换一行. int getline(char line[], int maxline); int mai…
练习1-21 编写程序entab,将空格串替换为最少数量的制表符和空格,但要保持单词之间的间隔不变.假设制表符终止的位置与练习1-20的detab程序的情况相同.当使用一个制表符或者一个空格都可以打到下一个制表符终止位时,选用哪一种替换字符比较好? 代码如下: #include <stdio.h> // 包含标准库的信息. #define MAXLINE 1000 // 每行最大字符数为1000个. #define ENTAB 8 // 一个制表符等于8个空格,这里建议使用符号常量,方便程序修…
练习1-20 编写程序detab,将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方.假设制表符终止位的位置是固定的,比如每隔n列就会出现一个制表符终止位.n应该是变量还是符号常量呢? 代码如下: #include <stdio.h> // 包含标准库的信息. #define MAXLINE 1000 // 每行最大字符数为1000个. #define DETAB 8 // 一个制表符等于8个空格,这里建议使用符号常量,方便程序修改. int getline(char…
练习1-19 编写函数reverse(s),将字符串s中的字符顺序颠倒过来.使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序.代码如下: #include <stdio.h> // 包含标准库的信息. #define MAXLINE 10 // 每行最大字符数为1000个. int getline(char line[], int maxline); void reverse(char line[], int len); int main() // 定义名为main的函数,它不接受参数值…
练习1-18 编写一个程序,删除每个输入行末尾的空格及制表符,并删除完全是空格的行. 代码如下: #include <stdio.h> // 包含标准库的信息. #define MAXLINE 10 // 每行最大字符数为1000个. int getline(char line[], int maxline); int main() // 定义名为main的函数,它不接受参数值. { int len; int i; char line[MAXLINE]; ) { ; // 从后向前循环字符数组…
练习1-17 编写一个程序,打印长度大于80个字符的所有输入行. 代码如下: #include <stdio.h> // 包含标准库的信息. #define MAXROW 10 // 最大行数为10行. #define MAXLINE 100 // 每行最大字符数为100个. int getLength(char cs[]); int main() // 定义名为main的函数,它不接受参数值. { int c, i, row; char cs[MAXROW][MAXLINE]; // 初始化…
练习1-15 重新编写1.2节中的温度转换程序,使用函数实现温度转换计算. 代码如下: #include <stdio.h> // 包含标准库的信息. float fahrToCelsius(float fahr); float celsiusToFahr(float celsius); int main() // 定义名为main的函数,它不接受参数值. { printf()); printf("\n"); printf()); getchar(); // 防止控制台一闪…
练习1-14 编写一个程序,打印输入中各个字符出现频度的直方图. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的函数,它不接受参数值. { printf("======打印输入字符频度的直方图======\n"); unsigned ]; // 字符频度数组. int i, j, c; i = j = c = ; // 默认每个字符出现0次. ; i < ; i++) { ws[i] = ;…
练习1-13 编写一个程序,打印输入中单词长度的直方图.水平方向的直方图比较容易绘制,垂直方向的直方图则要困难些. 代码如下: #include <stdio.h> // 包含标准库的信息. #define MAXWORD 10 // 输入单词的最大数. #define IN 1 // 在单词内. #define OUT 0 // 在单词外. int main() // 定义名为main的函数,它不接受参数值. { printf("======打印输入单词长度的直方图======\n…
练习1-12 编写一个程序,以每行一个单词的行驶打印其输入. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的函数,它不接受参数值. { printf("======将输入的字符以每行一个单词的行驶打印其输出======\n"); int c, cp; while ((c = getchar()) != EOF) { // 判断输入的字符如果是空格或者制表符,说明单词键入完毕. if (c == '…
练习1-11 你准备如何测试单词计数程序?如果程序中存在某种错误,那么什么样的输入最可能发现这类错误呢? 代码如下: #include <stdio.h> // 包含标准库的信息. #define IN 1 /* 在单词内 */ #define OUT 0 /* 在单词外 */ int main( void ) // 定义名为main的函数,它不接受参数值. { printf("======计数器程序======\n"); int c, nl, nw, nc, state;…
练习1-9 编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的函数,它不接受参数值. { printf("======将输入的多个空格用一个空格代替======\n"); int c, space; while ((c = getchar()) != EOF) { if (c != ' ') putchar(c); // 若输入的字…
练习1-8 编写一个统计空格.制表符与换行符个数的程序. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的函数,它不接受参数值. { printf("======统计输入的字符中的空格.制表符与换行符的数量======\n"); // 输入的字符.空格符计数器.制表符计数器.换行符计数器. int c, sl, tl, nl; sl = tl = nl = ; while ((c = getchar(…
练习1-7 编写一个打印EOF的值的程序. #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的函数,它不接受参数值. { // 输出EOF. printf("EOF对应的整形数是%d.\n",EOF); getch(); // 防止控制台一闪而过,需要接受任意字符后在关闭控制台. ; // 向执行环境返回一个整形,0代表执行成功. } 个人理解: 通过程序打印,可以看到EOF对应的整形数为-1.…
练习1-6 验证表达式getchar() != EOF的值是0还是1. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的函数,它不接受参数值. { // 验证getchar() != EOF的值是0还是1. printf("验证getchar() != EOF的值是0还是1.\n"); printf("验证完毕,结果为%d.\n", getchar() != EOF); getch…
练习1-5 修改温度转换程序,要求以逆序(即按照从300度到0度的顺序)打印温度转换表. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的函数,它不接受参数值. { float fahr; // 华氏度. float celsius; // 摄氏度. int lower, upper, step; lower = ; // 温度表的下限. upper = ; // 温度表的上限. step = ; // 步长. // 在…
练习1-4 编写一个程序打印摄氏温度转换为相应华氏温度的转换表. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的函数,它不接受参数值. { float fahr; // 华氏度. float celsius; // 摄氏度. int lower, upper, step; lower = ; // 温度表的下限. upper = ; // 温度表的上限. step = ; // 步长. celsius = lower;…
练习1-3 修改温度转换程序,使之能在转换表的顶部打印一个标题. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的函数,它不接受参数值. { float fahr; // 华氏度. float celsius; // 摄氏度. int lower, upper, step; lower = ; // 温度表的下限. upper = ; // 温度表的上限. step = ; // 步长. fahr = lower; //…
练习1-2 做个实验,当printf函数的参数字符串中包含\c(其中c是上面的转义字符串序列中未曾列出的某一个字符)时,观察一下会出现什么情况. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的函数,它不接受参数值. { printf("\c"); // 输出字母'c'. getch(); // 防止控制台一闪而过,需要接受任意字符后在关闭控制台. ; // 向执行环境返回一个整形,0代表执行成功.…
练习1-1 在你自己的系统中运行"hello, world"程序.再有意去掉程序中的部分内容,看看会得到什么出错信息. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的函数,它不接受参数值. { printf("hello, world\n"); // man函数调用库函数printf以显示字符序列. getch(); // 防止控制台一闪而过,需要接受任意字符后在关闭控制台. ;…
C语言练习题 1. 以下选项中,合法的一组C语言数值常量是(     ) A)028  .5e-3  .0xf B)12.  OXa23   4.5e0 C).177   4e1.5  Oabc D)0x8A  10,000  3.e5 2. 设整型变量x为7,则以下各表达式的值分别是(   ). (1)y=x%3        (2) y=(++x)/3       (3) y=x/3             (4) y=8-(--x) 3. 若已定义int x=5, y=9, z; 语句z=…
 1.Java的运行环境中,String是什么编码? 使用java做程序设计语言,字符编码是和jvm相关的,和操作系统无关. java默认的编码是jvm在安装的时候就确定了的,它是根据你的系统的环境确定并默认的. 我们可以通过java的Charset类的defaultCharset()方法来获取它默认的字符编码. 我安装的JDK是1.7,系统环境是64位,获取的默认的字符编码是utf16的,并且是Big-Endian(这点我比较奇怪,我的机器是Little-endian的,而虚拟机竟然默认是大端…
1.1.1中央处理器(CPU) cpu是计算机的大脑,它从内存中获取指令然后执行这些指令,CPU通常由控制单元和逻辑单元组成. 控制单元用来控制和协调除cpu之外的其他组件的动作. 算数单元用来完成数值运算(加减乘除)以及逻辑运算(比较) 现在的cpu都是镶在一块小小的硅半导体芯片上,这块芯片上有数百万个被称作晶体管的小电子开关来处理信息. 每台计算机都有一个内部时钟,该时钟会以一个稳定的速度发射电子脉冲,这些脉冲用于同步和控制各种操作的的步调.时钟速度越快,给定时间内执行的指令就越多.时钟速度…
最近开始自学C语言,在看K&R的<C程序设计语言>.练习2-3要求写一个函数,将输入的十六进制数字字符串转换成与之等价的整数值,配套答案没有扩展程序的通用性,所以我就稍微改造改造. 配套的答案是这样的(自己添加了注释): #define YES 1 #define NO 0 /* htoi:将十六进制数字字符串转换成十进制数 * 如果发现'0x'或'0X'则跳过并设置十六进制数的起点 * 检查后续字符是否是0-9,a-f或是A-F * 如果是则将其转换为整形 * 如果不是则停止检查,数…
目录索引 清风注解-Swift程序设计语言 Point 11. 数值型字面量 代码事例: let decimalInteger = // 十进制的17 let binaryInteger = 0b10001 // 二进制的17 let octalInteger = 0o21 // 八进制的17 let hexadecimalInteger = 0x11 // 十六进制的17 注解: 整数字面量可以被写作:十进制数,没有前缀:二进制数,前缀是 0b:八进制数,前缀是 0o:十六进制数,前缀是 0x…
目录索引 清风注解-Swift程序设计语言 Point 6. 输出常量和变量 代码事例: // 输出的内容会在最后换行 println("hello, world") // 输出的内容最后不会换行 print("My name is Dash Geng") 注解: 可以用 println 或 print 函数来输出当前常量或变量的值. println 和 print 是用来输出的全局函数(内置函数). println 函数输出的内容会在最后换行. print 函数输…
目录索引 清风注解-Swift程序设计语言 Point 1. Swift 风格的"Hello, world" 代码事例: println("Hello, world")  注解: Swift 语言的编码风格类似于 C 或 Objective-C.因此,拥有 C 或 Objective-C 开发经验的人更容易掌握 Swift 语言. 在 Swift 中,没有包含在任何类或函数当中的代码,属于拥有全局作用域的代码. 你不需要为了输入输出或者字符串处理导入一个单独的库.…