当前位置:文档之家› C语言上机考试

C语言上机考试

一、单项选择1.题号:4889以下函数调用语句中,实参的个数是().exce((v1,v2),(v3,v4,v5),v6);A、3B、4C、5D、6A、可以在同一个函数中,出现多次B、在主函数和其他函数中,均可出现C、必须在每个函数中,出现D、只能在除主函数之外的函数中,出现一次A、该数组的首地址B、该数组的元素个数C、该数组中各元素的值D、该数组的长度答案:A2.题号:4525在C语言的函数中,下列正确的说法是().A、数组名不能作形参B、可以有也可以没有形参C、形参必须是变量名D、必须有形参答案:B3.题号:4083以下正确的函数定义形式是().A、double fun(int x,int y)B、double fun(int x;int y)A、main()B、#include""C、scanfD、printf答案:A4.题号:4048下面对函数的叙述,正确的是().A、函数中无论是否有return语句,都能返回正确值B、函数中没有return语句,说明不带回值C、函数不能嵌套定义D、函数的返回值是通过return语句获得的答案:C5.题号:4073在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是().A、传递方式由用户指定B、由实参传给形参,再由形参传回实参C、地址传递D、单向值传递答案:D6.题号:5119下列关于函数的叙述中正确的是().A、每个函数都可以单独运行A、5B、3C、2D、4答案:C7.题号:4901在C语言中,形参的缺省存储类是().A、staticB、registerC、autoD、extern答案:C8.题号:4507C语言规定,在一个源程序中,main()函数的位置.A、必须在最开始B、必须在系统调用的库函数的后面C、可以任意D、必须在最后答案:C9.题号:4847以下叙述中,正确的是().A、main()可作为用户标识符,用以命名任意一个函数作为主函数B、C语言程序将从源程序中,第一个函数开始执行C、可以在程序中,由用户指定任意一个函数作为主函数,程序将从此开始执行D、C语言规定必须用main()作为主函数名,程序将从此开始执行,在此结束答案:D10.题号:5137以下函数的类型是fff(float x){printf("%d\n",x);}A、可以在任意位置B、必须在程序的最后C、必须在程序的开始D、必须在系统调用的库函数之后答案:A11.题号:4112C语言规定,函数返回值的类型是().A、由return语句中的表达式类型所决定B、由调用该函数时的主调函数类型所决定C、由调用该函数时系统临时决定D、由定义该函数时所指定的数值类型决定答案:D12.题号:4804以下所列的函数"首部"中,正确的是().()A、void play(int a,b)B、void play(int a,int b)C、void play(a:int,b:int)D、void play(a as int,b as int)答案:B13.题号:4432有以下函数定义:int fun(double a,double b){return a*b;}若以下选项中,所用变量都已正确定义并赋值,错误的函数调用是().A、z=fun(fun(x,y),fun(x,y));B、z=fun(fun(x,y)x,y);C、if(fun(x,y)){……}D、fun(x,y);答案:B14.题号:5050对于void 类型函数,调用时不可作为().A、if语句的成分语句B、表达式C、循环体里的语句D、自定义函数体中的语句A、必须在主调函数中,说明此数组的大小B、实参数组类型与形参数组类型可以不匹配C、实参数组名与形参数组名必须一致D、在被调用函数中,不需要考虑形参数组的大小答案:A15.题号:4696在C语言中,调用函数除函数名外,还必须有().A、实际参数B、()C、函数预说明D、函数返回值答案:B16.题号:4892以下错误的描述是:函数调用可以().A、做为一个函数的实参B、做为一个函数的形参C、出现在一个表达式中D、出现在执行语句中A、数组每个元素中的值B、数组的首地址C、数组的长度D、数组每一个元素的地址17.题号:5014若用数组名作为函数的实参,传递给形参的是().A、数组的首地址B、数组元素的个数C、数组第一个元素的值D、数组中,全部元素的值答案:A18.题号:4843如果在一个函数中的复合语句中,定义了一个变量,以下正确的说法是().A、该变量在本程序范围内均有效B、该变量只在该复合语句中,有效C、该变量在该函数中,有效D、该变量在主函数中,有效答案:B19.题号:4319C语言中,规定,程序中,各函数之间().A、既允许直接递归调用也允许间接递归调用B、允许直接递归调用不允许间接递归调用C、不允许直接递归调用允许间接递归调用D、不允许直接递归调用也不允许间接递归调用答案:A20.题号:5062凡是函数中,未指定存储类别的局部变量,其隐含的存储类别为().A、自动(auto)B、静态(static)C、外部(extern)D、寄存器(register)21.题号:4672以下叙述中,正确的是().A、构成C程序的基本单位是函数B、main()函数必须放在其它函数之前C、所有被调用的函数一定要在调用之前进行定义D、可以在一个函数中,定义另一个函数答案:A22.题号:4236全局变量的定义不可能在().A、最后一行B、文件外面C、函数内部D、函数外面答案:C23.题号:4754以下对C语言函数的描述中正确的是().A、C程序中有调用关系的所有函数必须放在同一个程序文件中B、C函数既可以嵌套定义又可以递归调用A、staticB、autoC、无存储类别D、extern答案:B24.题号:4578若已定义的函数有返回值,则以下关于该函数调用的叙述中,错误的是().A、函数调用可以作为一个函数的形参B、函数调用可以作为独立的语句存在C、函数调用可以作为一个函数的实参D、函数调用可以出现在表达式中,答案:A25.题号:4537以下正确的函数声明语句是().A、int add(int a,int b)A、1990B、1996C、2000D、1992答案:A26.题号:5040以下叙述中,不正确的是().A、在一个函数内定义的变量只在本函数范围内有效B、在一个函数内的复合语句中,定义的变量在本函数范围内有效A、实参与形参是双向传递函数说明语句的三种形式:int max(int a,int b);答案:正确1.题号:4577静态局部变量是在编译时被初始化的,故它只被赋初值一次.答案:正确2.题号:4846gets 函数是用来输入一个字符的函数.答案:正确3.题号:4767函数调用时,实参和形参在类型上应按位置与形参一一对应匹配;如果类型不匹配,通常编译器并不给出出错信息.答案:正确4.题号:4984一个C程序只能由一个主函数组成答案:正确5.题号:4989C语言中return语句可以返回函数值.如果return语句后表达式的值与函数说明的类型不一致,则以return语句的表达式类型为准,系统将自行转换.答案:错误6.题号:4783通过return语句,函数可以带回一个或一个以上的返回值.答案:正确7.题号:4175在C语言中,不允许函数嵌套定义,但函数可以嵌套调用.答案:正确8.题号:4689return 语句可以在同一个函数中出现多次.答案:正确9.题号:4097每次调用函数时,都要对静态局部变量重新进行初始化.答案:正确10.题号:4584函数调用时,要求实参与形参的个数必须一致,对应类型一致.答案:正确11.题号:4055C语言程序总是从main()函数开始执行.答案:正确12.题号:4161没有初始化的整型静态局部变量的初值系统均默认为0.答案:正确13.题号:4349在C语言的函数中,必须有形参.答案:错误14.题号:5108在C语言中,函数可以嵌套定义,但不能嵌套调用.答案:错误二、填空题==================================================1.题号:4286在函数中,需要返回一个结果时,可以使用_____语句.答案:空1:return2.题号:4371函数的_____调用是一个函数直接或间接地调用它自身.答案:空1:递归3.题号:4333C语言中,格式输入操作是由库函数_____完成的,格式输出操作是由库函数_____完成的.答案:空1:scanf空2:printf4.题号:4373C源程序中的主函数的名称必须是_____。

