C语言上机试题及答案_第1页
C语言上机试题及答案_第2页
C语言上机试题及答案_第3页
C语言上机试题及答案_第4页
C语言上机试题及答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

本文格式为Word版,下载可任意编辑——C语言上机试题及答案

试验一VisualC++6.0的使用及顺序结构程序设计

一、试验目的

1、把握启动和退出VC6的方法。2、熟悉VC6开发环境。

3、初步把握简单程序的上机操作基本步骤,熟悉C单文件程序的输入、编译、链接和运行过程。4、初步把握程序的编辑修改和调试。

5、熟练使用赋值运算、算术运算等表达式。

6、熟练使用标准输入、输出函数及各种数据类型的格式说明符。

二、试验内容

1、下面C语言程序,其功能是显示字符串“欢迎同学们来到华北水院计算中心!〞。

请同学们依照下面的试验指导学习VisualC++6.0的使用。

1.启动VisualC++6.0开发环境

(1)单击“开始〞按钮,选择“程序〞——〉“MicrosoftVisualStudio6.0菜单项,单击“MicrosoftVisualC++6.0〞,屏幕出现标题为“当时的提醒〞的窗口。(2)单击“终止〞按钮,关闭窗口,进入VC6.0开发环境的主窗口。2.使用VisualC++6.0对一个C程序进行编辑、编译、连接和运行。

⑴分析

VisualC++6.0中程序的开发过程与其它高级语言的开发过程相仿,都要经过编辑、编译、连接和运行四个步骤。⑵步骤①编辑

1

图1-1New对话框

编辑是将C源程序输入计算机的过程。在VisualC++6.0主界面下,点击File菜单,选择New菜单项,即可出现New对话框,如图1-1所示。在弹出窗口中的Files标签页下,选择C++SourceFile。在选项卡右面的File编辑框里输入文件名如“Exa.c〞,在Location编辑框里输入文件路径,如“d:\\test〞。点击OK按钮。将出现编辑窗口,如图1-2所示。在图1-2所示的右端编辑窗口里输入以下C源程序并保存文件。

