明解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 ...
随机推荐
- Ubuntu1404配置jdk-12.0.2并安装Android Studio教程
最近在学习Android Studio 移动应用程序开发,但Android Studio好像对win10不太友好,所以小帅想在Ubuntu上安装Android Studio.为此小帅还去网上找了相关教 ...
- docker 制作一个容器,并上传到仓库
创建镜像的三种方法 1.基于已有的镜像的容器创建 启动一个容器并修改容器: docker run -it ubuntu:latest /bin/bash touch test 提交创建新镜像并查看制作 ...
- html跳转,获取get提交参数
html跳转到html页面,url后面携带参数,可以通过脚本获取到url?test=value地址后的参数. 1.more.html 携带参数跳转到list.html,get提交参数 2.list.h ...
- Arduino+esp8266-01+舵机 制作基于局域网的遥控门禁
这个最终的效果呢,就是可以通过手机连接上esp8266创建的wifi,然后连接其创建的服务器,发送特定指令就可实现遥控开门 (做工比较粗糙还请不要见笑...) 一.原理 其实这个一看就会明白,非常简单 ...
- mysql数据库之用户管理和权限
mysql服务器进程在启动的时候会读取这6张表,并在内存中生成授权表,所以这几个文件是直接加载进内存的. 以后后续的任何用户登录及其访问权限的检查都通过检查这6张表来实现的.通过访问内存上所生成的结构 ...
- python开发微信公众号SDK选择
1.wechat-sdk sudo pip install wechat-sdk 文档地址: http://ww2.wechat-python-sdk.com/ 2.wechat sudo pip ...
- SpringBoot使用@Value来获取properties的值
今天在项目中想使用@Value来获取Springboot中properties中属性值.场景:定义了一个工具类,想要获取一些配置参数,使用了@value来获取,但是死活也获取不到.如何解决:在使用这个 ...
- 史上最全的CSP-J/S 第一轮知识点
CSP-J/S 第一轮知识点选讲 \(NOIP\)(全国青少年信息学奥林匹克竞赛)于2019年取消.取而代之的是由\(CCF\)推出的非专业级软件能力认证,也就是现在的\(CSP-J/S\).作为一名 ...
- LG1640 「SCOI2010」连续攻击游戏 二分图最大匹配
问题描述 LG1640 题解 一开始以为是把\((a,b)\)作为左右部点,发现\(n \le 1000000\),建图是\(O(n^2)\)的,会爆掉 属性值向\(i\)建边. \(\mathrm{ ...
- nwjs-简介
nwjs是基于nodejs的,它支持nodejs所有的api,主要用于跨平台轻量级桌面应用开发,运行环境包括32位和64位的Window.Linux和Mac OS nwjs是在英特尔开源技术中心创建的 ...