C语言第八章函数部分复习题
c语言关于函数的试题及答案
c语言关于函数的试题及答案1. 题目:以下哪个选项是正确的C语言函数定义?- A. int function(int a, int b) { return a + b; } - B. int function(int a, int b) { return a - b; } - C. int function(int a, int b) { return a * b; } - D. All of the above答案:D2. 题目:在C语言中,函数的返回值类型是什么?- A. void- B. int- C. float- D. char答案:A3. 题目:以下哪个选项是C语言中有效的函数声明?- A. int add(int a, int b);- B. int add(int, int);- C. int add(int a; int b);- D. int add(int a, int b) {}答案:A4. 题目:在C语言中,函数的参数默认传递方式是什么? - A. 值传递- B. 引用传递- C. 指针传递- D. 以上都不是答案:A5. 题目:以下哪个选项是C语言中正确的递归函数定义?- A. int fact(int n) { if (n == 0) return 1; else return n * fact(n - 1); }- B. int fact(int n) { if (n == 0) return 1; else return n * fact(n + 1); }- C. int fact(int n) { if (n == 1) return 1; else return n * fact(n - 1); }- D. All of the above答案:A6. 题目:在C语言中,如何定义一个接受任意数量参数的函数?- A. 使用不定参数列表- B. 使用数组作为参数- C. 使用指针作为参数- D. 使用结构体作为参数答案:A7. 题目:以下哪个选项是C语言中正确的函数指针声明?- A. int (*func)(int);- B. int *func(int);- C. int func(int)[];- D. int (*func)(int, int);答案:A8. 题目:在C语言中,如果函数返回一个结构体,那么函数的返回类型是什么?- A. struct- B. void- C. int- D. char答案:A9. 题目:以下哪个选项是C语言中正确的函数重载声明?- A. void add(int a, int b);- B. int add(int a, int b);- C. void add(int a, int b, int c);- D. All of the above答案:D10. 题目:在C语言中,如何定义一个接受可变数量参数的函数?- A. 使用不定参数列表- B. 使用数组作为参数- C. 使用指针作为参数- D. 使用结构体作为参数答案:A。
C语言函数习题
.习题一、选择题1、以下只有在使用时才为该类型变量分配内存的存储类说明是----____B______。
A.auto 和staticB.auto和registerC.register和staticD.extern和register2、下述程序的输出结果是____A____。
long fun(int n){ long s;if(n==1|| n==2)s=2;else s=n-fun(n-1);return s;}main(){ printf(“%ld\n”,fun(3));}A.1B.2C.3D.43、C语言中形参的默认存储类别是____A________。
A.自动(auto)B.静态(static)C.寄存器(register)D.外部(extern)4、下面对函数嵌套的叙述中,正确的是_____B_____。
A.函数定义可以嵌套,但函数调用不能嵌套B.函数定义不可以嵌套,但函数调用可以嵌套14/ 1.C.函数定义和函数调用均不能嵌套D.函数定义和函数调用均可以嵌套5、下面关于形参和实参的说法中,正确的是____B_____。
A.形参是虚设的,所以它始终不占存储单元B.实参与它所对应的形参占用不同的存储单元C.实参与它所对应的形参占用同一个存储单元D.实参与它所对应的形参同名时可占用同一个存储单元6、关于全局变量的作用范围,下列说法正确的是____D_______。
A.本程序的全部范围B.离定义该变量的位置最接近的函数C.函数内部范围D.从定义该变量的位置开始到本文件结束7、调用一个函数,此函数中没有return语句,下列说法正确的是:该函数____D____。
A.没有返回值B.返回若干个系统默认值C.能返回一个用户所希望的函数值D.返回一个不确定的值8、以下函数调用语句中含有____B_____个实参。
fun ((exp1,exp2),(exp3,exp4,exp5));A.1B.2C.4D.59、以下程序的输出结果是__C______。
c语言复习题
第16题(1.0分)题号:323
设x的值为15,n的值为2,则表达式x%=(n+3)运算后x的值是【0】.
第17题(1.0分)题号:1565
若s是int型变量,且s=6,则下面表达式的值是【1】.
s%2+(s+1)%2
第18题(1.0分)题号:27
第26题(1.0分)题号:341
定义int a[2][3];表示数组a中的元素个数是【6】个.
第27题(1.0分)题号:1285
输入整型变量a的值.
int a; scanf("%d",【&a】);
第28题(1.0分)题号:340
C语言中,二维数组在内存中的存放方式为按【行】优先存放.
第29题(1.0分)题号:1288
表达式i++相当于表达式【i=i+1或i=1+i】.
43.若有以下数组a,数组元素:a[0]~a[9],其值为
9 4 12 8 2 10 7 5 1 3
该数组可用的最大下标值是【9】.
二、单项选择共57题(共计57分)
第1题(1.0分)题号:492
下列程序段的输出结果为()。
float x=213.82631;
一、填空共43题(共计43分)
第1题(1.0分)题号:1168
设a,b,t为整型变量,初值为a=7,b=9,执行完语句t=(a>b)?a:b后,t的值是【9】.
第2题(1.0分)题号:1125
程序段int k=10; while(k=0) k=k-1循环体语句执行【0】次.
第3题(1.0分)题号:1179
第7题(1.0分)题号:343
C语言程序设计-第八章函数练习题【附答案】
第八章 函数-习题第八章 函数8.1 选择题【题8.1】以下正确的说法是 。
建立函数的目的之一是A)提高程序的执行效率B)提高程序的可读性C)减少程序的篇幅D)减少程序文件所占内存【题8.2】以下正确的说法是 。
A)用户若需调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义C)系统根本不允许用户重新定义标准库函数D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调【题8.3】以下正确的函数定义形式是 。
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);【题8.4】以下正确的函数形式是 。
A)double fun(int x,int y){ z=x+y; return z; }B)fun(int x,y){ int z; return z; }C)fun(x,y){ int x,y; double z; z=x+y; return z; }D)double fun(int x,int y){ double z; z=x+y; return z; }【题8.5】以下正确的说法是 。
在C语言中A)实参和与其对应的形参各占用独立的存储单元B)实参和与其对应的形参共占用一个存储单元C)只有当实参和与其对应的形参同名时才共占用存储单元D)形参是虚拟的,不占用存储单元【题8.6】若调用一个函数,且此函数中没有return语句,则正确的说法是 。
该函数A)没有返回值B)返回若干个系统默认值C)能返回一个用户所希望的函数值D)返回一个不确定的值【题8.7】以下不正确的说法是 。
C语言规定A)实参可以是常量、变量或表达式B)形参可以是常量、变量或表达式C)实参可以为任意类型D)形参应与其对应的实参类型一致【题8.8】以下正确的说法是 。
c语言中函数试题及答案
c语言中函数试题及答案一、选择题1. 在C语言中,以下哪个关键字用于定义函数?A. classB. functionC. defD. int答案:D2. 函数的返回类型是什么?A. 函数执行后返回的数据类型B. 函数的名称C. 函数的参数D. 函数的调用方式答案:A3. 在C语言中,以下哪个函数用于计算两个整数的和?A. strcatB. strcmpC. strcatD. sum答案:D(假设sum是一个自定义的函数)二、填空题1. 在C语言中,定义函数的关键字是________。
答案:int2. 函数的返回值是通过________关键字返回的。
答案:return3. 函数的参数列表定义了函数调用时需要传递的________。
答案:值三、简答题1. 请简述C语言中函数的定义格式。
答案:在C语言中,函数的定义格式通常如下:```returnType functionName(parameterList) {// function body}```其中`returnType`是函数的返回类型,`functionName`是函数的名称,`parameterList`是函数的参数列表,`function body`是函数的执行体。
2. 请解释C语言中函数的调用过程。
答案:C语言中函数的调用过程包括以下步骤:- 调用者准备参数并调用函数。
- 函数接收参数并执行函数体。
- 函数计算结果并通过return语句返回。
- 调用者接收返回值并继续执行。
四、编程题1. 编写一个C语言函数,计算两个整数的和并返回结果。
答案:```cint sum(int a, int b) {return a + b;}```调用示例:```cint result = sum(5, 10);printf("The sum is %d", result); ```。
(完整版)C语言各章节复习题(带答案)
一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
全国计算机二级考试C语言(最全复习资料)
第一部分 C语言知识复习资料第一章C语言基本知识【考点1】C程序用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”。
源程序经编译后生成后缀名为“.obj”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。
C语言有三种基本结构:顺序结构、选择结构、循环结构。
【考点2】main函数又称主函数,是C程序的入口。
main后面跟一对小括号和一对花括号,花括号括起来的部分称为main 函数的函数体。
一个C程序从main函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。
每一个程序有且仅有一个main函数,其他函数都是为main函数服务的。
【考点3】存储形式计算机在电脑中保存数据是采用二进制形式,由0或1构成的二进制称为位(bit),八个位构成一个字节(Byte),1个Byte=8个bit。
二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、八进制、十六进制采用除法。
数据的存放位置就是它的地址。
【考点4】注释是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。
【考点5】书写格式每条语句的后面必须有一个分号,分号是语句的一部分。
一行内可写多条语句,一个语句可写在多行上。
【考点6】标识符是标识名字的有效字符序列,可以理解为C程序中的单词。
标识符的命名规则是:(1)标识符只能由字母、数字和下划线组成,字母区分大小写。
(2)标识符的第一个字符必须是字母或下划线,不能为数字。
C语言标识符分如下3类(1)关键字。
它们在程序中有固定的含义,不能另作他用。
如int、for、switch等。
(2)预定义标识符。
预先定义并具有特定含义的标识符。
如define、include等。
(3)用户标识符。
用户根据需要定义的标识符,符合命名规则且不与关键字相同。
【考点7】常量与变量常量是指在程序运行过程中,其值不能改变的量。
C语言函数题库及答案
第六部分函数一、单项选择题1.C语言中的函数返回值的类型是由(D)决定A.return语句中的表达式B.调用函数的主调函数C.调用函数时临时D.定义函数时所指定的函数类型2.下面不正确的描述是(B)。
A.调用函数时,实参可以是表达式B.调用函数时,实参和形参可以共用内存单元C.调用函数时,将形参分配内存单元D.调用函数时,实参与形参的类型必须一致3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是(D)A.地址传递B.值传递C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式4.下面的函数调用语句中含有(A)个实参inta,b,c;intsum(intx1,intx2);……total=sum((a,b),c);A.2B.3C.4 D.55.在C语言中(C)A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义和调用均不可以嵌套C.函数的定义不可以嵌套,但是函数的调用可以嵌套D.函数的定义和调用均可以嵌套6.关于C语言中的return语句正确的是(C)A.只能在主函数中出现B.在每个函数中都必须出现C.可以在一个函数中出现多次D.只能在除主函数之外的函数中出现7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D)A.inta(floatx[],intn)B.inta(float*x,intn)C.inta(floatx[10],intn)D.inta(floatx,intn)8.在C语言中,函数的数据类型是指(A)A.函数返回值的数据类型B.函数形参的数据类型C.调用该函数时的实参的数据类型D.任意指定的数据类型9.已知如下定义的函数:fun1(a){printf("\n%d",a);}则该函数的数据类型是(C)A.与参数a的类型相同B.void型C.整型D.无法确定10.定义一个函数实现交换x和y的值,并将结果正确返回。
C语言程序设计:函数的定义及调用单元测试与答案
一、单选题1、下面对函数的叙述,正确的是( )。
A.函数的返回值是通过return语句获得的B.函数中没有return语句,说明不带回值C.函数不能嵌套定义D.函数中无论是否有return语句,都能返回正确值正确答案:C2、下面叙述中错误的是( )。
A.一般来说,函数的形参和实参的类型要一致B.若函数的定义出现在主调函数之前,则可以不必再加说明C.函数的形参和实参必须要使用相同名字的变量D.函数的形式参数,在函数未被调用时不被分配存储空间正确答案:C3、若函数的调用形式如下:f((x1,x2,x3),(y1,y2))则函数形参个数是()。
A.4B.2C.5D.3正确答案:B4、下列程序段中,有错误的是()。
A. int f(){int x;scanf("%d", &x);return x++, x+5;}B. int f2(int x){return (x>1?printf("Y"): putchar('N'));}C. void change(int x, int y){int t;t=x; x=y; y=t;}D.int main(){float a=2.6 , b;b=max(2.1, 3.6)=a++;printf("%f", a+b);}正确答案:D5、关于函数正确的说法是()。
A.主函数可以写在其他函数之后,函数内不可以嵌套定义函数B.主函数必须写在其他函数之前,函数内可以嵌套定义函数C.主函数必须在写其他函数之后,函数内可以嵌套定义函数D.主函数必须写在其他函数之前,函数内不可以嵌套定义函数正确答案:A6、关于函数原型,叙述错误的是()。
A.函数可以不必进行声明,可以放在程序的任意位置B.当自定义函数被放在了主调函数的后面,就需要在函数调用之前,加上函数的原型声明C.被调用函数在主调函数之前定义,可以省略函数原型声明D.所有函数定义放在main函数之前,可以省略原型声明正确答案:A二、判断题1、函数可以根据需要通过参数与调用函数之间进行数据传递。
C语言复习题(精简)
序号 题目 A B C 定义int a[10]={6,7,8, 9,10};是将这5 个初值依次赋 给a[0]至a[4] 函数的实参和 形参可以是相 同的名字 D 如有定义char a[]="student" ; 则数组a的长 度为7 在main()中定 义的变量都可 以在其它被调 函数中直接使 用 将串str2连接 到串str1中后 再将串str1复 制到串str3中 main函数是由 系统调用的 函数中定义的 局部变量的作 用域在函数内 部 在不同的函数 中可以使用相 同名字的变量 外部变量与局 部变量的作用 范围不同 E 正确 答案 若有定义 double x[3][5]; 则x ABCE 数组中行下标 的下限为0,列 小标的上限为4 外部类型的变 量只能定义一 次,但可在不 BCE 同地方声明多 次 将串str2连接 到串str1中后 ABDE 再将串str3复 制到串str1中 若要通过函数 参数带回多个 返回值,则应 ACDE 使用按地址传 送的参数结合 函数必须有返 回值,否则不 能使用函数 如果形参与实 参的类型顺序 不一致,以实 参顺序为准 在C的函数中, 最好使用全局 变量 ABD
以上都不对
AD
以上都不对 put( )
BCD ABD
数组名实质上 是数组的首地 以下关于数组的描述中,正确 15 址,是一个常 的有: 量,不能对其 赋值
一个一维数 组,它的每一 个元素也是类 型相同的一维 数组时,便构 一个一维数 若有说 如有定义int 组,它的每一 明:static int 以下关于数组的描述中,错误 a[2][3];则数 16 个元素也是类 a[3][3]; 那么 的有: 组a的最后一个 型相同的一维 数组a中每个元 元素为a[1][2] 数组时,便构 素初值为0 因为二维数组a 中初值的个数 不能被第二维 若有说明:int 数组a的每个元 二维数组a的第 大小的值整 17 a[][4]={0,0};,则下面正确 素都可得到初 一维大小为1 除,则第一维 的叙述有: 值0 的大小等于所 得商数再加1, 故数组a的行数 有定义char 若有定义char a[3]; 则定义 以下关于数组的描述中,正确 a[]="hello"; 18 了a[1]、a[2] 的有: ,则数组a的长 、a[3]三个数 度为6 组元素 若有定义char 在C语言中,允 a[20];,则可 以下关于数组的描述中,正确 许用字符串来 19 以通过a="I am 的有: 直接初始化字 a boy";给a赋 符数组 值 若有char 字符数组的输 a[10]={1,2,3} 以下关于数组的描述中,错误 20 出不能一次性 ;,则是将3个 的有: 的整体输出 初值依次赋给 a[0]至a[2] char char str[]={'h','e 21 下列语句中,正确的有: str[5]="hello ','l','l','o' "; ,'\0'}; 定义了一维int型数组a[10] 22 a[0]=1; a[10]=2; 后,下面正确的引用有: 数组名实质上 在定义数组 是数组的首地 以下关于数组的描述中,正确 时,有时可以 23 址,是一个变 的有: 将该数组的维 量地址,可对 数省略 其进行赋值 设有以下说明语句 struct stu struct 是结构 struct stu 是 { int a;float b; 24 体类型的关键 用户定义的结 }stutype; 字 构体类型 则以下叙述正确的是: 多选题 构成字符数组 的各个元素必 须是字符类型 的数据 若有char a[10]={1,2,3} ;,则是将3个 初值依次赋给 a[1]至a[3] 构成字符数组 的各个元素可 以是不同数据 类型的元素
智慧树知到程序设计基础(C语言)测试第八章单元测试参考答案
智慧树知到程序设计基础(C语言)测试第八章单元测试参考答案•总题数: 101【判断题】 (10分)有如下函数调用语句:fun(r1,r2+r3,(r4,r5));该函数调用语句中,含有的实参个数是3个。
A.错B.对正确本题总得分10分2【判断题】 (10分)函数可以嵌套定义,但不能嵌套调用。
A.对B.错正确本题总得分10分3【判断题】 (10分)mian函数可以自己调用自己。
A.对B.错正确本题总得分10分4【单选题】 (5分)以下正确的函数定义是()。
A.fun(int x,y){ int z; return int z; }B.double fun(int x,int y){ z=x+y; return z; }C.double fun(int x,int y){ double z;z=x+y;return z; }D.fun(x,y){int x,y; z=x+y; retun z;}正确本题总得分5分5【单选题】 (10分)在C语言函数中,下面说法正确的是()。
A.一个函数中只能有一个return语句。
B.一个return语句可以返回多个值。
C.一个函数中可以有多个return语句,但是最多执行其中一个return语句。
D.一个函数中可以有多个return语句,可能多个return语句全部执行正确本题总得分10分6【单选题】 (10分)在C语言函数中,以下说法正确的是()。
A.return后边的值不能为表达式B.定义函数时,形参的类型说明可以放在函数体内。
C.如果形参与实参的类型不一致以实参类型为准D.如果函数值的类型与return返回值类型不一致,以函数值类型为准正确本题总得分10分7【单选题】 (10分)在C语言程序中,以下正确的描述是()。
A.函数的定义和调用均可以嵌套B.函数的定义和函数的调用均不可以嵌套C.函数的定义可以嵌套,但函数的调用不可以嵌套D.函数的定义不可嵌套,但函数的调用可以嵌套正确本题总得分10分8【单选题】 (10分)有下列程序,程序运行后的输出结果是()。
C语言第八章习题带答案-2012.11.6更新[优秀范文五篇]
C语言第八章习题带答案-2012.11.6更新[优秀范文五篇]第一篇:C语言第八章习题带答案-2012.11.6更新练习8答案选择题1.在程序中要使用语句:printf(“%sn”, STRING);输出一个长度为5个字符的提示信息“OK!”,则应使用宏定义语句(D)。
A.#define STRING “OK!”B.#define STRING “"OK!”“C.#define STRING ”OK!“D.#define STRING ”“OK!”“2.以下正确的描述为(C)。
A.每个C语言程序必须在开头用预处理命令#includeB.预处理命令必须位于C源程序的首部C.在C语言中预处理命令都以”#“开头D.C语言的预处理命令只能实现宏定义和条件编译的功能3.C语言的编译系统中宏命令是(D)。
A.在程序运行时进行代换处理的B.在程序连接时进行处理的C.和源程序中其他C语句同时进行编译的D.在对源程序中其他成分正式编译之前进行处理的4.从下列选项中选择不会引起二义性的宏定义是(D)。
A.#define POWER(x)x*xB.#define POWER(x)(x)*(x)C.#define POWER(x)(x*x)D.#define POWER(x)((x)*(x))5.若有宏定义如下:#define X 5#define Y X+1#define Z Y*X/2则执行以下printf语句后,输出结果是(D)。
int a;a=Y;printf(”%d,“, Z);printf(”%dn“,--a);A.7,6B.12,6C.12,5D.7,56.若a、b、c、d、t均为int型变量,则执行以下程序段后结果为(C)。
#define MAX(A, B)(A)>(B)?(A):(B)#define PRINT(Y)printf(”Y=%dn", Y)……a=1;b=2;c=3;d=4;t=MAX(a+b, c+d);PRINT(t);A.Y=3B.存在语法错误 C.Y=7D.Y=0第二篇:第二章习题带答案一、单项选择题1、下列关于国内信用证的说法中,错误的是()。
C语言复习题
C语言复习题熟读理论教材,理解相关知识,并复习理论教材课后练习题(切记:以理论教材知识、例题和课后练习为主复习)熟读课本例题及知识,完成以下知识点的复习及总结。
一.填空1.一个C语言的执行是从本程序的____开始,到____结束2.C语言中用户的标识符命名规则是____。
3.在一个c语言程序中,main函数的位置是___。
4.若有代数式p(mne)/(bcd),其中p、m、n、e、b、c、d为变量,则该代数式的 C语言表达式为___。
5.char a; int x; float y,m; double z,p;则表达式“a*x*m+z-y*x*p”值的数据类型为___。
6.C语言的常用关键字有___(举例说明,越多越好)。
7.printf函数中用到格式符%ms,其中数字m表示输出的字符串占用m列。
如果字符串长度大于m,则输出时的规则是___。
若如果字符串长度小于m,则输出时的规则是___。
若如果字符串长度等于m,则输出时的规则是___。
当m>0时是左对齐还是右对齐m<0呢8已有定义“int x; float y;”且执行“scanf(“%4d%f”,&x,&y);”语句,若从第一列开始输入数据9876543,则x的值为___。
10.能正确表示a≥-100或a≦100的关系表达式是___。
能正确表示a≥-100且a≦100的关系表达式是___。
11.判断逻辑值为“真”的判断方法是___。
逻辑值为“假”的判断方法是___。
12.已知“int x=100,y=200,z=300”,则执行if(x>y)z=x;x=y;y=z;语句后,x、y、z的值是___。
13.若m和n均为int型变量,则以下for语句循环执行的次数___及输出结果是___。
for(n=8,m=8;m!=8;m++,++n) printf(“Welcome you!\n”);14.若n为int型变量,则循环语句“for(n=0;n<100;n++)”控制循环体执行___次。
c语言复习题面试题考试题-全
不定项选择题(针对以下题目,请选择最符合题目要求的答案,每道题有一项或二项正确答案。
针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。
题量为50道,每题2分,总分为100分。
)第一章1)对于C语言的描述说法错误的是()。
A、它是一种计算机程序设计语言B、它既有高级语言的特点,又具有汇编语言的特点C、它不可以作为系统设计语言,编写系统应用程序D、它可以作为应用程序设计语言,编写不依赖计算机硬件的应用程度2)在C语言中,下图所示的流程图符号代表的是()。
(选择一项)A、程序开始或结束B、判断和分支C、输入/输出指令D、计算步骤3、下列关于算法的说法正确的是()(选择二项)A、算法必须在有限步骤内解决问题B、算法可能需要无穷步才能解决问题C、算法应该有确定的结果D、算法的计算结果无法预知4、在C中,多行注释使用( ) 符号结尾(选择一项)A、/*B、*/C、*D、//5、c语言是贝尔实验室在1973年设计的一种程序设计语言。
以下关于c语言程序的说法中,正确的是()。
(选择二项)A、c语言程序必须包含头文件B、c语言程序中可以包含多个main()函数C、在c语言程序中,一行可以写多条语句,条件是每条语句以分号结尾D、在c语言中的if语句后面如果只有一条语句,可以不用{}括起来6、在C中,C源程序文件的扩展名为()(选择一项)A、.docB、.txtC、.pptD、.c或.cpp7、以下对C语言源程序的结构特点描述错误的是()(选择一项)A、一个C语言源程序可以由一个或多个源文件组成B、每一个源文件只能有一个函数组成C、一个源程序有且只有一个main函数充当主函数D、每一个说明,每一个语句都必须以分号结尾8、下列对C语言头文件描述错误的是()(选择一项)A、stdio.h中包含了标准的输入输出函数以及字符串出来函数B、math.h中包含了数学运算函数C、stdlib.h中包含了各类基本函数D、time.h中包含了时间和日期的处理函数9、从开发C语言程序到让计算机可以执行命令,需要经过以下步骤中正确的是()(选择一项)A、编辑→编译→预处理→连接→加载→执行B、编辑→预处理→编译→连接→加载→执行C、编辑→预处理→连接→编译→加载→执行D、编辑→预处理→连接→编译→加载→执行10、在C语言中,下图所示的流程图符号代表的是()。
国家开放大学C语言程序设计章节测试参考答案
国家开放大学《C语言程序设计》章节测试参考答案第一章C语言概述自测练习一:C语言字符集自测练习1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。
(√)2.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。
(√)3.在C语言程序中,ABC和abc被作为同一标识符使用。
(×)自测练习二:C语言字符集自测练习1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。
(√)2.在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。
(√)3.C语言中使用的字符常量,其起止标记符是()。
a. 双引号b. 尖括号c. 单引号d. 中括号4.C语言中使用的字符串常量,其起止标记符是()。
a. 双引号b. 中括号c. 尖括号d. 单引号自测练习三:C语句分类自测练习1.在C语言中,一条简单语句的结束符是()。
a. 分号b. 空格c. 冒号d. 逗号2.在C语言中,每条复合语句的开始标记字符为()。
a. <b. [c. (d. {3.不符合C语言规定的复合语句是()。
a. {x=0;}b. {}c. {;}d. {y=10}4.C语言中的选择类语句有两条,它们是()。
a. else和caseb. if和switchc. if和elsed. switch和case自测练习四:函数分类与使用自测练习1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。
a. nameb. mainc. MAINd. function2.C语言程序中的基本功能模块为()。
a. 标识符b. 函数c. 表达式d. 语句3.一个函数定义所包含的两个部分是()。
a. 函数头和函数体b. 函数原型和函数体c. 函数名和参数表d. 函数头和函数尾4.一个程序文件开始使用的每条预处理命令,其首字符必须是()。
a. #b. @c. %d. $5.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。
《C语言程序设计》课后习题答案第八章
8.1 编写两个函数,分别求两个证书的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果,两个整数由键盘输入。
void main(){ int Mgy(int x,int y);int Mgb(int z);int a,b,mgy,mgb;printf("请输入两个数:\n");scanf("%d,%d",&a,&b);mgy=Mgy(a,b);mgb=Mgb(a,b,mgy);printf("两个数的最大公约数为%d,最小公倍数为%d\n",mgy,mgb);}int Mgy(int x,int y){ int r,temp;if(x<y){ temp=x;x=y;y=temp;}while(x%y!=0){ r=x%y;x=y;y=r;}return y;}int Mgb(int x,int y,int z){ return (x*y/z);}8.2 求方程ax²+bx+c=0的根,用三个函数分别求当b²-4ac大于零、等于零和小于零时的根,8.3编写一个判素数的函数,在主函数输入一个整数,输出是否是素数的信息。
#include<math.h>void main(){ int Isprime(int a);int m,temp=0;printf("请输入一个数:\n");scanf("%d",&m);temp=Isprime(m);if(temp==0) printf("%d不是素数。
\n",m);else printf("%d是素数。
\n",m);}int Isprime(int a){ int i,k,flag;if(a==0||a==1) flag=0;else{ k=sqrt(a);for(i=2;i<=k;i++)if(a%i==0) flag=0; }return flag; }8.8 写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一格空8.9编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符8.10 写一个函数,输入一行字符,将此字符串中最长的单词输出。
c语言第八章 函数
教学进程
8.2
函数的调用
【练习题 】
用函数实现求两个实数的和。
#include <stdio.h> void main() /*主调函数*/ { float add(float x, float y); /*函数声明*/ float a,b,c; printf("Please enter a and b:"); scanf("%f,%f",&a,&b); c=add(a,b); 因函数声明与函数首 printf("sum is %f\n",c); 部一致,故把函数声 } 明称为函数原型。 float add(float x,float y) /*被调函数首部*/ { float z; z=x+y; 用函数原型来声明函数,能减少 return(z); 编写程序时可能出现的错误。 }
教学进程
8.2.3 函数的调用
定义函数时,函数名后括号中的变量称为形式参数,即形参。 定义函数时,函数名后括号中的变量称为形式参数,即形参。 在主函数中调用函数时,函数名后括号中的表达式称为实际 参数,简称实参。
【例 】 输入两个整数,要求用一个函数求出其中的大者,并 在主函数中输出此数。
教学进程
a
b
c
d
e
f
教学进程
运行结果: 【例】 函数调用的简单例子。
**************** How do you do! ****************
/*主调函数*/ /*主调函数* #include <stdio.h> void main() { void printstar(); printstar(); void print_message(); print_message(); printstar(); print_message(); printstar(); }
C语言函数题库
本章(函数)共3种题型:一、填空题(共95道)二、判断题(共20道)三、填空题(共10道)*********************************************************************一、填空题(共95道)1.考题所在章节:函数本题序号:124下列说法中错误的是A一个数组只允许存储同种类型的变量。
B在对数组进行初始化时,给定的数据元素个数可以比数组本身大小多。
C数组的名称其实是数组在内存中的首地址。
D当数组名作为参数被传递给某个函数时,函数运行过程中原数组中的元素的值可能被修改。
参考答案B2.考题所在章节:函数本题序号:126下列叙述中错误的是A主函数中定义的变量在整个程序中都是有效的。
B在其它函数中定义的变量在主函数中也不能使用。
C形式参数也是局部变量。
D复合语句中定义的变量只在该复合语句中有效。
参考答案A3.考题所在章节:函数本题序号:127若函数的形参为一维数组,则下列说法中正确的是A调用函数时的对应实参必为数组名。
B形参数组可以不指定大小。
C形参数组的元素个数必须等于实参数组的元素个数。
D形参数组的元素个数必须多于实参数组的元素个数。
参考答案B4.考题所在章节:函数本题序号:128在函数的说明和定义时若没有指出函数的类型,则A系统自动地认为函数的类型为整型。
B系统自动地认为函数的类型为字符型。
C系统自动地认为函数的类型为实型。
D编译时会出错。
参考答案A5.考题所在章节:函数本题序号:135下面叙述中正确的是A对于用户自己定义的函数,在使用前必须加以说明。
B说明函数时必须明确其参数类型和返回类型。
C函数可以返回一个值,也可以什么值也不返回。
D空函数不完成任何操作,所以在程序设计中没有用处。
参考答案C6. 考题所在章节:函数本题序号:157下面正确的函数定义形式是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);参考答案A7.考题所在章节:函数本题序号:158若调用一个函数,且此函数中没有return语句,则正确的说法是()该函数:A没有返回值B返回若干个系统默认值;C能返回一个用户所希望的函数值;D返回一个不确定的值参考答案D8.考题所在章节:函数本题序号:159下面说法中不正确的是()在C语言中A实参可以是常量、变量或表达式;B形参可以是常量、变量或表达式;C函数的参数是函数间传递数据的一种手段;D实参个数应与对应的形参个数相等,类型匹配;参考答案B9.考题所在章节:函数本题序号:162C语言允许函数返回值类型缺省定义,此时该函数隐含的返回值类型是A float型B int 型C long 型D double型参考答案B10.考题所在章节:函数本题序号:163C语言规定,函数返回值的类型是由A return语句中的表达式类型所决定;B调用该函数时的主调函数类型所决定;C调用该函数时系统临时决定;D在定义该函数时所指定的函数类型所决定;参考答案D11.考题所在章节:函数本题序号:164下面函数调用语句含有实参的个数为()func((exp1,exp2),(exp3,exp4,exp5));A1B2C5D4参考答案B12.考题所在章节:函数本题序号:165以下错误的描述是()函数的调用可以A出现在执行语句中;B出现在一个表达式中;C为一个函数的实参;D作为一个函数的形参;参考答案D13.考题所在章节:函数本题序号:167若使用一维数组名作函数参数,则以下正确的说法是A必须在主调用函数中说明此数组的大小;B实参数组类型与形参数组类型可以匹配;C在被调函数中,不需要考虑形参数组的大小;D实参数组名与形参数组名必须一致;参考答案C14.考题所在章节:函数本题序号:168下正确的说法是()。
c语言复习试题及答案
c语言复习试题及答案C语言复习试题及答案一、选择题1. C语言中,一个整型变量的取值范围是:A. -128 到 127B. -32768 到 32767C. -2147483648 到 2147483647D. 取决于编译器答案:D2. 下列哪个关键字用于定义C语言的结构体?A. structB. defineC. unionD. enum答案:A3. C语言中,字符串在内存中是以什么方式存储的?A. 字符串名B. 字符串长度C. 字符串本身D. 字符串结束标志 '\0'答案:D4. 在C语言中,函数返回值的类型由什么决定?A. return 语句B. 函数名C. 函数定义时指定的类型D. 函数参数的类型答案:C5. 下列哪个操作符不能用于位操作?A. &B. |C. ^D. ++答案:D二、填空题6. C语言中,预处理器指令 `#include` 的作用是_______。
答案:引入其他文件7. `int main()` 函数中的 `void` 表示该函数_______。
答案:不返回任何值8. 在C语言中,数组的索引是从_______开始的。
答案:09. `printf` 函数的返回类型是_______。
答案:int10. 表达式 `3.0 / 0` 在C语言中会导致_______。
答案:运行时错误三、简答题11. 请简述C语言中指针的概念及其用途。
答案:指针是一种变量,它存储的是另一个变量的内存地址。
指针在C语言中用于直接访问内存、动态内存分配、数组操作、函数参数传递等。
12. 解释C语言中数组和指针之间的关系。
答案:在C语言中,数组名可以作为指针使用,它指向数组的第一个元素的地址。
通过指针可以遍历数组,也可以通过指针修改数组元素的值。
四、编程题13. 编写一个C语言程序,实现对整数数组的排序。
```c#include <stdio.h>void sort(int arr[], int n) {int i, j, temp, min_idx;for (i = 0; i < n - 1; i++) {min_idx = i;for (j = i + 1; j < n; j++) {if (arr[j] < arr[min_idx]) {min_idx = j;}}if (min_idx != i) {temp = arr[i];arr[i] = arr[min_idx];arr[min_idx] = temp;}}}int main() {int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]);sort(arr, n);printf("Sorted array: \n");for (int i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```14. 编写一个C语言程序,实现字符串的反转。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函数复习题一.选择题1.以下正确的函数定义形式是:()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);2.以下正确的函数形式是:()a) double fun(int x,int y){ z=x+y; return z; }b) fun(int x,y){ int z; return z; }c) fun(x,y){ int x,y; double z; z=x+y; return z; }d) double fun(int x,int y){ double z; z=x+y; return z; }3. 以下正确的说法是:()a) 实参和与其对应的形参各占用独立的存储单元b) 实参和与其对应的形参共占用一个存储单元c) 只有当实参和与其对应的形参同名时才共占用存储单元d) 形参是虚拟的,不占用存储单元4. 以下程序有语法性错误,有关错误原因的正确说法是:()main(){ int G=5,k;void prt_char();……k=prt_char(G);……}a) 语句void prt_char();有错,它是函数调用语句,不能用void 说明b) 变量名不能使用大写字母c) 函数说明和函数调用语句之间有矛盾d) 函数名不能使用下划线5. 已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式是:()a) f(int array[][6])b) f(int array[3][])c) f(int array[][4])d) f(int array[2][5])6. 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是:()a) extern b) register c) auto d) static7. 若使用一维数组名作函数实参,则以下正确的说法是:()a) 必须在主调函数中说明此数组的大小b) 实参数组类型与形参数组类型可以不匹配c) 在被调函数中,不需要考虑形参数组的大小d) 实参数组名与形参数组名必须一致8. 以下不正确的说法是:()a) 在不同函数中可以使用相同名字的变量b) 形式参数是局部变量c) 在函数内定义的变量只在本函数范围内有效d) 在函数内的复合语句中定义的变量在本函数范围内有效9. 若有以下程序:#include <stdio.h>void num(){ extern int x,y;int a=15,b=10;x=a-b;y=a+b;}int x,y;main(){ int a=7,b=5;x=a+b;y=a-b;num();printf(“%d,%d\n”,x,y);}程序的正确运行结果是:()a) 12,2 b) 不确定c) 5,25 d) 1,1210. 若有以下程序:main(){ int a=2,i;for(i=0;i<3;i++) pri ntf(“%4d”,f(a));}f(int a){ int b=0;static int c=3;b++; c++;return(a+b+c);}程序的正确运行结果是:()a) 7 7 7 b) 7 10 13c) 7 9 11 d) 7 8 911. 若有以下程序:#include <stdio.h>main(){ int k=4,m=1,p;p=func(k,m); printf(“%d”,p);p=func(k,m); printf(“%d\n”,p);}func(int a,int b){ static int m=0,i=2;i+=m+1;m=i+a+b;return(m);}程序的正确运行结果是:()a) 8,17 b) 8,16c) 8,20 d) 8,812. C语言规定,函数返回值的类型是:()a) return语句中的表达式类型所决定b) 调用该函数时的主调函数类型所决定c) 调用该函数时系统临时决定d) 在定义该函数时所指定的函数类型所决13. 以下正确的描述是:()a) 函数的定义可以嵌套,但函数的调用不可以嵌套b) 函数的定义不可以嵌套,但函数的调用可以嵌套c) 函数的定义和函数的调用均不可以嵌套d) 函数的定义和函数的调用均可以嵌套14. 折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。
如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。
函数binary的作用是应用折半查找法从存有10个整数的a数组中对关键字m进行查找,若找到,返回其下标值;返回-1。
请选择填空。
binary(int a[10],int m){ int low=0,high=9,mid;while(low<=high){ mid=(low+high)/2;if(m<a[mid]) 【1】;else if(m>a[mid]) 【2】;else return(mid);}return(-1);}【1】是:()a) high=mid-1b) low=mid+1c) high=mid+1 d) low=mid-1【2】是:()a) high=mid-1 b) low=mid+1c) high=mid+1 d) low=mid-115. 关于函数调用的说法,以下错误的描述是:()a) 可出现在执行语句中b) 可出现在一表达式中c) 可做为一个函数的实参d) 可做为一个函数的形参二.填空题1.以下程序的输出结果是i=7;j=6;x=7i=2;j=7;x=5___。
main(){ int i=2,x=5,j=7;fun(j,6);printf(“i=%d;j=%d;x=%d\n”,i,j,x);}fun(int i,int j){ int x=7;printf(“i=%d;j=%d;x=%d\n”,i,j,x);}2. 以下程序的输出结果是___111____。
main(){ increment();increment();increment();}increment(){ int x=0;x+=1;printf(“%d”,x);}3. 以下程序的运行结果是(1)x=2 y=3 z=0(2)x=4 y=9 z=5(3)x=2 y=3 z=0_____。
main(){ int x=2,y=3,z=0;printf(“(1) x=%d y=%d z=%d\n”,x,y,z);add(x,y,z);printf(“(3) x=%d y=%d z=%d\n”,x,y,z);}add(int x,int y,int z){ z=x+y; x=x*x; y=y*y;printf(“(2) x=%d y=%d z=%d\n”,x,y,z);}4. 若输入一个整数10,以下程序的输出结果是___1010____。
main(){ int a,e[10],c,i=0;printf(“输入一整数\n”);scanf(“%d”,&a);while(a!=0){ c=sub(a);a=a/2;e[i]=c;i++;}for(;i>0;i--) printf(“%d”,e[i -1]);}sub(int a){ int c;c=a%2;return c; } 5. 以下程序的功能是计算下面函数的值。
请填空。
)sin(*)sin()sin()sin(*)sin()sin()sin(*)sin()sin(),,(y z x z z x y z y y z x y x x z y x F --+--+--=#include <stdio.h>#include <math.h>float f();main(){ float x,y,z,sum;printf(“\ninput x,y,z:\n”);scanf(“%f %f %f”,&x,&y,&z);sum=【1】f(x,x-y,x-z)+f(y,y-z,y-x)+f(z,z-x,z-y);printf(“sum=%f\n”,sum);}float f(float a,float b,float c){ float value;value=【2】sin(a)/((sin(b)*sin(c));return(value);}6. 函数f中的形参a为一个10×10的二维数组,n的值为5,以下程序段的运行结果是__________。
f(int a[10][10],int n){ int i,j,k;j=n/2+1; a[1][j]=1; i=1;for(k=2;k<=n*n;k++){ i=i-1; j=j+1;if((i<1)&&(j>n)) { i=i+2; j=j-1; }else{ if(i<1) i=n;if(j>n) j=1;}if(a[i][j]==0) a[i][j]=k;else { i=i+2; j=j-1; a[i][j]=k; }}}7. 以下程序的运行结果是FACT(5):120FACT(1):1FACT(-1):Error! 。
#include <stdio.h>main(){ printf(“FACT(5):%d\n”,fact(5));printf(“FACT(1):%d\n”,fact(1));fact(-5);}fact(int value){ if(value<0){ printf(“FACT(-1):Error!\n”); return(-1); }else if(value==1||value==0) return(1);else return(value*fact(value-1));} 8. 以下程序的功能是用递归方法计算五位学生的年龄,请填空。
递归公式如下:⎩⎨⎧>+-==)1(2)1()1(10)(n n age n n age#include <stdio.h>age(int n){ int c;if(n==1) c=10;else c=【1】age(n-1)+2;return(c);}main(){ int n=5;printf(“age:%d \n”,【2】age(5));}9. 下面程序的功能是【1】计算斐波拉契级数第7项的值,运行结果是【2】。
k=13long fib(int g){ switch(g){ case 0: return 0;case 1:case 2: return 1;}return(fib(g-1)+fib(g-2));}main(){ long k;k=fib(7);printf(“k=%d\n”,k);}10. 以下程序的运行结果是____15______。