(完整版)函数练习题[C语言]带答案

合集下载

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。

完整word版,函数练习题(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语言各章节练习题(含答案)

一、C语言概述练习题选择1.一个C程序的执行是从 A 。

本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是 D 。

A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是 C 。

A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由 B 。

A)一个主程序和若干个子程序组成函数组成 C) 若干过程组成 D) 若干子程序组成二、数据类型、运算符与表达式选择. 1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C.x=(i=4,j=16,k=32) A) 4 B) 16 D) 522.下列四组选项中,均不是C语言关键字的选项是 A 。

C) include case scanf D) while go pow3.下列四组选项中,均是不合法的用户标识符的选项是 B 。

4.下列四组选项中,均是合法转义字符的选项是 A 。

\”’‘\\’‘\n’ B)‘\’‘\017’‘\”’ C)‘\018’‘\f’‘xab’ D)‘\\0’‘\101’‘xlf’5.下面不正确的字符常量是 A 。

“c”B) ‘\\’’C) ‘’D) ‘K’6.以下叙述不正确的是 D 。

A) 在C程序中,逗号运算符的优先级最低 B) 在C程序中,MAX和max是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值7.以下叙述正确的是 B 。

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语言题库(带详解答案)

一单项选择题1.( A )是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程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 )。

A.—a1 B。

a[i] C.a2_i D.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“—” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是( B ).A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“—”不满足(1);7.下列四组选项中,正确的C语言标识符是( C )。

A) %x B) a+b C) a123 D) 123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是( A ).A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My—>book line# His。

C语言试题库(含答案)

C语言试题库(含答案)
C、Print f("%c\n",class[2].name[l]);
D、print f("%c\n",class[2].name[0]);
标准答案:D
【5】设单精度变量f,g的值均为5.0,则下面的表达式中,使f为10.0的表达式是。
A、f+=g
B、f-=g+5
C、f*=g-5
D、f/=g*5
标准答案:A
if(ch=='/')w=a/b;
B、B)if(ch=='*')w=a*b;
else if(ch=='/')w=a/b;
if(ch=='+')w=a+b;
else if(ch=='-')w=a-b;
C、if(ch=='+')w=a+b;
else if(ch=='-')w=a-b;
if(ch=='*')w=a*b;
A、15
B、10
C、25
D、20
标准答案:A
【15】程序段的基本结构中,不包含()。
A、函数结构
B、循环结构
C、顺序结构
D、分支结构
标准答案:A
【1】执行语句scanf("%d,%d",&m,&n);使m和n的值分别为1和2,正确输入是。
A、1
B、2
C、1,2
D、12
标准答案:c
【3】若用数组名作为函数调用的实参,传递给形参的是()。
#include<stdio.h>
main()
{int i=1;

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语言练习试题[带详解答案解析]

一、编程题1.输入2个整数,求两数的平方和并输出。

#include <stdio.h>int main(void){ intt a ,b,s;printf("please input a,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("the result is %d\n",s);return 0;}2. 输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。

#include <stdio.h>#define PI 3.14int main(void){ double r ,area , girth;printf("please input r:\n");scanf("%lf",&r);if (r>=0){ area =PI*r*r;girth =2*PI*r ;printf("the area is %.2f\n", area);printf("the girth is %.2f\n", girth);} elseprintf("Input error!\n");return 0;}3、已知函数y=f(x),编程实现输入一个x值,输出y值。

2x+1 (x<0)y= 0 (x=0)2x-1 (x>0)#include <stdio.h>void main(){ int x,y;scanf(“%d”,&x);if(x<0) y=2*x+1;else if(x>0) y=2*x-1;else y=0;printf(“%d”,y);}4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。

函数习题及答案精选全文完整版

函数习题及答案精选全文完整版

可编辑修改精选全文完整版函数习题一.选择题1.以下正确的说法是 B 。

A)用户若需要调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,如若此,该函数将失去原有定义C)系统不允许用户重新定义标准库函数D)用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。

2.以下正确的函数定义是 D 。

A)double fun(int x, int y) B)double fun(int x,y){ z=x+y ; return z ; } { int z ; return z ;}C)fun (x,y) D)double fun (int x, int y){ int x, y ; double z ; { double z ;z=x+y ; return z ; } return z ; }3.以下正确的说法是 D 。

A)实参和与其对应的形参各占用独立的存储单元B)实参和与其对应的形参共占用一个存储单元C)只有当实参和与其对应的形参同名时才共占用相同的存储单元D)形参时虚拟的,不占用存储单元4.以下正确的函数声明是 C 。

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)5.若调用一个函数,且此函数中没有return语句,则正确的说法是 D 。

