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

下载本文档

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

文档简介

10试验一VisualC++6.0的使用及挨次构造程序设计一、试验目的1、把握启动和退出VC6的方法。2、生疏VC6开发环境。3、初步把握简洁程序的上机操作根本步骤, 生疏C单文件程序的输入、编译、链接和运行过程。4、初步把握程序的编辑修改和调试。5、娴熟使用赋值运算、算术运算等表达式。6、娴熟使用标准输入、输出函数及各种数据类型的格式说明符。二、试验内容1C“。VisualC++6.0的使用。启动VisualC++60开发环境单击“开头”按钮,选择“程序” ——〉“Microsoft Visual Studio 6.0 菜单项,单击“MicrosoftVisualC++6 0”,屏幕消灭标题为“当时的提示”的窗口。单击“完毕”按钮,关闭窗口,进入 VC6.0开发环境的主窗口。使用VisualC++6.0 对一个C程序进展编辑、编译、连接和运行。⑴分析VisualC++6.0 中程序的开发过程与其它高级语言的开发过程相仿,都要经过编辑、编译、连接和运行四个步骤。⑵步骤①编辑图1-1New 对话框编辑是将C源程序输入计算机的过程。在 VisualC++6.0 主界面下,点击File菜单,选择New菜单项,即可消灭New对话框,如图1-1所示。在弹出窗口中的 Files标签页下,选择C++SourceFile 。在选项卡右面的File编辑框里输入文件名如a.c,在Location 编辑框里输入文件路径,如“d:\test”。点击OK按钮。将消灭编辑窗口,如图 1-2所示。在图1-2所示的右端编辑窗口里输入以下 C源程序并保存文件。includeinclude<stdio.h>voidmain{printf(“欢送同学们来到华北水院计算中心!“);}②编译

