c语言函数练习题附答案

合集下载

c语言函数试题及答案

c语言函数试题及答案

c语言函数试题及答案1. 以下哪个关键字用于定义一个函数?A. classB. structC. functionD. void答案:D2. 函数的返回值类型是什么?A. intB. floatC. charD. 以上都可以答案:D3. 函数的参数列表可以包含哪些类型?A. 变量B. 常量C. 表达式D. 以上都不对答案:A4. 以下哪个选项不是函数原型的组成部分?A. 返回类型B. 函数名C. 参数列表D. 函数体答案:D5. 以下哪个语句用于调用函数?A. defineFunction();B. callFunction();C. invokeFunction();D. functionName();答案:D6. 函数的返回值是什么?A. 函数执行的结果B. 函数的参数C. 函数的名称D. 函数的类型答案:A7. 以下哪个选项不是函数的属性?A. 返回类型B. 参数列表C. 函数名D. 函数的存储位置答案:D8. 以下哪个关键字用于定义一个无返回值的函数?A. intB. voidC. charD. float答案:B9. 函数的参数默认传递方式是什么?A. 值传递B. 引用传递C. 指针传递D. 动态传递答案:A10. 以下哪个选项不是函数调用时可能出现的错误?A. 函数名拼写错误B. 参数类型不匹配C. 参数数量不足D. 函数定义在调用之后答案:D11. 以下哪个选项是正确的函数定义?A. int myFunction(int x, int y) { return x + y; }B. int myFunction(int x; int y) { return x + y; }C. int myFunction(int x, int y) { return x - y; }D. int myFunction(int x, int y) { return x * y; }答案:A12. 以下哪个选项是正确的函数声明?A. void myFunction(int x, int y);B. int myFunction(int x, int y);C. int myFunction(int x, int y) { return x + y; }D. void myFunction(int x, int y) { return x + y; }答案:A13. 以下哪个选项是正确的递归函数定义?A. int factorial(int n) { if (n == 1) return 1; else return n * factorial(n - 1); }B. int factorial(int n) { if (n == 1) return 1; else return n * factorial(n + 1); }C. int factorial(int n) { if (n == 0) return 1; else return n * factorial(n - 1); }D. int factorial(int n) { if (n == 0) return 1; else return n * factorial(n + 1); }答案:C14. 以下哪个选项是正确的函数指针声明?A. int (*ptr)(int, int);B. int *ptr(int, int);C. int (*ptr)(int);D. int *ptr(int, int)(int, int);答案:A15. 以下哪个选项是正确的函数指针的使用?A. int add(int a, int b) { return a + b; }B. int (*ptr)(int, int) = add;C. int result = ptr(5, 3);D. 以上都是答案:D。

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语言程序设计函数练习题及参考答案

C语言程序设计练习题及参考答案1、定义一个函数int fun(int a, int b, int c),它的功能是:若a, b, c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。

