明解C语言 入门篇 第七章答案
练习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语言 入门篇 第七章答案的更多相关文章
- 明解C语言 入门篇 第五章答案
练习5-1 /* 依次把1.2.3.4.5 赋值给数组的每个元素并显示(使用for语句) */ #include <stdio.h> int main(void) { int i; ]; ...
- 明解C语言 入门篇 第四章答案
练习4-1 #include <stdio.h> int main(void) { int no; int x; do{ printf("请输入一个整数:"); sca ...
- 明解C语言 入门篇 第三章答案
练习3-1 #include <stdio.h> int main() { int x; int y; puts("请输入两个整数."); printf("整 ...
- 明解C语言 入门篇 第十三章答案
练习13-1 /* 打开与关闭文件 */ #include <stdio.h> int main(void) { ]; FILE* fp; printf("请输入你要打开的文件& ...
- 明解C语言 入门篇 第十一章答案
练习11-1 /* 用指针实现的字符串的改写 */ #include <stdio.h> int main(void) { "; printf("p = \" ...
- 明解C语言 入门篇 第六章答案
练习6-1 /* 求两个整数中的最小值 */ #include <stdio.h> /*--- 返回三个整数中的最小值 ---*/ int min2(int a, int b) { int ...
- 明解C语言 中级篇 第四章答案
练习4-1 /* 珠玑妙算 */ #include <time.h> #include <ctype.h> #include <stdio.h> #include ...
- 明解C语言 中级篇 第三章答案
练习3-1 /* 猜拳游戏(其四:分割函数/显示成绩)*/ #include <time.h> #include <stdio.h> #include <stdlib.h ...
- 明解C语言 入门篇 第二章答案
练习2-1 #include <stdio.h> int main() { int x; int y; int percent; puts("请输入两个整数"); pr ...
随机推荐
- 高精度gcd
#include<iostream> #include<cstdio> #include<cstring> #define inf 1000000000 using ...
- python中pip添加国内镜像源后显著加速下载
python中pip添加国内镜像源后显著加速下载 更换pip源到国内镜像,很多国外的库下载非常慢,添加国内镜像后安装下载速度提升非常明显(亲测有些可以由几十kb加速到几MB) pip国内的一些镜像阿里 ...
- echarts折线图上下颜色渐变样式
// 折线图let lineChart = echarts.init(document.getElementById('lineChart'));let lineOption = { title: { ...
- 如何使用wce进行hash注入
在内网渗透时,很经常会碰到好不容易提取出了hash,但是无法破解. wce号称内网渗透神器,其中有一个功能就是hash注入. 测试环境: 目标 windows2008 [192.168.200.12 ...
- Java 打印HelloKitty
Java第一课 如何在控制台打印出"Hello Kitty" 如图所示,在IDE中使用 System.out.println(); 语句来实现打印 最后附上AIDE下载链接: Ja ...
- 21个极大提高开发效率的VS Code快捷键
摘要: 高效使用VS Code! 作者:前端小智 原文:21 个VSCode 快捷键,让代码更快,更有趣 Fundebug经授权转载,版权归原作者所有. 注意:自己尝试的时候,Mac(17, pro) ...
- itextpdf5设置页眉页脚、生成页码
itextpdf生成页眉页脚,可以通过继承PdfPageEventHelper,重新里面的相关事件来进行. 常用的几个: onOpenDocument,文档打开时触发 onCloseDocument, ...
- docker数据卷之持久化操作
docker Docker三大核心组件:(运行起来的镜像就可以称作容器) Docker 镜像--Dcoker images:类比与类 Docker 仓库--Docker registeries: Do ...
- Linux 信号量之Posix基于内存的信号量
信号量(semaphore),也和互斥锁一样提供了线程间或者进程间的同步功能. 信号量有三种: Posix有名字的信号量 Posix基于内存的信号量 System V信号量 信号量比互斥锁高级,互斥锁 ...
- 【java集合总结】-- ArrayList源码解析
一.前言 要想深入的了解集合就必须要通过分析源码来了解它,那如何来看源码,要看什么东西呢?主要从三个方面: 1.看继承结构 看这个类的继承结构,处于一个什么位置,不需要背记,有个大概的感觉就可以,我自 ...