明解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 ...
随机推荐
- Python - 元组 - 第九天
Python 元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可.例如: >&g ...
- 解决:500 Internal Privoxy Error
500 Internal Privoxy Error Privoxy encountered an error while processing your request: Could not loa ...
- Scrapy-Splash简介及验证码的处理(一)
目录 一:Splash简介与准备 二:验证码的识别(1) 在之前的博客中,我们学习了selenium的用法,它是一个动态抓取页面的方法,但是,动态抓取页面还有其他的方法,这里介绍Splash方法, ...
- 华为手机 android8.0APP更新时出现安装包解析异常的提示及安装闪退(无反应)问题
在做android app升级更新时遇到几个问题,我用的测试机是华为V10 系统为8.0 一.安装闪退(无反应) 解决办法: 只要在Mainfest.xml 中加入权限编码即可解决 <uses- ...
- SqlServer数据库优化之添加主键和自增长
今天需要给有500万条数据的表添加主键和自增长列,其中最大的难度在于如何UPDATE这500万多条数据,开始吧! 1.先给表添加一个字段叫ID,并允许空 2.查询表,我想到了使用其中的时间列排序来创建 ...
- 【Java】理解ClassNotFoundException与NoClassDefFoundError的区别
一.概念上的认识 1)Exception与Error的区别 1.Exception的出现不会导致程序结束,用户程序可以捕获该异常 2.Error的出现会导致程序结束,用户程序无法捕获Error错误 2 ...
- Django类
django 1.中间件 中间件一般做认证或批量请求处理,django中的中间件,其实是一个类,在请求和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法, 如请求过来 执行p ...
- centos7 安装gitlab及简单配置
1.安装 wget -O gitlab.rpm https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-11.11.3 ...
- jenkins使用小技巧:pom.xml文件里的版本随着每次发布变化怎么办?
针对这个问题,构建方法不变, 变化在动态去获取每次打出来的包名, 比如说,本次打出来的报名mypackage-1.0.3-SNAPSHOT.jar 那么,先进入target目录 #先进入target目 ...
- SDL2学习(一): 显示一张图片
SDL是一个跨平台的多媒体库,它通过OpenGL和2D视频帧缓冲,提供了针对音频.视频.键盘.鼠标.控制杆及3D硬件的低级别的访问接口.这里使用较新的SDL2库. 1. 配置SDL开发环境 1.1 下 ...