练习7-1

#include <stdio.h>

int main() {
int n;
printf("%d\t%d\t%d\n", sizeof ,sizeof(unsigned)-,sizeof n+ ); //此行显示结果为 4 3 6 因为1的字节就是为4,而-1的字节也是4再减去-1所以显示为3,最后是n+2为6
printf("%d\t%d\t%d\n", sizeof +, sizeof(double) - , sizeof(n + ));//此行显示结果是 4 7 4 因为1的字节是4,double的字节长是8 -1是7,把(n+2)括起来之后使其为一个值,所以是4;
printf("%d\t%d\t%d\n", sizeof - , sizeof((double)-), sizeof (n + 2.0) );//此行结果是 4 8 8 因为1的字节是4,把double-1都括起来之后,就是double类型字节为8,同理最后也是8
}

练习7-2

#include <stdio.h>
#include<math.h>
int main() {
unsigned int number;
int x;
int i;
int number1; printf("请输入初始值:" );
scanf("%d", &number);
number1 = number;
printf("左移多少位:");
scanf("%d", &x);
number <<= x;
printf("左移后的值:%d",number);
putchar('\n');
for (i = ; i < x; i++) {
number1 *= ;
}
printf("乘以2的指数幂的值:%d", number1); }
#include <stdio.h>
#include<math.h>
int main() {
unsigned int number;
int x;
int i;
int number1; printf("请输入初始值:" );
scanf("%d", &number);
number1 = number;
printf("右移多少位:");
scanf("%d", &x);
number >>= x;
printf("右移后的值:%d",number);
putchar('\n');
for (i = ; i < x; i++) {
number1 /= ;
}
printf("除以2的指数幂的值:%d", number1); }

练习7-3

#include <stdio.h>
#include<math.h>
unsigned rrotate(unsigned x,int n){
x >>=n;
return x;
} int main() {
unsigned int number;
int x;
printf("请输入初始值:");
scanf("%d", &number);
printf("右移多少位:");
scanf("%d", &x); printf("右移后的值:%d", rrotate(number, x)); }
#include <stdio.h>
#include<math.h>
unsigned lrotate(unsigned x,int n){
x <<=n;
return x;
} int main() {
unsigned int number;
int x;
printf("请输入初始值:");
scanf("%d", &number);
printf("左移多少位:");
scanf("%d", &x); printf("左移后的值:%d", lrotate(number, x)); }

练习7-4

unsigned set(unsigned x, int pos)
{
unsigned mask = (1u << pos);
x = (mask | x);
return x;
}
//将第pos位设置为1
unsigned reset(unsigned x, int pos) {
unsigned mask = 1u; if (x & (1u<<pos))
return (x ^ (1u << pos));
else
return x; }
//将第pos为设置为0
unsigned inverse(unsigned x, int pos) {
unsigned mask = 1u << pos;
x = (x ^ mask);
return x; }
//将第pos位取反

练习7-5

unsigned set_n(unsigned x, int pos, int n) {

    int i;
for (i = ; i < n - pos; i++) {
unsigned mask = (1u << (pos + i));
x = (mask | x);
}
return x;
}
//一个位段都设置为1
unsigned reset_n(unsigned x, int pos, int n) {
unsigned mask = 1u;
int i;
for (i = ; i < n-pos; i++) {
if (x & (1u<<pos+i))
x= (x ^ (1u << pos+i));
}
return x; }
//一个位段都设置为0
unsigned inverse_n(unsigned x, int pos, int n) {
int i;
unsigned mask = 1u;
for (i = ; i < n - pos; i++) {
x = (x ^ (mask << pos + i));
}
return x;
}
//一个位段都取反

练习7-6

#include <stdio.h>
// 显示unsigned类型的值最大值,同时验证最大值+1是0.
int main() {
unsigned a = ;
while (++a > );
printf("%u", a - );
putchar('\n');
printf("%u", a);
}

练习7-7

#include <stdio.h>

int main() {
float a;
double b;
long double c; scanf("%f",&a);
printf("a=%f", a);
putchar('\n');
scanf("%lf", &b);
printf("b=%f", b);
putchar('\n');
scanf("%lf", &c);
printf("c=%f", c); }

练习7-8

#include <stdio.h>

int main() {
float a;
double b;
long double c;
printf("%d,%d,%d",sizeof(a), sizeof(b), sizeof(c)); }

练习7-9

#include <stdio.h>
#include<math.h> int main() {
double m;
double x;
printf("正方形的面积是:");
scanf("%lf", &m);
printf("边长是:%.2f", sqrt(m)); }

练习7-10

#include <stdio.h>
int main(void)
{
float x;
int i;
float m = 0.0; for (i = ; i <= ; i++) {
x = i / 100.0;
printf("x=%f x=%f\n",m,x);
m += 0.01;
} return ;
}

练习7-11

