19. 关于函数声明,以下不正确的说法是( )

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19. 关于函数声明,以下不正确的说法是( )相关的知识,希望对你有一定的参考价值。

19. 关于函数声明,以下不正确的说法是( )
A. 如果函数定义出现在函数调用之前,可以不必加函数原型声明
B. 如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型声明
C. 函数再调用之前,一定要声明函数原型,保证编译系统进行全面的调用检查
D. 标准库不需要函数原型声明

20. 不能把字符串:Hello!赋给数组b的语句是( )
A. char b[10]='H','e','l','l','o','!';
B. char b[10];b="Hello!";
C. char b[10];strcpy(b,"Hello!");
D. char b[10]="Hello!";

21. 在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为( )
A. char<int<1ong int<=float<double
B. char=int<1ongint<=float<double
C. char<int<1ongint=float=double
D. char=int=1ong int<=float<double

22. 以下程序的输出结果是 ( ) main() int i; for(i=0;i<3;i++) switch(i) case 0:printf("%d",i); case 2:printf("%d",i); default:printf("%d",i);
A. 022111
B. 021021
C. 000122
D. 012

23. 在C语言中,正确的的结论是( )
A. 对文件操作必须先关闭文件
B. 对文件操作必须先打开文件
C. 对文件操作顺序没有统一规定
D. 以上都错

24. 已知字符0的ASCII码为十六进制的30,下面程序的输出是 ( ) main() unionunsigned char c; unsigned int i[4]; z; z.i[0]=0x39; printf("%\n",z.c);
A. 6
B. 9
C. 0
D. 3

25. C语言结构体类型变量在程序执行期间( )
A. 所有成员一直驻留在内存中
B. 只有一个成员驻留在内存中
C. 部分成员驻留在内存中
D. 没有成员驻留在内存中

26. C语言中用于循环结构程序设计的三种常用控制语句是( )
A. if、for、continue
B. if、switch、break
C. for、while、do-while
D. 顺序结构、选择结构、循环结构

27. 建立函数的目的之一是( )
A. 提高程序的执行效率
B. 提高程序的可读性
C. 减少程序的篇幅
D. 减少程序文件所占内存

28. 变量的指针,其含义是指该变量的( )
A. 值
B. 地址
C. 名
D. 一个标志

29. 下列运算符中优先级最低的是( )
A. ?:
B. &&
C. +
D. !=

30. 设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是( )
A. c=*p1+*p2;
B. p2=c;
C. p1=p2;
D. c=*p1*(*p2);

31. 若有以下说明和语句: struct student int age; int num; std,* p; p=&std; 则以下对结构体变量std中成员age的引用方式不正确的是( )
A. std.age
B. p->age
C. (*p).age
D. *p.age

32. C语言规定:在一个源程序中,main函数的位置是( )
A. 必须在最开始
B. 必须在系统调用的库函数的后面
C. 可以任意
D. 必须在最后

33. 若有以下说明: int a[10]=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为6的表达式是( )
A. *p+6
B. *(p+6)
C. *(p+5)
D. p+5

34. 语句while(!E)中的表达式!E等价于( )
A. E==0
B. E!=1
C. E!=0
D. E==1

35. 为了避免在嵌套的条件语句if - else中产生二义性,C语言规定else子句总是与( )配对
A. 缩排位置相同的if
B. 其之前最近的if
C. 之后最近的if
D. 同一行上的if

参考技术A 19.C 只是建议这样做,不是一定,只要把函数放在调用之前也可以、
20.B b是数组名,地址常量,不能给地址常量赋值。
21.A http://zhidao.baidu.com/question/23735957.html
23.B
25.A
30.B
31.D
32.C
33.C
34.A 原是中,E=0,循环执行.
35.B

暑假第三天之每天一些题系列

暑假第三天之每天一些题系列


一. 选择题

  • 以下关于函数设计不正确的说法是
    A. 函数设计应该追求高内聚低耦合
    B. 要尽可能多的使用全局变量
    C. 函数参数不易过多
    D. 设计函数时,尽量做到谁申请的资源就由谁来释放

答案解析:

