文档库 最新最全的文档下载
当前位置:文档库 › C语言实验指导(2017) (2)

C语言实验指导(2017) (2)

C语言实验指导(2017) (2)
C语言实验指导(2017) (2)

《C 语言程序设计》实验指导

计算机科学与技术系

项响琴编

第一部分:《C语言程序设计》实验教学大纲

课程编号:041310107

课程名称:程序设计语言Ⅰ

总学分:2.5 总学负荷:70 自主学习:57

课内实验学时:35

一、本实验课的性质、任务与目的

本实验课目的是使学生掌握C语言编程的常用方法,熟悉该语言中的语法、词法规则,为以后进行软件开发和学习后继专业课程打下基础。通过学习能够运用 C 语言中的各个知识点编写能完成一定功能的程序。训练学生进行复杂程序设计的技能和培养良好程序设计的习惯,其重要程度决不亚于知识的传授。把高级语言的学习与程序设计、上机实践紧密地结合起来,以提高学生能灵活运用新的知识分析问题和解决问题的能力。

二、本实验课所依据的课程基本理论

本实验课基于 C 语言的语法和词法规则、数据的表示及算法的处理,而语法及算法正是高级语言程序设计的主要研究对象。《C 语言程序设计》的主要任务是:C 语言是一种应用广泛结构化程序设计语言,本课程介绍 C 语言的基本概念、基本语法和编程方法,重点描述 C 语言的结构化的特征,并通过本课程的学习,使学生掌握一定的结构化程序设计的知识,以及用C语言编写程序的能力。

三、实验类型与要求

在做每个实验之前,让学生对本次实验相关的内容进行复习、算法设计、流程图的设计,做好实验的准备工作。每一次实验内容和具体要求见实验任务书。

四、每组人数与实验学时数

实验每组1人。

五、考核方式与评分办法

课内实验成绩=出勤率*5%+实验报告*15%+平时表现*30%+现场答辩

*50% 自主实验成绩=实验代码*30%+现场答辩*50%+实验报告*20%

六、实验报告要求

1、实验报告编写要求:

实验报告格式规范,要求在w ord 中编写,文中不要有空行,统一使用A4 页面。

页边距:上下 2.5cm、下 2cm、左 2.5cm、右 2cm。标题:宋体、四号字、加粗、

1.5 倍行距。

正文:宋体、小四号字、1.2 倍行距。

流程图或框架图:绘图要规范,整洁。

2、实验报告内容

(1)实验目的与要求

(2)实验内容(实验题目、程序思路分析与流程图、程序源代码、实验测试数据、实验运行结果截图)

(3)实验分析与小结(本小组实验过程中的出现的问题、产生的原因、解决方法以及未能解决的问题;实验结果分析;代码有待优化的思路)

(4)其它(对本课程教学的建议或意见、与专业课学习及其它)

第二部分:C 语言程序设计的运行环境(以V C++6.0 为例)

------VC++ 6.0 集成开发环境的使用在众多的面向对象程序设计语言中,Microsoft 公司的V C++6.0 独树一帜,是一个集程序编辑、编译、连接和调试于一体的 C 语言程序开发环境。在 Windows 环境下,操作方便。一、VC++环境中运行C

语言源程序的步骤

1、启动 Visual C++6.0 开发环境

2、创建一个项目

(1)在V isual C++6.0 开发环境主窗口,单击F ile 菜单中的N ew 选项,显示一个N ew 对话框,如下:

(2)单击 Projects,选择 Win32 Console Applocation,并在右侧相应的文本框中填入项目的路径和名

(3)在弹出的W in32 Console Applocation-Step 1 of 1 对话框中选择A n empty project 单选项,然后

单击F inish.

(4)最后在N ew Project Information 对话框中单击O K。

3、建立C源程序文件

(1)选择菜单命令P roject | Add to Project | New,弹出 New 对话框。

(2)在N ew 对话框的F iles 中选择C++ Source File ,并写入文件名,单击O K 4、编辑C语言源程序

(1)在文件编辑窗口中输入源代码

(2)选择 File | Save,保存程序

5、建立并运行可执行程序

(1)选择菜单命令B uild | Build Filename.ext 建立可执行文件

(2)选择菜单命令B uild | Execute Filename.exe 运行程序,观察显示的内容

6、关闭工作空间

选择菜单命令F ile | Close Workspace 关闭工作空间。

例:从键盘上输入两个整数,输出两者中的较大数。

1、新建一C PP 文件后,在编辑窗口输入源代码如下:

2、编译、连接后,从键盘上输入 12,34 <回车>,则可查看程序运行结果:

第三部分:实验内容

实验一顺序结构程序设计

【目的与要求】

1、了解V C 环境下C语言的运行环境,熟悉编译系统的操作环境。

2、了解在该系统上如何编辑和运行一个C程序。

3、通过运行简单的C程序,初步了解运行C语言程序的操作过程。

4、掌握三种基本数据类型(int、double、char)变量的定义。

5、

掌握算术运算符、赋值运算符及其表达式的应用。

6、掌握C语言中的语句及顺序结构程序设计

【实验内容】项目一:由键盘输入两个整数,计算并输出

两个数之和。1、程序代码:

#include “stdio.h”

int main()

{

int a,b,sum;

printf(“Please input two integer numbers:\n”);

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

sum=a+b;

printf(“%d+%d=%d”,a,b,sum);

return 1;

}

2、具体操作:

(1)输入程序,按 Ctrl+F9。若在运行后有词法或语法错误,则根据提示进行修改,再进行调试,直到没有语法错误。

(2)运行后,依下列不同的方式输入数据,查看程序执行结果。

① 1234 ↙

② 12 ↙

34 ↙

③ 1234 ↙

项目二:求出含有两个实根(b2-4ac>=0)的一元二次方程a x2+bx+c=0 的解。

1、程序分析: (1)定义变量:

a,b,c,x1,x2,delta (2)输入a,b,c

(3)计算d elta= b2-4ac (设d elta>=0)

x1=(-b+sqrt(delta))/(2*a)

