C语言写程序时可以先声明再填写函数吗?

身份认证 购VIP最低享 7 折!

1.掌握C语言函数的定义、声明以及函数的调用方法2.了解主调函数和被调函数之间的参数传递方式3.熟练掌握数组作为函数参数的用法

微信小程序商城源码合集

内容简介:C语言函数的定义、声明以及函数的调用方法.rar C语言函数的定义、声明以及函数的调用方法 C语言函数的定义、声明以及函数的调用方法 C语言函数的定义、声明以及函数的调用方法.docx C语言函数的定义、声明以及函数的调用方法.txt

资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!

C 语言允许用户自己指定这样一种数据结构,它由不同类型的数据组合成一个整体,以便引用,这些组合在一个整体中的数据是互相联系的,这样的数据结构称为结构体,它相当于其它高级语言中记录。

声明一个结构休类型的一般形式如下:

结构体名,用作结构体类型的标志,它又称 结构体标记,大括号内是该结构体中的各个成员,由它们组成一个结构体,对各成员都应进行类型声明如:

也可以成员列表称为域表,第一个成员也称为结构体中的一个域。成员名定名规则写变量名同。

2、定义结构体类型变量的方法

前面只是指定了一个结构体类型,它相当于一个模型,但其中并无具体数据,系统对之也不分配实际内存单元,为了能在程序中使用结构类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据,可以采取以下3种方法定义结构体类型变量。

(1)先声明结构体类型再定义变量名

如上面已定义了一个结构体类型 struct student,可以用它来定义变量。如:

在定义了结构体变量后,系统会为之分配内存单元。例如 student1 和 student2 在内存中各占 59 个字节。

应当注意,将一个变量定义为标准类型(基本数据类型)与定义为结构体类型不同之处在于后者不仅要求指定变量为结构体类型,而且要求指定为某一特定的结构体类型(例如 struct student 类型),因为可以定义出许多种具体的结构体类型。而在定义变量为整形时,只需指定为 int 型即可。

(2)在声明类型的同时定义变量

它的作用与第一种方法相同,即定义了两个 struct student 类型的变量 student1, student2 这种形式的定义的一般形式为

(3)直接定义结构类型变量

关于结构体类型,有几点要说明:

    参考书籍:谭浩强老师《C程序设计》一书中关于结构体类型的章节。

