第3章作业参考答案

更新时间:2024-03-17 13:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

3.2 写出下面程序的运行结果: #include int main(void) { unsigned int x1 = 65535; int x2 = -3; float y1 = 123.4567, y2 = 123.4500; printf(\ printf(\ printf(\ printf(\ printf(\

return 0; }

16位环境(题意默认为16位环境): x1=-1,177777,ffff,65535 x2=-3,177775,fffd,65533

y1=123.456700, 123.457,123.457,123.457 y2=123.450000,1.23450e+02,123.45 x1(M)=-1 32位环境:

x1=65535,177777,ffff,65535

x2=-3,37777777775,fffffffd,4294967293

y1=123.456700, 123.457,123.457,123.457 y2=123.450000,1.23450e+02,123.45 x1(M)=65535

3.3 填入代码如下: (1) %c (2) %c (3) %f (4) %f (5) %lu (6) %hd (7) %d (8) %ld (9) %f (10) %Lf

3.4 根据变量说明指出下面的语句哪些是正确的,哪些是错误的。 char c='A'; int i1=1;

const int i2=-1; long i3=3;

unsigned i4=0; float x1=1; double x2=3;

long double x3=1000;

printf(\//ERROR:除数为零 putchar(c-'A'+'a'+1); printf(\

printf(\ //ERROR:输出long double类型的浮点数用%Lf

printf(\//ERROR:表达式值类型为long double,应用%Lf输出

scanf(\ //ERROR:x2类型为double,格式字符串中语句应为%lf printf(\putchar(i2=getchar()); //ERROR:cannot modify a const object printf(\ //ERROR:第一个参数应用%u输出,第二个参数char类型用%f输出结果有误 scanf(\

3.5 编写一个程序,从终端输入一个字符,如果该字符时十六进制数字,则输出它对应的整数,否则输出它的字符码。

#include int main() {

char c;

c = getchar();

if( c>='0' && c<='9' ) { printf(\ }

else if(c>='A' && c<='F') {

printf(\}

else if(c>='a' && c<='f') {

printf(\} else printf(\

return 0; }

3.6 从终端输入一个短整数,以字符形式输出该短整数的高字节和低字节。

#include #define N 0x00FF int main(void) { short c; char high, low; scanf(\ high = (unsigned short)c>>8; low = c&N; printf(\ return 0; }

3.7 输入无符号短整数k,输出将k的高4位和低4位交换后的结果。

#include #define N 0x0FF0 int main(void) { unsigned short k; scanf(\ printf(\ return 0; }

3.8 编写一个程序,输入无符号短整数x, m, n(0<=m<=15, 1<=n<=m+1),取出x从第m位开始向右的n位(m对二进制位从右向左编号为0~15),并使其向左端(第15位)靠齐,输出处理后的结果。

#include #include int main() { unsigned short x, m, n, temp = 0xFFFF; printf(\ scanf(\ //x = (x & temp>>15-m & temp<

x=x<<15-m & temp<<16-n; printf(\

return 0; }

3.9 输入一个华氏温度F,将它转换成摄氏温度C后输出。转换公式为C=5/9(F-32)。要求按如下格式输出结果:假定输入的华氏温度为100,则输出为(保留两位小数):

100(F)=37.78(C)

#include int main(void) { float c, f; scanf(\ c = 5.0/9*(f-32); printf(\ return 0; }

3.10 输入圆柱体的底面半径r和高h,计算并输出圆柱体的表面积和体积。

#include #define PI 3.1415926 int main(void) { float r, h, s, v; scanf(\ s = 2*PI*r*h + 2*PI*r*r; v = PI*r*r*h; printf(\ return 0; }

3.11 编程序以十六进制形式输出汉字“编”的区位码、国标码和机内码。

#include int main(void) { unsigned short c='编', d; char * r = &c; d=(*(r+1))&0x00FF | (*r)<<8; printf(\ return 0; }

#include int main(void) { unsigned short d; char * r = \中\ d=(*r)&0x00FF | (*(r+1))<<8;

}

printf(\return 0;

本文来源:https://www.bwwdw.com/article/ekd8.html

Top