C语言错题4

简介: C语言错题4

导言:

前三篇文章都是编程题,

今天的五道则都是选择/填空题

当然,还是全部都是基础知识。

我在第二题处对于sizeof和strlen进行了对比,大家有兴趣可以看看

1.

题干:

定义了一维 int 型数组 a[10] 后,下面错误的引用是:

A. a[0] = 1;

B. a[0] = 5*2;

C. a[10] = 2;

D. a[1] = a[2] * a[0];

答案:

C

解析:

数组是相同类型的一段连续的空间,下标是从0开始的,比如:int array[N]

下标的范围为[0,N),其中N位置不能存储有效元素

2.

题干:

下面代码的结果是:( )

#include <stdio.h>
int main()
{
    int arr[] = {1,2,(3,4),5};
    printf("%d\n", sizeof(arr));
    return 0;
}

答案:

16

解析:

对于int arr[] = {1,2,(3,4),5}数组,里面总共有4个元素,(3,4)为逗号表达式,取后者,因此数组中元素分别为:1,2,4,5

而sizeof(arr)求的是整个数组所占空间的大小,即:4sizeof(int)=44=16

此处还是多说一句吧:

sizeof这个操作符可以用于任何类型的变量,它的结果是这个类型在当前操作系统下的所占字节的大小
而strlen这个操作符只能用于字符串,它的作用是用于测量字符串的元素个数,它遇到\0就会停止,当遇不到时,程序就会报错,其结果是随机值,比如很经典的“烫烫烫烫”
sizeof同样可以求数组的元素个数,格式如下:
sizeof(arr)/sizeof(arr[0]),sizeof是包含\0在内的
其实sizeof和strlen根本就没关系,初学者可能会在此处产生混淆,所以在此做出解释

3.

题干:

根据下面递归函数:调用函数Fun(2),返回值是多少( )

int Fun(int n)      
{ 
  if(n==5)   
    return 2;     
  else     
    return 2*Fun(n+1);      
}

答案:

16

解析:

代码运行过程如下:

Fun(2)--->返回16
 return 2*Fun(3)  2*8=16
      |__Fun(3):8
         return 2*Fun(4)  2*4=8
              |__Fun(4):4
                 return 2*Fun(5) 2*2=4
                      |__Fun(5):2  
                         return 2

4.

题干:

能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是:( )

A. return 这二个数

B. 形参用数组

C. 形参用二个指针

D. 用二个全局变量

答案:

A

解析:

这题选项可能对于初学者来说有点拿不准,

但其实记住一个知识点就可以了:

一个函数只能返回一个结果

5.

题干:

函数调用exec((vl,v2),(v3,v4),v5,v6);中,实参的个数是:

答案:

4

解析:

本题涉及到的知识点是:逗号表达式:

逗号表达式,即用逗号隔开的多个表达式,

这些表达式,从左向右依次执行,最后一个表达式的结果,为逗号表达式的结果

从这道题来看:

exec((vl,v2),(v3,v4),v5,v6) 总共有四个参数

(v1, v2)属于第一个实参,逗号表达式,真实的参数时v2

(v3,v4)属于第二个实参,逗号表达式,真实的参数是v4

v5属于第三个实参

v6属于第四个实参


相关文章
|
28天前
|
C语言
【C语言】错题本(3)
【C语言】错题本(3)
12 0
|
7月前
|
存储 编译器 C语言
C语言错题之 10
C语言错题之 10
91 0
|
1月前
|
C语言
C语言:初阶测试错题(查漏补缺)
C语言:初阶测试错题(查漏补缺)
21 0
|
8月前
|
存储 C语言
C语言错题之 8
C语言错题之 8
52 0
|
8月前
|
C语言
C语言错题之 5
C语言错题之 5
38 0
|
5月前
|
C语言
C语言分支语句和循环语句经典题及易错题
C语言分支语句和循环语句经典题及易错题
60 0
|
8月前
|
存储 编译器 开发工具
C语言错题之 7
C语言错题之 7
47 0
|
8月前
|
C语言
C语言错题之 6
C语言错题之 6
39 0
|
8月前
|
存储 C语言
C语言错题 1
C语言错题 1
69 0
|
8月前
|
C语言
C语言错题 2
C语言错题 2
63 0