1、c语言机考题目例题 机考题目1. 根据以下题目编写一个程序。设本金为x,存入银行1年,年利率为y,1年到期后将本金和利息再存入银行1年,如此存n年后,得到的总金额为z,要求从键盘输入本金x、年利率y、存款年数n的值,输入时要有提示,然后计算总金额z的值,输出本金x、年利率y、存款年数n和总金额z的值,浮点型数据输出时包含4位小数。#include #include int main()double x,y,z; int n; printf(请输入本金、1年利率、累计存款年数,用空格分开:n); scanf(%lf%lf%d,&x,&y,&n); z=x*pow(1+y,n); printf(本
2、金: %.4fn,x); printf(1年利率: %.4fn,y); printf(累计存款年数: %dn,n); printf(总金额: %.4fn,z); return 0;2. 百分制成绩与等级成绩的转换规则为:90100分为A等;8089分为B等;7079分为C等;6069分为D等;059分为E等。编写程序,要求如下:1) 输入一百分制成绩(0100的整数),输出用A、B、C、D、E表示的成绩等级2) 如果输入的分数不在0100内,输出“输入错误”。使用if语句:#include int main () int a; printf(请输入你的成绩:n); scanf(%d,&a);
3、if(a=90&a=80&a=70&a=60&a=69) printf(Dn); else printf(En); return 0; 使用switch语句的程序:#include int main ( ) int grade; printf(请输入你的成绩:n); scanf(%d,&grade); switch(grade/10) case 0: case 1: case 2: case 3: case 4: case 5:printf(En);break; case 6:printf(Dn);break; case 7:printf(Cn);break; case 8:printf(Bn
4、);break; case 9:printf(An);break; default:printf(An);break; return 0;3. 用公式求的近似值,直到发现某一项的绝对值小于10-6 为止,该项不累计加(书本p131,例5.7)#include #include int main() int sign=1; double pi=0,n=1,term=1; while( fabs(term)=1e-6 ) pi=pi+term;n=n+2; sign=-sign; term=sign/n; pi=pi*4; printf(pi=%10.8fn,pi); return 0; 4. 编
5、写程序输出所有的水仙花数,水仙花数是指一个三位正整数,其各位数字的立方之和等于该正整数,如:407=444+000+777。#include int main() int i, x, y, z;/i表示一个三位正整数,x、y、z表示其个、十、百位数 for(i=100;i999;i+) /对所有的三位正整数判断是否是水仙花 x=i/100; /求百位数 y=i/10%10;/求十位数 z=i%10;/求个位数 if ( i=x*x*x+y*y*y+z*z*z ) /判断水仙花数的条件 printf(%dn,i); /输出水仙花数 return 0;5. 求100200间的全部素数(书本p137
6、,例5.10)。#include #include int main() int n,i,k,m=0; for(n=100;n=200;n=n+1) k=sqrt(n); for (i=2; ik) printf(“%d,n); m=m+1; if(m%10=0) printf(“n”); return 0; 6. 编写程序,完成输入任意10个整数给一个数组,然后使数组中的值按逆序存放,最后输出。#include int main() int i,a10; for (i=0; i=0; i-) printf(%d ,ai); printf(n); return 0; 7. 输入任意10个整数,
7、用冒泡法将它们从小到大排序后输出(书本p147,例6.3)。#include int main() int a6; int i,j,t; printf(“输入6个整数 :n); for (i=0;i10;i+) scanf(%d,&ai); for(j=0;j9;j+) for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; printf(“从小到大排序后为 :n); for(i=0;i10;i+) printf(%d ,ai); printf(n); return 0;8. 有一个34的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号(书本p153,例6.
8、5,数据要求从键盘输入)。#includeint main() int i,j,row=0,colum=0,max; int a34; for(i=0;i3;i+) for(j=0;j4;j+) scanf(%d,&aij); max=a00; for(i=0;i=2;i+) for(j=0;jmax) max=aij; row=i; colum=j; printf(max=%dnrow=%dncolum=%dn,max,row,colum); return 0; 9. 输入一个字符串,统计该字符串包含的字母、数字、空格和其它字符的个数并输出。#include int main() char
9、c; int i=0,j=0,k=0,l=0; while (c=getchar()!=n) if(c=A& c=a& c=z) j+; else if(c= ) k+; else l+; printf(大写字母数:%dn,i); printf(小写字母数:%dn,j); printf(空格数:%dn,k); printf(其它字母数:%dn,l); return 0;10. 编写程序,完成以下要求: 1)首先定义2个字符数组c1、c2,长度自定;2)输入一行字符赋给c1;3)不使用测字符串长度函数strlen,测量c1中字符串的长度,并输出;4)不使用字符串复制函数strcpy,将c1中字符
10、串复制到c2中,并输出c2中的字符串。#includeint main() char c15; char c25; int i=0; printf(请输入一行字符:n); gets(c1); for(i=0;c1i!=0;i+); printf(%dn,i); for(i=0;i=4;i+) c2i=c1i; puts(c2); return 0;11. 编写程序,完成以下要求: (辅导书第7章习题3,p77)1) 定义一个函数,其功能为:对于n,判断是否是素数,如果是,函数返回值为1,否则返回值为0(即用返回值1或0来表示是否是素数)。2) 编写主函数,先完成输入n,然后调用上面的函数,并根
11、据获得的函数值判断n是否是素数,即如果得到的函数值为1,输出“是素数”,否则输出“不是素数”。#includeint main() int prime(int); int n; printf(请输入一个数:); scanf(%d,&n); if(prime(n) printf(%d是素数n,n); else printf(%d不是素数n,n); return 0;int prime(int n) int a=1,i; for(i=2;in/2&a=1;i+) if(n%i=0) a=0; return(a);12. 编写程序,要求如下: 1) 定义一个函数,求一个数组的最大值和最小值。2) 在
12、主函数中完成从键盘输入一组整型数据(5个)赋给一个数组,调用上述函数求它们的最大值和最小值,获得结果后输出。#includeint main() int a5; int max(int x,int y); int min(int x,int y); int i=0,m,n; for(i=0;i5;i+) scanf(%d,&ai); m=a0; for(i=0;im) m=max(m,ai); printf(最大值:%dn,m); n=a0; for(i=0;i5;i+) if(min(n,ai)y? x:y);int min(int x,int y) return(xy? x:y);13.
13、编写程序,要求如下: 1) 定义一个函数,函数原型为: void f(int *s1,int *s2, int n) , 用来交换两个整型数组所有对应元素的值, 其中n表示要交换的元素个数。2) 在主函数中完成输入2组数(每组5个)分别赋给2个整型数组,调用上述函数交换这两个整型数组所有对应元素的值,然后分别输出。#include void main() void f(int *s1,int *s2, int n); int a5,b5,i,*s1,*s2; printf(请输入5个整数给a5:n); for(i=0;i5;i+) scanf(%d,&ai); printf(请输入5个整数给b
14、5:n); for(i=0;i5;i+) scanf(%d,&bi); s1=a; s2=b; f(s1,s2,5); printf(s1为: n); for(i=0;i5;i+) printf(%d ,*s1+); printf(n); printf(s2为:n); for(i=0;i5;i+) printf(%d ,*s2+); printf(n); void f(int *s1,int *s2, int n) int i,t; for(i=0;in;i+) t=*s1; *s1=*s2; *s2=t; *s1+; *s2+; 14. 编写程序,要求如下: (辅导书第8章习题1,p99)1
15、) 定义一个函数,函数原型为: void swap(int *p1,int *p2,) , 用来交换两个整型变量的值。2) 在主函数中完成输入3个整数分别赋给3个整型变量n1、n2、n3,通过调用上述swap函数交换这3个整型变量的值,使得n1=n2=n3,最后依次输出n1、n2、n3。#include int main() void swap(int*p1,int *p2); int n1,n2,n3; int*p1,*p2,*p3; scanf(%d,%d,%d,&n1,&n2,&n3); p1=&n1; p2=&n2; p3=&n3; if(n1n2) swap(p1,p2); if(n1n3) swap(p1,p3); if(n2n3) swap(p2,p3); printf(Now,the order is:%d,%d,%dn,n1,n2,n3); return 0;void swap(int *p1,int *p2) int p; p=*p1;*p1=*p2;*p2=p;
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2