当前位置:文档之家› c语言实验指导(修改)学生版.

c语言实验指导(修改)学生版.

c语言实验指导(修改)学生版.
c语言实验指导(修改)学生版.

程序设计与算法语言实验指导

一、目的和任务

程序设计的学习在数学专业的教学中占有重要地位。在建立数学模型后,对模型的求解和检验中多数会需要借用程序执行来完成。程序设计与算法语言实验课的目的就是通过实验培养并提高学生编写程序的能力和计算机应用的能力。

实验通过一些实例的编程学习,培养学生面向问题时建立逻辑清晰的思想,练习应用c 语言进行程序编写并执行,对问题中的各有关量进行分析,给出结果。

二、实验环境

计算机机房

三、实验时数

16学时

实验1 选择结构程序设计

实验目标:

1、熟悉并掌握vc++6.0开发环境;

2、了解数据类型在程序设计语言中的意义;

3、掌握C语言程序的顺序结构,并会编写、运行;

4、理解并掌握if语句和switch语句的执行流程;

5、理解并掌握嵌套的选择结构的执行流程。

实验内容:

题目1:

从键盘输入一个任意大小的实数x,如果x满足条件-29.5

题目2:

从键盘输入一个字符,如是小写字母,则输出“small”,如是大写字母则输出“big”,如是数字则输出“number”,其他字符则输出“other”。

题目3:

设计一个四则运算的计算器。

如输入:1+2<回车>

则输出:1+2=3

实验2 循环结构程序设计

实验目标:

1、掌握实现循环结构的三种流程控制语句while、do~while、for的用法和执行过程;

2、熟练掌握用循环方法实现几种常用算法。

实验内容:

题目1:

找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出。

例如:当x的值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500,共15个;当x的值为27时,100~999之间各位上数字之和为27的整数有:999,只有1个。

题目2:

写出计算方程f(x)=(x+3)2-7在(-3,0)之间的实数根的程序。

题目3:给定程序的功能是:计算下式前n项的和。

例如,n的值为10时,得到结果:9.612558。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!

#include

Void main()

{ int n=-1;

int i;

double s, t;

while(n<0)

{ printf("Please input(n>0): "); scanf("%d",&n); }

/**********found**********/

s=【1】;

/**********found**********/

for(i=1; i<=【2】; i++)

{ t=2.0*i;

/**********found**********/

s=s+(2.0*i-1)*(2.0*i+1)/【3】;

}

printf("\nThe result is: %f\n",s);

实验3 数组

实验目标:

1、掌握一维数组的定义、赋值和输入输出的方法;

2、掌握字符数组的使用;

3、掌握与数组有关的典型算法。

实验内容:

题目1:输出以下的杨辉三角形

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

。。。。。。。

。。。。。。。。

要求:输出10行

题目2:已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入到数组中。

如:原数组元素为:1 2 4 6 7 9 ,则输入5 后

插入到数组中形成新的序列:1 2 4 5 6 7 9

要求:写出算法思路分析的过程。

题目3:折半查找。在有N个元素的数组(元素由小到大的顺序存放)中,查找x是否存在于该数组,如存在输出x在数组中的下标,如不存在则输出“non-existent!”

折半查找的基本思想说明:

设查找数据的范围下限为low=0,上限为hig=N-1,求中点mid=(low+hig)/2,用x与中点元素(即mid作为下标的元素)比较,若相等即找到,停止查找;否则,若x大于中点元素,替换下限low=mid+1,到下半段继续查找;若x小于中点元素,替换上限hig=mid-1,到上半段继续查找;具体事例如下图:

情况1)设要查找的数据x=5,则有:

1 3 5 7 9 11 13

low mid hig

由于mid为下标的值是7 ,大于x,则修改上限hig

1 3 5 7 9 11 13

Low mid hig

由于mid为下标的值是3 ,小于x,则修改下限low

● 1 3 5 7 9 11 13

hig

Low

mid

由于mid为下标的值是5,等于x,则找到数据,结束查找。

情况2)设要查找的数据x=8,则有:

1 3 5 7 9 11 13

low mid hig

由于mid为下标的值是7 ,小于x,则修改下限low

1 3 5 7 9 11 13

low mid hig 由于mid为下标的值是11,大于x,则修改上限hig

● 1 3 5 7 9 11 13

hig

low

mid

由于mid为下标的值是9,大于x,则修改上限hig

? 1 3 5 7 9 11 13

hig

low

由于上限hig小于下限low,则表示没有找到,结束查找。}

实验目标:

1、掌握函数的定义和调用方法;

2、掌握函数实参与形参的对应关系;

3、理解和掌握数组作为函数参数的用法。

实验内容:

题目1:执行以下程序,写出执行结果,并分析。

题目2:填写下述del函数内容,功能是删除整型数组中指定的数。

如:数组中的数为: 4、8、9、7、0、1要删除的数为9;

删除后数组中的值为:4、8、7、0、1

要求:写出算法思路分析的过程。

实验目标:

1、掌握有关指针的概念,会定义和使用指针变量;

2、掌握指针和函数的关系;

3、掌握指针和数组的关系。

实验内容:

题目1:

(1)执行下列程序,并分析运行结果

(2)试修改上程序,使得函数fun能够交换主调函数main中a,b的值。

题目2:

给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000

移动后的输出为:46 32 40 45 4830 6 17 15 26

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:不得对源程序增行或删行,也不得更改程序的结构!

题目3:

函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。

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

注意: 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

实验6 结构体

实验目标:

掌握结构体类型变量的定义和使用;

通过该实验把C语言中的几个主要知识(如:顺序结构、选择结构、循环结构、数组、函数等)得到综合应用。

实验内容:

题目:

建立一个简单的学生成绩管理系统。

具体功能如下:

(1)录入学生信息的功能。每个学生的数据包括学号、姓名、四门课的成绩。

(2)打印学生信息的功能。

(3)计算学生平均成绩的功能。

《程序设计与算法语言》实验报告

专业班级姓名学号

实验项目

实验一选择结构程序设计

实验目的

1、熟悉if、switch语句形式。

2、掌握程序设计的基本方法。

3、学会简单的选择结构程序设计方法。

实验内容

题目1:

从键盘输入一个任意大小的实数x,如果x满足条件-29.5

要求:写出算法思路分析的过程。

题目2:

