同步实训指导参考答案2_第1页
同步实训指导参考答案2_第2页
同步实训指导参考答案2_第3页
同步实训指导参考答案2_第4页
同步实训指导参考答案2_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

序号:2.1

任务1:什么是标识符?简述c的标识符的命名规则。

标识符就是一个有效字符序列,常常用来标识函数名、变量名、数组名、类型名、文件

名。也可以说标识符就是一个名字。其命名规则如下:

•有效字符:字母、下划线、数字,且只能又字母和下划线开头。

­有效长度:随系统而异,但至少前面8个字符有效。

•关键字不能做标识符

比如:sumj_123,_hex,al2等是有效的标识符,而123,a-b,$hh,@email,int都不

是正确的标识符。

任务2:什么是关键字?列举5个关键字。

关键字就是系统本省使用的标识符,也称保留字。比如:int,float,break,for,do,while等

序号:2.2

1、任务1:写出十进制整数25的八进制和十六进制常量表示形式。十进制整数25的八进

制表示是:031,十六进制表示是Oxlb或0X1B

2、任务2:写出转意字符'10Q、’\x2F所表示的字符。

转意字符'101'表示的字符是Z;'\x2f表示的字符是'@

3、任务3:写出实数0.0123,153.34的指数形式。

实数0.0123的指数形式是1.23e-2

实数153.34的指数形式是1.5334E2

同步实训指导参考答案

序号:2.3

任务1:从键盘输入一个十进制整数,输出其八进制和十六进制格式。输入一个实数,按2位

小数输出。

include"stdio.h"

voidmain()

