C语言—每日选择题—Day64

发布时间:2023年12月28日

前言

????????两天没更新了,作者在复习期末考试,更新一波,祝大家都能顺利通过期末考试!!!

指针相关博客

打响指针的第一枪:指针家族-CSDN博客

深入理解:指针变量的解引用 与 加法运算-CSDN博客

第一题

1. 下面程序段的运行结果是( )【多选】

char s[] = "12345", *p = s;
printf("%d\n", *(p+5));

A:字符 '\0' 的 ASCII 码值

B:0

C:字符 '5' 的地址

D:字符 '5'

答案及解析 AB

本题考查的是对指针?整数和指针解引用

详谈【指针解引用】与【指针加整数】_指针解引用之后-CSDN博客

最后p + 5是 到达的\0的地址,解引用拿出来的就是\0,ASCII就是0

第二题

2. 以下程序中,while循环的次数是(? ?)

int main()
{
    int i = 0;
    while(i < 10)
    {
        if(i < 1)
            continue;
        if(i == 5)
            break;
        i++;
    }
}

A:1

B:10

C:6

D:死循环,不能确定次数

答案及解析?D

本题考查的是对while循环中的continue和break语句的认识

continue语句,不执行后面语句,直接返回循环条件部分

break语句,跳出当前循环

所以本题就是一直都是i = 0 < 1 ,一直循环

第三题

3. 下面3段程序代码的效果一样吗?

int b;
(1)const int *a = &b;
(2)int const *a = &b;
(3)int *const a = &b;

A:(2) = (3)

B:(1) = (3)

C:(1) = (2)

D:都不一样

E:都一样

答案及解析 C

const在*左边:指针指向的内容不可以改变,pointer to const

const在*右边,指针本身不可被改变,const pointer

第四题

4. 有定义?int a=2.b=3,c=4;?表达式的值为()

?(a < b && !c)? ++b: a--?

A:1

B:2

C:3

D:4

答案及解析 B

第五题

5. 下列代码的输出是()

#include <stdio.h> 
void print(char *s)
{
    if(*s)
    {
        print(++s);
        printf("%c", *s); 
    }
}
int main()
{     
    char str[] = "Geneius";
    print (str);
    return 0;
}

A:\0suiene

B:neius

C:run-time error

D:suieneG

答案及解析 A

本题考查的是函数递归

在s取到\0的地址的时候结束递归,反向输出

文章来源:https://blog.csdn.net/2302_76941579/article/details/135254504
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。