首都师范大学初教院信息方向C语言考试代码复习资料.docx
《首都师范大学初教院信息方向C语言考试代码复习资料.docx》由会员分享,可在线阅读,更多相关《首都师范大学初教院信息方向C语言考试代码复习资料.docx(16页珍藏版)》请在冰豆网上搜索。
首都师范大学初教院信息方向C语言考试代码复习资料
1.switchgrademain()
{intscore,grade;
printf("inputascore(0~100):
");
scanf("%d",&score);
grade=score/10;
switch(grade)
{case10:
case9:
printf("grade=A\n");break;
case8:
printf("grade=B\n");break;
case7:
printf("grade=C\n");break;
case6:
printf("grade=D\n");break;
case5:
case4:
case3:
case2:
case1:
case0:
printf("grade=E\n");break;
default:
printf("thescoreisoutofrange!
\n");
}
}
2.switchprofit
main()
{longprofit;
intgrade;
floatsalary=500;
printf("inputprofit:
");
scanf("%ld",&profit);
grade=(profit-1)/1000;
switch(grade)
{case0:
break;
case1:
salary+=profit*0.1;break;
case2:
case3:
case4:
salary+=profit*0.15;break;
case5:
case6:
case7:
case8:
case9:
salary+=profit*0.2;break;
default:
salary+=profit*0.25;
}
printf("salary=%.2f\n",salary);
}
3.for数列
main()
{longintf1=1,f2=1;/*排成一行每行四个数*/
inti=1;
for(;i<=20;i++)
{printf("%15ld%15ld",f1,f2);
if(i%2==0)printf("\n");/*1除以2的余数*/
f1+f2;
f2+=f1;
}}
4.小在前的排序
voidmain(void)
{inta[10],i,j,tmp,b;/*循环10次每次输入一个到数组A,a[1]a[2]...*/
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)/*循环9次,9次找出9个小的,最后一个最大*/
{tmp=i;
for(j=i+1;j<10;j++)/*第一趟结束后i=1,因为i=0已经选出最小,下面该从第二个比*/
if(a[tmp]>a[j])/*改成<就变为从大到小排列*/
tmp=j;
if(i!
=tmp)
{b=a[tmp];
a[tmp]=a[i];
a[i]=b;
}
}
for(i=0;i<10;i++)
printf("%3d",a[i]);/*从0开始输出*/
printf("\n");
for(i=9;i>=0;i--)/*从九开始输出,这样有两行即从小到大和从大到小*/
printf("%3d",a[i]);
printf("\n");
}
5.binarysearch
#include
#definelen8
inta[len]={1,2,3,4,5,6,6,7,8,9}
intbinarysearch(intnumber)
{
intmid,start=0,end=len-1;
while(start<=end)
{
mid=(start+end)/2;
if(a[mid]start=mid+1;
elseif(a[mid]>number)
end=mid-1;
else
returnmid;/*就是附值给binarysearch*/
}
return-1;/*错误时返回-1*/
}
{
printf("%d\n",binarysearch(5));/*查5*/
return0;
}
6.孙琪的binarysearch
#include
voidmain()
{inta[15],x,i,start,end;
printf("input15numbers:
\n");
for(i=0;i<15;i++)
scanf("%d",&a[i]);
printf("pleaseenterthenumber:
\n");
scanf("%d",&x);
for(start=0,end=14;start<=end;)
{
i=start+(end-start)/2;
if(x==a[i])
{printf("%d",i+1);
getch();
return;
}
elseif(x>a[i])end=i-1;
elsestart=i+1;
}
}
7.倩倩的binarysearch
#defineN10
#include
voidmain()
{
voidsearch(inta[],intx);
inta[N],x,i;
printf("inputthenumbers:
\n");
for(i=0;iscanf("%d",&a[i]);
printf("inputx:
\n");
scanf("%d",&x);
search(a,x);
}
voidsearch(inta[],intx)
{
intmid,top,bot,find=0;
top=0;
bot=N-1;
do
{
mid=(top+bot)/2;
if(x==a[mid])
find=1;
else
if(x>a[mid])top=mid+1;
elsebot=mid-1;
}
while((top<=bot)&&(find==0));
if(find==0)
printf("%3dnotbeenfound.",x);
else
printf("find:
%3d,itisa[%d]",x,mid);
printf("\n");
}
8.PI
#defineNUM10/*输入N个数,用冒泡法从小到大排序*/
main()/*定义符号常量*/
{intdata[NUM];/*定义一个一维数组data*/
inti,j,temp;/*定义循环变量和临时变量*/
clrscr();/*清屏*/
printf("Pleaseinput10numbers:
\n");
for(i=0;iscanf("%d",&data[i]);
for(i=0;ifor(j=NUM-1;j>i;j--)/*内循环,控制每趟比较*/
if(data[j]{temp=data[j];data[j]=data[j-1];data[j-1]=temp;};
printf("\ntheresultofsort:
\n");/*输出排序后的数据*/
for(i=0;iprintf("%d",data[i]);
getch();/*等待输入任意字符,目的使程序暂停*/
}
9.排列
include"studio.h"
intmain()/*书97页*/
{inti,j;
for(i=1;i<=4;i++)
{for(i=1;j<=4-i;j++)
printf("");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
}
10.求总评成绩中文版
#include"stdio.h"
main()
{inti=1,j;
charcon_key='\x20';
floatscore[5],ratio[4]={0.1,0.2,0.2,0.5};
while(con_key=='\x20')
{clrscr();
printf("输入第%2d个学生成绩\n",i++);
printf("平时实习测验期末成绩\n");
score[4]=0;
for(j=0;j<4;j++)
{scanf("%f",&score[j]);
score[4]+=score[j]*ratio[j];
}
printf("总评成绩为:
%6.1f\n",score[4]);
printf("\n"空格继续,其他退出);
con_key=getch();
}
}
11实心三角
#include"stdio.h"
#defineNUM5
intmain()
{inti,j;
clrscr();
for(i=1;i<=NUM;i++)
{for(j=1;j<=NUM-i;j++)
printf("");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
}
12空心三角
#include"stdio.h"
intmain()
{inti,j;
clrscr();
for(j=1;j<=3;j++)/*产生空三角形*/
printf("");
printf("*");
printf("\n");
for(i=2;i<=4;i++)
{
for(j=1;j<=4-i;j++)
printf("");
printf("*");
for(j=1;j<=2*i-3;j++)/*1,3,5个空格*/
printf("");
printf("*");
printf("\n");
}
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
*
**
**
*******
13.菱形
#include"stdio.h"
intmain()
{inti,j;
clrscr();
for(i=1;i<=4;i++)
{for(j=1;j<=4-i;j++)
printf("");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
for(i=1;i<=3;i++)
{for(j=1;j<=i;j++)
printf("");
for(j=1;j<=7-2*i;j++)
printf("*");
printf("\n");
}
return0;
}
14.老师的菱形
#include"stdio.h"
#defineNUM9
intmain()
{inti,j,h1,h2;
clrscr();
h1=NUM/2+1;
h2=NUM-h1;
for(i=1;i<=h1;i++)
{for(j=1;j<=h1-i;j++)
printf("");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
for(i=1;i<=h2;i++)
{for(j=1;j<=i;j++)
printf("");
for(j=1;j<=NUM-2*i;j++)
printf("*");
printf("\n");
}
}
15.空心菱形
#include"stdio.h"
#defineNUM9
intmain()
{inti,j,h1,h2;
clrscr();
h1=NUM/2+1;
h2=NUM-h1;
for(j=1;j<=h1-1;j++)
printf("");
printf("*");
printf("\n");
for(i=2;i<=h1;i++)
{
for(j=1;j<=h1-i;j++)
printf("");
printf("*");
for(j=1;j<=2*i-3;j++)
printf("");
printf("*");
printf("\n");
}
for(i=1;i
{for(j=1;j<=i;j++)
printf("");
printf("*");
for(j=1;j<=NUM-2*i-2;j++)
printf("");
printf("*");
printf("\n");
}
for(j=1;j<=h2;j++)
printf("");
printf("*");
printf("\n");
}
16.给一个2X3的2维矩阵赋值
#defineRow2
#defineCol3
#include"stdio.h"
main()
{inti,j,array[Row][Col];/*定义1个2行3列的2维数组array*/
for(i=0;i控制2维数组的行*/
for(j=0;j
控制2维数组的列*/
{printf("pleaseinputarray[%2d][%2d]:
",i,j);
scanf("%d",&array[i][j]);/*从键盘输入a[i][j]的值*/
}
printf("\n");/*输出2维数组array*/
for(i=0;i{for(j=0;j
printf("%d\t",array[i][j]);/*将a[i][j]的值显示在屏幕上*/
printf("\n");
}
getch();
}
16.转置2X3的2维矩阵
defineRow2
#defineCol3
#include"stdio.h"
main()
{inti,j,array[Row][Col];/*定义1个2行3列的2维数组array*/
for(i=0;i控制2维数组的行*/
for(j=0;j
控制2维数组的列*/
{printf("pleaseinputarray[%2d][%2d]:
",i,j);
scanf("%d",&array[i][j]);/*从键盘输入a[i][j]的值*/
}
printf("\n");/*输出2维数组array*/
for(i=0;i
{for(j=0;jprintf("%d\t",array[j][i]);/*将a[j][i]的值显示在屏幕上*/
printf("\n");
}
}
16.矩阵乘法
#defineRow12
#defineCol13
#defineRow23
#defineCol22
#include"stdio.h"
main()
{inti,j,x,y,s,array[Row1][Col1],array[Row2][Col2];/*定义1个2行3列的2维数组array*/
for(i=0;i控制2维数组的行*/
for(j=0;j控制2维数组的列*/
{printf("pleaseinputarray[%2d][%2d]:
",i,j);
scanf("%d",&array[i][j]);/*从键盘输入a[i][j]的值*/
}
printf("\n");/*输出2维数组array*/
for(x=0;xfor(y=0;y{printf("pleaseinputarray[%2d][%2d]:
",x,y);
scanf("%d",&array[x][y]);
}
for(i=0;i{for(j=0;jprintf("%d\t",array[i][j]);/*将a[i][j]的值显示在屏幕上*/
printf("\n");
}
for(x=0;x{for(y=0;yprintf("%d\t",array[x][y]);
printf("\n");
}
s=s+a[i][j]*a[y][x];
printf("s=%d",s);
printf("\n");
getch();
}
17.求学生平时成绩
#defineNUM_STD5
#defineNUM_COURSE4/*有M个学生N门课*/
#include"stdio.h"/*求每个学生的平时成绩和每门课的平均成绩*/
main()
{inti,j;
staticfloatscore[NUM_STD+1][NUM_COURSE+1]=/*行+1列+1求每门成绩总和*/
{{78,85,83,65},{88,91,89,93},{72,65,54,75},
{86,88,75,60},{69,60,50,72}};
for(i=0;i{for(j=0;j{score[i][NUM_course]+=score[i][j];/*求第i个人的总成绩*/
score[NUM_std][j]+=score[i][j];/*求第j门课的总成绩*/
}
score[i][NUM_course]/=NUM_course;/*求第i个人的平均成绩*/
}
for(j=0;jscore[NUM_std][j]/=NUM_std;/*除-求第j门课的平均成绩*/
clrscr();
/*输出表头*/
printf("学生编号课程1课程2课程3课程4个人平均\n");
/*输出每个学生的各科成绩和平均成绩*/
for(i=0;i{printf("学生%d\t",i+1);/*学生以1开头否则以0开头*/
for(j=0;jprintf("%6.1f\t",score[i][j]);/*6位小数点后1位*/
printf("\n");
}
/*输出1条短划线*/
for(j=0;j<8*(NUM_course+2);j++)
printf("-");
printf("\n课程平均");
/*输出每门课程的平均成绩*/
for(j=0;jprintf("%6.1f\t",score[NUM_std][j]);
printf("\n");
getch();
|
|
|
|