函数设计应尽可能少的使用全局变量,因为全局变量的声明周期太长会长时间占用空间,容易出错

  • 下面的程序,输出结果正确的是
int main()
{
    int a = 5;
    if( a = 0 )
    {
    	printf("%d", a - 10);
    }
    else
    {
    	printf("%d", a++);
    }
    return 0;
}

A. -5 B. 6 C. 1 d. 0

答案解析:

注意if语句里面是赋值号,而不是==号,将0赋给a,a=0这个表达式的值为0,为假,故进入else,注意此时a变为了0,a是后置++,先使用后加加,故打印的是0

  • 关于野指针,下面说法错误的是
    A. 野指针指可能指向非法的内存地址
    B. 野指针有时也可能指向合法的内存地址
    C. 野指针都是由指针未初始化导致的
    D. 对野指针的访问,可能会导致程序异常

答案解析:

野指针的成因不只是指针未初始化导致的,还有比如指针越界访问、指针指向的空间释放

想要更多了解指针,请前往博主两篇讲解指针的博客:指针初阶指针进阶

  • include <x.h> 和 include “y.h” ,以下说法正确的是
    A. “” 表示先到源文件所在目录下搜索头文件
    B. <> 表示先到源文件所在目录下搜索头文件
    C. 两者用法没有区别

答案解析:

"" 表示先到源文件所在目录下搜索头文件,如果头文件没有找到,编译器就像查找库函数头文件一样,在库函数的头文件目录下查找
<> 表示直接到库函数头文件所在目录下搜索

  • 定义变量 double **a[3][4] ,假设为32位平台,则此变量占有内存空间是字节
    A. 12 B. 24 C. 48 D. 96

a是一个二维数组,数组的元素类型为double型的二级指针,但它也是指针,大小为4字节(32位平台),8字节(64位平台),一共有12个元素,12*4=48字节


二、填空题

  • 假定所有变量均已正确说明,执行下述程序段后 z 的值是
x = z = 2,y = 3;
if (x > y)
	z = 1;
else if (x == y)
	z = 0;
else
	z = -1;

答案解析:

此时x=2,y=3,x不大于y并且x不等于y,故来到了最后的else,将-1赋给z,此时z为-1

  • 有如下代码:
char acHello[] = "hello\\0world";
char acNew[15] = {0};
strcpy(acNew,acHello);

则 strlen(acNew) =, sizeof(acHello) =

答案解析:

strlen是求字符串长度的函数,\\0是结束标志,将acHello拷贝进acNew,即acNew数组中是"hello\\0world",\\0是结束标志,故求得strlen(acNew)=5;sizeof(acHello)求acHello的空间大小,注意\\0算是一个字符,我们字符串中相当于有11个字符,对吗?不对,别忘了最后面还有一个\\0,因为一个字符是1字节大小,故一共是12字节的空间大小


三、算法题

题目描述:

编写函数,求第n个斐波那契数列的值(非递归)

斐波那契数列是什么呢?前两个数相加等于下一个数:

0,1,1,2,3,5,8,13,21,34…]

思路:

我们定义a、b、c三个变量,将a初始化为0,b初始化为1,c等于a+b,然后让a=b,b=c,这样进行迭代

代码如下:

int Fibonacci(int n)
{
    int a=0;
    int b=1;
    int c;
    if(n==1)
    {
        return 0;
    }
    if(n==2)
    {
        return 1;
    }
    while(n>2)
    {
        c=a+b;
        a=b;
        b=c;
        n--;
    }
    return c;
}

在写求斐波那契数列代码时,我们写非递归的,因为递归的时间复杂度过高,效率不行

以上是关于19. 关于函数声明,以下不正确的说法是( )的主要内容,如果未能解决你的问题,请参考以下文章

在C#中,关于重载方法的说法正确的是(D)。 (选择一项)

以下说法中,不正确的一项是?

对于Spring的AOP的实现方式,下列选项说法错误的是()。(多选)

关于网络安全防护,以下说法正确的是啥?

关于redis未授权访问说法不正确的是

关于html 5语法下面说法不正确的是啥?