收藏 分享(赏)

c语言题库~程序填空.doc

上传人:初中学霸 文档编号:21759110 上传时间:2024-04-22 格式:DOC 页数:171 大小:404.50KB
下载 相关 举报
c语言题库~程序填空.doc_第1页
第1页 / 共171页
c语言题库~程序填空.doc_第2页
第2页 / 共171页
c语言题库~程序填空.doc_第3页
第3页 / 共171页
c语言题库~程序填空.doc_第4页
第4页 / 共171页
c语言题库~程序填空.doc_第5页
第5页 / 共171页
亲,该文档总共171页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、试卷编号:8301所属语言:C语言试卷方案:C-程序填空试卷总分:1290分共有题型:1种一、程序填空 共129题 (共计1290分)第1题 (10.0分) 题号:35/*-【程序填空】-功能:计算并输出high以内最大的10个素数之和,high由主函数传 给fun函数,若high的值为100,则函数的值为732。-*/#include #include #include int fun( int high ) int sum = 0, n=0, j, yes; /*SPACE*/ while (high = 2) & (【?】) yes = 1; for (j=2; j=high/2; j+

2、 ) /*SPACE*/ if (【?】) yes=0; break; if (yes) sum +=high; n+; high-; /*SPACE*/ 【?】;main ( ) printf(%dn, fun (100);答案:=(答案1)=nn=(答案2)=high%j = 0=或=!(high%j)=(答案3)=return sum=或=return (sum)第2题 (10.0分) 题号:401/*-【程序填空】-功能:输入某年某月某日,判断这一天是这一年的第几天?-*/#include main() int day,month,year,sum,leap; printf(nplea

3、se input year,month,dayn); scanf(%d,%d,%d,&year,&month,&day); switch(month) case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; /*SPACE*/ case 4:【?】;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; c

4、ase 11:sum=304;break; case 12:sum=334;break; default:printf(data error);break; /*SPACE*/ 【?】; /*SPACE*/ if(year%400=0|(【?】) leap=1; else leap=0; /*SPACE*/ if(【?】) sum+; printf(it is the %dth day.,sum);答案:=(答案1)=sum=90=(答案2)=sum=sum+day=或=sum= sum + day=(答案3)=year%4 = 0 & year%100 != 0)=(答案4)=leap=1&

5、month2=或=leap = 1 & month2=或=leap = 1 & 2month第3题 (10.0分) 题号:21/*-【程序填空】-功能:将一个字符串中的前N个字符复制到一个字符数组中去, 不许使用strcpy函数。-*/#include main ( ) char str180,str280; int i,n; /*SPACE*/ gets(【?】); scanf(%d,&n); /*SPACE*/ for (i=0; 【?】 ;i+) /*SPACE*/ 【?】; /*SPACE*/ 【?】; printf(%sn,str2);答案:=(答案1)=str1=(答案2)=ii=

6、或=i=i=(答案3)=str2i=str1i=或=*(str2+i)=*(str1+i)=或=*(str2+i)=str1i=或=str2i=*(str1+i)=(答案4)=str2n=0=或=str2i=0=或=str2n=0=或=str2i=0=或=*(str2+n)=0=或=*(str2+i)=0=或=*(str+n)=0=或=*(str2+i)=0第4题 (10.0分) 题号:443/*-【程序填空】-功能:企业发放的奖金根据利润提成。利润(i)低于或等于10万元 时,奖金可提10%;利润高于10万元,低于20万元时,低于 10万元的部分按10%提成,高于10万元的部分,可可提成7.

7、5% ;20万到40万之间时,高于20万元的部分,可提成5%;40万 到60万之间时高于40万元的部分,可提成3%;60万到100万 之间时,高于60万元的部分,可提成1.5%,高于100万元时, 超过100万元的部分按1%提成,从键盘输入当月利润i,求 应发放奖金总数?-*/#include main() long int i; double bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf(%ld,&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.

