c语言上机考试模拟题.docx
- 文档编号:3508032
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:33
- 大小:25.90KB
c语言上机考试模拟题.docx
《c语言上机考试模拟题.docx》由会员分享,可在线阅读,更多相关《c语言上机考试模拟题.docx(33页珍藏版)》请在冰豆网上搜索。
c语言上机考试模拟题
一.1.完成程序填空,实现输入一行字符,分别统计出其中的英文字母、空格、数字和
其他字符的数。
(P40/P91)
2.程序填空,实现找出1000之内的所有完数,并按如图所示格式输出其因子。
一个数如果恰好等于它的公约数之和,这个数就称为"完数"。
例如6=1+2+3。
6就是一个完数。
(P55)
3.完成程序填空,实现编程输出以下图案。
(P92)
*****
*****
*****
*****
*****
4.输出9*9口诀。
(P53)
5.编写函数fun将一个数组中的值按逆序存放,并在main()函数中输出。
例如:
原来存顺序为8,6,5,4,1。
要求改为:
1,4,5,6,8。
#include"stdio.h"
#defineN5
voidmain()
{voidfun(intarr[],intn);
inta[N]={8,6,5,4,1},i;
for(i=0;i printf("%2d",a[i]); printf("\n"); fun(a,N); for(i=0;i printf("%2d",a[i]); } voidfun(intarr[],intn) {inti,t; for(i=0;i {t=arr[i]; arr[i]=arr[n-1-i]; arr[n-1-i]=t; } } 6.功能: 编写程序,求矩阵(3行3列)与2的乘积 例如: 输入下面的矩阵: 100200300 400500600 700800900 程序输出: 200400600 80010001200 140016001800 #include"stdio.h" voidfun(intarray[3][3]) {/**********Program**********/ inti,j; for(i=0;i<3;i++) for(j=0;j<3;j++) array[i][j]=array[i][j]*2; /**********End**********/ } voidmain() {inti,j; intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}}; for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%7d",array[i][j]); printf("\n"); } fun(array); printf("Convertedarray: \n"); for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%7d",array[i][j]); printf("\n"); } } 7.功能: 请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。 二维数组中的数已在主函数中赋予。 #include #include #defineM3 #defineN4 voidfun(inttt[M][N],intpp[N]) {/**********Program**********/ inti,j; for(j=0;j {pp[j]=tt[0][j]; for(i=0;i if(tt[i][j] /**********End**********/ } voidmain() {intt[M][N]={{22,45,56,30},{19,33,45,38},{20,22,66,40}}; intp[N],i,j,k; printf("Theoriginaldatais: \n"); for(i=0;i {for(j=0;j printf("%6d",t[i][j]); printf("\n"); } fun(t,p); printf("\nTheresultis: \n"); for(k=0;k printf("%4d",p[k]); printf("\n"); } 8.根据整型形参m,计算如下公式的值: y=1/2+1/4+ 1/6+...+1/2m。 例如: 若m=9,则应输出: 1.414484 #include"stdio.h" doublefun(intn) {/**********Program**********/ doubley=0; inti; for(i=1;i<=n;i++) {y+=1.0/(2*i);} 或者 for(i=2;i<=2*n;i+=2) y+=1.0/i; return(y)/**********End**********/ } voidmain() {intm; printf("Enterm: \n"); scanf("%d",&m); printf("Theresultis%f\n",fun(m)); } 二.1.完成程序填空,实现的功能是输出如下形式的方阵: (P57) 13141516 9101112 5678 1234 2.完成程序填空,实现输入4个整数,要求按由小到大的顺序输出。 (P33) 3.完成程序填空,输出所有的水仙花数。 (P41)(P116) 4.将a++或++a或a--或--a填入程序填空中,实现如图所示的输出。 (填入其他无效) #include main() {inti,a; i=1; a=i++; /***********SPACE***********/ printf("a=%d,i=%d\n",a++,i++); printf("a=%d,i=%d\n",a,i); printf("a=%d,i=%d\n",++a,++i); printf("a=%d,i=%d\n",a,i); /***********SPACE***********/ printf("a=%d,i=%d\n",a--,i--); /***********SPACE***********/ printf("a=%d,i=%d\n",--a,--i); printf("a=%d,i=%d\n",a,i); } 5.编写函数求3! +6! +9! +12! +15+18! +21! 。 #include"stdio.h" floatsum(intn) {/**********Program**********/ inti,j; floatt,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);/**********End**********/ } voidmain() {printf("thissum=%e\n",sum(21));} %e格式默认输出有效数字7位,1位是整数,6位小数,指数3位(不足3位时填0)。 结果5.109734e+019 6.判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。 #include"stdio.h" #include"conio.h" intfun(intw) {/**********Program**********/ intk,s=0; do {s+=(w%10)*(w%10); w=w/10; }while(w! =0); if(s%5==0)k=1; elsek=0; return(k);/**********End**********/ } voidmain() {intm; printf("Enterm: \n"); scanf("%d",&m); printf("Theresultis%d\n",fun(m)); } 7.功能: 对任意输入的x,用下式计算并输出y的值。 5x<10 y=0x=10 -5x>10 8.功能: 编写函数fun求sum=d+dd+ddd+……+dd...d(n个d),其中d为1-9的数字。 例如: 3+33+333+3333+33333(此时d=3,n=5),d和n在主函数中输入。 三、1.实现输入两个数a、b,判断如果a 按照先a后b的顺序输出即可。 2.完成程序填空,实现用冒泡排序法对从键盘输入的10个整型数据进行由小到大排序。 (P74) 3.完成程序填空,实现求s=1+3+5+……+99(P39) 4.实现求1+1/3+1/5+...之和,直到某一项的值小于10的-6次方时停止累加。 #include intmain() {longn; floats; s=0; n=1; /***********SPACE***********/ while(1.0/n>=1e-6) {s=s+1.0/n; /***********SPACE***********/ n=n+2;} printf("s=%f\n",s); printf("n=%d\n",n-2); return0; } 5.编写函数求1~100中奇数的平方和。 结果为166650。 #include"stdio.h" floatsum(intn) {/**********Program**********/ floats=0; inti; for(i=1;i<=n;i=i+2) s=s+i*i; return(s);/**********End**********/ } voidmain() {printf("sum=%.0f\n",sum(100));} 6.求一批数中小于平均值的数的个数。 #include intaverage_num(inta[],intn) {/**********Program**********/ inti,k=0,sum=0; floataverage; for(i=0;i sum=sum+a[i]; average=sum*1.0/n; for(i=0;i if(average>a[i])k++; return(k);/**********End**********/ } voidmain() {intn,a[100],i,num; scanf("%d",&n); for(i=0;i scanf("%d",&a[i]); num=average_num(a,n); printf("thenumis: %d\n",num); } 7.对某一正数的值保留2位小数,并对第三位进行四舍五入。 #include"stdio.h" #include"conio.h" floatfun(floath) {/**********Program**********/ inti; i=(int)(h*1000)%10; if(i>=5) return(int)(h*100+1)/100.0; else return(int)(h*100)/100.0;/**********End**********/ } voidmain() {floatm; printf("Enterm: \n"); scanf("%f",&m); printf("\nTheresultis%8.2f\n",fun(m)); } 四、1.完成程序填空,实现以下功能: 一个小球从100米高度自由下落,每次落地后反跳回原来高度的一半,再下落,求它在第十次下落时,共经过多少米,第十次反弹多高? (P43) 2.完成程序填空,使得程序执行如图所示: (P13) #include main() {inti,a,b; floatx,y,z; i=1; /***********SPACE***********/ x=++i; /***********SPACE***********/ printf("x=%f\ni=%d\n",x,i); y=30.1234567; z=x+y; printf("z=%f\n",z); printf("z=%4.2f\n",z); /***********SPACE***********/ printf("z=%6.2f\n",z); printf("z=%15.8f\n",z); printf("z=%e\n",x+y); } 3.完成填空,实现运行程序如图所示。 (P13) #include main() {chara,b,c; /***********SPACE***********/ a=66;//a='B' b='O'; c='Y'; putchar(a); /***********SPACE***********/ putchar(b); putchar(c); /***********SPACE***********/ putchar('\n');//printf("\n") } 4.实现输出所有的水仙花数,所谓水仙花数是一个3位数,其各位数字的立方和等于该数本身。 例如153=13+53+33,故153是一个水仙花数。 (P116) 5.功能: 计算并输出给定整数n的所有因子之和(不包括1与自身)。 (假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因子。 )注意: n的值不大于1000。 例如: n的值为855时,应输出704。 #include"stdio.h" intfun(intn) { ints=0,i; for(i=2;i if(n%i==0)s=s+i; returns; } main() {printf("s=%d\n",fun(855));} 五、1.完成程序填空,实现输出以下图案: (P69/P49) * *** ***** ******* 2.完成程序填空实现输入三个数,按代数值由大到小输出。 3.完成程序填空,实现打印下列的图形(P70) 123456789 23456789 3456789 456789 56789 6789 789 89 9 4.完成程序填空,实现输入两个数字,若两数相等,则直接输出两个数字,若不相等, 则这两个数中的较大者等于这个较大者减去较小者,再作比较,若不相等则重复上述操作, 直到两个数字相等为止。 输出相等的两个数字。 #include intmain() {inta,b; printf("Entera,b: "); scanf("%d,%d",&a,&b); /***********SPACE***********/ while(a! =b) /***********SPACE***********/ {if(a>b) a=a-b; /***********SPACE***********/ if(b>a) b=b-a; } printf("%3d%3d\n",a,b); return0; } 5.功能: 能计算从1开始到n的自然数中偶数的平方的和,n由键盘输入,并在main()函数中输出。 (n是偶数) #include"stdio.h" intfun(intn) {/**********Program**********/ intsum=0,i; for(i=2;i<=n;i=i+2) sum+=i*i; return(sum);/**********End**********/ } voidmain() {intm; printf("Enterm: "); scanf("%d",&m); printf("\nTheresultis%d\n",fun(m)); } 6.从键盘上输入任意实数,求出其所对应的函数值。 z=e的x次幂(x>10) z=log(x+3)(x>-3) z=sin(x)/((cos(x)+4) #include #include doubley(floatx) {/**********Program**********/ doublez; if(x>10)z=exp(x); elseif(x>-3)z=log(x+3); elsez=sin(x)/(cos(x)+4); return(z); /**********End**********/ } voidmain() {floatx; scanf("%f",&x); printf("y=%f\n",y(x)); } 7.编写函数fun(str,i,n),从字符串str中删除第i个字符开始的连续n个字符(注意: str[0]代表字符串的第一个字符)。 (P123) 8功能: 根据整型形参m,计算如下公式的值: y=sin(m)*10。 例如: 若m=9,则应输出: 4.121185 #include"stdio.h" #include"math.h" doublefun(intm) {/**********Program**********/ doubley=0; y+=sin(m)*10; returny; /**********End**********/ } voidmain() {intn; printf("Entern: "); scanf("%d",&n); printf("\nTheresultis%1f\n",fun(n)); } 六、1.程序填空,实现求两数最小公倍数(P27) 2.有一个已排好的数组,完成程序填空,实现要求输入一个数后,按原来排序的规律将它插入到数组中。 #include #defineN10 intmain() {inta[N+1]={-73,-67,-54,0,32,84,86,90,234,312}; intnum,i,left,right,mid,find=0;//find=0,未找到;find=1,找到。 left=0;right=N-1; printf("pleaseinput: "); scanf("%d",&num); /***********SPACE***********/ while(find【? 】/==0&&left<=right) {mid=(left+right)/2; if(num>a[mid]) left=mid+1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 考试 模拟