day 13 函数指针类型


(1).有以下程序:

 则正确的选项是【B】

(A).7 4

(B).4 10

(C).8 8

(D)10 10

分析:主要考求字符串的长度,strlen是专门求字符串长度的函数,但不包含‘\0’在内。

   sizeof是计算变量、数组、类型的大小,计算数组时包含‘\0’.

(2).下面是有关C语言字符数组的描述,其中错误的是【D】

(A).不可以用赋值语句给字符数组名赋值字符串

(B).可以用输入语句把字符串整体输入给字符数组

(C).字符数组中的内容不一定是字符串

(D).字符数组只能存放字符串

(3).有以下程序:

void fun(int n,char *s){……}

则下午对函数指针的定义和赋值均正确的是【D】

(A).void (*pf)();pf=fun;

(B).void *pf();pf=fun;

(C).void ()(*pf);pf=fun;

(D).void (*pf)(int,char);pf=&fun;

分析:void (*)()===>函数指针类型   void (*p)(intx,inty)=print===>void(*p)(形参)=(函数名)

void (*pf)();pf=fun;错误:*pf指向的是没有形参的函数

void *pf();pf=fun;错误:pf不是一个函数指针,不符合函数指针的格式。是一个函数声明

void ()(*pf);pf=fun;错误:指针放在了形参的位置上。

 以上两个函数指针的程序都可以实现

(4).有以下程序:

 程序运行后的输出结构是【C】

(A).7

(B).8

(C).9

(D).10

分析;static是静态函数,只初始化一次。s=f(a)第一次进入后,n=n+a===》返回输出s=4

第二次进入,s=s+f(a),n=n+a===》n=3+2=5

因此s=9

(5).下面结构体的定义语句中,错误的是【B】

(A).struct ord{          (B).struct ord{

  int x;                int x;

  int y;                int y;

  int z;                int z;

};struct ord a;            }struct ord a;

(C).struct ord{          (D).struct {

  int x;              int x;

  int y;              int y;

  int z;              int z;

}a;                }a;

分析:B错误,缺失分号

A正确:先定义结构体类型,再定义结构体变量

C正确:定义结构体类型时,同时定义一个结构体变量

D正确:使用匿名结构体定义方式

(6).在E-R图中,用来表示实体联系的图形是【C】

(A).椭圆形

(B).矩形

(C).菱形

(D).三角形

E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。 它是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。 用“矩形框”表示实体型,矩形框内写明实体名称 用“椭圆图框”或圆角矩形表示实体的属性 用”菱形框“表示实体型之间的联系成因,在菱形框内写明联系名 (7).有以下程序: N行N列的矩阵对角线转换:

 但发现有一个问题:就是数组中必须是已经知道并且输入的数。如果是随机数的会出现bug【但结果是对的】(这个问题也困扰了我)

 

 经过逐语句调试,生成的随机数确实存到了数组内。但还是出现调试错误。

(8).有以下程序: