当前位置:文档之家› C语言上机试题及答案

C语言上机试题及答案

实验一 Visual C++的使用及顺序结构程序设计一、实验目的1、掌握启动和退出VC6的方法。

2、熟悉VC6开发环境。

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

4、初步掌握程序的编辑修改和调试。

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

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

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

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

1.启动VisualC++6.0开发环境(1)单击“开始”按钮,选择“程序” ——〉“Microsoft Visual Studio 6.0菜单项,单击“MicrosoftVisualC++6.0”,屏幕出现标题为“当时的提示”的窗口。

(2)单击“结束”按钮,关闭窗口,进入开发环境的主窗口。

2.使用Visual C++对一个C程序进行编辑、编译、连接和运行。

⑴分析Visual C++中程序的开发过程与其它高级语言的开发过程相仿,都要经过编辑、编译、连接和运行四个步骤。

⑵步骤①编辑图1-1 New对话框编辑是将C源程序输入计算机的过程。

在Visual C++主界面下,点击File菜单,选择New菜单项,即可出现New对话框,如图1-1所示。

在弹出窗口中的Files标签页下,选择C++ Source File。

在选项卡右面的File编辑框里输入文件名如“”,在Location编辑框里输入文件路径,如“d:\test”。

点击OK按钮。

将出现编辑窗口,如图1-2所示。

在图1-2所示的右端编辑窗口里输入以下C源程序并保存文件。

include <stdio.h>void main(){printf(" 欢迎同学们来到华北水院计算中心!");}图1-2 编辑窗口②编译编译是使用系统提供的编译器将文本文件生成机器语言的过程,结果为,由于没有得到系统分配的绝对地址,还不能直接运行,如图1-3所示。

选择Build菜单下的Compile ,计算机将完成对当前源程序的编译。

按提示建立默认工程空间。

编译无错时,将源程序编译为目标文件。

编译结果如图1-4所示。

如果出现运行错误,应该分析错误的原因,例如,是输入数据错误,还是代码错误;如果需要修改源程序文件,还需重新编译、链接和执行。

改正编译窗口下方指出的两个错误,直至编译成功,如图1-5所示。

图1-3 编译源程序图1-4编译结果图1-5编译成功③连接连接是将目标文件转换为可执行文件的过程。

如图1-6所示选择Build菜单下的Build。

连接无错时,将目标文件连接为。

图1-6 源程序④运行运行是执行可执行文件,屏幕输出运行结果。

如图1-7所示选择Build菜单下的Execute。

图1-7 运行程序运行结果如图1-8所示:图1-8运行结果3.关闭系统工作区空间单击“文件︱关闭工作区”菜单命令,关闭系统工作区空间。

此时读者可以开始输入调试第(2) 个C程序文件。

4.退出开发环境单击主窗口右上角的“关闭”按钮,退出。

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

已知三角形三条边长a,b,c,计算三角形面积公式为:s=*(a+b+c)sarea-s-=a-b)()s)((cs编写程序,要求从键盘输入a,b,c的值,计算并输出三角形面积。

其中源程序代码如下:#include<>#include<>void main(){double a,b,c,s,area;printf("input a,b,c:");scanf("%lf,%lf,%lf",&a,&b,&c);打印100-200之间的所有素数(按照每行5个显示)程序代码:对程序进行测试,并观察运行结果。

将程序的运行情况写在下面。

『运行结果:』2. 编程输出如下上三角形式的九九乘法表。

1 2 3 4 5 6 7 8 9- - - - - - - - -1 2 3 4 5 6 7 8 94 6 8 10 12 14 16 189 12 15 18 21 24 2716 20 24 28 32 3625 30 35 40 4536 42 48 5449 56 6364 7281程序代码:对程序进行测试,并观察运行结果。

将程序的运行情况写在下面。

『运行结果:』三、问题讨论break语句和continue语句在循环结构中使用时有何区别?举例说明。

四、实验总结1 总结本次实验完成情况、相关知识掌握情况2 总结本次实验编辑、编译、连接、运行所取得的经验3 分析本次实验出现的主要错误最直接原因实验四使用数组的程序设计一、实验目的1、正确理解数组的概念,熟练掌握一维数组和二维数组的定义和初始化方法。

2、熟练掌握字符数组和字符串的区别和使用、字符串函数的使用。

3、熟练掌握一维数组、二维数组以及字符串的输入和输出方法。

4、了解数组的地址、数组元素的地址及一维数组和二维数组的存储结构。

5、掌握字符串的结束标志,正确使用字符串的结束标志对字符串进行处理。

6、通过编程和调试程序,加深对数组、字符数组和字符串函数应用的理解。

7、实验前复习数组、字符数组和字符串函数的概念。

二、实验内容1、打印fabonacci数列的前20项,该数列前两项为1,以后各项均为前相邻两项之和。

程序代码:#include <>void main(){long int f[20]={1,1};int j;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 <>#define N 5void main(){int a[N],i,j,t;printf("input scores of students:",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("the sorted scores:\n");for(i=0;i<N;i++)printf("%10d",a[i]);printf("\n");}3、程序代码:对程序进行测试,并观察运行结果。

将程序的运行情况写在下面。

c『运行结果:』3、编写一个程序,利用字符数组实现两个字符串的比较。

(注意不能使用字符串比较函数strcmp())#include <>#define n 7void main(){char s1[n],s2[n];int i;printf("input %d characters\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;}else if(s1[i]<s2[i]){printf("%s<%s",s1,s2);break;}elsecontinue;}}elseprintf("%s=%s",s1,s2);}程序代码:对程序进行测试,并观察运行结果。

将程序的运行情况写在下面。

『运行结果:』三、问题讨论1使用%s格式符输入字符串到数组时能否将空格符输入?如果不能该如何使用其它方法解决?举例说明2数组在“定义”时和“引用”时所带的下标有何区别?四、实验总结需多操作才能熟练掌握各种C语言.1 总结本次实验完成情况、相关知识掌握情况2 总结本次实验编辑、编译、连接、运行所取得的经验3 分析本次实验出现的主要错误最直接原因实验五函数与编译预处理一、实验目的1、掌握函数定义及调用的方法,正确理解函数调用时实参和形参的对应关系;2、掌握并正确使用数组作为函数参数;3、掌握函数的嵌套调用和递归调用的方法;4、理解变量的作用域和生存期;5、掌握宏定义、文件包含。

二、实验内容1、分析下面的程序并上机运行程序,要求写出3组以上程序的运行结果。

#include <>int fun(int k){int result=1,i;for(i=1;i<=k;i++){result=result*i;}return result;}void main(){int n;printf("Input n please(1<=n<=10)");scanf("%d",&n);printf("%d!=%d\n",n,fun(n));}『运行结果:』2、编写程序,输出2~n之间的所有素数,n由键盘输入。

要求判断素数的过程要写在函数中,由主函数调用实现,并写出2组以上程序运行结果。

程序代码:#include<>#include<>void main(){ int i,j,k,n,m=0;printf("input n please!\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");}}}『运行结果:』3、编程实现输入8个学生某门功课的成绩,用函数求出平均分,并在主函数中输出平均分以及高于平均分的同学的成绩。

并写出2组以上程序运行结果。

程序代码:#include<>float average(float x[8]){ float sum;int k;sum=x[0];for(k=1;k<8;k++){ sum=sum+x[k];}return(sum/8);}void main(){ float cj[8],aver;int m,j;printf("input scores of eight students:\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、举例说明自动变量和静态变量的区别。

相关主题