x2=(-b-sqrt(delta))/(2*a)

2、程序代码:

#include “stdio.h”

#include “math.h”

int main()

{

double a,b,c,x1,x2;

double delta;

printf(“Please input the three coef.:\n”);

scanf(“%lf%lf%lf”,&a,&b,&c);

delta=b*b-4*a*c;

x1=(-b+sqrt(delta))/(2*a);

x2=(-b-sqrt(delta))/(2*a);

printf(“The roots are:\nx1=%4.2f,x2=%4.2f”,x1,x2);

return 1;

}

3、具体操作:

(1)输入程序,按C trl+F9。若在运行后有词法或语法错误,则根据提示进行修改,再进行调试,直到没有语法错误。

(2)运行后,根据提示输入方程的三个系数值,键入回车,查看程序执行结果。

注:输入浮点型系数方法同实验一。

【实验分析与讨论】

1、总结C程序的基本结构和书写规则。

2、分析调试过程中常见的错误提示和解决策略。

3、掌握调试过程中问题解决的方法和思路

【DIY】一、改错:实现求三个数

的平均值。

#include

int main()

{ double a,b,c,sum;

double average;

a=10; b=20; c=35;

average==sum/3;

printf(“the average is %4d”,average);

return 1;

}

二、填空:实现从键盘中读取两个浮点型数据,相乘之后输出结果,要求结果须保留4位

小数。

#include

int main()

{ 1 a,b,c;

printf(“please enter two numbers”); scanf(“%f%f”,&a,&b); c= 2 ;

printf(“c= 3_ ”,c); return 1;

}

三、 编程

1、甲乙两列火车同时从两地相对开出,经过 4 小时相遇.已知甲车每小时行 66.6 千米, 乙车每小时行 55.5 千米.求两地相距多少千米?

2、挖一条水渠,计划 20 天完成任务.实际每天挖 200 米,结果提前 5 天完成,这条水渠长 多少米?

3、某公司为保证数据传输的安全性,加密了一条线路的四位数数字。已知加密过程 为先将千位和个位交换、百位和十位交换,再把各位数依次加 6,取结果的个位数组成新 的四位数。现有一个已加密的数据:7164,求其源数据。

4、菜单制作。请在屏幕上显示下列菜单信息。

=======Main Menu=======

1---Input 2---Calculate 3---Display Result

5、设银行定期存款的年利率 r ate 为 2.25%,已知存款期为 n 年,存款本金为 c apital 元,试编程计算并输出 n 年后的本利之和 deposit 。 输入格式要求:

"%lf,%d,%lf" 提示信息:"Please enter rate, year, capital:" 输出格式要求:"deposit = %f\n" 提示:幂函数 a x 用库函数 p ow(a,x)来计算。

【目的与要求】

实验二 文件读写操作

1、了解指针变量的定义方法;

2、掌握文件指针的定义;

3、掌握 C 程序中文件的打开、关闭、读写等相关操作;

4、掌握 C 程序实现文本文件的读写操作。 【实验内容】 项目一:圆周率 π 的计算公式如下:

= -arctan

编程计算出 π 的值,并将结果写入 d 盘根目录下“圆周率.txt”文件中。 程序代码:

#include

#include

#include //算术头文件

int main()

{

double pi;

FILE *fp;

pi=4*(4*atan(1.0/5)-atan(1.0/239));//atan()为反正切函数

if((fp=fopen("d:\\圆周率.txt","w"))==NULL) //打开文件,同时判断是否操作成功{

printf("文件打开失败\n");

exit(0);

}

fprintf(fp,"根据公式Π/4=4arctan1/5-arctan1/239\n 计算圆周率π的值为: ");

fprintf(fp,"%.15f\n",pi);//往文件中写入圆周率的 15 位小数形式 printf("信

息已写入文件\n");

fclose(fp); //关闭文件

return 0;

项目二:求出含有两个实根(b2-4ac>=0)的一元二次方程a x2+bx+c=0 的解,要求三系数 a、b、c 分别从文件“D:\方程系数.txt”中读取,计算得到的方程两实根,再次添加到上述文件中(结果保留两位小数)。

1、程序分析: (1)定义变量:

a,b,c,x1,x2,delta

其中:a,b,c 通过f scanf()从文件中读取;

delta,x1,x2 通过计算得到

(2)从文件中读取a,b,c

(3)计算d elta= b2-4ac (设d elta>=0)

x1=(-b+sqrt(delta))/(2*a)

x2=(-b-sqrt(delta))/(2*a)

2、程序代码:

#include

#include

#include

int main()

{

double a,b,c;//定义三系数

double delta,x1,x2;

FILE *fp;//定义文件指针f p

fp=fopen(“D:\\方程系数和解.txt”,”r”);//以只读方式打开文件

fscanf(fp,“%lf%lf%lf”,&a,&b,&c);//double 类型数据读取控制符为%lf

fclose(fp);//关闭文件

delta=b*b-4*a*c;

x1=(-b+sqrt(delta))/(2*a);

x2=(-b-sqrt(delta))/(2*a); fp=fopen(“D:\\方程系数和

解.txt”,”a+”);//以追加方式打开文件fprintf(fp,“\nThe roots are:

\nx1=%4.2f,x2=%4.2f”,x1,x2); fclose(fp);//关闭文件

return 1;

}

3、具体操作:

(1)在d盘根目录下,建立文本文件“方程系数和解.txt”,存入方程的三个系数,确保b2-4ac≥0;

(2)运行后,再次打开“方程系数和解.txt”文件,查看程序执行结果。

【实验分析与讨论】

1、总结文件读写与基本输入输出操作的方法。

2、掌握调试过程中问题解决的方法和思路。

3、分析调试过程中常见的错误提示和解决策略。

【DIY】

1、定义两个d ouble 指针,动态申请空间后,从键盘读取数据对其进行初始化,输出两空间中数据之和。

2、编程实现,从键盘输入圆柱体底面半径和高(单位:分米),计算其表面积和体积,再将圆柱体的所有信息写入文件“圆柱体.txt”中。

