C语言自测练习 下载本文

#include void main()

{ int y,f; scanf(“%d”,&y);

if(y@0==0) f=1; else if(y%4==0&&y0!==0) f=1; else f=0;

if(f) printf(“%d is ”,y); else printf(“%d is not ”,y); printf(“ a leap year\\n”); } 14.以下程序的功能是输入a、b、c这3个数,按从大到小顺序输出。

#include void main()

{ void exchange(int *q1,int *q2,int *q3); int a,b,c,*p1,*p2,*p3; scanf(“%d,%d,%d”,&a,&b,&c); p1=&a; p2=&b; p3=&c;

exchange( ); printf(“\\n%d,%d,%d\\n”,a,b,c); } void exchange(int *q1,int *q2,int *q3) { void swap(int *pt1,int *pt2);

if(*q1<*q2) swap(q1,q2); if(*q1<*q3) swap(q1,q3); if(*q2<*q3) swap(q2,q3); } void swap(int *pt1,int *pt2) 1 2 3 4 5 6 7 8 9 { int temp; temp=*pt1; *pt1=*pt2; ; } 2 3 4 5 6 7 8 9 15.输出右侧图形。 3 4 5 6 7 8 9

#include 4 5 6 7 8 9 void main() 5 6 7 8 9 { int i,j; 6 7 8 9 for(i=1;i<= ;i++) 7 8 9 { for(j= ;j<=9;j++) printf(“-”,j); 8 9

printf(“\\n”); } } 9

16.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。

#include void main()

{ int i,a[20],sum,count; sum=count=0;

for(i=0;i<20;i++) scanf(“%d” a[i] ,);

for(i=0;i<20;i++) if(a[i]>0) { count++;sum+= a[i] ;} printf(“sum=%d,count=%d\\n”,sum,count); }

17.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。

int mystrlen(char *str)

{ int i,n=0,*p=str; for(i=0; !=‘\\0’;i++,p++) n++; return ( ); } 18.以下isprime函数的功能是判断形参a是否为素数,是素数函数返回1,否则返回0。

int isprime(int a){ int i,f=1; for(i=2;i<=a/2;i++) if(a%2==0) ; ;} 19.以下程序的功能是调用函数fun计算:m=1-2+3-4+?+9-10,并输出结果。

#include int fun(int n)

{ int m=0,f=1,i; for(i=1;i<=n;i++) { m+=i*f;f= ;} return m; } void main() { printf(“m=%d\\n” ,); }

20.下列程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456<回车>,执行程序后输出:123456。

#include #include void main()

{ char s[80],d[80]; int i,j; gets(s);

for(i=j=0; ;i++) if( ) { d[j]=s[i];j++; } d[j]=‘\\0’; puts(d); }

五.编程题

1.定义一个有10个元素的整型数组x,任意输入一个整数,进行查找。找到此数输出“Yes”,没找到输出“No”。

2.编成输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。 3.编写程序将输入的十进制整数转换位二进制数输出(方法不限)。 4.输入一个华氏温度,要求输出摄氏温度(取2位小数)。公式为c=5(f-32)/9

5.编写函数fun,该函数的功能是求出小于或等于m(m≥2)的所有素数,并将其存放在数组a中,该函数返回求出的素数个数。

#include #define MAX 100

int fun( int m,int aa[]) { ?? } void main()

{ int a[MAX],limit,i,n; printf(“Input limit”); scanf(“%d”,&limit); n=fun(limit,a);

for(i=0;i

6.编程打印出杨辉三角形(要求打印出前10行)。

7.用冒泡法对数组中10个整数由小到大排序,并输出。

8.从键盘输入10个整数,用选择法进行排序(用函数实现排序)。 #include void main() {

float f,c;

printf(“请输入华氏温度:”); scanf(“%f”,&f); c=5(f-32)/9;

printf(“/n 摄氏温度为:%.2f”,c); }

#include void main() {

int i,j,temp; static int a[10]; for(j=0;j<9;j++)

for (i=0;i<9-j;i++) if (a[i]>a[i+1]); {

temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; }

for(i=0;i<10;i++)

printf(“a[%d]=%d\\n”,i,a[i]); }