C语言沈阳理工大学考试复习习题docx.docx

上传人:b****7 文档编号:23716616 上传时间:2023-05-20 格式:DOCX 页数:14 大小:97.41KB
下载 相关 举报
C语言沈阳理工大学考试复习习题docx.docx_第1页
第1页 / 共14页
C语言沈阳理工大学考试复习习题docx.docx_第2页
第2页 / 共14页
C语言沈阳理工大学考试复习习题docx.docx_第3页
第3页 / 共14页
C语言沈阳理工大学考试复习习题docx.docx_第4页
第4页 / 共14页
C语言沈阳理工大学考试复习习题docx.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言沈阳理工大学考试复习习题docx.docx

《C语言沈阳理工大学考试复习习题docx.docx》由会员分享,可在线阅读,更多相关《C语言沈阳理工大学考试复习习题docx.docx(14页珍藏版)》请在冰豆网上搜索。

C语言沈阳理工大学考试复习习题docx.docx

C语言沈阳理工大学考试复习习题docx

C语言,沈阳理工大学,考试复习习题

6.1:

求出1一100之间的素数,并以每行打印5个输出,当求得素数的个数超过20个时,不再计算。

6.1:

#includemain()

(inti,j,k,n=0;

for(i=l;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;}))6.2:

键盘上输入两个正整数,分别赋给变量a和b,计算从a的值到b的值之间的所有整数之和,并输出结果。

5+6+7+8+9=356.2:

^includemain()

(inta,b,sum;

scanf(,&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);}6.3:

打印形状为直角三角形的九九表。

124369

481216,,

91827,,81数组

}*

6.3:

甘includemain(){inti,j;

for(i=l;i<10;i++)(for(j=l;j<=i;j++)

printf("%4d",i*j);printf("\n”);}}

7.1:

从键盘输入10个不为零的整数,将它们按正负数分开后,分别按从小到大的顺序打印出来。

7.1:

^includemain()

(inti,j,t,m=0,a[10];for(i=0;i<10;i++)

scanf("%d",&a[i]);printf("\n");for(i=0;i<9;i++)for(j=0;j<9-i;j++)

if(a[j]>a[j+l]){t=a[j];a[j]=a[j+l];a[j+l]=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]);}8.2:

用起泡法对10个数排序。

(用函数实现)8.2:

^includemain()

{voidsort(intarray[],intn);inta[10],m=0,i;for(i=0;i<10;i++)

scanf("%d”,&a[i]);sort(a,10);

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]);}

voidsort(intarray,intn){inti,j,k,t;

for(i=0;i

for(j=i+l;j

if(array[j]

t=array[k];array[k]=array[i];array[i]=t;}

8.3:

用选择法对10个数排序。

(用函数实现)8.3:

^includemain()

{voidsort(intarray[],intn);inta[10],m=0,i;for(i=0;i<10;i++)

scanf("%d”,&a[i]);sort(a,10);

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]);}

voidsort(intarray,intn){inti,j,t;

for(i-0;i

if(array[j]>array[j+1])

(t=array[j];array[j]=array[j+1];array[j+1]=t;}}}9.1输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。

写3个函数:

①输入10个数;②进行处理;③输出10个数。

9.1:

#includemain()

{voidinput(intnumber[10]);

voidmax_min_value(intarray[10]);voidoutput(intarray[10]);intnumber[10];input(number);

max_min_value(number);output(number);}voidinput(intnumber[10])(inti;

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

scanf(a%dv,&number[i]);}

voidmax_min_value(intarray[10]){int*max,*inin,*p,*array_end;array_end=array+10;max=min=array;

for(p=array+l;p

*p=array[0];array[0]二*min;*min=*p;*p=array[9];array[9]=*max;*max=*p;}

voidoutput(intarray[10]){int*p;

for(p=array;p<=array+9;p++)printf("%4d”,*p);}10.1有10个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,和最高成绩。

10.1:

#includestructstudent(charnum[6];charname[8];intscore[3];floatavr;}stu[10];main()

(inti,j,max=0,maxi二0,sum=0;floataverage、。

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

(scanf("%s%s”,stu[i].num,stu[i].name);for(j=0;j<3;j++)

scanf(a%dv,&stu[i].scoretj]);}for(i=0;i<10;i++)(sum=0;

for(j=0;j<3;j++)

sum+=stu[i].scoretj];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("Thehighestscore

is:

%s,%s,%d,%f”,stu[maxi].num,stu[maxi].name,max,stu[maxi].avr);}7.2:

***

7.2:

#includemain()

(chara[5]=(,*',,*',,*',,*',,*'};inti,j,k;

for(i=0;i<5;i++){for(j=0;j

printf("%c”,"”);for(k=0;k<5;k++)

printf("%c”,a[k]);printf("\n”):

})

8.1:

判断m是否是素数。

(用函数实现)8.1:

#includemain0

(intf(intm);intm,n;

scanf(“%d”,&m);n=f(m);

if(n)printf("%disaprimenumber\n,,,m);

elseprintf("%disnotaprimenumber\n,,,m);}

intf(intm)(inti,k,p;k=sqrt(m);

for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+l)p=l;elsep=0;returnp;}

选择结构

例5.1输入两个实数,按代数值由小到大的顺序输出这两个数。

#includemain()

{floata,b,t;

scanf(,f%f,%f”,&a,&b);if(a>b){t=a;a=b;b=t;}

printf("%5.2f,%5.2f\n",a,b);}

例5.2输入三个数,找出其中最大的数。

mainO

(inta,b,c,t;

scanf("%d%d%d”,&a,&b,&c);if(a>b)t=a;elset=b;if(t

printf("max=%d”,t);}

循环结构

例6.6判断m是否素数。

#include#includemainO

{intm,i,k;

scanf("%d”,&m);k=sqrt(m);

for(i=2;i<=k;i++)if(m%i=0)break;

if(i>=k+l)printf(〃%disaprimenumber'll”,m);

elseprintf(〃%disnotaprimenumber\n",m);}

例6.7求100〜200间的全部素数。

#includettincludemain()

(inti,j,k,n=0;

for(i=101;i<=200;i=i+2){k=sqrt(i);

for(j=2;j<=k;j++)if(i%j==0)break;

if(j〉=k+l){printf(〃%d〃,i);n=n+l;}

if(n%10=0)printf(〃\n〃);}

printf(〃\n");}

例6.8编写程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩。

^includemain()(inti,j;

floatscore,sum,ave;for(i=l;i<=6;i++)(sum=0;

for(j=l;j<=5;j++)

{scanf(,f%f",&score);sum+=score;}ave=sum/5;

printf("No.%dave=%5.2f\nv,i,ave);}

例6.9输出以下图形。

*************************includemain()(inti,j,k;

for(i=l;i<=4;i++)(for(j=l;j<=4-i;j++)printf("”);

for(k=l;k〈二2*iT;k++)printf(;printf("\n”);}for(i=l;i<=3;i++)

{for(j=l;j<=i;j++)printf("”);

for(k=l;k<=7~2*i;k++)printf(;printf("\n");}

例7.5:

有一个3X4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。

甘includemain()

(inti,j,row=0,colum=0,max;

inta[3][4]=({1,2,3,4},{9,8,7,6},{TO,10,-5,2}};max=a[0][0];

for(i=0;i<=2;i++)for(j=0;j<=3;j++)if(a[i][j]>max)

(max=a[i][j];row=i;colum=j;}printf(amax=%d,row=%d,colum=%d\n,?

max,row,colum);}指针

例9.2输入a和b两个整数,按先大后小的顺序输出a和b#includevoidmain()

{int*pl,*p2,*p,a,b;

scanf("%d,%d",&a,&b);pl=&a;p2=&b;if(a

{p=pl;pl=p2;p2=p;}printf("a=%d,b=%d\n”,a,b);printf

("max=%d,min=%d\n”,*pl,*p2);}

例9.3输入a和b两个整数,按先大后小的顺序输出。

ttincludevoidmain()

(voidswap(int*pl,int*p2);inta,b;

int*pointer_1,*pointer_2;

scanf("%d,%d”,&a,&b);pointer_1=&a;pointer_2=&b;if(a

voidswap(int*pl,int*p2){inttemp;temp=*pl;*pl=*p2;*p2=

temp;}

例9.4输入a、b、c3个整数,按大小顺序输出。

#includevoidmain()(voidexchange(int*ql,int*q2,int*q3);inta,b,c,*pl,*p2,*p3;

scanf(〃%d,%d,%d〃,&a,&b,&c);

pl=&a;p2=&b;p3=&c;exchange(pl,p2,p3);

printf("%d,%d,%d\n”,a,b,c);}

voidexchange(int*ql,int*q2,int*q3){voidswap(int*ptl,int*pt2)if(*qlV*q2)swap(ql,q2);if(*qlV*q3)swap(ql,q3);if(*q2<*q3)swap(q2,q3);}

voidswap(int*ptl,int*pt2)(inttemp;temp=*ptl;*ptl=*pt2;*pt2

=temp;}

例9.8:

用指针变量输出二维数组元素的值ttincludevoidmain()

(inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int*p;

for(p=a[0];p

==0)printf("\n");printf("%4d”,*p);))

例9.9:

输出二维数组任一行任一列元素的值

#includevoidmain(){inta[3][4]={1,3,5,7,9,11,

13,15,17,19,21,23};

int(*p)[4],i,j;p=a;

scanf("i=%d,j=%d”,&i,&j);

printf("a[%d][%d]=%d\n”,i,j,*(*(p+i)+j));}

运行情况如下:

i=1,j=2/a[1,2]=13例9.10:

有一个班,3个学生,各学4门课,计算总平均分数以及第n个学生的成绩。

#includevoidmain()

{voidaverage(float*p,intn);voidsearch(float(*p)[4],intn);floatscore[3][4]=({65,67,70,60),{80,87,90,81),(90,99,100,98}};average(*score,12);/*求12个分数的平均分*/search(score,2);

/*求序号为2的学生的成绩*/}

voidaverage(float*p,intn){float*p_end;floatsum=0,aver;p_end=p+n—1;

for(;pV=p_end;p++)sum=sum+(*p);aver=sum/n;printf

("average=%5.2f\n”,aver);}

voidsearch(float(*p)[4],intn)/*p是指向具有4个元素的一维数组的指针*/(inti;

printf("thescoreofNo.%dare:

\n",n);for(i=0;i<4;i++)

printf(〃%5.2f〃,*(*(p+n)+i));

}程序运行结果如下:

average=82.25

ThescoreofNo.2are:

90.0099.00100.0098.00

例9.11:

在上题基础上,查找有一门以上课程不及格的学生,打印出他们的全部课程的成绩。

#includevoidmain()

(voidsearch(float(*p)[4],intn);floatscore[3][4]=({65,57,70,60},{58,87,90,81),{90,99,100,98}};

search(score,3);}

voidsearch(float(*p)[4],intn)(inti,j,flag;

for(j=0;j

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

if(*(*(p+j)+i)<60)flag=1;

if(f1ag==l)

(printf(〃No.%dfails,hisscoresare:

\n〃,j+1);

for(i=0;i<4;i++)printf("%5.1f",*(*(p+j)+i));printf("\n”);}}

}程序运行结果如下:

No.1fails,hisscoresare:

65.057.070.0

58.087.090.0voidmain()

0No.2fails,hisscoresare:

{chara[]="Iama

boy.

〃,b[20];inti;

for(i=0;a[i]!

二'\0';

i++)

b[i]=a[i];b[i]二'\0';

0例9.14:

将字符串a复制为字符串b#include

printf("stringais:

%s\n”,a);printf("stringbis:

%s\n”,b);}运行情

况如下:

stringais:

Iamaboy.stringbis:

Iamaboy.

例9.16:

用函数调用实现字符串的复制。

}甘includevoidmain()

{voidcopy_string(char*from,char*to);char*a="Iamateacher.";char*b="youareastudent.”;

printf("stringa=%s\nstringb=%s\n,fa,b);printf("copystringatostringb:

\n〃);copy_string(a,b);

printf(^Xnstringa=%s\nstringb=%s\n〃,a,b);

}voidcopy_string(char*froni,char*to){for(;*from!

='\0';from++,to++)*to=*from;*to='\0z;}

程序运行结果如下:

stringa=Iamateacher,stringb=youareastudent,copystringatostringb:

stringa=Iamateacher,stringb=Iamateacher.

例9.18:

有若干个学生的成绩(每个学生有4门课程),要求在用户输入学生序号以后,能输出该学生的全部成绩。

用指针函数来实现。

#includevoidmain()

{floatscore:

][4]={{60,70,80,90),{56,89,67,88},(34,78,90,66}};

float^search(float(^pointer)[4],intn);float*p;inti,m;printf("enterthenumberofstudent:

");scanf("%d”,&m);

printf("ThescoresofNo.%

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1