C语言程序设计练习题(含程序及参考答案) 下载本文

2010-2011 C语言程序试题及答案

for (i=m+1;;i++) { for (k=2;k

if (k>=i)

return(i); } }

void main() { int n;

printf(\ scanf(\ printf(\}

10、判断两个整数m和n是否互质(即是否有公共的因子)(m≠1,n≠1)。方法是: 用2到t(t取m和n中较小的那个数)之间的数分别去除m和n,若m和n能同时被某个数除尽,则m和n不互质;否则它们互质。

例如,若输入187和85,则应输出No(表示它们不互质,它们有公因子17)。若输入89和187,则应输出Yes(表示它们互质)。

#include

int IsThat( int m, int n )

第 9 页 共 46 页

2010-2011 C语言程序试题及答案

{

int k, t, mk=1; t=m;

if (m>n) t=n;

for(k=2;k<=t;k++) if( m%k==0 && n%k==0 )

{ mk=0; break; }

return mk; }

void main( ) {

int m, n;

printf( \

scanf(\

if( IsThat( m, n ) ) printf( \ else

printf( \}

11、将十进制正整数m转换成k进制数(2≤k≤9)并输出(m,k从键盘输入)。

例如,若输入8和2,则应输出1000(即十进制数8转换成

第 10 页 共 46 页

2010-2011 C语言程序试题及答案

二进制表示是1000)。 #include

void Trans( int m, int k ) {

int aa[20], i,j;

for( i = 0; m; i++ ) {

aa[i] = m%k; m /= k; }

for( j=i-1; j>=0; j-- )

printf(\

}

void main() {

int b, n;

printf( \enter a number and a base:\\n\); scanf(\ Trans( n, b ); }

12、统计从键盘输入的50个实数中有多少个正数、多少个负数、多少个零 #include

void fun(int *zs,int *fs,int *l,float aa[])

第 11 页 共 46 页

2010-2011 C语言程序试题及答案

{ int i;

for(i=0;i<50;i++) {

if(aa[i]>0) (*zs)++; if(aa[i]<0) (*fs)++; if(aa[i]==0) (*l)++; } }

void main() {

float num[50]; int i,czs,cfs,cl; czs=cfs=cl=0;

printf( \ for(i=0;i<50;i++) scanf(“%f”,&num[i]); fun(&czs,&cfs,&cl,num); printf(\}

第 12 页 共 46 页

正数:%d ,负数:%d ,零:%d

\\n\