闽高校计算机二级C语言模拟题 下载本文

二、改错题

Cmody131.c

程序cmody131.c的功能是:输入两个整数,输出它们的商和商的第一位小数。例如: 输入: 19 7

输出:2.714286 7 #include void main() {

int a,b,c;

/**/ int f; /**/ clrscr();

printf(\ scanf(\ f=/**/ a/b; /**/

c=(int)((f-(int)f)*10);

printf(\ %d\\n\ getch(); }

Cmody132.c

程序cmody132.c,实现打印10到99数中能被3整除且至少有1位是4的数 #include void find(/**/ n /**/) {

int a1,a2; a1=m; a2=m/10;

if(m%3==0 &&(/**/ a1==4 && a2==4 /**/)) printf(\}

void main() { int k;

for(k=10;k<=99;k++) /**/ fun( k ) /**/; getch(); }

Cmody141.c

程序cmody141.c的功能是:输入若干个整数,以零结束。分别统计其中比第一个数小的数的个数以及比第一个数大的数的个数,并输出。例如: 输入:4 11 7 5 8 6 4 30 3 0

输出:3 5

#include void main() {

/**/ int a,Tag; /**/ int num1=0,num2=0; clrscr();

printf(\ scanf(\ tag=a; while(a)

{ scanf(\

/**/ if(a) /**/ continue; else if(atag) num2++; }

printf(\ getch(); }

Cmody142.c

程序cmody142.c,用递归算法求1!+3!+5!+7!+9!

#include long int fsum(int n) {

long int k; if(n==1)

/**/ k=0 /**/; else

k=n*fsum(n-1); return (/**/ 1 /**/); }

void main() { int i;

long int sum; sum=0;

for(i=1;i<=9;/**/ i++;i++ /**/) sum+=fsum(i);

printf(\ getch(); }

Cmody151.c

程序cmody151.c的功能是输入一个原码表示的8位二进制(最高位为符号位,0表示正数,1表示负数,其余位为无符号数),将其转换成十进制数

9

并输出。例如: 输入:10100101 输出:-37

#include void main() { int i,a=0;

/**/ c1,c2; /**/ clrscr();

printf(\ c2=getchar();

/**/ for(i=1,i<=7;i++) /**/ { c1=getchar(); a=a*2+c1-'0'; }

/**/ If (c2) /**/ a=(-1)*a; printf(\ getch(); }

Cmody152.c

程序cmody152.c以每行最多9个数的方式打印10~1000之间所有满足各位数字左右相互对称的数,如66、181,202等 #include void main( ) {

int i,n;

/**/ n = 1; /**/

for(i=10;i<=100;i++) if(i/10==i)

{printf(\ n++;

if(/**/ n%9=0 /**/) printf(\ }

for(i=100;i<=999;i++)

if(/**/ i/100==i/10 /**/) {printf(\ n++;

if(n%9==0)

printf(\ } getch(); }

Cmody161.c

程序cmody161.c的功能是:用插入排序法对输入的10个整数按从小到大排序,输出排序结果。例

如:

输入: 3 5 4 6 8 1 2 1 7 4 输出: 1 1 2 3 4 4 5 6 7 8

#include void main() {

/**/ int a(10); /**/ int i,j,k,x;

printf(\ scanf(\ a[0]=x;

for(k=1;k<=9;k++) { scanf(\ for(i=0;ix) break; if(i

for(j=k;j>i;j--) a[j]=a[j-1]; a[i]=x; }

/**/ for(i=1;i<=10;i++) /**/ printf(\ \ printf(\ getch(); }

Cmody162.c

程序cmody162.c中的fun( )函数功能是:运用勾股定理近似地判定一个三角形是否为直角三角形,即给定三角形的边长a,b,c,若能构成直角三角形则返回1,否则返回0. #include #include

int fun( /**/ float a, b, c /**/) {

float t; int mk = 0; if(c

{ t = a; a = c; c = t; } if(c

{ t = b; b = c; c = t; }

if( fabs( c*c - (a*a+b*b)) < 1.0e-8) mk = 1;

/**/ return (1); /**/ }

10

main() {

float a,b,c;

printf(\ scanf(\ if(/**/ fun(a b c) /**/== 1) printf(\ else

printf(\ getch(); }

Cmody171.c

程序cmody171.c的功能是用选择排序法对输入的10个整数按从小到大排序,输出排序结果。例如:输入:3 5 4 6 8 1 2 1 7 4 输出:1 1 2 3 4 4 5 6 7 8 #include void main() {

int a[10]={0};

/**/ int i, j, k,temp, /**/ printf(\ /**/ for(k=1;k<10;k++) /**/ scanf(\ for(i=0;i<9;i++) { k=i;

for(j=i+1;j<10;j++) { if(a[k]>a[j]) k=j; }

if(k!=i)

/**/ {temp=a[i];a[k]=a[i];a[i]=temp;} /**/ }

for(i=0;i<10;i++) printf(\ \ printf(\ getch(); }

Cmody172.c

程序cmody172.c中的fmax(float x, float y, float z)函数,实现返回x,y,z中的最大值。 #include void main() {

float a,b,c,max;

float fmax(float,float,float);

printf(\ scanf(\ max=/**/ fmax(a;b;c) /**/;

printf(\ getch(); }

/**/float fmax(float x, y, z) /**/ {

float m1,m2; m1=(y>z)?y:z;

m2=/**/ (x>y)?x:y; /**/ return(m2); }

Cmody181.c

程序cmody181.c的功能是:输入1~100之间的整数q,用二分法在有序数组a[20]中查找q,若找到第一个等于q的元素,则输出该元素的数组下标及查找过程中与q比较的次数,若没找到则返回-1. 例如: 输入:58 输出:14,2 include void main()

{ int a[20]={1,3,7,9,12,14,23,26,34,43,45,47,49,56, 58,59,78,79,87,89};

int left,right,mid,q,count; left=0 ;

/**/ right = 19 /**/

printf(\ scanf(\ count=1;

while(left<=right)

{ mid= ( left + right)/2 ; if(q==a[mid]) break;

else if(q

if(left<=right)

printf(\ %d\\n\ else

printf(\ \\n\ getch(); }

11

Cmody182.c

程序cmody182.c中的fun( )函数功能是:判断输入的一个点(x,y)是否位于坐标在原点,半径为r(r>0)的圆内。

#include #include

int fun(/**/ float r, x, y /**/) {

if ( sqrt(x*x+y*y) < r ) return ( 1 ); else

return (/**/ -1 /**/ ); }

void main() {

float r=-1,x,y; int bIn; while(r<0)

{printf(\ scanf(\ }

printf(\ scanf(\ bIn = fun(r,x,y); if(/**/ bIn = 0 /**/)

printf(\ else

printf(\ getch(); }

三、填空题

Ccon131.c

程序ccon131的功能是:键盘输入两个正整数分别作为区间的上下界,按从大到小的次序输出该区间内能被3整除的数,例如: 输入:3,15 输出:12 9 6 #include #include void main() {

/**/ /**/ a,b,temp; scanf(\

if (a

while /**/ /**/ {

if(a%3==0)

printf(\ }

printf(\ getch(); }

Ccon132.c

补充程序ccon132.c,使函数fun(int n)(n从1开始)计算如下分数和,例如n=7时

fun(7)?111?114?117????18?3*7?0.388 #include

double fun(/**/ /**/) {

double y = 0.0; int i,j;

for(i=1;i<=n;i++)

{y = y +/**/ /**/; }

return (/**/ /**/); }

void main() {

clrscr();

printf(\ getch(); }

Ccon141.c

程序ccon141.c的功能是输出如下图形: * * * * * * * * * * * * * * * * * * * * * * * * * #include void main()

12