C语言实验报告 函数

C语言实验报告 函数
C语言实验报告 函数

实验名:函数的定义及调用

一、实验目的

1、掌握C语言函数定义及调用的规则。

2、理解参数传递的过程。

二、实验内容

(一))题目1

1、题目内容描述

1、上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。

main()

{

int,y;

printf(“%d\n”,sum(x+y));

int sum(a,b)

{

int a,b;

return(a+b);

}

}

2、编写并调试一个求n!(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。

三、分析讨论

1、针对以上实验内容写出相应的参数传递过程并分析结果。

2、讨论参数的传递的几种形式。

2、输入和输出信息描述及数据类型确定;

、输入数据

(1)

序号输入数据描述数据类型

1 x,y int

2 a,b int

(2)输出数据

序号输出数据描述数据类型

1 x+y int

3、程序源代码(填写程序调试正确后的代码)

#include

int main()

{

int sum(int a,int b); //对被调用函数sum 的声明

int x,y,z;

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

z=sum(x,y); //调用sum 函数,将其值赋给z

printf("%d\n",z); //输出函数结果z

return 0;//返回值为0

}

int sum(int a,int b) //定义sum函数

{

return(a+b); //将a+b的值作为返回值返回到调用sum的位置}

4、程序调试

错误序号错误信息(列出出错语句以及出错

提示)

是否

解决

解决方法

1 In function 'main':|

int,y;

是改为int x,y;

2 error: stray '\241' in program|

error: expected expression

before '%' token|

error: stray '\' in program|

printf(“%d\n”,sum(x+y));是将整段改为

int sum(int a , int b);

int x,y,z;

z=sum(x,y);

printf("%d\n",z);

3 error: 'a' redeclared as

different kind of symbol|

error: 'b' redeclared as

different kind of symbol|

int a,b;

是去掉整句话

4 warning: 'x' is used

uninitialized in this function

[-Wuninitialized]|

是加上scanf("%d,%d",&x,&y);

5 error: static declaration of

'sum' follows non-static

declaration|

是将int及后面的语句块都移到main外面

5、测试与结果分析

(1)、测试数据与结果

测试序号测试用例选取原

测试输入数

测试输出结果是否

正确

结果分析

1 测试用例4,5 9 是可运算范围内

2 测试用例55555,793

3 63488 是可运算范围内

3 测试用例-89,-79 -168 是可运算范围内

(2)、相关问题回答

2、编写并调试一个求n!(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。

1、输入和输出信息描述及数据类型确定;

(1)

、输入数据

序号输入数据描述数据类型

1 n int

2 result long

(2)输出数据

序号输出数据描述数据类型

1 result long

3、程序源代码(填写程序调试正确后的代码)

#include

long fact (long n); //对被调用的函数fact的声明

int main()

{

int n;

long result; //定义result为长型整数

printf("Input n:");

scanf("%d",&n);

result=fact(n); //调用fact函数

if (result==-1)

printf("n<0,data error!\n"); //fact函数返回值即result为-1时输出此句话 else

printf("%d!=%ld\n",n,result); //fact函数返回值即result不为-1时输出此句

return 0; //主函数返回值为0

}

long fact(long n) //定义fact函数函数值和n都为长整型

{

if (n<0)

return -1; //若n为负则返回值为-1

else if (n==0 || n==1)

return 1; //若n为0或1则返回值为1

else

{

printf("fact(%ld)=%ld*fact(%ld)\n",n,n,n-1); //输出函数被调用的n的变化 return (n*fact(n-1)); //否则返回n!的值

}

}

3、程序调试

错误序号错误信息(列出出错语句以及出错

提示)

是否

解决

解决方法

1 warning: control reaches end of

non-void function

[-Wreturn-type]|

printf("n<0,data error!\n"); 是改为return -1;

此处是要有返回值的

5、测试与结果分析(1)、测试数据与结果

测试序号测试用例选取原

测试输入数

测试输出结果是否

正确

结果分析

1 测试用例

4 是可运算范围内,

程序无误

2 测试用例

10 是可运算范围内

3 测试用例

7 是可运算范围内

(二))题目2

1、题目内容描述

从键盘输入一个班(全班最多不超过 30 人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别统计下列内容:

(1)统计不及格人数并打印不及格学生名单;

(2)统计成绩在全班平均分及平均分之上的学生人数并打印其学生名单;

(3)统计各分数段的学生人数及所占的百分比;

2、输入和输出信息描述及数据类型确定;

(1)

、输入数据

序号输入数据描述数据类型

1 n Int

2 num[30]int

3 score[30float

4 name[30]char

(2)输出数据

序号输出数据描述数据类型

1 count int

2 (float)stu[j]/(float)n*100)float

4、函数解释

(1)函数Getfail 函数功能:统计不及格人数并打印不及格学生的名单

函数参数:整数型数组num,储存学生学号;实型数组score,储存学生成绩;字符型变量name,学生名字;整型变量n,学生总数

函数返回值:不及格人数

(2)函数GetAver 函数功能:计算全班平均分

函数参数:实型数组score,储存学生成绩;整型变量n,学生总数

函数返回值:平均分

(3)函数GetAboveAver 函数功能:统计分数在全班平均分以上的学生人数并打印学生名单

函数参数:整数型数组num,储存学生学号;实型数组score,储存学生成绩;整型变量n,学生总数

函数返回值:分数在全班平均分以上的学生人数

(4)函数GetPerct 函数功能:统计各分数段的学生人数及所占百分比

函数参数:实型数组score,储存学生成绩;整型变量n,学生总数

函数返回值:无

6、程序源代码(填写程序调试正确后的代码)

#include

int GetFail(int num[],float score[],char name[],int n); //对被调用函数Getfial的声明

float GetAver(float score[],int n); //对被调用函数Getaver的声明

int GetAboveAver(int num[],float score[],char name[],int n);//对被调用函数Getaboveaver的声明void GetPerct(float score[],int n); //对被调用函数Getperct的声明

int main()

{

int i,n,fail,AboveAver;

int num[30];

float score[30],aver;

char name[30];

printf("请输入学生人数:");

scanf("%d",&n);

printf("请按如下格式输入\n");

printf("学号名字成绩\n");

for(i=0;i

scanf("%d %c %f",&num[i],&name[i],&score[i]); //输入学号名字成绩的格式

fail=GetFail(num,score,name,n); //调用Getfial函数并将其赋值给fial

printf("不及格人数为:%d\n",fail);

aver=GetAver(score,n); //调用Getaver函数并将其赋值给aver

printf("平均分为%f\n",aver);

AboveAver=GetAboveAver(num,score,name,n); //调用Getabovaver函数并将其赋值给aboveaver printf("在平均分之上的人数为:%d\n",AboveAver);

printf("分数段学生人数百分比(百分之)\n");

GetPerct(score,n); //调用Getperct函数

return 0; //返回值为0

}

int GetFail(int num[],float score[],char name[],int n) //定义函数

{

int i,count;

count=0;

printf("不及格的人为:\n");

for(i=0;i

{

if(score[i]<60) //打印不及格的人

{

printf("%d %c %f\n",num[i],name[i],score[i]);

count++; //统计不及格的人数

}

}

if(count==0)

printf("无\n"); //若没有不及格的人则输出无

return count; //将count的值作为返回值返回到调用位置}

float GetAver(float score[],int n) //定义函数

{

int i;

float sum;

sum=0;

for(i=0;i

{

sum=sum+score[i]; //计算总分

}

return sum/n; //将平均分作为返回值返回到调用位置}

int GetAboveAver(int num[],float score[],char name[],int n) //定义函数

{

int i,count;

float aver;

count=0;

aver=GetAver(score,n); //调用GetAver函数

printf("平均分在班平均分以上:\n");

for(i=0;i

{

if(score[i]>=aver) //打印分数高于平均分的人

{

printf("%d %c %f\n",num[i],name[i],score[i]);

count++;

}

}

return count; //将人数count作为返回值返回到调用位置}

void GetPerct(float score[],int n) //定义函数

{

int i,j,k;

int stu[6]={0};

for(i=0;i

{

if(score[i]<60) k=0;

else k=((int)score[i]-50)/10;

switch(k)

{

case 0:stu[0]++;break; //统计k=0即不及格的人数

case 1:stu[1]++;break; //统计k=1即分数在60-69的人数

case 2:stu[2]++;break; //......

case 3:stu[3]++;break; //......

case 4:stu[4]++;break; //......

case 5:stu[5]++;break; //......

}

}

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

{

if(j==0)

printf("<60 %d %f\n",stu[j],(float)stu[j]/(float)n*100); //不及格的人 else if(j==5)

printf("100 %d %f\n",stu[j],(float)stu[j]/(float)n*100); //100分的人 else

printf("%d~%d %d %f\n",(j+5)*10,(j+5)*10+9,stu[j],(float)stu[j]/(float)n*100); //60-99之间的人,利用数组stu[j]输出不同等级分类

}

}

7、程序调试

错误序号错误信息(列出出错语句以及出错提示)是

解决方法

1 error: expected identifier or '(' before

',' token|

int n,,fail,AboveAver,count;

是去掉两个逗号的一个

2 error: expected ';' before 'Perct'|

printf("分数段学生人数百分比") 是改为printf("分数段学生人数百分比\n");

3 error: void value not ignored as it ought

to be|

warning: variable 'perct' set but not used

[-Wunused-but-set-variable]|

perct=GetPerct(score,n);

是去掉perct=

4 warning: format '%c' expects argument of

type 'int', but argument 3 has type 'char

*' [-Wformat=]|

printf("%d %c %f\n",num[i],name,score[i

]);

是Name后面加上【i】

5 warning: too many arguments for format

[-Wformat-extra-args]|

printf("学号姓名成绩

\n",num[i],name[i],score[i]); 是改为

printf("%d %c %f\n",num[i],name[i],score[i ]);

6 int stu[6]; 是初始化

7 warning: too many arguments for format

[-Wformat-extra-args]|

printf("平均分在班平均分以上:

\n",count); 是改为printf("平均分在班平均分以上:%d\n",count);

8、测试与结果分析(1)

、测试数据与结果

测试序号测试用例选取原

测试输入

数据

测试输出结果是否

正确

结果分析

1 测试用例如下图是程序无误

2 测试用例如下图是程序无误

(三))题目3

1、题目内容描述

某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过 30 人参加考试。考试后要求:

(1)计算每个学生的总分和平均分;

(2)按总分成绩由高到低排出成绩的名次;

(3)打印出名次表,表格内包括学生编号、各科分数、总分和平均分;

(4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。

2、输入和输出信息描述及数据类型确定;

、输入数据

(1)

序号输入数据描述数据类型

1 num[STU],score[STU][COURSE] Int

(2)输出数据

序号输出数据描述数据类型

1 num[STU],score[STU][COURSE],sum[STU] int

2 aver[STU] float

3、函数解释

Getsumaver:函数功能:计算每个学生的总分和平均分

函数参数:整型数组score,存放学生成绩

整型变量n,存放学生人数

整型数组sum,存放每个学生的总分

实型数组aver,存放每个学生的平均分

函数返回值:无

Sort:函数功能:排名次

函数参数:整型数组num,存放学生学号

整型数组score,存放学生成绩

整型变量n,存放学生人数

整型数组sum,存放每个学生的总分

实型数组aver,存放每个学生的平均分

函数返回值:无

Print:函数功能:输出成绩表

函数参数::整型数组num,存放学生学号

整型数组score,存放学生成绩

整型变量n,存放学生人数

整型数组sum,存放每个学生的总分

实型数组aver,存放每个学生的平均分

函数返回值:无

Search:函数功能:名次查询

函数参数::整型数组num,存放学生学号

整型变量n,存放学生人数

长整型变量x,存放名次

函数返回值:无

6、程序源代码(填写程序调试正确后的代码)

#include

#define STU 30

#define COURSE 3

void Getsumaver(int score[][COURSE],int n,int sum[],float aver[]);

void Sort(int num[],int score[][COURSE],int n,int sum[],float aver[]); void Print(int num[],int score[][COURSE],int n,int sum[],float aver[]); int Search(int num[],int n,int x); //函数声明

int main()

{

int n,pos,x,i,j;

int num[STU],score[STU][COURSE],sum[STU];

float aver[STU]; //定义变量

printf("请输入学生人数:\n");

scanf("%d",&n);

printf("请输入学生的学号和成绩\n");

printf("学号数学英语物理\n"); //输出成绩表表头

for(i=0;i

{

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

for(j=0;j

scanf("%d",&score[i][j]); //输入学生的成绩

}

Getsumaver(score,n,sum,aver); //调用函数,计算总分和平均分 printf("总分和平均分:\n");

Print(num,score,n,sum,aver); //调用函数

Sort(num,score,n,sum,aver); //调用函数,排名次

printf("名次表:\n");

Print(num,score,n,sum,aver); //调用函数

printf("请输入待查找的学生的学号:");

scanf("%d",&x);

pos=Search(num,n,x); //调用函数,名次查询

if(pos!=-1) //返回值为-1时输出成绩表

{

printf("名次\t学号\t数学\t英语\t物理\t总分\t平均分\n");

printf("%d\t%d\t%4d\t%4d\t%3d\t%3d\t%3f\n",pos+1,num[pos],score[pos][0],score[pos][1],score[ pos][2],sum[pos],aver[pos]);

}

else

printf("未找到!\n"); //否则找不到

return 0;

}

void Getsumaver(int score[][COURSE],int n,int sum[],float aver[]) //定义函数

{

int i,j;

for(i=0;i

{

sum[i]=0;

for(j=0;j

sum[i]=sum[i]+score[i][j]; //求每行即每人的总分

aver[i]=(float)sum[i]/COURSE; //求平均分

}

}

void Sort(int num[],int score[][COURSE],int n,int sum[],float aver[]) //定义函数

{

int i,j,k,m,t1,t2;

float t3;

for(i=0;i

{

k=i;

for(j=i+1;j

if(sum[j]>sum[k]) k=j;

if(k!=i)

{

t1=sum[k];

sum[k]=sum[i];

sum[i]=t1;

t2=num[k];

num[k]=num[i];

num[i]=t2;

t3=aver[k];

aver[k]=aver[i];

aver[i]=t3;

for(m=0;m

{

t1=score[k][m];

score[k][m]=score[i][m];

score[i][m]=t1;

}

}

}

}

void Print(int num[],int score[][COURSE],int n,int sum[],float aver[]) //定义函数{

int i,j;

printf("分数:\t学号\t数学\t英语\t物理\t总分\t平均分\n");

for(i=0;i

{

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

for(j=0;j

printf("%3d\t",score[i][j]);

printf("%3d\t%3f\n",sum[i],aver[i]); //输出成绩表

}

}

int Search(int num[],int n,int x) //定义函数{

int i;

for(i=0;i

if(num[i]==x) return(i); //找到匹配项就返回

return (-1);

}

8、测试与结果分析

(四))题目4

1、题目内容描述

小学生加法考试题

2、函数的解释

函数1(按函数申明的形式书写)

int NNumQueAddTest(int n);

、函数参数解释

(1)

整型变量n代表加法题目数量

、函数返回值解释

(2)

小学生测验做对题目数量

、函数功能描述(流程图)

(3)

函数2(按函数申明的形式书写)

int AddTest(int a, int b);

、函数参数解释

(1)

整型变量a和b,分别代表被加数和加数

、函数返回值解释

(2)

当a加b的结果与用户输入的答案相同时,返回1,否则返回0

3、程序源代码(填写程序调试正确后的代码)

#include

#include

#include

int NNumQueAddTest(int n); //函数声明

int AddTest(int a, int b); //函数声明

void ScoreAddTest(int x,int y);//函数声明

int main()

{

int m,s; //m为题数,s为做对了几题

printf("请输入题数:");

scanf("%d",&m);

s = NNumQueAddTest(m); //调用函数NNumQueAddTest

printf("恭喜你做对了%d题\n",s);

ScoreAddTest(s,m); //调用函数ScoreAddTest

return 0;

}

int NNumQueAddTest(int n)

{

int i,p,d,e,count;

for(i=1,count=0;i<=n;i++)

{

srand(time(NULL));

d = rand()%10;

e = rand()%10; //随机生成加数和被加数

printf("%d + %d = ",d,e);

p = AddTest(d,e); //调用函数AddTest if(p==1)

count++; //答案正确就让count 加1,统计答对题数 } return(count); //返回值为count 即答对题数 }

int AddTest(int a,int b) //判断答案是否正确 { int right,time=0,answer; for(right=0;!right && (time<3);time++) { scanf("%d",&answer); //输入答案 if(answer==a+b) //判断答案是否正确 { right = 1; //标记,正确则将它标记为1 printf("正确\n");

break; //一旦正确就停止循环 } else printf("错误\n"); } return(right); //返回值为right 的值,即1,0

}

void ScoreAddTest(int x,int y) //计算并输出分数 {

int score;

score = 100*x/y;

printf("分数为%d",score); }

8、测试与结果分析

(1)、测试数据与结果 测试序号 测试用例选取原因 测试输入

数据 测试输出结果 是否正确 结果分析 1

测试用例

程序无误

大一上期C语言实验报告1熟悉实验环境

成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)熟悉C语言运行环境,了解和使用Visual6.0++集成开发环境(2)熟悉Visual6.0++环境的功能键和常用的功能菜单命令 (3)掌握C语言程序的书写格式和C语言程序的结构 (4)掌握C语言上机步骤,以及编辑、编译和运行一个C语言程序的方法 (5)熟悉Visual6.0++环境下的程序调试方法 2.实验内容 (1)按照实验步骤编辑、编译、运行第一个”Hello World”程序(2)利用实验指导中的第二个程序熟悉调试工具,在已知x,y值的情况下,计算出x和y的和、差、积、商,并显示出来(3)编写一个程序,输入a、b、c三个值,输出它们的和与平均值c 3.源程序 (1)#include void main() {printf(”Hello World”);} (2)#include void main() {int x=5,y=2; int s,d,p,q; s=x+y; d=x-y; p=x*y; q=x/y; printf(“和:%d差:%d积%d商:%d“,s,d,p,q);}

(3)#include void main() {int a,b,c.sum; float ave; Printf(“Please enter the a,b,c:”); scanf(“%d%d%d”,&a,&b,&c); sum=a+b+c; ave=(float)sum/3; printf(“sum=%d,ave=%f\n”,sum,ave);} 4.运行结果 (1) (2) (3)输入18、46、69测试得出答案如下

C语言实验报告《函数》

C语言实验报告《函数》 C语言实验报告《函数》 学号: __________ 姓名: __________ 班级: __________ 日期: __________ 指导教师: __________ 成绩: __________ 实验四函数 一、实验目的 1、掌握函数定义、调用和声明的方法 2、掌握实参和形参之间的传递方式 3、函数的嵌套调用 二、实验内容 1、写一个函数,将两个字符串连接。(习题 8. 6) 2、编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。(习题 8.9)

3、请将实验三中的实验内容三改正后,再改写成函数形式(排序部分)。物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板 三、实验步骤与过程 四、程序调试记录 一、实验目的 1.观察植物细胞有丝分裂的过程,识别有丝分裂的不同时期。 初步掌握制作洋葱根尖有丝分裂装片的技能。 3.初步掌握绘制生物图的方法。 二、实验原理在植物体中,有丝分裂常见于根尖、茎尖等分生区细胞,高等植物细胞有丝分裂的过程,分为分裂间期和分裂期的前期、中期、后期、末期。可以用高倍显微镜观察植物细胞的有丝分裂的过程,根据各个时期细胞内染色体(或染色质)的变化情况,识别该细胞处于有丝分裂的哪个时期,细胞核内的染色体容易被碱性染料着色。 三、材料用具洋葱根尖、显微镜、载玻片、盖玻片、滴管、镊子、培养皿、铅笔、质量分数为15%的盐酸、体积分数为95%的酒精、质量分数为0.01gml的龙胆紫(或紫药水) 四、实验过程(见书P39) 1.洋葱根尖的培养(提前3—4天) 2.解离: 5min 3.漂洗: 10min 4.染色: 5min

游戏C语言实验报告完整版

游戏C语言实验报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录

一、实验目的和要求 (1)使用C语言编写2048这款游戏。 (2)能够正常运行,拥有游戏界面。 (3)能正常进行游戏从开始到结束。? (4)用户操作方便。 二、实验环境、内容和方法 实验内容:1、游戏开始时随机产生两个数值为2/4的方格,其中一个方格置于4个角中的一个位置,另一个方格随机的置于其他位置,其他方格置于0。 2、每次按方向键(w,s,a,d)后,逐行计算移动后的方格值。每行移动的算法是:先将所有值为0的数移至行首。能后从行尾开始逐一和前一个数比较,如果相等则合并这2个格子。 3、每合并一次格子,将其值累计到游戏总分中。 4、一次移动结束后,在所有值为0的方格中随机的分配一个2/4的值。 5、所有方格值不为0且上下、左右相邻的方格都不相等,则游戏结束。 6、2出现的概率为70%,4出现的概率为30%。 实验方法: 通过上机操作完成各内容。 实验环境: 实验用PC机一台,使用操作系统为Windows 7/ Windows 8/ Windows10,安装 vc++或v2008等编译软件 三、程序设计 Y

四、源代码 #include<> #include<> #include<> #include<> #define M 2048 void up(); n"); printf(" 玩家可以选择上(w)下(s)左(a)右(d)四个方向,若棋盘内的数字出现位移或合并,视为有效移动.\n"); printf(" 若有相同的数字则合并,每次有效移动可以同时合并,但不可以连续合并.\n"); printf(" 合并所得的所有新生成数字想加即为该步的有效得分.\n"); printf(" 玩家选择的方向行或列前方有空格则出现位移.\n"); printf(" 每有效移动一步,棋盘的空位(无数字处)随机出现一个数字(依然可能为2或4).\n"); printf(" 棋盘被数字填满,无法进行有效移动,判负,游戏结束.\n"); printf(" 棋盘上出现2048,判胜,游戏结束"); printf("\n\n\n"); printf(" \t\t\t按回车开始游戏.\n"); getchar(\n);

C语言实验报告

《C语言程序设计实训1》报告 设计题目:基于数组的学生信息管理系统学院名称:信息科学技术学院

专业:计算机科学与技术 班级: 姓名:学号 指导教师: 提交日期: 2014年12月22日 一、实验内容 编写并调试程序,实现学校各专业班级学生信息的管理。10个学生的信息存储在文件中。在头文件中定义学生信息的结构体类型,包括: 学号、姓名、专业、班级、3门成绩;和符号常量N(学生数)。(同一班 级的学生可以属于不同的专业,同一专业的学生可以属于不同的班级)

二、实验要求 (1)main函数:以菜单形式将各项功能提供给用户,根据用户的选择, 调用相应的函数。 STU student[N]; 函数 #include "" void main() { int i,n,id,num,m,sub,corse;将从文件中读取10个人的信\n"); printf("\n2.您将从文件中随机读取第n(0<=n<=9)个学生的信息\n") printf("\n3.您将根据某一班级某一专业总分超过多少进行查找\n"); printf("\n4.您将求某一课程分数最高的学生序号的下标\n"); printf("\n5.您将对平均成绩由低到高进行简单选择排序法\n ");

printf("\n6.您将对某一个班的平均成绩由低到高进行起泡排序法\n"); printf("\n7.您将对某门专业的学生的某门课程成绩由低到高进行直接插入排序法\n"); printf("\n8.您将把学生信息存入文件\n"); scanf("%d",&id); getchar(); switch(id){ case 1: { printf("\n从文件中读取信息\n"); Input(students,sizeof(students)/sizeof(STU));Sort_select 函数 #include "" void Sort_select(STU * p) { int i,j,k; float sum,ave[N],t; STU tem; for(i=0;i

C语言实验报告参考答案 原

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include main() {

int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include main() { int a,b,c,d; float x; a=160; b=46; c=18;

d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7

c语言实验报告

C语言实验报告 说明 1,所有程序均用VC6.0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。 2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。 实验2 数据类型、运算符和表达式 一、实验目的: (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。 (2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。 (3)掌握C语言的输入和输出函数的使用 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。 三、程序调试与问题解决: (1)输人并运行下面的程序 #include void main() { char c1,c2; c1='a'; c2='b'; printf("%c %c\n",c1,c2); } ○1运行此程序。 ○2在上面printf语句的下面再增加一个printf语句。

printf("%d %d\n",c1,c2); 再运行,并分析结果。 输出结果如图,编译成功,无错误。 ○3将第3行改为 int c1,c2; 再运行,并分析结果。 ○4再将第4、5行改为 c1=a; c2=b; 再运行,并分析结果。 a,b没有定义,编译报错。 ○5再将第4、5行改为 c1=‘’a‘’; c2=‘’b‘’; 再运行,并分析结果。 ○6再将第4、5行改为 c1=300; c2=400; 再运行,并分析结果。 以字符型输出时,输出的将是300,400对应的字符。 (2)输人并运行教材第3章习题3. 6给出的程序 #include main () { char c1='a',c2='b',c3='c',c4='\101',c5='\116';

C语言实验报告合集

《C语言程序设计》实验报告 专业:班级:学号:学生姓名:实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验一熟悉VC++环境 二、实验目的 1. 熟悉C程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h" int main() {int a,b,sum; a=2; b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum); return 0; } 运行结果为:

2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)

《C语言程序设计》实验报告 专业:班级:学号:学生姓名: 实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验二顺序结构程序设计 二、实验目的 (1)掌握C语言数据类型以及变量的声明。 (2)掌握C语言的赋值运算符、赋值表达式、赋值语句。 (3)掌握C语言的整型和字符型的混合运算。 (4)掌握C语言的输入、输出函数的使用格式。 三、实验内容 1.有人用温度计测量出华氏温度,现输入华氏温度f,请编写程序把它转换为摄氏温度c。 已知华氏温度和摄氏温度有如下关系:c=5/9(f-32)。 2.输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3.将字符串“China”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字母 替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: 运行结果为: 2.源程序代码: 运行结果为: 3.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进

C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,b,c,x,y; a=150; b=20; c=45;

x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句

游戏C语言实验报告

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录 一、实验目的和要求 .................................................................................................................................................... 二、实验环境、内容和方法 ........................................................................................................................................ 三、程序设计 ................................................................................................................................................................ 四、源代码 .................................................................................................................................................................... 五、调试与运行结果.................................................................................................................................................... 六、总结........................................................................................................................................................................

C语言实验报告《综合实验》

C语言实验报告《综合实验》C语言的实验报告,可以参考一下哈,学财务的童鞋快过来!小编为你推荐。 学号:__ 姓名:__ 班级:__ 日期:__ 指导教师:__ 成绩:__ 实验** 综合实验 1、掌握C语言中的变量、数组、函数、指针、结构体等主要知识点。 2、掌握C程序的结构化程序设计方法,能使用C语言开发简单的应用程序。 编写一个学生信息排序程序。要求: 1、程序运行时可输入n个学生的信息和成绩(n预先定义)。 2、学生信息包括:学号、英文姓名、年龄;学生成绩包括:语文、数学、计算机。 3、给出一个排序选择列表,能够按照上述所列信息(学号、姓名、年龄、语文、数学、计算机)中的至少一个字段进行排序,并显示其结果。 1、使用函数方法定义各个模块。 20**年C语言实验报告《****》 课程名称:会计实务综合实验 院系名称:经济管理管理

专业班级:会计09- 学生姓名: 学号: 20**年C语言实验报告《***》XX年C语言实验报告《***》指导教师:李*** ****工程学院教务处制 实验项目 会计实务综合实验 实验日期 在这一次的操作中,加深对会计理论知识的理解和掌握,通过对会计业务的运用和基本技能的训练,将专业理论和会计实务紧密结合。本实验的操作,也是对学生所学专业知识掌握程度及运用能力的一次综合考查,为他们以后从事的会计工作打下扎实的基础。 1、实验模拟教材 2、计算器 3、钢笔、直尺 根据本学期所学的中级会计实务的内容,解决我们实习中老师布置的问题,本学期所学的重点主要是投资性房地产、非货币性资产交换、借款费用、债务重组、或有事项、所得税的计算、会计政策、会计估计变更和差错更正以及资产负债表日后事项的调整。把每一个业务题都当作一个真实的业

2010C语言实验报告参考答案

2010C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a;

C语言实验报告合集

f r 《C 语言程序设计》实验报告 专业: 班级: 学号: 学生姓名: 实验日期: 成绩: 指导老师: 实验单元一 程序基本结构设计 一、实验题目 实验一 熟悉VC++环境 二、实验目的 1. 熟悉C 程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C 程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C 程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h"int main(){int a,b,sum;a=2;b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum);return 0;} 运行结果为:

2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)

f r 《C 语言程序设计》实验报告 专业: 班级: 学号: 学生姓名: 实验日期: 成绩: 指导老师: 实验单元一 程序基本结构设计 一、实验题目 实验二 顺序结构程序设计 二、实验目的 (1)掌握C 语言数据类型以及变量的声明。 (2)掌握C 语言的赋值运算符、赋值表达式、赋值语句。(3)掌握C 语言的整型和字符型的混合运算。(4)掌握C 语言的输入、输出函数的使用格式。 三、实验内容 1.有人用温度计测量出华氏温度,现输入华氏温度f ,请编写程序把它转换为摄氏温度c 。已知华氏温度和摄氏温度有如下关系:c=5/9(f-32)。 2.输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3. 将字符串“China ”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字母替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2. 软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: 运行结果为: 2.源程序代码: 运行结果为: 3.源程序代码:运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进

C语言实验报告参考源代码

实验5三种基本结构的综合应用 4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=100;i<=999;i++) {for(j=2;j=i) /*三位数是素数时*/ {k=i%100; /*去掉百位数字*/ if(k>=10) /*十位数字不是0时*/ {for(m=2;m=k) /*两位数是素数时*/ {p=i%10; /*p为个位数字*/ for(q=2;q=p)n++;}}}} printf("%d\n",n);} Key:57 5.求[2,400]中相差为10的相邻素数对的对数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=2;i<=400;i++) {for(j=2;j=i) /*i是素数时*/ {for(k=i+1;k=k)break;} /*k是素数时终止if语句的外层循环*/ if(k>=i+10) /*[i+1,i+9]不是素数时*/ {for(q=2;q

哈工大(威海)c语言实验报告册答案

实验1简单判定性问题求解 一、实验学时 完成本实验需4学时。 二、实验目的 1、阅读程序题 (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法; (2)掌握不同的类型数据之间赋值的规律; (3)掌握数据在内存中的存储方式; (4)学会输入、输出函数的基本格式和使用方法; (5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。 2、编程题 (1)如何运用if-else判定性结构进行程序设计; (2)如何运用switch判定性结构进行程序设计。 3、调试题 (1)熟悉C程序的编辑、编译、连接和运行的过程。 三、实验指导 为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。 1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。 2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。要注意简单判定性问题的结构选择。 3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

四、实验内容 1、阅读程序题 (1)main( ) { /*定义字符型变量*/ char c1,c2; /*向字符变量赋以整数*/ c1=97; c2=98; printf("%c %c\n",c1,c2); /*以字符形式输出*/ printf("%d %d\n",c1,c2); /*以整数形式输出*/ } 思考:可否改成int c1,c2;输出结果是?相同 (2)main() { int a=7,b=5; printf("%d\n",b=b/a); } 思考:若将printf语句中%d变为%f,可否输出分式的值?可以(3)main() { int a=9; a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/ printf("%d\n",a); } 思考:赋值表达式a+=a-=a+a的求解步骤? 第一步:a=a-(a+a)=-9 第二步a=a+a=18 (4)main() { int k=-1; printf("%d,%u\n",k,k);

C语言实验报告

实验一进制转换 一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、VC6.0的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。 五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制的转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。

七、实验步骤 #include char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void fun(int n, int m) { int i=-1, a[100]; if(m!=16) { while(n) { a[i++]=n%m; n=n/m; } while(i!=-1) printf("%d",a[--i]); printf("\n"); } else { while(n) { a[++i]=num[n%16]; n/=16; } while(i!=-1) printf("%c",a[i--]); printf("\n"); } } int main() { int a, c; char cIn = 0; do { printf("\n输入正整数,转换的进制:"); scanf("%d %d",&a,&c); fun(a,c); printf("Go on? (Y/N):"); cIn = getchar( ); if(cIn == 'N' || cIn == 'n') return 0; } while(1);fun(a,c);

C语言综合性设计实验报告

C语言综合性设计实验报告 1.实验题目 建立一个简单的会员卡储值积分管理系统。 该系统的主要功能是:会员卡管理功能和会员卡储值积分管理。 会员卡管理功能: (1)根据身份证办理会员卡,一张身份证只能办理一张会员卡。 (2)根据需要可以注销、挂失、冻结会员卡或修改会员卡密码以及积分和消费金额查询。会员基本信息包括:会员身份证号、卡号、密码、积分、消费金额、级别。 会员卡储值积分管理: (1)根据会员卡级别设置折扣率,根据折扣率自动打折计算消费金额。 (2)根据消费金额计算积分,积分累计达到一定标准后换购商品。 2.设计分工 组员 组员 组员: 组员 在本系统开发中,小组各成员的分工如下: 会员的信息存储数据结构和各个子函数的名称及实验报告的书写由全体成员统一制定; 主函数main,主控程序模块call函数,系统退出函数,各函数名称及用到的变量名称的规定由胡丽萍统一负责。 会员管理总函数,会员积分总函数,会员信息查询函数及信息内容输出函数由陈建飞负责。 会员信息冻结函数,挂失函数,注销函数及内部返回到主菜单的返回函数由郭娟如负责。 密码设置函数,查询时检查函数,增加新会员函数,修改密码函数统一由郭霞负责。 输入级别函数,输入消费函数,查询积分函数,查询折扣率函数统一交由胡桂芳负责。 3.问题概述 要实现这个会员积分管理系统,要遇到的问题如下: ①. 首先要有一个主函数来负责对子函数的调用。 ②. 进行新增一个会员时的增加操作 ③. 对身份证号码的判定操作及密码的设置及判定操作 ④. 输出会员信息时对各部分的总体把握 ⑤. 修改密码时覆盖其原有的密码 ⑥. 会员级别及消费来查询折扣率和积分的操作 4.问题分析 首先该问题分为两个大块,一个是会员卡管理功能,另一个是会员积分管 理功能。针对会员卡管理功能,首先应具备7项功能,新会员的录入,查询会员

C语言实验报告(四)

C语言实验报告(四) 一、实验目的 1.掌握C语言中函数和模块 2.掌握怎样定义函数,如何调用或使用函数,如何声明函数 3.掌握函数的参数,了解在函数调用时,参数是如何传递的 4.在使用函数的过程中怎样确定函数的参数 5.如何使用局部变量和全局变量 二、实验内容 1. 偶数判断 描述: 编写一个用户自定义函数,该函数有一个整型参数,函数的功能是:当这个整型数的值是偶数时,函数的返回值为0,当这个整型数的值是奇数时,返回值为1 。编写一个程序,从键盘输入m个整数,分别调用用户自定义函数来判断这m个整数的奇偶性。 输入: 第一行为一个整数m,表示要判断m个整数的奇偶性;紧接着是m行,每行一个整数。 输出:有m行,分别对应输入的第2到第m+1行的整数的奇偶性样例输入: 2 1 6 样例输出: 奇数 偶数

·程序代码: #include"stdio.h" int isEven(int a) { if(a%2==0) return 1; else return 0; } int main() { int m,i,b; scanf("%d",&m); for(i=1;i<=m;i++) { scanf("%d",&b); if(isEven(b)==1) printf("偶数\n"); else printf("奇数\n"); } return 0; } 2.温度转换 描述: 编写一个用户自定义函数,函数的功能是:将华氏温度转F换为摄氏温度C。转换公式为:C=5*(F-32)/9。编写一个程序,输出指定范围的华氏温度与摄氏温度的对照表,其中华氏温度步长为4。 输入: 两个空格隔开的整数n,m(且0

C语言实验报告范文

实验名称:指针及其应用日期:得分:指导老师: 专业:班次:姓名:学号: 实验目的 (1)掌握变量的指针及其基本用法。 (2)掌握一维数组的指针及其基本用法。 (3)掌握指针变量作为函数的参数时,参数的传递过程及其用法。一.实验内容( 1)运行以下程序,并从中了解变量的指针和指针变量的概念。 (2)运行以下程序,观察 &a[0] 、&a[i] 和 p 的变化,然后回答以下问题: 1.程序的功能是什么? 2.在开始进入循环体之前, p 指向谁? 3.循环每增加一次, p 的值(地址)增加多少?它指向谁? 4.退出循环后, p 指向谁? 5.你是否初步掌握了通过指针变量引用数组元素的方法?( 3)先分析以下程序的运行结果,然后上机验证,并通过此例掌握通过指针变量引用数组元素的各种方法。 ( 4)编写函数,将 n 个数按原来的顺序的逆序排列(要求用指针实现),然后编写主函数完成: ①输入 10 个数; ②调用此函数进行重排; ③输出重排后的结果。 二.分析与讨论 ( 1)指针的定义方法,指针和变量的关系。 定义方法: 数据类型 * 指针变量名 ; 如定义一个指向 int 型变量的指针—— int *p; 则我们可以继续写如下代码—— int a = 4; p = &a; printf("%d", *p); 在这里,我们定义了一个变量a,我们把它理解为内存空间连续的 4个字节(int 型占用 4字节),则这 4个字节的空间保存着一个数 4。&是取地址符号,即把变量a的地址(即这4个字节的首地址)赋给指针p (记住指针p的类型和变量a的类型要保持一致,否则的话,要进行类型转换)。这样子,指针p就保 存着变量a的地址。我们如果把指针p当做内存空间里面另外一个连续的 4个字节,那么这4个字节保存的数就是变量a的地址。printf("%d",*p)和 printf("%d",a)的结果是一样的。这里的*是取变量符号(与&刚好作用相反,通过变量的地址找到变量),与定义时 int *p 的*号作用不同(定义时的 *表示该变量是个指针变量,而非是取它指向的变量)。 ( 2)数组和指针的关系。 指针与数组是 C 语言中很重要的两个概念,它们之间有着密切的关系,利用这种

c语言实验报告1

C语言程序设计报告 日

程序主要内容 任务1. 程序首先随机产生一到十之间的正整数,在屏幕上打印出问题,例如6*7=?然后让学生输入答案,序检查学生输入的答案是否正确,若正确,则“RIGHT”,然后问下一个问题,否则打印“WRONG,PLEASE TRY AGAIN”,然后提示学生重做,直到答对为止。 程序如下: #include #include #include int Magic(int x); int Answer(); main() { int guess,answer,counter=1; do{ printf("%d*%d=",Magic(1),Magic(2)); answer=Magic(1)*Magic(2); if(Answer()==answer) { printf("Right\n"); break; } else printf("Wrong!,please try again\n"); }while(counter>=1); } int Magic(int m)

int x,int y; srand(time(NULL)); x=rand()%10+1; y=rand()%10+1; if(m==1) return x; if(m==2) return y; } int Answer() { int n; scanf("%d",&n); return n; } 任务2:在(1)的基础上,当学生回答错误时,最多给三次重做的机会。 :程序如下: #include #include #include int Magic(int x); int Answer(); int Exam(); main() { int n; n=Exam(); if(n==0) printf("Right\n"); else if(n==1) printf("Wrong!You have tried

C语言程序设计实验报告优秀范文

C语言程序设计实验报告优秀范文 实验名称计算出1000以内10个最大素数之和 实验目的 1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。 2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。 3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。 实验内容 计算并输出1000以内最大的10个素数以及它们的和。 要求: 在程序内部加必要的注释。 由于偶数不是素数,可以不考虑对偶数的处理。 虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。 输出形式为:素数1+素数2+素数3+…+素数10=总和值。 算法描述流程图 main函数: 判断素数: 源程序 #include #include int sushu(int n)/* 判断素数的函数*/ { int t,i; t=sqrt(n); for(i=2;i if(n%i==0)/* 如果不是素数,返回0 */ return 0; return n;/* 如果是素数,返回该数*/ } void main { int i,j=0,n,m=0,a[1000],x; /*clrscr;*/ printf("please input a number form 1 to 1000:"); scanf("%d",&x); if(x==2)/* x=2时的处理*/ printf("%dn",x); else if(x printf("error!n");

相关文档
最新文档