从键盘输入一个字符,如是小写字母,则输出“small”,如是大写字母则输出“big”,如是数字则输出“number”,其他字符则输出“other”。

题目3:

设计一个四则运算的计算器。

如输入:1+2<回车>

则输出:1+2=3

题目1:

●算法设计分析(用流程图表示算法是怎么实现的。如有多个函数,那么你是怎么组织

这些函数的,为什么要这么划分,各个函数之间的调用关系是什么样的)

●实验测试结果及结果分析(列出几组输入和输出结果,针对这些输入和输出做分析)

结果分析

题目2:

●算法设计分析

●实验测试结果及结果分析题目3:

●算法设计分析

实验测试结果及结果分析

实验总结

(略)

附录实验程序代码(该部分请加注释)

/*程序定义部分:*/

/*主函数部分:调用选择界面函数,再依据用户的选择,调用相应函数,实现相关功能*/ void main()

{

FNODE *head;

int n=0;

***********************

}

另注:

1、源代码部分请附加适当的注释说明;

2、打分的表格请置于实验报告最后一页的底端;

3、请遵照本实验范例的文字大小和段落格式排版;

4、实验报告双面打印;

5、每个实验15分计。

实验报告雷同者均视为未做。抄袭请慎重!

【1-1】

#include

#include

void main()

{

float x,y; //定义浮点数x,y

printf("请输入x:\n");//屏幕上显示请输入xy

scanf("%f",&x);//输入x

y=sqrt(x*x);//开平方根

if(x<30&&x>-29.5)//判断范围x是否同时满足大于等于-29.5和小于等于30 printf("%f %f",x,y);//输出

else //不然

printf("%f",x);//输出

}

【1-2】

#include

void main()

{

char a;//定义字符

printf("\n请输入一个字符:");//换行+屏幕上输出(XXX)

a=getchar();//输入一个字符

if(a>='0'&&a<='9')//如果满足括号里的条件

printf("number");

Else//不然

if(a>='A'&&a<='Z')//如果

printf("big\n");

Else//不然

if(a>='a'&&a<='z')//如果

printf("small\n");

Else//不然

printf("other\n");

system("pause");//停留在dos界面

}

【1-3】

#include

void main()

{

int a,b;//定义数字

char c;//定义运算符

printf("请输入数字:\n");

scanf("%d",&a);//输入数字

printf("请输入运算符:\n");

scanf(" %c",&c);//输入运算符

printf("请输入数字:\n");

scanf("%d",&b);//输入数字

switch(c)

{

case 42:printf("%d*%d=%d",a,b,a*b);

break;//42的ASCII是*

case 43:printf("%d+%d=%d",a,b,a+b);

break;//43的ASCII是+

case 45:printf("%d-%d=%d",a,b,a-b);

break;//45的ASCII是-

case 47:printf("%d/%d=%d",a,b,a/b);

break;//47的ASCII是/

}

}【2-1】

#include

void main()

{

int s,n=100;

/*s是和sum的缩写

n的起始值为100而且是整数*/

printf("输入你要的三位数的和:\n ");//RT

scanf("%d",&s);//输入s

while(n<1000)//在n<1000即小于等于999之前一直寻找以下符合条件的数字

{

int a=n%10;//a个位

int b=n/10;//b十位

int c=n/100;//c百位

n++;//i的自增

if(a+b+c==s)//如果abc加起来符合你输入的三位数之和

printf(" %d",n);//输出所有符合条件的100-999的数字

}

system("pause");//dos黑框停留

}

【2-2】

#include

#define f(x) ((x+3)*(x+3)-7)//宏定义

void main()

{

float a=-3,b=0,c,eps=1e-5;//a下界b上界c是中间变量eps=1e-5是区间的极限大小while ((b-a)>eps)//当上界-下界还大于极小的极限时执行下面

{

c=(a+b)/2;//对区间区中值

if(f(c)==0)//如果c是函数的根

break;//跳出循环

else//否则

if(f(a)*f(c)<0) b=c;//是否c是

else a=c;//否则c作为新的a 也就是缩小下界

}

printf("实数根=%f\n",c);

system("pause");

}【2-3】

#include

void main()

{

int i,n=-1;//定义整型变量i n

double s,t;//定义双精度浮点小数s t

while(n<0)//当n小于0时执行下面{}内容

{

printf("Please input(n>0):");//显示

scanf("%d",&n);//输入

}

s=0;//【1】s的初始值

for(i=1;i<=n; i++)//【2】i从1开始执行次数取决于n

{t=2.0*i;//分母是奇数(从1开始)的二倍

s=s+(2.0*i-1)*(2.0*i+1)/(t*t);

}//【3】累加求和直到循环部分结束

printf("\nThe result is: %f\n",s);//输出

}

【3-1】

#include

#include

#define N 11//看到N全部换成11

void main()

{ int n=0,a[N][N],i,j; //定义n行从0开始的杨辉三角,二维数组a[11][11],i行,j列printf("请输入杨辉三角的行数:");

scanf("%d",&n);

printf("\n%d行杨辉三角为:\n\n",n);

for(i=1;i<=n;i++)//杨辉三角的两边的数为1

{a[i][1]=a[i][i]=1;}//控制二位数组的边和对角线,把边和对角线全赋值成1,循环从1开始,a[i][1]为第一个数

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

{for(j=2;j<=i-1;j++)//控制除了边及对角线的内部的数

{a[i][j]=a[i-1][j-1]+a[i-1][j];}//某一个数=上一排同列的数+上一排左一列的数,除了边和对角线

}

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

{for(j=1;j<=i;j++)//j<=i控制输出下三角,不输出其它的数,

printf("%5d",a[i][j]);

printf("\n");}//当一行输出完以后换行继续下一行的输出为了数字不堆一起美观

printf("\n");//美观

system("pause");//防闪退

}

【3-2】

#include

main()

