C语言上机考试_第1页
C语言上机考试_第2页
C语言上机考试_第3页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、单项选择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

2、 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、单

3、向值传递答案: 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语言程序将从源程序中 ,第一个函数开始执行

4、C、可以在程序中 ,由用户指定任意一个函数作为主函数,程序将从此开始执行D、C语言规定必须用 main()作为主函数名 ,程序将从此开始执行 ,在此结束答案: D10. 题号: 5137以下函数的类型是fff(float x)printf("%dn",x);A、可以在任意位置B、必须在程序的最后C、必须在程序的开始D、必须在系统调用的库函数之后答案: A11. 题号: 4112C语言规定 ,函数返回值的类型是 ().A、由 return 语句中的表达式类型所决定B、由调用该函数时的主调函数类型所决定C、由调用该函数时系统临时决定D、由定义该函数时所指定的数值类型决定答案:

5、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(

6、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、做为一个函数的形

7、参C、出现在一个表达式中D、出现在执行语句中A、数组每个元素中的值B、数组的首地址C、数组的长度D、数组每一个元素的地址答案: B17. 题号: 5014若用数组名作为函数的实参,传递给形参的是 ().A、数组的首地址B、数组元素的个数C、数组第一个元素的值D、数组中 ,全部元素的值答案: A18. 题号: 4843如果在一个函数中的复合语句中,定义了一个变量 ,以下正确的说法是 ().A、该变量在本程序范围内均有效B、该变量只在该复合语句中,有效C、该变量在该函数中 ,有效D、该变量在主函数中 ,有效答案: B19. 题号: 4319C语言中 ,规定 ,程序中 ,各函数之间 ().A、既允许

8、直接递归调用也允许间接递归调用B、允许直接递归调用不允许间接递归调用C、不允许直接递归调用允许间接递归调用D、不允许直接递归调用也不允许间接递归调用答案: A20. 题号: 5062凡是函数中 ,未指定存储类别的局部变量,其隐含的存储类别为 ().A、自动 (auto)B、静态 (static)C、外部 (extern)D、寄存器 (register)答案: A21. 题号: 4672以下叙述中 ,正确的是 ().A、构成 C程序的基本单位是函数B、main()函数必须放在其它函数之前C、所有被调用的函数一定要在调用之前进行定义D、可以在一个函数中 ,定义另一个函数答案: A22. 题号: 4

9、236全局变量的定义不可能在().A、最后一行B、文件外面C、函数内部D、函数外面答案: C23. 题号: 4754以下对 C语言函数的描述中正确的是().A、C程序中有调用关系的所有函数必须放在同一个程序文件中B、C函数既可以嵌套定义又可以递归调用A、staticB、autoC、无存储类别D、extern答案: B24. 题号: 4578若已定义的函数有返回值,则以下关于该函数调用的叙述中,错误的是 ().A、函数调用可以作为一个函数的形参B、函数调用可以作为独立的语句存在C、函数调用可以作为一个函数的实参D、函数调用可以出现在表达式中,答案: A25. 题号: 4537以下正确的函数声明语

10、句是().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函数调用时 ,实参和形参在类型上应按位置与形

11、参一一对应匹配 ;如果类型不匹配 ,通常编译器并不给出出错信息 .答案:正确4. 题号: 4984一个 C程序只能由一个主函数组成答案:正确5. 题号: 4989C语言中 return 语句可以返回函数值 .如果 return 语句后表达式的值与函数说明的类型不一致,则以return 语句的表达式类型为准 ,系统将自行转换 .答案:错误6. 题号: 4783通过 return 语句 ,函数可以带回一个或一个以上的返回值.答案:正确7. 题号: 4175在C语言中 ,不允许函数嵌套定义 ,但函数可以嵌套调用 .答案:正确8. 题号: 4689return 语句可以在同一个函数中出现多次.答案:正

12、确9. 题号: 4097每次调用函数时 ,都要对静态局部变量重新进行初始化.答案:正确10. 题号: 4584函数调用时 ,要求实参与形参的个数必须一致,对应类型一致 .答案:正确11. 题号: 4055C语言程序总是从 main()函数开始执行 .答案:正确12. 题号: 4161没有初始化的整型静态局部变量的初值系统均默认为0.答案:正确13. 题号: 4349在C语言的函数中 ,必须有形参 .答案:错误14. 题号: 5108在C语言中 ,函数可以嵌套定义 ,但不能嵌套调用 .答案:错误二、填空题=1. 题号: 4286在函数中 ,需要返回一个结果时 ,可以使用 _语句 .答案:空1:r

13、eturn2. 题号: 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&&aj<aj-1;j-) int t=aj;aj=aj-1;aj-1=t;答案:空1

