C和指针 第十三章 习题

1,1标准输入读入字符,统计各类字符所占百分比

#include <stdio.h>
#include <ctype.h>

//不可打印字符
int isunprint(int ch){
    return !isprint(ch);
}

//转换表,储存各个判断函数指针
int (*tables[])(int) = {iscntrl, isspace, isdigit, islower, isupper, ispunct, isunprint};

int main()
{
    int count[7] = {0};
    int ch;
    int idx;

    while((ch = getchar()) != EOF){
        //转换表中的函数进行测试,如果符合对应的数组项+1
        for(idx = 0; idx < 7; idx++){
            if(tables[idx](ch)){
                count[idx]++;
            }
        }
    }

    for(idx = 0; idx < 7; idx++){
        printf("%d\n", count[idx]);
    }

    return 0;
}

运行结果:

1.4 编写sort函数,对任何类型数组进行排序

时间: 2024-11-03 05:41:27

C和指针 第十三章 习题的相关文章

网络操作系统第十二、十三章习题

第十二章习题 1.简述FTP的连接模式. 答:FTP的连接模式有RORT和PASV两种,其中RORT是主动模式,PASV是被动模式,这里说的主动和被动都是相对与服务器而言的.如果是主动模式,数据端口为20,如果是被动模式,则由服务器端和客户端协商而定. 2.简述FTP的传输模式. 答:FTP的传输模式包括ASCII传输模式和二进制模式.ASCII传输模式适合用于文本传输,二进制传输模式适合用于非文本传输. 3.如何在Windows系统中配置FTP服务器? 答:在安装服务器时,在"FTP站点&qu

C和指针 第七章 习题

7.1 hermite递归函数 int hermite(int n, int x) { if (n <= 0) { return 1; } if (n == 1) { return 2 * x; } return 2 * x * hermite(n - 1, x) - 2 * (n - 1) * hermite(n - 2, x); } 7.2两个整型值M和N(m.n均大于0)的最大公约数计算公式: gcd(M,N) 当M % N = 0;  N 当M % N =R, R > 0; gcd(N

C和指针 第十三章 高级指针话题

高级声明: int (*f)(); 这里声明有两个括号,第二个括号是函数调用,第一个括号是聚组作用.(*f)是一个函数,所以f是指向返回整型的函数的指针.程序中的每个函数都位于,内存中某个位置,所以存在指向那个位置的指针. int *f[]; 下标的优先级高,所以f是个数组,数组中元素为指向int的指针. int (*f[])() 首先按照优先级进行分析,括号内(*f[])先求值,所以*f[], f是数组,数组元素是指向某种类型的指针,结合外面的看,f是一个数组,数组元素是指向返回int类型的函

C和指针 (pointers on C)——第六章:指针(下)习题

有一定的难度,作者只做了前三题! 题目请见 http://download.csdn.net/download/wangpegasus/5701765 1. char *find_char(char const *source, char const *chars) { char *ptr; if(source != NULL && chars != NULL) { for (; *source != '\0'; source++) { for (ptr = (char *) chars;

C Primer Plus 第十三章 学习总结……2015.5.8

第十三章:文件的输入/输出 这一章学习起来,很迷惑,和上面几章并不太连贯,介绍了好多 用于文件输入输出的函数,就像高中学习数学一样,一下子出现好多 公式,虽然每个公式都知道是干什么的.怎么用,但就不一定把习题 做出来了.把本章看完后,只是大致了解了文件的各种输出输入,打 开等方式.所以还需要进一步的了解,实践应用. <重定向运算符,  echo_eof<words 该运算符把words文件与 stdin流关联起来,将该文件words内容引导至echo_eof程序中. echo_eof将键盘输入

javascript高级程序设计 第十三章--事件

javascript高级程序设计 第十三章--事件js与HTML的交互就是通过事件实现的,事件就是文档或浏览器窗口中发生的一些特定的交互瞬间. 事件流:事件流描述的是从页面中接收事件的顺序,IE的是事件冒泡流,Netscape的是事件捕获流,这个两个是完全相反的事件流概念. 事件冒泡:由最具体的元素接收,然后逐级向上传播到更高级的节点,即事件沿DOM树向上传播,直到document对象. 事件捕获:不大具体的节点应该更早接收到事件,相当于沿DOM节点树向下级传播直到事件的实际目标,在浏览器中,是

c++第十三章 -(副本构造器)

逐位复制(bitwise copy):编译器将生成必要的代码把“源”对象各属性的值分别赋值给“目标”对象的对应成员的行为.对对象的地址赋值操作,于是乎,当删除一个对象时,它包含的指针也将被删除,但万一此时另一个副本(对象)还在引用这个指针,就会出问题! 要是程序员在当初进行对象“复制”时能够精确地表明应该复制些什么和如何赋值,那就理想了.为解决该问题,我们可以对=操作符进行重载,其中对指针进行处理:MyClass &operator= (const MyClass &rhs);该语句的意思

perl5 第十三章 Perl的面向对象编程

第十三章 Perl的面向对象编程 by flamephoenix 一.模块简介二.Perl中的类三.创建类四.构造函数 实例变量 五.方法六.方法的输出七.方法的调用八.重载九.析构函数十.继承十一.方法的重载十二.Perl类和对象的一些注释 本章介绍如何使用Perl的面向对象编程(OOP)特性及如何构建对象,还包括继承.方法重载和数据封装等内容.一.模块简介    模块(module)就是Perl包(pachage).Perl中的对象基于对包中数据项的引用.(引用见第x章引用).详见http:

第十三章 进程、线程类的实现

                                        第十三章   进程.线程类的实现         多线程是指在一个进程内可以同时运行多个任务,每个任务由一个单独的线程来完成.线程是进程运行的基本单位,一个进程中可以同时运行多个线程.如果程序被设置为多线程方式,可以提高程序运行的效率和处理速度. 多个线程共用一个进程的资源:进程的调度.切换是在10ms的"时钟滴答"定时中断程序里进行.如果一个线程获得CPU,那么在下一个Tick到来前:是不可能被切换出去的