C语言函数练习题及答案.doc

合集下载

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语言函数习题

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______。

(完整word版)C语言基础练习题(含答案)

(完整word版)C语言基础练习题(含答案)

目录第1-3章C语言基础知识习题 (2)1 选择题 (2)2 填空题 (7)3 答案及部分解析 (9)第4章选择结构习题 (11)1 选择题 (11)2 填空题 (17)3 答案及部分解析 (23)第5章循环结构习题 (26)1 选择题 (26)2 填空题: (32)3 答案及部分解题分析 (39)第6章数组习题 (41)1. 单项选择题 (41)2. 填空题 (44)3. 判断题 (45)4. 程序填空题 (45)5. 阅读程序,分析程序的功能。

(49)第7章函数习题 (55)1. 单项选择题 (55)2. 填空题 (56)3. 判断题 (57)4. 程序填空题 (58)5. 写出下列程序运行结果 (59)第8章指针习题 (67)1 选择题 (67)2 填空题 (69)第1-3章C语言基础知识习题1 选择题1. 以下不是C语言的特点的是()。

A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。

A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。

A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。

A.void B.a3_b3 C.For D.2adefine _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是()。

A.\\ B.\0xAA C.\t D.\06.不属于C语言关键字的是()。

A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。

A.Float B.signed C.integer D.Char8.以下不能定义为用户标示符的是()。

A.scanf B.V oid C._3com_ D.int9.一个C程序是由()。

c语言中函数试题及答案

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语言200道练习试题和答案

C语言200道练习试题和答案

A)<=
B)=
C)%
D)&&
26.表达式(a=2,3) , a+1的值是【 C 】。
A)0 B)2
C)3
D)4
27.若执行printf("%d\n", strlen("a\n\"\x41"))语句其输 出结果是【 D 】。
A)8 B)7 C)6
D)4
28.在循环语句的循环体中执行break语句, 其作用是【 A 】。 A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行
则输出是【 d 】 A)1234.56 1234 B)1234.57 1235 C)1234.56 1235 D)1234.57 1234
43.如果有
int a, b; scanf(“%d,%d”, &a, &b);语句,
则输入数据时,只可以用【 d 】作为输入的分隔符
A)TAB键 B)空格
C)回车
C)20,10 D)20,20
24.若有以下定义和语句 char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+"A"); 则输出结果是【 B 】。
A)2,M B)3,E C)2,E D)输出项与对应的格式控制不一致,输出结果不确定
25.在以下一组运算符中,优先级最高的运算符是【 C 】
int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678

c语言编写函数笔试题及答案

c语言编写函数笔试题及答案

c语言编写函数笔试题及答案C语言编写函数笔试题及答案1. 题目一:计算阶乘编写一个函数,计算并返回一个整数的阶乘。

阶乘定义为:n! = n * (n-1) * (n-2) * ... * 1,其中n! = 1,当n=0。

函数原型:```clong long factorial(int n);```答案:```c#include <stdio.h>long long factorial(int n) {if (n == 0) return 1;long long result = 1;for (int i = 1; i <= n; i++) {result *= i;}return result;}int main() {int num;printf("Enter a number: ");scanf("%d", &num);printf("Factorial of %d is %lld\n", num, factorial(num)); return 0;}```2. 题目二:字符串反转编写一个函数,接受一个字符串作为参数,将其反转并返回。

函数原型:```cchar* reverseString(char* str);```答案:```c#include <stdio.h>#include <string.h>char* reverseString(char* str) {int length = strlen(str);char temp;for (int i = 0; i < length / 2; i++) {temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}return str;}int main() {char str[] = "Hello, World!";printf("Reversed string: %s\n", reverseString(str));return 0;}```3. 题目三:寻找数组中的最大值编写一个函数,接受一个整数数组和数组的长度作为参数,返回数组中的最大值。

C语言函数练习题及答案,DOC

C语言函数练习题及答案,DOC

【单选题】在下列关于C函数定义的叙述中,正确的是?∙A、∙∙∙∙A、1∙B、2∙C、4∙D、5我的答案:B得分:2.5分3【单选题】∙∙∙∙以下关于函数叙述中,错误的是?∙A、函数未被调用时,系统将不为形参分配内存单元;∙B、实参与形参的个数必须相等,且实参与形参的类型必须对应一致;∙C、当形参是变量时,实参可以是常量、变量或表达式;∙D、∙∙∙∙函数调用时,实参和形参都是简单变量,它们之间数据传递的过程描述正确的是?∙A、实参将地址传递给形参,并释放原先占用的存储单元;∙B、实参将地址传递给形参,调用结束时形参再将此地址回传给实参;∙C、实参将值传递给形参,调用结束时形参再将其值回传给实参;∙D、∙∙∙∙∙A、既允许直接递归调用也允许间接递归调用;∙B、不允许直接递归调用也不允许间接递归调用;∙C、允许直接递归调用不允许间接递归调用;∙D、不允许直接递归调用允许间接递归调用;∙∙∙∙若函数的形参为一维数组,则下列说法中正确的是()。