{

int a[7]={1,2,4,6,7,9},i,j,x;//定义一个7位数组

printf("现有排列1 2 4 6 7 9 \n\n请输入一个数:\n\n");

scanf("%d",&x);//输入x

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

{if(x

for(j=7;j>i;j--)

{a[j]=a[j-1];}//由倒二a[6]开始往倒一a[7]前移,即a[6]→a[7] a[5]→a[6]...

a[j]=x;//新的挪出来的空位填入x

printf("\n\n现在的排列是:\n\n");//输出

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

{printf(" %d",a[i]);}//输出重排数组

printf("\n\n");

}

【3-3】

#include

#define N 7

void main()

{ int i,a[N]={1,3,5,7,9,11,13},k,x,low,high,mid; //low,high查找数组元素范围的下标printf("a 数组中的数据如下:");

for(i=0;i

printf("%4d",a[i]);

printf("\n");

printf("输入要查找的数x:");

scanf("%d",&x);

low=0;

high=6; //设置[low,high]初始查找范围

while(low<=high) //当有查找范围,进入循环

{mid=(low+high)/2; //求mid,查找范围的中间元素下标

if(x==a[mid]) //如果中间元素等于被查找数,找到,跳出循环

{k=mid; break; }

else

if(x

high=mid-1; //m应该在中间元素的左边,修改查找范围

else

low=mid+1; //m应该在中间元素的右边,修改查找范围

}

if (low<=high) printf("x=%d,数组下标=%d\n",x,k);

else printf("non-existent!\n"); // low>high,已经没有查找范围了

}

【4-1】

#include

sp(int x,int y)//定义一个叫sp的函数(sp前没有,表示缺省int),形参or入口函数为int x,int y { int t,i;//

t=x;//x的值赋给t

x=y;//y的值赋给x

y=t;//t的值赋给y(x的值赋给y)实现对xy的值互换

//省略return或无任何表达式无返回值

}

main()//无返回值

{

int a,b;//

a=7;//

b=9;//

printf("函数调用前a=%d b=%d\n",a,b);//

sp(a,b);//调用函数

printf("函数调用后a=%d b=%d\n",a,b);

//省略return或无任何表达式无返回值

}

【4-2】

#include

void del(int b[],int n,int y)// b[]是数组,n是数组元素总共有几个,假设y是查找并要删的

{ int i,j,cnt=0;//cnt是次数

for(i=0;i

if(b[i]==y)//当找到第i个等于y时

{for(j=i;j

b[j]=b[j+1];//把后面的值赋到i的位置

}

}

#define N 6

void main()

{

int a[N]={4,8,9,7,0,1},i,x;

printf("请输入要查找并删除的数据:");

scanf("%d",&x);

del(a,N,x);//调用函数

for(i=0;i

printf("%d\t",a[i]);// \t能够让间距变大

printf("\n");

}

【5-1】

void fun(int*a,int*b)//实参ab作为形参直接改动{

int k;

k=*a;*a=*b;*b=k;//a指向k b指向a k指向b }

void main()

{

int a=3,b=6;

int *x,*y;//定义指针xy

printf("before:%d %d\t",a,b);

x=&a;y=&b;//x指向a的地址y指向b的地址

//*x指向a的值*y指向b的值fun(x,y);//函数对ab直接进行操作

printf("after:%d %d\n",*x,*y);

}

【5-2】

#include

#include

#define N 10

//定义函数部分

double fun(double*x)

{

int i,j;

double s,av,y[N];

s=0;

for(i=0;i

s=s+x[i];//叠加

/*******found*******/

av=s/N;//平均数

for(i=j=0; i

if(x[i]>av)//全体逐个比较

/*******found*******/

{y[j++]=x[i];x[i]=-1;}//若大于av,移至前部,对x数组的第i+1个元素赋值为-1 for(i=0;i

/*******found*******/

if(x[i]!=-1) y[j++]=x[i];//若x[i]不等于-1,移至前部

for(i=0;i

return (av);//返回av的值

}

//主函数部分

main()

{

int i;

double x[N];

for(i=0;i

{x[i]=rand()%50;printf("%4.0f",x[i]);}//重排前输出50以内的随机数

printf("\n");

printf("\n The average is %f\n",fun(x));//平均数是

printf("\nThe result:\n",fun(x));//重排后输出

for(i=0;i

printf("\n");

}

【5-3】

#include

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

{

int d,e,f,g;

e=a%10;//第一个数个位

d=a/10;//第二个数十位

g=b%10;//第二个数个位

f=b/10;//第二个数十位

*c=1000*e+100*g+10*d+f;//指针c(地址)指向重组的数

}

void main()

{

int a,b;

long c;//长整型c

printf("Input a,b:");

scanf("%d%d",&a,&b);

fun(a,b,&c);//c的地址直接在函数中进行操作

printf("The result is:%ld\n", c);

}

C语言课程设计小学生数学测试

C语言课程设计小学生数学测试 1 2020年4月19日

《c语言课程设计报告》学院:物理与电子信息学院 年级专业: 09级电子信息工程2班学号: 姓名: 同组人员: 指导老师: 完成日期: 6月21日 目录

一、所选课题 二、设计要求 三、程序具体分工 四、课题分析与设计 五、程序介绍 六、源程序代码 七、程序调试 八、流程图 九、实验总结 十、参考文献 一、所选课题 小学生数学测试 二、设计要求 1、可选择题型(加,减,乘,除); 2、两个数随机产生,若选择加减运算,则产生两位数,且 被减数大于减数,若选择乘法运算,则产生一位数,若 选择除法运算则被除数能被整除,且除数不能为零。 3 2020年4月19日

3、每次在输入答案后应判断对错,并给出是否继续测试的 提示,若答案错误,应给出正确答案; 4、最后给出评分。 三、程序具体分工 乘除部分由我完成,界面和加减测试部分由徐磊完成。 四、课题分析与设计 本程序是非数值计算型算法设计,我们设计出了小学生数学测试软件的基本功能,并设计了简单的界面。本程序主要考察针对小学生该怎样设计程序:例如小学生只进行两位数之间的加减法,只进行一位数与两位数之间的乘法,除法只能是整除等。课题要求我们设计个能够进行加、减、乘法的程序,但我们设计的这个小学生数学测试软件也不但实现了加、减、乘法的测试,还实现了除法的测试。 五、程序介绍 程序应包括两个头文件,其中存放库函数,而产生随机数的函数则存放在头文件中。另外程序有五个函数,分别为void menu(); /*主菜单函数*/ void add() ;/*加法函数*/ void sub();/*减法函数*/ void mul();/*乘法函数*/ void div1();/*除法函数*/,还有产生随机数函数在程序中直接调用。然后根据要求编写程序,乘法、除法的要求和做题后的判断、提示等。 六、源程序代码 #include 4 2020年4月19日

C语言实验指导书

《C语言》实验指导书 2016年10月

实验一C程序得运行环境与运行方法 一、实验目得 1。掌握所用得C语言环境得基本操作方法、 2.掌握编辑、编译、连接与运行C程序。 二、实验内容与要求 1、学习使用Visual C++6.0环境开发C程序。 (1)在磁盘上建立自己得文件夹,用于存放C程序,如“e:\cexam”。 (2)启动Visual C++6。0、执行“开始”-—“所有程序”——“Microsoft Visual Studio 6。0"——“Microsoft Visual Studio 6.0”命令,进入VC++编程环境,如图1 所示。 图1 MicrosoftVisual Studio6、0窗口 (3)新建C 程序文件。 执行“文件”——“新建”命令,单击如图2所示得“文件”选项卡,选中“C++So urceFile”;

图 2 新建文件 在“文件”文本框中输入文件名test1, 则C源程序被命名为test1。cpp,若想指定扩展名为.c,则需在“文件”文本框中输入文件名test1.c;在“目录”下拉列表框选择已经建立得文件夹,如,单击“确定”按钮,就新建了C源程序文件,并显示编辑窗口与信息窗口,如图3所示,然后在编辑窗口中输入程序。 (4)保存程序。 在如图3得界面输入程序代码。由于完全就是Windows 界面,输入及修改可借助鼠标与菜单进行,十分方便。当输入结束后,执行“文件”——“保存”命令,保存源文件。 图3编辑源程序(5)编译程序。信息窗口编辑窗口

执行“组建”--“编译[test1、cpp]”命令,弹出消息框,如图4所示,单击“就是"按钮,开始编译,并在信息窗口中显示编译信息。如果信息窗口中显示“test1.obj-0error(s),0 warning(s)",表示编译正确,没有发现错误与警告,并生成了目标文件test1、obj、 图4产生工作区消息框 如果显示错误信息,说明程序中存在严重得错误,必须改正,双击某行出错信息,程序窗口中会指示对应出错位置,根据信息窗口得提示分别予以纠正;如果显示警告信息,说明这些错误并未影响目标文件得生成,但通常也应该改正。 (6)连接程序。 执行“组建”——“组建[test1.exe]”命令,开始连接,并在信息窗口中显示连接信息、如果信息窗口中出现“test1.exe—0 error(s),0 warning(s)”,表示连接成功, 并生成了可执行文件test1、exe。 (7)运行程序。 执行“组建"——“执行[test1、exe]”命令,自动弹出运行窗口,如图5所示,显示运行结果。其中“Pressany key to continue”提示用户按任意键退出运行窗口,返回到VC++编辑窗口。 图 5 显示运行结果 (8)关闭程序工作区。 当一个程序编译连接后,VC++系统自动产生相应得工作区,以完成程序得运行与调试。若想执行第二个程序时,必须关闭前一个程序得工作区,然后通过新得编译连接,产生第二个程序得工作区。否则得话运行得将一直就是前一个程序。 执行“文件"--“关闭工作区命令",弹出得对话框如图 6所示,单击“就是”按钮,关闭工作区。 图 6 关闭所有文档窗口 (9)打开文件、 如果要再次打开C源文件,可以执行“文件”——“打开”命令,在查找范围中找到

C语言上机练习题

上机练习题 1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。 2.计算1+2+3…+n的值,n是从键盘输入的自然数。 3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中 各元素的值。 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面 值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。 6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。 例如若n为1000时,函数值应为:s=153.909064。 7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下 车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 8.输入1~10之间的一个数字,输出它对应的英文单词。 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些? 10.用自然语言描述程序逻辑如下,试写程序。 ①设置环境; ②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0; ③i=1; ④如果i≤100,则转⑤,否则转⑧; ⑤令s=0,求前i个自然数之和,并放于变量s之中; ⑥sum=sum+s; ⑦i增加1,转④; ⑧输出和sum,结束。 11.用自然语言描述的程序逻辑为: ①设置环境; ②定义变量i、flag和password,并令flag=0,i=0; ③用户回答口令,将其赋于password变量; ④口令正确?如果是,则flag=1,转⑥。否则转⑤; ⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥; ⑥根据flag之值输出相应信息。 12.用自然语言描述的程序逻辑如下: ①设置环境; ②定义变量digit、x、y分别表示原始数、原始数的个位数和逆数; ③输入原始正整数x; ④从x中分解出个位数字digit; ⑤合并个位digit至逆数y中; ⑥原始数x缩小10倍:x=x/10; ⑦如果x非零,则转④; ⑧输出逆数y,结束 13.输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构 成)。 14.输入10个数,分别统计其中正数、负数、零的个数。 15.先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)

C语言程序设计学生成绩管理系统实验报告

计算机学院 C语言程序设计报告书设计名称:学生成绩管理系统 专业:软件工程 指导老师: 班级: 姓名: 学号: 座号: 2011-6-15

一、实验目的 1.在编辑应用程序过程中,逐步加深对C语言编程的理解; 2.加强实践的能力,动手能力,同时进一步对所学的知识 进行巩固; 3.培养初步编程的能力,为以后的学习奠定基础。 二、实验内容 运用所学的C语言知识编辑一个应用程序:学习成绩管理系统 三.系统软件环境: 本程序主要运行在:Visual C++ 6.0 Turbo C/C++ 3.0 四.课程设计题目: 学生成绩管理系统 程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能: (1)主菜单

(2)各菜单项功能 ①成绩录入:输入学生的学号、姓名及三门课的成绩; ②成绩查询: *按学号查询学生记录。 ③成绩统计: *计算学生的平均分; *根据学生的平均分高低,对学生的数据进行排序后输出; ④退出系统:退出整个系统(即主菜单) 。 五.数据结构设计描述: ↓ ↓

六.各变量的定义和作用 int num; /*定义学号,变量为整型*/ char name; /*定义姓名,变量为字符型*/ int score; /*定义课程的成绩,变量为整型*/ float average; /*定义平均分,变量为浮点型*/ 七.系统各函数的功能,、相互调用关系 1.函数实现功能说明: (1)menu函数 是定义一个菜单函数,其功能在于输出菜单界面供使用者选择。 (2)input函数 是定义用于输入学生信息。 (3)select 函数 是定义用于查询学生信息。包括学号、姓名及各科成绩。(4)statistics 函数 计算学生的平均分。 根据学生的平均分高低,对学生的数据进行排序输出。2.相互调用关系: Main函数调用menu函数。 Menu 函数可以调用input 函数、select函数和statistics函数八.心得体会

《C语言》实验指导书

内江职业技术学院 上机实验指导书 科目:C语言程序设计 系别:电商学院 班级:15软件1班 教师:王刚 2015—2016学年第一学期

《计算机基础》课程实验指导书 目录 实验一C语言概述 (1) 实验二基本数据类型 (3) 实验三输入输出和算法 (6) 实验四选择和循环结构 (10) 实验五循环结构和函数 (13) 实验六模块化设计 (14) 实验七一维数组和字符串 (18) 实验八多维数组和指针 (20) 实验九指针 (22) 实验十指针和结构体 (23) 实验十一链表和共同体 (26) 实验十二文件 (27) 教材和参考书 1、教材: 《谭浩强、张基温,《C/C++程序设计教程》,高等教育出版社。 2、参考书: (1)《(美)H.M.Deitel,P.J.Deitel著,薛万鹏译,《C程序设计教程》,机械工业出版社。 (2)杨路明,《C语言程序设计教程》,北京邮电大学出版社。

实验一C语言概述 一、实验目的 1、了解所用的计算机系统。 2、了解在该系统上如何进行编辑、编译、连接和运行一个C程序。 3、通过运行简单的C程序了解C程序的特点。 二、实验内容 1、熟悉C语言集成环境。 2、利用C语言集成环境进行编辑、编译、连接和运行一个C程序。 3、运行一个自己编写的程序,程序的功能是输出两行文字。 三、实验设备及环境 微机若干台,并安装有C语言软件。 四、实验步骤 1、熟悉所用的系统。了解Windows资源管理器的使用方法:文件的查看、复制、运行等方法,C所在目录,文本文件的建立方法。 2、进入C,并新建一个C源程序文件。 3、熟悉C的集成环境,了解各菜单项有哪些子菜单。 4、输入下面的程序,注意区分大小写。 #include void main() { printf("This is a C program.\n"); } 编译并运行程序。 5、关闭工作区,新建一个程序,然后输入并运行一个需要在运行时输入数据的

c语言学生成绩管理系统含源代码

C 语言程序设计作业 一设计项目:学生成绩管理系统 二总体设计: 2:模块功能说明: 1 输入功能:输入学生姓名学号及成绩。 2 查看功能:输出姓名学号及各科成绩。 3 查询功能:通过学号查询学生姓名及各科成绩。 4 统计功能:统计班级学生及格率,优秀率,各个学生成绩方差等。 5 修改功能:通过输入学号修改指定学生的错误信息。 6添加功能:添加学生信息。 7删除功能:通过输入学号输入指定学生信息。 8保存功能:将学生信息保存。 9 退出系统。 3:主要函数之间的调用关系及各自功能: 主要函数的函数原型 void inputscore(void); void savescore(void); void avergescore(void); void modifyscore(void); void lookscore(void); void searchscore(void); void statistic(void); void add(void); void modify(void);

void delscore(void); void menu(void); i.在菜单界面输入1,调用函数inputscore( )实现输入学生成绩信息功能。ii.在菜单界面2,调用函数lookscore( )实现学生成绩按平均分高低排序输。 出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计 算。 iii.在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。 iv.在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生名单。 v.在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能vi.在菜单界面输入6,调用add()函数实现添加学生成绩。 vii.在菜单界面输入7,调用delscore()函数实现删除指定学生成绩。 viii.在菜单界面输入8,调用savescore()函数将学生成绩信息保存。 ix.在菜单界面输入9,退出成绩管理系统。

C语言实验指导书

《C语言程序设计》实验指导书 每次实验(10分)一共100分,最后折合成50分计入最终成绩。 第一次实验(一星期完成) ●内容一:熟悉编译环境和工具 在VS中键入以下的这段程序 1)关键字变色,自动缩近,智能提醒 2)代码风格和注释 3)编译出错,连接出错。修改错误 4)调试,断点,监控变量,进入函数,跳出函数。监控内存,监控堆栈 在linux中键入以下这段程序 1)熟悉VIM程序,gcc编译程序(开两个终端窗口) 2)熟悉GDB调试程序的基本技巧。(list,backstrac; break, watch,delete; next, continue, run; print,set,help) 其中,help命令是一个非常的参考,如果忘记了某条具体的命令,可以随时去参考help命令来得到相关的细节。 3)介绍《鸟歌的私房菜》这本书 ●内容二:登陆https://www.doczj.com/doc/c43459291.html,网站,在线提交。 1)熟悉基本的提交方法和规则 2)现场演示反作弊程序的效果 ●程序: 输入:两个整数,用空格分隔, 输出:两个整数的和,计算两个整数的和的功能,要求用函数实现,同时如果输入有错误,例如(12 abc)程序能够给出“error input”的提示。 参考输入: 12 33 参考输出: 45 参考输入: 12 abc 参考输出:

error input ●思考和扩展(无标准答案) 如果用户输入12 12abc 如何判断并终止程序,输出“error input”的提示 第二次实验(一星期完成) ●内容一:登陆ACM,演示OJ系统 1)介绍这个网站,有兴趣的同学可以去尝试一下() ●内容二:计算工资/小时程序 1)强制类型转换 2)一共有多少位的算法 3)整形数的溢出,以及针对特定问题,如何解决溢出问题 注意:linux编译下应该加上–lm 开关。 ●程序: 输入:工资数,小时数(整数,空格分隔)。 输出:工资/小时数(精确到小数点后2位),并根据四舍五入取整,然后将取整的数平方后计算一共有几位,后三位分别是什么? 参考输入: 2345 2 ←input (separate by space) 参考输出: 1172.50 ←average salary 1173 ← round off to integer 7 ← number of digit 0 2 5 ← the last three digit (separate by space) 第三次实验(两星期完成) ●内容一:介绍linux 下的grep,并给出相应的实例。重点介绍下面要用到的四个符号。 ●内容二:正则表达式 ^ 代表字符串开始 . 代表任意字符 $ 代表字符串末尾

