当前位置:
文档之家› C语言,沈阳理工大学,考试复习习题
C语言,沈阳理工大学,考试复习习题
7.2:#include <stdio.h> 7.2:* * * * * main() * * * * * { char a[5]={‘*’,‘*’,‘*’,‘*’,‘*’}; * * * * * int i,j,k; * * * * for(i=0;i<5;i++) * * * * * { for(j=0;j<i;j++) * printf(“%c”,“ ”); for(k=0;k<5;k++) printf(“%c”,a[k]); printf(“\n”): } }
6.1:# include <math.h> 6.1:求出1—100之间的素数,并以每行打印5个输 出,当求得素数的个数超过20个时,不再计算。 main() { int i,j,k,n=0; for(i=1;i<=100;i++) { k=sqrt(i); for(j=2;j<=k;j++) if(i%j==0) break; if(j>=k+1) { printf(“%3d”,i); n++; if(n%5==0) printf(“\n”); if(n>=20) break; } } }
8.2:#include <stdio.h>
8.2:用选择法对10个数排序。(用函数实现) main()
{ void sort(int array[],int n); int a[10],i; for(i=0;i<10;i++) scanf(“%d”,&a[i]); sort(a,10); for(i=0;i<10;i++) printf(“%4d”,a[i]); } void sort(int array[],int n) { int i,j,k,t; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(array[j]<array[k]) k=j; t=array[k];array[k]=array[i];array[i]=t; } }
10.1:# include <stdio.h> 10.1:有10个学生,每个学生的数据包括学 struct student 号、姓名、3门课的成绩,从键盘输入10个学 { char num[6]; 生数据,要求输出3门课程总平均成绩,以及 char name[8]; 最高分的学生的数据(包括学号、姓名、3门 int score[3]; 课程总成绩、平均分数)。 float avr; }stu[10]; main() { int i,j,max=0,maxi=0,sum=0; float average=0; for(i=0;i<10;i++) { scanf(“%s%s”,stu[i].num,stu[i].name); for(j=0;j<3;j++) scanf(“%d”,&stu[i].score[j]); }
7.1:#include <stdio.h> 7.1:从键盘输入10个不为零的整数,将它们按正负 main() 数分开后,分别按从小到大的顺序打印出来。 { int i,j,t,m=0,a[10]; 程序运行结果如下: for(i=0;i<10;i++) -76 -45 scanf(“%d”,&a[i]); 0 printf(“\n”); 1 4 8 12 65 100 123 for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(a[j]>a[j+1]) { t=a[j];a[j]=a[j+1];a[j+1]=t;} for(i=0;i<10;i++) if(a[i]<0) { printf(“%4d”,a[i]); m++; } printf(“\n”); for(i=m;i<10;i++) printf(“%4d”,a[i]); }
void max_min_value(int array[10]) { int *max,*min,*p,*array_end; array_end=array+10; max=min=array; for(p=array+1;p<array_end;p++) if(*p>*max) max=p; else if (*p<*min) min=p; *p=array[0];array[0]=*min;*min=*p; *p=array[9];array[9]=*max;*max=*p; } void output(int array[10]) { int *p; for (p=array;p<=array+9;p++) printf(“%4d”,*p); }
for(i=0;i<10;i++) { sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; stu[i].avr=sum/3.0; average+=stu[i].avr; if(sum>max) { max=sum; maxi=i; } } average/=10; printf(“average=%6.2f\n”,average); printf(“The highest score is:%s,%s,%d,%f”, stu[maxi].num,stu[maxi].name,max,stu[i];stdio.h> 6.3:打印形状为直角三角形的九九表。 1 main() 2 i,j; { int 4 3 6 9 for(i=1;i<10;i++) 4 for(j=1;j<=i;j++) { 8 12 16 … printf(“%4d”,i*j); 9 printf(“\n”); 63 72 81 18 27 36 45 54 } }
8.3:#include <stdio.h> 8.3:用起泡法对10个数排序。(用函数实现)
main() { void sort(int array[],int n); int a[10],i; for(i=0;i<10;i++) scanf(“%d”,&a[i]); sort(a,10); for(i=0;i<10;i++) printf(“%4d”,a[i]); } void sort(int array[],int n) { int i,j,t; for(i=0;i<n-1;i++) for(j=0;j<9-i;j++) if(a[j]>a[j+1]) { t=a[j];a[j]=a[j+1];a[j+1]=t; } }
6.2:#include <stdio.h> 6.2:键盘上输入两个正整数,分别赋给变量a和b, 计算从a的值到b的值之间的所有整数之和,并输 main() 出结果。例:5+6+7+8+9=35 { int a,b,sum; scanf(“%d%d”,&a,&b); if(a>b) { t=a;a=b;b=t;} for(sum=0;a<=b;a++) { sum+=a; printf(“%d+”,a); } printf(“\b=%d\n”,sum); }
9.1:# include <stdio.h> 9.1:输入10个整数,将其中最小的数与第一 main() 个数对换,把最大的数与最后一个数对换。 { void input(int number[10]); 写3个函数:①输入10个数;②进行处理;③ void max_min_value(int array[10]); 输出10个数。 void output(int array[10]); int number[10]; input (number); max_min_value(number); output(number); } void input(int number[10]) { int i; for(i=0;i<=9;i++) scanf(“%d”,&number[i]); }
8.1:#include <math.h>
8.1:判断m是否是素数。(用函数实现) main()
{ int f(int m); int m,n; scanf(“%d”,&m); n=f(m); if(n) printf(“%d is a prime number\n”,m); else printf(“%d is not a prime number\n”,m); } int f(int m) { int i,k,p; k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>=k+1) p=1; else p=0; return p; }