C语言经典例题(带答案)

  • 格式:doc
  • 大小:62.00 KB
  • 文档页数:10

第 1 页 共 10 页 C语言复习题纪实解答(有好方法的互相交流!) 1.题: #include "stdio.h" main() { float i,s=0; for(i=3;i<=10;i++) { s=s+(i+2)*(i+3)/(i+4); } printf("s=%.2f",s); } 2.题: #include "stdio.h" void main() {int score; scanf("%d",&score); switch(score/5) { case 20: case 19: case 18:printf("A\n");break; case 17: case 16: case 15:printf("B\n");break; case 14: case 13: case 12:printf("C\n");break; case 11: case 10: case 9: case 8: case 7: case 6: case 5: case 4: case 3: case 2: case 1: case 0:printf(" D I`m so sorry your IQ==0 \n");break; default:break; } } 第 2 页 共 10 页

3.题:(if语句) #include "stdio.h" main() { int x,y; scanf("%d",&x); if(x<-5) y=x; if(x>=-5&&x<=0) y=x+1; if(x>0&&x<=5) y=x-1; if(x>5) y=2*x; printf("y= %d\n",y); } 4.题:

有谁会第四题给我发来。 我真的不会啊!!!!

5.题: 一、 #include "stdio.h" void main() { int max_value(int a[3][3]); int i,j,a[3][3]={3,8,-2,5,6,10,4,9,18}; for(i=0;i<3;i++) 第 3 页 共 10 页

{ for(j=0;j<3;j++) { printf("%d ",a[i][j]); /*此部分为显示出矩阵(4~8行)可无*/ } printf("\n"); } printf("\n the max is: %d\n",max_value(a)); } int max_value(int a[3][3]) { int i,j,max; i=0; max=a[0][0]; for(j=0;j<3;j++) { if(a[i][j]>max) max=a[i][j]; } return (max); } 二、在以一的基础上修改: #include "stdio.h" void main() { int max_value(int a[3][3]); int i,j,a[3][3]={3,8,-2,5,6,10,4,9,18}; printf("\n the max is: %d\n",max_value(a)); }

int max_value(int a[3][3]) { int i,j,max; max=a[0][0]; for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(a[i][j]>max) max=a[i][j]; } } return (max); } 6.题: 方法一:(循环语句) 第 4 页 共 10 页

#include "stdio.h" void main() { int i,j; for(i=0;i<4;i++) { for(j=0;j<3-i;j++) { printf(" "); } printf("***\n"); }

} 方法二:(数组) #include "stdio.h" void main() { int i,j; char a[4][6]={'','','','*','*','*','','','*','*','*','','','*','*','*','','','*','*','*'}; for(i=0;i<4;i++) { for(j=0;j<6;j++) { printf("%c",a[i][j]); } printf("\n"); } }

7.题: #include "string.h" main() { char string[81]; void reverse(char str[]); clrscr(); printf("please input the string:\n"); gets(string); reverse(string); printf("after reverse:\n"); puts(string); getch(); } 第 5 页 共 10 页

void reverse(char str[]) { int i,t,len; len=strlen(str); for(i=0;i{ t=str[i]; str[i]=str[len-i-1]; str[len-i-1]=t; } } 8.题: #include "math.h" void main() { int i,x;

printf("please input x: \n"); scanf("%d %d",&x,&i); printf("x^i= %.0f\n",pow(x,i));

} 9.题:(数组法) 第一问: #include "stdio.h" void main() { int i,j; float m[4][3]={78,67,89,45,98,93,91,67,84,84,48,88}; float ave,s=0; int i,j; float m[4][3]={78,67,89,45,98,93,91,67,84,84,48,88}; float ave,s=0; for(i=0;i<4;i++) { for(j=0;j<3;j++) { printf("%.0f\t",m[i][j]); /*此部分为显示出矩阵*/ } printf("\n"); } printf("average stu_1-4 score is: \n"); for(i=0;i<4;i++) { for(j=0;j<3;j++) {

精简后: #include "stdio.h" void main() { int i,j; float m[4][3]={78,67,89,45,98,93,91,67,84,84,48,88}; float ave,s=0; printf("average stu_1-4 score is: \n"); for(i=0;i<4;i++) { for(j=0;j<3;j++) { s=s+m[i][j]; } ave=s/3; printf("stu %d,ave= %.1f\n",i+1,ave); s=0; } } 第 6 页 共 10 页

s=s+m[i][j]; printf("s=%.0f\n",s); /*调试部分,检验s和输出衡行数据的值*/ printf("%.0f ",m[i][j]); /*调试部分可省略*/ } printf("\n"); ave=s/3; printf("stu %d,ave= %.1f\n",i+1,ave); s=0; } }

第二问与第一问相似,转一下就行了。 第三问: #include "stdio.h" void main() { int i,j; float a[4][3]={78,67,89,45,98,93,91,67,84,84,48,88}; printf("score more than 90 are : \n"); for(i=0;i<4;i++) { for(j=0;j<3;j++) { if(a[i][j]>=90) printf(" %.0f\n",a[i][j]); } printf("i= %d,j= %d\n",i,j); } } 10.题: 第一问: #include "stdio.h" void main() { struct stu { char name[10]; float c_score,math_score,eng_score; }; int i; float ave,s=0; struct stu a[4]={"lilin",78,67,89,"zhouyi",45,98,93,"suwei",91,67,84,"zhangli",84,48,88}; /* for(i=0;i<4;i++) { printf("name%s\nc_score%.0f\nmath_score%.0f\neng_score%.0f\n\n",a[i].name,a[i].c_score,a[i].math_score,a[i].eng_score);