The C Programming Language Learning
2018-03-01 17:30
232 查看
1.编写函数 reverse(s),将字符串 s 中的字符顺序颠倒过来。
int reserve(char s[]){ int i,j; char temp; i=0; while(s[i]!='\0') ++i;//find the end of string --i;//back off from '\0' j=0; while(j<i){ temp = s[j]; s[j] = s[i]; s[i] = temp; --i; ++j; } return 0; }
2.统计输入数字字符出现的次数
#include <stdio.h> main(){ int ndigit[10]; int space,others; int i,c; for(i=0;i<10;i++) ndigit[i]=0; while((c=getchar())!='\n'){ if(c>='0'&& c<='9') ndigit[c-'0']++; } for(i=0;i<10;i++) printf("%d %d次\n",i, ndigit[i]); }
3.char对象占用8位,unsigned char的范围是2的8次方0到255 singed char为-128到127
4.编写一个程序以确定分别由 signed 及 unsigned 限定的 char、short、int 与 long 类型变量的取值范围。
#include <stdio.h> #include <limits.h> int main(){ printf("singed char %d 到%d\n",SCHAR_MIN, SCHAR_MAX); printf("singed short %d 到%d\n",SHRT_MIN, SHRT_MAX); printf("singed int %d 到%d\n",INT_MIN, INT_MAX); printf("singed long %ld 到%ld\n",LONG_MIN, LONG_MAX); printf("unsigned char max:%u\n",UCHAR_MAX); printf("unsigned short max:%u\n",USHRT_MAX); printf("unsigned int max:%u\n",UINT_MAX); printf("unsigned long max:%lu\n",ULONG_MAX); return 0; } 不同的机器值可能不同 singed char -128 到127 singed short -32768 到32767 singed int -2147483648 到2147483647 singed long -9223372036854775808 到9223372036854775807 unsigned char max:255 unsigned short max:65535 unsigned int max:4294967295 unsigned long max:18446744073709551615
5.标准库函数 strlen(s)可以返回字符串参数 s 的长度,但长度不包括末尾的’\0’
#include <stdio.h> #include <string.h> int main(){ char name[] = "I like linux c"; int l = mystrlen(name); printf("len:%d\n", l); return 0; } int mystrlen(char s[]){ int len=0; while(s[++len]!='\0') ; return len; }
6.算术运算符,整数除法会截断结果中的小数部分
9/4=2 9/10=0取模运算符%:x%y的结果是 x 除以 y 的余数
9%10=9 9%3=0
7.如果某一年的年份能被 4整除但不能被 100 整除,那么这一年就是闰年,此外,能被 400 整除的年份也是闰年
/** *返回值1为闰年,0不是闰年 */ int years(int year){ if((year%4==0) && (year%100!=0)|| (year%400==0)) return 1; else return 0; }
8.删除字符串s中出现的所有字符c
void squeeze(char s[], int c){int i,j=0; for(i=0;s[i]!='\0';i++){ if(s[i]!=c) s[j++] = s[i]; } s[j] = '\0';
}
表达式++n 先将 n 的值递增 1,然后再使用变量 n 的值,而表达式 n++则是先使用变量 n 的值,然后再将 n 的值递增 1。
也就是说,对于使用变量 n 的值的上下文来说,++n 和 n++的效果是不同的
“`
9.按位运算符
C 语言提供了 6 个位操作运算符。这些运算符只能作用于整型操作数,即只能作用于带符号或无符号 char、short、int、long 类型:
& 按位与(AND)
| 按位或(OR)
^ 按位异或(XOR)
<< 左移
(>>) 右移
~ 按位求反(一元运算符)
按位与运算符&经常用于屏蔽某些二进制位,置0
按位或运算符|常用于将某些二进制位置为 1
10.编写一个函数 invert(x, p, n),该函数返回对 x 执行下列操作后的结果值:将 x 中从第 p 位开始的 n 个(二进制)位求反(即,1 变成 0,0 变成 1) 的其余各,x位保持不变。
11.函数trim用于删除字符串尾部的空格符,制表符与换行符
12.在一个源程序的所有源文件中,一个外部变量只能在某个文件中定义一次,而其它文件可以通过 extern 声明来访问它(定义外部变量的源文件中也可以包含对该外部变量的extern 声明)外部变量的定义中必须指定数组的长度,但 extern 声明则不一定要指定数组的长度。外部变量的初始化只能出现在其定义中。
13.指针是一种保存变量地址的变量
相关文章推荐
- The C++ Programming Language 读书笔记(二)
- The C++ Programming Language
- 读书笔记:《The C++ programming Language》 第五章
- TCPL(The C Programming Language)读书笔记 第二章 类型、运算符与表达式
- the c programming language
- The JavaFX™ Script Programming Language Reference (Draft)
- The Swift Programming Language中文完整版(CocoaChina精校)-pdf
- 《The C Programming Language》读书笔记2
- Code Conventions for the Java Programming Language
- The C Programming Language 读书计划
- The Swift Programming Language 中英文双语版
- The Swift Programming Language中国完整版
- a expample of the c programming language.(temp)
- [精校版]The Swift Programming Language--语言指南--类型嵌套
- The Swift Programming Language-个人之见
- The Swift Programming Language-中文文档(已完结)
- http://numbbbbb.github.io/the-swift-programming-language-in-chinese/chapter1/02_a_swift_tour.html
- 简读The Swift Programming Language官方文档--属性Properties
- The C++ Programming Language(二)
- 《The Swift Programming Language》的笔记-第28页