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

第一题

1.  i  = ()

int i = 1;
int j = i++;
if((i > j++) && (i++ == j)) 
{
    i += j;
}

A:3

B:5

C:6

D:7

答案及解析 B

本题考查你对后置++的认识,后置++返回的是++之前的值,之后再++;

所以在进入if语句之前,j = 1, i = 2;

i > j++,2 > 1 为真,此时i = 2,j = 2;

i++ == j 为真,i = 3,j = 2

所以 i += j, i = 5;

第二题(易错题)

2. 在 32 位编译器上,下面输出的结果为()

char *str1 = "Hello", str2[] = "Hello"; 
 printf("%d %d", sizeof(str1), sizeof(str2));

A:5 6

B:5 5

C:6 6

D:4 6

答案及解析 D

首先要知道sizeof求的是你的变量的数据类型的字节

str1是char*类型,是一个字符指针,并不是数组,所以指针的字节为4或者8字节,题目说了为32位,所以为4字节;

str2是一个字符串,sizeof(数组名)求的是整个数组的空间,但是字符串还有一个隐藏的\0,所以结果为6字节

第三题

3. 以下程序运行时输入:123456789↙,则程序运行结果是( )

#include <stdio.h>
int main()
{
    int x, y;
    scanf("%2d%*4s%2d", &x, &y);
    printf("%d", y - x);
    return 0;
}

A:44

B:55

C:66

D:88

答案及解析 C

本题是一个比较少见的题;

%*4s表示读取一个长度为四个字符的字符串,中间的*表示将读取到的字符串忽略,不赋给变量列表中的变量。

%2d代表读取2个整数

所以x = 12,y = 78

y - x = 66;

第四题

4. 在标准C中,while(){}和do{}while()的功能完全相同。请问这句话的说法是正确的吗?

A:正确

B:错误

答案及解析 B

while循环是先进行条件判断后进入循环体

do-while是先进入循环体,后条件判断;

所以在条件相同时,do-while永远比while多执行一次循环

第五题

5. 在C语言程序中,若对函数的返回值类型未加显式说明,则函数的返回值隐含类型为()

A:void

B:double

C:char

D:int

答案及解析 D

若对函数类型未加显式说明,则函数的隐含类型为int

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

终将向阳而生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值