3、在d盘根目录下创建文件“学生身高.txt”,存储10 位同学的身高(身高数据自定义)编写程序,读取前5名同学的身高数据计算平均身高,并将结果写到屏幕上

4、编程实现,向某文件(自行定义)中写入100 以内所有能被2和3整除的数(如:6,12……),再统计出个位数为2的数据个数。

实验三选择结构程序设计

【目的与要求】

1、了解分支结构的两条语句i f 和s witch 语法。

2、掌握关系运算符和逻辑运算符的运用。

3、

熟练掌握i f 语句和s witch 语句的应用。

【实验内容】项目一:给出下列分段函数计算

的程序代码。

根据输入的x的值,计算y的值并输出。

1、程序分析:

对于分段函数,运用i f-else 语句,即可解决。

(x+5)2+3x (x>0)

y= 0 (x=0)

(x-5)2-3x (x<0)

2、程序代码:

#include

int main()

{

double x,y;

printf(“Enter X:\n”);

scanf(“%lf”,&x);//从键盘读取变量x的值

if(x>0)

y=(x+5)*(x+5)+3*x;

else {

if(x==0)

y=0;

else

y=(x-5)*(x-5)-3*x;

}//分段计算对应的函数值y

printf(“x=%.2f y=%.2f\n”,x,y);

return 1;

}

项目二:求出含有两个实根(b2-4ac>=0)的一元二次方程a x2+bx+c=0 的解,要求三系数a、b、c 分别从文件“D:\方程系数.txt”中读取(若不能满足b2-4ac>=0,则给出提示信息,并结束程序),计算得到方程的两实根,再次添加到上述文件中(结果保留两位小数)。

1、程序分析:

(1)定义变量:a,b,c,x1,x2,delta

其中:a,b,c 通过f scanf()从文件中读取;

delta,x1,x2 通过计算得到

(2)从文件中读取a,b,c

(3)计算d elta= b2-4ac (设d elta>=0)

x1=(-b+sqrt(delta))/(2*a)

x2=(-b-sqrt(delta))/(2*a)

2、程序代码:

#include

#include

#include

int main()

{

double a,b,c;//定义三系数

double delta,x1,x2;

FILE *fp;//定义文件指针f p fp=fopen(“D:\\方程系数和

解.txt”,”r”);//以只读方式打开文件

fscanf(fp,“%lf%lf%lf”,&a,&b,&c);//double 类型数据读取控制符为%lf

fclose(fp);//关闭文件

delta=b*b-4*a*c;

if(delta<0)

{

printf(“方程%.2fx2+%.2fx+%.2f=0 没有对应的实根”,a,b,c);

exit(0); //结束程序

}

x1=(-b+sqrt(delta))/(2*a);

x2=(-b-sqrt(delta))/(2*a); fp=fopen(“D:\\方程系数和

解.txt”,”a+”);//以追加方式打开文件fprintf(fp,“\nThe roots are:

\nx1=%4.2f,x2=%4.2f”,x1,x2); fclose(fp);//关闭文件

return 1;

}

3、具体操作:

(1)在d盘根目录下,建立文本文件“方程系数和解.txt”,存入方程的三个系数;

(2)运行后,再次打开“方程系数和解.txt”文件,查看程序执行结果。项目三:求解简单表达式。输入一个形式如“操作数运算符操作数”的四则运算表达式,将运算结果写入文件(“D:\表达式计算.txt”)保存。

如:输入:2+45 显

示:2+45=47

程序代码:

#include

#include

int main()

{

char operator

double operand1,operand2;

FILE *fp;

printf(“Type in an expression: \n”);

scanf(“%lf%c%lf”,&operand1,&operator,&operand2);

//从键盘读取表达式

fp=fopen(“D:\\表达式计算.txt”,“w+”); //打开文件

switch(operator)

{

case …+?:

fprintf(fp,“%.2f+%.2f=%.2f\n”,operand1,operand2,operand1+operand2);

//往文件写入计算结果

break;

case …-?:

fprintf(fp, %.2f-%.2f=%.2f\n”,operand1,operand2,operand1-operand2);break;

case …*?:

fprintf(fp,“%.2f*%.2f=%.2f\n”,operand1,operand2,operand1*operand2);

break;

case …/?:

if(operand2==0) //除数为零

{

printf(“Error:the divisor is zero.\n”);

exit(0);

}

fprintf(fp,“%.2f/%.2f=%.2f\n”,operand1,operand2,operand1/operand2);break;

}

return 1;

}

【实验分析与讨论】

1、总结分支选择结构的设计方法与技巧。

2、掌握运用s witch 语句进行简单菜单的设计。

【DIY】一、改错:调试以下程序使之能求出三个数中

的最小数。

#include

void main()

