C语言—每日选择题—Day50

        一天一天的更新,也是达到50天了,精选的题有250道,博主累计做了不下500道选择题,最喜欢的题型就是指针和数组之间的计算呀,不知道关注我的小伙伴是不是一直在坚持呢?文末有投票,大家可以投票让博主知道你们坚持的时间!

博主新写的博客:关于指针所有的知识点打响指针的第一枪:指针家族-CSDN博客

第一题

1. fun(21)结果是()

int fun(int a)
{
    a = (1 << 5) - 1;
    return a;
}

A:10

B:8

C:5

D:31

答案及解析 D

1 << 5,右移操作符,将1的二进制位向右移动5位,右侧补0

0000 0001  右移后 0010 0000 = 32

a = 32 - 1 = 31;

所以结果为31;

第二题

2. sz的结果是多少()

struct Student 
{
    int num;
    char name[7];   
    short age;
    char sex;
} student1;
int sz = sizeof(student1);

A:14

B:15

C:16

D:20

答案及解析 C

内存对齐:C/C++内存对齐规则(结构体、联合体、类)-CSDN博客

第三题

3. 下列语句:int *p, a = 10; p = &a;,均表示地址的是()

A: a        p      &a

B: &*a   &a    *p

C: *&p   *p     &a

D: &a      p    &*p

答案及解析 D

表示地址的有:p,&a,&*p

第四题

4. 执行如下代码后输出结果为()

#include <stdio.h>
int main() 
{
    int a[5]  = {1, 2, 3, 4, 5};
    int *ptr = (int*)(&a + 1);
    printf("%d, %d", *(a + 1), *(ptr - 1));
    return 0;
}

A:1,1

B:1,3

C:3,3

D:2,5

答案及解析 D

这个题是第二次出现了吧深入理解:指针变量的解引用 与 加法运算-CSDN博客

我希望大家可以自己动手画画图,在评论区展示出来好不好!

第五题

5. 以下程序运行时,若输入1abcedf2df<回车>输出结果是?

#include <stdio.h>
int main() 
{
    char a = 0, ch;
    while ((ch = getchar()) != '\n') 
    {
        if (a % 2 != 0 && (ch >= 'a' && ch <= 'z'))
            ch = ch - 'a' + 'A';
        a++;
        putchar(ch);
    }
    printf("\n");
    return 0;
}

A:1abcedf2df

B:1ABCEDF2DF

C:1AbCeDf2dF

D:1abceDF2DF

答案及解析 C

        本题考查的是getchar,我们输入的时候是输入了1abcedf2df<回车>,这些输入的都会被存放在缓冲区中,而不是直接输入给输入语句的,本题的输入语句是getchar,这个表示在缓冲区中每次拿一个字符,所以循环条件就是当getchar拿到\n就停止;那if语句就是字符的ASCII式奇数并且还是小写字母的字符,转换为大写;最后putchar输出该字符;

ASCII值表格:

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

终将向阳而生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值