C语言—每日选择题—Day40

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
云解析DNS,个人版 1个月
简介: C语言—每日选择题—Day40

第一题

1. int a[10] = {2,3,5}, 请问a[3]及a[3]之后的数值是()


A:不确定的数据

B:5

C:0

D:0xf f f f f f f f

答案及解析 C

数组的不完全初始化,会自动把没初始化的部分初始化为0;

第二题

2. 引用标准库时,下面的说法正确的是()


A:语句#include “stdlib.h”是正确的,而且程序编译速度比#include< stdlib.h >要快

B:语句#include< stdlib.h >是正确的,而且程序编译速度比#include “stdlib.h”要快

C:语句#include< stdlib.h >和#include “stdlib.h”都是正确的,程序编译速度没有区别

D:语句#include “stdlib.h”是错误的

答案及解析 B

#include "" 是先在当前的工作目录上去找" "里面的头文件,若没找到,再去标准库去找;

#include <>则是先去标准库去找,找不到再去当前工作目录;

所以stdlib.h 是一个C标准库里面的头文件,所以<stdlib.h>一定更快;

第三题

3. 在32位机器上,有如下代码:输出结果为()

#include <stdio.h>
void func0()
{
    char array[] = "abcdefg";
    printf("%d ", sizeof(array));
    const char *p = "abcdefg";
    printf("%d ", sizeof(p));
}
void func1(char p[10])
{
    printf("%d ", sizeof(p));
}
int main()
{
    char p[10] = "hello";
    func0();
    func1(p);
    printf("%d ", sizeof(char[2]));
    return 0;
}

A:8 4 4 2

B:4 4 4 4

C:8 8 4 2

D:8 4 4 1

答案及解析 A

func0里面

第一个输出 :sizeof数组名表示的是整个数组的大小,但是别忘了一个隐藏的\0,所以为8;

第二个输出:sizeof(p),p是一个指针类型,32位下是4字节,所以为4;

func1这里

第三个输出:传入的是一个数组名,所以数组在传参的时候会退化成指针类型,p其实是一个指针类型,char *类型,sizeof(p),依旧是4字节;

第四个输出:sizeof(char [2])这里的char [2]其实是一个数据类型,表示的是一个char数组,有两个元素,所以为2字节;

答案就是8442;

第四题

4. 以下程序的运行结果是()

#include <stdio.h>
#define MIN(x,y)    (x)<(y) ? (x):(y)
int main() 
{
    int i = 10, j = 15, k;
    k = 10*MIN(i, j);
    printf ("%d\n", k);
}

A:10

B:15

C:100

D:150

答案及解析  B

本题考查#define的替换和运算符优先级

k = 10 * MIN(i, j) = 10 * (x) < (y) ? (x) : (y) = 10 * 10 < 15 ? 10 : 15

*的优先级高于条件操作符

所以 k = 100 < 15 ? 10 : 15 = 15;

第五题

5. 32位系统下下面程序的输出结果为多少?

#include <stdio.h>
void Func(char str_arg[100])
{
    printf("%d\n", sizeof(str_arg));
}
int main()
{
    char str[] = "Hello";
    printf("%d\n", sizeof(str));
    printf("%d\n", strlen(str));
    char*p = str;
    printf("%d\n", sizeof(p));
    Func(str);
}

A:5 5 4 4

B:6 5 4 4

C:6 5 6 4

D:5 5 5 100

答案及解析 B

前两个就不解释了,分别为6,5;因为有隐藏的\0,sizeof算,strlen不算


第三个,p是指针类型,sizeof(p)是算的指针类型,32位下指针类型4字节

第四个,这里要知道数组在传参的时候,会转换成指针,所以str_arg是一个指针类型,依旧位4;


相关文章
|
2月前
|
C语言
C语言—每日选择题—Day60
C语言—每日选择题—Day60
|
2月前
|
编译器 C语言
C语言—每日选择题—Day61
C语言—每日选择题—Day61
|
2月前
|
编译器 C语言
C语言—每日选择题—Day57
C语言—每日选择题—Day57
|
2月前
|
C语言
C语言—每日选择题—Day56
C语言—每日选择题—Day56
|
2月前
|
编译器 C语言 C++
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题(下)
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题
33 2
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题(下)
|
2月前
|
算法 C语言 C++
从C语言到C++_14(vector的常用函数+相关选择题和OJ题)(中)
从C语言到C++_14(vector的常用函数+相关选择题和OJ题)
79 1
|
2月前
|
算法 编译器 C语言
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题(上)
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题
29 3
|
2月前
|
编译器 C语言 C++
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题(中)
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题
28 1
|
2月前
|
存储 编译器 C语言
从C语言到C++_22(继承)多继承与菱形继承+笔试选择题(下)
从C语言到C++_22(继承)多继承与菱形继承+笔试选择题
28 0
|
2月前
|
Java 编译器 定位技术
从C语言到C++_22(继承)多继承与菱形继承+笔试选择题(中)
从C语言到C++_22(继承)多继承与菱形继承+笔试选择题
26 0