C语—每日选择题—Day43

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

第一题

1. 使用malloc系统调用分配的内存是在什么上分配的?


A:栈

B:堆

答案及解析 B

malloc开辟的空间都是在堆上申请的内存空间,但是我们平常定义的定长数组之类的,都是在栈上开辟的空间;

第二题

2. C语言中,在头文件正常引用的情况下,执行后,输出结果为

printf("%5s", "abcdefg");

A:abcde

B:abcdefg

C:cdefg

D:输出错误信息

答案及解析 B

首先要知道printf可以自动识别字符串类型,所以这跟我们上面定义一个字符串,然后再输出没有区别,%ns,n大于字符串长度,在右边会自动补空格,如果n小于字符串长度的话,输出原来的字符串,一句话总结:大了补空格,小了无影响;

具体博客:C语言printf格式化打印(%d、%md、%f、%c、%s、%o、%x、%p、%e、%E、%n等)-CSDN博客

第三题

3. 下面程序输出的是:

#include <stdio.h>
#define f(x) x*x
int main ()
{
    int a=5,b=2,c;
    c=f(a)/f(b);
    printf("%d",c);
    return 0;
}

A:6.25

B:6

C:24

D:25

答案及解析 C

依旧是#define的替换,每次其实看到这个题的时候,都不想写进去,因为我们可以自己手动加括号,但是为了题,所以还是要做;

#define是 替换,不要自己脑海中加括号哦~

第四题

4. 结果为 j 字符的表达式是()

char *p[]={"Shanghai","Beijing","Honkong"};

A:*p[1] +3

B:*(p[1] +3)

C:*(p[3] +1)

D:p[3] [1]

答案及解析 B

这里p是一个指针数组的类型,大家可以试着自己画一画图,就一目了然了。如果有需要解释这个题,评论说一下就好啦

第五题

5. 对于下面代码段,正确的赋值语句( )

char a[5], *p=a;

A:p="abcd";

B:a="abcd";

C:*p="abcd";

D:*a="abcd";

答案及解析 A

CD错:因为字符串默认出现,就是指首元素的地址,所以我们在这里不可以对a和p解引用,这属于类型不匹配;

A:正确,p是一个char类型的指针,开始时指向的是a这个字符数组,之后完全可以改变指向,去指向"abcd"这个常量字符串;

B:错误,因为a是数组的首元素地址,首元素的地址是一个常量,所以不可以被改变,也就是说a的类型是 char * const;指向不可以被改变,但是内容可以被改变;


相关文章
|
2月前
|
C语言
c语言编程练习题:7-30 念数字
c语言编程练习题:7-30 念数字
113 0
|
8月前
|
C语言
C语言--每日五道选择题--Day6
C语言--每日五道选择题--Day6
|
8月前
|
存储 C语言
C语言--每日五道选择题--Day1
C语言--每日五道选择题--Day1
|
8月前
|
C语言
C语言--每日五道选择题--Day10
C语言--每日五道选择题--Day10
|
8月前
|
C语言
C语言--每日五道选择题--Day9
C语言--每日五道选择题--Day9
C语言--每日五道选择题--Day9
|
8月前
|
编译器 C语言
C语言--每日五道选择题--Day14
C语言--每日五道选择题--Day14
|
6天前
|
C语言
PTA—C语言期末复习(判断题)
PTA—C语言期末复习(判断题)
|
2月前
|
C语言
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
|
8月前
|
C语言
C语言--每日五道选择题--Day12
C语言--每日五道选择题--Day12
|
2月前
|
存储 Java 编译器
C++每日选择题—Day1
C++每日选择题—Day1