C语言—每日选择题—Day49

第一题

  1. 假定有语句" int b10, *pb; ",则不正确的赋值为 ( )
    A:pb=b

B:pb=b5

C:pb=b+2

D:pb=&b0

答案及解析 B

本题考查的是指针类型对数组的引用;

A:b是数组名,是首元素地址,数据类型是int *,数据类型匹配,赋值正确;

B:b5是数组的一个元素,数据类型是int,数据类型不匹配,赋值错误;

C:b是数组名,首元素的地址,b + 2;就是往后移动2个int类型的大小,也就是8字节,到达的是第三个元素的地址,相当于&b3,所以数据类型是int*,正确;

D:&b0,数据类型是int*,数据类型匹配,正确;

第二题

  1. 运行时的C程序,下列哪些变量在内存中的stack(栈)区域的有()
cpp 复制代码
int a = 0;
char *p1;
int main() 
{
    int b;
    char s[] = "abc";
    char *p2;
    char *p3 = "123456";
    static int c =0;
    p1 = (char *)malloc(10);
    free(p1);
    return 0;
}

A:a

B:b

C:c

D:s

E:p1

F:p2

答案及解析 BDF

stack是栈空间的意思,我们学习数据结构就知道了;而这里考察的是内存中栈中存放的是哪些数据?栈中存放的是局部变量的空间;
a 和p1 :这是一个全局变量,存放在静态区;

b,s,p2,p3:这些都是局部定义的变量,存放的就是栈区

static的变量:是静态变量,存在静态区;

由malloc开辟的空间:存放的是堆区;

第三题

  1. 以下程序的运行结果是()
cpp 复制代码
#include <stdio.h>
int main() 
{ 
    int m = 12,n = 34;    
    printf("%d %d ", m++, ++n);    
    printf("%d %d\n", n++, ++m);  
} 

A:12 35 35 14

B:12 35 35 13

C:12 34 35 14

D:12 34 35 13

答案及解析 A

本题依旧考察的是前置++和后置++;

记住前置++的表达式,表达式的值是++之后的值;

后置++的表达式,表达式的值是++之前的值;

--也是一个道理

第四题

  1. 若有以下程序
cpp 复制代码
#include <stdio.h>
int main() 
{
    int s = 0, n;
    for (n = 0; n < 4; n++) 
    {
        switch (n) 
        {
            default:
                s += 4;
            case 1:
                s += 1;
            case 2:
                s += 2;
            case 3:
                s += 3;
        }
    }
    printf("%d\n", s);
    return 0;
}

则程序的输出结果是?
A:6

B:18

C:10

D:24

答案及解析 D

本题考查的是switch语句,只要case和default语句后面没有break,就会依次执行下面每一个case或default的语句;

比如第一次循环,n=0,只满足default,而他们都没有break,所以依次执行下面的语句

s += 4,s += 1,s += 2,s += 3;

剩下的循环以此类推;

第五题

  1. 下面函数输出结果是()
cpp 复制代码
#include <stdio.h>
int main() 
{
    int k = 12345;
    printf("%2d\n", k);
    return 0;
}

A:12

B:45

C:12345

D:无法通过编译

答案及解析 C

本题考查的是格式化打印

直接看这篇博客:%md在printf语句和scanf语句中的区别-CSDN博客

相关推荐
kyle~1 小时前
C++_STL---迭代器失效
开发语言·c++
Brilliantwxx2 小时前
【C语言】 初入嵌入式C语言复习(基础+进阶面试题)
c语言·开发语言
熊野君3 小时前
附录与 Codex 实操手册
开发语言·人工智能·产品经理
wuminyu3 小时前
深入剖析 Panama Off-heap 的性能损耗与开销
java·linux·c语言·jvm·c++
rhythm-ring3 小时前
宏定义续行符 \ 的使用与踩坑
c语言·c++
XZ-0700014 小时前
week2-1-可视化
开发语言·python
Java后端的Ai之路4 小时前
14、Python - 责任链模式
服务器·开发语言·人工智能·python·责任链模式
吴声子夜歌4 小时前
Java——基本类型
java·开发语言
老当益壮梁奶奶4 小时前
Linux软件编程学习笔记(八):进程间通信详解(1)
linux·c语言·笔记·学习·算法
「QT(C++)开发工程师」4 小时前
C++11 std::unique_ptr — 独占所有权的智能指针
c语言·开发语言·c++·qt