^include <stdio.h>int fun(int a, int b, int c)(if(a+b>c && b÷c>a && a+c>b)(if(a=b && b=c )return 3;else if (a-b ∣∣ b-c ∣∣ a==c)return 2;else return 1;)else return 0;)void main()(int a, b, c, shape;printf (z,∖∩Tnput a, b, c: 〃);scanf ("%d%d%d”, &a, &b, &c);printf ("∖na=%d, b=%d, c=%d∖n”, a, b, c);shape =fun(a, b, c);printf (z,∖n∖nThe shape : %d∖∏z,, shape);2、编写一个程序,将两个变量的值交换,例如变量a中的值原为3, b中的值原为8,程序运行后a中的值为8, b中的值为3。

^include <stdio.h>void fun(int *x, int *y){int t;t=*x;*x=*y;*y=t)void main(){int a=3,b=8;printf (,,%d %d∖∏z,, a, b);fun (&a, b);printf (,,%d %d∖n”, a, b);3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。

例如,输入的数为:55 12 34,输出结果应当是:a=55.0, b=34. 0, c=12. 0o^include <stdio. h>void fun(float *p, float *q, float *s)(float k;if (*p<*q){ k=*p;*p=*q;*q=k;}if (*q<*s){ k=*s;*s=*p;*p=k;}if (*p<*q){ k=*p;*p=*q;*q=k;})void main(){ float a, b, c;printf (z,Input a b c: 〃); scanf (z,%f%f%f z,, &a, &b, &c);printf (zz a=%4. If, b=%4. If, c=%4. lf∖n∖n zz, a, b, c);fun(&a, &b, &c);printf (z,a=%4. If, b=%4. If, c=%4. lf∖n∖∏z,, a, b, c);4、编写函数fun(intn),它的功能是:计算正整数n的所有因子(1和n除外)之和作为函数值返回。

C语言函数题库及答案

C语言函数题库及答案

C语言函数题库及答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998第六部分函数一、单项选择题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)(floatx[],intn)(float*x,intn)(floatx[10],intn)(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函数试题及答案

c函数试题及答案

c函数试题及答案在本篇文章中,将介绍一些C语言中常见的函数试题,并给出其相应的答案。

通过这些试题的讲解,读者可以深入了解C函数的使用方法和注意事项,提高对C语言编程的理解和实践能力。

1. 试题一:编写一个函数,实现两个整数的交换。

答案:```cvoid swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}```2. 试题二:编写一个函数,判断一个数是否为偶数,返回1表示是,返回0表示不是。

答案:```cint isEven(int num) {if(num % 2 == 0) {return 1;} else {return 0;}}```3. 试题三:编写一个函数,计算一个整数数组中所有元素的和。

答案:```cint sumArray(int arr[], int size) {int sum = 0;for(int i = 0; i < size; i++) {sum += arr[i];}return sum;}```4. 试题四:编写一个函数,找出一个整数数组中的最大值。

答案:int findMax(int arr[], int size) {int max = arr[0];for(int i = 1; i < size; i++) {if(arr[i] > max) {max = arr[i];}}return max;}```5. 试题五:编写一个函数,将一个字符串逆序输出。

答案:```cvoid reverseString(char str[]) {int length = strlen(str);for(int i = length - 1; i >= 0; i--) {printf("%c", str[i]);}```通过以上试题及其答案的讲解,读者可以加深对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语言编写函数笔试题及答案

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语言函数题库及答案

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语言函数练习题附答案

(完整版)c语言函数练习题附答案

函数一、选择题1.在c 语言中以下不正确的说法是:()A.实参可以是常量、变量、或表达式B.形参可以是常量、变量或表达式C.实参可以为任意类型D.形参应与其对应的实参类型一致2.以下程序有语法性错误,有关错误原因的正确说法是:()int main(){ int G=5,k;void prt_char();……k=prt_char(G);……}A.语句 void prt_char();有错,它是函数调用语句,不能用 void 说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线3.以下正确的说法是:()A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可嵌套C.函数的定义和调用均不可以嵌套D.函数的定义和调用均可以嵌套4.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:()A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参5.以下所列的各函数首部中,正确的是:()A、 void play(var :Integer,var b:Integer)B、 void play(int a,b)C、 void play(int a,int b)D、 Sub play(a as integer,b as integer)6.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是:()A、地址传递B、单向值传递C、由实参传给形参,再由形参传回实参D、传递方式由用户指定7.有以下程序void fun (int a,int b,int c){ a=456; b=567; c=678;}int main(){ int x=10, y=20,z=30;fun (x,y,z);printf("%d,/%d,%d\n",x,y,z);return 0;}输出结果是:()A、30,20,10B、10,20,30C、456,567,678D、678,567,4568.下述函数定义形式正确的是()。

C语言函数题库及答案

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 )个实参int a,b,c;int sum(int x1,int x2);……total=sum((a,b),c);A.2 B.3 C.4 D.55.在C语言中( C )A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义和调用均不可以嵌套C.函数的定义不可以嵌套,但是函数的调用可以嵌套D.函数的定义和调用均可以嵌套6.关于C语言中的return语句正确的是(C )A.只能在主函数中出现B.在每个函数中都必须出现C.可以在一个函数中出现多次D.只能在除主函数之外的函数中出现7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是( D)A. int a(float x[],int n)B. int a(float *x,int n)C. int a(float x[10],int n)D.int a(float x,int n)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语言函数习题及答案

C语言函数习题及答案

9.请编写函数fun,实现的功能是:求出能整除x且是偶数的各整数, 并按从小到大的顺序依次存放在y所指定的数组中,这些除数的个数 通过函数返回。仅在fun函数体内编写代码即可。图12-1是输入40后 的运行结果图。 #include "stdio.h" int fun(int x,int y[]) {int i,j=0; for(i=2;i<x;i++) if(x%i==0&&i%2==0)y[j++]=i; return j; } main() {int x,a[100],n,i; printf("请输入一个整数:"); scanf("%d",&x); n=fun(x,a); for(i=0;i<n;i++) printf("%4d",a[i]); printf("\n");}
2.编写一个函数fun,实现将一个字符串反序存放。例如:在 主函数中输入字符串“abcdefg”,在调用fun函数后,则应输出 “gfedcba”。 #include <stdio.பைடு நூலகம்>
#include <string.h> #define N 81 char fun(char s[],int n) {int i; char c; for(i=0;i<=(n-1)/2;i++) {c=s[i]; s[i]=s[n-1-i]; s[n-1-i]=c;} } main() { char s [N]; int l; printf("input a string:");gets(s); l=strlen(s); fun(s,l); printf("The new string is :");puts(s); }

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 )个实参int a,b,c;int sum(int x1,int x2);……total=sum((a,b),c);A.2 B.3 C.4 D.55.在C语言中( C )A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义和调用均不可以嵌套C.函数的定义不可以嵌套,但是函数的调用可以嵌套D.函数的定义和调用均可以嵌套6.关于C语言中的return语句正确的是(C )A.只能在主函数中出现B.在每个函数中都必须出现C.可以在一个函数中出现多次D.只能在除主函数之外的函数中出现7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是( D)A. int a(float x[],int n)B. int a(float *x,int n)C. int a(float x[10],int n)D.int a(float x,int n)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语言函数题库及答案

C语言函数题库及答案

C语言函数题库及答案Prepared on 21 November 2021第六部分函数一、单项选择题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语言函数测试(答案+分析)

c语言函数测试(答案+分析)

c语言函数测试(答案+分析)大家一定要认真做完,标清题号和答案,打包提交,最后我会把答案通过群邮件发给大家!一、单项选择题1.在C程序中有如下语句:char *func(int x,int y); 它是:A)对函数func的定义。

B)对函数func的调用。

C)对函数func的原型说明。

D)不合法的。

2.以下说法中正确的是:A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分3.在函数中默认存储类型说明符的变量应该是存储类型:A)内部静态B)外部C)自动D)寄存器4.会直接导致函数返回的指令是:A)breakB)returnC)continueD)end5.以下不正确的描述是A)在主函数中,定义变量可以不需要指定类型。

B)在定义函数时,必须指定形参的类型。

C)形参和实参之间可以是值传递。

D)数组名可以作为参数进行传递。

6.关于建立函数的目的之一,以下正确的说法是:A)提高程序的执行效率B)提高程序的可读性C)减少程序的篇幅D)减少程序文件所占内存7.以下正确的说法是:A)用户若需调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义C)系统根本不允许用户重新定义标准库函数D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调8.以下正确的函数定义形式是: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);9.以下正确的函数形式是: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; }10.在C语言中以下正确的说法是:A)实参和与其对应的形参各占用独立的存储单元B)实参和与其对应的形参共占用一个存储单元C)只有当实参和与其对应的形参同名时才共占用存储单元D)形参是虚拟的,不占用存储单元11.若调用一个函数,且此函数中没有return语句,则正确的说法是:A)该函数没有返回值B)该函数返回若干个系统默认值C)该函数能返回一个用户所希望的函数值D)该函数返回一个不确定的值12.关于C语言规定,以下不正确的说法是:A)实参可以是常量、变量或表达式B)形参可以是常量、变量或表达式C)实参可以为任意类型D)形参应与其对应的实参类型一致13.以下正确的说法是:A)定义函数时,形参的类型说明可以放在函数体内B)return后边的值不能为表达式C)如果函数值的类型与返回值类型不一致,以函数值类型为准D)如果形参与实参的类型不一致,以实参类型为准14.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是:A)地址传递B)单向值传递C)由实参传给形参,再由形参传回给实参D)由用户指定传递方式15.以下程序有语法性错误,有关错误原因的正确说法是:main(){int G=5,k;void prt_char();……k=prt_char(G);……}A)语句void prt_char();有错,它是函数调用语句,不能用void 说明B)变量名不能使用大写字母C)函数说明和函数调用语句之间有矛盾D)函数名不能使用下划线16.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是:A)float型B)int型C)long型D)double型17.C语言规定,函数返回值的类型是由:A)return语句中的表达式类型所决定B)调用该函数时的主调函数类型所决定C)调用该函数时系统临时决定D)在定义该函数时所指定的函数类型所决定18.下面函数调用语句含有实参的个数为:func((exp1,exp2),(exp3,exp4,exp5));A)1 B)2 C)4 D)519.关于函数调用,以下错误的描述是:A)出现在执行语句中B)出现在一表达式中C)做为一个函数的实参D)做为一个函数的形参20.在C语言程序中以下正确的描述是:A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用均不可以嵌套D)函数的定义和函数的调用均可以嵌套21.以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,‘A’,‘B’,‘C’);则符合程序段运行结果的选项是:void move(char getone,char putone){printf(“%c-->%c\n”,getone,putone);}void hanoi(int n,char one,char two,char three){if(n==1) move(one,three);else{hanoi(n-1,one,three,two);move(one,three);hanoi(n-1,two,one,three);}}A)A-->C B)A-->C C)A-->CD)A-->CA-->B A-->B A-->BA-->BC-->B C-->A C-->BC-->BB-->A A-->B A-->CA-->CC-->B B-->C B-->AA-->BA-->C A-->C B-->CB-->CA-->B A-->B A-->CA-->C22.若用数组名作为函数调用的实参,传递给形参的是:A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数23.已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为:int a[3][4]; f(a);A)f(int array[][6])B)f(int array[3][])第一维长度可以不给出C)f(int array[][4])D)f(int array[2][5])24.若使用一维数组名作函数实参,则以下正确的说法是:A)必须在主调函数中说明此数组的大小B)实参数组类型与形参数组类型可以不匹配C)在被调函数中,不需要考虑形参数组的大小D)实参数组名与形参数组名必须一致25.以下正确的说法是,如果在一个函数中的复合语句中定义了一个变量,则该变量:A)只在该复合语句中有效B)在该函数中有效C)在本程序范围内均有效D)为非法变量26.以下不正确的说法为:A)在不同函数中可以使用相同名字的变量B)形式参数是局部变量C)在函数内定义的变量只在本函数范围内有效D)在函数内的复合语句中定义的变量在本函数范围内有效27.以下程序的正确运行结果是:#define MAX 10int a[MAX],i;main(){ printf(“\n”); sub1(); sub3(a); sub2(); sub3(a); } sub2(){int a[MAX],i,max;max=5;for(i=0;i}sub1(){ for(i=0;i<="">sub3(int a[]){int i;for(i=0;i<="">printf(“\n”);}A)0 2 4 6 8 10 12 14 16 180 1 2 3 4B)0 1 2 3 40 2 4 6 8 10 12 14 16 18C)0 1 2 3 4 5 6 7 8 90 1 2 3 4D)0 2 4 6 8 10 12 14 16 180 2 4 6 8 10 12 14 16 1828.以下程序的正确运行结果是:#includevoid 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,1229.凡是函数中未指定存储类型的局部变量,其隐含的存储类别为:A)自动(auto)B)静态(static)C)外部(extern)D)寄存器(register)30.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是:A)extern B)register C)auto D)static31.以下程序的正确运行结果是:main(){int a=2,i;for(i=0;i<3;i++) printf(“%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 13 C)7 9 11 D)7 8 932.以下程序的正确运行结果是:#includemain(){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,16 C)8,20 D)8,8首先输出结果是8,17第二,你上面这个程序编译不了的,有2个问题1),函数的返回值类型没写;2),func()函数体放在了main()函数后面且没再main()函数中声明。

c语言函数试题及答案

c语言函数试题及答案

c语言函数试题及答案C语言函数试题及答案一、选择题1. 在C语言中,以下哪个关键字用于声明函数?A. intB. voidC. returnD. function2. 以下哪个函数原型声明是正确的?A. void myFunction();B. int myFunction() {}C. int myFunction();D. myFunction(int, int);3. 在C语言中,函数的返回值通过哪个关键字返回?A. returnB. outputC. resultD. yield二、填空题4. 在C语言中,如果一个函数没有返回值,其返回类型应该是________。

5. 函数的参数可以是常量、变量或________。

三、简答题6. 简述C语言中函数的作用。

四、编程题7. 编写一个C语言函数,该函数接受两个整数作为参数,并返回它们的和。

五、分析题8. 阅读以下C语言函数代码,并指出其功能及可能存在的问题。

```cvoid swap(int *x, int *y) {int temp;temp = *x;*x = *y;*y = temp;}```答案:一、选择题1. C2. C3. A二、填空题4. void5. 表达式三、简答题6. 函数在C语言中用于封装一段代码,使其可以重复使用。

函数可以接收参数,执行特定的任务,并可选择性地返回一个值。

四、编程题7.```cint add(int a, int b) {return a + b;}```五、分析题8. 该函数的功能是交换两个整数的值。

它通过指针参数接收两个整数的地址,并在函数内部交换这两个整数的值。

可能存在的问题是,如果传入的参数不是有效的整数地址,或者指针所指向的内存区域不可写,那么将会导致程序错误或崩溃。

C语言练习4(函数)=参考答案

C语言练习4(函数)=参考答案

C语言(函数,变量作用范围)一、选择题1 下列定义不正确的有 ( C ) 。

A)#define PI 3.141592 B)#define S 345C)int max(x,y); D)char c;int x,y ;{ }2 下列程序结构中,不正确的是 ( B )。

A)main() B) main(){float a,b,c; {float a,b,c;scanf("%f,%f",&a,&b); scanf("%f,%f",&a,&b);c=add(a,b); c=add(a,b);...... .....} }int add(float x,float y) float add(float x,float y) { ... } { ... }C)float add(float x,float y); D)float add(float x,float y) main() { ... }{float a,b,c; main()scanf("%f,%f",&a,&b); {float a,b,c;c=add(a,b); scanf("%f,%f",&a,&b);...... c=add(a,b);} .....float add(float x,float y) }{ ... }3 一个C语言的程序总是从( A )开始执行的.A)main函数B)文件中的第一个函数C)文件中的第一个子函数调用D)文件中的第一条语句4 以下正确的函数定义是( D ).A)double fun(int x,int y){z=x+y; return z;}B) double fun(int x,int y);{int z;z=x+y; return z;}C) fun(int x,y){int z; return z;}D) double fun(int x,int y){double z;z=x+y; return z;}5 以下正确的函数声明形式是( D ).A) double fun(int x,int y)B) double fun(int x;int y)C) double fun(int ,int )D) double fun(int ,int );6 以下说法中正确的是( A )在C语言中A)实参与其对应的形参各占用独立的存储单元B)实参与其对应的形参占用同一个存储单元C)只有当实参与形参同名时才占用同一个存储单元D)实参占用存储单元,但形参是虚拟的,不占用存储单元7 设有如下函数定义:int f(char *s){ char *p=s ;while(*p!='\0') p++;return(p-s) ;}如果在主程序中用下面的语句调用上述函数,则输出结果为( A ). printf("%d\n",f("goodbye!"));的输出结果是A) 3 B) 6 C) 8 D) 08 下面程序段中,主函数中变量a被初始化为 ( C )。

C语言练习-函数

C语言练习-函数

1. 单项选择题(1)在C语言程序中,下列叙述正确的是。

A. 函数的定义可以嵌套,但函数的调用不可以嵌套B. 函数的定义不可以嵌套,但函数的调用可以嵌套C. 函数的定义和调用都可以嵌套D. 函数的定义和调用均不可以嵌套【答】B(2)在C语言程序中,下列叙述错误的是。

A. 形参是局部变量B. 不同的函数中,可以使用相同名称的变量C. 在一个函数的内部,可以在复合语句中定义变量D. main()函数中定义的变量在整个文件或者程序中都有效【答】D(3)在C语言程序中,下列叙述正确的是。

A. 实参和对应的形参各占用独立的存储单元B. 实参和对应的形参共占用一个存储单元C. 形参是虚拟的,不占用存储单元D. 只有当实参和对应的形参同名时才共占用存储单元【答】A(4)在C语言程序中,下列叙述正确的是。

A. 实参可以是常量、变量或表达式B. 实参可以是任意类型C. 形参可以是常量、变量或表达式D. 形参与对应的实参类型要求可以不一致【答】A(5)在C语言程序中,简单变量做实参时,它和对应形参之间的数据传递方式是。

A. 地址传递B. 单向值传递C. 由用户指定传递方式D. 由实参传给形参,再由形参传回给实参【答】C语言函数调用时,只有单向的值传递,即实参将值传递给形参,传址调用也是一种单向的值传递,它是通过间接方式达到将形参回传给实参的。

本题答案为B。

(6)下列关于return语句说法正确的是。

A. 必须在每个函数中都出现B. 只能在除main()函数之外的函数中出现一次C. 可以在同一个函数中多次出现D. 在main()函数和其他函数中都可以出现【答】C(7)C语言中规定函数的返回值的类型是由。

A. return语句中的表达式类型所决定B. 调用该函数时的主调用函数类型所决定C. 调用该函数时系统临时决定D. 在定义该函数时所指定的函数类型所决定【答】D(8)如果要限制一个变量只能被本源文件中的函数使用,必须通过来实现。

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

函数
一、选择题
1.在c语言中以下不正确的说法是:()
A.实参可以是常量、变量、或表达式
B.形参可以是常量、变量或表达式
C.实参可以为任意类型
D.形参应与其对应的实参类型一致
2.以下程序有语法性错误,有关错误原因的正确说法是:()
int main()
{ int G=5,k;
void prt_char();
……
k=prt_char(G);
……
}
A.语句void prt_char();有错,它是函数调用语句,不能用void说明
B.变量名不能使用大写字母
C.函数说明和函数调用语句之间有矛盾
D.函数名不能使用下划线
3.以下正确的说法是:()
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可嵌套
C.函数的定义和调用均不可以嵌套
D.函数的定义和调用均可以嵌套
4.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:()
A)函数调用可以作为独立的语句存在
B)函数调用可以作为一个函数的实参
C)函数调用可以出现在表达式中
D)函数调用可以作为一个函数的形参
5.以下所列的各函数首部中,正确的是:()
A、 void play(var :Integer,var b:Integer)
B、 void play(int a,b)
C、 void play(int a,int b)
D、 Sub play(a as integer,b as integer)
6.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是:()
A、地址传递
B、单向值传递
C、由实参传给形参,再由形参传回实参
D、传递方式由用户指定
7.有以下程序
void fun (int a,int b,int c)
{ a=456; b=567; c=678;}
int main()
{ int x=10, y=20,z=30;
fun (x,y,z);
printf("%d,/%d,%d\n",x,y,z);
return 0;
}
输出结果是:()
A、30,20,10
B、10,20,30
C、456,567,678
D、678,567,456
8.下述函数定义形式正确的是()。

A、int f(int x; int y)
B、int f(int x,y)
C、int f(int x, int y)
D、int f(x,y: int)
9.关于函数参数,说法正确的是()。

A、实参与其对应的形参各自占用独立的内存单元
B、实参与其对应的形参共同占用一个内存单元
C、只有当实参和形参同名时才占用同一个内存单元
D、形参是虚拟的,不占用内存单元
10.一个函数的返回值由()确定。

A、return语句中的表达式
B、调用函数的类型
C、系统默认的类型
D、被调用函数的类型
11.以下正确的函数形式是()。

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; }
12.下列函数中,能够从键盘上获得一个字符数据的函数是()。

A、 puts( )
B、 putchar( )
C、 getchar( )
D、 gets( )
13.以下程序的输出结果是()。

fun(int a,int b,int c)
{
c=a+b;
}
int main()
{ int c;
fun(2,3,c);
printf(“%d\n”,c);
return 0;
}
A、2
B、3
C、5
D、无定值
14.分析以下程序的运行结果()。

func(int a,int b)
{
int temp=a;
a=b; b=temp;
}
int main()
{
int x,y;
x=10; y=20;
func(x,y);
printf((“%d,%d\n”,x,y);
return 0 ;
}
A、10,20
B、10,10
C、20,10
D、20,20
15.有以下程序
int f(int n)
{ if(n==1) return 1;
else return f(n-1)+1;
}
int main()
{ int i,j=0;
for(i=1;i<3;i++) j+=f(i);
printf("%d\n",j);
return 0;
}
程序运行后的输出结果是
A)4 B)3 C)2 D)1
16.现有如下程序
#include "stdio.h"
int fun(int x)
{ printf("x=%d\n",++x);
}
int main()
{ fun(12+5); return 0;
}
则程序的输出结果是
A)x=12 B)x=13 C)x=17 D)x=18
二、判断题
1、( F )return语句作为函数的出口,在一个函数体内只能有一个。

2、( T )在C程序中,函数不能嵌套定义,但可以嵌套调用。

3、( F ) C语言的源程序中必须包含库函数。

4、( F )在C程序中,函数调用不能出现在表达式语句中。

5、( F)在C函数中,形参可以是变量、常量或表达式。

6、 ( T )在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。

7、( F )若定义的函数没有参数,则函数名后的圆括号可以省略。

8、( T )函数的函数体可以是空语句。

9、( T )函数的实参和形参可以是相同的名字。

10、(F )C语言中函数返回值的类型由return语句中的表达式的类型决定。

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

12、(T )函数调用中,形参与实参的类型和个数必须保持一致。

14:编写一个函数fan(int m),计算任一输入的整数的各位数字之和。

主函数包括输入、输出和调用函数。

#include <stdio.h>
int fan(int m);
void main()
{
int n,s;
scanf("%d",&n);
s=fan(n);
printf("s=%d\n",s);
}
int fan(int m)
{
int x,s=0;
while(m!=0)
{
x=m%10;
m=m/10;
s=s+x;
}
return s;
}
15:已有变量定义语句和函数调用语句int x=57; isprime(x);函数isprime( )用来判断整型数x 是否为素数,若是素数,函数返回1,否则返回0。

请编写isprime函数。

(不可修改主函数)#include <stdio.h>
void main()
{
int x=57;
if(isprime(x)) printf("%d 是素数!\n",x);
else printf("%d 不是素数!\n",x);
int isprime(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0) return 0;
return 1;。

相关文档
最新文档