C语言函数练习题2
c语言二级考试题及答案

c语言二级考试题及答案### C语言二级考试题及答案#### 单项选择题1. 题目:以下哪个选项是C语言中合法的变量名?- A. 2variable- B. variable-name- C. $variable- D. variable_name答案:B2. 题目:C语言中,以下哪个选项是正确的字符串字面量? - A. "Hello, World!"- B. 'Hello, World!'- C. "Hello World"- D. 'Hello World'答案:A3. 题目:在C语言中,以下哪个选项是正确的整型常量? - A. 0x1A- B. 1.2E3- C. 0123- D. 0b1010答案:A#### 填空题1. 题目:在C语言中,以下代码段的输出结果是____。
```cint a = 5;printf("%d", a++);```答案:52. 题目:以下代码段中,变量`b`的值是____。
```cint a = 10, b;b = a % 3;```答案:13. 题目:以下代码段中,变量`c`的值是____。
```cfloat a = 2.5, b = 4.5;int c = a + b;```答案:7#### 编程题1. 题目:编写一个C语言程序,计算并输出以下数列的前10项之和:1, 1/2, 1/3, 1/4, ...```c#include <stdio.h>int main() {double sum = 0.0;for (int i = 1; i <= 10; i++) {sum += 1.0 / i;}printf("Sum of the first 10 terms: %f\n", sum); return 0;}```2. 题目:编写一个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______。
完整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. 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 )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: 对于用户自己定义的函数,在使用前必须加以说明。
C语言 练习题(函数)

一、选择题1. 以下程序的运行结果是。
#include<stdio.h>int fun(int n){int m=0,f=-1,i;for(i=1;i<=n;i++){m=m+i*f;f=-f;}return m;}int main(){printf("m=%d\n",fun(10));return 0;}A.m=5 B.m=-6 C.m=6 D.m=-52. C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是。
A.地址传递B.单项值传递C.由实参传给形参,再由形参传回给实参D.由用户指定传递方式3. 以下程序有语法性错误,有关错误原因的正确说法是。
#include<stdio.h>int main(){int G=5,k;void prt_char ( );...k=prt_char(G);...}A.语句void prt_char( ); 有错,它是函数调用语句,不能用void说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线4. 以下程序的运行结果是。
#include<stdio.h>int fun(int a,int b){if(a>b) return (a+b);else return (a-b);}int main(){int x=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);return 0;}A.-16 B.-17 C.17 D.165. 以下程序的功能是计算函数F(x,y,z) = (x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。
#include<stdio.h>#include<math.h>float f(float,float);int main( ){float x,y,z,sum;scanf("%f%f%f",&x,&y,&z);sum=f( )+f( );printf("sum=%f\n",sum);return 0;}float f(float a,float b){float value;value=a/b;return value;}A.x-y, x+y B.x+y, x-y C.z+y, z-y D.z-y, z+y A.x-y, x+y B.x+y, x-y C.z+y, z-y D.z-y, z+y 6. 以下程序可选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。
C语言编程练习题(20121208总结) 2