C语言试题库(完整版)

C语言试题库 一、单项选择 第一章 C语言概述 (1)一个C程序的执行是从 A、本程序的MAIN函数开始,到MAIN 函数结束。 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C、本程序的MAIN函数开始,到本程序的最后一个函数结束。 D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。(2)以下叙述正确的是 A、在C程序中,MAIN函数必须位于程序的最前面。 B、 C程序的每行中只能写一条语句。 C、 C语言本身没有输入输出语句。 D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。(3) C语言规定,在一个源程序中,MAIN主函数的位置是在: A、必须在最前面。 B、必须在系统调用的库函数的后面 C、可以在任意位置。

D、必须在最后面 (4)一个C程序是由: A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 (5)以下叙述不正确的是: A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个MAIN函数 C、 C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 第二章数据类型、运算符与表达式 (1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32) A、4 B、16 C、32

D、52 (2)下列四组选项中,均不是C语言键字的选项是 A、define , IF, type B、getc, char, printf C、include, scanf, case E、 if, struct, type (3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,do B、float,1a0, _A C、b-a, goto, int D、_123, temp, INT (4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3 B、3*a*e/bc C、3*a*e/b*c D、a*e/c/b*3 (5)已知各变量的类型说明如下:

C语言实验指导书

C语言程序设计实验指导书 沈岚岚吕元长编写 桂林电子科技大学信息科技学院 2012.03

前言上机实验的目的和要求 一上机实验的目的 上机实验的目的,绝不仅仅是为了验证教材和讲课的内容,或者验证自己所编程序正确与否。学习程序语言,上机实验的目的如下: 1 加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,通过多次上机,就能自然、熟练地掌握语法规定。 2 了解和熟悉C语言程序开发环境。熟悉一两种环境(计算机系统的软件和硬件条件),再遇到其他的系统时便会触类旁通,很快学会。 3 学会上机调试程序,也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能够正确地运行。要真正掌握计算机应用技术,就不仅应当了解和熟悉有关理论和方法,而且要求自己动手实践能力强。 4 在做实验时千万不要在程序通过后就认为万事大吉,完成任务了,应当在通过的程序上做一些调试和修改,看看会得到什么结果。多动脑筋思考,将会对你有很大帮助。 二上机实验前的准备工作 1 了解所用的计算机系统的性能和使用方法; 2 复习和掌握与本实验有关的教学内容; 3 准备好上机所用的程序,切忌自己不思考、不编制程序或抄袭别人的程序; 4 准备好调试和运行时所需的数据。 三上机实验的步骤 1 调出C语言编译系统,进入C语言工作环境; 2 输入自己编制好的程序; 3 检查输入是否有错,及时更正; 4 进行编译和连接; 5 运行程序,分析结果。 四、实验结束,整理实验报告 实验报告应包括以下内容: 1 上机题目; 2 程序清单; 3 运行结果; 4 对结果的分析和本次获得的经验和体会。

C语言 小学生测试

[南京理工大学紫金学院] [C语言报告] 小学生测试 成员:谢德煜,徐安伟 徐凡,徐航 指导教师:郑老师 组别:16自动化第7组 2017年12月15日

一、组内成员分工......................................................................................... 错误!未定义书签。 二、课题介绍................................................................................................. 错误!未定义书签。 三、程序功能介绍......................................................................................... 错误!未定义书签。 四、主体内容................................................................................................. 错误!未定义书签。 1.设计分析...................................................................................................... 错误!未定义书签。 2.流程图.......................................................................................................... 错误!未定义书签。 3.各模块的功能及程序说明.......................................................................... 错误!未定义书签。 4.源代码.......................................................................................................... 错误!未定义书签。 5.操作方法...................................................................................................... 错误!未定义书签。 6.实验结果...................................................................................................... 错误!未定义书签。 五、设计......................................................................................................... 错误!未定义书签。

C语言实验指导书

实验1 C语言初步与编程环境介绍(2学时) 1.目的要求 1)熟悉C语言基本结构, 2)熟悉VC控制台应用程序设计的使用方法。 2.实验内容 (1)创建项目,分别将教材P13和P14程序输入并编译。 (2)下列程序能正确运行吗?如果能,写出运行结果;如果不能,指出错误原因并改正。 Main() { printf("hello\n"); } 附:VC 6.0 环境的使用方法介绍 Microsoft Visual C++ (简称VC)是微软公司生产的基于其Windows系统的软件开发工具。它具有使用灵活,并与32位Windows内核(使用于Windows 95/98/NT/2000)高度兼容的特点,从而被Windows程序员们广泛使用。同时,VC同样可以加工处理C语言程序,与标准的ANSI C语言兼容。VC提供了一种控制台操作方式,本实验课程主要在控制台方式下进行设计运行。 一、什么是控制台程序? Win32控制台程序(Win32 Console Application)是一类Windows程序,它不使用复杂的图形用户界面,程序与用户交互时通过一个标准的文本窗口,通过标准的输入输出流(I/O Streams)进行。 一个最简单的控制台程序如下: #include // 包含使用标准输入输出库的头文件声明 main() { printf(”Hello World!”); //输出一个字符串 } 二、如何使用MSVC编写控制台程序?

