自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 《C程序设计语言》练习 3-3

练习 3-3 编写函数 expand(s1, s2),将字符串 s1 中类似于 a-z 一类的速记符号 在字符串 s2 中扩展为等价的完整列表 abc…xyz。该函数可以处理大小写字母和数字,并可 以处理 a-b-c、a-z0-9 与-a-z 等类似的情况。作为前导和尾随的-字符原样排印。那个if有点长,我叠了三层,主要是判断“-”前后的字符是否匹配 那三个判断函数逻辑很简单,后面会贴上来

2017-12-29 17:26:32 1103 1

原创 《C程序设计语言》练习 3-2

练习 3-2 编写一个函数 escape(s, t),将字符串 t 复制到字符串 s 中,并在复制 过程中将换行符、制表符等不可见字符分别转换为\n、\t 等相应的可见的转义字符序列。要 求使用 swich 语句。再编写一个具有相反功能的函数,在复制过程中将转义字符序列转换为 实际字符。转换用函数 :void escape(char s[], char t[]){ int i,

2017-12-29 15:21:11 878

原创 《C程序设计语言》练习 3-1

练习 3-1 在上面有关折半查找的例子中,while 循环语句内共执行了两次测试,其实 只要一次就足够(代价是将更多的测试在循环外执行)。重写该函数,使得在循环内部只执行 一次测试。比较两种版本函数的运行时间。原文代码有一个问题,下面是改过的原文代码int binsearch(int x, int v[], int n){ int low, high, mid; low =

2017-12-29 13:48:00 1069

原创 《C程序设计语言》练习 2-10

练习 2-10 重新编写将大写字母转换为小写字母的函数 lower,并用条件表达式替代其 中的 if-else 结构。#include <stdio.h>void lower(char str[]);main(){ char str[] = "Hello World!"; lower(str); printf("%s\n", str);}void lower(cha

2017-12-29 11:16:05 325

原创 《C程序设计语言》练习 2-9

练习 2-9 在求对二的补码时,表达式 x &= (x – 1)可以删除 x 中最右边值为 1 的 一个二进制位。请解释这样做的道理。用这一方法重写 bitcount 函数,以加快其执行速度。#include <stdio.h>main(){ int x = 123; //0111_1011 int b; for (b = 0; x != 0; b++)

2017-12-29 10:46:20 383

原创 《C程序设计语言》练习 2-6

练习 2-6 编写一个函数 setbits(x, p, n, y),该函数返回对 x 执行下列操作后 的结果值:将 x 中从第 p 位开始的 n 个(二进制)位设置为 y 中最右边 n 位的值,x 的其余 各位保持不变。主要的算法其实就两句话:int setbits(x, p, n, y){ int a; a = ~(~(~0 << n) << (p - 1));

2017-12-28 18:14:05 393

原创 《C程序设计语言》练习 2-8

练习 2-8 编写一个函数 rightrot(x, n),该函数返回将 x 循环右移(即从最右端 移出的位将从最左端移入)n(二进制)位后所得到的值。用了循环和判断,感觉不太好int rightrot(int x, int n){ int b, c; c = ~0U >> 1; while (n > 0) { b = x & 1;

2017-12-28 18:12:10 794

原创 《C程序设计语言》练习 2-7

练习 2-7 编写一个函数 invert(x, p, n),该函数返回对 x 执行下列操作后的结 果值:将 x 中从第 p 位开始的 n 个(二进制)位求反(即,1 变成 0,0 变成 1),x 的其余各 位保持不变。其实是可以一个表达式搞定的,但感觉太恶心,所以分开了#include <stdio.h>invert(x, p, n);main(){ int x, y; x

2017-12-28 16:36:13 288

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除