C语言函数题库及答案

合集下载

大学c语言考试题库及答案

大学c语言考试题库及答案

大学c语言考试题库及答案一、选择题1. 下列关于C语言中变量的描述,哪个是正确的?A. 变量必须先定义后使用B. 变量的类型不能改变C. 变量可以在任何地方定义D. 所有变量都必须初始化后才能使用答案:A2. C语言中,一个整数除以另一个整数,结果是什么类型的数据?A. 整数型B. 浮点型C. 长整型D. 无符号整数型答案:A3. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A4. 如果一个指针变量p指向一个int类型的变量,那么表达式*p++的值是什么?A. p指向的变量的当前值B. p指向的变量的下一个值C. p指向的变量的前一个值D. 无定义答案:A5. C语言中,以下哪个关键字用于定义一个函数?A. intB. floatC. voidD. char答案:C二、填空题1. C语言中,________关键字用于定义一个结构体。

答案:struct2. 在C语言中,________运算符用于计算两个整数的乘积。

答案:*3. 当需要频繁修改数组中的元素时,应使用________类型的数组。

答案:动态4. C语言中,________函数用于将字符串s复制到t所指向的内存空间。

答案:strcpy()5. 在C语言中,________关键字用于声明一个无限循环。

答案:for 或 while三、简答题1. 请简述C语言中数组和指针的关系。

答案:在C语言中,数组名可以作为指针使用。

数组的每个元素都可以通过数组名加上索引来访问。

指针变量可以指向数组的第一个元素,并通过指针算术来访问数组的其他元素。

数组的地址可以通过指针传递给函数,从而在函数内部访问数组。

2. 解释C语言中的“宏”是什么,并给出一个使用宏的例子。

答案:宏是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。

计算机二级c语言试题题库及答案

计算机二级c语言试题题库及答案

计算机二级c语言试题题库及答案一、单项选择题(每题2分,共20分)1. 在C语言中,用于定义变量的关键字是()。

A. defineB. varC. intD. let答案:C2. 下列关于C语言函数的描述,不正确的是()。

A. 函数可以没有参数B. 函数可以返回值C. 函数必须有返回值D. 函数可以嵌套定义答案:C3. 以下哪个选项不是C语言中的运算符()。

A. %B. &&C. ++D. :答案:D4. 在C语言中,用于定义一个结构体的关键字是()。

A. structB. unionC. enumD. typedef答案:A5. C语言中,用于表示逻辑与的运算符是()。

A. &&B. ||C. !D. =答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型数组的语句是:int array[10]; 其中array[0]的值默认为____。

答案:02. 如果一个函数的返回类型是int,那么在函数体中必须包含一条____语句。

答案:return3. 在C语言中,用于计算字符串长度的函数是____。

答案:strlen4. C语言中,用于将字符数组转换为字符串的字符是____。

答案:'\0'5. 当使用指针变量时,必须先对其进行____。

答案:初始化三、编程题(每题10分,共20分)1. 编写一个C语言函数,实现两个整数的交换。

