三级网络上机辅导英文Word文档格式.docx
《三级网络上机辅导英文Word文档格式.docx》由会员分享,可在线阅读,更多相关《三级网络上机辅导英文Word文档格式.docx(58页珍藏版)》请在冰豆网上搜索。
while(n>
0)
{/*进行1次运算,求1…n的和*/
sum=0;
for(i=1;
i<
=n;
i=i+1)
sum=sum+i;
/*循环体*/
printf("
sum=%d\n"
sum);
/*输出语句*/
请继续输入整数n:
scanf("
}/*当循环体有多个语句时*/
}
三、数组
定义数组:
类型名数组名[数组元素个数];
定义一个数组:
a,它可以存入10个整数。
inta[10];
b,它可以存入6个实数。
floatb[6];
定义一个字符数组,s,它可以存入10个字符。
chars[10];
2、对数组元素的赋值。
数组元素的下标是从0开始的。
a[0]=2;
a[1]=9;
a[2]=6;
3、对数组的初始化
inta[6]={6,8,3,7,9}
floatb[]={4.0,3.2,2.8,8.9}
如果在数组定义时,同时初始化数组,可以不写数组长度;
同时也可以写数组长度,但是不能够比初始化元素的个数小。
charc[6]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’}
4、数组元素的排序
intmain(void)/*int是函数的类型(返回值的类型)*/
inta[6]={6,8,3,7,9,0};
inti,j,t;
/*从小到大排序*/
for(i=0;
5;
i++)
for(j=i+1;
j<
6;
j++)
if(a[i]>
a[j])/*交换条件*/
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
/*排序后输出*/
a[%d]=%d\n"
i,a[i]);
return0;
i=0第一轮后
四、结构体
1、定义
自定义数据类型的一种。
int,float,double,char这几种常见数据类型。
现在需要一种数据student,他的结构是由姓名,年龄,专业三个数据项组成。
函数内定义:
structstudent
charname[10];
intage;
charmajor[20];
2、定义结构体变量
studentstu[10];
3、对结构体元素排序
对学生进行按照年龄排序。
string.h>
voidmain(void)
structstudent/*定义学生结构体*/
{/*包含三个成员*/
charname[20];
intage;
charmajor[30];
};
studentstu[10]={{"
zhangsan"
20,"
wuliu"
},
{"
lisi"
21,"
jisuanji"
},{"
wangwu"
19,"
dianzishangwu"
zhaoliu"
qianqi"
/*定义学生变量*/
inti,j;
studentt;
/*交换时,临时变量*/
/*按照年龄从小到大排序,若年龄相同,按专业从小到大排序*/
4;
if(stu[i].age>
stu[j].age)/*交换条件*/
t=stu[i];
stu[i]=stu[j];
stu[j]=t;
else
if(stu[i].age==stu[j].age&
&
strcmp(stu[i].major,stu[j].major)>
/*交换条件*/
{
t=stu[i];
stu[i]=stu[j];
stu[j]=t;
}
%s,%d,%s\n"
stu[i].name,stu[i].age,stu[i].major);
\n%d\n"
strcmp("
abc"
"
));
对学生进行先按照年龄排序,若年龄相等在按照专业排序。
字符串比较函数strcmp(str1,str2),功能是比较str1与str2的大小,若str1>
str2,则返回正数,;
例如:
abc和ab;
若str1<
str2,则返回负数,例如aab,aac;
若str1=str2,则返回0。
五、上机试题类型
1.销售记录(两个关键字排序问题)
2008年9月第1题(第3题、第6题、)
1)知识点:
结构体、数组、循环、冒泡法排序
2)思路分析:
定义在全局变量:
typedefstruct{
chardm[5];
/*产品代码*/
charmc[11];
/*产品名称*/
intdj;
/*单价*/
intsl;
/*数量*/
longje;
/*金额*/
}PRO;
/*结构体定义*/
sell
代码
名称
单价
数量
金额
sell[0]
sell[1]
…
sell[MAX]
in.dat
1、计算金额
3)参考代码:
conio.h>
stdlib.h>
#defineMAX100
PROsell[MAX];
voidReadDat();
voidWriteDat();
voidSortDat()
PROt;
/*临时变量t与sell同一类型*/
for(i=0;
MAX;
i++)/*金额*/
sell[i].je=sell[i].dj*sell[i].sl;
/*排序*/
MAX-1;
j++)/*注意交换条件*/
if(strcmp(sell[i].mc,sell[j].mc)<
0)/*交换条件*/
{/*交换*/
t=sell[i];
sell[i]=sell[j];
sell[j]=t;
if(strcmp(sell[i].mc,sell[j].mc)==0&
sell[i].je<
sell[j].je)/*交换条件*/
{/*交换*/
t=sell[i];
sell[i]=sell[j];
sell[j]=t;
}
voidmain()
{
memset(sell,0,sizeof(sell));
ReadDat();
SortDat();
WriteDat();
}
voidReadDat()
FILE*fp;
charstr[80],ch[11];
inti;
fp=fopen("
IN.DAT"
r"
100;
i++){
fgets(str,80,fp);
memcpy(sell[i].dm,str,4);
memcpy(sell[i].mc,str+4,10);
memcpy(ch,str+14,4);
ch[4]=0;
sell[i].dj=atoi(ch);
memcpy(ch,str+18,5);
ch[5]=0;
sell[i].sl=atoi(ch);
sell[i].je=(long)sell[i].dj*sell[i].sl;
fclose(fp);
voidWriteDat(void)
OUT10.DAT"
w"
%s%s%4d%5d%10d\n"
sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
fprintf(fp,"
%s%s%4d%5d%5d\n"
2.二维数组(奇数列排序问题)
2008年9月第2题
1)知识点
二维数组、排序、循环结构,字符串长度函数strlen(char*s)
整型数组inta[4][3];
a[0]
a[1]
a[1][1]
a[2]
a[3]
第0行a[0][0]a[0][1]a[0][2]
第1行a[1][0]a[1][1]a[1][2]
第2行a[2][0]a[2][1]a[2][2]
第3行a[3][0]a[3][1]a[3][2]
字符型数组chara[4][3];
第3行a[2][0]a[2][1]a[2][2]
第4行a[3][0]a[3][1]a[3][2]
strlen(字符串),求字符串的长度
2)思路分析
1、从第0行到第19行进行处理、每一行进行如下处理
2、求第row行的长度lenth
3、对第row行进行排序(奇数列排序)
3)参考代码
#include<
windows.h>
charxx[20][80];
voidjsSort()
int