2011年7月15日
摘要: 编写按照ASCII字符表进行扩展的函数: 函数基本要求:编写函数expand(s1, s2),将字符串s1中类似于a-z一类的速记符号在字符串s2中扩展为等价的完整列表abc...xyz。该函数可以处理大小写字母和数字,并可以处理a-b-c、a-z0-9与a-z等类似的情况。作为前导和尾随的字符原样复制。这是课本练习3-3的题目要求: 按照要求编写如下代码:#include<stdio.h>//expand:expand shorthand notation in s1 into string s2void expand(char s1[], char s2[]){ char c; 阅读全文
posted @ 2011-07-15 16:28 Tony.Works 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 求二进制数中1的个数: 上一篇随笔最后写到了统计x二进制表示中1的个数,这里继续记录下其他的方法: 1.采用的还是位运算,右移位,每次向右移动移位,判断最低位是否为1,程序如下:/************************************* Description; 统计x中值为1的二进制位数*************************************/#include <stdio.h>int bitcount(unsigned int x){ int b; for(b=0; x!=0; x>>=1) if(x & 01) b++; 阅读全文
posted @ 2011-07-15 12:53 Tony.Works 阅读(408) 评论(4) 推荐(2) 编辑
  2011年7月13日
摘要: 按位运算符的运用:C语言中提供了6个位操作符。这些运算符只能作用于整型操作数,即只能作用于带符号或无符号的char、short、int与long类型:&| ^ >> << ~1.按位与的运用:& 提取特定位、清零其余位: 例如:mask中要保留的位上为1,其他位为0,a=a0&mask 判断int的奇偶(效率比%2高得多): 例如:(a&1)==0则为偶数,反之为奇数。(原理:因为奇数二进制末位总为1,偶数总为0。原数与00…001进行按位与运算,就得到了a二进制末位的值。)2.按位异或运用:^ 特定位取反 例如:mask中要取反的位为1 阅读全文
posted @ 2011-07-13 11:58 Tony.Works 阅读(688) 评论(1) 推荐(0) 编辑
摘要: 习题2-4: 编写函数squeeze(s1,s2),将字符串s1中任何与字符串s2中字符匹配的字符都删除 在写次函数之前,先看下一个更简单的函数squeeze(char s[], int c),从字符串s中删除字符c#include<stdio.h>void squeeze(char s[], int c){ int i,j; for(i=j=0; s[i]!='\0'; i++) if(s[i]!=c) s[j++]=s[i]; s[j]='\0';}int main(){ char s[]={}; int i=0; while((s[i++]=g 阅读全文
posted @ 2011-07-13 00:04 Tony.Works 阅读(464) 评论(5) 推荐(2) 编辑
  2011年7月12日
摘要: 《C程序设计语言》习题2-3编写函数str_hextoint(s),把由十六进制数字组成的字符串(包含可选的前缀0x或0X)转换为与之等价的整型值。字符串中允许包含的数字包括:0~9,a~f以及A~F。#include<stdio.h>#define YES 1#define NO 0int str_hextoint(char s[]){ int hexdigit, i, inhex, n; i=0; if(s[i]=='0') { ++i; if(s[i]=='x' || s[i]=='X') ++i; } n=0; inhex=Y 阅读全文
posted @ 2011-07-12 21:14 Tony.Works 阅读(380) 评论(4) 推荐(1) 编辑
摘要: 之前看到一个面试题目: 将字符串转换成整型数字,当时一想有点没头绪,没办法自己学的太烂了,还不具备编程思想,算法也是一塌糊涂。今天写了下程序,特在这里记录下:/**********************Description: 将字符串转换成相应的整型数 例如:“653”-> 653********************/#include <stdio.h>int strtoint(char s[]){ int i,n; n=0; for(i=0; s[i]>='0' && s[i]<='9'; ++i) { n 阅读全文
posted @ 2011-07-12 19:43 Tony.Works 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 字符串常量: 字符串常量也叫字符串字面值,是用双引号括起来的0个或多个字符组成的字符序列。双引号不是字符串的一部分,它只用于限定字符串。 从技术角度看,字符串常量就是字符数组。字符串的内部表示使用一个空字符'\0'作为串的结尾,因此,存储字符串的物理存储单元比括在双引号中的字符数多一个。这种表示方法也说明,C语言对字符串的长度没有限制,但程序必须扫描完整个字符串后才能确定字符串的长度。 标准库函数strlen(s)可以返回字符串参数s的长度,但长度不包括末尾的'\0'。 下面给出strlen()的两个版本:1 int strlen(char s[])2 {3 i 阅读全文
posted @ 2011-07-12 17:06 Tony.Works 阅读(507) 评论(1) 推荐(2) 编辑
摘要: 练习2-1: 编写一个程序以确定分别由signed及unsigned限定的char、short、int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现: 采用打印标准头文件中的相应值: 1 #include <stdio.h>2 #include <limits.h>3 //determine ranges of types4 int main()5 {6 printf("采用打印标准头文件limits.h中的相应值:\n");7 //signed types8 printf("signed char mi 阅读全文
posted @ 2011-07-12 16:15 Tony.Works 阅读(1234) 评论(9) 推荐(2) 编辑
摘要: 课后习题1-23:编写一个删除C语言程序中所有的注释语句的程序,要正确处理带引号的字符串与字符常量。在C语言程序中,注释不允许嵌套。ps:未考虑去除C/C++中的单行注释符'//'后面的注释内容 1 /******** 2 Description: 3 删除C语言中所有的注释语句 4 ******/ 5 #include <stdio.h> 6 void rcomment(int c); 7 void in_comment(void); 8 void echo_quote(int c); 9 10 //remove all comments from a valid 阅读全文
posted @ 2011-07-12 12:46 Tony.Works 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 自从进入2011年9月以来,全国高校就开始迎来一年一度的校园招聘高峰,教育部规定,招聘企业最早可以进校园招聘的时间为11月20日,但很多企业纷纷提早进入各大高校“争夺”人才,越来越多的用人单位主动错开招聘高峰,尽量避免与同行企业出现“撞车”,这些因素导致名校校园招聘高峰期提前到来。用一家媒体的话来说,2011届毕业生就业形势---很给力。 但这些企业给出的Offer够不够给力呢?我们一起来看一下截止目前为止搜集到的2011年最新企业offer(待遇)比较吧!首先申明:1.今年最新企业的offer比较,主要是待遇方面的信息。2.信息皆来源于网络,但是可以保证都是今年的最新信息3.目的只是为了给. 阅读全文
posted @ 2011-07-12 00:06 Tony.Works 阅读(1231) 评论(0) 推荐(0) 编辑