| |
C语言上机试题:4 1. 题目:编一C程序,它能读入一个13进制数(用字符串表示,用A、B、C分别表示10、11和12),输出该数的值(按十进制数输出)。如输入为3B时,输出为50。(注:可执行文件名为e4_1.exe)
程序设计: main() {char a[40]; int n=0,i=0,j,k,s=0; printf("Please enter a 13 base number:\n"); scanf("%s",a); while (a[i++]!='\0') n++; for (i=n-1;i%26gt;=0;i--) {if ((a[i]%26gt;='0')%26amp;%26amp;(a[i]%26lt;='9')) k=a[i]-'0'; else if ((a[i]%26gt;='A')%26amp;%26amp;(a[i]%26lt;='C')) k=a[i]-55; else printf("error!\n"); for (j=1;j%26lt;n-i;j++) k*=13; s+=k; } printf("To 10 base number is:\n"); printf("%d\n",s); }
2. 题目:编一C程序,它能依次读入三组d1、r1、d2、r2、d3、r3共18个非负整数(其中0%26lt;=r1%26lt;d1,0%26lt;=r2%26lt;d2,0%26lt;=r3%26lt;d3),对每组6个非负整数依次判断是否有正整数n,满足n%d1=r1且n%d2=r2且n%d3=r3,若有,则输出其中最小者;否则,输出No。(输入整数时,相邻的两个用空格隔开)。(注:可执行文件名为e4_2.exe)
程序设计: main() {int l,i,n,d1,r1,d2,r2,d3,r3; for (i=0;i%26lt;=2;i++) {l=1; n=1; printf("Please enter d1%26gt;=r1%26gt;=0,d2%26gt;=r2%26gt;=0,d3%26gt;=r3%26gt;=0:\n"); scanf("%d %d %d %d %d %d",%26amp;d1,%26amp;r1,%26amp;d2,%26amp;r2,%26amp;d3,%26amp;r3); while ((l!=0)%26amp;%26amp;(n%26lt;=d1*d2*d3)) {if ((n%d1==r1)%26amp;%26amp;(n%d2==r2)%26amp;%26amp;(n%d3==r3)) {printf("%d\n",n);l=0;} else n++; } if (l!=0) printf("no!\n"); } }
3. 题目:编一C程序,它能读如若干浮点数f1、f2、...fn(以-9999.0为结束标记,-9999.0不算在内)并输出在f2、f3、...fn这n-1个数中大于f1的数的个数、等于f1的数的个数和小于f1的数的个数。(注:可执行文件名为e4_3.exe)
程序设计: #include "math.h" main() {float f[100],f1; int n=0,i,i1=0,i2=0,i3=0; printf("Please enter float:\n"); scanf("%f",%26amp;f1); f[0]=f1; while (abs(f[n]+9999.0)%26gt;=1e-4) scanf("%f",%26amp;f[++n]); for (i=1;i%26lt;=n-1;i++) if (f[i]%26gt;f1) i1++; else if (abs(f[i]-f1)%26lt;1e-4) i2++; else i3++; printf("%26gt;f1:%d\n",i1); printf("=f1:%d\n",i2); printf("%26lt;f1:%d\n",i3); }
|
|