13.C语言(函数、变量作用范围)单元练习五32
c语言试题及答案

C语言试题及答案
试题一:变量和数据类型
1.请简要解释变量在C语言中的作用。
答:变量在C语言中用于存储数据,可以通过变量名来访问和修改存储的数据。
变量的作用是方便程序处理
数据、保存中间结果,以及实现算法和逻辑。
2.C语言中的基本数据类型有哪些?
答:C语言中的基本数据类型包括整型、浮点型、
字符型和空类型(void)。
具体的基本数据类型有:char、int、float、double和void等。
试题二:运算符和表达式
1.请简要解释赋值运算符的作用。
答:赋值运算符(=)用于将右侧表达式的值赋给
左侧操作数(变量)。
它的作用是将一个值存储到一个变
量中,使得该变量可以在程序中进行后续的操作和计算。
2.C语言中的逻辑运算符有哪些?
答:C语言中的逻辑运算符有与运算(&&)、或运算(||)和非运算(!)。
逻辑运算符用于连接多个条件,判断多个条件之间的关系并返回结果。
试题三:条件语句和循环语句
1.请解释C语言中的条件语句if-else的用法,并举例说明。
答:条件语句if-else用于根据给定的条件选择不同的执行路径。
如果条件为真(非零),则执行if语句块中的代码;否则执行else语句块中的代码。
以下是一个简单的例子:
```c int num = 10;
if (num > 0) { printf(。
2023年C语言考试函数知识习题库及答案

2023年C语言考试函数知识习题库及答案(精选)1. 单项选择题(1)C 语言总是从函数开始执行。
AA. mainB. 处于最前的C.处于最后的D. 随机选一个(2)函数在定义时,省略函数类型说明符,则该函数值的类型为。
AA. intB. floatC. longD. double(2)以下函数,真正地没有返回值。
BA. int a(){int a=2;return (a);}B. void b(){printf("c");}C. int a(){int a=2;return a;}D. 以上都是(3)在C 语言中,有关函数的说法,以下正确的是。
AA. 函数可嵌套定义,也可嵌套调用B. 函数可嵌套定义,但不可嵌套调用C. 函数不可嵌套定义,但可嵌套调用D. 函数不可嵌套定义,也不可嵌套调用(4)以下函数调用语句中,含有实参的个数为。
Cfun((2,3),(4,5+6,7));A. 1B. 2C. 5D. 6(5)函数调用可以在。
DA. 函数表达式中B. 函数语句中C. 函数参数中D. 以上都是(6)被调函数返回给主调函数的值称为。
CA. 形参B. 实参C. 返回值D. 参数(7) ,可以不进行函数类型说明。
DA. 被调函数的返回值是整型或字符型时B. 被调函数的定义在主调函数定义之前时C. 在所有函数定义前,已在函数外预先说明了被调函数类型D. 以上都是(8)被调函数通过语句,将值返回给主调函数。
DA. ifB. forC. whileD. return(9)被调函数调用结束后,返回到。
DA.主调函数中该被调函数调用语句处B.主函数中该被调函数调用语句处C.主调函数中该被调函数调用语句的前一语句D.主调函数中该被调函数调用语句的后一语句(10)以下对C语言函数的有关描述中,正确的是。
AA. 在C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B. C函数既可以嵌套定义又可递归调用C. 函数必须有返回值,否则不能使用函数D. C程序中有调用关系的所有函数必须放在同一个源程序文件中(11)C 语言中函数的隐含存储类型是。
完整word版,函数练习题(C语言)带答案

C语言函数练习题一、选择题1. 一个完整的C源程序是【】。
A)要由一个主函数或一个以上的非主函数构成B)由一个且仅由一个主函数和零个以上的非主函数构成C)要由一个主函数和一个以上的非主函数构成D)由一个且只有一个主函数或多个非主函数构成2. 以下关于函数的叙述中正确的是【】。
A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以定义任意一个函数3. 以下关于函数的叙述中不正确的是【】。
A)C程序是函数的集合,包括标准库函数和用户自定义函数B)在C语言程序中,被调用的函数必须在main函数中定义C)在C语言程序中,函数的定义不能嵌套D)在C语言程序中,函数的调用可以嵌套4. 在一个C程序中,【】。
A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】A)float B)longC)int D)double6. 以下关于函数叙述中,错误的是【】。
A)函数未被调用时,系统将不为形参分配内存单元B)实参与形参的个数应相等,且实参与形参的类型必须对应一致C)当形参是变量时,实参可以是常量、变量或表达式D)形参可以是常量、变量或表达式7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是【】。
A)参数的形实结合B)函数返回值C)全局变量D)同名的局部变量8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。
A)实参与其对应的形参共占存储单元B)只有当实参与其对应的形参同名时才共占存储单元C)实参与对应的形参分别占用不同的存储单元D)实参将数据传递给形参后,立即释放原先占用的存储单元9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】。
C语言-函数

C语言(函数,变量作用范围)二1 C语言程序由函数组成,以下说法正确的是( A ).A)主函数可以在其它函数之前,函数内不可以嵌套定义函数B)主函数可以在其它函数之前,函数内可以嵌套定义函数C)主函数必须在其它函数之前,函数内不可以嵌套定义函数D)主函数必须在其它函数之前,函数内可以嵌套定义函数2 以下说法中不正确的是( A )。
A) 主函数main中定义的变量在整个文件或程序中有效B) 不同的函数中可以使用相同名字的变量C) 形式参数是局部变量D) 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效3 下面函数f(double x){printf(“%6d\n”,x);}的类型为( C ).A) 实型B)void 类型C)int 类型 D) A)、B)、C)均不正确4 以下说法中正确的是( C ).A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main函数中定义C)C语言程序总是从main函数开始执行D)C语言程序中,main函数必须放在程序的开始部分5 以下正确的函数定义是( C ).A) double fun(int x,int y);{int z;z=x+y; return z;}B) fun(int x,y){int z; return z;}C) double fun(int x,int y){double z;z=x+y; return z;}D) double fun( x, y){int x,y;double z;z=x+y; return z;}6 定义为void类型的函数,其含义是( A ).A)调用函数后,被调用的函数没有返回值B)调用函数后,被调用的函数不返回C)调用函数后,被调用的函数的返回值为任意的类型D)以上三种说法都是错误的7 设有如下定义:int x=10,y=3,z ;则语句printf("%d\n",z=(x%y,x/y));的输出结果是( D ).A) 1 B)0 C) 4 D)38 在C语言的函数中,( C )。
C语言前面六章习题

第一章C语言基础知识4.一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数2.一个函数由两部分组成,它们是函数体和函数的说明部分。
3.函数体的范围是大括号以内。
(0级)4.函数体一般包括声明部分和执行部分。
(0级)5.C语言是通过输入输出函数来进行输入输出的。
(0级)6.在C语言中,凡在一个标识符后面紧跟着一对圆括弧,就表明它是一个函数。
第二章 C语言程序设计的初步知识一、选择题1.在C 语言中,属于构造类型的是:数组类型,共用体类型,结构体类型4.在C 语言中,属于基本类型的是:整型、实型、字符型11.C语言中不能用来表示整常数的进制是 D 。
(0级)A)十进制B)十六进制C)八进制D)二进制19.10+’a’+1.5-567.345/’b’的结果是 B 型数据。
(0级)BA)long B)double C)int D)unsigned float43.在C语言中,以下合法的字符常量是 C 。
(1级)A)'\084' B)'\x43' C)'0' D)"\0"51. 假设所有变量均为整型, 则表达式( a=5, b=2, a++, a+b ) 的值是 B 。
(02~03第一学期试题)AA)8 B)7C)6 D)554. 若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式:(float)(a+b)/2+(int)x%(int)y的值是B 。
A)2. B)3.C)4. D)5.55. 以下表达式: 2+’a’+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为 D 。
A)int B)float C)char D)double58.已知ch是字符型变量,下面不正确的赋值语句是:。
A)ch=‘\0’ B)ch=‘a+b’C)ch=‘7’+‘9’ D)ch=7+964.若有说明语句:char c= ‘\64’ ;则变量C包含: D 。
c语言的试题及答案

c语言的试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中变量的叙述,正确的是()。
A. 变量在使用前必须先声明B. 变量的类型不能改变C. 变量的值在使用过程中不能改变D. 变量的存储类别不是必须指定的2. C语言中,字符串常量存储在()。
A. 栈区B. 堆区C. 数据区D. 文字常量区3. 下列关于C语言函数的描述,错误的是()。
A. 函数可以没有返回值,也可以有返回值B. 函数的返回值类型必须与定义时的类型一致C. 函数的参数可以是常量,也可以是变量D. 函数可以嵌套定义4. C语言中,用于输入输出的基本格式是()。
A. printf() 和 scanf()B. puts() 和 gets()C. fprintf() 和 fscanf()D. sprintf() 和 sscanf()5. 在C语言中,指针的算术运算规则是()。
A. 指针的增量等于指针所指向的数据类型的大小B. 指针的增量是任意的整数C. 指针不能进行算术运算D. 指针的增量必须为16. C语言中,结构体(struct)可以用来创建()。
A. 函数B. 类C. 联合体D. 集合7. 下列关于C语言中数组的描述,正确的是()。
A. 数组的大小在定义后可以改变B. 数组在定义时必须指定其大小C. 数组的大小是动态分配的D. 数组的索引从1开始8. C语言中,预处理指令#define的主要用途是()。
A. 定义常量B. 定义变量C. 定义函数D. 定义类9. 在C语言中,表示逻辑“与”操作的符号是()。
A. &&B. ||C. ^D. !10. 下列关于C语言中文件操作的描述,错误的是()。
A. 文件操作需要使用文件指针B. 文件的打开需要使用fopen()函数C. 文件的关闭需要使用fclose()函数D. 文件的读写操作必须在打开文件之后进行二、填空题(每题2分,共20分)11. C语言中,整型变量`int`在32位系统上通常占用________位。
C语言全部章节习题集(参考答案)

第一章 C语言概述一、选择题:1、一个C程序的执行是从( A )。
A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、在 C 语言中,每个语句必须以( D )结束。
A. 回车符B. 冒号C. 逗号D. 分号3、C 语言规定:在一个源程序中,main函数的位置( C )。
A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后4、一个C 语言程序是由( B )。
A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成5、下列说法中错误的是( D )。
A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。
A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件二、填空题:1、C 语言只有 32 个关键字和 9 种控制语句。
2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。
3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。
4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函数 printf 完成的。
5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。
6、C 语言的标识符只能由字母、数字和下划线三种字符组成。
第三章数据类型、运算符和表达式一、选择题:1、以下选项中,不正确的 C 语言浮点型常量是( C )。
C语言题库-函数

C语言题库-函数C语言函数练习题一、选择题1.在函数的说明和定义时若没有指出函数的类型,则( A )A: 系统自动地认为函数的类型为整型。
B: 系统自动地认为函数的类型为字符型。
C: 系统自动地认为函数的类型为实型。
D: 编译时会出错。
2.下面正确的函数定义形式是( A )A: double fun(int x,int y) { }B: double fun(int x;int y) { }C: double fun(int x,int y);D: double fun(int x,y);3. 若调用一个函数,且此函数中没有return 语句,则正确的说法是:该函数( D )A: 没有返回值;B: 返回若干个系统默认值;C: 能返回一个用户所希望的函数值;D: 返回一个不确定的值4. C语言允许函数返回值类型缺省定义,此时该函数隐含的返回值类型是( B )A: float 型B: int 型C: long 型D: double 型5. C语言规定,函数返回值的类型是由( D )(二级题)A: return 语句中的表达式类型所决定;B: 调用该函数时的主调函数类型所决定;C: 调用该函数时系统临时决定;D: 在定义该函数时所指定的函数类型所决定6.下面函数调用语句含有实参的个数为( B )func((exp1,exp2),(exp3,exp4,exp5));A: 1B: 2C: 5D: 47. 以下错误的描述是( D )函数的调用可以A: 出现在执行语句中;B: 出现在一个表达式中;C: 为一个函数的实参;D: 作为一个函数的形参;8.若函数的形参为一维数组,则下列说法中正确的是( B )A: 调用函数时的对应实参必为数组名。
B: 形参数组可以不指定大小。
C: 形参数组的元素个数必须等于实参数组的元素个数。
D: 形参数组的元素个数必须多于实参数组的元素个数。
9.下面叙述中正确的是( C )A: 对于用户自己定义的函数,在使用前必须加以说明。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(函数、变量作用范围)单元练习五一.单选1. 已有数组定义int a[3][4];和函数调用语句f(a); ,则在f函数的说明中,对形参数组array 的错误定义方式是______。
A. f(int array[ ][6])B. f(int array[3][ ])C. f(int array[ ][4])D. f(int array[2][5])2. 执行下列程序后, 变量a的值应为______。
int f(int x) {return x+3;}main() {int a=1; while(f(a)<10) a++; return;}A. 11B. 10C. 9D. 73. 下面函数f(double x) {printf(“%6d\n”,x);} 的类型为______。
A. 实型B. void 类型C. int 类型D. A、B、C均不正确4. 用数组名作为函数调用时的实参,实际上传递给形参的是______。
A. 数组的首地址B. 数组的第一个元素的值C. 每一个数组元素D. 数组元素的个数5. 以下说法中正确的是______。
A. 形参是全局变量,其作用范围仅限于函数内部。
B. 形参是全局变量,其作用范围从定义之处到文件结束。
C. 形参是局部变量,其作用范围仅限于函数内部。
D. 形参是局部变量,其作用范围从定义之处到文件结束。
6. 以下程序:#include <stdio.h>f(int x) { return x; }main(){ float a=3.14; a=f(a); printf("%.2f\n",a); return; }执行结果为______。
A. 3B. 3.14C. 3.00D. 07. 在一个源文件中定义的全局变量的作用域为______。
A. 本文件的全部范围。
B. 本程序的全部范围。
C. 本函数的全部范围。
D. 从定义该变量的位置开始至本文件结束。
8. 以下正确的说法是:建立函数的目的之一是______。
A. 提高程序的执行效率B. 提高程序的可读性C. 减少程序的篇幅D. 减少程序文件所占内存9. 有以下程序#include <stdio.h>void sort(int a[],int n){ int i,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]) { t=a[i];a[i]=a[j];a[j]=t;} }main(){ int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10);for(i=0;i<10;i++) printf("%d,",aa[i]);printf("\n"); return; }其输出结果是______。
A. 1,2,3,4,5,6,7,8,9,10,B. 10,9,8,7,6,5,4,3,2,1,C. 9,2,7,4,5,6,3,8,1,10,D. 1,10,3,8,5,6,7,4,9,2,10. 在函数调用过程中,如果函数A调用了函数B,函数B又调用了函数A,则______。
A. 称为函数的直接递归调用B. 称为函数的间接递归调用C. 称为函数的循环调用D. C语言中不允许这样的递归调用11. 下列说法中正确的是______。
A. 调用函数时,实参变量与形参变量可以共用内存单元。
B. 调用函数时,实参的个数、类型和顺序与形参可以不一致。
C. 调用函数时,形参可以是表达式。
D. 调用函数时,将为形参分配内存单元。
12. 执行下列程序后, 变量a的值应为______。
f1(float x) {return x+1.3;}main() { float a; a=f1(2.4); return;}A. 3.7B. 3C. 4D. 不确定13. C语言中,函数返回值的类型是由______决定的。
A. 调用函数时临时B. return语句中的表达式类型C. 调用该函数的主调函数类型D. 定义函数时,所指定的函数类型14. 下列各种存储类型的变量中,必须定义在函数体外的是______。
A. 自动变量类型B. 寄存器类型变量C. 内部静态类型变量D. 外部静态变量15. 关于函数的调用,以下错误的描述是______。
A. 出现在执行语句中B. 出现在一个表达式中C. 作为一个函数的实参D. 作为一个函数的形参16. 凡在函数中未指明存储类别的变量,其隐含的存储类别为______。
A. registerB. autoC. staticD.extern17. 若有以下函数定义,则在主函数中正确的调用语句是______。
void fun(int array[][5]) { ………..}main() { int a[3][5], b; …….. }A. fun(a[3][5]);B. b=fun(a);C. fun(a);D. fun(a)18. 以下函数f返回值是______。
f(int x){return x;}A. void类型B. int类型C. float类型D. 无法确定返回值类型19. 定义为void类型的函数,其含义是______。
A. 调用函数后,被调用的函数没有返回值。
B. 调用函数后,被调用的函数不返回。
C. 调用函数后,被调用的函数的返回值为任意的类型。
D. 以上三种说法都是错误的。
20. 当全局变量与函数内部的局部变量同名时,则在函数内部______。
A. 全局变量有效B. 局部变量有效C. 全局变量与局部变量都有效D. 全局变量与局部变量都无效二.判断1. 在函数体中:auto int b,c=3;与int b,c=3; 两者等价。
2. 函数调用可以作为一个函数的实参。
3. 数组名做函数的参数时,可以只在主调函数中定义数组,被调用函数只需要确定名称就可以了。
4. 以数组名作为参数时,数据传送方向是“双向的”,即形参值可以传回给实参。
5. 定义函数时,形参的类型说明可放在函数体内。
6. 在同一源文件中,外部变量与局部变量同名时,则在局部变量的作用范围内,外部变量不起作用。
7. 函数的嵌套调用就是在调用一个函数的过程中,又调用另一个函数。
8. 下面的程序有一个整型输出值。
main() {int a ; a=pp(); printf("%d",a); } void pp() { }9. 除了利用实际参数和形式参数在各函数之间传递数据外,利用全局变量,也可以在各函数间传递数据。
.10. 在C函数中,当以数组名作为参数时,对形参变量的操作不会影响到调用函数中的实参变量,即形参值不能传回给实参。
11. 局部静态变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放。
12. 不同函数中定义的变量,其作用范围都限制在各自的函数内,在内存中占据的存储单元也各不相同。
13. 若调用C标准库函数,调用前必须重新定义。
14. C语言中,void类型的函数不用在主调函数中声明。
15. 在C语言中,最好使用全局变量。
三.填空1. 下面程序的输出结果是___________。
#include <stdio.h>#define MAX 3int a[MAX];main( ) { fun1( ); fun2(a); printf("\n"); return;}fun1( ){ int k , t=0;for(k=0; k<MAX; k++,t++) a[k]=t+t; }fun2(int b[]){ int k;for(k=0;k<MAX;k++)printf("%d",b[k]); }2. #include<stdio.h>fun(int a){ auto int b=0;static int c=3;b=b+1;c=c+1;return (a+b+c); }main(){ int a=2,i;for(i=0;i<3;i++)printf("%d ",fun(a));return; }运行结果为___________。
3. 从存储类别看,C语言中没有给出存储类别的局部变量一律隐含定义为___________类别。
4. 下列程序的运行结果是___________。
#include <stdio.h>int d=1;fun(int p){ int d=5; d+=p++; printf("%d,",d); }main( ){ int a=3; fun(a); d+=a++; printf("%d",d); return; }5. C语言中不能被别的函数调用的函数是___________。
6. 以下程序执行的结果是___________。
#include <stdio.h>int x=2;main(){ func(x); printf("x=%d\n",x); return; }func(int x) {x=4;}7. 函数fun的功能是计算x的n次方double fun(double x,int n){ int i; double y=1;for(i=1;i<=n;i++) y=y*x;return y; }主函数中已经正确定义变量m,a,b并赋值,并调用fun函数计算:m=a4+b4-(a+b)3。
实现这一计算的函数调用语句为___________。
8. 下列程序的输出结果是___________。
#include <stdio.h>int a=0,b=0;fun(){ int a=5; printf("%d,%d, ",a,b); }main(){ b=5; fun(); printf("%d,%d, ",a,b); return; }9. 在C语言中,如果不对函数作类型说明,则函数的隐含类型为_________。
10. 以下程序运行结果为___________。
#include <stdio.h>void fun (int x,int y){ int t;if(x>y) {t=x;x=y;y=t} }main(){ int a=4,b=7,c=5;fun(a,b);fun(a,c);fun(b,c);printf("%d,%d,%d\n",a,b,c); return; }11. 下列程序的运行结果是___________。