∙A、使用函数时的对应实参必为数组名。

∙B、形参数组可以不指定大小。

形参数组的元素个数必须等于实参数组的元素个数。

∙D、∙∙∙∙有以下函数定义:void fun(int n,double x) {……}下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()。

fun(int y,double m); ∙B、k=fun(10,12.5);∙C、∙∙∙f(int array[3][])∙C、f(int array[][4])∙D、f(int array[2][5])我的答案:C得分:2.5分14【单选题】若程序中定义函数float fadd(float a, float b)∙∙∙∙下面程序段运行后的输出结果是?(假设程序运行时输入5,3回车)int a, b;void swap( ){int t;t=a;a=b;∙∙∙5,3∙D、3,5我的答案:A得分:2.5分16【单选题】以下程序运行后的输出结果是?int fun (int x, int y){∙∙6∙C、8∙D、1217【单选题】下列程序的输出结果是()。

C语言函数题库及答案

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的值,并将结果正确返回。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【单选题】在下列关于C函数定义的叙述中,正确的是?A、函数可以嵌套定义,但不可以嵌套调用;B、函数不可以嵌套定义,但可以嵌套调用;C、函数不可以嵌套定义,也不可以嵌套调用;D、函数可以嵌套定义,也可以嵌套调用;我的答案:B得分:2.5分2【单选题】下面函数调用语句含有实参的个数为?n c((expl z exp2)z(exp3z exp4A exp5));A、B、D、5我的答案:B得分:2.5分3【单选题】c语言中函数返回值的类型是由以下哪个选项决定的?A、函数定义时指定的类型;B、return语句中的表达式类型;C、调用该两数时的实参的数据类型;D、形参的数据类型;我的答案:A得分:2.5分4【单选题】以下关于函数叙述屮,错误的是?A、两数未被调用时,系统将不为形参分配内存单元;B、实参与形参的个数必须相等,TL实参与形参的类型必须对应一致;C、当形参是变量时,实参可以是常量、变量或表达式;D、如两数调用时,实参与形参都为变:S,则这两个变量不可能共亨同一内存空间; 我的答案:B得分:2.5分5【单选题】若函数调用时参数为基本数据类型的变量,以下叙述正确的是?A、实参与菇对应的形参共享内存存储单元;B、只有当实参与菇对应的形参同名时才共享内存存储单元;C、实参与对应的形参分别占用不同的内存存储单元;实参将数据传递给形参后,立即释放原先占用的内存存储单元;我的答案:C得分:2.5分6【单选题】函数调用时,实参和形参都是简单变量,它们之间数据传递的过程描述正确的是?A、实参将地址传递给形参,并释放原先占用的存储单元;B、实参将地址传递给形参,调用结束时形参再将此地址回传给实参;C、实参将值传递给形参,调用结束时形参再将其值回传给实参;D、实参将值传递给形参,调用结束时形参并不将其值回传给实参;我的答案:D得分:2.5分7【单选题】若用数组名作为函数调用的实参,则传递给形参的是?A、数组第一个元索的地址;数组的第一个元素的值;C、数组中所有元素的值;D、数组元素的个数;我的答案:A得分:2.5分8【单选题】C语言规定了程序中各函数之I'可调用关系,以下说法正确的是?既允许直接递归调用也允许间接递归调用;B、不允许直接递归调用也不允许间接递归调用;C 允许直接递归调用不允许间接递归调用;D、不允许直接递归调用允许间接递归调用;我的答案:A得分:2.5分9【单选题】递归函数f(n)=f(n-l)+n (n>l)的递归体是?A、f(l)=OB、c.f(n)=f(n-l)+nD.f(n)=n我的答案:C得分:2.5分10【单选题】若函数的形参为一维数组,则下列说法中正确的是()O A、使用畅数时的对应实参必为数组名。

B、形参数组可以不指定大小。

C、形参数组的元素个数必须等于实参数组的元素个数。

D、形参数组的元素个数必须多于实参数组的元素个数。

我的答案:B得分:2.5分【单选题】在函数调用过程中,如果函数fun A调用了函数fun B,函数fun B又调用了函数fun A,则O oA、为畅数的直接递归调用B、称为换数的间接递归调用C、为换数的循环调用D、C语言中不允许这样的递归调用我的答案:B得分:2.5分12【单选题】有以下函数定义:void fun(int n,double x) { ........ }下选项中的变量都己正确定义并赋值,则对函数fun的正确调用语句是()。

A、fun(int y,double m);B、fun(x, n);D.void fun(n,x);我的答案:C得分:2.5分13【单选题】己有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的正确定义方式为_________ oint a[3][4];f(a);A、f(int array[][6])B、f(int array[3][])C、f(int array[][4])D、我的答案:C得分:2.5分14【单选题】若程序中定义函数float fadd(float a, float b){return a+b;}并将其放在调用语句之后,则在调用之前应对该函数进行说明。

以下说明中错误的是?A、float fadd(float a, b);B、float fadd(float b, float a);C、float fadd(float, float);我的答案:A得分:2.5分D、float fadd(float a, float b);【单选题】下而程序段运行后的输出结果是?(假设程序运行时输入5, 3回车) int a, b; void swap(){int t;t=a;a=b;b=t;}void main(){int a,b;scanf(”%d,%d;&a, &b);swap();printf (H a=%d z b=%d\n",a z b);}A、a二5, b二3B、a二3, b二5C、5,3D、3,5我的答案:A得分:2.5分16【单选题】以下程序运行后的输出结果是? int fun (int x, int y){if(x>y)return x;elsereturn y;}void main(){int x=3,y=8,z=6z r;r=fun(fun(x,y),2*z); printf(n%d\n n z r);A、C、8D、12我的答案:D得分:2.5分17【单选题】下列程序的输出结果是()0 #include "stdio.h"void fun(int a,int b,int c) {c = a * b;}int main(){int c;fun(2z3z c);printf(u%d\n n z c);return 0;B、1C、6D、无法确定我的答案:D得分:2.5分18【单选题】有以下程序,运行后的输出结果是()。

#include<stdio.h>float fun(int x, int y){return(x+y);}void main(){int a=2,b=5,c=8;printf(u%3.0f\n,,z fun((int)fun(a+c, b), a-c));A、编译出错B、9C、21D、9.0我的答案:A得分:0.0分19【单选题】以下描述正确的是?A、调用函数时的实参只能是有确定值的变就;B、return()语句的括号屮,可以是变量、常量或有确定值的表达式;C、C语言屮,函数调用时实参和形参间的参数传递方式不都是值传递;实参和形参若类型不匹配,编译时将报错;我的答案:B得分:2.5分20【单选题】己有以下代码#include<stdio.h>int a=6z b=3;int main(){int a=8;printf("%d\n",(a>b?a:b)); }则程序的输出结果是()?A、3B、6C、D、我的答案:C得分:2.5分21【单选题】己有以下代码#include<stdio.h>f(){static int x = 1;x ・=1;printf(n%d;\ x);}int main(){int i;for (i = 0; i<4; i++) f();return 0;}则程序的输出是:O ?A、1, 2,3,4B、0,123,D、-1,-2,-3,-4,我的答案:C得分:2.5分22【单选题】C语言程序的基本单位是?A、函数B、过程C、子程序D、源程序文件我的答案:A得分:2.5分23【单选题】以下说法中正确的是?A、C语言程序总是从第一个定义的函数开始执行;B、C语言程序中,要调用的函数必须在main()函数中定义;C、总是从main()函数开始执行;D、main()函数必须放在程序的开始部分;我的答案:C得分:2.5分24【单选题】在函数调用时,以下说法正确的是?A、两数调用后必须带回返回值;B、实际参数和形式参数可以同名;C、函数间的数据传递不可以使用全局变量;D、主调畅数和被调函数总是在同一个文件里;我的答案:B得分:2.5分25【填空题】下面程序段运行后的输出结果是:_____________________(假设程序运行时输入5, 3冋车) void swap( int a, int b)int t;t=a;a=b;b=t;}void main(){int a,b;scanf("%d,%d",&a z &b);swap(a,b );printf ("a=%d,b=%d\n"z a,b);}我的答案:得分:0.0分第一空:a=3,b=5批语26【填空题】以下程序的功能是用递归方法计算工资,己知第一位员工工资最少,为3100元,其余员工工资一个比一个多500元,求第5位员工的工资。

请填空。

salary(int n){int s:if (n==l)s=3100;elses=salary(n-l)+500:return s:}void main (){int n=5;printf (''sarary: %d\n z,z______ );}我的答案:得分:2.5分第一空:salary(5)批语27【填空题】分析以下程序的运行结果是______________#include ''stdio.h"func(int a ,int b){int c;c=a+b;return c;}int main(){int x=6,y z r;y=x+2;r=fu nc(x++,y);printf(H%d %d %d\n",x,y,r); return 0; }我的答案:得分:2.5分第一空:7 8 14批语28【填空题】有如下程序long fib(int n){if(n>2)return(fib(n-l)+fib(n-2)): elsereturn 2;}int main(){printf(n%d\n", fib(3)):}该程序的输出结果是________________ 。

我的答案:得分:2.5分第一空:4批语29【填空题】以下程序的输出结果是______________ Of(int b[], int m, intn){inti, s=0;for(i=m; i<n; i=i+2)s=s+b[i];returns;}int main(){int x, a[]={l, 2, 3, 4, 5, 6, 7, 8, 9};x=f(a, 3, 7);printf(H%d\n", x);}我的答案:得分:2.5分第一空:10批语30【填空题】以下程序的输出结果是__________ 。

相关文档
最新文档