C Primer Plus 第十二章程序清单……2015.5.10

C Primer Plus

          第五版

第十二章  程序清单

#include<stdio.h>

int main()

{

int x=30;

printf("x in outer block:%d\n",x);

{

int x=77;

printf("x in inner block:%d\n",x);

}

printf("x in outer block:%d\n",x);

while(x++<33)

{

int x=100;

x++;

printf("x in while loop:%d\n",x);

}

printf("x in outer loop:%d\n",x);

return 0;

}

2、

#include <stdio.h>

int main ()

{

int n = 10;

printf ("Initially, n = %d \n", n);

for (int n = 1; n < 3; n++)

printf ("loop 1: n = %d \n",n);

printf ("After loop 1, n = %d \n", n);

for (int n = 1; n < 3; n++)

{

printf ("loop 2 index n = %d \n", n);

int n = 30;

printf ("loop 2: n = %d \n",n);

n++;

}

printf ("After loop 2, n = %d \n",n);

return 0;

}

程序清单12.3

#include<stdio.h>

void trysat(void);

int main(void)

{

int count;

for(count=1;count<=3;count++)

{

printf("Here comes lterration%d:

\n",count);

trysat();

}

return 0;

}

void trysat(void)

{

int fade=1;

static int stay=1;

printf("fade=%d and stay=%d\n",fade++,stay++);

}

程序清单12.4

#include<stdio.h>

int units=0;

void critic(void);

int main(void)

{

extern int units;

printf("how many pounds to a firkin of butter?

\n");

scanf("%d",&units);

while(units!=56)

critic();

printf("You must have looked it up! %d

\n",units);

return 0;

}

void critic(void)

{

printf("Noluck");

scanf("%d",&units);

}

#include<stdio.h>

void report_count();

void accumulate(int k);

int count=0;

int main(void)

{

int value;

register int i;

printf("Enter a positive integer:");

while(scanf("%d",&value)==1&&value>0)

{

++count;

for(i=value;i>=0;i--)

accumulate(i);

printf("Enter a positive integer ");

}

report_count();

return 0;

}

void report_count()

{

printf("Loop executed %d times\n",count);

}

#include<stdio.h>

extern int count;

static int total=0;

void accumulate(int k);

void accumulate(int k)

{

static int subtotal=0;

if(k<=0)

{

printf("loop cycle:%d\n",count);

printf("subtotal:%d; total:%d

\n",subtotal,total);

subtotal=0;

}

else

{

subtotal+=k;

total+=k;

}

}

程序清单12.7

static unsigned long int next=1;

int rand0(void)

{

next=next*1103515245+12345;

return (unsigned int)(next/65536)%32768;

}

程序清单12.8

#include<stdio.h>

extern int rand0(void);

int main(void)

{

int count;

for(count=0;count<5;count++)

printf("%hd\n",rand0());

return 0;

}

程序清单12.9

#include<stdio.h>

extern void srand1(unsigned int x);

extern int rand1(void);

int main(void)

{

int count;

unsigned seed;

printf("Please enter your choice for seed.\n");

while(scanf("%u",&seed)==1)

{

srand1(seed);

for(count=0;count<5;count++)

printf("%hd\n",rand1());

printf("Please enter next seed\n");

}

printf("Done\n");

return 0;

}

程序清单12.10

static unsigned long int next=1;

int rand1(void)

{

next=next*1103515245+12345;

return (unsigned int)(next/65536)%32768;

}

void srand1(unsigned int seed)

{

next=seed;

}

程序清单9.11

#include"diceroll.h"

#include<stdio.h>

#include<stdlib.h>

int roll_count=0;

static int rollem(int sides)

{

int roll;

roll=rand()%sides+1;

++roll_count;

return roll;

}

int roll_n_dice(int dice,int sides)

{

int d;

int total=0;

if(sides<2)

{

printf("Need at least 2 sides.\n");

return -2;

}

if(dice<1)

{

printf("Need at least 1 die.\n");

return -1;

}

for(d=0;d<dice;d++)

total+=rollem(sides);

return total;

}

程序清单9.12

extern int roll_count;

int roll_n_dice(int dice,int sides);

程序清单9.13

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

#include"diceroll.h"

int main(void)

{

int dice,roll;

int sides;

srand((unsigned int)time(0));

printf("Enter the number of sides per die.0 to

stop.\n");

while(scanf("%d",&sides)==1&&sides>0)

{

printf("How many dice?\n");

scanf("%d",&dice);

roll=roll_n_dice(dice,sides);

printf("You have rolled a %d using %d %d

sided dice.\n",roll,dice,sides);

printf("How many sides?\n");

}

printf("The rollem %d times.\n",roll_count);

printf("GOOD");

return 0;

}

程序清单12.14

#include<stdio.h>

#include<stdlib.h>

int main(void)

{

double *ptd;

int max;

int number;

int i=0;

puts("What is the ?");

scanf("%d",&max);

ptd=(double*)malloc(max*sizeof(double));

if(ptd==NULL)

{

puts("Memory allocation faild\n");

exit(EXIT_FAILURE);

}

puts("Enter the values");

while(i<max&&scanf("%lf",&ptd[i])==1)

++i;

printf("Here are your %d entries\n",number=i);

for(i=0;i<number;i++)

{

printf("%7.2f",ptd[i]);

if(i%7==6)

putchar(‘\n‘);

}

if(i%7!=0)

putchar(‘\n‘);

puts("Done.");

free(ptd);

return 0;

}

时间: 2024-08-05 06:18:59

C Primer Plus 第十二章程序清单……2015.5.10的相关文章

C Primer Plus 第十二章课后习题……2015.5.10

第十二章课后习题 1.自动存储 寄存器存储 静态空连接 2.静态空连接 内部链接 外部链接 3.静态外部链接  静态内部链接 4.空连接 5.在声明中使用表面这个变量或函数已经定义过 6.都分配一个具有100个int值的数组,calloc还把每个元素设置为零. 7.daisy全局变量  lily局部变量 8.#include<stdio.h> char color='B'; void first(void); void second(void); int main(void) { extern

c++ primer plus(第6版)中文版 第十二章编程练习答案

第十二章编程练习答案 12.1根据以下类声明,完成类,并编小程序使用它 //12.1根据以下类声明,完成类,并编小程序使用它 #include <iostream> #include <cstring> using namespace std; class Cow{ char name[20]; char * hobby; double weight; public: Cow(); Cow(const char * nm, const char * ho, double wt);

C primer plus 第五版十二章习题

看完C prime plus(第五版)第十二章,随带完成了后面的习题. 1.不使用全局变量,重写程序清单12.4的程序. 先贴出12.4的程序,方便对照: 1 /* global.c --- 使用外部变量 */ 2 #include <stdio.h> 3 int units = 0; //一个外部变量 4 void critic(void); 5 int main(void) 6 { 7 extern int units; 8 9 printf ("How many pounds

C Primer Plus (第五版) 第十二章 存储类、链接和内存管理 编程练习

第十二章 存储类.链接和内存管理 编程练习 1.Q不使用全局变量,重写程序清单13.4 #include <stdio.h>; int critic(int u); int main(void) { int units; printf("How many pounds to a firkin of butter?\n"); scanf_s("%d", &units); while (units != 56) critic(units); prin

第二十二章 TCP/IP层的实现

                      第二十二章    TCP/IP层的实现        我比较喜欢先难后易,如果把GPU显示管理.和网络管理拿下后:我会从头整理.改写一遍APO操作系统.这样,就会形成APO操作系统的锥形.也获得了全局观.内核CPU线路.和用户CPU线路,你可以将它们看成是独立的2个32位CPU核:内核CPU主要任务是实时处理.硬件中断,256个实时线程包含了一些中断程序的后半部.用户CPU主要是动态优先级进程.线程调度,各种应用程序的运行:2个核之间是通过消息交互.句

第十二章 APO编程语言

第十二章      APO编程语言 APO编程语言是基于汇编语言和面向对象编程.基本指令只有7种:赋值指令.COPY指令.BTX(位X测试为1.或0转移)指令.查表跳转指令switch(RN){-.}.移位与循环指令S.三操作数运算指令.调用与返回指令.所有的指令大小.除了32位立即数赋值是2字外:其它都是32位,一个字. 指令执行时间,除了32位立即数赋值是2ns.COPY指令取决于拷贝的长度外:其它指令都是1ns. 应用程序只能使用R0-R4,R8-R15的21个寄存器作为高速的寄存器局部变

第十二章 读书笔记

第十二章  Linux 驱动程序中的 阻塞和非阻塞 I/O 等待队列是 Linux 内核的一种实现进程休眠的技术.在上一章介绍的自旋锁使用的是不断循环 的方式阻塞 Linux 驱动,这种方式很占 CPU 资源.而等待队列的你眠技术可以大大降低休眠进程对 CPU 资源的消耗,信号量就是利用等待队列实现了对临界区的锁定.本节将介绍等待队列的原 理以及相关的函数和宏,最后会使用一个完整的例子来演示如何使用等待队列休眠和唤醒进程. 运行在用户空间的应用程序可以使用 select函数检测设备文件是否可以读

Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验

Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 这一章很多,但是很有趣,也是这书的最后一章知识点了,我现在还在考虑要不要写这个拼图和2048的案例,在此之前,我们先来玩玩Android5.X的新特性吧!

Java学习笔记—第十二章 Java网络编程入门

第十二章  Java网络编程入门 Java提供的三大类网络功能: (1)URL和URLConnection:三大类中最高级的一种,通过URL网络资源表达方式,可以很容易确定网络上数据的位置.利用URL的表示和建立,Java程序可以直接读入网络上所放的数据,或把自己的数据传送到网络的另一端. (2)Socket:又称"套接字",用于描述IP地址和端口(在Internet中,网络中的每台主机都有一个唯一的IP地址,而每台主机又通过提供多个不同端口来提供多种服务).在客户/服务器网络中,当客