C语言培训上机实验题目
- 格式:doc
- 大小:1.37 MB
- 文档页数:74
实验一 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所示。
1.根据下列函数接口,实现该函数.voidSortP(int a[],int m, int flag)函数的功能:如果flag==0,则函数实现对数组a的前m个元素进行降序排列,如果flag!=0,则对数组a的前m个元素进行升序排列.#include<stdio.h>void main(){voidSortP(int a[],int m, int flag);int a[5],m=3,flag;inti;for(i=0;i<5;i++)scanf("%d",&a[i]);scanf("%d",&flag);SortP(a,3,flag);for(i=0;i<5;i++)printf("%d\n",a[i]);}voidSortP(int a[],int m, int flag){inti,t,j;if(flag==0){for(i=0;i<m-1;i++)for(j=0;j<m-i-1;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}else{for(i=0;i<m-1;i++)for(j=0;j<m-i-1;j++){if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}2.任意输入三个整数,求其中非负数的和。
#include<stdio.h>void main(){int a[3],i,sum=0;for(i=0;i<3;i++)scanf("%d",&a[i]);for(i=0;i<3;i++)if(a[i]>=0)sum=sum+a[i];printf("%d",sum);}3.任意输入三个整数a,b,c,将他们从大到小输出。
《C语言》上机实验题及参考答案作者名:不详来源:网友提供05年7月21日1、编程实现对键盘输入的英文名句子进行加密。
用加密方法为,当内容为英文字母时其在26字母中的其后三个字母代替该字母,若为其它字符时不变:2、编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。
3、从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。
4、随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。
5、编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
6、模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。
7、任何一个自然数m的立方均可写成m个连续奇数之和。
例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19编程实现:输入一自然数n,求组成n3的n个连续奇数。
8、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。
9、编制一个完成两个数的四则运算程序。
如:用户输入34+56则输出结果90.00。
要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。
10、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。
如输入:56439,输出:5位数5,6,4,3,99,3,4,6,511、编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。
c语言上机练习共35篇C 语言程序上机实训题上机练习一一、程序改错题:程序功能:求 100 以内的偶数之和. #include "stdio.h" main() { int i,sum=1; sum+=i; printf("Sum=%d \n";sum); getch(); } 二、程序填空题:程序功能:输入数组最大的与最后一个元素交换,最小的与第一个元素交换,输出数组。
main() { int number[10]; input(number); max_min(number); output(number);} input(int number[10]) { int i; for(i=0;【?】;i++) scanf("%d,",&number[i]); scanf("%d",&number[9]);} max_min(int array[10]) { int max,min,k=0,l=0,t,p,; max=min=array[0]; for(p= 1;pmax) {max= array[p];k=p;} else if(array[0] /**********End **********/} main() { int m; printf("Enter m: "); scanf("%d", &m); printf("\nThe result is %ld\n", fun(m)); }1C 语言程序上机实训题上机练习二一、程序改错题:功能:求 1 到 10 的阶乘的和。
main() { int i; float t,s=0; float fac(int n); for(i=1;i #include 【?】 main() { float a,b,c,disc,x1,x2,realpart,imagpart;scanf("%f%f%f",&a,&b,&c); printf("the equation"); if(【?】/********** }End **********/2C 语言程序上机实训题上机练习三一、程序改错题:功能:将一个正整数分解质因数。
实验一 Visual C++6.0的使用及顺序结构程序设计一、实验目的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)单击“结束”按钮,关闭窗口,进入VC6.0开发环境的主窗口。
2.使用Visual C++6.0对一个C程序进行编辑、编译、连接和运行。
⑴分析Visual C++6.0中程序的开发过程与其它高级语言的开发过程相仿,都要经过编辑、编译、连接和运行四个步骤。
⑵步骤①编辑图1-1 New对话框编辑是将C源程序输入计算机的过程。
在Visual C++6.0主界面下,点击File菜单,选择New菜单项,即可出现New对话框,如图1-1所示。
在弹出窗口中的Files标签页下,选择C++ Source File。
在选项卡右面的File编辑框里输入文件名如“Exa.c”,在L ocation编辑框里输入文件路径,如“d:\test”。
点击OK按钮。
将出现编辑窗口,如图1-2所示。
在图1-2所示的右端编辑窗口里输入以下C源程序并保存文件。
图1-2 编辑窗口②编译编译是使用系统提供的编译器将文本文件Exa.c生成机器语言的过程,结果为Exa.obj,由于没有得到系统分配的绝对地址,还不能直接运行,如图1-3所示。
C语言上机实训作业班级:姓名:第一次上机实验题一:2,调试错误截图:(如果有)3,错误原因:符号错误,忘记在末尾加分好,数组知识没有熟练掌握,小括号大括号不规范。
忘记数组知识的利用,函数类型不符合条件。
4,体会和收获:复习在课堂所学习的知识,找出自己在学习中所存在的问题,更加熟练的使用所学知识来解决问题。
在为期两周的时间里,我们将本学期的c语言进行了大概复习与检测,对自己有很好的提升,增强了我的专业知识,也增强了我解决问题的能力。
题二:1):1,源文件及运行结果截图2,调试错误截图:(如果有)无4,体会和收获:很好的巩固了所学知识,来解决实际问题,让我对未来更加充满自信。
题三:1)if-else:3,源文件及运行结果截图2,调试错误截图:(如果有)3,错误原因:开始的时候没能正确理题意,不知道如何下手该怎样做,没有熟练掌握if-else的运用,导致错误。
4,体会和收获:很好的巩固了所学知识。
第二次上机实验题一:输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。
3调试错误截图:(如果有)无4,体会和收获:找出自己在学习中所存在的问题,更加熟练的使用所学知识来解决问题,在具体解决问题时更加认真。
题二:求一个5*4的矩阵各列元素的平均值,各行元素的平均值,和所有元素的平均值。
4,源文件及运行结果截图5,调试错误截图:(如果有)无开始的时候没能正确理题意,不知道如何下手该怎样做,没有熟练掌握,导致错误。
6,体会和收获对待事情一定要认真,不可马虎大意题三:任意输入一个年份,判断是否是闰年。
闰年的条件是符合下面条件之一:(1)原文件及运行结果截图(2)调试错误截图(如果有)无(3)体会和收获掌握了如何用所学知识解决问题。
第三次上机实验题一:任意输入一个5位自然数(不含0),输出由该自然数的各位数字组成的最小的数。
例如,输入8593,则输出为3589。
2,调试错误截图:(如果有)无4,体会和收获:复习在课堂所学习的知识,找出自己在学习中所存在的问题,更加熟练的使用所学知识来解决问题。
3.3 常见、经典的上机实验题目1、/*功能:数组x有十个元素,编程将其元素首尾颠倒。
(即第一个元素与最后一个元素交换,第二个元素与倒数第二个元素交换…)。
*/main(){int a[10]={5,65,654 ,5 ,5 ,56,588,77,58,5},j,x;for(j=0;j<5;j++){x=a[j]; a[j]=a[9-j]; a[9-j]=x;}for(j=0;j<10;j++)printf("%d\t", a[j]);}2、/*功能:统计输入的一串字符(假设以‘\n’结束)中,大写字母A,B,...,Z各出现的次数。
(提示,用一个数组count[26]计数各个字母出现的次数,count[0]表示A出现的次数,count[1]表示B出现的次数,...,count[25]表示字母Z出现的次数。
初始时count的各元素值为0。
以后,每读入一个字符ch ,若它是一个大写字母,就让相应计数单元count[ch-'A']加1。
*/main( ){int count[26] ,i;char ch[80];for(i=0;i<26;i++)count[i]=0;gets(ch);for(i=0;i<strlen(ch);i++)if (ch[i]> ='A'&&ch[i]<='Z') count[ch[i]- 'A']++;for(i=0;i<26;i++)printf("%c %d\t", 'A'+i,count[i]);}3、/*功能:键盘输入若干数,输出它们的平均值,输入值为-1时,结束输入*/main( ){int x,i=1,s;scanf("%d",&x);while(x!=-1){s=s+x;i++;scanf("%d",&x);}printf("%d\n",s/i);}4、/*功能:在字符串str中查找字符ch首次出现的位置,若str字符串中不包含字符ch,则输出0。
安装Visual C ++6.0下载请从群里下载Microsoft Visual Studio.rar。
将下载的文件Microsoft Visual Studio.rar解压后即可使用。
请直接运行文件“Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE”实验一认识C语言【实验目的】1.熟悉C程序设计编程环境Visual C ++,掌握运行一个C程序设计的基本步骤,包括编辑、编译、连接和运行。
编辑:编写源程序文件.c编译:生成目标文件.obj连接:生成可执行文件.exe运行:执行.exe文件。
2.掌握C语言程序设计的基本框架,能够编写简单的C程序。
3.了解程序调试的思想,能找出并改正C程序中的语法错误。
【实验内容】1-1 在磁盘上新建一个文件夹,用于存放C程序,文件夹的名字可以是学号,如D:\3050888。
1-2 编程示例,在屏幕上显示一个短句“Hello World!”。
源程序# include <stdio.h>void main( ){printf("Hello World! \n");}运行结果Hello World!作为第一个实验,在Visual C++编程环境下,以上述C语言源程序为例,介绍运行一个C 程序的基本步骤,请读者按照以下步骤操作。
(1)启动VC++执行“开始”—>“程序”—>“Microsoft Visual Studio 6.0”—> “Microsoft Visual C++ 6.0”,进入VC++编程环境(如图1.1所示)。
图1.1 VC++窗口(2)新建文件执行“文件/File”—>“新建/New”,单击“文件/Files”选项卡(如图 1.2所示),先在“文件/File name”栏中输入test,把C源(程序)文件命名为test.cpp,在“目录/Location”框中选择你已经建立的文件夹,如,D:\3050888,然后选中“C++ Sourse Files”,单击“确定”按钮,在D:\3050888下就新建了文件test.cpp,并显示编辑窗口和信息窗口(如图1.3所示)。
图1.2 新建文件思考:我们讲过C语言的源程序文件的扩展名为.c,可现在建立的文件名为.cpp,这可以编译执行吗?解答:vc++6.0是c和c++语言的编程环境,c++语言的扩展名为.cpp,并且c++语言完全包括的c语言的语法内容,所以在c++文件中写c语言的内容是可以编译的。
如果想将源程序文件的扩展名改为.c,只需要在上图中文件一栏中填写test.c就可以了,如果只写test就是只写一个文件名的话扩展名会自动为.cpp,所以我们可以指定扩展名为.c就可以了。
(3)编辑和保存在编辑窗口(如图1.3所示)中输入源程序,然后执行“文件/File ”—>“保存/Save ”或“文件/File ”—>“另存为/Save As ”,保存源文件。
图1.3 编辑源程序(4)编译执行“编译/Build ”—>“编译/Compile ”或Ctrl + F7(如图1.4所示),在“产生工作区”对话框中(如图1.5所示)选择“是/Y ”,开始编译,并在信息窗口显示编译信息(如图1.6所示)。
图1.4 编译源程序图1.5 产生一个工作区编辑窗口信息窗口图1.6 编译正确图1.6信息窗口中出现的“test.obj - 0 error(s), 0 warning(s)”,表示编译正确,没有发现(语法)错误和警告,并生成了目标文件test.obj。
请查看目录D:\3050888\Debug中是否有test.obj文件。
如果显示有错误error(s),指程序中存在致命的错误,必须要改正;如果显示有警告warning(s),虽然不影响生成目标文件,但通常也应该改正。
(5)连接执行“编译/Build”—>“构件/Build”或F7,也可用“重建全部/Rebuild All”,开始连接,并在信息窗口显示连接信息(如图1.7所示)。
图1.7信息窗口中出现的“test.exe - 0 error(s), 0 warning(s)”表示连接成功,产生了可执行文件test.exe。
操作完成请查看目录D:\3050888\Debug中是否有test.exe文件。
图1.7 连接成功并产生运行文件(.exe)(6)运行执行“编译/Build”—>“执行/Execute”或Ctrl + F5(如图1.8所示),自动弹出运行窗口(如图1.9所示),显示运行结果“Hello World!”,其中“Press any key to continue”提示读者按任何键退出DOS窗口,返回到VC++编辑窗口。
图1.8 运行程序图1.9 运行窗口也可以进入源文件的目录双击test.exe进行执行。
(Window操作系统都是这样运行一个可执行的程序。
(7)关闭程序工作区执行“文件/File”—>“关闭工作区/Close Workspace”(如图1.10所示),在出现的对话框(如图1.11所示)中选择“是/Y”,关闭工作区。
图1.10 关闭程序工作区图1.11 关闭所有文档窗口(8)打开文件如果要再次打开C源文件,可以执行“文件/File”—>“打开/Open”,在文件夹D:\3050888下选择文件test.cpp(9)查看C源文件、目标文件和可执行文件的存放位置经过编辑、编译、连接和运行后,在文件夹D:\3050888(如图1.12所示)和D:\3050888\Debug (如图1.13所示)中存放着有关的文件,其中源文件test.cpp在文件夹D:\3050888中,目标文件test.obj和可执行文件test.exe都在文件夹D\3050888\Debug中。
图1.12 文件夹“D:\3050888”图1.13 文件夹“D:\3050888\debug”1-5 调试示例,在屏幕上显示一个短句“Welcome to You!”。
源程序(有错误的程序)# include <stdoi.h>void mian( ){printf(Welcome to You! \n")}运行结果(改正后程序的运行结果)Welcome to You!(1)按照实验内容1-2中介绍的步骤先关闭工作区(点击菜单File close Wordspace),然后再参照上边的步骤创建源程序error1_1.cpp。
(2)编译,执行“编译/Build”—>“编译/Compile”,信息窗口中显示编译出错信息(如图1.14所示)。
(3)找出错误,在信息窗口中双击第一条出错信息,编辑窗口就会出现一个箭头指向程序出错的位置(如图1.14所示),一般在箭头的当前行或上一行,可以找到出错语句。
图1.14中箭头指向第4行,出错信息指出Welcome是一个未定义的变量,但Welcome并不是变量,出错的原因是Welcome前少了一个双引号。
图1.14 编译产生的错误信息(4)改正错误,在Welcome前加上双引号后,重新编译,信息窗口显示本次编译的出错信息,第一条出错信息是“missing ';' before '}'”,双击该出错信息,箭头指向最后一行,出错信息指出在右大括弧}前少了分号。
(5)再次改正错误,在}前补上一个分号后重新编译信息窗口显示编译正确(如图1.15所示)。
图1.15 编译正确(6)连接,执行“编译/Build”—>“构件/Build”或F7。
信息窗口显示连接出错信息(如图1.16所示)。
仔细观察、分析后发现,主函数名main拼写错误,被误写为“mian”。
图1.16 连接产生的错误信息(7)改正错误,把“mian”改为“main”后,重新连接,信息窗口显示连接正确(如图1.17所示)。
图1.17 连接正确(8)运行,执行“编译/Build”—>“执行/Execute”或Ctrl + F5 ,自动弹出运行窗口(如图1.18所示),显示运行结果,与题目要求的结果一致,程序调试结束,读者按任意键返回。
图1.18 程序运行窗口1-6 改错,改正下列程序中的错误,在屏幕上显示以下3行信息。
按照实验内容1-2中介绍的步骤先关闭工作区(点击菜单File close Wordspace),然后再参照上边的步骤创建源程序error1_2.cpp*************Welcome*************源程序(有错误的程序)# include <stdio.h>void mian( ){printf("*************\n");printf(" Welcome\n")printf("*************\n);}实验二常量【实验目的】1.学会使用字符常量、字符串常量、整型常量、实型常量、及符号常量2.学会使用转义字符、占位符3.学会使用常量之间的运算4.学会使用vc++6.0编程环境中的wordspace、project、files【实验内容】1.编写程序,使用printf输出以下内容:Hello!Welcome to China!1 2 3 4 5 6 7 8 93.1415933.141593…‟“”说明及要求:第一行要使用字符常量进行输出(使用字符的占位符%c)第二行要使用字符串常量(使用字符串的占位符%s)第三行要使用整型常量,注意每个数字中间是空格。
(使用整型的占位符%d)第四行要使用实型常量,并且要用实型常量小数形式(使用实型的占位符%f)第五行要使用实型常量,并且要用实型常量指数形式(使用实型的占位符%f)第六行输出两个单引号,并且要用字符常量(使用转义字符)第七行输出两个双引号,并且要用字符串常量(使用转义字符)参考答案(请同学们将下面的程序补充完整输出第三行及后两行的内容):#include<stdio.h>main(){printf("%c%c%c%c%c%c\n",'H','e','l','l','o','!');printf("%s\n","Welcome to China!");printf("%f\n",3.141593);printf("%f\n",31.41593e-1);}2.运行下边的程序,想想是为什么。