{ int a,b,c;

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

if((a>b)&&(a>c))

if(b

else printf(“min=%d\n”,c);

if((a

}

二、程序填空

#include

void main()

{

int year,month,days;

printf(“enter year and month:”);

scanf(“%d%d”,&year,&month);

switch( 1 )

{ case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31;break;

case 4: case 6: case 9: case 11:

days=30;break;

case 2: if(_ 2 )

days=29;

else days= 3 ; 4 ;

default:printf(“input error!!!\n”);

days=0;

} 三、编程

}

if( 5 )

printf(“%d,%d is %d days \n”,year,month,days);

1、(1) 假如某一年的第一天是周一,请编写程序:输入这一年(365 天)的任意一天判

断这一天是否为周日(如:第七天是,第八天则不是)。 (2)天色已晚,妈妈叫小明打开房间电灯,可淘气的小明一连拉了 9 下开关。请你编写一个程序:在输入拉了多少次开关后,判断灯现在的状态。

(3) 有一个小昆虫在数轴上爬行,它从原点开始爬,“+”表示此昆虫由数轴向右,

“-”表示此昆虫由原点向左,共爬行了10 次,其数据统计如下(单位:厘米):

+3,-2,-3,+1,+2,-2,-1,+1,-3,+2.请问此昆虫共爬行了多少厘米。 2、已知三名同学的身高分别为(单位:米):甲:1.75,乙:1.73,丙:1.80.请你

编写程序:将这三名同学的身高从小到大排列。

3、已知某班级的5名同学的《C 语言程序设计》期末考试成绩为(单位:分):甲:86,乙,66,丙:80,丁:96 戊:75.请你编写程序:输出哪位同学的分数最高。

4、出租车收费。某城市普通出租车收费标准如下:起步里程3公里,起步费用10 元;

超起步里程后10 公里内,每公里租费2元;超过10 公里以上的部分加50%的回空补贴费,

即每公里租费3元。营运过程中,因路阻及乘客要求临时停车的,每5分钟按1公里租费计收。运价计费尾数四舍五入,保留到元。编写程序,输入行驶里程(公里)与等待时间

(分钟),计算并输出乘客应支付的车费(元)。

5、输入一位学生 C 语言课程的百分制成绩 score,按下列标准划分等级,编程输出百分制分数对应的等级,并将结果写入文件中。等级划分:A(90~100)、B(70~89)、C(60~69)、D(0~59)

实验四循环结构程序设计

【目的与要求】

1、掌握三种循环语句在编程中的使用。

2、理解b reak 语句和c ontinue 语句在循环结构中的不同作用。

3、了解循环的嵌套调用过程。

4、掌握分支、循环嵌套在程序设计中的应用。

【实验内容】项目一:求下列表

达式的值。

1/3+3/5+5/7+……+n/(n+2) //n 为任意一个奇数

1、程序分析:

从上述表达式的形式看,当n确定下来之后,我们就从1/3 开始,按照式子中给出的规律,一直累加到n/(n+2)

2、程序代码:

#include

int main()

{

double i,n,sum=0.0;

printf(“Please input an odd:\n”);

scanf(“%lf”,&n);

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

sum=sum+i/(i+2);

printf(“%.2f”,sum);

return 1;

}

项目二:输入两个正整数,求出它们的最大公约数与最小公倍数。

1、算法分析:

[辗转相除法]对于两个数m和n,用n去除m,若余数为0,则n为最大公约数,否则将 n 作为 m,余数作为 n,再用 n 去除 m,直到余数为 0,则 n 为最大公约数。 2、程序代码:

#include “stdio.h”

#include “math.h”

int main()

{

int m,n,t,max,min;

printf(“Please input two integer numbers:\n”);

scanf(“%d%d”,&m,&n);

min=m*n;

while(n!=0)

{ t=m%n;m=n;n=t;}

printf(“最大公约数为:%d\n”,m);

printf(“最小公倍数为:%d\n”,min/m);

return 1;

}

项目三:将一张100 元钱,换成10 元,20 元,50 元零钱,问有多少种不同的换法(假设三种零钱每种都可不出现)。

1、算法分析运用穷举算法实现:考虑到三种零钱各种可以不出现,则各自的张数

范围如下:

10 元--------0 张到 10 张

20 元--------0 张到 5 张

50 元--------0 张到 2 张

并且要考虑到共数只有一张100 元票子。

2、程序代码:

#include "stdio.h"

int main()

{int Tencount,Twecount,Fifcount,i=0;

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

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

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

if (Tencount*10+Twecount*20+Fifcount*50==100)

printf(" No-%d:10→%d 20→%d 50→%d\n",

++i,Tencount,Twecount,Fifcount);

return 1;

}

【实验分析与讨论】

1、分析总结f or 语句,while 语句,do-while 语句的用法。

2、

巧用 break 语句和 continue 语句。 3、三种结构的程序嵌套设

计。

4、多完成小综合性实验。

【DIY】一、

改错

#include “stdio.h”

void main()

{ int t,s,i,n;

scanf(“%d”,&n);

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

t=1/I;

s=s+t;

printf(“s=%f\n”,s);}

二、程序填空有

以下程序: s=1.0;

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

s=s+1.0(k+1);

printf(“%f\n”,s);

填空完成下述程序,使之与上述程序的功能完全相同。

s=0.0;

1

k=0;

do

{ s=s+d;

2

d=1.0/(k*(k+1));

}while( 3 )

printf(“%f\n”,s);

三、编程

1、某人在国外留学,不熟悉当地天气预报中的华氏温度值,请编程按每隔10°输出-40°到 110°之间的华氏温度到摄氏温度的对照表,以方便他对照查找。

2、已知华氏和摄氏温度的转换公式为C=5/9*(F-32),其中,C 表示摄氏温度,F 表示

华氏温度。

输出格式要求:"%4d\t%6.1f\n"

程序运行示例如下:

-40 -40.0

-30 -34.4

-20 -28.9

-10 -23.3

0 -17.8

10 -12.2

20 -6.7

30 -1.1

40 4.4

50 10.0

60 15.6

70 21.1

80 26.7

90 32.2

100 37.8

110 43.3

2、输入4个学生的成绩(67.5、54、88、73),计算平均分,并统计不及格成绩的个数。

输入格式要求: "Enter grade #%d: " "%lf"

输出格式要求:"Grade average = %.2f\n" "Number of failures = %d\n" 3、工地上要把两根长度分别为210cm 和66cm 的木棍切成等长的N段,要求长度L尽

可能长,求 L 及 N。输出格式要求:"L=%dcm\n" "N=%d 段\n" 4、牛顿迭代法利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组

指令(或一定步骤)进行重复执行,从而快速解决问题。用牛顿迭代法求方程

2x^3-4x^2+3x-6=0 在1.5 附近的根。输出格式要求:"方程的根=%6.2f\n"

5、圆周率(Pi)是一个在数学及物理学中普遍存在的数学常数,是精确计算圆周长、圆面积、球体积等几何形状的关键值。利用 pi/2 = (2/1)*(2/3)*(4/3)*(4/5)*(6/5)*(6/7)*...前100 项之积,编程计算p i 的值。输出格式要求:"pi = %f\n"

6、有30 个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50 先令:每个男

人花3 先令,每个女人花2先令,每个小孩花1先令,问男人、女人和小孩各几人?输出格式要求:"\tMEN\tWOMEN\tCHILDREN\n"

"-----------------------------------------\n"

"%2d:\t%d\t%d\t%d\n"

7、一球从100 米高度自由落下,每次落地后反弹回原高度的一半,再落下,求它在

第10 次落地时,共经过多少米?第10 次反弹多高?

8、有一个猜数字的游戏,甲在0到100 内随机选一个数,乙来猜。若没猜中,甲说

出新的范围,乙继续猜,直到猜中为止。编写程序实现这个游戏,并统计乙猜的次数。

输入格式要求:"请输入目标数字(0 到100 以内):" "%d" 输出格式要求:"目标数字在%d 到%d 之间" "猜对了!" "没猜对!" 9、商店出售金鱼。店主将养的一缸金鱼分五次出售:第一次卖出全部的一半加二分

之一条;第二次卖出余下的三分之一加三分之一条;第三次卖出余下的四分之一加四分之一条;第四次卖出余下的五分之一加五分之一条;最后卖出余下的 11 条。问原来鱼缸中

有多少条鱼?

输出格式要求:"There are %d fishes at first.\n"

实验五多文件结构设计

--------函数的应用

【目的与要求】

1、掌握C中函数的定义、调用及设计。

2、掌握函数嵌套调用、递归调用的设计。

3、掌握变量、函数的作用域及存储类。

【实验内容】

项目一:设计一个子函数对n个整数进行排序,由主函数从键盘接收若干个数,调用子函数进行排序,并在主函数中进行输出显示。

1、算法分析:

①子函数的设计以两个参数来实现,一个是接收主函数传来的数组首地址,另一个是持排序的整数个数,如 fun(int a[],int n);

②主函数的实现定义一整型数组,从键盘上接收若干个整数,调用子函数f un,再将最后的结果输出。

2、程序代码:

#include "stdio.h"

void fun(int a[],int n) // 选择排序算法

{int i,j,t;

for(i=0;i

for(j=i+1;j

if (a[i]>a[j])

{t=a[i];a[i]=a[j];a[j]=t;}

}

void main()

{ int a[10],i;

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

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

} printf("输入的数值序列

为:"); for(i=0;i<10;i++)

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

printf("\n");

fun(a,10); printf("输入的数值

序列为:"); for(i=0;i<10;i++)

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

}

项目二:从键盘输入一个字符,如果它是大写的英文字母,则将其转换成小写的英文字母,然后将转换的字符及其A SCII 码值显示在屏幕上;如果它是小写的英文字母,则将其转换成大写的英文字母,然后将转换的字符及其A SCII 码值显示在屏幕上;如果输入的是其它字符则显示输入错误。

**输入提示信息格式: 无

**输入数据格式要求: %c

**输出数据格式要求: 若输入的是大小写英文字母,则输出: "%c,%d"

若输入的是其它字符,则输出: "Input error!"

注:已知大写英文字母A的A SCII 码值是65

小写英文字母a的A SCII 码值是97

#include

char Change(char ch);

int main()

{

char ch;

scanf("%c",&ch);

ch=Change(ch);

if(ch!=-1)

printf("%c,%d\n", ch, ch);

else

printf("Input error!\n");

return 0;

}

char Change(char ch)

{

if (ch >= 'A' && ch <= 'Z')

{

ch = ch + 32;

return ch;

}

else if(ch >= 'a' && ch <= 'z')

{

ch=ch-32;

return ch;

}

else

{

return -1;

}

}

【实验分析与讨论】

1、被调函数的实现及调用过程。

2、简单递归问题的实现。

3、变量的作用范围的正确应用

【DIY】

一、程序填空:用递归实现一个正整数的倒序输出。如输入12345,则输出54321.

#include "stdio.h"

r(int m)

{ printf("%d", 1 );

C语言选择题题库

C语言选择题题库

C语言程序设计题库说明 一本题库适用对象 计算机应用技术计算机软件软件技术计算机网络技术与计算机控制技术等专业 二本题库包含有175道选择题 三本题库所有题目均附有答案

一、选择题 下列各题ABCD四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡的相应位置上,答在试卷上不得分。 1、不合法的整数是()。 A)0x35 B)43.6 C)0532 D)-346 2、下列合法的字符常量是()。 A)“f”B)x C)65 D)‘\Xab’ 3、设有整型变量x,单精度变量y=5.5,表达式x=float(y*3+((int)y%4))执行后,x的值为()。 A)17B)17.500000 C)17.5 D)1.5 4、在C语言中,负整数在内存中以()形式释放。 A)补码B)BCD码C)反码D)十进制数 5、在C语言中,要求参加运算的数必须是整数的运算符是()。 A)/ B)!C)%D)= = 6、()是C语言中非法的数据类型关键字。

A)float B)singed C)integer D)Char 7、现已定义整形变量int i=1;执行循环语句while(i++<5);后i的值为()。 A)1 B)5 C)6 D)以上三个答案都不正确 8、下列语句的输出结果是()。 printf(“%f\n”,(float)(2+4)/2); A)有语法错误不能通过编译B)3 C)3.0 D)3.000000 9、C语言中,整数-8在内存中的存储形式是()。 A)1111,1111,1111,1000B)1000,0000,0000,1000 C)0000,0000,0000,1000 D)1111,1111,1111,0111 10、设C语言中,int类型数据占2个字节,则long类型数据占()个字节。 A)1 B)2 C)8 D)4 11、若变量a已说明为float类型,则能实现将a 中的数值保留小数点后两位,第三位进行四舍五

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语言》实验指导书

内江职业技术学院 上机实验指导书 科目: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语言题库_选择题(1)

本卷共有4道大 一、单项选择题(25道小题,共50分) 1、以下说法中正确的是(C)(2分) A、C语言程序总是从第一个的函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义 C、C语言程序总是从main()函数开始执行 D、C语言程序中的main()函数必须放在程序的开始部分 2、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)(2分) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 3、以下选项中,不合法常量的是(B)(2分) A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0 4、C语言中最简单的数据类型包括(B)(2分) A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 5、能正确表示逻辑关系:“10≥=a≥=0”的C语言表达式是(D)(2分) A、10>=a>=0 B、a>=0 and a<=10 C、a>=0||a<=10 D、a>=0&&a<=10 6、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)A、6.500000B、6 C、5.500000 D、6.000000

7、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)(2分) A、INPUT x、y、z; B、scanf("%d%d%d",&x,&y,&z); C、scanf("%d%d%d",x,y,z); D、read("%d%d%d",&x,&y,&z); 8、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是(D)(2分)A、把x和y按从大到小排列B、把x和y按从小到大排列 C、无确定结果 D、交换x和y中的值 9、若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分)A、0B、0.5 C、1 D、2 10、设char ch='A';则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是(B)。(2分) A、A B、a C、Z D、z 11、执行程序段int a=-1,b=4,k;k=(++a<0)&&!(b-- <=0);printf(“%d %d %d\n”,k,a,b);后的输出结果是(D )。 (2分) A、1 0 4 B、1 0 3 C、0 0 3 D、0 0 4 12、设intx=1, y=1;表达式(!x||y--)的值是(B)。(2分) A、0B、1 C、2 D、-1 13、程序段intx=3;do{printf(“%d”,x-=2);}while(!(--x));的输出结果是(C)。(2分) A、1 B、30 C、1-2 D、死循环

C语言实验指导56(32+24)

前言 《程序设计语言(C)》课程是面向理工科的非计算机专业计算机基础教学的公共基础课程之一,本课程的任务是向学生介绍计算机程序设计的基本知识,使学生能够比较熟练地掌握C语言的语法规则及程序设计的基本方法与编程技巧,了解进行科学计算的一般思路。与课程配套的上机实验,是为培养学生应用计算机解决和处理实际问题的思维方法与基本能力,并初步积累编程经验,自己解决一些比较简单的程序课题,为结合本专业课程进一步学习和应用计算机打下基础。 要使实验达到应有的效果,在上机实验之前,必须知道本次实验的任务,根据实验任务,做好充分准备工作,只有这样才能做到目的明确,使实验达到应有的效果。上机前的准备工作包括以下几个方面: 1.复习和掌握与本次实验有关的教学内容; 2.根据实验的内容,对问题进行认真的分析,搞清楚要解决什么问题; 3.选用或设计适用的算法,编写程序代码。 上机实验结束后要撰写实验报告,实验报告的主要内容应包括如下几个方面: 1.实验目的 明确实验目的,以保证达到课程所指定的基本要求。在写实验报告时,要进一步确认是否达到了预期的目的。 2.实验内容 实验的目的是要通过解决一些具体问题来达到的。在实验报告中,实验内容是指本次实验中实际完成的内容。在每一个实验题目中,一般都提出一些具体要求,其中有些具体要求是为了达到实验目的而提出的,不仅有具体的实验题目,还应包括具体要求。 3.程序设计说明 包括程序功能说明、程序算法描述、程序代码设计(含完整代码)、程序运行、测试、运行结果分析。 上机实验编写程序代码时要养成良好的程序设计风格, 在上机输入源程序时要按照附录中“C语言编码规范”的要求来编写源代码文件。 按大纲要求,本实验指导共有12个实验,每个实验需要两个学时,共需24个学时。 2013-1-12 . i .

C语言选择题库答案

C语言选择题答案 1、在计算机内部,一切信息存取处理和传送的形式是:C A) ASCⅡ码 B) BCD码 C) 二进制 D) 十六进制 2、计算机的软件系统一般分为: C A) 系统软件、应用软件与各种字处理软件 B) 操作系统、用户软件与管理软件 C) 系统软件与应用软件 D) 操作系统、实时系统与分时系统 3、在C语言中,要求运算数必须是整型的运算符是:A A) % B) / C) < D) ! 4、下列语句中符合C语言语法的赋值语句是:D A) a=7+b+c=a+7; B) a=7+b++=a+7; C) a=7+b,b++,a+7 D) a=7+b;c=a+7; 5、如果按字长来划分,微机可以分为8位机`16位机`32位机和64位机. 所谓32位机是指该计算机所用的CPU: A A) 同时能处理32位二进制数 B) 具有32位的寄存器 C) 只能自理32位二进制定点数 D) 有32个寄存器 6、以下不正确的C语言标识符是____。 A(不能使用关键字) A) int B) a_1_2 C) ab1exe D) _x 7、、以下叙述正确的是______。 C A)在C程序中main函数必须位于程序的最前面 B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的错误 8、下列运算中,操作数只能是整型的________D

A)+ B)* C) / D) % 9、下列转义字符中错误的一个是____。C(\x后面应该是1到2位十六进制数) A) '\000' B) '\0014' C) '\x111' D) '\2' 10、以下叙述中正确的是_____ C A) C语言的源程序不必通过编译就可以直接运行 B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C) C源程序经编译形成的二进制代码可以直接运行 D) C语言中的函数不可以单独进行编译 11、以下是正确的C语言标识符是____。 B A) #define(系统关键字) B) _123 C) %d (%错) D) \n(\错) 12、下列关于C语言的叙述错误的是____ A A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 13、C语言中字符型(char)数据在内存中的存储形式是____。 D A) 原码 B) 补码 C) 反码 D) ASCII码 14、将字符g赋给字符变量c,正确的表达式是。 C(使用8位二进制码,最左边1位为0) A) c=\147 B) c="\147" C) c='\147' D) c='0147' 可以用以下程序来检验: #include void main() { char c='\147'; printf("%c\n", c); } 15、以下程序的输出为____A____ #include void main() {

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.wendangku.net/doc/1c209913.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语言实验指导(2017) (2)

《C 语言程序设计》实验指导 书 计算机科学与技术系 项响琴编

第一部分:《C语言程序设计》实验教学大纲 课程编号:041310107 课程名称:程序设计语言Ⅰ 总学分:2.5 总学负荷:70 自主学习:57 课内实验学时:35 一、本实验课的性质、任务与目的 本实验课目的是使学生掌握C语言编程的常用方法,熟悉该语言中的语法、词法规则,为以后进行软件开发和学习后继专业课程打下基础。通过学习能够运用 C 语言中的各个知识点编写能完成一定功能的程序。训练学生进行复杂程序设计的技能和培养良好程序设计的习惯,其重要程度决不亚于知识的传授。把高级语言的学习与程序设计、上机实践紧密地结合起来,以提高学生能灵活运用新的知识分析问题和解决问题的能力。 二、本实验课所依据的课程基本理论 本实验课基于 C 语言的语法和词法规则、数据的表示及算法的处理,而语法及算法正是高级语言程序设计的主要研究对象。《C 语言程序设计》的主要任务是:C 语言是一种应用广泛结构化程序设计语言,本课程介绍 C 语言的基本概念、基本语法和编程方法,重点描述 C 语言的结构化的特征,并通过本课程的学习,使学生掌握一定的结构化程序设计的知识,以及用C语言编写程序的能力。 三、实验类型与要求 在做每个实验之前,让学生对本次实验相关的内容进行复习、算法设计、流程图的设计,做好实验的准备工作。每一次实验内容和具体要求见实验任务书。

四、每组人数与实验学时数 实验每组1人。 五、考核方式与评分办法 课内实验成绩=出勤率*5%+实验报告*15%+平时表现*30%+现场答辩 *50% 自主实验成绩=实验代码*30%+现场答辩*50%+实验报告*20% 六、实验报告要求 1、实验报告编写要求: 实验报告格式规范,要求在w ord 中编写,文中不要有空行,统一使用A4 页面。 页边距:上下 2.5cm、下 2cm、左 2.5cm、右 2cm。标题:宋体、四号字、加粗、 1.5 倍行距。 正文:宋体、小四号字、1.2 倍行距。 流程图或框架图:绘图要规范,整洁。 2、实验报告内容 (1)实验目的与要求 (2)实验内容(实验题目、程序思路分析与流程图、程序源代码、实验测试数据、实验运行结果截图) (3)实验分析与小结(本小组实验过程中的出现的问题、产生的原因、解决方法以及未能解决的问题;实验结果分析;代码有待优化的思路) (4)其它(对本课程教学的建议或意见、与专业课学习及其它)

2020最新C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 精选考试类文档,如果需要,请下载,希望能帮助到你们! 2020最新C语言考试题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串

在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项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 6.下列C语言用户标识符中合法的是( B )。

A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 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 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

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程序运行环境 班级学号成绩 一、实验目的 1. 熟悉C语言Visual C++6.0调试环境。 2. 掌握C程序的编辑、调试及运行。 二、实验内容 项目1. 调试并运行下面程序,并写出运行结果: #include int main() { printf(“Good morning!\n”); printf(“Hello,world!\n”); return 0; } 运行结果(注意,按照屏幕输出格式写): 项目2. 调试并运行下面程序,并写出运行结果: #include int main() { int a , b , sum; /*定义变量*/ a=23; b=56; /*为变量赋值*/ sum=a+b; /*计算两个变量的和*/ printf(“sum is %d\n”,sum); /*输出计算结果*/ return 0; } 运行结果:

项目3. 调试并运行下面程序,并写出运行结果: #include int max(int,int); int main() { int a , b , c; /*定义变量*/ a=23; b=56; /*为变量赋值*/ c=max(a,b); /*调用max函数,将得到的值赋给c*/ printf(“max is %d\n”,c); /*输出c的值*/ return 0; } int max(int x,int y) /*定义max函数,函数值为整型*/ { int z; /*定义变量*/ if(x>y) z=x; else z=y; return(z); /*将z的值返回*/ } 运行结果: 三、提高部分 1.试想,如果求10个数中的最大者,则程序该如何编写。 程序代码 运行结果:

C语言选择题库

复习题 一、单项选择题(每题1分,共30分) 1、一个C语言程序是由()。 A.一个主程序和若干子程序组成B.函数组成 C.若干过程组成D.若干子程序组成 3、用来标识变量名、符号常量名、函数名、类型名、文件名、数组名的有效字符序列称为标识符。在C 语言中,规定标识符只能有字母、数值或下划线三类字符组成,且第一个字符必须为()或()。 A.字母,数字 B.数字,下划线 C.字母,下划线 D.字母,下划线,数字 5、C语言中,主调函数携带的参数列表称为实参,而被调用函数的参数列表习惯上称为()。 A.形式参数 B.值参 C.动态参数 D.静态参数 7、下列关于switch和break语句的结论中,只有()是正确的。 A.break语句是switch语句的一部分 B.在switch语句中可以根据需要使用或不使用break语句 C.在switch语句中必须使用break语句 D.以上三个结论中有两个是正确的 9、对于数组a[m][n]来说,使用数组的某个元素时,行下标最大值是(),列下标最大值是()。 A. m,n-1 B. m-1,n-1 C. m-1,n D. m,n 10、下面程序段的运行结果是()。 char a[7]=″abcedf″; char b[4]=″ABC″; strcpy(a,b); printf(“%c”,a[5]); A. d B. \0 C. e D. f 11、一维double型数组a长度为10,则实际所占内存字节数为()。 A. 20 B. 40 C. 60 D. 80 12、字符串a=“hello”,则函数调用strlen(a)的返回值为()。 A. 4 B. 5 C. 6 D. 4 13、在C语言中,&作为单目运算符时表示的是()。 A.地址与 B.取地址 C.输入地址 D.输出地址 14、对不同类型的数据有不同的格式字符。例如:()格式字符是用来输出十进制整数,()格 式字符是用来输出一个字符串。 A.c,s B.s,d C.d,c D.d,s 15、do-while语句的特点是()。

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语言》实验指导书

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

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

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

(完整版)C语言考试题库之判断题