1.从键盘上输入两个整型数据a和b的值,计算它们的加、减、乘、除结果,并将结果输出在屏幕上。
2.从键盘上输入两个float类型数据a和b的值,计算它们的加、减、乘、除结果,并将结果输出在屏幕上。
3.从键盘上输入两个double类型数据a和b的值,计算它们的加、减、乘、除结果,并将结果输出在屏幕上。
当58500<salary<=83500时,rate=35%,deduction=5505;
当83500<salary时,rate=45%,deduction=13505;
54. 从键盘上输入10个成绩,求其平均成绩。
55.编写程序,用公式求π的近似值,直到最后一项的绝对值小于10-6为止。
56.编写程序,求任意整数的各个数位上的数字之和,如输入整数67401,结果为18(因为1+0+4+7+6=18)。
13.从键盘上输入一个秒数,将其转换成对应的小时数、分钟数和秒数。例如,输入5000,则输出应为“1小时23分钟20秒”。
14.从键盘上输入一个天数,将其转换成对应的年数、月数和天数(假设每年均为360天,每月均为30天)。例如:输入1000,则输出应为“2年9个月10天”。
15.大连东联路从联合路入口到南关岭出口全长11.3公里,全程限速70公里/小时,编写程序,计算从联合路到南关岭最短的时间是多少分钟多少秒?
62.编写程序,求满足1+2+3+4+…+n<1000时n的最大值及其和值。
63.编写程序,求s=1+2+4+5+7+8+10+…+100的值。
64.统计100-999之间有多少个满足下列要求的整数:其各位数字之和为5。编写程序,输出这些整数,并计算它们的和。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/*姓名:白银日期:2007.6.11描述:英尺,英寸,米,厘米之间的转换*/#include <stdio.h>float GetInch(float feet);float GetMeter(float inch);float GetCentiMeter(float meter);void main(){float inch;float meter;float centimeter;float feet;printf("请输入英尺的值\n");scanf("%f",&feet);inch=GetInch(feet);printf("转换成英寸的结果是%.2f:",inch);printf("\n");meter=GetMeter(GetInch(feet));printf("转换成米的结果是%.2f:",meter);printf("\n");centimeter=GetCentiMeter(GetMeter(GetInch(feet))); printf("转换成米的结果是%.2f:",centimeter);printf("\n");}float GetInch(float feet){float inch;inch=feet*12;return inch;}float GetMeter(float inch){float meter;meter=inch*2.54;return meter;}float GetCentiMeter(float meter) {float centimeter;centimeter=meter*100;return centimeter;}/*姓名:白银日期:2007.6.11描述:底和高求三角形面积*/#include <stdio.h>float GetArea(float h,float l);void main(){float area;float h;float l;printf("请输入底和高\n");scanf("%f,%f",&l,&h);area=GetArea(h,l);printf("三角形面积=%.2f",area); printf("\n");}float GetArea(float h,float l) {float area;area=h*l/2;return area;}/*姓名:白银日期:2007.6.11描述:函数递归求阶乘*/#include <stdio.h>int GetFactorial(int number); void main(){int number;unsigned long int result;printf("请输入number的值\n"); scanf("%d",&number);result=GetFactorial(number);printf("结果是%d\n",result);}int GetFactorial(int number){int result;if(number==1){result=1;}else{result=GetFactorial(number-1)*number; }return result;}/*姓名:白银日期:2007.6.11描述:画出一个正方形*/#include <stdio.h>void Draw(int num);void OutPut1(int num);void OutPut2(int num);void main(){int num;printf("请输入正方型的行数\n"); scanf("%d",&num);Draw(num);printf("\n");}void OutPut1(int num){int i;for(i=0;i<num;i++){printf("*");}for(i=0;i<num;i++){printf("\n");}}void OutPut2(int num){int i;for(i=0;i<num;i++){printf("\n");}for(i=0;i<num;i++){printf("*");void Draw(int num){int i;int j;OutPut1(num);for(i=0;i<num;i++){for(j=0;j<num;j++){if((i==0&&j==0)||(i==(num-1)&&j==0)||(i==(num-1)&&j==(num-1))||(i==0&&j== (num-1))){printf("*");}else{printf(" ");}}printf("\n");}OutPut2(num);}/*姓名:白银日期:2007.6.11描述:求出3个数字的立方的和#include <stdio.h>#include <math.h>float GetNumber(float a,float b,float c); void main(){float a,b,c;float num;printf("请输入3个数字\n");scanf("%f%f%f",&a,&b,&c);num=GetNumber(a,b,c);printf("结果=%.2f\n",num);}float GetNumber(float a,float b,float c) {float num;num=(float) (pow(a,3)+pow(b,3)+pow(c,3)); return num;}/*作者:白银日期:2007.6.11描述:输入一定的钱数,得出最少需要多少张*/#include <stdio.h>int GetMoney(int *num,int money);void main(){int a[7];int *p;int num;p=#printf("请输入钱数\n");scanf("%d",p);a[0]=GetMoney(p,100);a[1]=GetMoney(p,50);a[2]=GetMoney(p,20);a[3]=GetMoney(p,10);a[4]=GetMoney(p,5);a[5]=GetMoney(p,2);a[6]=GetMoney(p,1);printf("需要100元的%d张\n",a[0]); printf("需要50元的%d张\n",a[1]); printf("需要20元的%d张\n",a[2]); printf("需要10元的%d张\n",a[3]); printf("需要5元的%d张\n",a[4]); printf("需要2元的%d张\n",a[5]); printf("需要1元的%d张\n",a[6]);}int GetMoney(int *num,int money){int count;count=*num/money;*num=*num%money;return count;}/*作者:白银日期:2007,6,11描述:输入一个数转换成16,2,12,7,8进制的数字,并且输出。
*/#include <stdio.h>void GetSixteen(int num);//转换成16进制void GetTwo(int num);//转换成2进制void GetEight(int num);//转换成8进制void GetTwelve(int num);//转换成12进制void GetSeven(int num);//转换成7进制void Sort(int *a,int i);//反向输出void main(){int num;printf("请输入一个数字\n");scanf("%d",&num);GetSixteen(num);GetTwo(num);GetEight(num);GetTwelve(num);GetSeven(num);}void Sort(int *a,int i){int j;for(j=i-1;j>=0;j--){printf("%d ",a[j]);}printf("\n");}void GetSixteen(int num){int a[100];int i=0;int j;printf("转换成16进制为:"); while(num!=0){a[i]=num%16;num=num/16;i++;}for(j=i-1;j>=0;j--){printf("%x ",a[j]);}printf("\n");}void GetTwo(int num){int a[100];int i=0;printf("转换成2进制为:"); while(num!=0){a[i]=num%2;num=num/2;i++;}Sort(a,i);}void GetEight(int num){int a[100];int i=0;printf("转换成8进制为:"); while(num!=0){a[i]=num%8;num=num/8;i++;}Sort(a,i);}void GetTwelve(int num){int a[100];int i=0;printf("转换成12进制为:"); while(num!=0){a[i]=num%12;num=num/12;i++;}Sort(a,i);}void GetSeven(int num){int a[100];int i=0;printf("转换成7进制为:");while(num!=0){a[i]=num%7;num=num/7;i++;}Sort(a,i);}/*姓名:白银时间:2007.6.11描述:输入半径,底和高求出圆的面积,周长和三角形面积*/#include <stdio.h>#define PI 3.14float GetRoundArea(float r);float GetRoundPerimeter(float r);float GetTrigonArea(float hight,float length);void main(){float r;float hight;float length;float area;float perimeter;printf("请输入半径,高和底边长度\n");scanf("%f%f%f",&r,&hight,&length);area=GetRoundArea(r);printf("圆的面积是%f\n",area);perimeter=GetRoundPerimeter(r);printf("圆的周长是%f\n",perimeter);area=GetTrigonArea(hight,length);printf("三角形的面积是%f\n",area);}float GetRoundArea(float r){float area;area=PI*r*r;return area;}float GetRoundPerimeter(float r){float perimeter;perimeter=2*PI*r;return perimeter;}float GetTrigonArea(float hight,float length) {float area;area=hight*length/2;return area;}/*姓名:白银日期:2007.6.11描述:输入一个字符串,统计小写字母个数*/#include <stdio.h>#define N 10000int GetNumber(char *a,int n);void main(){char a[N];int i;int num;printf("请输入一个字符数组\n");for(i=0;i<N;i++){scanf("%c",&a[i]);if(a[i]=='\n'){break;}}num=GetNumber(a,i);printf("数组中小写字母的个数是%d\n",num); }int GetNumber(char *a,int n){int i;int count=0;for(i=0;i<n;i++){if(a[i]<='z'&&a[i]>='Z'){count++;}}return count;}/*姓名:白银日期:2007.6.11描述:输出一个由*和A或者a组成的三角形*/#include <stdio.h>char Input();int InputNumber();void Output(char c,int num);void main(){int c;int num;c=Input();num=InputNumber();Output(c,num);}char Input(){char c;char ans='y';printf("请输入a,A,或者*\n");while(ans=='y'){fflush(stdin);scanf("%c",&c);if(c=='a'||c=='A'||c=='*'){break;}else{printf("输入错误,重新输入\n");}}return c;}int InputNumber(){int num;char ans='y';printf("请输入你要的三角型的行数(<26)\n"); while(ans=='y'){scanf("%d",&num);if(num<26){break;}else{printf("输入错误,重新输入\n");}}return num;}void Output(char c,int num){int i;int j;for(j=1;j<=num;j++){for(i=1;i<=num-j;i++){printf(" ");}for(i=1;i<=2*j-1;i++){printf("%c",c);}printf("\n");}}/*作者:白银日期:2007.6.11描述:取得日期。