C语言--每日五道练习题-- Day15

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: C语言--每日五道练习题-- Day15

第一题

1、以下程序段的输出结果是( )

#include<stdio.h>
int main()
{
    char s[] = "\\123456\123456\t";
    printf("%d\n", strlen(s));
    return 0;
}

A: 12

B: 13

C: 16

D: 以上都不对

答案及解析 A

本题考查的是转义字符 ' \ '占了几个字节长度,我们要知道转义字符可以把其紧挨着的字符原有的意思转换,然后转义字符和后面被转义的作为一个整体占一个字节;


所以上面的程序就是这样:\\ 123456 \123 456 \t


特殊颜色的就代表是转义字符,所以字符串的长度是12

第二题

2、若有以下程序,则运行后的输出结果是( )

#include <stdio.h>
#define N 2
#define M N + 1
#define NUM (M + 1) * M / 2
int main()
{
    printf("%d\n", NUM);
    return 0;
}


A: 4


B: 8


C: 9


D: 6


答案及解析 B

本题考查的是#define宏定义的替换,记住是替换,这个很重要。


所以NUM = (M + 1) * M / 2 = (N + 1 + 1) * N + 1 / 2 = (2 + 1 + 1) * 2 + 1 / 2 = 8;

第三题

3、如下函数的 f(1) 的值为( )

int f(int n)
{
    static int i = 1;
    if(n >= 5)
        return n;
    n = n + i;
    i++;
    return f(n);
}

A: 5

B: 6

C: 7

D: 8

答案及解析 C

本题考查的是static修饰的变量是静态变量,局部静态变量只会初始化一次,所以就是只在第一次进入函数f的时候初始化了,其余没有初始化,i的值一直在增大;

第四题

4、下面3段程序代码的效果一样吗( )

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


A: (2)=(3)

B: (1)=(2)

C: 都不一样

D: 都一样

答案及解析 B

本题考查的是const在*的左=左右侧的区别;

const在* 的左侧:限制的是指针指向的对象,可以改变指针,不可以改变指针指向的对象

const在* 的右侧:限制的是指针本身,指针不可以被改变,但是可以改变指针指向的对象

第五题

5、对于下面的说法,正确的是( )


A: 对于 struct X{short s;int i;char c;},sizeof(X)等于sizeof(s) + sizeof(i) + sizeof(c)


B: 对于某个double变量 a,可以使用 a == 0.0 来判断其是否为零


C: 初始化方式 char a[14] = "Hello, world!"; 和char a[14]; a = "Hello, world!";的效果相同


D: 以上说法都不对

答案及解析 D



A:这个求一个结构体的大小,要考虑到内存对齐,相关博客在这:http://t.csdnimg.cn/YaDtP


B:因为double类型是有精度的,double只能保留到小数点后15位,所以要判断是否等于0,应该这样比较:a < 1e-15;


C:数组初始化不可以用数组名,数组名代表首元素地址,是常量不可以改变;


D:正确

相关文章
|
7月前
|
C语言
C语言练习题
C语言练习题
35 0
|
7月前
|
C语言
C语言练习题 温度自动转换‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪
C语言练习题 温度自动转换‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪
|
7月前
|
C语言
c语言编程练习题:7-60 Welcome to You!
c语言编程练习题:7-60 Welcome to You!
78 0
|
7月前
|
C语言 数据安全/隐私保护
C语言练习题
C语言练习题
45 1
|
6月前
|
人工智能 算法 Java
|
7月前
|
存储 C语言
C语言从入门到实战——数组和指针的强化练习题
C语言中指针和数组有着密切的关系,因为数组名在C语言中可以看作是一个指针常量。 指针是一个变量,存储的是另一个变量的地址。可以通过指针来访问另一个变量的值。指针变量可以存储任何类型的地址,包括数组的地址。 数组是一组相同类型的数据元素的集合。在C语言中,可以用数组名来表示整个数组,在这个意义上,数组名看起来像一个指针变量。实际上,数组名在C语言中可以看作是一个指向数组首元素的指针常量。
66 0
|
7月前
|
C语言
c语言编程练习题:7-59 打印菱形图案
c语言编程练习题:7-59 打印菱形图案
76 0
|
7月前
|
C语言
c语言编程练习题:7-58 求幂级数展开的部分和
c语言编程练习题:7-58 求幂级数展开的部分和
77 0
|
7月前
|
C语言
c语言编程练习题:7-57 求e的近似值
c语言编程练习题:7-57 求e的近似值
80 0
|
7月前
|
C语言
c语言编程练习题:7-56 求给定精度的简单交错序列部分和
c语言编程练习题:7-56 求给定精度的简单交错序列部分和
89 0