C语言习题~day37

简介: C语言习题~day37

1.由多个源文件组成的C程序,经过编辑、预处理、编译、链接等阶段会生成最终的可执行程序。下面哪个阶段可以发现被调用的函数未定义()

A.预处理

B.编译

C.链接

D.执行

C。在链接阶段,会将各个目标文件以及所需的库进行组合和关联,如果存在被调用的函数未定义,在链接时就会发现这个问题,因为无法找到该函数的具体实现来完成链接过程。预处理主要处理宏等操作;编译阶段主要进行语法检查和生成目标代码,但对于跨文件的函数调用是否定义的检查主要在链接阶段;执行阶段是程序运行阶段,到这个时候发现就太晚了。所以选 C。

2.设有以下宏定义:

#define  N  3+1
#define Y(n) ((N+1)*n)

则执行语句z=2*(N+Y(5+1))后,z的值为()

A.60

B. 190

C.248

D.上述答案都不对

先计算 Y(5+1),Y(5+1)展开为 ((N+1)*5+1),即 ((4+1)*5+1)=(5*5+1)=26。

然后计算 N+Y(5+1)=4+26=30。

最后计算 z=2*(N+Y(5+1))=2*30=60。

3.char a; int b; float c; double d    则表达式a*b+d-c值的类型为()

A. float

B. int

C. char

D.double

D。在进行混合运算时,会进行类型转换,转换的规则是向精度更高的数据类型转换。char 类型会自动提升为 int 类型参与运算,int 与 double 运算时结果会转换为 double 类型,float 与 double 运算时也会转换为 double 类型,所以最终表达式 a*b+d-c 的值的类型为 double 类型。

4. 厘米换算英尺英寸

#include <stdio.h>
 
int main() {
  int cm;
  scanf("%d", &cm);
 
  double meters = cm / 100.0;
  double feet = meters / 0.3048;
  int foot = (int)feet;
  double inch = (feet - foot) * 12;
 
  printf("%d %d\n", foot, (int)inch);
 
  return 0;
}

1. 首先从用户处获取以厘米为单位的数值。

2. 将厘米转换为米(除以 100),然后根据公式将米转换为英尺(除以 0.3048),得到一个包含小数部分的英尺值。

3. 通过强制类型转换获取英尺的整数部分,这就是英尺的整数值。

4. 用英尺值减去其整数部分得到小数部分,再乘以 12 将其转换为英寸,同样通过强制类型转换获取英寸的整数部分。

5. 最后输出得到的英尺整数值和英寸整数值。

目录
相关文章
TU^
|
5月前
|
存储 C语言
C语言习题~day35
C语言习题~day35
TU^
29 1
|
3月前
|
机器学习/深度学习 C语言
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
要保持最小的步数,每一次汉诺塔问题(无论是最初还是递归过程中的),如果此时初始柱盘子数为偶数,我们第一步是把最上面的盘子移动到中转柱,如果为奇数,我们第一步则是将其移动到目标柱。
81 0
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
TU^
|
5月前
|
编译器 C语言
C语言习题~day31
C语言习题~day31
TU^
22 2
TU^
|
5月前
|
算法 程序员 C语言
C语言习题~day36
C语言习题~day36
TU^
39 1
TU^
|
5月前
|
存储 C语言
C语言习题~day34
C语言习题~day34
TU^
33 1
TU^
|
5月前
|
算法 C语言
C语言习题~day33
C语言习题~day33
TU^
28 1
TU^
|
5月前
|
C语言
C语言习题~day32
C语言习题~day32
TU^
17 1
TU^
|
5月前
|
C语言
C语言习题~day30
C语言习题~day30
TU^
23 1
TU^
|
5月前
|
自然语言处理 C语言 C++
C语言习题~day29
C语言习题~day29
TU^
22 1
TU^
|
5月前
|
存储 C语言
C语言习题~day28
C语言习题~day28
TU^
19 1