C程序设计语言部分习题

1:编写一个程序,确定分别由signed ,unsigned 限定的char short long int的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现。

头文件的实现方式:

#include <stdio.h>
#include <limits.h>

/*determin range of int types*/
int main(){
  /*signed*/
  printf("signed char min = %d\n",SCHAR_MIN);
  printf("signed char max = %d\n",SCHAR_MAX);

  printf("signed short min = %d\n",SHRT_MIN);
  printf("signed short max = %d\n",SHRT_MAX);

  printf("signed int min = %d\n",INT_MIN);
  printf("signed int max = %d\n",INT_MAX);

  printf("signed long min = %ld\n",LONG_MIN);
  printf("signed long max = %ld\n",LONG_MAX);

  /*unsigned*/
  printf("signed char max=%u\n",UCHAR_MAX);

  printf("signed short max = %u\n",USHRT_MAX);

  printf("signed int max = %u\n",UINT_MAX);

  printf("signed long max = %lu\n",ULONG_MAX);

  getchar();

  return 0;
}

直接计算:

#include <stdio.h>
/*
 ~0 取反 全部变成1
(unsigned char)~0 变成无符号的
(unsigned char)~0>>1 右移一位清除符号位
(char)(unsigned char)~0>>1 转化为char类型
 */

int main(){

  /*singed*/

  printf("min of singed char = %d\n",-(char)((unsigned char)~0>>1));
  printf("max of singed char = %d\n",(char)((unsigned char)~0>>1));

  printf("min of singed short = %d\n",-(short)((unsigned short)~0>>1));
  printf("max of singed short = %d\n",(short)((unsigned short)~0>>1));

  printf("min of singed int = %ld\n",-(int)((int long)~0>>1));
  printf("max of singed int = %ld\n",(int)((int long)~0>>1));

  printf("min of singed long = %ld\n",-(long)((unsigned long)~0>>1));
  printf("max of singed long = %ld\n",(long)((unsigned long)~0>>1));

  /*unsigned*/
  printf("max of singed char = %u\n",(unsigned char)~0);
  printf("max of singed char = %u\n",(unsigned short)~0);
  printf("max of singed char = %u\n",(unsigned int)~0);
  printf("max of singed char = %lu\n",(unsigned long)~0);

  getchar();

  return 0 ;
}

时间: 2024-08-02 16:51:05

C程序设计语言部分习题的相关文章

对于《C程序设计语言》的一点理解