#include <stdio.h>
int main(void)
{
float x;
int i;
float m = 0.0;
float sum1 = ;
float sum2 = ; for (i = ; i <= ; i++) {
x = i / 100.0;
printf("x=%f x=%f\n",m,x);
m += 0.01;
sum1 += m;
sum2 += x;
}
printf("%f,%f", sum1, sum2);
return ;
}

明解C语言 入门篇 第七章答案的更多相关文章

  1. 明解C语言 入门篇 第五章答案

    练习5-1 /* 依次把1.2.3.4.5 赋值给数组的每个元素并显示(使用for语句) */ #include <stdio.h> int main(void) { int i; ]; ...

  2. 明解C语言 入门篇 第四章答案

    练习4-1 #include <stdio.h> int main(void) { int no; int x; do{ printf("请输入一个整数:"); sca ...

  3. 明解C语言 入门篇 第三章答案

    练习3-1 #include <stdio.h> int main() { int x; int y; puts("请输入两个整数."); printf("整 ...

  4. 明解C语言 入门篇 第十三章答案

    练习13-1 /* 打开与关闭文件 */ #include <stdio.h> int main(void) { ]; FILE* fp; printf("请输入你要打开的文件& ...

  5. 明解C语言 入门篇 第十一章答案

    练习11-1 /* 用指针实现的字符串的改写 */ #include <stdio.h> int main(void) { "; printf("p = \" ...

  6. 明解C语言 入门篇 第六章答案

    练习6-1 /* 求两个整数中的最小值 */ #include <stdio.h> /*--- 返回三个整数中的最小值 ---*/ int min2(int a, int b) { int ...

  7. 明解C语言 中级篇 第四章答案

    练习4-1 /* 珠玑妙算 */ #include <time.h> #include <ctype.h> #include <stdio.h> #include ...

  8. 明解C语言 中级篇 第三章答案

    练习3-1 /* 猜拳游戏(其四:分割函数/显示成绩)*/ #include <time.h> #include <stdio.h> #include <stdlib.h ...

  9. 明解C语言 入门篇 第二章答案

    练习2-1 #include <stdio.h> int main() { int x; int y; int percent; puts("请输入两个整数"); pr ...

随机推荐

  1. Delphi - 操作Excel数据公式的实现

    procedure TF_SMP_FT_NEW.RzBitBtn_StartToChangeClick(Sender: TObject); var i, j, ni, nj, iRows, iCol, ...

  2. Java获取客户端真实IP地址

    Java代码 import javax.servlet.http.HttpServletRequest; /** * 获取对象的IP地址等信息 */ public class IPUtil { /** ...

  3. deepin添加设置快捷键

    deepin的设置侧边栏没有快捷键需要手动设置,第一步就是要知道设置的命令是什么. 按下start,把其中的"控制中心"发送到桌面,以文本方式打开之,其中的exec字段就是打开设置 ...

  4. https申请证书并部署到网站流程,浏览器验证证书流程

    https申请证书并部署到网站流程: 1.生成一对秘钥,设公钥为pubk1,私钥为prik12.假设发布的网站地址为https://www.example.com3.生成一个CSR文件(Cerific ...

  5. charles代理设置与数据劫持

    1.安装charles,点击帮助——ssl代理——在移动设备或远程浏览器上安装charles root证书,看到如下界面: 2.在手机保证和电脑连接同一个wifi的前提下,开启手机代理,输入服务器地址 ...

  6. 尝试在iOS上使用gRPC

    简介 gRPC,google的远程过程调用框架,传输协议使用 HTTP2, 序列化协议使用 protobuf.gRPC 使用 HTTP2 传输协议传输 protobuf 序列化的二进制数据,有极高的效 ...

  7. Java的 Annotation 新特性

    对于软件程序的开发经过了三个发展过程: —— 将所有配置相关的内容直接写到代码之中 —— 将配置与代码程序独立,将程序运行的时候根据配置文件进行操作 —— 配置信息对用户透明且无用,将配置信息写回代码 ...

  8. <转>WPF 中的绑定

    在WPF应用的开发过程中Binding是一个非常重要的部分. 在实际开发过程中Binding的不同种写法达到的效果相同但事实是存在很大区别的. 这里将实际中碰到过的问题做下汇总记录和理解. 1. so ...

  9. AI 图像识别的测试

    随着AI 的浪潮发展,AI 的应用场景越来越广泛,其中计算机视觉更是运用到我们生活中的方方面面.作为一个测试人员,需要紧跟上 AI 的步伐,快速从传统业务测试,转型到 AI 的测试上来.而人脸识别作为 ...

  10. hexo笔记

    目录 hexo 常用指令 站内文章跳转 hexo安装 NexT主题 默认主题 评论插件-gitalk 修改内容区宽度 添加文章阴影 文章摘要设置 一篇文章多个 categories hexo的一些配置 ...