A)该函数没有返回值B)该函数返回若干个系统默认值C)能返回一个用户所希望的函数值D)返回一个不确定的值6.以下不正确的说法是 B 。

A)实参可以是常量,变量或表达式B)形参可以是常量,变量或表达式C)实参可以为任意类型D)如果形参和实参的类型不一致,以形参类型为准7.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是 B 。

A)地址传递B)值传递C)有实参传给形参,再由形参传给实参D)由用户指定传递方式8.C语言规定,函数返回值的类型是由 D 决定的。

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("\nInput 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("\n\nThe shape : %d\n",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\n",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.0。

C语言函数习题及答案

C语言函数习题及答案

}
void main( )
{ int array[10],i;
for (i=0;i<10;i++)
{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=பைடு நூலகம்trlen(s);
fun(s,l);
2021/3/26
printf("The new string is :");puts(s);
2
}
3.编写一个函数fun实现字符串连接功能(不允许使用strcat函数)。
#include "stdio.h"
#include "string.h"
void fun(char s[],char t[])
{int i,j;
j=strlen(s);
for(i=0;t[i]!='\0';i++)
s[j++]=t[i];
s[j]='\0';
}
main()
{char s[100],t[100];
gets(s);gets(t);
fun(s,t);
printf("\nThe result is :%s\n",s);
for(j=i+n;str[j]!='\0';j++)

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。

()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。

()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。

()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。

答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。

答案:911. 在C语言中,用于动态分配内存的函数是______。

答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。

答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。

答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。

答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。

函数测试题及答案大全

函数测试题及答案大全

函数测试题及答案大全一、选择题1. 下列哪个选项不是函数的基本特征?A. 有确定的名称B. 有固定的参数列表C. 可以返回多个值D. 有确定的返回类型答案:C2. 在Python中,以下哪项是定义函数的正确语法?A. def function_name(parameters):B. function_name(parameters):C. define function_name(parameters):D. function function_name(parameters):答案:A3. 以下哪个选项正确描述了函数调用的过程?A. 函数定义后立即执行B. 函数定义后需要显式调用才会执行C. 函数定义后,系统自动调用D. 函数定义后,只能在其他函数内部调用答案:B二、填空题4. 在C语言中,函数声明通常放在___________。

答案:源文件的顶部5. 函数的参数可以是值传递,也可以是___________。

答案:引用传递6. 在JavaScript中,可以通过___________关键字定义一个匿名函数。

答案:function三、简答题7. 描述什么是递归函数,并给出一个简单的例子。

答案:递归函数是指在函数体内调用自身的函数。

递归函数通常用于解决可以分解为相似子问题的问题。

例如,计算阶乘的函数:```function factorial(n) {if (n === 0) return 1;return n * factorial(n - 1);}```8. 函数重载是什么?请简述其在面向对象编程中的作用。

答案:函数重载是指在同一个作用域内,允许存在多个同名函数,只要它们的参数列表不同(参数的类型、数量或顺序不同)。

在面向对象编程中,函数重载允许同一个操作符或方法应用于不同类型的对象,提高了代码的灵活性和可读性。

四、编程题9. 编写一个Python函数,实现对列表中的元素进行排序,并返回排序后的列表。

C语言练习题(带详解答案)

C语言练习题(带详解答案)

一、编程题1.输入2个整数,求两数的平方和并输出。

#include<stdio.h>intmain(void){intta,b,s;printf("pleaseinputa,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("theresultis%d\n",s);return0;}2.输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。

#include<stdio.h>#definePI3.14intmain(void){doubler,area,girth;printf("pleaseinputr:\n");scanf("%lf",&r);if(r>=0){area=PI*r*r;girth=2*PI*r;printf("theareais%.2f\n",area);printf("thegirthis%.2f\n",girth);}elseprintf("Inputerror!\n");return0;}3、已知函数y=f(x),编程实现输入一个x值,输出y值。

2x+1(x<0)y=0(x=0)2x-1(x>0)#include<stdio.h>voidmain(){intx,y;scanf(“%d”,&x);if(x<0)y=2*x+1;elseif(x>0)y=2*x-1;elsey=0;printf(“%d”,y);}4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥,90等级为A;80≤score<9,0等级为B;70≤score<8,0等级为C;60≤score<7,0等级为D;score<60,等级为E。

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

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程序中有如下语句: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语言练习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 )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参
C)实参将其值传递给形参,调用结束时形参再将其值回传给实参
D)实参将其值传递给形参,调用结束时形参并不将其值回传给实参
10. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是【 】.
A)函数的实参和其对应的形参共占同一存储单元
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语言中未说明函数的类型,则系统默认该函数的数据类型是【 】
C
一、选择题
1. 一个完整的C源程序是【 】.
A)要由一个主函数或一个以上的非主函数构成
B)由一个且仅由一个主函数和零个以上的非主函数构成
C)要由一个主函数和一个以上的非主函数构成
D)由一个且只有一个主函数或多个非主函数构成
2. 以下关于函数的叙述中正确的是【 】.
A)C语言程序将从源程序中第一个函数开始执行
A)实参与其对应的形参共用同一段存储空间
B)实参与其对应的形参占用相同的存储空间
C)实参将其地址传递给形参,同时形参也会将该地址传递给实参
D)实参将其地址传递给形参,等同实现了参数之间的双向值的传递
13. 如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量【 】.b5E2RGbCAP
D)不允许直接递归调用允许间接递归调用
19. 若程序中定义函数
float myadd(float a, float b>
{ return a+b。}
并将其放在调用语句之后,则在调用之前应对该函数进行说明.以下说明中错误的是【 】.
A)float myadd( float a,b>。
B)float myadd(float b, float a>。
17. 若定义函数float *fun( >,则函数fun的返回值为【 】.
A)一个实数B)一个指向实型变量的指针
C)一个指向实型函数的指针D)一个实型函数的入口地址
18. C语言规定,程序中各函数之间【 】.
A)既允许直接递归调用也允许间接递归调用
B)不允许直接递归调用也不允许间接递归调用
C)允许直接递归调用不允许间接递归调用
C> 将串s复制到串tD> 求字符串s所占字节数
21. 下面程序段运行后的输出结果是【 】 <假设程序运行时输入5,3回车)
int a, b。
void swap( >
{
int t。
t=a。 a=b。 b=t。
}
main(>
{
scanf("%d,%d", &a, &b>。
swap( >。
printf ("a=%d,b=%d\n",a,b>。
A)实共占存储单元
C)实参与对应的形参分别占用不同的存储单元
D)实参将数据传递给形参后,立即释放原先占用的存储单元
9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【 】.
A)实参将其地址传递给形参,并释放原先占用的存储单元
C)float myadd(float, float>。
D)float myadd(float a, float b>。
20. 关于以下fun函数的功能叙述中,正确的是【 】.
int fun(char *s>
{
char *t=s。
while(*t++> 。
t--。
return(t-s>。
}
A> 求字符串s的长度B> 比较两个串的大小
A)为全局变量,在本程序文件范围内有效
B)为局部变量,只在该函数内有效
C)为局部变量,只在该复合语句中有效
D)定义无效,为非法变量
14. C语言中函数返回值的类型是由【 】决定.
A)return语句中的表达式类型
B)调用函数的主调函数类型
C)调用函数时临时
D)定义函数时所指定的函数类型
15. 若在一个C源程序文件中定义了一个允许其他源文件引用的实型外部变量a,则在另一文件中可使用的引用说明是【 】.p1EanqFDPw
}
A> a=5,b=3B> a=3,b=5C>5,3D>3,5
22. 以下程序运行后的输出结果是【 】.
fun(int a, int b>
{
if(a>b>return a。
elsereturn b。
}
main(>
{
int x=3,y=8,z=6,r。
r=fun(fun(x,y>,2*z>。
printf("%d\n",r>。
A)extern static float a。B)float a。
C)extern auto float a。D)extern float a。
16. 定义一个void型函数意味着调用该函数时,函数【 】
A)通过return返回一个用户所希望的函数值
B)返回一个系统默认值
C)没有返回值
D)返回一个不确定的值
B)形参只是形式上的存在,不占用具体存储单元
C)同名的实参和形参占同一存储单元
D)函数的形参和实参分别占用不同的存储单元
11. 若用数组名作为函数调用的实参,则传递给形参的是【 】.
A> 数组的首地址 B> 数组的第一个元素的值
C> 数组中全部元素的值 D> 数组元素的个数
12. 若函数调用时,用数组名作为函数的参数,以下叙述中正确的是【 】.
A)floatB)long
C)intD)double
6. 以下关于函数叙述中,错误的是【 】.
A)函数未被调用时,系统将不为形参分配内存单元
B)实参与形参的个数应相等,且实参与形参的类型必须对应一致
C)当形参是变量时,实参可以是常量、变量或表达式
D)形参可以是常量、变量或表达式
7. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【 】.
相关文档
最新文档