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

C语言—每日选择题—Day46

第一题

1. 下列程序段的输出结果是()

#include <stdio.h>
int main() 
{int x = 1,a = 0,b = 0;switch(x) {case 0:  b++;case 1:  a++;case 2:  a++;b++;}printf("a=%d,b=%d\n", a, b);return 0;
}

A:a=2,b=1

B:a=1,b=1

C:a=1,b=0

D:a=2,b=2

答案及解析 A

switch语句记住一点就是,当满足case的条件,如果case里面没有break,就会继续执行下面的所有语句;

所以x = 1;执行了case1,case2的语句;

第二题

2. 若二维数组a有m列,则在a[ i ] [ j ]前的元素个数为()

A:j * m + i

B:i * m + j

C:i * m + j - 1

D:i * m + j + 1

答案及解析 B

第i行,前面肯定是有0~i - 1行的,因为别忘了是从0下标开始的

所以0 ~ i - 1行一共有 i 行,每行有 m 列,那前 i 行一共就是  i * m 列 

那这一行 j 前面下标是 0 ~ j - 1,就是 j 个元素;

所以在a[ i ][ j ]之前的元素一共是i *m + j

第三题

3. 以下数据中,不正确的数值或字符常量是( )

A:c

B:66

C:0xaa

D:50

答案及解析 A

A:错误,单独的c,并不是 'c' ,所以不是表示的字符,这样直接的c,可以理解为16进制,但是前面没有0x,所以也不是16进制的表示方法,既不正确;

B:就是正常的int类型的数据

C:0x开头的是表示16进制的数字,范围就是0~9,a~f

D:正常的int类型

第四题(好题)

4. 以下程序的输出的结果是()

#include <stdio.h>
int x = 3;
void incre() 
{static int x = 1;x *= x + 1;printf("%d", x);
}
int main() 
{int i;for(i = 1; i < x; i++) {incre();}return 0;
}

A:33

B:22

C:26

D:25

答案及解析 C

本题涉及同名全局变量和静态变量;

局部静态变量只会初始化一次,在局部变量和全局变量名一样的时候,优先使用局部变量

所以在incre函数内部压根不会用到全局变量的x,在main函数中的x也不会用到incre的x,因为静态变量x的生命周期和作用域都是在incre上,所以即使是静态的,但是出了自己的作用域也不会发挥作用;最后我们只需要分清,在main函数的x是全局变量,在incre函数的x是static的局部变量就OK了;

第一次进入循环就是2;

第二次进入循环,由于静态局部变量只会初始化一次,所以x依旧是2,之后进行计算得6;

打印结果就是26;

第五题

5. 有以下程序,程序运行后的输出结果是()

float fun (int x, int y) 
{return (x+y);
}
int main() 
{int a=2, b=5, c=8;printf("%3.0f\n", fun( (int)fun(a+c, b) ,  a-c) );return 0;
}

A:编译出错

B:   9

C:21

D:9.0

答案及解析 B

本题涉及的知识点还是蛮杂的,涉及了强制类型转换,格式化打印格式和函数的调用做参数;这里直接讲解重点:

大家肯定是会算出来fun里面的fun(a+c, b)的值为15.000000

所以fun( (  int)fun(a + c, b)   ,   a-c   ) = fun(  (int)15.000000  ,   a-c )

强制类型转换为int类型,舍去小数部分为 fun(15, a-c) = 9.000000;

但是在格式化打印这里是规定的  %3.0f

这里小数点后面的数字是表示 保留几位小数,所以这里为0,就是不保留小数,也就是9;

但是小数点前面的数字表示的就是右对齐,数字是几,就右对齐几个空格位置,所以这里其实是先输出3个空格位置,再输出3;

这里我用hhh来区分,看的更明显

相关文章:

  • Redux Toolkit(RTK)在React tsx中的使用
  • UDP群聊
  • Java网络编程,对使用UDP实现TCP(一)三次握手实现的补充
  • 华为OD机试 - 数据单元的变化替换(Java JS Python C)
  • 在idea中使用maven创建dynamic web project
  • 4-Docker命令之docker export
  • Redis KEY*模糊查询导致速度慢、阻塞其他 Redis 操作
  • 破晓6G新时代:迈向新一代星地融合的高速测试解决方案
  • Mysql的多表联合查询
  • OpenAI 承认 ChatGPT 最近确实变懒,承诺修复问题
  • 基于Maven构建OSGI应用(Maven和OSGI结合)
  • 为什么现在是学习 Rust 的最佳时机
  • js根据数组对象中的某个值去重
  • Android audio设置投屏和喇叭双输出
  • 【数据结构和算法】--队列
  • Git初体验
  • Git的一些常用操作
  • java中具有继承关系的类及其对象初始化顺序
  • laravel5.5 视图共享数据
  • PAT A1120
  • Protobuf3语言指南
  • TypeScript迭代器
  • 当SetTimeout遇到了字符串
  • 番外篇1:在Windows环境下安装JDK
  • 分类模型——Logistics Regression
  • 如何用vue打造一个移动端音乐播放器
  • 使用SAX解析XML
  • 使用Swoole加速Laravel(正式环境中)
  • 我是如何设计 Upload 上传组件的
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • 通过调用文摘列表API获取文摘
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​linux启动进程的方式
  • # 飞书APP集成平台-数字化落地
  • #WEB前端(HTML属性)
  • (1)(1.13) SiK无线电高级配置(五)
  • (C语言)fgets与fputs函数详解
  • (二)fiber的基本认识
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (三十五)大数据实战——Superset可视化平台搭建
  • (转)为C# Windows服务添加安装程序
  • .CSS-hover 的解释
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .net和jar包windows服务部署
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .NET正则基础之——正则委托
  • /etc/fstab和/etc/mtab的区别