1-2编辑窗口编译是使用系统供给的编译器将文本文件 Exa.c生成机器语言的过程,结果为 Exa.obj,由于没有得到系统安排确实定地址,还不能直接运行,如图 1-3所示。选择Build菜单下的CompileExa.c,计算机将完成对当前源程序的编译。按提示建立默认工程空间。编译无错时,将源程序Exa.c编译为目标文件Exa.obj。编译结果如图1-4所示。假设消灭运行错误,应当分析错误的缘由,例如,是输入数据错误,还是代码错误;假设需要修改源程序文件,还需重编译、链接和执行。改正编译窗口下方指出的两个错误,直至编译成功,如图 1-5所示。1-3编译源程序1-4编译结果1-5编译成功③连接连接是将目标文件Exa.obj 转换为可执行文件Exa.exe 的过程。如图1-6所示选择Build菜单下的Build Exa.exe。连接无错时,将目标文件 Exa.obj 连接为Exa.exe。1-6源程序④运行运行是执行可执行文件 Exa.exe,屏幕输出运行结果。如图 1-7所示选择Build菜单下的Execute Exa.exe。1-7运行程序运行结果如图1-8所示:3.关闭系统工作区空间单击“文件︱关闭工作区”菜单命令,关闭系统工作区空间。此时读者可以开头输入调试第(2) 个C程序文件。退出VC6.0开发环境单击主窗口右上角的“关闭”按钮,退出 VC6.0。2、验证程序,生疏VC6.0编程环境及调试程序的步骤。已知三角形三条边长abc,计算三角形面积公式为:s=0.5*(a+b+c)s(ss(sa)(sb)(sc)编写程序,要求从键盘输入 a,b,c的值,计算并输出三角形面积。其中源程序代码如下:#include<stdio.h>#include<math.h>voidmain{double a,b,c,s,area;printf(“inputa,b,c:“);scanf(“%lf,%lf,%lf“,&a,&b,&c); //输入三角形的三条边s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c)) //求三角形的面积prinf(“area=%f\n“,area);}具体要求:〕在VC6.0环境中输入上述源程序。〕对源程序进展编译连接,假设有错误请调试修改。(3) 运行程序,并输入三条边长,观看程序运行结果。图1-9为程序运行时,当输入三条边长分别为 3,4,5时的运行结果,可作为参考。图1-9 上述程序的运行结果三、问题争论1printf函数输出数据时假设想使数据左对齐该如何设置?2、使用scanf函数时,输入项为何必需是变量地址而不是变量名?四、试验总结总结本次试验完成状况、相关学问把握状况总结本次试验编辑、编译、连接、运行所取得的阅历分析本次试验消灭的主要错误最直接缘由一、试验目的1VC6.0编程环境。2、进一步生疏用VC6.0调试C3、娴熟使用关系表达式和规律表达式作为 if语句的条件推断。4、娴熟把握if语句和switch语句的使用方法。二、试验内容1、身高推想每个做父母的都关心自己孩子成人后的身高,据有关生理卫生学问与数理统计分析说明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育熬炼等。小孩成人后身高与其父母身高和自身性别亲热相关。faHeight为其父身高,moHeight为其母身高,身高推想公式为:男性成人时身高=(faHeight+moHeight)*0.54(cm)女性成人时身高=(faHeight*0.923+moHeight)/2(cm)此外,假设宠爱体育熬炼,那么可增加身高 2%,假设有良好的卫生饮食习惯,那么可增加身高1.5%。编程从键盘输入你的性别〔用字符型变量sex存储,输入字符F表示女性,输入字符M示男性〕、父母身高〔用实型变量存储,faHeight为其父身高,moHeight为其母身高〕、是否宠爱体育熬炼〔用字符型变量sports存储,输入字符YN〕、是否有良好的饮食习惯等条件〔用字符型变量diet存储,输入字符Y表示宠爱,输入字符N不宠爱〕,利用给定公式和身高推想方法对你的身高进展推想。程序代码::#include<stdio.h>main{charsex;/*孩子的性别*/charsports;/*是否宠爱体育运动*/chardiet;/*是否有良好的饮食习惯*/floatmyHeight;/*孩子身高*/floatfaHeight;/*父亲身高*/floatmoHeight;/*母亲身高*/printf(“你是男孩(M)还是女孩(F):“);scanf(“%c“,&sex);/**/printf(“你爸多高(cm):“);scanf(“%f“,&faHeight);printf(“你妈多高(cm):“);scanf(“%f“,&moHeight);printf(“你宠爱运动吗(Y/N)?“);scanf(“%c“,&sports);/**/printf(“你有一个良好的生活习惯吗(Y/N)?“);scanf(“%c“,&diet);/**/if(sex==”M”||sex==”m”)myHeight=(faHeight+moHeight)*0.54;elsemyHeight=(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“,myHeight);}设计多组测试数据对程序进展测试,并观看运行结果。将程序的运行状况写在下面。自己弄运行信息结果吧2switch输入一个学生的两门课成绩〔百分制〕,计算该学生的总分并要求输出成绩等级‘B’C’‘D’、‘E’。总分在180A’,160~179B’,140~159C’,120~139D’,120E’。具体要求:①学生的两门课成绩通过键盘输入,成绩应当都为整数,输入之前要有提示信息。②假设输入的成绩不是百分制成绩,则给出错误提示信息,并且不再进展下面的等级评价;假设输入的成绩是百分制成绩,则计算总分,并依据要求评价等级。③按下面形式输出结果:总分 〉等级如:186 把正确的程序源代码写在下面。程序代码:#include<stdio.h>main{intscore1,score2,sum,mark;printf(“请输入你的成绩:“);scanf(“%d%d“,&score1,&score2);sum=score1+score2;mark=sum/10; /*mark取值压缩到有限的去值范围内*/switch(mark){case20:case19:case18:printf(“%d >A\n“,sum);break;case17:case16:printf(“%d >B\n“,sum);break;case15:case14:printf(“%d >C\n“,sum);break;case13:case12:printf(“%d >D\n“,sum);break;case11:case10:case9:case8:case7:case6:case5:case4:case3:case2:case1:case0:printf(“%d-->E\n“,sum);break;default:printf(“输入错误\n“); /*处理非法数据*/}}设计多组测试数据对程序进展测试,并观看运行结果。将程序的运行状况写在下面。自己弄运行信息结果吧三、问题争论在使用switch语句时,switchcase后值的类型要求以及default子句和break语句的位置有什么需要留意的地方?举例说明四、试验总结总结本次试验完成状况、相关学问把握状况总结本次试验编辑、编译、连接、运行所取得的阅历分析本次试验消灭的主要错误最直接缘由一、试验目的5、娴熟把握whiledo-while语句和for语句的格式和功能,能够用这些语句实现循环构造程序设计的方法。6、娴熟把握循环语句嵌套使用的根本形式,能够用循环语句实现多重循环。7、把握在循环构造程序设计中使用 break语句和continue语句转变程序流程。8、通过编程和调试程序,加深对 while语句、do…while语句和for语句的理解,学习编程和测试的根本方法。9、试验前复习whiledowhile语句和for语句的概念。二、试验内容 5〕程序代码:对程序进展测试,并观看运行结果。将程序的运行状况写在下面。编程输出如下上三角形式的九九乘法表。123456789---------12345678946810121416189121518212427162024283236253035404536424854495663647281程序代码:对程序进展测试,并观看运行结果。将程序的运行状况写在下面。三、问题争论breakcontinue四、试验总结总结本次试验完成状况、相关学问把握状况总结本次试验编辑、编译、连接、运行所取得的阅历分析本次试验消灭的主要错误最直接缘由试验四使用数组的程序设计一、试验目的1、正确理解数组的概念,娴熟把握一维数组和二维数组的定义和初始化方法。2、娴熟把握字符数组和字符串的区分和使用、字符串函数的使用。3、娴熟把握一维数组、二维数组以及字符串的输入和输出方法。4、了解数组的地址、数组元素的地址及一维数组和二维数组的存储构造。5、把握字符串的完毕标志,正确使用字符串的完毕标志对字符串进展处理。6、通过编程和调试程序,加深对数组、字符数组和字符串函数应用的理解。7、试验前复习数组、字符数组和字符串函数的概念。二、试验内容1、打印fabonacci201,以后各项均为前相邻两项之和。程序代码:#include<stdio.h>voidmain{longintf[20]={1,1};intj;for(j=2;j<20;j++)f[j]=f[j-1]+f[j-2];for(j=0;j<20;j++){printf(“%15ld“,f[j]);if((j+1)%5==0)printf(“\n“);}}对程序进展测试,并观看运行结果。将程序的运行状况写在下面。2、从键盘输入一个班学生〔30〕的成绩,然后按降序进展排列。#include<stdio.h>#defineN5voidmain{inta[N],i,j,t;printf(“inputscoresofstudents:“,N);for(i=0;i<N;i++)scanf(“%d,“,&a[i]);for(i=0;i<N-1;i++)for(j=0;j<N-1-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}printf(“thesortedscores:\n“);for(i=0;i<N;i++)printf(“%10d“,a[i]);printf(“\n“);}3、程序代码:对程序进展测试,并观看运行结果。将程序的运行状况写在下面。c3、编写一个程序,利用字符数组实现两个字符串的比较。〔留意不能使用字符串比较函数strcmp〕#include<stdio.h>#definen7voidmain{chars1[n],s2[n];inti;printf(“input%dcharacters\n“,n);scanf(“%s\n“,s1);scanf(“%s\n“,s2);if(s1!=s2){for(i=0);i<n;i++){if(s1[i]>s2[i]){printf(“%s>%s“,s1,s2);break;}elseif(s1[i]<s2[i]){printf(“%s<%s“,s1,s2);break;}elsecontinue;}}elseprintf(“%s=%s“,s1,s2);}程序代码:对程序进展测试,并观看运行结果。将程序的运行状况写在下面。三、问题争论使用%s格式符输入字符串到数组时能否将空格符输入?假设不能该如何使用其它方法解决?举例说明数组在“定义”时和“引用”时所带的下标有何区分?四、试验总结需多操作才能娴熟把握各种C总结本次试验完成状况、相关学问把握状况总结本次试验编辑、编译、连接、运行所取得的阅历分析本次试验消灭的主要错误最直接缘由一、试验目的1011121314

把握函数定义及调用的方法,正确理解函数调用时实参和形参的对应关系 ;把握并正确使用数组作为函数参数;把握函数的嵌套调用和递归调用的方法;理解变量的作用域和生存期;把握宏定义、文件包含。二、试验内容1、分析下面的程序并上机运行程序,要求写出3组以上程序的运行结果。#include<stdio.h>intfun(intk){intresult=1,i;for(i=1;i<=k;i++){result=result*i;}returnresult;}voidmain{intn;printf(“Inputnplease(1<=n<=10)“);scanf(“%d“,&n);printf(“%d!=%d\n“,n,fun(n));},n2程序代码:#include<stdio.h>#include<math.h>voidmain{ inti,j,k,n,m=0;printf(“inputnplease!\n“);scanf(“%d“,&n);for(i=2;i<=n;i++){j=sqrt(i);for(k=2;k<=j;k++)if(i%k==0)break;if(k>j){m++;printf(“%3d“,i);if(m%10==0)printf(“\n“);}}}2程序代码:#include<stdio.h>floataverage(floatx[8]){ floatsum;intk;sum=x[0];for(k=1;k<8;k++){ sum=sum+x[k];}return(sum/8);}voidmain{ floatcj[8],aver;intm,j;printf(“inputscoresofeightstudents:\n“);for(j=0;j<8;j++)scanf(“%f“,&cj[j]);aver=average(cj);for(m=0;m<8;m++){ if(cj[m]>aver)printf(“高于平均分:%f\n“,cj[m]);}printf(“average=%6.2f\n“,aver);}三、问题争论1、举例说明自动变量和静态变量的区分。2、静态变量则是指在整个程序运行期间安排固定存储空间的变量。四、试验总结总结本次试验完成状况、相关学问把握状况总结本次试验编辑、编译、连接、运行所取得的阅历分析本次试验消灭的主要错误最直接缘由答:1.试验完成,学问还未完全把握。要留意书写格式的正确。主要缘由是对学问的不理解。一、试验目的15161718

把握指针的概念,会定义和使用指针变量;能正确使用数组的指针和指向数组的指针变量;生疏指针作为函数参数的定义和调用方法;能正确使用字符串的指针和指向字符串的指针变量。二、试验内容 3#include<stdio.h>voidmain{int*p1,*p2,*p;inta,b;printf(“Inputabplease“);scanf(“%d%d“,&a,&b);p1=&a;p2=&b;if(a>b){p=p1;p1=p2;p2=p;}printf(“*p1=%d,*p2=%d\n“,*p1,*p2);printf(“a=%d,b=%d\n“,a,b);}以下程序的功能是分别求出数组中全部奇数之和以及全部偶数之和。形参neven面空白处将实现这一功能的函数完善,并且调试运行出结果。#include<stdio.h>#defineN10voidfun(int*a,intn,int*odd,int*even){}voidmain{inta[N]={1,10,2,3,19,6},i,n=6,odd,even;printf(“Theoriginaldatais:\n“);for(i=0;i<n;i++)printf(“%5d“,*(a+i));printf(“\n\n“);fun(a,n,&odd,&even);printf(“Thesumofoddnumbers:%d\n“,odd);printf(“Thesumofevennumber:%d\n“,even);}chstr,利用字符指针实现删除字符串strchstr2运行结果。程序代码:三、问题争论简述字符串数组和字符指针的区分,举例说明。四、试验总结总结本次试验完成状况、相关学问把握状况答:通过本次试验我学习了关于指针的一些应用和怎样用指针来解决一些实际问题。总结本次试验编辑、编译、连接、运行所取得的阅历分析本次试验消灭的主要错误最直接缘由答:对课本上的学问记忆的不够结实,对一些学问似懂非懂的,理解的不清楚。还有就是对计算机的的操作不够娴熟,操作起来很慢,还常常出 错。以后需加强练习。试验七、构造体程序设计一、试验目的定义和使用。把握链表的根本,初步学会对链表进展操作。通过编程和调试程序,加深对构造体和共用

温馨提示

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

评论

0/150

提交评论