答案:空1:main5.题号:4601下述函数的功能是_____。

void func(int a[ ],int n){ int i,j;for(i=1;i<n;i++){ for(j=i;j>0&&a[j]<a[j-1];j--){ int t=a[j];a[j]=a[j-1];a[j-1]=t;}}}答案:空1:用冒泡法由小到大排序【或】冒泡法排序【或】排序【或】由小到大排序6.题号:4885函数调用时的实参和形参之间的数据是单向的_____传递.答案:空1:值7.题号:4690如果函数不要求返回值,可用_____来定义函数为空类型.答案:空1:void三、程序设计==================================================1.题号:7041/*------------------------------------------------【程序设计】--------------------------------------------------题目:函数fact(x)的功能是求x!。

编写main程序调用函数fact求解从m个元素选n个元素的组合数的个数。

计算公式是:组合数=m!/(n!.(m-n)!)。

要求:m不能小于n,否则应有容错处理。

--------------------------------------------------注意:部分源程序给出如下。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

*********Begin**********和********** End **********不可删除------------------------------------------------*/#include ""long fact(int x)int i;y=1;for(i=1;i<=x;i++)y=y*i;return y;}main(){int m,n;long zhsgs;printf("请输入m和n:\n"); scanf("%d%d",&m,&n);/**********Begin**********/while(m<n){printf("m和n输入错!请重新输入:\n");scanf("%d%d",&m,&n);}zhsgs=fact(m)/(fact(n)*fact(m-n));/********** End **********/printf("从%d个元素选%d个元素的组合数的个数是:%d\n",m,n,zhsgs); getch();yzj();}yzj(){FILE *IN,*OUT;int n;int i;long o;IN=fopen("","r");if(IN==NULL){printf("Read File Error");}OUT=fopen("","w");if(OUT==NULL){printf("Write File Error");}for(n=0;n<5;n++){fscanf(IN,"%d",&i);o = fact(i);fprintf(OUT,"%ld\n",o);}fclose(IN);fclose(OUT);}1.示例代码:while(m<n){printf("m和n输入错!请重新输入:\n");scanf("%d%d",&m,&n);}zhsgs=fact(m)/(fact(n)*fact(m-n));2.题号:6931/*------------------------------------------------【程序设计】--------------------------------------------------题目:对某一正数的值保留2位小数,并对第三位进行四舍五入。

相关主题