控制台程序按照下面几个步骤进行。 1、打开VC集成开发环境。 双击桌面图标“Microsoft Visual C++ 6.0”,或者从系统菜单“开始”/“程序”/“Microsoft Visual Studio 6.0”/“Microsoft Visual C++ 6.0”(如图1),打开VC 开发环境(如图2)。 图 1 从开始菜单中打开VC开发环境 图 2 VC开发环境界面

C语言编程测验题绝对经典!

马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭 共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人? 解方程组 编写程序,采用穷举法求出结果。 编写程序,根据以下公式求e 的值。要求用两种方法计算: 1) for 循环,计算前50项 2)while 循环,直至最后一项的值小于10-4 从键盘中输入一个数字(不限位数),用循环语句编程判断并输出这个数字的位数。 猴子吃桃子问题。猴子第一天摘下若干个桃,当即只一半,又多吃一个。第二天早上又将剩下 的一半吃掉一半,双多吃一个。以后每天早上都吃了前天剩下的一半零一个,到第10天早上 只剩下最后一个桃。问第一天摘了几个桃。 编程打印九九乘法表 青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(去掉一个最高分和 一个最低分)。 从键盘中输入一个数字(可以包含小数点,其位数在60位以下,求其整数的有效位数,如输入 0123.456,返回值为整数有效位数为3) 1) 输入数据为浮点型,不用数组,不用字符串,只有变量的算术运算实现此功能。 2) 使用数组来进行编程。 使用数组,编写一个十进制正整数转换为任意进制数的转换工具。 (大进制向小进制的转换。(方法是相除去余) 10进制327转八进制: 327/8 = 40 余数为7 40/8 = 5 余数为0 于是八进制数为507(第一位5是最后的商)) 使用数组,编写一个任意进制正整数转换为十进制的转换工具。(以2,10进制互转为例,其 他请举一反三: 二进制数1101转十进制: 1×2的三次幂+1×2的二次幂+0×2的一次幂+1×2的零次幂=8+4+0+1=13) 10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12,2,8,22,16,4,10,6, 14,20。然后按下列规则调整,所有小孩同时把自己的糖果分一半给右边的小孩,糖块数变为 奇数的人,再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块。 编写一个函数,用以求x2-5x+4的值,x 做为函数的形参,调用此函数,求: y1= 22-5×2+4 Y2=(x+15)2-5(x+15)+4 Y3=(sinx)2-5sinx+4 sinx 可以加载”math.h ” 库函数后使用,函数说明为 double sin( double x) 编写一个函数,使给定的一个二维数组(N ×N)行列互换(N>3)。 从键盘中输入一个不超过40个字符的字符串,再输入一个位数,删除对应 位数的字符,然后 输出删除指定字符后的字符串 要求:1) 用puts 输出指示信息 2) 用gets 接收字符串 如果有一个正整数从左、右来读都是一样的,则称为回文式数(简称回数);比如101,32123, 11111111!2!3!4!5!!e n ≈++++++??????+

