c语言实验题目(1-4四个实验内容)
- 格式:doc
- 大小:74.50 KB
- 文档页数:8
ffB v vbvv bgbb实验一C程序运行环境及简单程序的运行2.程序改错并调试改正后的程序⑴下列程序的功能为:计算x*y的值并将结果输出,程序中有8处错误,尝试改正并上机调试之(程序以文件名sy1_2.cpp#include <stdio.h>void main{ int x=2;y=3;aA=x*yprint ("a=%d",a);printf(‘\n’);}⑵下列程序的功能为:输入圆的半径,计算圆面积并将结果输出;程序中有9处错误,尝试改正并上机调试之(程序以文件名sy1_3.cpp存盘)。
#include stdio.h;int mian();float r; area;printf("input r:\n"); scanf("%f",r);area=3.14159r*r;printf("r=%f , area=%f\n"3.编写程序并上机调试⑴输入三个整数a、b、c,显示出其中的最大值。
4.分析与总结⑴总结C程序的结构和书写规则。
⑵阅读:附件1-C语言程序的跟踪调试。
特别提示:当程序在编译时发现很多错误,此时应从上到下逐一改正,或改一个错误,就重新再编译,因为有时一个错误会引起很多错误信息。
12习题一一、选择题参考答案:1~5 C B A C D 6~10 C C A C B 11~14 A A C B二、综合题绘制NS 算法流程图。
(1)输入10个数,求其中的最大值。
(2)输入3个数,将它们升序排列输出。
(3)输入2个数,求它们的最大公约数。
(4)输入一元二次方程的系数a 、b 、c ,判断其根。
实验二顺序结构程序设计1.阅读程序,尝试写出程序的运行结果,然后输入并调试程序,对照其实际输出与分析的结果是否一致,若不一致,请找出原因。
⑴以下程序用于测试C中不同类型数据所占内存字节数,运行并体会sizeof运算符的使用方法。
第1篇一、实验目的通过本次在线编程实验,旨在提高我的编程能力,加深对编程语言的理解,熟悉编程环境的使用,并培养良好的编程习惯。
同时,通过实际编程练习,解决实际问题,提升我的逻辑思维和问题解决能力。
二、实验内容本次实验选择了电大在线编程平台提供的C语言编程课程,主要包括以下内容:1. C语言基本语法;2. 数据类型、变量和运算符;3. 控制结构(分支和循环);4. 函数的定义和调用;5. 数组、指针和字符串操作;6. 文件操作。
三、实验步骤1. 准备工作:登录电大在线编程平台,选择C语言编程课程,熟悉编程环境和操作界面。
2. 编写代码:根据实验指导书,逐个完成实验任务,编写相应的C语言程序。
3. 调试程序:使用调试工具,检查代码中的错误,修正语法错误和逻辑错误。
4. 运行程序:成功编译并运行程序,观察输出结果,确保程序功能符合预期。
5. 总结与反思:对实验过程中遇到的问题进行总结,分析原因,提出改进措施。
四、实验结果与分析1. C语言基本语法:通过实验,我掌握了C语言的基本语法,包括数据类型、变量、运算符等。
2. 控制结构:实验中,我学会了使用if语句、switch语句进行分支控制,以及for循环、while循环进行循环控制。
3. 函数:通过编写和调用函数,我了解了函数的定义、参数传递和返回值等概念。
4. 数组、指针和字符串操作:实验中,我掌握了数组的定义、初始化、访问和操作方法,了解了指针的概念和用法,以及字符串操作函数。
5. 文件操作:通过实验,我学会了使用文件操作函数,实现文件的读写操作。
五、实验总结通过本次在线编程实验,我收获颇丰。
以下是我对本次实验的总结:1. 编程能力得到提高:通过实际编程练习,我对C语言有了更深入的了解,编程能力得到提升。
2. 问题解决能力增强:在实验过程中,我遇到了各种问题,通过查阅资料、请教同学和老师,我学会了如何分析和解决实际问题。
3. 良好的编程习惯:在实验过程中,我养成了良好的编程习惯,如规范命名、注释代码、代码复用等。
C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。
(3)通过运行简单的 C 程序,初步了解 C程序的特点。
(4)在教师的指导下,学会使用在线评判系统。
二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。
includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。
(2)保存程序,取名为a1.c。
(3)按照第一章中介绍的方法,编译、连接和运行程序。
,则该题完成。
4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。
实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。
(2)保存程序,取名为a2.c。
(3)按照前二章中介绍的方法,编译、连接和运行程序。
(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。
45(6)按照第三章中介绍的方法进入在线评判系统。
(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。
(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。
(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。
实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程。
2.熟悉编译环境。
3.初步熟悉C语言程序的语法规定。
4.了解简单函数的使用方法。
实验内容:1.编程且上机运行:求3个整数的和。
2.编程且上机运行:求2个数的和、差、积和商。
3.编程且上机运行:输入3个数,求最大值。
4.编程且上机运行:输入圆的半径,求圆的面积和周长。
5.在屏幕上输出:“hello world!”实验结果:实验二(第3章实验)1.实验目的:理解C语言的类型系统。
实验内容:写程序测试数据-2在类型char,int,unsigned int,long int,unsigned long int 中存储情况。
实验过程:实验结果:参见各种类型的存储实现描述。
2.实验目的:了解混合类型计算中类型的转换规则。
实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。
注意unsigned int和int数据运算时类型转换的方向。
实验过程:/** 类型转换问题* 试问下面两个表达式等价吗?*/#include <stdio.h>#include <stdlib.h>int main() {unsigned int ui,uj;ui = 1;uj = 2;if (ui < uj)printf("\n%u < %u is true !\n", ui, uj);elseprintf("\n%u < %u is false !\n", ui, uj);if (ui - uj < 0)printf("\n%u - %u <0 is true !\n", ui, uj);elseprintf("\n%u - %u <0 is false !\n", ui, uj);system("pause");return 0;}实验结果:参见类型转换规则。
实验名:数组一、实验目的1、掌握数组定义的规则。
2、掌握C语言数组的基本用法。
二、实验内容) 题目11、编写程序,测试下列数组的定义方式是否正确(1) main(){int n;scanf(“%d”,&n);int a[n];……}(2) main(){const int n=10;int a[n];}(3) #include <stdio.h>#define M 10main(){int a[M];}(4) main(){int a[2+2*4];}(5) #include <stdio.h>#define M 2#define N 8main(){ int a[M+N];}通过这一实验,可以说明什么问题2、输入和输出信息描述及数据类型确定;、输入数据序号输入数据描述数据类型(1)n,a[n] int(2)na[n] cons tint int(3)a[M]或a[10] int (4)a[2+2*4] int (5)a[M+N] int 3、程序调试错误序号错误信息(列出出错语句以及出错提示)是否解决解决方法(1-1)main.c|5|error: expectedexpression before '%' token|scanf(“%d”,&n);是将%d两边的符号改为西文字符的引号scanf("%d",&n);(1-2)main.c|6|warning: unusedvariable 'a'[-Wunused-variable]|int a[n];是将前面的n的输入去掉,把n改为具体数字(5) main.c|6|warning: unusedvariable 'a'[-Wunused-variable]|int a[M+N];是加上个scanf(“%d”,&a[M+N]);4、相关问题回答通过这一实验,可以说明什么问题1、(2)(3)(4)(5)对,(1)错,(1)中a[n]的数组定义的【】里的常量表达式不能是变量。
实验一上机操作初步一、实验内容:说明:前三题为必做题目,后两题为选做题目。
1、输出入下信息:(实验指导书P79)*************************Very Good*************************2、计算两个整数的和与积。
(实验指导书P81)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
(书P3)4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。
二、参考答案:1、#include <stdio.h>void main( ){ printf(“********************\n”);printf(“ Very Good\n”);printf(“********************\n”);}2、#include <stdio.h>void main( ){ int a,b,c,d;printf(“Please enter a,b:”);scanf(“%d,%d”,&a,&b);c=a+b;d=a*b;printf(“%d+%d=%d\n”,a,b,c);printf(“%d*%d=%d\n”,a,b,d);}3、#include <stdio.h>#include <math.h>void main( ){ double x,s;printf(“Please input value of x:”);scanf(“%lf”,&x);s=cos(x);printf(“cos(%lf)=%lf\n”,x,s);}4、#include <stdio.h>void main( ){ printf(“==================================\n”);printf(“ 1 输入数据 2 修改数据\n”);printf(“ 3 查询数据 4 打印数据\n”);printf(“===================================\n”);}5、#include <stdio.h>void main( ){ int x,y,t;printf(“Please enter x and y:”);scanf(“%d%d”,&x,&y);t=x; x=y; y=t;printf(“After swap:x=%d,y=%d\n”,x,y);}实验二简单的C程序设计一、实验内容:说明:前四题为必做题目,后两题为选做题目。
C语⾔程序设计实验及习题(1-4)ffB v vbvv bgbb实验⼀C程序运⾏环境及简单程序的运⾏2.程序改错并调试改正后的程序⑴下列程序的功能为:计算x*y的值并将结果输出,程序中有8处错误,尝试改正并上机调试之(程序以⽂件名sy1_2.cpp#includevoid main{ int x=2;y=3;aA=x*yprint ("a=%d",a);printf(‘\n’);}⑵下列程序的功能为:输⼊圆的半径,计算圆⾯积并将结果输出;程序中有9处错误,尝试改正并上机调试之(程序以⽂件名sy1_3.cpp存盘)。
#include stdio.h;int mian();float r; area;printf("input r:\n"); scanf("%f",r);area=3.14159r*r;printf("r=%f , area=%f\n"3.编写程序并上机调试⑴输⼊三个整数a、b、c,显⽰出其中的最⼤值。
4.分析与总结⑴总结C程序的结构和书写规则。
⑵阅读:附件1-C语⾔程序的跟踪调试。
特别提⽰:当程序在编译时发现很多错误,此时应从上到下逐⼀改正,或改⼀个错误,就重新再编译,因为有时⼀个错误会引起很多错误信息。
习题⼀⼀、选择题参考答案:1~5 C B A C D 6~10 C C A C B 11~14 A A C B⼆、综合题绘制NS 算法流程图。
(1)输⼊10个数,求其中的最⼤值。
(2)输⼊3个数,将它们升序排列输出。
(3)输⼊2个数,求它们的最⼤公约数。
(4)输⼊⼀元⼆次⽅程的系数a 、b 、c ,判断其根。
实验⼆顺序结构程序设计1.阅读程序,尝试写出程序的运⾏结果,然后输⼊并调试程序,对照其实际输出与分析的结果是否⼀致,若不⼀致,请找出原因。
⑴以下程序⽤于测试C中不同类型数据所占内存字节数,运⾏并体会sizeof运算符的使⽤⽅法。
实验一:基本数据类型和结构化程序设计 实验目的:1、熟悉编译软件vc++或tc ;掌握如何编辑、编译、连接、调试和运行一个c 语言程序。
2、通过运行简单的c 语言程序,初步了解c 语言程序的顺序结构和选择结构的特点。
3、掌握c 语言中的库函数的使用。
第1节(2学时)实验内容:顺序结构:1、求任意两数之和。
2、编程求)ln()sin(x a ax y ++=。
要求a 和x 从键盘输入。
当a=6.4,x=3.4时,求y 的值。
②选择结构:分别使用if 语句、switch 语句和条件表达式编程求解分段函数:y=。
1、若x 、i 、j 和k 都是int 型变量,计算下面表达式后,x 的值为( )x=(i=4,j=16,k=32)A)4 B )16 C)32 D)522、有以下程序,程序运行后的输出结果是。
main( ){ int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k);}A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 33、下面程序的输出结果是main(){int x=2,y=-1,z=2;if(x<y)if(y<0)z=0;else z=-1+x;printf(“%d\n”z);}A) 3 B) 2 C) 1 D)04、下列程序段中,有错误的行是()列定行号 int x=0,y=10;2 switch(x)3 { case 3:4 case –1:y=y-2;break;5 case y+1:x+=5;6 default:printf(“%d,%d”,x,y);}A) 4 B) 3 C) 5 D)无错误5、从键盘任意输入0----100之间的整数作为学生的成绩,要求根据以下的条件判断并输出等级。
大于等于90,小于等于100: A 等大于等于70,小于等于89: B 等大于等于60,小于等于69: C 等小于60 : D 等要求:1、分别用单分支if语句、多分支if语句(或if语句的嵌套)、switch语句分别实现。
(必做)2、如果输入成绩为实数,应如何修改源程序第2节(2学时)实验内容:①: 1+2+3+4+……+n (必做)要求:1、用while语句实现。
2、用do----while语句实现3、用for语句实现。
②: 1!+2!+………+n!要求:1、用while语句实现。
2、用do----while语句实现3、用for语句实现。
③:从键盘输入一个正整数n,计算该数的各位数字之和并输出。
例如:输入为5246,则计算5+2+4+6=17并输出。
课外练习题1、若i为整型变量,则以下循环执行次数是()。
#include"stdio.h"void main(){ int i;for(i=2;i==0; )printf("%d",i--); }A) 无限次 B)0次 C) 1次 D) 2 次2、以下描述正确的是()A)continue语句的作用,是结束整个循环语句的执行B)只能在循环体内和switch语句体内使用break语句C)在循环体内使用break语句或continue语句的作用相同D)多层循环嵌套中不可以使用break语句3、下面程序的输出结果是()#include <stdio.h>void main(){ int i,j,x=0;for(i=0;i<=2;i++){ x++;for(j=0;j<=2;j++){ if(j%2)continue; x ++;}x ++; }printf("%d\n",x); }A)4 B)6 C)8 D)124、下列程序段是实现给数组所有元素赋值操作,应在下划线上填入的是()int a[10];for(i=0;i<=9;i++) scanf(“%d”, );A) a B) &a[i] C) a[i] D) &a[0]5、下列程序的输出结果为()#include “stdio.h”main( ){ int a,b;for(a=1,b=1;a<=100;a++){ if(b>=20) break;if(b%3==1) { b+=3;continue;}b+=5; }printf(“%d, %d”, a, b); }A) 8,20 B) 8,22 C) 7,20 D) 7,226、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main( ){ int n,k;float score ,sum,ave;sum=0.0;for(n=1;n<=10;n++){ for(k=1;k<=4;k++){ scanf(“%f”,&score); sum+=score;}ave=sum/4.0;printf(“NO%d:%f\n”,n,ave); }}上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。
这条语句是()A) sum=0.0; B) sum+=score;C) ave=sun/4.0; D) printf(“NO%d:%f\n”,n,ave);实验二:构造型数据类型和模块化程序设计第1节(2学时)实验内容:①:用位移法把10个数按从大到小的顺序排序并输出。
②:用冒泡法把10个数按从大到小的顺序排序并输出。
(必做)③:改正下列程序的语法错误,写出程序的执行结果,并总结程序的功能。
main( ){ int i, j, temp, d[4][4]={1,2,3,4,5,6,7,8,4,3,2,1,1,2,3,4,};for(i=0;i<4;i++)for(j=0;j<4;j++)if(d[i][j]>d[j][i]) d[j][i]=d[i][j];for(i=0;i<4;i++){ printf("\n");for(j=0;j<4;j++)if(j>=i) printf("%6d",d[i][j]);else printf("%6c",' ');}}④:程序填空。
在处填写合适的语句,完善下列程序。
从键盘输入一个数,将其插入到一个升序数组中,保持数组任然按升序排列。
main( ){ int data, k, temp, a[9]={-10,2,4,8,10,15,25,50};printf("\nEnter a data:");scanf("%d",&data);;for(k=8; ;k--)if(a[k]<a[k-1]){ ; a[k]=a[k-1];a[k-1]=temp;}else ;for(k=0; ;k++)printf("%7d",a[k]);}⑤:课外练习题1、以下对二维数组进行正确初始化的是()。
A)int a[2][3]={{1,2},{3,4},{5,6}};B)int a[][3]={1,2,3,4,5,6};C)int a[2][]={1,2,3,4,5,6};D)int a[2][]={{1,2},{3,4}};2、若有说明语句:“int a[3][4];”,则对数组元素的正确引用格式是()A)a[2][4] B) a[1,3] C) a[1+1][0] D) a(2)(1)3、定义数组a和b的语句是:char a[ ]=“ABCDEF”;char b[ ]={‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};则以下叙述正确的是()A)a和b数组完全相同 B)a与b数组元素个数相同C)a和b中都存放字符串 D)a数组比b数组元素个数多4、有以下程序#include "stdio.h"void main(){int a[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int i,s=0;for(i=0;i<4;i++)s+=a[i][i];printf("%d\n",s);}程序运行后的输出结果是程序的功能为5、以下程序运行后的输出结果是#include <stdio.h>void main(){ int i,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf(“%d”,x[i][2-i]); }6、有以下程序,则程序运行后的输出结果是()main( ){ int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p ;for(p=&a[9];p>=a;p--)printf("%d,",*p); }A)0 1 2 3 4 5 6 7 8 9B)2,3,4,5,6,7,8,9,10,1C)0,1,2,3,4,5,6,7,8, 9,D)9,8,7,6,5,4,3,2,1, 0,第2节(2学时)实验内容:①:运行以下程序:(必做)main( ){ long y, n,;long f1(long n);scanf(“%ld”,&n);y=f1(n);printf(“%ld\n”,y); }long f1(long n){ long x=1,i;for(i=1;i<=n;i++)x*=i;return x; }1、问以上程序的功能是什么?2、把F1函数用递归实现。
3、如果实现以下功能:1!+2!+………+n!问以上参考程序如何改写?②:课外练习题1、以下说法中正确的是()A) C语言程序总是从第一个的函数开始执行B) C语言程序总是从main()函数开始执行C)在C语言程序中,要调用的函数必须在main()函数中定义D) C语言程序中的main()函数必须放在程序的开始部分2、有以下函数定义:void fun(int n, double x){ …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()A)fun(int y,double m); B)k=fun(10,12.5);C)fun(x,n); D)void fun(n,x);3、在C语言中,若对函数类型未加说明,则函数的隐含类型为类型。
4、数组元素作函数参数进行的是传递,数组名作函数参数进行的是____传递。
5、设有函数调用语句f(x1,x1+x2,f1(x1,x2));则函数f()实参的数目有_ ___个。