```cvoid swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}```2. 编写一个C语言程序,计算并输出100以内所有偶数的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```四、简答题(每题10分,共40分)1. 简述C语言中指针和数组的关系。

(完整版)C语言题库(带详解答案)

(完整版)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.-a1B.a[i]C.a2_iD.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.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满⾜(1);选项C中的while 为关键字,不满⾜(3)9.C语⾔中的简单数据类型包括(D)。

c语言大学试题及答案

c语言大学试题及答案

c语言大学试题及答案一、选择题(每题2分,共20分)1. 下列哪个是C语言的标准输入输出库函数?A. printf()B. scanf()C. both A and BD. None of the above答案:C2. 在C语言中,以下哪个是正确的字符串声明?A. char str[10] = "Hello";B. char str = "Hello";C. Both A and BD. None of the above答案:A3. 以下哪个是C语言中的合法标识符?A. 2variableB. variable-nameC. forD. None of the above答案:B4. 在C语言中,以下哪个语句将一个整数赋值为10?A. int num = 10;B. int = num 10;C. int num = = 10;D. None of the above答案:A5. 以下哪个是C语言中的逻辑运算符?A. &&B. ||C. Both A and BD. None of the above答案:C二、填空题(每题2分,共20分)6. 在C语言中,用于定义一个字符的关键字是________。

答案:char7. 一个C程序的执行从________函数开始。

答案:main8. 在C语言中,用于计算两个数的乘积的运算符是________。

答案:*9. 如果一个变量声明为int,它的取值范围是________。

答案:-32768 到 32767(对于16位系统)10. 在C语言中,用于结束程序的库函数是________。

答案:exit三、简答题(每题10分,共30分)11. 解释C语言中数组的声明和初始化方法。

答案:在C语言中,数组的声明包括指定数组的类型和名称,以及它包含的元素数量。

例如,int numbers[10]; 声明了一个包含10个整数的数组。

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

第六部分函数一、单项选择题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、定义一个函数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语言考试题库及答案C语言考试题库及答案一、选择题1. C语言中,用于表示逻辑“与”操作的关键字是()。

A. &&B. ||C. &D. or答案:A2. 下列哪个选项是C语言中的合法整型常量?A. 0x10FB. 01FC. 8181D. 0.8181答案:A3. 在C语言中,定义一个字符变量可以使用哪种数据类型?A. intB. floatC. charD. double答案:C4. 下列哪个函数用于计算字符串的长度?A. strlen()B. strcmp()C. strcpy()D. printf()答案:A5. C语言中,若要交换两个变量的值,通常使用哪种方法?A. 递归调用B. 位运算C. 三元运算符D. 临时变量答案:D二、填空题1. 在C语言中,使用关键字________声明一个全局变量。

答案:extern2. 一个C语言程序的执行是从________函数开始的。

答案:main3. 在C语言中,使用________运算符可以实现对整型数值的强制类型转换为浮点型。

答案:(float)4. 为了在C语言中定义一个无限循环,可以使用________语句。

答案:while(1)5. 当需要在C语言中动态分配内存时,可以使用函数________。

答案:malloc三、判断题1. C语言中的数组下标是从1开始的。

(错)答案:错2. 在C语言中,函数可以作为另一个函数的参数传递。

(对)答案:对3. C语言中,结构体是一种可以包含不同数据类型成员的用户自定义数据类型。

(对)答案:对4. 使用C语言编写的程序在运行时,所有的变量存储在堆内存中。

(错)答案:错5. C语言中的指针变量必须在使用前初始化。

(错)答案:错四、简答题1. 请简述C语言中的指针和引用的主要区别。

答案:指针是一个变量,其值为另一个变量的地址,而引用是另一个变量的别名,它必须在定义时初始化,并且不能重新指向其他变量。

(完整版)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语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。

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语言题库(含答案)一、简答题。

( 共14题 ,共0分,每题0分 )1. int i=10, j=10, k=3; k*=i+j; k最后的值是?答:k = 60ok2. 写出程序结果:void Func(char str[100]){printf("%d\n", sizeof(str));}答:4或者8(如果操作系统为32位则为4,64位则为8)是地址吗3. 写出sizeof(struct name2)的结果struct name2{char str;int num;short x;}不会!看结构答:此题考察结构对齐的知识,结果为124. 写出sizeof(struct name1) 的结果struct name1{char str;short x;int num;}不会!答:同样考察的是结构对齐的知识,结果为85. A.c 和B.c两个c文件中使用了两个相同名字的static变量,编译的时候会不会有问题?这两个static变量会保存到哪里(栈还是堆或者其他的)?答:没有问题,static变量只在当前文件中有效,也就是说static 变量的作用域属于所在的文件域。

static变量保存在全局/静态区6. (void *)ptr 和(*(void**))ptr的结果是否相同?答:相同。

首先第一个(void *)ptr将ptr转换为空指针类型(一级指针),(*(void**))ptr相当于先将ptr转换为空类型指针(二级指针)。

二级指针是指向指针的指针,在前面加上*(解指针),也就是空类型指针了(一级指针)。

7. #define DOUBLE(x) x+x ,i = 5*DOUBLE(5);i 是多少?答: i = 5 * 5+5 = 30;看书上的结构理解下意思8. 下面的声明都是什么意思?const int a;int const a;const int *a;int * const a;int const * const a ;答:第一个定义常量a,第二个也是定义常量a,第三个定义常量指针a,第四个定义指针常量a,第五个定义指向常量的指针常量(相当于const引用)。

大学C语言考试题库(含标准答案)

大学C语言考试题库(含标准答案)

择选单项==================================================题号:1482执行以下程序段后,输出结果和a的值是()。

int a=10 。

printf("%d",a++) 。

A、11 和10B、11 和11C、10 和11D、10 和10答案:C题号:2100已知字符'A' 的ASCⅡ代码值是65, 字符变量c1的值是'A',c2 的值是'D'. 执行语句printf("%d,%d",c1,c2-2) 。

后, 输出结果是A、65,66B、A,BC、65,68D、A,68答案:A题号:5055相同结构体类型的变量之间,可以()。

A、比较大小B、地址相同C、赋值D、相加答案:C题号:3217int a[10] 。

合法的数组元素的最小下标值为()。

A、1B、0C、10D、9答案:B题号:45能正确表示逻辑关系:" a ≥10或a≤0 " 的C语言表达式是A、a>=0 | a<=10B、a>=10 or a<=0C、a>=10 && a<=0D、a>=10 || a<=0D题号:157main(){int x=1,a=0,b=0 。

switch (x){ case 0: b++ 。

case 1: a++ 。

case 2: a++ 。

b++。

} printf("a=%d,b=%d",a,b) 。

} 该程序的输出结果是( )A、2,2B、2,1C、1,1D、1,0答案:B题号:4784设变量a是整型,f 是实型,i 是双精度型,则表达式10+'a'+i*f 值的数据类型为()。

A、不确定B、doubleC、intD、float 答案:B题号:1647以下程序中,while 循环的循环次数是______main(){int i=0 。

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

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

能够实现此功能的是(D)(intx,inty){inttemp;temp=x;x=y;y=temp;}(int*x,int*y){inttemp;temp=x;x=y;y=temp;}(int*x,int*y){inttemp;temp=*x;*x=*y;*y=temp;}(int*x,int*y){int*temp;temp=x;x=y;y=temp;}11.求一个角的正弦函数值的平方。

能够实现此功能的函数是(B)A.sqofsina(x){floatx;return(sin(x)*sin(x));}(x){floatx;return(sin((double)x)*sin((double)x));}(x){return(((sin(x)*sin(x));}(x){floatx;return(double(sin(x)*sin(x)));12.已知函数定义如下:floatfun1(intx,inty){floatz;z=(float)x/y;return(z);}主调函数中有inta=1,b=0;可以正确调用此函数的语句是(D) ("%f",fun1(a,b));("%f",fun1(&a,&b));("%f",fun1(*a,*b));D.调用时发生错误13.下面函数的功能是(B)a(s1,s2)chars1[],s2[];{while(s2++=s1++);}A.字符串比较B.字符串复制C.字符串连接D.字符串反向二、填空题1.在C语言中,存储类型为局部和自动型的变量,只能在使用它们时才占用存储空间。

2.在一个源文件中定义的全局变量的作用域为整个源程序。

3.下面程序的执行结果是84intd=1;fun(intp){intd=5;d+=p++;printf(“%d”,d);}main(){inta=3;fun(a);d+=a++;printf(“%d”,d);}4.该fun函数的功能是求10的阶乘。

1)#include2)longfun(intn)3){if(___1___)4)return(n*fun(___2___));5)elseif(___3___)6)return1;}第一处:n>1第二处:n-1·第三处:n==1解析:从第2、4行看到了函数名,函数体中又出现了函数的调用,则是递归。

我们知道:n!=n*(n-1)!这就是一个递归的表达式,写成函数就是fun(n)=n*fun(n-1)。

因此,4行处填写n-1。

又:1!=1故3,5行就好填了。

因此答案是n>1n-1n==1。

还有0!=1故,还可填写:n>0n-1n==0注意:35行的条件是相反的,这也是if与else条件的互斥性。

5.程序的功能是计算s=1!+2!+3!+……+n!1)longfun(intn)2){inti;3)longs;4)s=___1___;5)for(i=1;i<=n;i++)6)s=___2___;7)returns;8)}9)main()10){longs;11)intk,n;12)scanf("%d",&n);13)s=___3___;14)for(k=1;k<=n;k++)15)s=___4___;16)printf("%ld\n",s);17)}第一处:1第二处:s*i第三处:0第四处:s+fun(k)解析:首先,搞清楚函数fun、main各自的功能。

Fun是求一个数的阶乘,我们知道:n!=1*2*3*…*n同时要死记住:求积,积的初值一般等于1。

故fun中s是用来存放积的,其初值等于1;求阶乘是连乘,故s=s*iMain是求和,记住:和的初值一般等于0.两个函数中的局部变量s的作用是不同的。

Main中的s是存放和的。

最后:注意一些变量的类型。

阶乘是求积,积的增长速度是比较快的,为防止溢出,fun的返回值类型是long。

输出中ld是输出长整数。

6.请在函数fun的横线上填写若干个表达式,使从键盘上输入一个整数n,输出斐波纳契数列。

斐波契数列是一种整数数列,其中每数等于前两数之后,如:0……1)intfun(intn){2)if(___1___)3)return0;4)elseif(___2___)5)return1;6)else7)return___3___;8)}第一处:n==0第二处:n==1第三处:fun(n-1)+fun(n-2)解析:求斐波契数列:一项等于其前两项的和。

这也是一个递归。

求斐波契数列的第n项的值,n从0开始。

7.请补全函数fun,该函数的功能是求出以下分数序列的前n项之和。

和值通过函数值返回到main函数。

1)#include2)#include3)___1___fun(intn)4){inta,b,c,k;5)doubles;6)s=;7)a=2;8)b=1;9)for(k=1;k<=n;k++)10){11)s=s+(___2___)a/(___3___)b;12)c=a;13)a=a+b;14)b=c;15)}16)returns;17)}第一处:double第二处:double第三处:double解析:从第11----14总结出数列的表达式。

第1项是a/b=2/1;3/24/3故:s=2/1+3/2+4/3+……和的初值是0。

记住:两个整数进行算术运算结果也是整数,算术运算中只要有一个操作数是实数,运算结果就是实数。

本题希望结果是实数,故要进行强制类型转换,2,3只要有一个进行强制转换就可以了。

最后,函数需要有一个返回值类型,当然也是双精度浮点数了。

8.给定程序的功能是计算并输出下列级数的前N项之和SN,直到SN大于q为止,q的值通过形参传入。

1)doublefun(doubleq)2){intn;3)doubles;4)n=2;5)s=;6)while(s___1___q)7){8)s=s+(double)(n+1)/n;9)___2___;10)}11)printf("n=%d\n",n);12)___3___;13)}第一处:s<=q第二处:n++第三处:returns解析:从第8行,从数学的角度总结出数列的表达式。

(n+1)/nn从2开始,每次增加1,故:SN=2+3/2+4/3+……和的初值是循环条件是“SN大于q为止”,while是满足条件才循环,故填写s<=q最后,函数需要有一个返回值。

9.给定程序功能是计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…+f(n)的值。

floatf(doublex){if(x==||x==return___1___;elseif(x<return(x-1)/(x-2);elsereturn(x+1)/(x-2);}doublefun(intn){inti;doubles=,y;for(i=-n;i<=___2___;i++){y=f*i);s+=y;}return___3___;}main(){printf("%f\n",fun(5));}第一处:第二处:n第三处:s解析:函数f(doublex)求每个单项的值。

if……else的条件是互斥的。

fun()是求和。

10.给定程序的功能是计算score中m个人的平均成绩aver,将低于aver的成绩放在below中,通过函数名返回人数。

intfun(intscore[],intm,intbelow[]){inti,j=0;floataver=;for(i=0;i<m;i++)aver+=score[i];aver/=(float)m;for(i=0;i<m;i++)if(score[i]<aver)below[j++]=___1___;returnj;}main(){inti,n,below[9];intscore[9]={10,20,30,40,50,60,70,80,90};n=fun(score,9,___2___);printf("\nBelowtheaveragescoreare:");for(i=0;i<n;i++)printf("%d",___3___);}第一处:score[i]第二处:below第三处:below[i]解析:求平均值,应先求和。

此处,和与平均值使用了同一个变量。

Score[]是原来的成绩,Below【】存放低于平均分的分数,还有人数。

相关文档
最新文档