学生成绩管理系统基本C语言编写

//代码版权所有,不要 #include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" copy,仅供参考学习。//标准输入输出函数库 //标准函数库 //字符串函数库 //屏幕操作函数库 #define p->data.num,p->https://www.doczj.com/doc/c43459291.html,,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.total,p->data.a ve,p->data.mingci int saveflag=0; //是否需要存盘的标志变量 //定义与学生有关的数据结构 typedef struct student { char num[12]; char name[15]; int cgrade; int mgrade; int egrade; int total; float ave; int mingci; }sqlist; //定义每条记录或结点的数据结构,标记为:node typedef struct node { struct student data;// 数据域 struct node *next; //指针域 }Node,*Link; //Node 为node 类型的结构变量,*Link 为node 类型的指针变量 void menu() //主菜单 { system("cls"); //调 用 DOS 命令,清屏.与clrscr() 功能相同 printf(" \n"); printf(" 学生成绩管理信息系统主菜单\n\n"); printf(" **************************************************\n"); printf(" $ 1 、添加记录6、统计记录$\n"); #define HEADER1 " ********************** ***** 学生成绩信息 ****************************** \n\n" #define HEADER2 " 学号姓名计算机数学英语总分平均分名次\n\n" #define FORMAT " %-10s %-10s %5d %5d %5d %5d %.3f %4d \n" DATA //标记为student //学号 //姓名//计 算机成绩// 数学成绩// 英语成绩 //总分 //平均分 //名次

