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

第一题

  1. 在C语言中,非法的八进制是( )
    A:018

B:016

C:017

D:0257

答案及解析 A

八进制是0~7的数字,所以A错误

第二题

  1. fun((exp1,exp2),(exp3,exp4,exp5))有几个实参?
    A:2

B:5

C:1

D:3

答案及解析 A

这是对fun函数的一次调用,而(exp1, exp2)这是一个逗号表达式,结果是最后一个表达式exp2的值,相同(exp3, exp4, exp5)也是一个逗号表达式,结果是exp5的值,所以该函数的实参有2个。

第三题

  1. 下列的常量定义中,错误的定义是( )【多选】
    A:const M=10;

B:const int M=20;

C:const char ch;

D:const bool mark=true;

答案及解析 A C

const修饰的变量,必须初始化,而且必须有数据类型

第四题

  1. 阅读以下程序,当输入数据的形式为12a345b789↙,正确的输出结果为()
cpp 复制代码
#include <stdio.h>
int main() 
{
    char c1,c2;
    int a1,a2;
    c1 = getchar();
    scanf("%2d",&a1);
    c2 = getchar();
    scanf("%3d",&a2);
    printf ("%d,%d,%c,%c\n",a1,a2,c1,c2);
}

A:2,345,1,a

B:12,345,a,b

C:2a,45b,1,3

D:2,789,1,a

答案及解析 A

首先我们输入的字符,会先到缓冲区上,之后getchar会拿走一个字符;

其次scanf这里的%2d的意思是,取两个整型的数字,如果有无效的,就不取;

下面是官方解释:

通过调用getchar函数将输入的第一个字符赋给c1,所以c1的值是字符'1',接下来调用scanf函数将输入的两位数赋给整型变量a1,但此时输入的两位是2a,a是无效的数字,所以只将2赋给变量a1,字符'a'通过后续的getchar函数将其赋给变量c2,再接下来调用scanf函数将输入的三位数赋给整型变量a2,则a2的值为345。所以正确答案是A。

第五题

  1. 下面哪个语句无法通过编译?
    A:if (x>y);

B:if (x=y) && (x!=0) x+= y;

C:if (x!=y) scanf("%d",&x); else scanf("%d",&y);

D:if (x<y) {x++; y++;}

答案及解析 B

B很明显的错误,if的条件语句写错了,应该这样写if((x = y) && (x != 0)) x += y;

相关推荐
码小猿的CPP工坊7 分钟前
C++跨平台开发之基于wxWidgets开发GUI程序简介-002
开发语言·c++
波力海苔夹心脆6759 分钟前
C# 固高 GTS 运动控制卡入门:伺服上下电、Jog 点动与二维插补(WinForms 实战)
服务器·开发语言·c#·运动控制·伺服电机·winforms·固高
海绵宝宝转agent15 分钟前
LeetCode100个人题解+java面经总结
java·开发语言·笔记·学习·算法
chenbingjie_c17 分钟前
C++ 继承全解析(从三种继承方式到菱形继承与内存布局)
开发语言·c++
学逆向的9 小时前
C 堆区内存管理
c语言·开发语言·网络安全
huoyueyi9 小时前
《融天AI-APP从0到1开发实录》
开发语言·lua
OpenAnolis小助手11 小时前
PHP 两个严重漏洞曝光,龙蜥社区 24 小时完成 3 版本修复
开发语言·操作系统·php·龙蜥社区
阿尼卡~11 小时前
VS Code 配置 C 语言开发环境(Windows 10/11):从 GCC 安装到运行、断点调试,一篇搞定
c语言·开发语言·windows
hhhjhl13 小时前
Undici 跨端三方库仓颉适配全流程
java·开发语言·ubuntu
染指111013 小时前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents