计算机C语言期末考试复习试题及答案[1].pdf
《计算机C语言期末考试复习试题及答案[1].pdf》由会员分享,可在线阅读,更多相关《计算机C语言期末考试复习试题及答案[1].pdf(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C 语言复习题【程序填空】题目:利用全局变量计算长方体的体积及三个面的面积。/int s1,s2,s3;int vs(int a,int b,int c)int v;/*SPACE*/v=【?】;s1=ab;/*SPACE*/s2=【?】;s3=a*c;return v;main()int v,l,w,h;clrscr();printf(”ninput length,width and height:);/*SPACE*/scanf(”%d%d%d,【?】,w,h);/*SPACE*/v=【?】;printf(”v=d s1=d s2=d s3=%dn,v,s1,s2,s3);getch();
2、答案:=(答案 1)=a*b*c =或=a*b*c =(答案 2)=b*c =或=b*c =(答案 3)=&l =(答案 4)=vs(l,w,h)=或=vs(l,w,h)第 2 题(12。0 分)题号:441 /-【程序填空】题目:给定程序中函数 fun 的功能是:从低位开始取出长整型变量 s 中奇数位上的数,依次构成一个新数放在 t 中。*/#include conio.h#include void fun(long s,long*t)long sl=10;s/=10;/*SPACE*/t=s【?】10;while(s0)/*SPACE*/s=【?】;/*SPACE*/t=s%10sl【?】
3、;/*SPACE*/sl=sl【?】10;main()long s,t;clrscr();printf(”nPlease enter s:);scanf(”ld”,s);fun(s,&t);printf(”The result is:%ldn,t);答案:=(答案 1)=(答案 2)=s/100 四、程序改错共 2 题(共计 22 分)第 1 题(11。0 分)题号:383 /*-【程序改错】题目:给定程序的功能是:读入一行英文文本,将其中每个单词的最后一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。例如,若输入 I am a student to take the
4、 examination。,则应输出I aM A studenT tO takE thE examination。”.注意:不可以增加或删除程序行,也不可以更改程序的结构。*/include conio。h include stdio.h include”ctype.h include”string。h up1st(char p)/*FOUND*/integer k=0;for(;p;p+)if(k)/*FOUND*/if(p=)k=0;/*FOUND*/*(p 1)=toupper((p 1);else if(p!=)k=1;(p1)=toupper(*(p-1));main()char c
5、hrstr81;printf(”nPlease enter a string:”);gets (chrstr);printf(”nnBefore changing:n%s,chrstr);up1st(chrstr);printf(”nAfter changing:n s,chrstr);答案:=(答案 1)=int k=0;=(答案 2)=if(p=)=(答案 3)=*(p-1)=toupper(p 1);第 2 题(11。0 分)题号:431 /*-【程序改错】题目:编写函数 fun 求 1000 以内所有 8 的倍数之和。注意:不可以增加或删除程序行,也不可以更改程序的结构。include
6、stdio。h”define N 1000 main()int sum;sum=fun(8);printf(”d 以内所有%d 的倍数之和为:dn”,N,8,sum);getch();int fun(int m)/*FOUND*/int s=0;i;/*FOUND*/for(i=1;iN;i+)/*FOUND*/if(i/m=0)s+=i;return s;答案:=(答案 1)=int s=0,i;=(答案 2)=for(i=1;iN;i+)=(答案 3)=if(im=0)五、程序设计共 1 题(共计 14 分)第 1 题(14.0 分)题号:390 /-【程序设计】题目:求一批数中最大值和最
7、小值的差。注意:部分源程序给出如下.请勿改动主函数 main 和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。-/int max_min(int a,int n)/*Program*/*End*/#define N 30 include”stdlib.h include stdio.h main()int aN,i,k;clrscr();for(i=0;iN;i+)ai=random(51)+10;for(i=0;iN;i+)printf(”%5d,ai);if((i+1)%5=0)printf(n);k=max_min(a,N);printf(”the result is:d
8、n”,k);yzj();getch();yzj()FILE*IN,OUT;int n;int i30;int o;IN=fopen(”in.dat,r);if(IN=NULL)printf(Read File Error);OUT=fopen(”out.dat,”w);if(OUT=NULL)printf(Write File Error);for(n=0;n5;n+)fscanf(IN,”%d,in);o=max_min(i,5);fprintf(OUT,”%dn”,o);fclose(IN);fclose(OUT);答案:-int i,max,min;max=min=a0;for(i=1;
9、imax)max=ai;else if(ai min)min=ai;return(maxmin);题目:以下程序的功能是用冒泡法对数组 a 进行由小到大的排序。void fun(int a,int n)int i,j,t;/*SPACE*/for(j=0;【?】;j+)/*SPACE*/for(i=0;【?】;i+)/*SPACE*/if(【?】)t=ai;ai=ai+1;ai+1=t;main()int i,a10=3,7,5,1,2,8,6,4,10,9;/*SPACE*/【?】;for(i=0;i10;i+)printf(”%3d”,ai);答案:=(答案 1)=j=n1 =或=n1=j
10、 =或=j=1+n =或=1+n=j =或=jn =或=nj =(答案 2)=ii =或=ii =或=i=nj-2 =或=ia i+1 =或=a i+1 ai =(答案 4)=fun(a,10)【程序设计】题目:请用 for 循环编写编写函数 fun,函数的功能是:计算 n 门课程的平均值,计算结果作为函数值返回。例如,若有 5 门课程的成绩是:92,76,69,58,88,则函数的值为 76。600000。注意:部分源程序给出如下。请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句.-/include stdio.h”float fun(int
11、 a,int n)/*Program*/*End*/main()int a=92,76,69,58,88;printf(”y=%fn”,fun(a,5));yzj();yzj()FILE*IN,OUT;int iIN10,i,j;float fOUT;IN=fopen(18。in”,”r”);if(IN=NULL)printf(”Please Verify The Currernt Dir。It May Be Changed);OUT=fopen(”18.out”,”w);if(OUT=NULL)printf(”Please Verify The Current Dir.It May Be C
12、hanged);for(j=0;j10;j+)for(i=0;i5;i+)fscanf(IN,d”,iINi);fOUT=fun(iIN,5);fprintf(OUT,fn”,fOUT);fclose(IN);fclose(OUT);答案:-int i;float y=0;for(i=0;i void strcopy(char str1,char*str2,int m)/*FOUND*/char p1,p2;int i,j;/*FOUND*/=str1+m;p2=str2;/*FOUND*/if(p1);*p2+=*p1+;p2=0;main()int i,m;char p1,*p2,str1
13、80,str280;p1=str1;p2=str2;gets(p1);scanf(”%d”,m);/*FOUND*/strcat(str10,str20,m);puts(p1);puts(p2);答案:=(答案 1)=char p1,*p2;=或=char p2,p1;=(答案 2)=p1=str1+m-1;=或=p1=1+str1+m;=(答案 3)=while(p1)=(答案 4)=strcopy(str1,str2,m);五、程序设计共 1 题(共计 14 分)第 1 题(14。0 分)题号:377 【程序设计】题目:编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三
14、个数据从大到小排序。注意:部分源程序给出如下。请勿改动主 函数 main 和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句.-/#include void swap(int*a,int b)/*Program*/*End*/main()int x,y,z;scanf(%d%dd”,x,y,z);if(xy)swap(&x,&y);if(xz)swap(x,&z);if(yz)swap(&y,z);printf(3d3d%3d,x,y,z);yzj();getch();yzj()FILE IN,*OUT;int m,n;int i2;int o;IN=fopen(in。dat”,r
15、);if(IN=NULL)printf(Read File Error);OUT=fopen(”out。dat”,”w);if(OUT=NULL)printf(”Write File Error”);for(n=0;n3;n+)for(m=0;m2;m+)fscanf(IN,d,&im);swap(&i0,&i1);fprintf(OUT,%dn,i0);fprintf(OUT,”dn”,i1);fclose(IN);fclose(OUT);答案:-int k;k=a;a=b;*b=k;【程序填空】题目:当输入“2,5的时候输出为“2 5 5”*/include#define max 100
16、main()int fmax,i,j,k,m;scanf(”%d,d”,&k,m);/*SPACE*/for(i=0;i=【?】;i+)fi=0;/*SPACE*/f【?】=1;for(i=k;i=m;i+)/*SPACE*/for(j=i-k;j=i-1;j+)fi【?】fj;printf(%d10d10dn,k,m,fm);答案:=(答案 1)=m =(答案 2)=k1 =或=k 1 =(答案 3)=+=或=1+第 2 题(12.0 分)题号:438 /-【程序填空】题目:求出二维数组中的最大元素值。-/#include stdio.h”void main()int a34=1,3,5,7
17、,2,4,6,8,15,17,34,12;/*SPACE*/printf(max value is%dn,【?】);max_value(m,n,array)/*SPACE*/int m,n,【?】;int i,j,max;max=array00;for(i=0;im;i+)for(j=0;jn;j+)/*SPACE*/if(maxarrayij)【?】;return(max);答案:=(答案 1)=max_value(3,4,a)=(答案 2)=array4 =(答案 3)=max=arrayij【程序改错】题目:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第
18、10 次落地时,共经过多少米?第 10 次反弹多高?注意:不可以增加或删除程序行,也不可以更改程序的结构./#includestdio.h”main()/*FOUND*/float sn=100.0;hn=sn/2;int n;/*FOUND*/for(n=2;n10;n+)sn=sn+2*hn;/*FOUND*/hn=hn%2;printf(the total of road is fn”,sn);printf(”the tenth is%f metern”,hn);答案:=(答案 1)=float sn=100。0,hn=sn/2;=(答案 2)=for(n=2;n=10;n+)=或=fo
19、r(n=2;n11;n+)=(答案 3)=hn=hn/2;五、程序设计共 1 题(共计 14 分)第 1 题(14。0 分)题号:40 /*-【程序设计】题目:请用 for 循环编写函数 fun,它的功能是:判断 m 是否为素数。主函数的功能是:求出 100 到 200之间的素数的个数。(注意:部分源程序给出如下.请勿改动主)函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。-/include”stdio.h”main()int m,k=0;for(m=100;m200;m+)if(fun(m))printf(%4d,m);k+;if(k%5=0)pri
20、ntf(”n);printf(”k=dn”,k);yzj();int fun(int m)/*Program*/*End*/yzj()FILE*IN,*OUT;int iIN,iOUT,i;IN=fopen(”12。in,r);if(IN=NULL)printf(”Please Verify The Currernt Dir.It May Be Changed”);OUT=fopen(12.out”,”w”);if(OUT=NULL)printf(”Please Verify The Current Dir。.It May Be Changed);for(i=0;i10;i+)fscanf(I
21、N,”d”,&iIN);iOUT=fun(iIN);fprintf(OUT,%dn,iOUT);fclose(IN);fclose(OUT);答案:-int i,k=1;if(m=1)k=0;for(i=2;im;i+)if(mi=0)k=0;return k;若使用一维数组名作函数实参,则以下正确的说法是().A:必须在主调函数中说明此数组的大小 B:实参数组类型与形参数组类型可以不匹配 C:在被调用函数中,不需要考虑形参数组的大小 D:实参数组名与形参数组名必须一致 答案:A 第 11 题(1.0 分)题号:125 下列程序的输出结果是().main()int a=7,b=5;printf
22、(dn,b=b/a);A:0 B:5 C:1 D:不确定值 答案:A 第 12 题(1。0 分)题号:2857 经过下列的语句 int j,a10,*p;定义后,下列语句中合法的是().A:p=p+2;B:p=a5;C:p=a2+2;D:p=&(j+2);答案:A 第 13 题(1。0 分)题号:378 下列字符序列中,不可用作 C 语言标识符的是()。A:b70 B:ab C:symbol D:a_1 答案:B 第 14 题(1。0 分)题号:3096 以下不是无限循环的语句为()。A:for(y=0,x=1;x+y;x=i+)i=x;B:for(;;x+=i);C:while(1)x+;D
23、:for(i=10;;i-)sum+=i;答案:A 第 15 题(1。0 分)题号:407 若 ch 为 char 型变量,k 为 int 型变量(已知字符 a 的 ASCII 十进制代码为 97),则以下程序段的执行结果是()。ch=a;k=12;printf(x,o,”,ch,ch,k);printf(k=dn,k);A:因变量类型与格式描述符的类型不匹配,输出无定值 B:输出项与格式描述符个数不符,输出为零值或不定值 C:61,141,k=%d D:61,141,k=12 答案:C 第 16 题(1.0 分)题号:484 在位运算中,操作数每右移一位,其结果相当于().A:操作数乘以 2
24、 B:操作数除以 2 C:操作数乘以 16 D:操作数除以 16 答案:B 第 17 题(1.0 分)题号:543 若有 int a10=0,1,2,3,4,5,6,7,8,9,*p=a;则输出结果不为 5 的语句为()。A:printf(”%d”,(a+5));B:printf(”d”,p5);C:printf(”d”,*(p+5));D:printf(%d,p5);答案:D 第 18 题(1.0 分)题号:301 以下标识符中,不能作为合法的 C 用户定义标识符的是()。A:a3_b3 B:void C:_123 D:IF 答案:B 第 19 题(1。0 分)题号:2848 C 语言程序中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 语言 期末考试 复习 试题 答案
限制150内