《C语言》实验指导书

《C语言程序设计》 实 验 指 导 书 华中师范大学信息技术系 二00九年三月

项目一:熟悉C语言的运行环境及简单程序设计 (11) 实验一熟悉C语言的运行环境 实验二c程序初步 (3) 实验三数据类型及输入输出 (5) 实验四运算符与表达式 (8) 项目二:流程控制、指针、数组、模块化程序设计 实验五分支程序设计 (9) 项目六循环程序设计 (11) 项目七函数 (12) 项目八数组 (13) 项目九指针 (15) 项目三:综合程序设计——竞赛编排及优胜排序 (注:每个项目应包含实验学习目标、实验内容、实验原理、实验设备、实验步骤、实验注意事项或实验思考等内容。 基本型实验应有明确的实验学习目标、详细的过程和具体的结果;综合设计型实验应有明确的实验学习目标、可参考的过程和实验结果评价标准)

实验基本要求 1、每次实验前,学生必须预习实验内容,实验程序必须自行编制、自行调试。 2、每次实验,学生都必须提交实验报告,内容包括实验目的、实验内容、实验程序、实验过程(软件的使用、程序的调试)等,见下面的实验报告模版。 3、学生第一次上机时,应在教师机指定文件夹下建立以自己学号+姓名的子文件夹,例如学号为2005683001的学生张三,应在教师机指定文件夹下建立“2005683001张三”的子文件夹,此文件夹就是学生张三存放本课程实验全部文档的文件夹,也是教师评价学生饰演成绩的主要依据。 4、学生每次实验完毕后,都应将实验报告、实验程序等文档上传到教师机自己建立的子文件夹中。 5、学生每次实验,都应该在考勤表上签到。 附 华中师范大学信息技术系c语言程序设计实验报告 实验目的: 实验设备(包括软件): 实验内容: 实验过程: 实验程序及实验结果: 实验体会:

C语言测试题(含答案)

题目1:除不尽的数 一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a。又知这个自然数被17除余4,所得的商被17除余15,最后得到一个商是a的2倍。求这个自然数。 *运行结果 The required number is:1993 题目2:要发就发 “1898--要发就发”。请将不超过1993的所有素数从小到大排成第一行,第二行上的每个素数都等于它右肩上的素数之差。编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假好存在的话,又有几种这样的情况? 第一行:2 3 5 7 11 13 17......1979 1987 1993 第二行:1 2 2 4 2 4 (8) 运行结果 There are follwing primes sequences in first row: (1).89,......,1987 (2).53,......,1951 (3). 3,......,1901 题目3:填表格 将1、2、3、4、5和6 填入下表中,要使得每一列右边的数字比左边的数字大,每一行下面的数字比上面的数字大。按此要求,可有几种填写方法? . . . . . . /*两个点之间为表格*/ *运行结果 The possble table satisfied above conditions are: No.1: No.2: No.3: No.4: No.5: 1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 4 5 6 3 5 6 3 4 6 2 5 6 2 4 6 题目4: 1.黑白子交换 有三个白子和三个黑子如下图布置: ○○○ . ●●● 游戏的目的是用最少的步数将上图中白子和黑子的位置进行交换: ●●● . ○○○ 游戏的规则是:(1)一次只能移动一个棋子;(2)棋子可以向空格中移动,也可以跳过一个对方的棋子进入空格,但不能向后跳,也不能跳过两个子。请用计算机实现上述游戏。 *问题分析与算法设计 计算机解决胜这类问题的关键是要找出问题的规律,或者说是要制定一套计算机行动的规则。分析本题,先用人来解决问题,可总结出以下规则: (1) 黑子向左跳过白子落入空格,转(5) (2) 白子向右跳过黑子落入空格,转(5)