8、5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i=100000) bonus=i*0.1; /*SPACE*/ else if(【?】) bonus=bonus1+(i-100000)*0.075; /*SPACE*/ else if(【?】) bonus=bonus2+(i-200000)*0.05; /*SPACE*/ else if(【?】) bonus=bonus4+(i-400000)*0.03; else if(i=1000000) bonus=bonus6+(i-600000)*0.015; else bo

9、nus=bonus10+(i-1000000)*0.01; /*SPACE*/ 【?】(bonus=%d,bonus);答案:=(答案1)=i=i=(答案2)=i=i=(答案3)=i=i=(答案4)=printf第5题 (10.0分) 题号:27/*-【程序填空】-功能:统计一个字符串中的字母、数字、空格和其它字符的个数。-*/#include void fun(char s,int b) int i; for (i=0;si!=0;i+) if (a=si&si=z|A=si&si=Z) b0+; /*SPACE*/ else if (【?】) b1+; /*SPACE*/ else if

10、(【?】 ) b2+; else b3+;main () char s180;int a4=0; int k; /*SPACE*/ 【?】; gets(s1); /*SPACE*/ 【?】; puts(s1); for(k=0;k4;k+) printf(%4d,ak);答案:=(答案1)=0=si & si=0 & si=9=或=0=si=或=si=0 & 9=si=或=48=si & si=48 & si=57=或=48=si=或=si=48 & 57=si=或=!( si 57 )=或=!( si 9 )=(答案2)=si = =或=si = 32=(答案3)=void fun(char

11、 s,int b)=(答案4)=fun(s1,a)第6题 (10.0分) 题号:466/*-【程序填空】-功能:用二分法求方程2X3+4X2+3X-6=0在(-10,10)之间的根 ,其中 Xn代表X的n次方。-*/#include # include main() float x0,x1,x2,fx0,fx1,fx2; do printf(Enter x1&x2:); scanf(%f,%f,&x1,&x2); fx1=x1*(2*x1-4)*x1+3)-6; fx2=x2*(2*x2-4)*x2+3)-6; /*SPACE*/ while (fx1*fx2【?】); do x0=(x1+x

12、2)/2; fx0=x0*(2*x0-4)*x0+3)-6; /*SPACE*/ if(fx0*fx1【?】) x2=x0; fx2=fx0; else x1=x0; fx1=fx0; /*SPACE*/ while(【?】=1e-5); printf(x=%6.2fn,x0);答案:=(答案1)=0=(答案2)=0=(答案3)=fabs(fx0)第7题 (10.0分) 题号:423/*-【程序填空】-功能:考查字符串数组的应用。输出26个英文字母。-*/#include void main (void) char string256; int i; /*SPACE*/ for (i = 0;

13、 i 26; 【?】) /*SPACE*/ stringi = 【?】; stringi = 0; /*SPACE*/ printf (the arrary contains %sn,【?】);答案:=(答案1)=i+=或=+i=或=i=i+1=或=i+=1=(答案2)=A + i=或=i+A=或=65 + i=或=i+65=(答案3)=string第8题 (10.0分) 题号:412/*-【程序填空】-功能:写一个函数,求一个字符串的长度,在main函数中输入字 符串,并输出其长度。-*/#include main() int length(char *p); int len; char s

14、tr20; printf(please input a string:n); scanf(%s,str); /*SPACE*/ len=length(【?】); printf(the string has %d characters.,len);/*SPACE*/【?】(p)char *p; int n; n=0; while(*p!=0) /*SPACE*/ 【?】; /*SPACE*/ 【?】; return n;答案:=(答案1)=str=(答案2)=length=或=int length=(答案3)=n+=或=+n=或=n=n+1=或=n+=1=(答案4)=p+=或=+p=或=p=p+

