当前位置:首页 > C语言练习题(2010年整理)
case 8: printf ("Good \\n");break;
case 7: printf ("Middle \\n"); break;
case 6: printf ("Pass \\n"); __ break ____; default: printf ("No pass \\n"); }
}
36、排序函数:用交换法按成绩由高到低对学生成绩重新排序 void Sort(float score[ ],int n)
{ int i, j;
float temp1;
for (i=0; i if ( score[j]>score[i] ) { temp1 = score[j]; score[j]= score[i] ; score[i] = temp1; } } } 37、以下使用数组来处理打印斐波那契数列的前20项的程序。打印时,每行打印10个数字。斐波那契数列的格式为: 当n=0时,f[0]=0,当n=1时,f[1]=1,当n>1时,f[n]=f[n-1]+f[n-2] #include “stdio.h” void main( ) { int fbn[20]; int line=0, j ; fbnq[0]=0; fbnq[1]=1; for(j= 2 ; j<20; j++) fbnq[j]=fbnq[j-1]+fbnq[j-2] ; for(j=0; j<20; j++) { printf(“%d”,fbnq[j]); line++; if(line==10) { line=0; printf(“\\n”); } } 38、程序读入20个整数,统计非负数个数,并计算非负数之和。 #include main( ) { int i, a[20], s, count; s=count=0; for(i=0; i<20; i++) scanf(“%d”, &a[i] ); for(i=0; i<20; i++) { if( a[i]<0 ) continue ; s+=a[i] ; count++; } printf(“s=%d\\t count=%d\\n”, s, count”); } 39、用指针变量作为实参、形参,实现两个数的互换,请填空。 void swap(int *p1, int *p2) { int p; p=*p1; *p1=*p2 ; *p2=p; } main( ) { int a=10, b=25; swap(&a,&b); printf(“\\n a=%d, b=%d ”,a,b);} 40、以下程序的输出是 51 struct st { int x; int *y;} *p; int dt[4]={ 10,20,30,40 }; struct st aa[3]={ 50,&dt[0],60,&dt[0],60,&dt[0] }; main() { p=aa; printf(“%d\\n”,++(p->x));} 四、 程序改错 一、 下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。 1.求1?2?3?4???n main() { long int sum; int n,i=1; scanf(\ printf(“\\n”); while(i { sum=sum*i; i++; } printf(\} sum应初始化 即加入sum=1 第四行改为:scanf(“%d”,&n); 第六行改为:while(i<=n) 第十行改为:printf(\ 2.求一个数组中最大值及其下标。 main( ) { int max,j,m; int a[5]; for(j=1;j<=5;j++) for(j=0;j<5;j++) scanf(“%d”,a); scanf(“%d”,&a[j]); max=a[0]; for(j=1;j<=5;j++) for(j=0;j<5;j++) if(max>a[j]) if(max printf(“下标:%d\\n最大值:%d”, j, max) printf(“下标:%d\\n最大值:%d”, m,max) } 3.用一个函数求两个数之和。 sum(x,y) float sum(float x, float y ); { float z; z=x+y; return; return(z); } main() { float a,b; int c; float c; scanf(\c=sum(a,b); printf(\printf(\ } 4. 程序读入20个整数,统计非负数个数,并计算非负数之和. #include “stdio.h” main() { int i, s , count ,n=20; int a[n]; int a[20] s=count=1; s=count=0; for( i=1, i<20, i- -) for(i=0;i<20;i--) scanf(“%d”, a[i] ); scanf(“%d”,&a[i]); for(i=0;i<20;i++) { if(a[i]<0) break; continue; s +=a[i]; count++; } printf(“s=üount=%f\\n”,s,count); printf(“s=%d count=%d\\n”,s,count); } 5. 从键盘输入整数x的值,并输出y的值. main() { float x,y; int x; float y; scanf(“%d”,&x); y=3.5+x; printf(“y=%d”); printf(“y=%f”,y); } x?0x, 输出y 6 编程计算下面分段函数, 输入?x?1?y??2x?10?x?10 ?3x?11x?10main() ?{ int x,y; printf(“\\n Input x:\\n”); scanf(“%d”, x); scanf(“%d”, &x); if(x<0) y=x-1; else if(x>=0||x<=10) else if(x>=0&&x<=10) y=2x-1; y=2*x-1;
共分享92篇相关文档