第2章用c语言编写简单程序实训综合练习

时间:2019-05-15 10:19:55下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《第2章用c语言编写简单程序实训综合练习》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《第2章用c语言编写简单程序实训综合练习》。

第一篇:第2章用c语言编写简单程序实训综合练习

第2章用c语言编写简单程序实训综合练习

实验目的1)使用if语句计算分段函数

2)熟练掌握for语句和while语句编写简单的循环程序

3)学习简单的程序调试方法

编程题

1.编写程序显示0至50之间的所有奇数。(用while循环语句与for循环语句

两种方法实现。

2.从键盘输入两个整数m和n(m

Enter 2 numbers: 5 7

The sum of the numbers in the range 5 to 7 is: 18

3.P39习题2、5

第二篇:c语言综合实训

《C语言程序设计》综合实训

一、实训目的:

1、完成C语言程序设计课程的教学之后,通过1周的课程设计可以进一步巩固所学知识,加深理解。

2、指导和促使学生通过各种途径对C语言相关技术内容进行拓展和深入,增强自学能力、软件开发能力等综合能力的培训。

二、综合实训题目:学生成绩管理系统 完成下列功能:

1、初始化:把50个学生的学号、姓名、性别、年龄、四科成绩以及平均成绩和总成绩放在一个结构体数组中,学生的学号、姓名、四科成绩由键盘输入,然后计算出平均成绩和总成绩放在结构体对应的域中。

2、插入:输入一个学生的记录,按学号的先后顺序插入该学生的全部内容。

3、排序:对所有学生按要求排序(1.学号 2.总成绩),并输出。

4、查找:输入一个学生的学号或姓名,找到该学生并输出该学生的全部内容。要求能查询多次。

5、删除:输入一个学生的学号或姓名,找到该学生并删除该学生的全部内容。

6、输出: 输出全部学生的记录。

7、main调用所有函数,实现全部函数功能。

三、设计要求:

1、掌握《C语言程序设计》有关的专业基础知识和程序设计的基本方法。

2、学会利用程序的三种基本结构:顺序结构、选择结构、循环结构解决不同的问题。

3、学会根据实际需求定义变量及类型。

4、掌握过程和函数的定义及调用方法。

5、学会程序调试的基本方法。

四、时间分配:

序课程设计内容

号 1 2 3 4 界面设计 模块设计 程序综合调试 设计报告 总计

时)2 12 6

计学时

非上机时间完成不

时间(学

备注

五、实训报告要求

1、封面

2、目录

3、实训报告内容:

第一章 需求分析

第二章 系统设计

结构图 数据类型

第三章 程序实现

代码

第四章 心得与不足

设计题目 C语言程序设计实训 专业班级 网络101 学生姓名 学号 06 指导教师 张青 起止日期 2012.5.28—2010.6.1 河南化工职业学院

#include

main()

{ int i=9;

while(i)

{

printf(“n1.插入学生信息n”);

printf(“2.修改学生信息n”);

printf(“3.查询学生信息n”);

printf(“0.退出n”);

printf(“请选择功能:”);

scanf(“%dn”,&i);

switch(i)

{case 1:printf(“n1.插入学生信息n”);break;

case 2:printf(“n2.修改学生信息n”);break;

case 3:printf(“n3.查询学生信息n”);break;

default:printf(“n输入有误,重新输入n”);

}

}

}

第三篇:C语言程序设计综合实训

《C语言程序设计》综合实训

一、实训目的:

1、完成C语言程序设计课程的教学之后,通过1周的课程设计可以进一步巩固所学知识,加深理解。

2、指导和促使学生通过各种途径对C语言相关技术内容进行拓展和深入,增强自学能力、软件开发能力等综合能力的培训。

二、题目:学生成绩管理系统

完成下列功能:

1、输入:函数input把20学生的学号、姓名、性别、年龄、四科成绩以及平均成绩和总成绩放在一个结构体数组中,学生的学号、姓名、四科成绩由键盘输入,然后计算出平均成绩和总成绩放在结构体对应的域中。

2、插入:insert 函数输入一个学生的记录,按学号的先后顺序插入该学生的全部内容。

3、排序:sort函数对所有学生按要求排序(1.学号

2.总成绩),并输出。

4、查找:find函数输入一个学生的学号或姓名,找到该学生并输出该学生的全部内容。要求能查询多次。

5、删除:delete函数输入一个学生的学号或姓名,找到该学生并删除该学生的全部内容。

6、输出:函数output 输出全部学生的记录。

7、main调用所有函数,实现全部函数功能(注:除了定义结构外,不允许使用全局变量,函数之间的数据全部使用参数传递)。

三、设计要求:

1、掌握《C语言程序设计》有关的专业基础知识和程序设计的基本方法。

2、学会利用程序的三种基本结构:顺序结构、选择结构、循环结构解决不同的问题。

3、学会根据实际需求定义变量及类型。

4、掌握过程和函数的定义及调用方法。

5、学会程序调试的基本方法。

四、时间分配:

序号 1 2 3 4 课程设计内容

界面设计 模块设计 程序综合调试 设计报告 总计

时间(学时)20 8 30

备注

非上机时间完成不计学时

五、考核形式及要求:

《C语言程序设计》综合实训实验部分评分结构表

序号

程序完成情况

成绩比例(%)

审评成绩(%)

项目

能正常运行,无语法错 基本功能完备(6种操作)界面美观,有系统菜单

在完成基本功能的基础上,有扩展

操作演示

2 答辩

操作熟练 各种操作有提示

能够正确描述程序中数据的组织形式、程序的整体结构和算法(10)回答提问流畅(10)20

1、课程设计报告占30%,实验70%。

2、课程设计结束上交课程设计报告和源程序;

3、要求在规定时间内独立完成;

第四篇:C语言上机实训

C语言上机实训 试题2 所属语言:C语言 试卷方案:C语言上机实训 试卷总分:100分 共有题型:3种

一、程序填空

共1题(共计30分)第1题(30.0分)

题号:470 /*------------------------【程序填空】

--------------------------

功能:从两个数组中分别提取任意元素x[i],y[j],问|x[i]-y[j]| 的最小值是多少 ?

------------------------*/ #include #include

/***********SPACE***********/

#define min(x, y)

(【?】)

x

int min_distance(int x[], int y[], int m, int n){

int minimum = INT_MAX;

int index_x = 0, index_y = 0;

while(index_x < m && index_y < n)

/***********SPACE***********/

if(【?】)x[index_x] >= y[index_y]

{

minimum = min(minimum, x[index_x]-y[index_y]);

index_y++;

}

else

{

minimum = min(minimum, y[index_y]-x[index_x]);

/***********SPACE***********/

【?】index_x++;

}

return minimum;

}

#include void main(void){

int x[] = { 1, 3, 7, 11, 18};

int m

= sizeof(x)/sizeof(int);

int y[] = { 4, 5, 8, 13, 22};

int n

= sizeof(y)/sizeof(int);

int i, min_distance(int [], int [], int, int);

printf(“nCompute Minimum Distance Between Two Sorted Arrays”);

printf(“n====”);

printf(“nnGiven Array #1 :”);

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

printf(“%5d”, x[i]);

printf(“nnGiven Array #2 :”);

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

printf(“%5d”, y[i]);

printf(“nnMinimum Distance = %d”, min_distance(x, y, m, n));} 答案:

=======(答案1)======= xx?x:y

=======(答案2)======= x[index_x] >= y[index_y] =========或========= y[index_y]<=x[index_x]

=======(答案3)======= index_x++ =========或========= index_x=index_x+1 =========或========= ++index_x

二、程序改错

共1题(共计30分)第1题(30.0分)

题号:26 /*-----------------------

【程序改错】

-------------------------

功能:实现3行3列矩阵的转置,即行列互换。

-----------------------*/ #include fun(int a[3][3],int n){

int i,j,t;

for(i=0;i

for(j=0;j

/**********FOUND**********/

scanf(“%d”,&a[i][j]);

for(i=0;i

{

for(j=0;j

printf(“%4d”,a[i][j]);

printf(“n”);

}

for(i=0;i

/**********FOUND**********/

for(j=0;j

{

/**********FOUND**********/

a[i][j]=t;

a[i][j]=a[j][i];

/**********FOUND**********/

t=a[j][i];

}

for(i=0;i

{

for(j=0;j

printf(“%4d”,a[i][j]);

printf(“n”);

} } main(){

int b[3][3];

fun(b,3);} 答案:

=======(答案1)======= scanf(“%d”,&a[i][j]);=========或========= scanf(“%d”,(*(a+i)+j));

=======(答案2)======= for(j=0;jj;j++)=========或========= for(j=0;j<=i;j++)=========或========= for(j=0;i>=j;j++)=========或========= for(j=i+1;j

for(j=i;j=j;j++)=========或========= for(j=i+1;j<=n-1;j++)=========或========= for(j=i;j<=n-i;j++)

=======(答案3)======= t=a[i][j];

=======(答案4)======= a[j][i]=t;

三、程序设计

共1题(共计40分)第1题(40.0分)

题号:341 /*-----------------【程序设计】

-------------------

功能:删除所有值为y的元素。数组元素中的值和y的值由

主函数通过键盘输入。

-----------------*/

#include #include #include #define M 20 void wwjt();

void fun(int bb[],int *n,int y){

/**********Program**********/

int i,j;for(i=0;i<*n;)

{

if(bb[i]==y)

{for(j=i;j<*n;j++)

bb[j]=bb[j+1];

*n=*n-1;

}

else

i++;

}

/********** End **********/ } main(){

int aa[M],n,y,k;

printf(“nPlease enter n:”);scanf(“%d”,&n);

printf(“nEnter %d positive number:n”,n);

for(k=0;k

printf(“The original data is:n”);

for(k=0;k

printf(“nEnter a number to deletede:”);scanf(“%d”,&y);

fun(aa,&n,y);

printf(“The data after deleted %d:n”,y);

for(k=0;k

printf(“n”);

wwjt();}

void wwjt(){

FILE *IN,*OUT;

int n;

int i[10];

int o;

IN=fopen(“in.dat”,“r”);

if(IN==NULL)

{

printf(“Read FILE Error”);

}

OUT=fopen(“out.dat”,“w”);

if(OUT==NULL)

{

printf(“Write FILE Error”);

}

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

{

fscanf(IN,“%d”,&i[n]);

}

fun(i,&n,3);

for(o=0;o

{

fprintf(OUT,“%dn”,i[o]);

}

fclose(IN);

fclose(OUT);}

答案:----------------------int i,j;for(i=0;i<*n;)

{

if(bb[i]==y)

{for(j=i;j<*n;j++)

bb[j]=bb[j+1];

*n=*n-1;

}

else

i++;

}----------------------

试题1 所属语言:C语言 试卷方案:C语言上机实训 试卷总分:100分 共有题型:3种

一、程序填空

共1题(共计30分)第1题(30.0分)

题号:417 /*------------------------【程序填空】

--------------------------

功能:利用全局变量计算长方体的体积及三个面的面积。

------------------------*/ #include int s1,s2,s3;int vs(int a,int b,int c){

int v;

/***********SPACE***********/

v=【?】;

s1=a*b;

/***********SPACE***********/

s2=【?】;

s3=a*c;

return v;} main(){

int v,l,w,h;

printf(“ninput length,width and height:

/***********SPACE***********/

scanf(”%d%d%d“,【?】,&w,&h);

/***********SPACE***********/

v=【?】;

printf(”v=%d

s1=%d

s2=%d

s3=%dn“,v,s1,s2,s3);} 答案:

”);

=======(答案1)======= a*b*c =========或========= a * b * c

=======(答案2)======= b*c =========或========= b * c

=======(答案3)======= &l

=======(答案4)======= vs(l,w,h)=========或========= vs(l , w , h)

二、程序改错

共1题(共计30分)第1题(30.0分)

题号:392 /*-----------------------

【程序改错】

-------------------------

功能:统计出若干个学生的平均成绩,最低分以及得最低分的人数。例如:输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均成绩为77.9,最低高分为56,得最

低分的人数为1人。

-----------------------*/

#include

float Min=0;int J=0;float fun(float array[],int n){

int i;float sum=0,ave;

Min=array[0];

for(i=0;i

{

if(Min>array [i])Min=array [i];

/**********FOUND**********/

sum=+array [i];

}

/**********FOUND**********/

ave=sumn;

for(i=0;i

/**********FOUND**********/

if(array [i]=Min)J++;

return(ave);}

main(){

float a[10],ave;

int i=0;

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

scanf(“%f”,&a[i]);

ave=fun(a,10);

printf(“ave=%fn”,ave);

printf(“min=%fn”,Min);

printf(“Total:%dn”,J);}

答案:

=======(答案1)======= sum+=array[i];=========或========= sum=sum+array [i];

=======(答案2)======= ave=sum/n;

=======(答案3)======= if(array [i]==Min)J++;

三、程序设计

共1题(共计40分)第1题(40.0分)

题号:390 /*-----------------【程序设计】

-------------------

功能:编写函数求1~100中奇数的平方和。

结果为166650.000000。

-----------------*/

#include void wwjt();

float sum(int n){

/**********Program**********/

/********** End **********/ } main(){

printf(“sum=%fn”,sum(100));

wwjt();}

void wwjt(){

FILE *IN,*OUT;

int i;

float o;

IN=fopen(“in.dat”,“r”);

if(IN==NULL)

{

printf(“Read FILE Error”);

}

OUT=fopen(“out.dat”,“w”);

if(OUT==NULL)

{

printf(“Write FILE Error”);

}

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

{

fscanf(IN,“%d”,&i);

o=sum(i);

fprintf(OUT,“%fn”,o);

}

fclose(IN);

fclose(OUT);}

答案:----------------------float s=0;int i;for(i=1;i<=n;i=i+2)

s=s+i*i;return(s);----------------------

试题3 所属语言:C语言 试卷方案:C语言上机实训 试卷总分:100分 共有题型:3种

一、程序填空

共1题(共计30分)第1题(30.0分)

题号:410 /*------------------------【程序填空】

--------------------------

功能:有n个整数,使其前面各数顺序向后移m个位置,最后m个数

变成最前面的m个数

------------------------*/ #include

/***********SPACE***********/

move(【?】)int n,m,array[20];{

int *p,array_end;

/***********SPACE***********/

array_end=*(【?】);

for(p=array+n-1;p>array;p--)

/***********SPACE***********/

*p=*(【?】);

*array=array_end;

m--;

if(m>0)move(array,n,m);} main(){

int number[20],n,m,i;

printf(“the total numbers is:”);

scanf(“%d”,&n);

printf(“back m:”);

scanf(“%d”,&m);

for(i=0;i

scanf(“%d,”,&number[i]);

scanf(“%d”,&number[n-1]);

/***********SPACE***********/

move(【?】);

for(i=0;i

printf(“%d,”,number[i]);

printf(“%d”,number[n-1]);}

答案:

=======(答案1)======= array,n,m

=======(答案2)======= array+n-1 =========或========= array + n-1

=======(答案3)======= p-1

=========或========= p-1

=======(答案4)======= number,n,m

二、程序改错

共1题(共计30分)第1题(30.0分)

题号:413 /*-----------------------

【程序改错】

-------------------------

功能:读取7个数(1-50)的整数值,每读取一个值,程序打印

出该值个数的*。

-----------------------*/

#include main(){

int i,a,n=1;

/**********FOUND**********/

while(n<7)

{

do

{

scanf(“%d”,&a);

}

/**********FOUND**********/

while(a<1&&a>50);

/**********FOUND**********/

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

printf(“*”);

printf(“n”);

n++;} } 答案:

=======(答案1)======= while(n<=7)

=========或========= while(n<8)

=======(答案2)======= while(a<1||a>50);=========或========= while(a>50||a<1);

=======(答案3)======= for(i=1;i<=a;i++)

三、程序设计

共1题(共计40分)第1题(40.0分)

题号:337 /*-----------------【程序设计】

-------------------

功能:将两个两位数的正整数a、b合并形成一个整数放在 c中。合并的方式是:将a数的十位和个位数依次放

在c数的百位和个位上,b数的十位和个位数依次放

在c数的十位和千位上。

例如:当a=45,b=12。调用该函数后,c=2415。

-----------------*/

#include void wwjt();

void fun(int a, int b, long *c)

{

/**********Program**********/

/********** End **********/ }

main()

{

int a,b;long c;

printf(“input a, b:”);

scanf(“%d%d”, &a, &b);

fun(a, b, &c);

printf(“The result is: %ldn”, c);

wwjt();

}

void wwjt()

{

FILE *rf, *wf;

int i, a,b;long c;

rf = fopen(“in.dat”, “r”);

wf = fopen(“out.dat”,“w”);

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

{

fscanf(rf, “%d,%d”, &a, &b);

fun(a, b, &c);

fprintf(wf, “a=%d,b=%d,c=%ldn”, a, b, c);

}

fclose(rf);

fclose(wf);

}

答案:----------------------*c=a/10*100+a%10+b/10*10+b%10*1000;----------------------

第五篇:--单片机C语言编程实训

实习报 告

实习地点:201机房

实习时间:2014.12.1——2014.12.6 实习项目:单片机C语言编程实训 指导老师:骆

乐 姓

名:

级:电信3121

一、实习内容 1.计算字符的ASCII码

编写一个程序,在终端输入一个字符,输出它的ASCII码。解题思路:通常我们输出一个字符一般用printf(“%c”,c);的形式,因为输出格式规定的是“%c”,因此表示以字符的形式输出,所以我们看到的是相对应的ASCII码的字符形式。

用char定义字符a,a的值为任意值。输出结果a=%d。源代码:

#include int main(){ char c;scanf(“%c”,&c);printf(“Ascii=%dnDCF14”,c);getch();} 程序截图:

2.嵌套if-else语句的妙用

学校进行成绩分级管理,取消分数制,改为成绩分级评定。具体办

法是:小羽60分为E类;60分至70分(不含70分)为D类;70分至80分(不含)为C类;80分至90分(不含)为B类;90分以上为A类。设计一个程序。对输入的成绩进行等级划分。

解题思路:先把头文件和主函数输入。定义score为整型变量,定义grade为字符型变量。定义score为任意值scanf(“%d”,score)。使用多分支条件语句,判断趁机的等级。

源代码:

#include void main(){ int score;char grade;scanf(“%d”,&score);if(score>=90)grade='A';else if(score>=80)grade='B';else if(score>=70)grade='C';else if(score>=60)grade='D';else grade='E';printf(“score=%d,grade=%c,nDCF 14”,score,grade);getch();

}

程序截图:

3.判断日期

输入一个日期(年月日),输出这是某年的第几天。源代码:

#include “stdio.h” void main(){ int year,month,day;int cday;scanf(“%d %d %d”,&year,&month,&day);switch(month){ case 1: cday = 0;break;case 2: cday = 31;break;case 3: cday = 31+28;break;case 4:

cday = 31+28+31;break;case 5: cday = 31+28+31+30;break;

case 6: cday = 31+28+31+30+31;break;case 7: cday = 31+28+31+30+31+30;break;case 8: cday = 31+28+31+30+31+30+31;break;case 9: cday = 31+28+31+30+31+30+31+31;break;case 10: cday = 31+28+31+30+31+30+31+31+30;break;case 11: cday = 31+28+31+30+31+30+31+31+30+31;break;

case 12:

cday = 31+28+31+30+31+30+31+31+30+31+30;

break;} cday += day;

if((year % 4 ==0 && year % 100!=0 || year % 400 == 0)&& month > 2){ cday += 1;} printf(“%d,n DCF 14 ”,cday);

getch();}

程序截图:

4.打印特殊图案

请设计一个程序,实现在屏幕上输出一个下面的图案 解题思路:直接输入编程,但要注意*间的空格。源代码:

#include void main(){ printf(“

* n * * * n* * * * *n ,DCF 14 n”);getch();}

程序截图:

5.求两个数的最大公约数和最小公倍数

编写一个程序计算两个正整数的最大公约数和最小公倍数

源代码:

#include

int main(int argc,int *argv[]){ int num1,num2,temp;int a,b;a > b;printf(“please input 2 number:”);scanf(“%d,%d”,&num1,&num2);if(num1 < num2){ temp = num1;num1 = num2;num2 = temp;} a = num1;b = num2;while(b){ temp = a % b;a = b;b = temp;}

printf(“the zuidagongyuehsu:%d,the zuixiaogongbeishu:%dn”,a,num1 * num2 / a);printf(“%dn,dcf 14 n”);system(“pause”);return 0;getch();}

程序截图:

6.猴子吃桃问题

有一只猴子第一天摘下若干个桃子,当即吃掉了一半,又多吃了一个;第二天又将剩下的桃子吃了一半,有多吃了一个;按照这样的吃法每天都吃前一天剩下的桃子的一半又一个。到了第10天,就只剩一个桃子。问题:这只猴子第一天摘了多少个桃子。源代码:

#include

void main(){ int day,x1,x2;day=9;x2=1;while(day>0){ x1=(x2+1)*2;x2=x1;day--;} printf(“total=%dn dcf 14”,x1);getch();}

程序截图:

7.谁在说谎

3个嫌疑犯在法官面前各执一词,甲说:已在说谎;已说:甲在说谎;丙说:甲已两人都在说谎。法官为了难,甲乙丙三人到底谁在说谎,睡说的是真话呢?

源代码:

#include

int main(int argc, char *argv[]){

int a,b,c;

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

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

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

if((a&&!b ||!a&&b)&&(b&&!c || b&&c)&&(c &&a+b == 0 ||!c&&a+b!= 0))

printf(“j told a %sn”,a?“truth”:“lie”);

printf(“y told a %sn”,b?“truth”:“lie”);

printf(“b told a %sn”,c?“truth”:“lie”);

printf(“%dn dcf 14n”);

getch();}

程序截图:

下载第2章用c语言编写简单程序实训综合练习word格式文档
下载第2章用c语言编写简单程序实训综合练习.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    《C语言课程设计》实训教学计划

    C语言程序设计》实训教学计划1 《 一、课程设计目的和意义: 1、通过本次课程设计,锻炼学生应用C语言的语法规则和已经掌握的一些较为简单的算法,自己解决一个较简单的课题,初步......

    c语言程序设计实训总结

    C语言程序设计实训总结 为加强学生的实践动手能力,为贯彻落实教学计划的要求,培养学生的专业实践技能,计算机系05级计算机网络工程与管理、计算机信息学管理、图形图像三个专业......

    C语言课程实训总结

    计算机专业实践教学总结 为了进一步增强实践教学效果,提高学生计算机编程能力,更好的理论联系实际,根据我院计算机专业专科实践性教学环节中的实践部分的要求,计算机教研室组织2......

    5编写一个C语言程序(五篇范文)

    前面几节介绍了常量和变量、运算符、表达式和语句的概念,对它们的使用有了一个大概的了解。也许刚学程序的人会觉得有些枯燥,下面我们就来编写第一个C语言程序。 #define PI......

    用c语言编写一个成绩管理系统

    程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能: (1)主菜单 学生成绩管理系统 1、 成绩录入 2、......

    C语言设计课程实训报告

    昆明理工大学城市学院 课程设计报告 课 程 名 称: 课程设计题目: 姓 名: 系: 专 业: 年 级: 学 号: 指 导 教 师: C语言设计课程设计 万年历 信息工程系 计算机科学与技术2012 20......

    学生信息管理系统实训(C语言)

    #includevoid lookup(int snum,int sc,int length);void summary(int sc,int length);void change(int n,int snum,int sc,int length); void search(int n,int s......

    C语言编程实训报告(合集)

    设计题目及要求设计题目及要求设计题目及要求设计题目及要求 1.综合应用实例——学生成绩管理 编写一个菜单驱动的学生成绩管理程序。实现如下管理功能: (1) 能输入并显示 n 个......