《九江学院13届c语言上机试题》由会员分享,可在线阅读,更多相关《九江学院13届c语言上机试题(49页珍藏版)》请在人人文库网上搜索。
1、高级语言程序设计实验指导学 院:信息科学与技术学院专 业: 信管 学 期:20132014学年第二学期教 师: 邵小兵 目录实验0 实验准备10.1 实验预备知识10.2 实验内容及步骤2实验1 熟悉C语言程序开发环境51.1 实验目的51.2 实验预习51.3 实验任务5实验2 数据描述72.1 实验目的72.2 实验预习72.3 实验任务72.4 实验心得12实验3 顺序结构程序设计133.1 实验目的133.2 实验预习133.3 实验任务133.4 实验心得17实验4 选择结构程序设计184.1 实验目的184.2 实验预习184.3 实验任务184.4 实验心得20实验5 循环结构程。
2、序设计215.1 实验目的215.2 实验预习215.3 实验任务215.4 实验心得26实验6 函数与编译预处理276.1 实验目的276.2 实验预习276.3 实验任务276.4 实验心得32实验7 数组337.1 实验目的337.2 实验预习337.3 实验任务337.4 实验心得37实验8综合实验388.1 实验目的388.2 实验预习388.3 实验任务38实验9 指针419.1 实验目的419.2 实验预习419.3 实验任务419.4 实验心得44实验10 结构体数据类型与链表4510.1 实验目的4510.2 实验预习4510.3 实验任务4510.4 实验心得47实验11 。
3、共用体数据类型4811.1 实验目的4811.2 实验预习4811.3 实验任务4811.4 实验心得49实验12 文件5012.1 实验目的5012.2 实验预习5012.3 实验任务5012.4 实验心得52实验13 综合实验5313.1 实验目的5313.2 实验预习5313.3 实验任务53实验0 实验准备院(系):信息科学与技术学院 课程名称: 高级语言程序设计 教师签名:班级A1321学号27实验室601专业信管姓名王俊茗计算机号所用软件Vc+ 6.0实验成绩0.1 实验预备知识1双击桌面Visual C+快捷方式进入Visual C+,或通过执行“开始程序Microsoft Vi。
4、sual Studio 6.0 Microsoft Visual C+6.0”或执行文件C:Program FilesMicrosoft Visual StudioCOMMONMSDev98BinMSDEV.EXE。2单击“文件”菜单的“新建”命令。3在打开的“新建”对话框中选择“文件”标签。4选择C+ Source File,在目录输入栏选择文件保存位置,然后在文件输入栏中输入文件名,扩展名为.c (例如first.c) ,单击确定按钮。如图所示:5在源窗口中输入源程序,如图所示。6编译程序:按“Ctrl+F7”或通过“编译”菜单中的“编译”命令,或使用工具栏中的相应工具进行编译编译连接运行。
5、若程序有错则找到出错行修改程序。7连接:若程序没有语法错误,则可按功能键或执行“编译”菜单中的“构件”命令或通过工具栏中的相关工具(编译工具右边工具),进行连接生成可执行文件。8运行程序:按组合键“Ctrl+F5”,或通过“编译”菜单中的执行命令,或通过工具栏中的“!”工具运行程序。0.2 实验内容及步骤1理解并体会C语言程序开发步骤图请在以下程序的调试运行过程中去体会如下图1-6所示的C语言的开发步骤。无开始编辑编译源程序hello.c有错?有执行机器语言目标程序hello.obj可执行目标程序hello.exe库函数和其他目标程序不正确正确结果正确?结束连接图1-6 C程序的开发步骤2输入。
6、下列程序并运行,观察程序的输出结果。人工分析结果实验运行结果#include/*预处理命令*/void main( )/主函数定义printf(用户登录n);printf(-n);printf(请输入用户名:n);printf(-n);printf(请输入您的密码:n);用户登录请输入用户名:请输入您的密码:用户登录请输入用户名:请输入您的密码:思考:将程序中的“n”去掉,观察程序的运行结果,并和源程序的运行结果对照比较后,分析产生不同结果的原因。答:”n”是换行字符小锦囊:(1)“/*预处理命令*/”和“/主函数定义”是注释部分。在Visual C+ 6.0开发环境中,注释的标志有两种:一种。
7、是“/*/”,另一种是以“/”引导注释内容。(2) stdio.h是头文件,C提供了多个头文件,#include是预处理命令,将各头文件用#include命令包含在程序的首部就可直接使用了,它不是C语句,其后不能加“;”。3以下程序是一个简单的员工工资管理系统软件的首页,请按原程序输入并运行,观察所显示的内容。#includevoid main( )printf(*n);printf(欢迎使用学生成绩管理系统!n);printf($ $n);printf($1:用户身份验证 $n);printf($ $n);printf($2:增加/删除学生子系统 $n);printf($ $n);print。
8、f($3:成绩处理子系统 $n);printf($ $n);printf($4:查询子系统 $n);printf($ $n);printf($5:退出系统 $n);printf(*n);4请按源程序输入并运行程序,观察输出结果。#includevoid main( )int a=3,b=4;/定义整型变量a,b,值分别是3和4printf(%d,%dn,a,b);/按要求格式输出数据printf(a=%d,b=%dn,a,b); /按要求格式输出数据程序的输出结果为:3,4a=3,b=4思考:(1)删除“,b=4”,再编译程序,阅读错误提示,并根据错误提示进行修改。作为程序设计者,应该具备根据。
9、错误提示或程序运行结果,查找并修正程序中错误的能力。(2)删除“=4”,编译并运行程序,观察程序的运行结果,并思考其原因。小锦囊:(1) printf()函数所要显示的信息不仅可以是一个字符串,而且还可以是变量的值或数据。更有趣的是,它可以按照用户定义的某种格式输出。(2) 在进行程序设计时,应该注意养成良好的程序设计风格。 一般一个语句占一行。 在程序中添加适当的注释。 按照缩进格式书写程序。5模仿以上实验中的程序,编写一个程序,要求可以在屏幕上分行显示出自己的姓名、学号、所在院系、所学课程和E-mail地址,发挥想象,使显示形式美观而不单调。6编写程序,输出一个由“*”组成的菱形。温馨提示。
10、:如果你是第一次接触计算机软件编程,不要期望立即写出一个实用的程序,也不必惧怕自己不会写程序,编程本就是一个循序渐进的过程,程序设计不是听会的,也不是看会的,而是自己上机练会的。请根据教师的引导,独立自主、大胆地进行所要求的实验工作。动手才能找到感觉,动手才能找到自信,动手才能有成就感。实验1 熟悉C语言程序开发环境院(系):信息科学与技术学院课程名称:高级语言程序设计教师签名:班级学号实验室专业姓名计算机号所用软件实验成绩1.1 实验目的1了解和掌握C语言的主要特点。2熟悉C语言的程序开发环境,掌握C语言的上机步骤。3熟练掌握源程序的建立、编辑、编译、保存和运行的基本方法。4学习动态调试程序。
11、的方法,熟练掌握单步执行程序和设置断点执行程序的操作。1.2 实验预习1熟悉VC+的启动和退出以及VC+中的编辑、编译、连接和运行命令。2了解下列命令及函数:include、main、printf、scanf。3熟悉Visual C+环境下每个菜单项的功能及相关命令对应的操作。1.3 实验任务1. 预测结果并上机验证。源程序人工分析结果实验运行结果#include main()printf(“*n”);printf(“I am a student!n”);printf(“*n”);“*I am a student!“*”“*I am a student!“*”2实验指导书P61【上机题】,在V。
12、C+环境下建立以下C语言源程序。#include stdio.hmain()int a,b,c;printf(请输入数据:n);scanf(%d %d,&a,&b);c=a+b;printf(c=%dn,c);键盘输入格式为:___英文____________程序运行结果为:__请输入数据:C=2_____________3实验指导书P64【上机题】,在VC+环境下建立以下C语言源程序,学习调试程序的方法。#include stdio.hmain()int n,s;n=s=0;while(s#includemain()int a,b,sum;scanf(“%d,%d”,&a,&b);sum=a。
13、+abs(b);printf(“a add b is %d”,sum);键盘输入格式为:_____英文__________程序运行结果为:_a add b is 3______________实验2 数据描述院(系):信息科学与技术学院课程名称:高级语言程序设计教师签名:班级学号实验室专业姓名计算机号所用软件实验成绩2.1 实验目的1认识C语言,熟悉C语言的语法结构。2掌握C语言中4种基本数据类型的特点、数据类型变量的定义及使用。3掌握不同数据类型运算时,数据类型的转换规则。4熟练掌握赋值语句。5掌握C语言中表达式语句以及不同运算符的运算规则和优先级。2.2 实验预习1各种数据类型变量的定义形。
14、式;熟悉下列标识符的含义。int、short (int)、long (int)、unsigned (int)、float、double、char、void2各种数据类型的取值范围。3各类运算符的优先级和结合规则。4常量与变量的区别和联系。2.3 实验任务1实验指导书P22【上机题2】。在提示/*blank*/下面填上合适的内容编写程序实现在屏幕上显示以下结果。#include stdio.hvoid main()/*blank*/__________________________________________________;/*blank*/_______________________。
15、___________________________;/*blank*/__________________________________________________;2实验指导书P22【上机题3】。输入并运行以下程序,分析程序运行结果。#include stdio.hvoid main()int a,b,he,ca,ji,sh,yu;a=25;b=4;he=a+b;ca=a-b;ji=a*b;sh=a/b;yu=a%b;printf(%d+%d=%dn,a,b,he);printf(%d-%d=%dn,a,b,ca);printf(%d*%d=%dn,a,b,ji);printf(%。
16、d/%d=%dn,a,b,sh);printf(%d%d=%dn,a,b,yu);表2-1 实验结果记录表人工分析结果实验运行结果25+4=2925-4=2125*4=10025/4=625%d=425+4=2925-4=2125*4=10025/4=625%d=4思考:如果要求最后一行的输出结果为:25%41,则输出语句应改为?答:printf(%d%d=%dn,a,b,yu);3实验指导书P24【上机题8】。输入并运行以下程序。#include stdio.hvoid main()int a1,a2;float b,c;b=23.52,c=67.54;a1=(int)(b+c);a2=(i。
17、nt)b+(int)c;printf(%d,%dn,a1,a2);人工分析结果:___91,90______________实验运行结果:__91,90____________思考:变量a1,a2的值不同的原因是?答:a2结果是因为在吧,b,c加之前就取整了;a1是b,c加后再取整4分析程序,并上机验证运行结果。#include void main()int a=10,x=5,y=6;a+=a*=6;x=y+;y=+x;a=x+y;printf(%d,%d,%dn,a,x,y);人工分析结果:___14,8,7____________实验运行结果:______14,8,7_________5实。
18、验指导书P25【上机题12】。输入并运行以下程序。#include stdio.hvoid main()int a=78,b=34;int c,d;c=(ab)?a:b);d=(ab)?a:b);的功能答:判断ab是否真,若是,语句a,否语句b6预测结果并上机验证(1) main()int a,b;a=b=3;printf(“a=%d,b=%d”,a,b);(2)若将以上程序进行改写,编辑如下:main()int a,b;a=3;b=3.1;printf(“a=%d,b=%d”,a,b);题号人工分析结果实验运行结果(1)a=3,b=3a=3,b=3(2)a=3,b=3a=3,b=3由此知,若。
19、赋值号左右数据类型不一致时,c语言将 默认为整型 7现有程序如下,分析填空:人工分析结果实验运行结果1 main()2 3 int a=1,b=2;4 printf(“%d”,(a=a+b,b=b+a);5 55若将以上程序第4行进行改写,编辑如下:printf(“%d”,a=a+b,b=b+a);人工分析结果实验运行结果44对比以上两程序,结果不同的原因在于 没()从后往前算,有()从前往后算 8若有以下程序段,分析c2的值: int c1=2,c2;c2=1.0/c1*c1;人工分析结果实验运行结果11若将程序段改为:c2=1/c1*c1;人工分析结果实验运行结果00分析c2所得结果,其中。
20、的关键在于 运算的顺序与整型转换 9现有程序如下:main()int a=7, b=10;a=a+b; b=a-b; a=a-b;printf(“%d,%dn”, a, b );程序运行的功能是: 交换ab的值 注意:可修改a、b两数的值仔细观察。10. 现有程序如下,分析填空:人工分析结果实验运行结果main() int a=0; a+=(a=8);printf(%dn,a);81611. 现有程序如下,分析填空:人工分析结果实验运行结果main()int a=2,b=5;int m=3,n;double c=2.1,d=4.5;n=a/m+b*c-d/m;printf(“%d”,n);99。
21、12.现有程序如下,分析填空:人工分析结果实验运行结果main() int x=1,y=2;printf(“%d %dn”,+x,y+);2 2 2 213.思考题:改错题(以下程序有多处错误,上机调试。将正确的程序记录在下方。要求不能删减已有内容。)源程序正确的程序应改为:#include #define STA 30main()int a,b=3;A=3*PI*SIN(b);STA=3*STA;printf(“%dn”,2a);printf(“%d”,b);#include #define STA 30#define PI 3.14main()int a,b=3;a=3*PI*sin(b)。
22、;b=3*STA;printf(“%dn”,2*a);printf(“%d”,b);2.4 实验心得实验3 顺序结构程序设计院(系):信息科学与技术学院课程名称:高级语言程序设计教师签名:班级学号实验室专业姓名计算机号所用软件实验成绩3.1 实验目的1熟悉printf函数及printf函数的各种格式控制符。2熟悉scanf函数及scanf函数的各种格式控制符,比较printf函数和scanf函数格式控制符的相同点和不同点。3掌握顺序结构程序设计方法及执行过程。4掌握一些简单的算法。5能设计简单的顺序结构程序。3.2 实验预习1熟悉下列函数:putchar、getchar、printf、scan。
23、f。2了解顺序结构程序的执行过程。3了解程序的跟踪调试和变量值的监视并能够熟练操作。4了解顺序结构程序的一般构成。3.3 实验任务1实验指导书P28【上机题4】。阅读程序,写出运行结果并上机调试。main() int a;float b;printf(“Enter a and b:”);scanf(“%d%f”,&a,&b);printf(“na=%d,b=%fn”,a,b);运行程序,若输入为“11 23”,则输出结果为____a=11,b=23.____________将输入语句改为“scanf(“%3d%5f”,&a,&b);”,运行程序,若输入”1 123.4”,则输出结果为__a=1。
24、,b=123.______________在上题的前提下,运行程序,若输入“”,则输出结果为__a=123,b=457._____________2实验指导书P28【上机题6】。调试程序并分析程序运行结果,每个空格用一个|_| 来表示。#include stdio.hvoid main()int x=123;float y=123.567;printf(%d,%5dn,x,x);printf(%f,%13f,%e,%15e,%g,%6gn,y,y,y,y,y,y);printf(%9.5f,%8.2f,%.0f,%-10.2fn,y,y,y,y);printf(%.5sn,abcdefgh);。
25、表3-1 实验结果记录表人工分析结果123, 123123., 123.,1.e+002, 1.e+002,123.567,123.567123.56700, 123.57,124,123.57abcde实验运行结果123, 123123., 123.,1.e+002, 1.e+002,123.567,123.567123.56700, 123.57,124,123.57abcde3输入一个华氏温度,要求输出摄氏温度,公式为:C=。要求输出结果保留到小数点后两位。已知程序段中有三处错误,由注释语句/*found*/提示下一条语句有错误,请修改程序中的错误并记录程序运行结果。源程序错误原因正确语。
26、句#include main()float f,c;/*found*/scanf(%d,f);/*found*/c=5/9(f-32); /*found*/printf(f=%f,c=%fn,c,f); 输入没取地址scanf(%d,&f);乘法没*号c=5/9*(f-32);c,f取反了5.0printf(f=%f,c=%fn,f,c);c=5.0/9(f-32);实验运行结果为:________________________________________________4实验指导书P30【上机题12】。在提示/*blank*/下面填写合适的内容完成程序设计。编写程序:从键盘输入两个实数。
27、a和x,按公式计算并输出y的值,。要求a和x从键盘输入。当a=6.4,x=3.4时,y=_______._____________。#include #include main()float a,x,y;/*blank*/scanf(__%lf,%lf________,&a,&x); /*blank*/y=______pow(a,5) + sin(a*x) + log(a+x) +pow(e,a*x); _______;printf(y=%fn,y);5在提示/*blank*/下面填写合适的内容完成程序设计。已知a=3.5,b=5.4,c=4.3,编程求以a,b,c为边长的三角形的面积Area。
28、=____________________。提示:,其中。#include /*blank*/___#include________________/*需要添加头文件*/main()float a,b,c,s,area;scanf(%f,%f,%f,&a,&b,&c);/*blank*/____s=(a+b+c)/2; ________________;/*blank*/area=sqrt____(t);________________;/*库函数sqrt的含义是开平方*/printf(area=%fn,area);6.单步跟踪下面程序的执行,每执行一条语句就查看各变量的值。运行时输入一个三位。
29、的整数。单步跟踪程序时填写下表,同时分析程序的功能。#include”stdio.h”void main()int n,x1,x2,x3,y;printf(“please input number n”);scanf(“%3d”,&n);x1=n/100;x2=n/10%10;x3=n%10;y=x3*100+x2*10+x1;printf(“y=%3d”,y);nX1X2X3y程序的功能是: 7. # include void main( ) char ch;ch=getchar();putchar(ch);运行时如果从键盘输入数据98,你预测的输出结果是 98 实际的输出结果为 9 原因在。
30、于 getchar接受的是字符 8.#include void main()int a,b,c;scanf(%d,%o,&a,&b);c=a*b;printf(%d,%on,c,c);运行时如果输入数据:12,12你预测的结果是 120 170 ,实际的输出结果是 120 170 。9.#include void main()int x,n1,n2,n3,y;scanf(%3d,&x);n1=x/100;n2=x/10%10;n3=x%10;y=n3*100+n2*10+n1;printf(%dn,y);上述程序在运行时如果从键盘输入数据8265,则x的值为_8265______输出的结果为_。
31、__628_______ , 在变量n1、n2、n3中,_n3____是x的百位数,___n2__是x的十位数,___n1__是x的个位数。10. 编辑程序,输入学生语、数、英三门课程成绩(考虑数据类型,整型和实型),并输出其总分和平均分#include main()double CH,MA,EN,average,sum;scanf(%ld,%ld,%ld,&CH,&MA,&EN);sum=CH+MA+EN;average=sum/3.0;printf(sum=%ld,average=%ldn,sum,average);3.4 实验心得实验4 选择结构程序设计院(系):信息科学与技术学院课程名。
32、称:高级语言程序设计教师签名:班级学号实验室专业姓名计算机号所用软件实验成绩4.1 实验目的1掌握C语言的逻辑运算符和逻辑表达式,学会表示逻辑值的方法。2掌握正确使用关系运算符和关系表达式。3熟练掌握条件语句,学习选择结构程序设计的方法及应用。4熟悉多分支选择的switch语句。5进一步学习跟踪调试程序,熟悉选择结构程序段中语句的执行过程。4.2 实验预习1熟悉逻辑运算符和逻辑表达式、关系运算符和关系表达式。2熟悉下列语句:if、if-else、switch、break。4.3 实验任务1输入并运行以下程序,分析程序运行结果。#include void main() int a,b;scanf。
33、(%d,&a); /*输入a*/if(a%2!=0) /*如果a为奇数*/ b=a*a;printf(b=%dn,b); 表4-1 实验结果记录表输入数据人工分析结果实验运行结果3b=9b=945b=25b=2562阅读程序,上机调试并记录程序结果。源程序人工分析结果实验运行结果#include main( ) int x=0; if(x=0) printf(x=%dn,x);else printf(x=%dn,x+1); X=0X=0#include main( ) int x=0; if(x=0) printf(x=%dn,x);else printf(x=%dn,x+1);X=1X=1思。
34、考:以上两题告诉了你什么:If语句中=号不表示等于,=号才表示等于 3阅读程序,上机调试并记录程序结果。源程序人工分析结果实验运行结果main()int a=4,b=3,c=5,t=0;if(abc);printf(%dn,d);30()里面的语句正确,语句为05.若从键盘输入58,判断以下程序输出的结果。源程序人工分析结果实验运行结果main() int a;scanf(%d,&a);if(a50) printf(%d,a);if(a40) printf(%d ,a);if(a30) printf(%d ,a);aaaaaa6. 阅读程序,上机调试并记录程序结果。源程序人工分析结果实验运行结。
35、果main() int x=1,a=0,b=0;switch(x) case 0: b+;case 1: a+;case 2: a+;b+; printf(“a=%d,b=%dn ”,a,b);a=2, b=1a=2, b=17. 阅读程序,上机调试并记录程序结果。源程序人工分析结果实验运行结果实验告诉我们main() int i=1,j=1,k=2;if(j+|k+)&i+); printf(%d,%d,%dn,i,j,k);2222228. 阅读程序,并回答问题main( ) int a,b,max,min;scanf(%d%d,&a,&b);if(ab)max=a;elsemax=b; 。
36、printf(max=%dn,max);问题:a、 此程序的功能是 求输入的数据中的最大值 b、请用条件表达式语句(?:)替换if语句,修改程序使之完成相同的功能,程序语句是?ab?max=a:max=b;9.编写程序:(1)输入两个整数a和b,若a=b时,求其积c并显示;若avoid main()int a,b,c;scanf(%d%d,&a,&b);if (ab)c=a*b;else c=a/b;printf(%dn,c);(2)输入一个整数并赋给a,当a=90时,输出字符A;a=80时,输出字符B;a=70时,输出字符C;a=60时,输出字符D;amain ()int a;scanf(%。
37、d,&a);if(a=90)printf(A);else if(a=80)printf(B);else if(a=60)printf(C);elseprintf(D);(3)输入a、b、c三个整数,输出最大数。#includevoid main()int a,b,c,max;printf(请输入3个整数n);scanf(%d,%d,%d,&a,&b,&c);max=a;if(max=90分时,等级为A;成绩80main( )int n,r,s=0;printf(Please input the data:);scanf(“%d”,&n); /*填空位置(1),语句功能:从键盘输入任意的正整数n。
38、*/if(__n0___) /*填空位置(2),表达式功能:判断输入的数据n是否合法*/while(n0)r=n%10; /*填空位置(3),语句功能是: */s=s+r;n=n/10; /*填空位置(4),语句功能是: */printf(sum=%dn,s);3 3 12 2 5 1 6elseprintf(The data is wrong!n);表5-1 实验任务1结果记录表填空位置填空语句输入数据人工分析结果实验运行结果(1)Scanf(“%d”,&n)12366(2)n00The data is wrong!The data is wrong!(3)r取n被10除的余数-8The d。
39、ata is wrong!The data is wrong!(4)n取n被10除的整数327692727运行4次,分别输入:程序,并分析程序运行结果。#include stdio.hmain()int i;for(i=32;i 63?64 65A 66B 67C 68D 69E 70F 71G72H 73I 74J 75K 76L 77M 78N 79O80P 81Q 82R 83S 84T 85U 86V 87W88X 89Y 90Z 91 92 93 94 95_96 97a 98b 99c 100d 101e 102f 103g104h 105i 106j 107k 108l 109m 110n 111o112p 113q 114r 115s 116t 117u 118v 119w120x 121y 122z 123 124| 125 126 127128。