14、:用冒泡法由小到大排序【或】冒泡法排序【或】 排序【或】 由小到大排序6. 题号: 4885函数调用时的实参和形参之间的数据是单向的_传递 .答案:空1:值7. 题号: 4690如果函数不要求返回值 ,可用 _来定义函数为空类型 .答案:空1:void三、程序设计=1. 题号: 7041/*-【程序设计】-题目:函数 fact(x)的功能是求 x!。编写 main程序调用函数 fact求解从 m个元素选 n个元素的组合数的个数。计算公式是:组合数m!/(n!.(m-n)!) 。要求 :m不能小于 n,否则应有容错处理。-注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅

15、在函数 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",

16、&m,&n);zhsgs=fact(m)/(fact(n)*fact(m-n);/*End*/printf(" 从%d个元素选 %d个元素的组合数的个数是:%dn",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)pr

17、intf("Write File Error");for(n=0;n<5;n+)fscanf(IN,"%d",&i);o = fact(i);fprintf(OUT,"%ldn",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/*-【程序设

18、计】-题目:对某一正数的值保留2位小数,并对第三位进行四舍五入。注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。*Begin*和*End*不可删除-*/#include ""#include""void TestFunc();float fun(float h)/*Begin*/int i;It May Be Changed");OUT=fopen("","w");if(OUT=NULL)printf("Please Ver

19、ify The Current Dir. It May Be Changed");for(i=0;i<10;i+)fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%dn",iOUT);fclose(IN);fclose(OUT);2. 示例代码:int i,k=1; if(m<=1) k=0; for(i=2;i<m;i+)if(m%i=0) k=0; return k;3. 题号: 6959/*-【程序设计】-题目:产生 20个30,120上的随机整数放入二维数组a54

20、 中,求每行元素的和。-注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。*Begin*和*End*不可删除-*/#include ""#include <>voidbky();void row_sum(int a54,int b5)/*Begin*/*End*/main()void row_sum();int a54,b5,i,j;for(i=0;i<5;i+)for(j=0;j<4;j+)aij=rand(120-30+1)+30;for(i=0;i<5;i+)for(j=0;j

21、<4;j+)printf("%5d",aij);printf("n");row_sum(a,b);for(i=0;i<5;i+)printf("%6d",bi);printf("n");bky();void bky()FILE *IN,*OUT;int m,n;int i54;int o5;IN=fopen("","r");if(IN=NULL)printf("Read FILE Error");OUT=fopen("",&

22、quot;w");if(OUT=NULL)printf("Write FILE Error");for(m=0;m<5;m+)for(n=0;n<4;n+)fscanf(IN,"%d",&imn);row_sum(i,o);for(n=0;n<5;n+)fprintf(OUT,"%dn",on);fclose(IN);fclose(OUT);3. 示例代码:int i,j;for(i=0;i<5;i+) bi=0; for(j=0;j<4;j+)bi=bi+aij;第六题的完整程序如下。

23、已经在dev-c+编译通过。#include <>#include <>/* run this program using the console pauser or add your own getch, system("pause") or input loop */void row_sum(int a54,int b5)/*Begin*/int i,j;for(i=0;i<5;i+) bi=0; for(j=0;j<4;j+)bi=bi+aij;/*End*/int main(int argc, char *argv) int a5

24、4,b5,i,j;m-n)!) 。要求 :m不能小于 n,否则应有容错处理。while(m<n)printf("m 和 n 输入错!请重新输入:n");scanf("%d%d",&m,&n);zhsgs=fact(m)/(fact(n)*fact(m-n);题目:对某一正数的值保留2位小数,并对第三位进行四舍五入。注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。int i;i=(int)(h*1000)%10;if(i>=5)return(int)(h*1

25、00+1)/;elsereturn(int)(h*100)/;题目 :编写一个函数 fun ,它的功能是:实现两个字符串的连接(不使用库函数strcat )。例如,分别输入下面两个字符串:FirstString-SecondString程序输出:FirstString-SecondString注意:部分源程序存在文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。char *point1,*point2;point1=p1;point2=p2;while(*point1)!='0') point1+;while(*point2!=

26、'0')*point1=*point2;point1+;point2+;*point1='0'题目 :能计算从 1开始到 n的自然数中偶数的平方的和,n由键盘输入,并在main() 函数中输出。(n是偶数)注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。int sum,i;sum =0;for(i=2;i<=n;i=i+2)sum=sum+i*i;return(sum);题目:将 100到 200之间的素数及素数的个数打印出来。注意:部分源程序给出如下。请勿改动主函数main和其它函数

27、中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。int i,k=1;if(m<=1) k=0;for(i=2;i<m;i+)if(m%i=0) k=0;return k;题目:主函数中产生20个30,120 上的随机整数存放到了二维数组a54中,编写函数,求每行元素的和,到数组b中。int i,j;for(i=0;i<5;i+) bi=0; for(j=0;j<4;j+)bi=bi+aij;题目编写函数 fun ,它的功能是:计算正整数n的所有因子( 1和 n除外)之和作为函数值返回。例如: n=120时,函数值为 239 。注意:部分源程序存在文件中。请