三、判断题(10道小题,共10分) 1、C 语言具有简洁明了的特点。(1分) 正确 2、预处理命令的前面必须加一个“#”号。(1分) 正确 3、标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项。(1分) 正确 4、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。(1 分) 正确 5、continue 不是结束本次循环,而是终止整个循环的执行。(1分) 错误 6、在对数组全部元素赋初值时,不可以省略行数,但能省略列数(1分) 错误 7、.函数的实参传递到形参有两种方式值传递和地址传递(1分) 正确 8、直接访问就是直接利用变量的地址进行存取直接访问(1分) 正确 9、共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员。(1分) 正确 10、文件指针和位置指针都是随着文件的读写操作在不断改变。(1分) 错误 11、C 语言标准格式输入函数scanf() 的参数表中要使用变量的地址值。(1分) 正确 12、浮点型常量的指数表示中,e 是可以省略的。(1分) 错误 13、任何表达式语句都是表达式加分号组成的。(1分) 正确 14、在switch语句中,每一个的case常量表达式的值可以相同。(1分) 错误 15、do-while循环的while后的分号可以省略。(1分) 错误 16、用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志'\0'。正确 17、C语言函数返回类型的默认定义类型是void(1分) 错误 18、可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数(1分) 正确 19、枚举类型中的元素都具有一个整型值。(1分) 正确 20、C 语言是一种具有某些低级语言特征的高级语言。(1分) 正确 21、case语句后如没有break,顺序向下执行。(1分)正确

(完整版)C语言程序设计选择题库及答案

单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题, 应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodb start$it line# pow ??? aBc 3pai His.age while

【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

C语言实验指导及报告模板

C语言程序设计

附件1:实验报告模板 C语言程序设计 实验报告 实验一简单的C程序 教学班级:冶金136 学号:01 姓名:张博 课程教师:胡春安实验教师:胡春安 完成时间:2015-2016学年第1学期

实验一简单的C程序 实验时间:2机时 一、实验目的 1. 熟悉C程序编辑环境,掌握主要菜单项的操作和作用。 2. 熟悉编写一个C程序的上机过程(编辑、编译、链接和运行)。 二、实验意义 通过上机实验,加深对第一章所学基本知识:C语言的基本结构和简单C 程序的理解。通过调试简单的C程序,让学生对C程序的编辑、编译、链接和运行有一个直观的体验和熟悉,激发学习的好奇心和兴趣,为后面的全面学习奠定非常必要的基础。 三、实验内容 1.验证实验 (1)掌握程序的编辑、编译、连接、运行、调试过程,按以下步骤进行实验。 ?输入源程序 #include int main() { float a,b; a=12 b=10; c=a%b; printf("a=%d,b=%d,c=%d",a,b,c); return 0; } ?编译、链接及运行,并记录下列问题: ①您在编辑、编译该程序时,在输出窗口显示了几条错误信息?请记录在实验报告中。 C:\Users\h\Desktop\c\ex1\main.c||In function 'main':| C:\Users\h\Desktop\c\ex1\main.c|6|error: expected ';' before 'b'| C:\Users\h\Desktop\c\ex1\main.c|7|error: 'c' undeclared (first use in this function)| C:\Users\h\Desktop\c\ex1\main.c|7|note: each undeclared identifier is reported only once for each function it appears in| C:\Users\h\Desktop\c\ex1\main.c|7|error: invalid operands to binary % (have 'float' and 'float')| ||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===| 错误1:变量b前少了分号“;” 错误2:变量c未定义; 错误3:%运算符运算对象必须是整型数据。

大连理工大学c语言考试题库

2012c语言全校模拟 一、单项选择 C1.sizeof(float)是()。 A、一个浮点表达式 B、一个不合法的表达式 C、运算结果是一个整型表达式。 D、一种函数调用 B2. 下列数据中属于"字符串常量"的是( )。 A、'A' B、"ABC" C、ABC D、'ABC' B3. 用下面的scanf函数输入数据,使得i=10,k=15选择正确的键盘输入方法( ). (用"[CR]"表示回车,U表示空格) main() {int i,k; scanf("i=%d,k=%d",&i,&k); } A4. 逻辑表达式3<2||-1&&4>3-!0的值为:( ) A、1 B、3 C、0 D、2 C5. 下列运算符中是C语言关系运算符的是()。 A、& B、~ C、!= D、! D6.语句while(!E);中的表达式!E等价于()。 A、E==1 B、E!=0 C、E!=1 D、E==0 A7.以下正确的描述是( ). A、只能在循环体内和switch语句内使用break语句 B、continue语句的作用是终止整个循环的执行 C、从多层嵌套的外层循环中退出时,只能使用goto语句 D、在循环体内使用break和continue语句的作用相同

B8. 下面各语句中,能正确进行赋字符串操作的语句是( ). A、char s1[5][ ]={"ABCDE"}; B、char s2[6]={'A','B','C','D','E'}; C、char st[ ][ ]={"ABCDE"}; D、char s[5]={'A','B','C','D','E'}; A9.若有说明: int a[3][4]={0};则下面正确的叙述是()。 A、数组a中每个元素均可得到初值0 B、只有元素a[0][0]可得到初值0 C、数组a中各元素都可得到初值,但其值不一定为0 D、此说明语句不正确 B10.若有说明int a[3][4];则a数组元素的非法引用是()。 A、a[1][3] B、a[0][4] C、a[0][2*1] D、a[4-2][0] D11.执行下面程序后,输出结果是()。 main() { inta,b,c; a=45,b=27,c=0; c=max(a,b); printf("%d\n",c); } int max(intx,int y) { int z; if(x>y) z=x; else z=y; return(z); } A、72 B、18 C、27 D、45 B12. 以下正确的描述是:在C语言程序中()。 A、函数的定义可以嵌套,但函数的调用不可以嵌套 B、函数的定义不可以嵌套,但函数的调用可以嵌套 C、函数的定义和函数的调用均可以嵌套 D、函数的定义和函数的调用均不可以嵌套 B13. 在C语言的函数中,下列正确的说法是()。 A、形参可以是常量和变量 B、可以有也可以没有形参

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、对学生考试成绩进行排序(根据学号或各科成绩排序)

相关文档