
CPrimerPlus
三石先生XL
这个作者很懒,什么都没留下…
展开
-
c中的getchar和putchar
getchar是以行为单位进行存取的。当用getchar进行输入时,如果输入的第一个字符为有效字符(即输入是文件结束符EOF,Windows下为组合键Ctrl+Z, Unix/Linux下为组合键Ctrl+D),那么只有当最后一个输入字符为换行符'\n'(也可以是文件结束符EOF,EOF将在后面讨论)时, getchar才会停止执行,整个程序将会往下执行。譬如下面程序段:while((c转载 2013-02-07 14:21:28 · 2381 阅读 · 0 评论 -
C primer plus第11章(字符串和字符函数)习题(10选择排序)
#include int main(int argc,char *argv[]){ char note[] = "abcdef"; //++note;不能对note++ char *a; a = note; puts(++a);//bcdef puts(a++);//bcdef puts(a);//cdef return 0;}原创 2013-03-14 00:38:03 · 1427 阅读 · 0 评论 -
C primer plus第12章(存储类、链接和内存管理)
parta.c#include #include void report_count();void accumulate(int k);int count = 0;//文件作用域,外部链接(在整个项目生效)int main(void){ int value;//自动变量(代码块内生效) register int i;//寄存器变量(代码块内生效) pr原创 2013-03-21 09:11:17 · 923 阅读 · 0 评论 -
内存分配(malloc/realloc/calloc区别)
void* realloc(void* ptr, unsigned newsize);void* malloc(unsigned size);void* calloc(size_t nelem, size_t elsize);都在stdlib.h函数库内。C语言的标准内存分配函数:malloc,calloc,realloc等。 malloc与calloc转载 2013-03-22 00:35:43 · 447 阅读 · 0 评论 -
C primer plus第13章(文件输入/输出)习题
4#include #include /*#include */ /*mac下*/int main(int argc,char *argv[]){ FILE *fp; double n; double sum = 0.0; int ct = 0; //argc = ccommand(&argv); //对于mac if(argc =原创 2013-03-26 23:22:14 · 1006 阅读 · 0 评论 -
C primer plus第12章(存储类、链接和内存管理)习题
1#include void critic(int *ubits);int main(void){ int units; printf("How many?\n"); scanf("%d",&units); while(units != 56) critic(&units); printf("You must have look原创 2013-03-23 12:04:54 · 977 阅读 · 0 评论 -
C primer plus第13章(文件输入/输出)对文本文件及二进制文件的处理
#include #include // c的exi() 原型int main(int argc,int *argv[]){ int ch; FILE *fp; long count = 0; if(argc != 2) { printf("Usage:%s filename\n",argv[0]); exit(1);/原创 2013-03-24 20:18:46 · 904 阅读 · 0 评论 -
C primer plus第14章(结构和其他数据形式)
//结构体与指针#include #define LEN 20//#include //mac下需要struct names{ char first[LEN]; char last[LEN];};struct guy{ struct names handle; char favfood[LEN]; char job[LEN]; f原创 2013-04-06 17:21:06 · 1295 阅读 · 0 评论 -
C primer plus第14章(结构和其他数据形式)(练习)
//练习3、4、5#include struct month{ char name[10]; char nik[4]; int days; int month;};struct month months[12] ={ {"January","jan",31,1}, {"February","feb",28,2}, {"March原创 2013-04-12 00:50:45 · 1200 阅读 · 0 评论 -
C的位运算
用法:掩码 (&)flags = flags & MASK; flags&= MASK; //把MASK中0位看做非透明,1位看做透明,MASK覆盖在flags上,透明位的值为flags对应位的值,非透明位的值都为0用法:打开位 (|)flags = flags | MASK; flags| = MASK;原创 2013-04-25 23:30:31 · 799 阅读 · 0 评论 -
字符串和字符函数
#include #define MSG "You must have many talents.Tell me some."//一个符号字符串常量#define LIM 5#define LINELEN 81 //最大字符串长度+1int main(){ char name[LINELEN]; char talents[LINELEN]; int i;原创 2013-03-07 02:57:57 · 762 阅读 · 0 评论 -
C primer plus第10章(指针)习题
//下面每种情况中*ptr和*(ptr+2)的值分别是什么 int *ptr; int torf[2][2] = {12,14,16}; ptr = torf[0]; //*ptr = 12;*(ptr+2) = 16;把16视作二维数组第二行第一个值 int *ptr; int fort[2][2] = {{12},{14,16}}; p原创 2013-03-04 15:26:41 · 3198 阅读 · 0 评论 -
C primer plus第8章(字符输入/输出和输入确认)习题
#include char get_choice(void);char get_first(void);int get_int(void);void count(void);int main (void){ int choice; //void count(void);//main内部声明只能在main1内用 while((choice = get_choice原创 2013-02-20 08:54:25 · 674 阅读 · 0 评论 -
C primer plus第3章(数据和C)习题
1.合适的数据类型a.人口 int、short、unsigned、unsigned short b.DVD影碟的价格 floatc.字母 chard.字母出现的次数 int 或者unsigned 2.长度超过int所能表示的范围要用long3. 获得一个32位的有符号整数类型,可以使用那些可移植数据类型?每种选择的理由是什么?4. a. '\b' char 光标原创 2013-01-18 17:20:06 · 1157 阅读 · 0 评论 -
C primer plus第7章(C控制语句:分支和跳转)习题
1.#include #include #include int main(){ int con1,con2,con3; con1 = con2 = con3 = 0; char c; while((c = getchar()) != '#') { if(c == '\n') { con1++;原创 2013-02-20 08:51:56 · 825 阅读 · 0 评论 -
C primer plus第6章(c控制语句:循环)习题
1#include int main (void){ char letters[26]; int i; for(i=0;i<26;i++) { letters[i] = (char)('a'+i); } for(i=0;i<26;i++) { printf("%c", letters[i]); }}2原创 2013-02-05 17:21:02 · 688 阅读 · 0 评论 -
C primer plus第5章(运算符、表达式和语句)习题
3.#include int main (void){ int i = 1; float n; printf("Watch out! Here come a bunch of fractions!\n"); while(i++ < 30) { n = 1.0/i;//将1改为1.0,当2个数都是整数时,第一次结果为1,当I增大时结果会一直原创 2013-02-05 09:35:25 · 906 阅读 · 1 评论 -
C primer plus第1章(概览)习题
1.就编程而言,可移植性标示什么?在一个系统上编写的程序不经过改动或者只经过很小改动就能在其他系统上运行。2.解释源代码文件、目标代码文件和可执行文件之间的区别。源代码文件:程序员编写的源文件,未经过解释及编译;目标代码文件:中间文件,经过编译器编译后转换成的中间代码文件;可执行文件:中间文件+启动代码+库例程。3.编程的7个主要步骤是什么?(1)定义程序目标(2)原创 2013-01-05 16:03:01 · 652 阅读 · 0 评论 -
C primer plus第9章(函数)习题
9.#include int menu();int showNum(int n1, int n2);int main (void){ int num; do { menu(); } while((num = showNum(1,100)) == 0); printf("%d",num); return 0;}int menu(){ int code,status; p原创 2013-02-27 12:54:12 · 776 阅读 · 0 评论 -
C primer plus第4章(字符串和格式化输入/输出)习题
2a: printf("%2.2f",2.345e2);打印结果234.50b: printf("%c,%c,%c");打印结果H,i,!c. #define Q "His Hamlet was funny without being vulgar."printf("%s,%d");打印结果His Hamlet was funny without being vulgar. , 4原创 2013-01-31 10:36:29 · 2857 阅读 · 0 评论 -
C primer plus第2章(C语言概述)习题
1.如何称呼C程序的基本模块?函数。2.什么是语法错误?给出它的一个英语例子和C语言例子。英语: Me speak English good.C语言: printf(“漏掉了后面的分号”)3.什么是语义错误?给出它的一个英语例子和C语言例子。英语: This sentence is excellent Italian.C语言: thrice_n = 3+n;原创 2013-01-06 09:06:35 · 1304 阅读 · 0 评论 -
C primer plus第15章(位操作)
15.1//使用位运算显示二进制数#include char * itobs(int,char *);void show_bstr(const char*);int main(void){ //用8位表示一个字节,最后加1为考虑到是数组为\0预留 char bin_str[8 * sizeof(int) + 1]; int number; puts("En原创 2013-05-02 08:42:46 · 1303 阅读 · 0 评论