计算机二级c语言试题及答案

  计算机二级考试是全国计算机等级考试(National Computer Rank Examination,简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。计算机二级考试采用全国统一命题、统一考试的形式。那么计算机二级c语言会怎么考?以下仅供参考!

  1.(A )是构成C语言程序的基本单位。

  2.C语言程序从 C 开始执行。

  A、 程序中第一条可执行语句

  B、 程序中第一个函数

  C、 程序中的main函数

  D、包含文件中的第一个函数

  3、以下说法中正确的是( C )。

  A、C语言程序总是从第一个定义的函数开始执行

  B、在C语言程序中,要调用的函数必须在main( )函数中定义

  C、C语言程序总是从main( )函数开始执行

  D、C语言程序中的main( )函数必须放在程序的开始部分

  4.下列关于C语言的说法错误的是( B ) 。

  A、 C程序的工作过程是编辑、编译、连接、运行

  B、 C语言不区分大小写。

  C、 C程序的三种基本结构是顺序、选择、循环

  D、C程序从main函数开始执行

  5.下列正确的标识符是(C )。

  5~8题为相同类型题

  考点:标识符的命名规则

  只能由字母、数字、下划线构成

  数字不能作为标识符的开头

  关键字不能作为标识符

  选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)

  6.下列C语言用户标识符中合法的是(B )。

  选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);

  7.下列四组选项中,正确的C语言标识符是( C )。

  选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)

  8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。

  选项B中的“”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)

  9.C语言中的简单数据类型包括(D )。

  A、整型、实型、逻辑型

  B、整型、实型、逻辑型、字符型

  C、整型、字符型、逻辑型

  D、整型、实型、字符型

  10.在C语言程序中,表达式5%2的结果是 C 。

  /为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2

  表达式1?表达式2:表达式3

  若表达式1成立, 则选择计算表达式2,并表达式2的值作为整个大表达式的值;

  若表达式1不成立,则选择计算表达式3,并将表达式3的.值作为整个大表达式的值

  13.C语言中,关系表达式和逻辑表达式的值是( B ) 。

  D、‘T’或’F’

  14~16题为同一类型

  (1)相同数据类型的元素进行数学运算(+、-、*、/)得到结果还保持原数据类型。

  (2)不同数据类型的元素进行数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。

  选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.

  选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0/3=3.666666

  选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同

  选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算3..5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为4

  15.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( B )

  “(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为1

  17. 以下对一维数组a的正确说明是: D

  详见教材P143~144,一维数组的定义、初始化

  类型符 数组名 [常量表达式]

  类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式是指数组的长度(数组中包含元素的个数),其值只能是整数,不可以是变量,而且从1开始计数。

  选项A,常量表达式只能放在中括号 [ ]中

  选项B,只有在对数组初始化(即赋值)的时候才可以省略数组的长度,B中并未对a进行初始化。

  选项C,常量表达式不能为变量。

  18.以下能对一维数组a进行初始化的语句是:( C )

  详见教材P145,一维数组的定义、初始化

  选项B,D,常量表达式只能放在中括号 [ ]中

  选项A,数组可以看做是若干个相同数据类型元素的有序集合,因此以集合的形式对其初始化,使用{ }对其初始化,选项A用了().

  19.在C语言中对一维整型数组的正确定义为 D 。

  详见教材P144,数组元素的引用

  引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数

  int a[10]表示定义了一个包含10个整型数据的数组a,数组元素的逻辑地址下标范围为0~9,即a[0] 表示组中第1个元素; a[1] 表示组中第2个元素; a[2] 表示组中第3个元素; ......;a[9] 表示组中第10个元素.

  选项A,超过了数组a的逻辑地址下标范围;

  选项B,逻辑地址下标只能为整数

  选项C,逻辑地址下标只能放在[ ]中

  a[9]对应下面数组中的元素为6. 因此a[9]即为6

  二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行

  23.对二维数组的正确定义是(C )

  详见教材P149~152,二维数组的定义、初始化

  类型符 数组名 [常量表达式][常量表达式]

  二维数组可以看做是矩阵

  类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量,而且从1开始计数。

  一维数组初始化时可以省略数组长度

  二维数组初始化时可以省略行数,但不能省略列数

  选项A,B,都省略了列数

  选项D,不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的[]中

  详见教材P150,数组元素的引用

  数组名[下标] [下标]

  引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数

  第一个[下标]表示行逻辑地址下标,第二个[下标]表示列逻辑地址下标。

  本题图示详见P149图6.7

  因此a的行逻辑地址范围0~2;a的列逻辑地址范围0~3;

  选项A,列逻辑地址下标超过范围

  选项B,D,的引用形式不正确。

  25.C语言中函数返回值的类型是由 A 决定的.

  A、函数定义时指定的类型

  B、 return语句中的表达式类型

  C、 调用该函数时的实参的数据类型

  D、形参的数据类型

  26. 在C语言中,函数的数据类型是指(A )

  A、 函数返回值的数据类型

  B、 函数形参的数据类型

  C、 调用该函数时的实参的数据类型

  D、任意指定的数据类型

  27.在函数调用时,以下说法正确的是( B )

  A、函数调用后必须带回返回值

  B、实际参数和形式参数可以同名

  C、函数间的数据传递不可以使用全局变量

  D、主调函数和被调函数总是在同一个文件里

  28. 在C语言中,表示静态存储类别的关键字是: ( C )

  29.未指定存储类别的变量,其隐含的存储类别为(A )。

  30. 若有以下说明语句:

  则下面的叙述不正确的是: (D )

  A、 struct是结构体类型的关键字

  D、 stu是用户定义的结构体类型名

  31.若有以下说明语句:

  则下面的叙述不正确的是__C___.

  A、 struct是声明结构体类型时用的关键字

  B、 struct date 是用户定义的结构体类型名

  C、 brithday是用户定义的结构体类型名

  D、year,day 都是结构体成员名

  32. 以下对结构变量stul中成员age的非法引用是 B

  33.设有如下定义:

  若要使P指向data中的a域,正确的赋值语句是 C

  34.设有以下说明语句:

  则下面叙述中错误的是( D )。

  A、struct是结构类型的关键字

  B、struct stu是用户定义的结构类型

  C、a和b都是结构成员名

  D、stutype是用户定义的结构体变量名

  A、p是指向一维数组的指针

  B、p是指向函数的指针,该函数返回一int型数据

  C、p是指向int型数据的指针 // 指针的定义教材P223

  D、p是函数名,该函数返回一指向int型数据的指针

  36.下列不正确的定义是( A )。

  选项A先定义一个整型指针变量p,然后将变量i的地址赋给p。然而此时还未定义变量i因此编译器无法获得变量i的地址。(A与C对比,选项C先定义变量i,则在内存中为i分配空间,因此i在内存空间的地址就可以确定了;然后再定义p,此时可以为p赋i的地址,C正确)

  p,q同为整型指针变量,二者里面仅能存放整型变量的地址。

  选项A,q中为地址,因此可将此地址赋给p

  选项B,*p表示p所指向对象n的内容,即一个整数;*q表示q所指向对象的内容,由于在定义q时为其初始化,将p中n的地址给q,因此p中存放n的地址,*q表示q所指向对象n的内容.因此*p=*q 相当于 n=n;

  选项D,p中只能存放地址,不能将n中的整数值赋给p

  38.有语句:int a[10],;则 B 是对指针变量p的正确定义和初始化。

  选项A,a是数组名,不是指针变量名,因此不可用*标注数组名a

  选项C,a是数组名,数组名就是地址,无需再用地址符号。而且在定义指针变量p时,应在变量名前加*,标明p是指针变量

  选项D,a是数组名,数组名就是地址,无需再用地址符号。

  首先定义一个整型数组a,a的长度为5,然后定义一个指针变量p,并同时对p进行初始化,将数组a的地址赋给p。因此此时p中存放的数组a的首地址,即数组中第一个元素a[0]的地址。

  对于数组元素下标的引用(详见p144), 一般形式 数组名[下标] 其中下标为逻辑地址下标,从0开始计数,方括号中的下标可以是变量,可以是表达式,但结果一定要是整数。

  选项A,p中存放的是地址,不是整数,不能做数组元素的下标

  选项B,a是数组名,数组名就是地址,不是整数,不能做数组元素的下标

  选项C,(重点!!!详见p231~234) p+2表示指向同一数组中的下两个元素的地址,当前p指向a[0],则p+2表示a[2]的地址,因此*(p+2)表示a[2]的内容

  40. 有如下程序

  则数值为9的表达式是 B

  首先定义一个整型数组a,a的长度为5,然后定义一个指针变量P,并同时对P进行初始化,将数组a的地址赋给P。因此此时P中存放的数组a的首地址,即数组中第一个元素a[0]的地址。

  数组中9对应的是a[8], 选项B,P+8表示数组中后8个元素的地址,即a[8]的地址。*(P+8)则表示该地址内所存放的内容,即a[8]的值。

  选项D,P+8表示数组中后8个元素的地址,即a[8]的地址,而非a[8]中的值。

【计算机二级c语言试题及答案】相关文章:

我要回帖

更多关于 C语言如何声明 的文章

 

随机推荐