c语言课程设计学生成绩管理系统

目录 ——学生成绩管理程序题目要求 (2) 设计目的 (2) 总体设计 (3) 详细设计 (3) 调试与测试 (12) 源程序 (14) 总结 (30)

学生成绩管理程序 一.题目要求 1.问题描述: 对在校学生几门课程的考试成绩进行统一管理.每个学生记录包括学号,姓名,年龄,数学,英语,物理成绩,默认以学号为序存放. 2.要求: (1)一个文件按以班为单位存储学生记录. (2)将允许的操作分为四种,以A,B ,C,D,E,F为标志: A:插入一个学生记录; B:修改学生记录; C:删除一个学生记录; D:查找一个学生记录; E:浏览学生成绩: F:退出 3.计算学生的总成绩. 4.按学号排序输出全班学生成绩表 . 二.设计目的 根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.

三.总体设计 根据上面的需求分析,可以将这个系统分为以下模块:输入模块,修改模块,删除模块,查找模块,显示模块. 四.详细设计 1.主函数: 主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用,其中各功能模块用菜单方式选择. 流程图:

[程序]: //#include "head.h" int menu_select() { char c; printf("\n\n"); printf(" | 1. 增加学生记录 5.统计信息|\n"); printf(" | 2. 查询学生记录 6.打开文件|\n"); printf(" | 3. 修改学生记录7.保存文件|\n"); printf(" | 4. 学生纪录排序8.显示记录|\n"); printf(" | 0. 退出系统|\n"); printf("\n\n"); printf("请选择(0-8):"); c=getchar(); getchar(); return (c-'0'); } 2.输入模块: [分析]: 单独看各数据信息,学号,姓名是字符型,可以采用字符型数组;分数为整数,采用整数;数据信息存放在文件中,一条记录对应一个学生,既符合习惯又方便信息管理. 如果要存放若干学生信息就用结构体数组: void addrecord(student stud[]) { int i=0,j,num; char str[5]; if(numstus!=0) {

大学C语言期末考试练习题(带详解答案)之欧阳学创编

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成

(2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D 中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E 均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3) 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3

C语言课程设计 学生成绩管理系统

青岛农业大学 课程设计报告 题目:学生成绩管理系统 姓名:田世强元成张斌 学院:工程系 专业:电子信息工程技术 班级:2班 学号:200806013 200806015 200806023 指导教师:曹红波 2010年9月16日 六详细设计(各功能模块的具体实现算法——流程图) (3)

一设计目的 进一步加深、巩固所学专业课程(《C语言程序设计》)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。 二课程设计的内容 对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。 三课程设计的要求与数据 1、用C语言实现系统; 2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出. 3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能: (1) 每一条记录包括一个学生的学号、姓名、3门课成绩 (2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记 录的输入。) (3)、成绩信息显示浏览功能:完成全部学生记录的显示。 (4)、查询功能:完成按姓名查找学生记录,并显示。 (5)成绩信息的删除:按学号进行删除某学生的成绩. (6)、排序功能:按学生平均成绩进行排序。 (7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

C语言实训指导书

C语言实训指导书 C语言课程组编写 适用专业2010级计算机应用技术专业 2010级计算机网络技术专业 2010级计算机软件技术专业 2010级计算机网络工程专业 2010级计算机信息管理专业 2010级计算机网络安全专业 2010级计算机电子商务专业

软件学院CCUTSOFT 2011年1月 目录 C语言实训安排 (3) 一.实训时间 (3) 二.实训地点 (3) 三.实训对象 (3) 四.开发环境 (3) 五.实训目的 (3) 六.实训内容 (4) 七.实训题目 (4) 八.指导教师 (6) 十.实训方案 (7) 十一.实训要求 (7) 十二.考核方式 (8) 十三.进度计划 (9) 附录 (9)

C语言实训安排 一.实训时间 起始时间:2010.1.4——2008.1.12 上午:8:00——12:30 下午:13:00——17:30 二.实训地点 软件楼204、206、401、402、404、408、412、416、504、606、608、612、614 三.实训对象 10级计算机应用技术专业 10级计算机网络技术专业 10级计算机软件技术专业 10级计算机网络工程专业 10级计算机信息管理专业 10级计算机网络安全专业 10级计算机电子商务专业 四.开发环境 Turbo C 2.0 五.实训目的 本次实训旨在进一步巩固学生本学期在C语言课程上的所学,加强学生对面向过程的理解,加快学生编程思想的形成,培养学生的编程兴趣,从而更快的提高学生的程序设计能力,并为下学期各课程的打下一个坚实的基础。

六.实训内容 本次实训要求学生依据指导教师对实训各题目的讲解和实训指导书中对各实训题目的分析,结合自身学习情况,从四道实训题目中人选一题,独立完成该题目的设计和实现,并完成实训报告的撰写。 七.实训题目 题目一:迷宫游戏 内容:1、使用二维数组形成游戏地图,数组元素0表示墙1表示路2表示出口。 2、用*表示人,E表示出口,并在游戏地图输出完毕后,单独输出。 3、当人物标示与出口标示重合时,输出成功提示,并结束程序。 4、使用共用体变量接收键盘按键信息。 5、使用bios.h函数库中的bisokey函数读取键盘按键信息。 6、使用stdio.h函数库中的gotoxy函数设置输出位置。 7、使用键盘方向键LEFT、RIGHT、UP、DOWN移动人物,键值分 别为75、77、72、80。 8、使用ESC键退出程序运行界面并显示失败提示,键值27。 9、在移动过程中要注意处理重合问题。 题目二:学生成绩管理 内容:1、使用结构体数组定义学生基本信息(学号、姓名、年龄)及成绩(C语言成绩、英语成绩和数据库成绩)。如下: struct student { int id,age,cscore,enscore,dbscore; char name[21]; }students[5]; 2、实现学生基本信息(学号、姓名、年龄)及成绩(C语言成绩、 英语成绩和数据库成绩)的录入。 3、基本信息的查询(根据学号)、删除(根据学号)与修改(根据学 号)。 4、根据每科成绩,求出每个人的总分 5、对学生考试成绩进行排序(根据学号或各科成绩排序)

相关主题
文本预览
相关文档 最新文档