15、1=或=p+=1第9题 (10.0分) 题号:24/*-【程序填空】-功能:对任一整数N(N0),它都可以分解成1(或-1)和一些质数(素 数)因子的形式。例如:当N=150时,可分解成12355; 当N=-150时,可分解为-12355。 下边程序能实现这种分解过程。当N=150,输出以下分解结 果:N= 1* 2* 3* 5* 5-*/#include #include main() int n,i,r; scanf(%d,&n); if (n=0) printf (data error n); exit(0); /*SPACE*/ else if (【?】) printf(n=1); e

16、lse printf(n=-1); n=-n; /*SPACE*/ for(【?】;i0=或=0n=(答案2)=i=2=(答案3)=r=n%i=(答案4)=n=n/i=或=n/=i第10题 (10.0分) 题号:436/*-【程序填空】-功能:输出两个整数中大的那个数,两个整数由键盘输入。-*/#include #include void main() int *p1,*p2; /*SPACE*/ p1=【?】malloc(sizeof(int); p2=(int*)malloc(sizeof(int); /*SPACE*/ scanf(%d%d,【?】,p2); if(*p2*p1) *p1

17、=*p2; free(p2); /*SPACE*/ printf(max=%dn,【?】);答案:=(答案1)=(int *)=(答案2)=p1=(答案3)=*p1第11题 (10.0分) 题号:410/*-【程序填空】-功能:有n个整数,使其前面各数顺序向后移m个位置,最后m个数 变成最前面的m个数-*/#include /*SPACE*/move(【?】)int n,m,array20; int *p,array_end; /*SPACE*/ array_end=*(【?】); for(p=array+n-1;parray;p-) /*SPACE*/ *p=*(【?】); *array=a

18、rray_end; m-; if(m0) move(array,n,m);main() int number20,n,m,i; printf(the total numbers is:); scanf(%d,&n); printf(back m:); scanf(%d,&m); for(i=0;in-1;i+) scanf(%d,&numberi); scanf(%d,&numbern-1); /*SPACE*/ move(【?】); for(i=0;in-1;i+) printf(%d,numberi); printf(%d,numbern-1);答案:=(答案1)=array,n,m=(答

19、案2)=array+n-1=或=array + n -1=(答案3)=p-1=或=p -1=(答案4)=number,n,m第12题 (10.0分) 题号:29/*-【程序填空】-功能:下面函数为二分法查找key值。数组中元素已递增排序, 若找到key则返回对应的下标,否则返回-1。-*/#include fun(int a,int n,int key) int low,high,mid; low=0; high=n-1; /*SPACE*/ while(【?】) mid=(low+high)/2; if(keyamid) /*SPACE*/ 【?】; else /*SPACE*/ 【?】;

20、return -1;main() int a10=1,2,3,4,5,6,7,8,9,10; int b,c; b=4; c=fun(a,10,b); if(c=1) printf(not found); else printf(position %dn,c);答案:=(答案1)=low=low=(答案2)=high=mid-1=(答案3)=low= mid + 1=(答案4)=return mid=或=return (mid)第13题 (10.0分) 题号:425/*-【程序填空】-功能:当输入“2,5”的时候输出为“2 5 5”-*/#include #define max 100main

21、() 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(%d%10d%10dn,k,m,fm);答案:=(答案1)=m=(答案2)=k-1=(答案3)=+=或=fi+第14题 (10.0分) 题号:450/*-【程序填空】-功能:一个40磅重的板碎成4块,每块正好是一个整数磅,且用这 4块当砝码能称出140磅的整数重量的物体。编程求这4块 的各自重量。-*/#include #include main() int i,j,k,l,p,t1,t2,t3,t4; for(i=1;i38;i+) /*SPACE*/ for(【?】;j38-i;j+) /*SPACE*/ for(k=j;k【?】;k+) l=40-i-j-k; for(p=1;p40;p+) for(t1=-1;t12;t1+) for(t2=-1;t22;t2+) for(t3=-1;t32;t3+) for(t4=-1;t42;t4+) /*SPACE*/ if(【?】=p) goto next; break; /*SPACE*/ next:if(p=【?】)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报