(

intiX;

doublefA;

printf("pleaseinput1integer:");

scanf("%d",&iX);

printff'pleaseinput1double:");

scanf("%匚&fA);

printf("%o,%x\n",iXJX);

printf("%0.2f\n",fA);

序号:2.4

任务i:从健盘输入一个正方形的边长,计算并输出该正方形的内切圆的面积对正方形的覆盖

率。

include"stdio.h"voidmain()

(

floatfX;〃正方形边长

floatfAI;〃正方形面积

floatfA2;〃内切圆面积

printf("pleaseinputthelengthofRegtangle:w);scanf("%化&fX);

fAI=fX*fX;〃正方形面积

fA2二3.1415926*(fX⑵*(fX(2);〃内切圆半径是止方形为边长的一半printf(-%0.2f\n",fA?/fAI);

同步实训指导参考答案

序号:3.1

任务:写出下面选择结构的判定条件的C语句表达式:

1.对于整数X,判断x是否在区间[0,100]内。

2.对于整数y,判断y是否是3和5的倍数。

3.给出一个年份值year,判断year是否为闰年。year是闰年的条件是year能被4整除且

不能被100整除,或者year可以被400整除。

1.x>=0&&x<=100

2.y%3==0&&y%5==0

3.(year%4==0&&year%100!=0)||(year%400==0)

序号:3.2

任务1:任务1:从键盘输入2个整数,输出较大的一个数。要求用if语句完成。include"stdio.h"

voidmain()

{

intx,y;

intmxx;

printff'pleaseinput2integer:");

5canf("%d,%d",&x,&y),

max=x;

if(y<max)max=y;

printf("\nthemaxis%d",max);

}

任务2:从键盘输入2个整数,输出较大的一个数。要求用if-else语句完成include"stdio.h"

voidmain()

(

intx,y;

intmxx;

printff'pleaseinput2integer:");

scanf("%d,%d",&x,&y);

if(xy)

max=x;

else

max=y;

printf("\nthemaxis%d",max);

)

任务3:从键盘输入2个整数,输山较大的•个数。要求用条件语句完成。include“stdio.h”

voidmain()

(

intx,y;

intmxx;

printff'pleaseinput2integer:");

scanf("%d,%d",&x,&y);

max=x>y?x:y;

printf("\nthemaxis%d"zmax);

序号:3.3

任务1:

/*

编写程序,输入使用者的身高和体重,程序就会根据世卫组织体重指数(BMI)计算公式计算出体

重指数,并给出建议。

*/

Ainclude"stdio.h"

doubledSum(intn);

voidmain()

{

intiHeight;

floatfWeight;

floatfBMI;

printf(/zPleaseInputHeight(CM):");

scanf("%d",&iHeight);

printf(/zPleaseInputWeight(KG):”);

scanf("%f",&(Weight);

fBMI=fWeight/((iHeight/100)*(iHeight/100))

if(yourBMI>=35){

printf("Severeobesity");

}elseif(yourBMI>=30){

printf("Moderateobesity");

}elseif(yourBMI>=27){

printf("Mildobesity");

}elseif(yourBMI>=24){

printfC'overweight");

}elseif(yourBMI>=18){

printf("healthyweight");

}else{

printf("underweignt");

}

)

任务2:

/*

编写程序,输入月份数字,输出该月份对应的英文。

*/

include"stdio.h"

voidmain()

(

intiMonth;

printf("请输入月份数字:”);

scanf("%d",&month);

switch(iMonth){

case1:

printf("January");

break;

case2:

printf("February");

break;

printf("March");

break;

case4:

prinll("April");

break;

case5:

printf("May");

break;

case6:

printf("June");

break;

case7:

printfC'July");

break;

case8:

printf("August");

break;

case9:

printff'September");

break;

case10:

printf("October");

break;

case11:

printf("November");

break;

case12:

printff'December");

break;

default:

printff'That'snotavalidmonthnumber.");break;

同步实训指导参考答案

序号:4.1

任务1:

/*

4.任务1:写出生活口两种反复做直到满足一定条件才停止的事情,然后按格式改写

成:做蜩直到满足v余9%再分别把其中的条律和翳聘成C表达式,最后写成C语

句。

*/

上黜到学期结束whi0学期没结束)上课:

扫地直到地干净while(地没干净)扫地;

任务2:

/*

z=ioo

求解》*/

/=/

ftinclude"stdio.h"

voidmain()

(

intk,iSum;

k二1;iSum二0;

while(k<=100)

(

iSum=iSum+k;

k++;

)

printf("\nthesumis%d>',iSum);

任务3:

/*

Jack学习钢琴,每周上一次课,学费从50元开始每次递增5元,将第1周到第10周的学

费分别打印出来

*/

#include"stdio.h"

intisDaff(intiNum);

voidmain()

inti,t=50;

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

(

t=t+5;

printf("%d",t);

同步实训指导参考答案

序号:4.2

任务1:

/*任务求5!

*/

#include〃stdio.h〃voidmainO

(

intk,iSum:

k=l;iSum=1;

while(k<=5)

(

iSum=iSum*k;

k++;

)

printf("\nthesumis%d'\iSum);

)

任务2:

/*

修改任务1,从键盘输入一个整数,然后求其阶乘

/♦

ftinclude〃stdio.h"voidmain()

intk,iSum,n:k=l;iSum=1:

scanf("%d"z&n);while(k<=n)

iSum=iSum*k;

k++;

printf("\nthesumis%d",iSum);

)

任务3:

/*

编写程序打印出数字1一10,但其中不包括4和7

*/

include"stdio.h"

intisDaff(intiNum);

voidmain()

(

inti;

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

(

|f(i!=4||j|=7)printf("%d"zi);

}

)

同步实训指导参考答案

序号:4.3

任务1:

/*

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早

上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。

到第io天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。*/

ftinclude〃stdio.h"

voidmain()

intk,iSum:k=l;iSum=1;

while(k<10)

{iSum=(iSum+l)*2;k++;

}

printf(〃%d〃,iSum):

任务2

/*

百钱百鸡问题:公鸡:5¥;母鸡:3¥;小鸡:1/3¥,100元钱刚好买100只鸡,求公鸡、母

鸡、小鸡各有几只?

/*

//include"stdio.h〃

voidmainO

(

inti,j;

for(i=l;i<20;i++)

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

{if((i*5+j*3+(100-i-j)/3)=100)

Prin:f("公鸡:%d母鸡:%d小鸡:%d”,100-i-j)

任务3:

/*

将1980至2008年间的所有闰年打印输出

*/

include"stdio.h"

intisDaff(intiNum);

voidmain()

(

inti;

for(i=1980;i<=2008;i++)

(

|f((i%4==0&&i%100!=0)||(i%400==0))printf("%d",i);

)

)

同步实训指导参考答案

序号:5.1

任务1:

/*

输出Fibonacci数列(前两个数为1,后面的数等于在它前面的两个数的和)的前20个数,要求

每输出五个数后就换行。

*/

include"stdio.h"voidmain()

intiFibo[20]={1,1};

inti;

for(i=2;i<20;i++)

iFibofi]=iFibo[i-l]+iFibo[i-2];

)

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

(

printf("%d\t",iFibo[i]);

if(i%5==4)

(

printf(H\n");

)

)

getch();

任务2:

/*

全班10个同学的成绩单已经按降序排列好并保存在一个一维数组中,先要求输入一个成绩(假

设10个学生的成绩都不相同),从该成绩单中删除该成绩。

*/

Ainclude"stdio.h"

AdefineSIZE10

voidmain()

{

intiScore(5)ZE]={98,95,91,89,88,85,82,75,70,65};

inti,k;

intiTemp;

printf("%dstudents'scoresare:\n",SIZE);

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

printf("\npleaseinputascoreyouwanttodelete:");scanf("%d",&iTemp);

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

(

讦(iTemp==iScore[i])

(

for(k=i;k<SIZE-l;k++)

(

iScore[k]=iScore[k+l];

}break;

)

)

讦(i==SIZE)

(

printf("notfound!\n");

)

else

{

printf("thefinalscoresare:\nM);for(i=0;i<SIZE-l;i++)

printf("%d\t",iScore[i]);

)

getch();

任务3:

/*将一个数组逆序存放。*/

△include"stdio.h"

AdefineSIZE10

voidmain()

{

intiFirst[SIZE]={98,95,91,89,88,85,82,75,70,65};inti;

intiSecond[SIZE];

printf("thefirstarrayis:\n");

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

{

printf("%d\t",iFrst[i]);iSecond[SIZE-l-i]=iFirst[i];

)

printf("thesecondarrayis:\nz,);

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

(

printf("%d\t"ziSecond[i]);

)

getch();

同步实训指导参考答案

序号:5.2

任务1:

/*在一个3*3矩阵中找出数值最大的元素及其行列下标值,打印输出结果。*/

include"stdio.h"

voidmain()

{

intiValue[3][3]={{3,14,7},{1,15,18},{10,4,5});

intiMax=iValue[0][0];

inti,j;

intiRow,iColumn;

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

{

for0=0;j<3;j++)

if(iValue[i][jl>iMax)

iMax=iValue[i][j];

iRow=i;

iColumn二j;

)

)

)

printf("themaxvalueis:iValue[%d][%d]=%d\n",iRow,iColumn,iMax);getch();

)

任务2:

/*有m个学生nfj课程,编程分别统计每个学生的总成绩和每门课程的平均成绩。*/

include"stdio.h"

^definem3

#definen2

voidmain()

floatfScore[m+l][n+l]={{80,85},{95,98},{75,72}};

inti,j;

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

(

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

(

fScore[i][n]+-fScore[i](j];/*计算每个学生的总成绩*/fScore[m][j]+=

fScore[i皿/m;/*计算每门课程的平均成绩*/}

)

for(i=0;i<m+l;i++)

(

for(j=0;j<n+l;j++)

{

if{i==m&&j==n)

(

printfC'--");

)

else

{

printf("%.2f\t"zfScore[i][j]);

)

)

printf("\n");

)

getch();

同步实训指导参考答案

序号:5.3

任务1:

/*

从键盘输入一篇英文学术文章的标题,要求不多于40个字符,

分别统计其中大写字母、小写字母、数字和其他字符的个数。

*/

include"stdio.h"

voidmain()

charcTitle[41];

intiLower=0,iUpper=0,iDigital=0,iOther=0;

inti=0;

printf("pleaseinputatitleofpaper:\n");gets(cTitle);

while(cTitle[ij!='\0')

(

if(cTitle[i]>='a'&&cTitle[i]<='z')

(

iLower++;

)

elseif(cTitle[i]>='A'&&cTitle[i]<='Z')

(

illpper++;

)

elsei|(cTitle[i]>='O'&&cTitle[i]<='9')

(

iDigital++;

)

else

(

iOther++;

)

i++:

)

printf("thenumberoflowercasesis:%d\n”,iLower);

printf("thenumberofuppercasesis:%d\n"2iUpper);

printff'thenumberofdigitalsis:%d\n",iDigital);

printf("thenumberofo:hercharactersis:%d\n",iOther);getch();

)

任务2:

/*凯撒加密*/

Aincludc"stdio.h"

voidmain()

(

charcSrc[40],cDst[40];

inti=0;

printf("pleaseinputastringtobeencrypted:\n"):gets(cSrc);

while(cSrc[i]!='\0')

iT(cSrc[i]>='a'&&cSrc[i]<='z')

cDst[i]=(cSrc[i]~'a'+3)%26+'a';

elseif(cSrcfi]>=TV&&cSrc[i]<='Z')

{

cDst[i]=(cSrc[i]-'A'+3)%26+'A';

)

else

(

cDst[i]=cSrc[i];

}

i++;

)

cDst[i]=>\0';

printf("theencryptedstringis:\n%s",cDst);getch();

)

任务3:

/*不使用库函数,编程实现两个字符串的复制*/

include"stdio.h"

voidmain()

(

charcSrc[40],cDst[40];

inti=0;

printf("pleaseinputastringtobecopyed:\n");gets(cSrc);

while(cSrc[i]!='\0')

(

cDstfi]=cSrc[i];

i++:

)

cDst[i]='\0';

printf("thenewstringis:\n%s",cDst);

getch();

同步实训指导参考答案

序号:6.1

任务1:

编写一个函数,判断一个数是否为素数,如果是则返回1,不是则返回0。在主函数中调用自定

义函数,输出2-100之间所有的素数.

*/

#include"stdio.h"

intiPrime(intiNo);

voidmain()

(

inti;

for(i=2;i<=100;i++)

(

if(iPrime(i))

(

printf("%d\t",i);

intiPrime(intiNo)

(

inti=2,iYesNo=l;

while(i<iNo)

(

讦(iNo%i==0)

(

iYesNo=0;

break;

)

else

(

i++;

returniYesNo;

)

任务2

/*

编写函数求1+1/2+1/3+1/4+......+1/n的值

*/

include"stdio.h"

doubledSumfintn);

voidmain()

intn;

scanf(“%d”,&n);

printf("theresultis%.2f\n",dSum(n));

)

doubledSum(intn)

inti;

doubledResult=0;

for(i=l;i<=n;i++)

(

dResult+=1.0/i;

}

returndResult;

)

任务3:

/*

使用函数输出所有的水仙花数。

*/

Ainclude"stdio.h"

intisDafffintiNum);

voidmain()

(

inti;

for(i=100;i<1000;i++)

(

if(isDaff(i))

(

printf("%d\tH,i);

)

)

)

intisDaff(intiNum)

(

intiGe,iBai,iShi;

iGe=iNum%10;

iShi=(iNum/10)%10;

iBai=(iNum/100)%10;

讦(iGe*iGe*iGe+iShi*iShi*iShi+iBai*iBai*iBai==iNum){

return1;

)

else

return0;

同步实训指导参考答案

序号:6.2

任务1:

/*

使用数组保存5名学生的成绩,学生成绩从键盘上输入。编写一个函数,为成绩大于等于90分

的学生加5分(最高不能超过100分),在主函数中调用自定义函数,并输出加分后的结果。

*/

ttinclude<stdio.h>

ttdefineSIZE5

voidaddScore(intiArray口,intiSize);

voidmain()

(

intiSccKe[SIZE]={0};

inti=0;

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

(

scanf("%d",&iScore[i]);

)

/*调用加分函数(没有返回值)*/

addScore(iScore,SIZE);

for(i=0;i<SIZE;i=i+l)

(

prlntf("%d\t",IScore[l]);

)

getch();

}

voidaddScore(intiArrayf],intiSize)

(

inti=0;

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

(

if(iArray[i]>=90)

(

iArray[i]=iArray[i]+5;

/*超过100分则认为100分7

if(iArray[i]>100)

(

iArray(i]=100;

)

)

任务2:

/*

使用函数,利用遍历数组找出全班同学成绩的最高分。

*/

include<stdio.h>

AdefineSIZE5

floatfMax(floatfScore[],intiSize);

voidmain()

(

floatfScore[SIZE]={0};

inti=0;

floatfResult=0;

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

(

scanf("%f",&fScore[i]);

)

printf("themaxscoreis%.2f\n"/fMax(fScore,SIZE));getch();

)

floatfMax(floatfScore[],intiSize)

(

inti=0;

intfValue=fScore[0];

for(i=1;i<iSize;i++)

{

if(fScore[i]>fValue)

(

fValue=fScore[i];

)

)

returnfValue;

)

任务3:用自定义函数实现库函数unsignedintstrlen(char*str)的功能(统计字符串str中字符的

个数(不包括、0J,返回字符个数),并在主函数中调用。*/

include"stdio.h"

unsignedintMyStrLen(charstr[]);

voidmain()

(

charchStr[40];

gets(chStr);

printf(nthelengthof\"%s\"is%u\n",chStr,MyStrLen(chStr));

)

unsignedintMyStrLen(charstr[])

unsignedintiNum=0;

inti=0;

while(str[i]!='\0')

(

iNum++;

i++:

)

returniNum;

)

同步实训指导参考答案

序号:6.3

任务1:

/*

求解s=l!+2!+3!+4!+..........+n!

*/

include"stdio.h"

longIFact(intn);

voidmain()

(

inti,n;

longlAnswer=0;

A

scanfCd"z&n);

for(i=l;iv二n;i++)

lAnswer+=IFact(i);

}

printf("theresultis%ld\n",lAnswer);

}

longIFact(intn)

(

讦(n==1)

(

return1;

)

else

returnn*IFact(n-l);

)

)

同步实训指导参考答案

序号:8.1

任务1:

/*

考虑一个学生的信息,考虑家长通知书上的成绩单问题。

*/

include"stdio.h"

voidmain()

{structstudent{

charchName[8];

intiMiddleJFinal;

floatfAve;};/*定义结构体类型*/

structstudentstStul={"Alice”,80,100};

/*间接定义法定义结构体变量*/

printf("%s:%d%d",stStul.chName,stStul.iMiddle,stStul.iFinal);getch();

)

任务2:用结构体定义一个学生的信息,姓名(charname[10]),两门课的成绩(intmath,english),

求该同学的平均分数,从键盘输入,并且输出结果。

*/

ffinclude"stdio.h"

voidmain()

(

structstudent{

charchName[8];

=

intiMiddleziinal;

floatfAve;

};

/*定义结构体类型*/

structstudentstStul;

scanf("%s%i%i"/St5tul.chName/&stStul.iMiddle,&stStul.iFiral);/*输入学生信息*/stStul.fAve=

(stStul.iMiddle+stStul.iFinal)/2;/*计算学生的平均分*/

printf("%s:%d%d%O.lf",stStul.chName,stStul.iMiddlezstStul.Final,stStul.fAve);

getch();

)

同步实训指导参考答案

序号:8.2

任务工:

/*定义结构体数组,处理5个同学的成绩问题,其中每个同学的成绩包括了语文、数学、英语

以及这三科的平均分。*/

^include"stdio.h"

structstudent

(

charchName⑻;

intiChineseJMathJEnglish;

floatfAve;

};

/*定义结构体类型*/

voidmain()

(

structstudentstu[5];

inti;

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

printf("Pleaseinputstudent'sinformation:\n");/*提示用户输入学生信息*/

scanf("%s%i%i%i",stu[i].chName,&stu[i].iChinese,&stu[i].iMath,&stu[i].iEnglish);

/*输入学生信息*/

stu[i].fAve=(stu[i].iChinese+stu[i].iMath+stu[i].iEnglish)A;/*计算学生的平均分*/

}

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

(

printf("%s:%d%d%d%0.1f\n",stu[i].chName/stu[i].iChinese,stu[i].iMath,stu[i].iEnglish,

stu[i].fAve);

/*输出学生信息*/

)

getch();

任务2:

/*在任务1的基础上统计出总分成绩最高的同学。*/

#include"stdio.h"

structstudent

(

charchName[8];

intiChineseJMathjEnglish;

floatfAve;

);

/*定义结构体类型*/

voidmain()

(

structstudentstu[5];

intstuMax=0;

inti;

printf("Pleaseinputstudent'sinformation:\n");/*提示用户输入学生信息*/

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

(

scanf("%s%i%\%i",&stu[i].chName,&stu[i].iChinese,&stu[i].iMath,&stu[i].iEnglish);

/*输入学生信息*/

stu[i].fAve=(stu[i].iChinese+stu[i].iMath+stu[i].iEnglish)/3;/*计算学生的平均分*/

)

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

(

if(stu[$tuMax].fAve<stu[i].fAve)

stuMax=i;

)

printf("%s:%d%d%d%0.1f",stu[stuMax].chName,stu[stuMax].iChinese,stu[stuMax].iMath,

stu[stuMax].iEnglish,stu[stuMax].fAve);

/*输出学生信息*/

getch();

}

同步实训指导参考答案

序号:8.3

任务1:

/*

请编写程序存储所输入的成绩,在程序中编写一个函数比较两个学生的成绩,将平均分数较高

的同学的成绩单输出。

*/

include"stdio.h"

structstudent

(

charchName[8|;

intiMiddleJFinal;

floatfAve;

/*定义结构体类型*/

voidcompare(structstudentstul,structstudentstu2);

voidcomparefstructstudentstul,structstudentstu2)

(

if(stul.fAve>stu2.fAve)

printf("%s:%d%dstul.chName,stul.iMiddle,itul.iFinal,stul.fAve);

else

printf("%s:%d%d%0.1f"Jstu2.chName,stu2.iMiddle,stu2.iFinal,stu2.fAve);

)

voidmain()

structstudentstulnfol,stulnfo2;

printf("Pleaseinput2student'sscores:\nM);

scanf("%s%\%i",stulnfol.chName,&stulnfol.iMiddle,&stulnfol.iFinal);/*输入学生信息*/

scanf("%s%\%i",stulnfo2.chName,&stulnfo2.iMiddle,&stulnfo2.iFinal);/*输入学生信息*/

stuInfol.fAve=(stulntol.iMiddle+stulntol.iFinal)/2;/*计算学生的平均分*/

stulnfo2.fAve=(stulnfo2.iMiddle+stulnfo2.iFinal)/2;

compare(stulnfol,stulnfo2);

getch();

)

任务2:

/*

在任务1的基础上,在程序中编写函数,将N个学生的数据输入,再编写一个函数统计总分和

求并打印显示,最后编写一个函数,输出最高分的学生并打印显示。

*/

Ainclude"stdio.h"

#defineN3

structstudent

{

charchName⑻;

intiMiddleJFinal;

floatfAve;

1;

/*定义结构体类型*/

voidinputlnfo(structstudentstu[]);

voidprintinfo(structstudentstu[]);

voidmaxScore(structstudentstu[]);

voidinputlnfo(structstudentstu[])/*输入信息函数体*/

(

inti;

for(i=0;i<N;i++)/*循环提示输入*/

printf("Pleaseinputstudent%dinfo:\n",i);

scanf("%s%\%i"?stu[i].chName,&stu[i].(Middle,&stu[i].iFinal);

stu[i].fAve=(stu[i].iMiddle+stu[i].iFinal)/2;

voidprintlnfo(structstudentstu[])/*打印输出信息函数体*/

(

inti;

for(i=0;i<N;i++)/*循环打印输出*/

(

printf(HStudent%dinfo:",i);

printf("%s%\%\stu[i].chName,stu[i].iMiddle,stu[i].iFinal,stu[i].fAve);

)

)

voidmaxScore(structstudentstu[])/*打'印最高分数学生信息函数体*/

(

inti,stuMax=0;

for(i=0;i<N;i++)/*逐个作最高分比较*/

(

if(stu[stuMax].fAve<stu[i].fAve)

stuMax=i;

)

printff'Topstudentinfo:",i);/*打印输出结果*/

printf("%s%i%\%f\n",stu[stuMax].chName,stu[stuMa>:].iMiddle,stu[stuMax].iFinal,

stu[stuMax].fAve);

}voidmain()

(

structstudentstulnfo[N];in/*定义保存学生信息的数组*/putlnfo(stulnfo);

printinfo(stulnfo);/*执行输入信息函数*/maxScore(stulnfo);

getch();/*执行打印输出信息函数*/

/*执行打印品高分物学牛信息函和*/

任务3:

/*

在任务1的基础上,在程序中编写函数,将两个学生的数据以参数的形式传入函数,在函数内

比较后将成绩较高的学生信息以结构体的形式返回。打印输出返回的学生信息。

*/

Ainclude"stdio.h"

structstudent

(

charchName[8];

intiMiddleJFinal;

floatfAve;

);

/*定义结构体类型*/

structstudentcompare(structstudentstul,structstudentstu2);

/*比较学生成绩函数体*/

structstudentcompare(structstudentstul,structstudentstu2]

if(stuI.fAve>stu2.fAve)

returnstul;

else

returnstu2;

}

voidmain()

(

/*定义保存学生成绩的结构体变量*/

structstudentstulnfol,stjlnfo2,stuMax;

printf("Pleaseinput2student'sscores:\nw);

scanf("%s%i%i",stulnfol.chName,&stulnfol.iMiddle,&stulnfol.iFinal);/*输入学生信息*/

输入学生信息*/

scanf("%s%i%i"/stulnfo2.chName,&stulnfo2.iMiddle,&stulnfo2.iFinal);/*

stuInfol.fAve=(stuInfol.iMiddle+stuInfol.iFinal)/2;/*计算学生的平均分*/

stulnfo2.fAve=(stulnfo2.iMiddle+stulnfo2.iFinal)/2;

stuMax=compare(stulnfol,stulnfo2);/*执行函数*/

printf("%s%i%i%0.1f",stuMax.chName,stuMax.iMiddle,stuMax.iFinal,stuMax.fAve);getch();

)

同步实训指导参考答案

序号:8.4

任务1:

/*

利用位操作与共用体的组合来检测键盘,如果用户按下上下左右键就在屏幕上显示11-

f标志,这些标志的ASCII玛分别是:f(24)1(25)-(27)-(26)

*/^include"stdio.h"

//include"coniu.h"

^include"bios.h"

^defineLEFT75

#defineRIGHT77

ttdefineUPPER72

^defineDOWN80#defineESC27

/*左、右、上、下、ESC键的ASCH码值的十进制表示分别为75、77、72、80、27*/

unionkeyboard{

unsignedintiKeyInfo;

charcKeyBit[2];

};/*定义共用体类型*/

intfnGetKey(void);/*检测按键的函数*/

intfnGetKey(void)

unionkeyboarduniKeyl;/*定义共用体变量*/while(bioskey(l)==0);

uniKeyl.iKeylnfo=bioske/(0);/*检测用户有无按键*/

return(uniKeyl.cKeyBit[3]==0?/*读取按键信息*/uniKeyl.cKeyBit[l]:

uniKeyl.cKeyBit[O]);

/*返回ASCII码或扩充码*/

main()

intiKey;

printf("pleasepressdirectionkey\nM);while(l)

iKey=/*调用自定义的按键检测函数*/

fnGetKey();

switch(iKey)/*根据用户输入打印不同符号*/

caseLE二T:

clrscr();printf("%c"/027);break;

caseRIGHT:

clrscr();printf('%c",026);b,eak;

case

UPPER:

clrscr();printf("%c",024);break;

case

DOWN:

clrscr();printf("%c”,025);

break;

default:

clrscr();

break;

)

if(iKey==ESC)

break;/*执行编辑命令操作*/

)

)

同步实训指导参考答案

序号:9.1

任务1:

Ainclude"stdio.h"

voidmam()

(

intiPassword;

printfC请从键盘输入你的密码:0;

scanf("%d〃,&iPassword);

printf(〃你的密码是%:1,它保存在内存第%x单元处!

",(Password,&iPassword);

getchO;

)

任务2:

ttinclude"stdio.h"

voidmain()

(

intiPassword.*piPassZl&iPassword;

printfC请从健盘输入你的密码:0;

scanf('•%d'1,piPass);

printf(〃你的密码是%(1,它保存在内存第%乂单元处!",*piPass,piPass);

getch();

任务4:

//include"stdio.h"ttdefineSIZE30

voidinput(int*piS,intnum)

(

inti;

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

(

printfC请从键盘输入第%€1个同学的C语言成绩:〃,1+1);scant(〃%d〃,(piS+i));

)

)

voidoutput(int*piS,intnum)

{

inti;

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

(

printf(2/M%d个同学的C语言成绩为%d.\n〃,i+1,*(piS+i));

)

)

voidsort(irit*piS,intnum)

{

inti,j,iTemp;

for(j=0;j<SIZE-l;j++)

for(i=0;i<SIZE-l-j;i++)

if(piS[i]<piS[i+l])

iTemp=piS[i);piS|i]=piS[i+l];piS[i+l]=iTemp;

voidmain()

intiScore[SIZE],*piS二iScore,i,j,iTemp,iSum=0;input(piS,SIZE);

sort(piS,SIZE);

outputfpiS,SIZE);

getch();

同步实训指导参考答案

序号:9.2

任务1:

//includedio.h〃

AdefineSIZE30

voidmain()

(

intiScore[SIZE],*piS二iScore,i,j,iTemp;

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

(

printfC请从键盘输入第%€1个同学的C语言成绩:",i+1);scanf「%♦',(piS+i));

)

for(j=0;j<SIZE-l;j++)

for(i=0;i<SIZE-l-j;i++)

iTemp=piS[i];piS[i]=piS[i+l];piS[i<-l]=iTemp;

)

for(i=0;KSIZE;i++)

printf(Z/M%d个同学的C语言成绩为%d.\n〃,i+1,*(piS+i));

)

getch();

)

任务2:

Ainclude"stdio.h"

#defineSIZE30

voidmain()

(

charchStr[SIZE],*pStr二chStr;

inti;

printf(〃请输入一个字符串:"):

gets(pStr);

i二0;

while(*(pStr+i)\-\O)

(

if('a'〈二*(pStr+i)&&*(pStr+i)(二'z')

♦(pStr+i)~*(pStr+i)-32;

i++:

printfC你输入的字符串为:0;

puts(pStr);

getch();

任务3:

ttinclude"stdio.h••

#defineSIZE30

voidmain()

{

charchStri[SIZE],*pStrl=chStri;charchStr2[SIZE]z*pStr2=chStr2;inti,j:

print*,请输入一个字符串:");

£ets(pStri);

i二0;

j二0;

while(*(pStrl+i)!=,\0')

(

♦(pStr2+j)-*(pStrl+i);

i++;

j++;

)

printfC复制后的字符串为:0;

puts(pStr2);

getch();

同步实训指导参考答案

序号:9.3

任务1:

ftinclude〃stdio.h"

ttdefineS30

struetgoods

charname[20];

floatprice;

floatdiscount;

);

voidmain()

(

struetgoodsmygoods[S]z*ps=mygoods;

inti;

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

(

printfC请输入第%(1件商品的名称:〃,i+1);scanf(»%s",ps->name);

printf(>\n请输入第%(1件商品的价格:〃,i+l);

scanf&ps~>price);

printf(〃\n请

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论