includevoidmain(){printf(\}

图1-2编辑窗口

②编译

编译是使用系统提供的编译器将文本文件Exa.c生成机器语言的过程,结果为Exa.obj,由于没有得到系统分派的绝对地址,还不能直接运行,如图1-3所示。选择Build菜单下的CompileExa.c,计算机将完成对当前源程序的编译。按提醒建立默认工程空间。编译无错时,将源程序Exa.c编译为目标文件Exa.obj。编译结果如图1-4所示。假使出现运行错误,应当分析错误的原因,例如,是输入数据错误,还是代码错误;假使需要修改源程序文件,还需重新编译、链接和执行。改正编译窗口下方指出的两个错误,直至编译成功,如图1-5所示。

2

图1-3编译源程序

图1-4编译结果

3

图1-5编译成功③连接

连接是将目标文件Exa.obj转换为可执行文件Exa.exe的过程。如图1-6所示选择Build菜单下的BuildExa.exe。连接无错时,将目标文件Exa.obj连接为Exa.exe。

图1-6源程序

④运行

运行是执行可执行文件Exa.exe,屏幕输出运行结果。如图1-7所示选择Build菜单下的ExecuteExa.exe。

4

图1-7运行程序运行结果如图1-8所示:

图1-8运行结果

3.关闭系统工作区空间

单击“文件︱关闭工作区〞菜单命令,关闭系统工作区空间。此时读者可以开始输入调试第(2)个C程序文件。4.退出VC6.0开发环境

单击主窗口右上角的“关闭〞按钮,退出VC6.0。

5

2、验证程序,熟悉VC6.0编程环境及调试程序的步骤。

已知三角形三条边长a,b,c,计算三角形面积公式为:

s=0.5*(a+b+c)

area?s(s?a)(s?b)(s?c)

编写程序,要求从键盘输入a,b,c的值,计算并输出三角形面积。其中源程序代码如下:#include#includevoidmain(){

doublea,b,c,s,area;printf(\

scanf(\//输入三角形的三条边s=(a+b+c)/2.0;

area=sqrt(s*(s-a)*(s-b)*(s-c))//求三角形的面积prinf(\}

具体要求:

(1)在VC6.0环境中输入上述源程序。

(2)对源程序进行编译连接,若有错误请调试修改。(3)运行程序,并输入三条边长,观测程序运行结果。

图1-9为程序运行时,当输入三条边长分别为3,4,5时的运行结果,可作为参考。

图1-9上述程序的运行结果

6

三、问题探讨

1、使用printf函数输出数据时假使想使数据左对齐该如何设置?

2、使用scanf函数时,输入项为何必需是变量地址而不是变量名?

四、试验总结

1总结本次试验完成状况、相关知识把握状况

2总结本次试验编辑、编译、连接、运行所取得的经验3分析本次试验出现的主要错误最直接原因

试验二选择结构程序设计

一、试验目的

1、熟悉VC6.0编程环境。2、进一步熟悉用VC6.0调试C语言源程序的过程。3、熟练使用关系表达式和规律表达式作为if语句的条件判断。4、熟练把握if语句和switch语句的使用方法。

二、试验内容

1、身高预计

每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析说明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后身高与其父母身高和自身性别密切相关。

设faHeight为其父身高,moHeight为其母身高,身高预计公式为:男性成人时身高=(faHeight+moHeight)*0.54(cm)女性成人时身高=(faHeight*0.923+moHeight)/2(cm)

此外,假使爱好体育锻炼,那么可增加身高2%,假使有良好的卫生饮食习惯,那么可增加身高1.5%。

7

编程从键盘输入你的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否爱好体育锻炼(用字符型变量sports存储,输入字符Y表示爱好,输入字符N表示不爱好)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示爱好,输入字符N表示不爱好),利用给定公式和身高预计方法对你的身高进行预计。

程序代码:

:#includemain(){

charsex;/*孩子的性别*/

charsports;/*是否喜欢体育运动*/chardiet;/*是否有良好的饮食习惯*/floatmyHeight;/*孩子身高*/floatfaHeight;/*父亲身高*/floatmoHeight;/*母亲身高*/printf(\你是男孩(M)还是女孩(F):\

scanf(\在前加一个空格,将存于缓冲区的回车符读入*/printf(\你爸多高(cm):\scanf(\printf(\你妈多高(cm):\scanf(\

printf(\你喜欢运动吗(Y/N)?\

scanf(\在前加一个空格,将存于缓冲区的回车符读入*/printf(\你有一个良好的生活习惯吗(Y/N)?\

scanf(\在前加一个空格,将存于缓冲区的回车符读入*/if(sex=='M'||sex=='m')

myHeight=(faHeight+moHeight)*0.54;else

myHeight=(faHeight*0.923+moHeight)/2.0;if(sports=='Y'||sports=='y')

myHeight=myHeight*(1+0.02);if(diet=='Y'||diet=='y')

myHeight=myHeight*(1+0.015);

printf(\你将来的身高是%f(cm)\\n\}

设计多组测试数据对程序进行测试,并观测运行结果。将程序的运行状况写在下面。『运行结果:』

自己弄运行信息结果吧

2、使用switch语句实现下面程序。

8

输入一个学生的两门课成绩(百分制),计算该学生的总分并要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。总分在180分以上为‘A’,160~179分为‘B’,140~159分为‘C’,120~139分为‘D’,120分以下为‘E’。

具体要求:

①学生的两门课成绩通过键盘输入,成绩应当都为整数,输入之前要有提醒信息。

②若输入的成绩不是百分制成绩,则给出错误提醒信息,并且不再进行下面的等级评价;若输入的成绩是百分制成绩,则计算总分,并根据要求评价等级。

③按下面形式输出结果:

总分〉等级如:186〉A

把正确的程序源代码写在下面。程序代码:

#includemain(){intscore1,score2,sum,mark;printf(\请输入你的成绩:\scanf(\sum=score1+score2;mark=sum/10;/*采取整除方法,将mark取值压缩到有限的去值范围内*/switch(mark){case20:case19:case18:printf(\break;case17:case16:printf(\break;case15:case14:printf(\break;case13:case12:printf(\break;case11:case10:case9:case8:case7:case6:

9

}

case5:case4:case3:case2:case1:case0:printf(\break;default:printf(\输入错误\\n\/*处理非法数据*/}

设计多组测试数据对程序进行测试,并观测运行结果。将程序的运行状况写在下面。『运行结果:』

自己弄运行信息结果吧

三、问题探讨四、试验总结

1总结本次试验完成状况、相关知识把握状况

2总结本次试验编辑、编译、连接、运行所取得的经验3分析本次试验出现的主要错误最直接原因

在使用switch语句时,switch和case后值的类型要求以及default子句和break语句的位置有什么需要注意的地方?举例说明

试验三循环结构程序设计

一、试验目的

5、熟练把握while语句,do-while语句和for语句的格式和功能,能够用这些语句实现循环

结构程序设计的方法。6、熟练把握循环语句嵌套使用的基本形式,能够用循环语句实现多重循环。7、把握在循环结构程序设计中使用break语句和continue语句改变程序流程。8、通过编程和调试程序,加深对while语句、do?while语句和for语句的理解,学习编程

和测试的基本方法。9、试验前复习while语句、do?while语句和for语句的概念。

二、试验内容

1.打印100-200之间的所有素数(依照每行5个显示)

程序代码:

对程序进行测试,并观测运行结果。将程序的运行状况写在下面。『运行结果:』

10

3、编程实现输入8个学生某门功课的成绩,用函数求出平均分,并在主函数中输出平均分以及高于平均分的同学的成绩。并写出2组以上程序运行结果。

程序代码:

#include

floataverage(floatx[8]){floatsum;intk;sum=x[0];

for(k=1;kaver)

printf(\高于平均分:%f\\n\}

printf(\}

运行结果:』

16

三、问题探讨

1、举例说明自动变量和静态变量的区别。2、答:自动变量是指那些当程序的流程转到该函数时才开拓的单元,执行后又马上释放的变量。静态变量则是指在整个程序运行期间分派固定存储空间的变量。

四、试验总结

1总结本次试验完成状况、相关知识把握状况

2总结本次试验编辑、编译、连接、运行所取得的经验3分析本次试验出现的主要错误最直接原因

答:1.试验完成,知识还未完全把握。2.要注意书写格式的正确。

3.主要原因是对知识的不理解。

17

试验六使用指针的程序设计

一、试验目的

15、16、17、18、

把握指针的概念,会定义和使用指针变量;

能正确使用数组的指针和指向数组的指针变量;熟悉指针作为函数参数的定义和调用方法;

能正确使用字符串的指针和指向字符串的指针变量。

二、试验内容

1.分析下面的程序并上机运行程序,要求写出3组以上程序的运行结果。#includevoidmain(){

int*p1,*p2,*p;inta,b;

printf(\scanf(\p1=p2=if(a>b)

{p=p1;p1=p2;p2=

温馨提示

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

评论

0/150

提交评论