C程序设计语言(K&R) 笔记2】的更多相关文章

1.表达式中float类型的操作数不会自动转换为double类型.一般来说,数学函数(如math.h)使用双精度类型的变量.使用float类型主要是为了在使用较大数组时节省存储空间,有时也为了节省机器执行时间(双精度算数元算特别费时). 2.scanf函数调用时,字符串类型不需要写‘&’,因为其本身即为地址. 3.EOF可能被定义为不同的值,使用EOF等标准符号可以增强程序的可移植性,常见值有-1. 4.根据某种特定的状态做不同的行为,可以用define定义状态量,然后定义int state.如…
题目就不写了,大概意思就是:尽量用制表符'\t'替换掉字符串中的空格. 同学们需要注意的是,打印一个制表符'\t',其所占长度不是固定的. 这里要理解“制表符”和“制表符终止位”.“制表符”的作用是使得光标移动到下一个“制表符终止位”上.举个例子,假设制表符终止位是4.8.12.16......已经已经输入了10个字符,然后按一下Tab键,那么光标会移动到位置12上,同学们新建一个文本文档试一下就了解了. 这个题目看似简单,但是写一个简单.清晰的程序还是需要花一点脑筋的. /* 这个程序看似简单…
函数包含连续执行的语句,可以使用代码中通过调用函数来执行他们,函数能够将一个复杂的工作切分成多个更小的模块,使多人写作变得容易.另外,函数对他的使用者隐藏了实现细节.这几方面的特性使得函数成为多数编程语言的重要特性之一. 1. 函数声明 每个函数都包含一个名字,一个形参列表,一个可选的返回列表及函数体 func name(parameter-list) (result-list) { body } 形参列表指定了函数返回值的类型,这些局部变量都由调用者提供的实参传递而来.返回值列表指定了函数返回…
举例如下: char a[10]; 1.定义的时候直接用字符串赋值 char a[10]="hello"; 注意:不能先定义再给它赋值,如  char a[10];  a[10]="hello"; 这样是错误的! 2.对数组中字符逐个赋值 char a[10]={'h','e','l','l','o'}; 3.利用strcpy char a[10]; strcpy(a, "hello"); 易错情况: 1.char a[10]; a[10]=&q…
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <curses.h> int getline_(char *s,int n) { char c; char *sta = s; while(--n > 0 && (c = getchar()) != EOF…
#include <io.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> #define Num 20 int strindex(char s[],char t[]) { int i,j,k; int position = -1; for(i = 0;s[i] != '\0';i++) {…
#include <stdio.h> #include <string.h> #define Num 1000 int main() { int c,i,j = 0,m = 0,n = 0,k,count1 = 0,count2 = 0,w,h = 0,l = 0,flag2 = 0; char s[Num],t[Num],str[Num] = {'\0'}; int number[Num],number2[Num],flag = 0; printf("Please in…
#include <stdio.h> #define Num 10 int atoi(char s[]); int main() { int c,i = 0; char s[Num]; int result; while((c = getchar()) != EOF && c != '\n' && i < Num) { s[i] = c; i++; } result = atoi(s); printf("%d\n",result); r…
#include <stdio.h> #include <stdio.h> int htoi(char s[]); main() { char s1[] = "10"; char s2[] = "2D"; char s3[] = "3f"; char s4[] = "0X4F"; char s5[] = "0x3a"; printf("%s -> %d\n"…
#include <stdio.h> #include <string.h> #define sta 1500 #define Num 1600 int main() { int year; for(year = sta;year < Num + 1;year++) if(year % 4 == 0) { if(year % 400 == 0) { printf("%d \n",year); } else if (year % 100 != 0) { pr…
#include <stdio.h> #include <stdlib.h> #include <string.h> int aoti(char c) { if(c >= 'A' && c <= 'Z') return c-'A'+'a'; else return c; } int main() { int i = 0; int c,d; while((c = getchar()) != EOF && c != '\n') {…
#include "stdio.h" #define Num 100 void reverse(char words[]) { int i, j, c, n=0; while(words[n]!='\0') n++; for(i=0,j=n-1;i<j;i++,j--) { c = words[i]; words[i] = words[j]; words[j] = c; } } int main() { char words[Num]={0}; int c,i = 0; whil…
#include <stdio.h> #define MAXLINE 10 int getLine(char s[], int lim); void copy(char to[], char from[]); int calcLen(char s[]); int main() { int len, index, row; char line[MAXLINE]; char post_line[MAXLINE][MAXLINE]; row = 0; while((len = getLine(lin…
#include <stdio.h> #define MAXLINE 100 #define MAX 8 int getline(char line[],int maxline); void copy(char to[],char from[]); int main() { int len; int max; char line[MAXLINE] = {0}; char longest[MAXLINE] = {0}; max = 0; while((len = getline(line,MAX…
#include <stdio.h> #define MAXLINE 10 int getline(char line[],int maxline); void copy(char to[],char from[]); int main() { int len; int max; char line[MAXLINE] = {0}; char longest[MAXLINE] = {0}; max = 0; while((len = getline(line,MAXLINE)) > 0)…
#include <stdio.h> #define MAXLINE 1000 int getline(char line[],int maxline); void copy(char to[],char from[]); int main() { int len; int max; char line[MAXLINE]; char longest[MAXLINE]; max = 0; while((len = getline(line,MAXLINE)) > 0) if(len >…
#include <stdio.h> #define Num 20 int power(int base,int n) { int p = 1; int i; for(i = 0;i < n;i++) p = p*base; return p; } int main() { int base = 2,n = Num; int i; for(i = 0;i < n;i++) printf("%2d %-6d\n",i,power(base,i)); return…
#include <stdio.h> #define Num 10 int main() { int wor = 0; int arr[Num] = {0}; int c,count = 0,i; int flag = 0; printf("Please input at most 10 words.\n"); while((c = getchar()) != EOF) { if(c == '\n' ||c == ' ' || c == '\t') { if(flag ==…
#include <stdio.h> int main() { int c; while((c = getchar()) != EOF) { if(c != '\n' && c != ' ' && c != '\t') { putchar(c); printf("\n"); } } return 0; } 每行一个单词打印输入的字符,除去空符.…
#include <stdio.h> int main() { int lin = 0,wor = 0,cha = 0; int flag = 0; int c; while((c = getchar()) != EOF) { if(c == '\n') lin++; if(c == '\n' ||c == ' ' || c == '\t') { cha++; flag = 0; } else if(flag == 0) { wor++; flag = 1; } } printf("…
#include <stdio.h> int main() { int c; int flag = 0; while((c = getchar()) != EOF) { if(c == ' ') { if(flag == 0) { flag = 1; putchar(c); } } else if(c != ' ') { putchar(c); flag = 0; } } return 0; } 多个空格变为一个空格.…
#include <stdio.h> int main() { int spa = 0,lin = 0,tab = 0; int c; /* spa代表空格个数,tab代表制表符个数,lin代表换行符个数 */ while((c = getchar()) != EOF) { if(c == ' ') { spa++; } else if(c == '\t') { tab++; } else if(c == '\n') { lin++; } } printf("%d %d %d\n&q…
练习1-20:编写程序detab,将输入中的制表符替换成适当数目的空格,使得空格充满到下一个制表符终止位的地方,.假设制表符终止位的位置时固定的,比如每隔n列就会出现一个终止位. 这里要理解“制表符”和“制表符终止位”.“制表符”的作用是使得光标移动到下一个“制表符终止位”上.举个例子,假设制表符终止位是4.8.12.16......已经已经输入了10个字符,然后按一下Tab键,那么光标会移动到位置12上,同学们新建一个文本文档试一下就了解了. 代码如下: #include<stdio.h>…
#include "stdio.h" #include "stdlib.h" #include "string.h" static char daytab[2][13] = { {0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31} }; int day_of_year(int year,int month,int day) { int le…
#include "stdio.h" #include "stdlib.h" #include "string.h" static char daytab[2][13] = { {0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31} }; int day_of_year(int year,int month,int day) { int i,…
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <curses.h> void strncpy_(char *s,char *t,int n) { while(*t && n-- > 0) *s++ = *t++; while(n-- > 0) *…
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <curses.h> int strend(char *s,char *t) { char *stas = s; char *stat = t; for(;*s;s++) ; for(;*t;t++) ; for(;*s ==…
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <curses.h> void strcat_(char *s,char *t) { while(*s) s++; while((*s++ = *t++)) ; } int main() { char c[] = "I…
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> #define swap(t,x,y) { t _z;\ _z = y;\ y = x;\ x = _z; } int main() { int a = 0,b = 1; swap(int,a,b); printf("%d %d\n",a,b); return 0; }…
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> void reverse(char s[],int i,int len) { int c,j; j = len - (i + 1); if(i < j) { c = s[i]; s[i] = s[j]; s[j] = c; reverse(s,++i,len); } } int main() { ch…