想必学C语言的人大都看过这一经典书籍.对于我来说,处于不同学习层次,阅读这本书的感觉是不一样的,每次阅读都会有一番新的感悟.第一次阅读时先读的英文版,读的很困难,主要是记录不会的单词:第二遍就顺利多了,但是对于其中的内容缺乏较深入的了解:第三遍就直接买了机械工业出版社出版的中文版,尝试读了一遍,但是对于后面几章特别是指针部分几乎读不下去:然后就开始做上面的练习,主要是做了前6章的练习,这其中费了不少时间和精力,还有一部分练习没有做. 对了,需要对这一分类下的博文做出几点说明. ①笔记中所说的[教

程序设计语言基本概念语 与经典真题

一.基本概念 在计算机中,程序设计语言可划分为低级语言和高级语言两大类,与高级语言相比,用低级语言开发的程序,其运行效率高,但开发效率低.与程序设计相关的基本概念如下. (1)低级语言:又称面向机器语言,它是特定的计算机系统所固有的语言. (2)汇编语言:是机器语言的一种提升,它使用了一些助记符来表示机器指令中的操作码和操作数.但它仍然是一种和计算机机器语言十分接近的语言,使用起来仍然不太方便. (3)高级语言:与人们的自然语言比较接近,使用起来很方便,也极大的提高了程序设计效率. (4)编译程

扩展《C程序设计语言》练习2-3程序通用性

最近开始自学C语言,在看K&R的<C程序设计语言>.练习2-3要求写一个函数,将输入的十六进制数字字符串转换成与之等价的整数值,配套答案没有扩展程序的通用性,所以我就稍微改造改造. 配套的答案是这样的(自己添加了注释): 1 #define YES 1 2 #define NO 0 3 4 /* htoi:将十六进制数字字符串转换成十进制数 5 * 如果发现'0x'或'0X'则跳过并设置十六进制数的起点 6 * 检查后续字符是否是0-9,a-f或是A-F 7 * 如果是则将其转换为整形

重读《C程序设计语言》(2):导言

这一章主要是概要的介绍C语言,通过实际程序引入C语言的基本元素.至于具体细节,后续章节将进一步介绍. (1)学习一门新程序设计语言的唯一途径就是使用它编写程序. /* * Copyright (C) [email protected] */ #include <stdio.h> main() { printf("hello, world\n"); } (2)在UNIX中,要运行上述代码,首先要在某个文件中建立这个程序,并以" .c "作为文件的扩展名.通

程序设计语言-标准库概述

1 认识标准库 没有任何一个重要程序只用某种赤裸裸的程序设计语言写出的:首先总要开发出一组支持库,这也形成了进一步工作的基础. 2 第一个程序 #include<iostream>  //指编译器包含位于iostream里的标准流I/O功能的声明 int main() //定义一个main()函数,该函数没有参数,也不做任何事情 { std::cout<<"hello,world!\n"; //字符串文字量"hello,world!\n"将被

c程序设计语言第一章2

练习1.13编写一个程序,打印输入中单词长度的直方图.水平方向的直方图比较容易绘制,垂直方向的直方图则要困难些 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define MAXHIST 15//定义直方图的最大值 4 #define MAXWORD 11//定义单词的最大字符数 5 #define IN 1 6 #define OUT 0 7 int main() 8 { 9 int nc;//单词所含的字符数 10 int maxv

程序设计语言学习

人,程序,计算机 计算机的诞生就是为了帮助人们完成一些任务.计算机以其速度快.失误少.持续时间长.保存时间久等特点弥补了人类的不足. 程序是计算机完成人类任务的计划书.说明书.指导书或者说是执行步骤. 运行程序就是计算机照着计划书执行任务的过程. 程序设计语言则是人们写计划书的语言.与人们给自己写计划书用汉语.英语等语言一样,人们给计算机写计划书要用计算机能够认识的语言——机器语言,也就是01串.这也是可编程计算机刚刚出现时人们使用的语言. 但是01这种二进制的语言不好记忆.不好交流.不好理解,

(读后摘抄)《计算机程序设计语言的发展》_王汝传

原文是<电子工程师>里的一篇文章,以下是部分内容摘抄 第三代计算机语言:   Fortran语言 当时主要是用于科学计算 ,它 与汇编语言助记符的本质区别是引入了变量的概 念.它奠定了程序设计语言名字的理论基础 ,同时引 入了表达式.语句和子程序等概念 ,也是高级程序设计语言的基础.因其高效 率与完善的输入输出功能而受到人们的欢迎 ,至今 在科学计算领域仍充满生命力. Algol语言 孕育了许多很有用的程序设计与程序设计语 言思想 ,如自由程序格式.保留字.数据类型.分程序 概念.子程序调用方

Oberon程序设计语言简介

Oberon奥伯龙是一种通用编程语言,也是一种同名操作系统(由Oberon语言开发,且也参考过贝尔实验室的新一代网络操作系统Plan9),是由原Pascal程序设计语言的发明者Niklaus Wirth创造并实现,由Pascal发展而来,其语法优雅简洁,高效易用,适用于ARM等多种处理器应用.且Oberon可用于开发系统程序和应用程序. **1,设计** Oberon设计有一个座右铭是艾伯特爱因斯坦的想法:“把事情变得尽可能的简单,而不是更简单.”的方针是将注意力集中在那些基本的和必要的,忽略短