28、勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干语句。int i,s=0;for (i=2;i<n;i+)if (n%i=0) s=s+i;return (s);题目编写函数 fun ,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。 Xn+1=cos(Xn)迭代步骤如下:( 1)取 x1初值为;( 2)x0=x1,把 x1的值赋给 x0;( 3)x1=cos(x0),求出一个新的 x1;( 4)若 x0-x1的绝对值小于,执行步骤( 5),否则执行步骤( 2);( 5)所求 x1就是方程 cos(x)-x=0的一个实

29、根,作为函数值返回。程序将输出结果 Root=。注意:部分源程序存在文件中。请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干语句。double x1,x0;x1=;x0=x1;x1=cos(x0);while (fabs(x0-x1)>x0=x1;x1=cos(x0);return(float)x0);题目 :编写函数判断一个整数m的各位数字之和能否被7整除,可以被 7整除则返回 1,否则返回 0。调用该函数找出100200之间满足条件的所有数。int k,s=0;dos=s+m%10;m=m/10;while(m!=0);if(s%7=0)k=

30、1;else k=0;return(k);题目:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。例如:若程序执行时输入字符串为:mmkknnnppp从键盘上输入字符:n,则输出后变为:mmkkppp ,如果输入的字符在字符串中不存在,则字符串照原样输出。int i=0,j=0;while(si!='0')if(si!=c) sj+=si;i+;sj='0'题目 : 请编写一个函数void fun(int m,int k,int xx),该函数的功能是:将大于整数m 且紧靠 m 的 k 个素数存入xx 所指的数组中。例如,若输入17, 5,则应输出:

31、19, 23, 29,31, 37。int i, j ,total=0;int *p_xx=xx;for(i=m+1;i+)for(j=2;j<i;j+) if(i%j=0)break ;if(i<=j)*p_xx=i;p_xx+;total+;if(total=k)*p_xx='/0'break;编程将两个字符串连接成一个字符串,并将连接后的字符串按升序排列。如字符串s1 的值为 "pear", 字符串s2的值是 "apple", 连接后的字符串存入字符数组s3,排序后得到 "aaeelpppr" 。fo

32、r(i=0;i<n-1;i+)for(j=0;j<n-1-i;j+)if(s3j>s3j+1)t=s3j;s3j=s3j+1;s3j+1=t;题目:从字符串s 中删除指定的字符c。int i,k=0;for(i=0;si!='0'i+)if(si!=c) sk+=si;sk='0'题目 :编写程序完成将一个数字字符串转换成相应的正整数,例如:字符串"3456" 转换成整数值3456。int sum=0,i;for(i=0;si!=0;i+)sum=sum*10+si-48;return sum;题目:将s 所指字符串中ASC

33、II 值为偶数的字符删除,串中剩余字符形成一个新串放在t 所指的数组中。int i, j=0,n;n=strlen(s);for(i=0;i<n;i+)if(si%2) tj+=si;tj=0;题目:编写函数fun 其功能是:根据整型形参m,计算如下公式的值: y=1/2!+1/4!+1/m! ( m 是偶数)double y=;int i,j;double s=1;for (i=2;i<=m;i+=2)for(j=i-1;j<=i;j+)s=s*j;y=y+s;return y;题目:编写函数求3!+6!+9!+12!+15+18!+21! 。int i,j;float t

34、,s=0;for(i=3;i<=n;i=i+3)t=1;for(j=1;j<=i;j+)t=t*j;s=s+t;return(s);题目 :输出 20-2000 所范围内有的回文数。提示:回文数的各位数字正序和倒序一样。如:22, 323, 1221 ,都是回文数。int ap=0,p=n;while(p!=0)ap=ap*10+p%10;p=p/10;if(ap=n) return 1;else return 0;题目请编写函数fun ,其功能是:计算并输出3 到 n 之间所有素数的平方根之和。int i,j=0;double s=0;for (i=3;i<=n;i+) f

35、or (j=2;j<i;j+)if (i%j=0) break;if (j=i)s=s+sqrt(i);return s;题目 :要求:求100 以内的所完数。所谓完数,是指该数的因子之和(不包含本身)等于该数本身的数,例如:6=1+2+3int s=0,i;for(i=1;i<n;i+)if(n%i=0) s=s+i;if(s=n) return 1;else return 0;题目:函数fact(x) 的功能是求x!。编写 main 程序调用函数fact 求解从 m 个元素选n 个元素的组合数的个数。计算公式是:组合数m!/(n!.(m-n)!)。要求 :m 不能小于n,否则应有容错处理。while(m<n)printf("m 和 n 输入错!请重新输入:n");scanf("%d%d",&m,&n);zhsgs=fact(m)/(fact(n)*fa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论