当前位置: 首页 > article >正文

C语言--每日选择题--Day28

第一题

1. 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(  )

A:6.500000

B:6

C:5.500000

D:6.000000

答案及解析 D

本题考查的是不同数据类型之间的变量进行运算时发生的类型转换;

不涉及强制类型转换的规则:

1. char --> int --> float --> double;

2. 有符号会转换为无符号

强制类型转换只针对一个变量,括号后面是谁就针对谁;

本题为(int)a + b / b;

首先a被强制类型转换为int类型,会直接保留整数部分,a = 5;

b / b = 1.000000 因为b为double类型;

所以(int)a + b / b = 5 + 1.000000 ;

int 隐式类型转换为double

(int)a + b / b = 6.000000

第二题(易错题)

2. s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S。则以下选项中正确的是()

A:if(s1>s2) S;

B:if(strcmp(s1,s2)) S;

C:if(strcmp(s2,s1)>0) S;

D:if(strcmp(s1,s2)>0) S;

答案及解析 D

这里考的一方面是对strcmp函数的认识,另一方面考的就是在if语句中的真假;

strcmp函数,比较两个字符串的大小,通过两个字符串的第一个字符的ASCII值比较,若相等就继续往下比,左操作数的大,就是左字符串大,反之亦然;

if中的真假:0为假,非0为真

所以本题的B选项是最容易错的选项,如果s1 < s2 ,返回值为负数,但是在if语句中负数也为真值,所以会执行S,B选项错误;

第三题(易错题)

3. i = 1,j = 0 是正确的吗?

char c = 48;
int i = 1, j = 10;
j = !(c > j)&&i++;

A:正确

B:错误

答案及解析 A

本题中一是要看优先级,二是考查结合性

相关博客:

C语言操作符优先级表格(建议收藏,每次看一下)-CSDN博客

首先,优先级:括号 > ++ > ! >&&

所以先算括号里的是必然的,j = !1 && i++;

那之后就是要根据优先级去算i++了吗?

当然不是,因为这时候我们的 !1和i++是&&的两个操作数;

先要遵守结合性;&&的结合性也就是运算顺序:从左到右

所以会先算!1 = 0;

j = 0 && i++;

而左边算完之后为0,又因为&&是有0就是0,岁月右边的i++不会计算;

最后i = 1, j = 0;

第四题

4. 若a是float型变量,b是unsigned型变量,以下输入语句中合法的是( )

A:scanf("%6.2f%d", &a, &b);

B:scanf("%f%n", &a, &b);

C:scanf("%f%3o", &a, &b);

D:scanf("%f%f", &a, &b);

答案及解析 C

单独的unsigned是unsigned int的缩写,表示无符号整数;

A:%6.2f,在scanf中,不需要精度,所以错误;

B:%n是用来统计字符个数的,不参加输入输出语句;

C:正确,八进制也是一个整数;

D:格式不匹配;

第五题

5. 下面程序执行后的输出值为()

#define  SUM(x) 3*x*x+1
int main() 
{
    int i=5, j=8;
    printf("%d\n", SUM(i+j));
    return 0;
}

A:64

B:508

C:420

D:其他几项都不对

答案及解析 A

记住一点,define就是替换,不要自己添加符号;

所以SUM(i+j) 被替换为 3 * i + j * i + j + 1 = 3 * 5 + 8 * 5 + 8 + 1 = 64


http://www.kler.cn/a/148520.html

相关文章:

  • 一种基于深度学习的反无人机无人值守系统及方法
  • Stored procedures in PostgreSQL
  • 监控录音如何消除杂音?降低录音噪音的五个技巧
  • 洞察鸿蒙生态,把握开发新机遇
  • 实现3D热力图
  • 力扣 LeetCode 977. 有序数组的平方(Day1:数组)
  • 开关电源低温启动测试条件是什么?如何测试开关电源?
  • Micropython STM32F4外部中断实验
  • 【闲读 1】量子论引出对认知的思考
  • docker compose搭建渗透测试vulstudy靶场示例
  • 11.28 知识回顾(Web框架、路由控制、视图层)
  • java基础-IO
  • Jquery动画特效
  • vue项目门店官网页面, 根据视口大小自动跳转页面逻辑(pc --> mobile / mobile -->pc)
  • 【算法】七大经典排序(插入,选择,冒泡,希尔,堆,快速,归并)(含可视化算法动图,清晰易懂,零基础入门)
  • MongoDB安装教程
  • 51单片机制作数字频率计
  • 跨标签页通信的8种方式(下)
  • Apache POI(处理Miscrosoft Office各种文件格式)
  • anyRTC 融合音视频能力底座:助力企业数字化转型
  • 京东数据分析(京东大数据采集):2023年线上珍珠市场销售数据采集
  • 2023SICTF-web-白猫-[签到]Include
  • HuggingFace学习笔记--Tokenizer的使用
  • 【UGUI】制作用户注册UI界面
  • antd vue a-select 下拉框位置偏移
  • C语言-内存函数详解