上海交大程序设计(C)_第二次上机实验

合集下载

西南交大各次C上机实验报告答案(全)

西南交大各次C上机实验报告答案(全)

2014-2015各次C++上机实验报告答案(全)实验__1__①实验报告一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.通过运行示例程序了解程序开发过程;二、实验任务1.新建源程序文件,编辑以下程序,编译,链接,得出运行结果,并保存程序:#include <iostream>using namespace std;void main( ){ cout<<'a'<<endl;/*输出语句*/cout<<'\141'<<endl;cout<<'\x61'<<endl;}2.新建源程序文件,编辑以下程序,编译,链接,运行,输入36和64,得出运行结果,并保存程序:#include <iostream>using namespace std;int main(){ float num1,num2,sum;cout << "Enter first number: ";/*输出语句*/cin >> num1; /*输入语句*/cout << "Enter second number: ";cin >> num2; /*输入语句*/sum=num1+num2; /*运算语句*/cout << "The sum is " << sum << endl; /*输出语句*/return 0;}三、实验结果1.2.实验一②实验报告一、实验目的1.熟悉C++程序的集成开发环境;2.学习新建和打开控制台应用程序的方法;3.掌握简单数据运算以及输入与输出方法。

二、实验任务1.输入一个摄氏温度,输出并显示转换出的华氏温度(提示:摄氏温度=(华氏温度—32)*5/9);2.画出一头威武雄壮的雄狮。

二级C上机实验指导txt版

二级C上机实验指导txt版
printf("%f,%f\n", x, y);
printf("%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n", x, y, x, y, x, y);
printf("%e,%10.2e\n", x, y);
printf("%c,%d,%o,%x\n",c,c,c,c);
#include <stdio.h>
main()
{
int a, b, t;
/*输入两个整数*/
printf("Input a and b:");
scanf("%d%d", &a, &b);
/*输出数据交换前,a和b的值*/
printf("Before swap:");
A,65,101,41
1234567,4553207,12d687
Press any key to continue
1.2 scanf()函数
以下程序中的scanf语句用于输入数据,目标是使得a的值为3,b的值为7,m的值为5,n的值为9,x的值为8.5,y的值为71.82,c1的值为′A′,c2的值为′a′,即屏幕上应出现以下的输出结果:
printf(" *** \n");
printf("*****\n");
printf(" *** \n");
printf(" * \n");
}
【解题提示】
可以使用printf()语句按行直接输出。
图1 example-4.c程序的输出结果

C上机实验6含答案及代码

C上机实验6含答案及代码

`特别注意事项:1,文件名“_王小小_数学0801_实验1.doc”中的实验1指的是第几次上机实验,与“实验指导书”中的实验几没有关系;2,文件名“_王小小_数学0801_实验1.doc”中的doc是文件扩展名,请注意不要提交如“*******.doc.doc”的文件;3,上机实验作业一律以word形式提交;4,若上机实验有多个作业,请按照下列加粗方式给每个作业命名,如:实验1_1,实验1_25,实验作业的word文件的页眉不可少,请每次注意修改;6,每个实验作业均要给出比较详细的程序说明,且程序说明位于程序之后。

程序说明是特别重点考察的部分,请按照你的理解进行撰写;7,该部分“特别注意事项”可以随同作业一并提交,请提交作业前进行对照。

实验8_1/******************************************************************* 主程序中定义一个类对象,把新定义的类对象作为参数传递给普通函数***********************************************************************/ // Tdate.h:Tdate类声明#include<iostream>using namespace std;class Tdate{public:void Set(int,int,int); //成员函数的声明int IsLeapYear();void Print();private:int month;int day;int year;};//Tdate.cpp:#include "Tdate.h"void Tdate::Set(int m,int d,int y){month=m;day=d;year=y;}int Tdate::IsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}void Tdate::Print(){ cout<<month<<"/"<<"/"<<year<<endl;}//应用程序:lab12.cpp#include <iostream>using namespace std;# include"Tdate.h"void someFunc(Tdate someday){ someday.Print ();if (someday.IsLeapYear())cout<<"leap yrar\n";elsecout<<"not leap year\n";}void main(){ Tdate s;s.Set (21,10 ,2012);someFunc(s);}程序说明:定义一个日期类Tdate,它的数据成员有年、月、日;它的函数成员有设置值、打印输出和判断是否闰年。

上海交大2010 至 2011 学年 第1学期 程序设计 试卷

上海交大2010 至 2011 学年 第1学期 程序设计 试卷

A . if (ch >= ’a’ && ch <= ’z’) ch = ch – ‘A’ + ’a’;B . if (ch >= ’a’ && ch <=’z’) ch = ch + ’A’;C . if (ch >= ’a’ && ch <= ’z’) ch = ch +‘a’;D . if (ch >= ’a’ && ch <= ’z’) ch = ch -‘a’ + ’A’;3. 已知枚举类型shapeT 定义如下:enum shapeT {rectangle, square, triangle, diamond=9, oval, circle};则triangle 和circle 内部编码分别是_______。

A .2, 5B 。

3, 6C 。

4, 11D 。

3, 114. 下面语句正确的有____A. int *p=&10;B. char *p[]={‘a’, ’b’, ’c’, ’d’};C. char *s=”hello world”; s=”hello SJTU”D. char s[]={“hello world”}; s=”hello SJTU”;5.假设有如下语句int a[10], *p=a;则下面的表达式中不正确的是___A. a=p+6B. p=a+3C. *p=a[3]D. a[2]=p[5]6. 假设有如下语句int a[5][6]; int *p=&a[0][0];则能够正确表示数组元素a[3][2]的表达式是___A. p[3][2]B. *(p+20)C. *( ( *(p + 3) ) + 2 )D. (*(p+3))[2]a = 4;b = a++;c = ++b;这些语句执行后,a, b, c的值分别为_______。

A、4, 5, 6B、5, 6, 7C、5, 6, 6D、5, 5, 59. 已知变量的说明如下:int a = 4, b = 2;double d;执行语句d = 1/a + 1/b; 后, d的值为。

C++第二次上机任务指导书(下)

C++第二次上机任务指导书(下)

一、面向对象程序设计概述与面向过程的C语言不同,C++语言支持面向对象程序设计方法。

这是两种不同的程序设计思想,其中面向过程的程序设计是以功能为中心,采用函数来描述对问题的操作;而面向对象程序设计是以数据为中心,采用对象来描述内部属性和操作方法。

对编程者而言,面向对象更为自然,因为它可以将人们观察世界的方式和编写计算机程序的过程统一起来。

面向对象具有4个基本特征:抽象、封装、继承和多态性。

抽象就是对问题对象进行概括,忽略与主题无关的细节,总结出同一类对象的性质并加以描述的过程;封装则将抽象出的数据和代码组装起来构成一个独立的有机整体,并使对象的内部实现和外部行为分隔开来;继承提供了一种可重用程序代码的机制,解决了软件的可重用性问题;多态性具有灵活、抽象、行为共享、代码共享的优势,使得设计和实现易于扩展的系统成为可能。

面向对象程序设计有很多优点,如开发时间短,效率高,可靠性高,所开发的程序易于维护、更新和升级等,很适合大程序、长时间的开发工作。

二、类与对象1、类的定义类是具有相同属性和方法的一类对象集合的抽象,它是一种既包含数据(称为数据成员,即类的属性)又包含函数(称为成员函数,即类的方法)的抽象数据类型。

定义类的过程就是对问题进行抽象和封装的过程,其一般格式为:class 类名{private:私有的数据成员和成员函数;protected:保护的数据成员和成员函数;public:公有的数据成员和成员函数;};其中,私有部分(private)的数据成员和成员函数只能被本类的成员函数访问;保护部分(protected)的成员与私有成员的性质相似,也只能被本类的成员函数访问,其差别在于该类被继承后对派生类影响不同;公有部分(public)的成员既可以被本类的成员函数访问,也可被类的对象访问。

2、成员函数成员函数是为某一个类所专有的函数,在类声明的外部定义成员函数的一般形式为:函数类型类名::函数名(参数表);{函数体}成员函数可以访问所有在本类中定义的数据成员,或调用本类中的其他成员函数。

交大程序设计(C)实验二程序

交大程序设计(C)实验二程序

1、程序填空下面程序的功能为:计算1〜100之间的偶数之和,完成以下的程序并运行出正确的结果。

修改后代码如下:#include<stdio.h>voidmain(){inti,s=0;/**************found*************/i=2;while(i<=100){s=s+i;/**************found**************/i=i+2;}printf("s=%d",s);程序改错 下面程序的功能为:计算10!,修改以下的程序并上机运行通过。

修改后代码如下:#include<stdio.h>voidmain(){intn,t;for(n=1,t=1;t<=10;t++)n=n*t;printf("10!=%d\n",n);(2)下面程序的功能为:计算1〜100之间能被3和7整除的数之和,修改以下的程序并上机运行通过。

修改后代码如下:#include<stdio.h>voidmain(){inti,s;i=0,s=0;while(i<=100){if(i%3==0&&i%7==0)s+=i;i=i+1;}printf("s=%d",s);3、编程题(1)有一个分数序列:2/1、3/2、5/3、8/5、13/8、……,编写一个C 程序,求出这个数列的前30项之和。

2、(1)编程后代码如下:#include<stdio.h>voidmain(){inta=1,b=2,c,i;floats=0;for(i=1;i<=30;i++){printf("第%2d项:%d/%d\n",i,b,a);s+=b*1.0/a*1.0;c=b;b=a+c;a=c;}printf("\n");printf("分数序列:/1、/2、/3、/5、/8、……前项之和为:%f\n”,s);}(2)编写程序,求1!+2!+3!+...+10!。

西交大web程序设计第2次上机实验报告

西交大web程序设计第2次上机实验报告

《Web程序设计》第2次上机作业1、创建网页,要求在浏览器中显示下面的结果:代码:<html><head><title>2-1</title><meta charset="utf-8" /></head><body><h1>&nbsp&nbsp&nbsp2-1 标记&ltfont&gt的使用</h1><font size="5">该标记设置颜色的格式如下,<br>&ltfont color=颜色&gt文本&lt/font&gt<br>例如:<br>&ltfont color=red&gt红色文本&lt/font&gt的结果如下:<br><font color="red" size="5">红色文本</font></font></body></html>运行结果:2、创建网页,网页中的内容如下,可以粘贴到记事本上:第二章HTML 基础2.1 HTML 文档的结构HTML标签告诉浏览器HTML文件的开始和结束,HTML文档中所有的内容都在这两个标签之间。

头部标签放置页面的标题以及文件信息等内容,这两个标签之间的内容统称作HTML的头部,位于头部的内容都不会在网页上直接显示。

主体标签放置绝大多数HTML的内容。

要求设置的网页格式如下:(1)章为标题h1,居中,黑体,红色(2)节为标题h2,居左,楷体,绿色(3)正文有三段,设置为宋体,蓝色代码:<html><head><title>2-2</title><meta charset="utf-8" /></head><body><h1 align="center"><font color="green" face="楷体">2.1 HTML 文档的结构</font></h1><h2 align="left"><font color="red" face="黑体">第二章HTML 基础</font></h2><font color="蓝色" face="宋体">&nbsp&nbspHTML标签告诉浏览器HTML文件的开始和结束,HTML文档中所有的内容都在这两个标签之间。

上海交大 2010届 C++ 上机题

上海交大 2010届 C++ 上机题

实验一VC的使用熟悉VC的使用,用打印“hello world”程序作为实例,练习程序的输入、编译、链接、执行和看结果。

实验二程序设计的基本概念和变量及表达式假设校园电费是0.6元/千瓦时,输入这个月使用了多少千瓦时的点,算出你要交的电费。

假如你只有1元和1毛的硬币,请问各需要多少1元和1毛的硬币。

输入输出:输入这个月使用的电量:11电费:6.6共需6张1元和6张实验三分支程序设计使用switch语句设计一个简单的四则运算计算器,开始的时候由用户选择操作数是整数还是浮点数。

选择浮点数的话操作数与结果都是浮点数然后用户输入:操作数1 运算符操作数2显示计算结果。

若除法的除数为0,则要求显示“除数不能为0”。

输入输出:1.整数运算2.浮点数运算13 +4 = 7实验四分支与循环程序设计猜数字首先随机生成一个1到100的整数,然后由人不断输入数字来猜这个数字的大小。

猜错了,系统会给出一个提示,然后让用户继续猜。

猜对了就退出程序。

例如:随机生成的数是42,开始提示的范围是1~100,然后玩家猜是30,猜测是错误的,系统告诉你太小了。

然后,玩家继续输入60,猜测依然错误,系统告诉你太大了。

直到玩家猜到是42为止。

用户最大的猜测次数是10次。

输入输出:猜数字请输入:30太小了!请输入:60太大了!请输入:50太大了!请输入:40太小了!太大了!请输入:42恭喜你,猜对了实验五数组设计一个井字游戏,两个玩家,一个打圈(O),一个打叉(X),轮流在3乘3的格上打自己的符号,最先以横、直、斜连成一线则为胜。

如果双方都下得正确无误,将得和局。

输入输出:井字游戏开始玩家1:2 2棋盘:? ? ?? O ?? ? ?玩家2:1 2棋盘:? X ?? O ?? ? ?玩家1:1 1棋盘:O X ?? O ?? ? ?玩家2:3 3棋盘:O X ?? O ?? ? X玩家1:3 1棋盘:O X ?? O ?O ? X玩家2:2 1棋盘:O X ?X O ?O ? X玩家1:1 3棋盘:O X OO ? X玩家1胜利实验六函数画图题:根据用户选择在“指定位置”上画出正立等腰三角形(指定位置和高度),倒立等腰三角形(指定位置和高度),长方形(指定位置、长和宽),正方形(指定位置和边长),菱形(指定位置和高度)。

上海交通大学继续教育学院2012春——程序设计(C)作业1(有答案)

上海交通大学继续教育学院2012春——程序设计(C)作业1(有答案)

程序设计(C)作业一1.C语言程序的执行,总是起始于()。

A.程序中的第一条可执行语句B.程序中的第一个函数C.main函数D.包含文件中的第一个函数2.以下叙述不正确的是()。

A.一个C源程序必须包含一个main函数B.一个C源程序可由一个或多个函数组成C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面3.一个C语言程序是由()。

A.一个主程序和若干个子程序组成B.若干函数组成C.若干过程组成D.若干子程序组成4.C语言程序能够在不同的操作系统下运行,这说明C语言具有很好的()。

A.适应性B.移植性C.兼容性 D.操作性5.C语言规定,在一个源程序中,main函数的位置()。

A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后6.下列说法中正确的是()。

A.C语言程序书写时,不区分大小写字母B.C语言程序书写时,一行只能写一个语句C.C语言程序书写时,一个语句可分成几行书写D.C语言程序书写时每行必须有行号7.下面对C语言特点,不正确描述的是()。

A.C语言兼有高级语言和低级语言的双重特点,执行效率高B.C语言既可以用来编写应用程序,又可以用来编写系统软件C.C语言的可移植性较差D.C语言是一种结构化模块化程序设计语言8.C语言程序的注释是()。

A.由“/*”开头,“*/”结尾B.由“/*”开头,“/*”结尾C.由“//”开头D.由“*/”或“//”开头9.C语言程序的语句都是以()结尾。

A.“.”B.“;” C.“,” D.都不是10.标准C语言程序的文件名的后缀为()。

A..c B..cpp C..obj D..exe11.C语言程序经过编译以后生成的文件名的后缀为()。

A..c B..obj C..exe D..cpp12.C语言程序经过链接以后生成的文件名的后缀为()。

A..c B..obj C..exe D..cpp13.C语言编译程序的首要工作是()。

交大程序设计C第二次作业Word版

交大程序设计C第二次作业Word版

以下说法中正确的是()选择一项:a. C 语言比其他语言高级b. C 语言不用编译就能被计算机执行c. C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式d. C 语言出现得最晚,具有其他语言的一切优点题目2给定如下程序:#include <stdio.h>void main(){ char c1 =‘A’, c2 =‘a’;printf("%c\n", (c1,c2));}则以下叙述正确的是()选择一项:a. 程序输出大写字母Ab. 程序输出小写字母ac. 格式说明符不足,编译出错d. 程序编译通过,但运行时出错题目3下列程序的输出结果为()void main(){ int x, y, z;x = y = 1;z = x++, y++, ++y;printf(“%d, %d, %d\n”, x, y, z);}选择一项:a. 2, 3, 2b. 2, 3, 1c. 2, 2, 1d. 2, 3, 3题目4对表达式for( 表达式1; ; 表达式3)可以理解为()选择一项:a. for(表达式1; 表达式3; 表达式3)b. for(表达式1; 1; 表达式3)c. for(表达式1; 表达式1; 表达式3)d. for(表达式1; 0; 表达式3)有以下语句:int x; char c[10];则正确的输入语句是()选择一项:a. scanf(“%d%s”, x, &c);b. scanf(“%d%s”, x, c);c. scanf(“%d%s”, &x, c);d. scanf(“%d%s”, &x, &c);题目6下列程序的输出结果是()#include <stdio.h>void main(){ int a = 2, b = 3, c = 0, d;d = !a && !b ||!c;printf(“%d\n”, d);}选择一项:a. 编译出错b. 1c. -1d. 0题目7在C 语言中,复合语句要用一对()括起来。

上机实训(一)教案 上海交大版中职计算机网络技术基础

上机实训(一)教案 上海交大版中职计算机网络技术基础

课题上机实训(一)课时2课时(90 min)教学目标知识技能目标:(1)掌握Packet Tracer的安装方法和简单设置。

(2)掌握使用Packet Tracer建立网络拓扑的方法。

(3)掌握网络设备的简单配置。

(4)熟悉抓包软件WireShark的安装和界面。

(5)掌握使用WireShark捕获数据包的方法。

(6)了解数据包的首部明细内容。

思政育人目标:通过上机实训,使学生将所学知识应用到实践中,并在实践中深化认识,达到学以致用的目的;通过上机实训,使学生感受成功的乐趣,增强学生的自信心;通过上机实训,培养学生的钻研精神和探索精神;通过上机实训,使学生认识到网络技术对社会发展的重要性,自己应该努力学习网络技术,为社会主义建设做好准备。

教学重难点教学重点:Packet Tracer模拟器的使用、抓包软件WireShark的使用教学难点:使用Packet Tracer建立网络拓扑、使用WireShark 捕获数据包教学方法讲授法、演示法、实操法、问答法教学用具电脑、投影仪、多媒体课件、教材、文旌课堂APP教学设计第1节课:考勤(2 min)→传授新知(15 min)→上机实训(20 min)→实训总结(8 min)第2节课:传授新知(10 min)→上机实训(25 min)→实训总结(5 min)→课堂小结(3 min)→任务布置(2 min)教学过程主要教学内容及步骤设计意图第一节课考勤(2 min)n 【教师】使用文旌课堂APP进行签到n 【学生】按照老师要求签到培养学生的组织纪律性,掌握学生的出勤情况传授新知(15 min)实训1:Packet Tracer模拟器的使用n 【教师】介绍Packet Tracer的概况,及其安装和使用方法1.安装Packet TracerPacket Tracer是由Cisco公司发布的一个辅助学习工具,是为思科网络课程初学者设计、配置、排除网络故障提供的一个网络模拟环境。

上海交大C 程序设计试题集(含答案).

上海交大C  程序设计试题集(含答案).

程序设计试题集一、单项选择题1.1.定义一个具有10个元素的整型数组,应当使用代码是A.int a[10]; B.int a[2, 5]; C.int a[]; D.int *a[10];1.2.设int a = 8, b = 7, c = 6, x = 1;执行以下语句后x的值是if (a > 6) if (b > 7) if (c > 8) x = 2; else x = 3;A.0 B.1 C.2 D.31.3.下列代码中,正确的数组定义是① int a[ ] = {“string”}; ② int a[5] = {0, 1, 2, 3, 4, 5};③ char a = {“string”}; ④ char a[ ] = {0, 1, 2, 3, 4, 5};A.① B.② C.③ D.④1.4.字符串”abc\x43\\\np\102q”的长度是A.9 B.12 C.13 D.171.5.执行下列程序后,输出的结果是#define M(a, b) (a) > (b)?(a)+(b):(a)-(b)void main(){ int i = 10, j = 15; printf(“%d\n”, 10*M(i, j)); }A.10 B.25 C.250 D.-501.6.执行下列程序后,输出的结果是#define M(a, b) (a) > (b)?(a):(b)void main(){ int i = 10, j = 5; printf(“%d\n”, M(i, j)*10); }A.10 B.5 C.100 D.1501.7.计算立方数时,不可能引起二义性的宏定义是A. #define S(x) x*x*x B.#define S(x) (x)*(x)*(x)C.#define S(x) (x*x*x) D.#define S(x) ((x)*(x) *(x))1.8.下列代码中,正确的是A. char a[3][ ] = {‘abc’, ‘1’};B. char a[ ][3] = {‘abc’, ‘1’};C. char a[3][ ] = {“ab”, “12”};D. char a[ ][3] = {“ab”, “12”};1.9.设char str1[10] = “ABCDE”, str2[10] = “xyzuvw”;则执行以下语句后的输出结果是printf(“%d”, strlen(strcpy(str1, str2)));A.12 B.11 C.8 D.61.10.以只写方式打开一个二进制文件,应选择的使用方式是A.”a+” B.”w+” C.”rb” D.”wb”1.11.设int x = 8, y, z; 执行y = z = x--; x = y == z后,变量x的值是A.0 B.1 C.8 D.91.12.设变量m ,n ,a ,b ,c ,d均为0,执行(m = a==b)||(n=c==d)后,m ,n的值是A. 0 ,0B. 0 ,1C. 1 ,0D. 1 ,11.13.设int x[ ] = {2, 6, 5, 7, 9, 15, 12}, *p = x;则不能正确引用数组元素的表达式是A.*(p--) B.*(--p) C.*(p++) D.*(++p)1.14.根据变量定义“static int b[5];”,b[4]的值是。

交大版《C程序设计教程》课后参考答案及更正

交大版《C程序设计教程》课后参考答案及更正
2.(7)倒数第 5 行:printf("%3 d",x[i][j]); 删除“3”与“d”间隔,即修改为:printf("%3d",x[i][j]);
176 页,2.(10)main 函数第 1 行:int x[][N]={{1,2,3),{4),{5,6,7,8),{9,10}},y[N], i; 修改为:int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N], i;
填空题: (1)x%3==0&&x%7==0 (2)4
第4章 选择题:
CDADD
D
填空题:
(1)7
(2)5 (3)01123 (4)不能。因为若输入为“65”,那对于%c 的输入格式控制符而言,6 和 5 都分别代表的 是一个字符。6 被第一个 scanf 语句接收,进入 while 的条件判断,是真的,因此继续接收 5; 接着进行第二次条件判断,还是真的,则继续循环,最后接收的是回车符,条件还是真的。
因此循环没有结束。
(5)1
(6)24/n 改错:其中 main 函数的第 5 行由:if((k&2)!=0) continue;
修改为: if((k++%2)!=0) continue;
(7)labCeD12dF 改错:其中 main 函数第 5 行由:if(a&&2!=0&&(ch>'a'&&ch<='z')) ch=ch-'a'+'A'; 修改为:
228 页,2.(10)main 函数第 1 行:int a[4][4]={{1,2,3,4),...... 修改为:int a[4][4]={{1,2,3,4},......

(2021年整理)2011上海交通大学C期末考A参考答案

(2021年整理)2011上海交通大学C期末考A参考答案

一、选择填空(每空1分,共20分)1、类Sample的拷贝构造函数的声明语句为C。

A.Sample(Sample other)B.Sample Sample(Sample other)C.Sample(const Samplet&other)D.Sample Sample(const Sample&other)2、Sample是用户定义的某个类,obj是Sample类的对象,p是Sample类的指针,则执行语句p=new Sample时会调用A函数,执行obj=*p时会调用C函数,执行delete p是会调用B函数。

A.Sample类的构造函数B.Sample类的析构函数C.Sample类的赋值运算符重载函数D.Sample类的拷贝构造函数3、对于下面定义的类class Base{protected:int x;public:Base(int val=1){x=val;}virtual void disp(){cout<<x<<endl;}void print(){cout<<x<<endl;}};class Derived:public Base{int y;public:Derived(int val1=0,int val2=0):Base(val1){y=val2;}void disp(){cout<<"x="<<x<<"y="<<y<<endl;}void print(){cout<<"x="<<x<<"y="<<y<<endl;}};有定义Derived dd(3,4);Base*bp=&dd,bb=dd;则dd.disp()执行的是A,dd.print()执行的是B,bp->disp()执行的是A,bb.disp()执行的是C。

C上机实验4含答案及代码

C上机实验4含答案及代码

特别注意事项:1,文件名“_王小小_数学0801_实验1.doc”中的实验1指的是第几次上机实验,与“实验指导书”中的实验几没有关系;2,文件名“_王小小_数学0801_实验1.doc”中的doc是文件扩展名,请注意不要提交如“*******.doc.doc”的文件;3,上机实验作业一律以word形式提交;4,若上机实验有多个作业,请按照下列加粗方式给每个作业命名,如:实验1_1,实验1_25,实验作业的word文件的页眉不可少,请每次注意修改;6,每个实验作业均要给出比较详细的程序说明,且程序说明位于程序之后。

程序说明是特别重点考察的部分,请按照你的理解进行撰写;7,该部分“特别注意事项”可以随同作业一并提交,请提交作业前进行对照。

特别注意事项:1,文件名“_王小小_数学0801_实验1.doc”中的实验1指的是第几次上机实验,与“实验指导书”中的实验几没有关系;2,文件名“_王小小_数学0801_实验1.doc”中的doc是文件扩展名,请注意不要提交如“*******.doc.doc”的文件;3,上机实验作业一律以word形式提交;4,若上机实验有多个作业,请按照下列加粗方式给每个作业命名,如:实验1_1,实验1_25,实验作业的word文件的页眉不可少,请每次注意修改;6,每个实验作业均要给出比较详细的程序说明,且程序说明位于程序之后。

程序说明是特别重点考察的部分,请按照你的理解进行撰写;7,该部分“特别注意事项”可以随同作业一并提交,请提交作业前进行对照。

实验4_1_1/*************************************************使用全局变量,求两正整数的最大公约数和最小公倍数*************************************************/#include <iostream>using namespace std;int maxgy;int maxgb;void fun(int a,int b){int t,i;if(a<b){t=a;a=b;b=t;} // 求的a为最大数i=b;while(i>=1){if(b%i==0 && a%i==0){maxgy=i;break;}i--;}i=a;while(i>=a){if(i%a==0 && i%b==0){ maxgb=i;break;}i++;}}void main (){ int x,y;cout<<"input data x,y:";cin>>x>>y;fun (x,y);cout<<"该两个数的最大公约数是:"<<maxgy<<endl;cout<<"该两个数的最大公倍数是:"<<maxgb<<endl;}程序说明:将两正整数的最大公约数和最小公倍数都设为全局变量,先做好函数的声明和定义,再用main主函数调用。

C语言程序设计实验指导_上交大_课前练习-改错-完善程序-课后练习参考答案--2018.10修改

C语言程序设计实验指导_上交大_课前练习-改错-完善程序-课后练习参考答案--2018.10修改

实验一Visual C++集成环境实验内容(一)程序改错1.(1)无法运行(2)将第二个C程序重新存放到另一个工程文件中(3)同一个工程文件只能有一个main函数2.(1)/*一个简单的程序*/(2)void main()(3)}3.(1)int a,b,c;(2)a=2;(3)c=a*b;(二)完善程序1.(1)year(2)month(3)day2.(1)c(2)a*a+b*b(3)c3.(1)4(2)4*a(3)s课后练习1.D2.D3.A4.C5.C6.C7.stdio.h8.main函数实验二数据类型、运算符和表达式课前练习1. 20 8 70 02. Abs3 Class _else sum my_class 、3block a+b for fun(4) a-b3.B4.D5.A6.C7.D8.B实验内容(一)程序改错1.(1)int x1,x2,x3,x4;(2)scanf("%d,%d",&a,&b);(3)c=x4*1000+x2*100+x3*10+x1;2.程序1:① 2 2②error C2065: 'a1' : undeclared identifier变量a1没有定义sum=a+b+c③ 1error C2146: syntax error : missing ';' before identifier 'printf' printf语句之前缺少分号sum=a+b+c;④0 error(s), 0 warning(s)⑤a=1 b=3 c=2 sum=6⑥语句以分号结束;变量要先定义后使用。

程序2:① 2 2②error C2065: 'sum' : undeclared identifier变量sum没有定义int sum=a+b;1error C2086: 'c' : redefinition变量c重复定义c=a+b+sum;③a=1 b=3 sum=8④在同一个函数体内,变量要先定义后使用,但不能重复定义程序3:① 1error C2106: '=' : left operand must be l-value赋值符号左边参数错误c=a+b;②c=4③赋值符号左边只能是变量,不能是常量或表达式3.(1)t=a;(2)a=b;;(3)printf("a=%d\tb=%d\n",a,b);(二)完善程序1.(1) int n(2)”%d”,&n(3)s2.(1)float s(2)(float)a/b(3)%f3.(1)#include<math. h>(2)pow(x,y)(3)“%lf”,s课后练习1.D2.D3.A4.B5.C6.D7.D8.A9.C10.A11.A12.B13.B14.C15.B16.A17.C18.819. 5和420.2.00000021. double (删除最后“语句”两字)22. double23. a=3(回车)实验三if选择结构语句课前练习1. 9 02. 11 03.(1)n%2==0(2)n%2!=0(3)a>=’0’&& a<=’9’(4)a>=’a’&& a<=’z’(5)a>=’A’&& a<=’Z’(6)(a>=’a’&& a<=’z’) || (a>=’A’&& a<=’Z) (7)(x<-10) || ((x>10) && (x<=20))(8)a%b!=0(9)a*b>04.-15.D6.10 30 407.C8.A9.D10.A实验内容(一)程序改错1.(1)scanf("%d",&t);(2)if(t%5==0 && t%7==0) (3)else2.(1)char y;(2)if(x==0)(3)printf("%c\n",y);3.(1)if(x==m)(2){ printf("Wrong\n"); (3)printf("Too low\n");}(二)完善程序1.(1)#include<math.h>(2)(-b+sqrt(d))/(2*a);(3)sqrt(fabs(d))/(2*a); 2.(1)c>='a'&& c<='u'(2)c>='v'&& c<='z'(3)c=c+5-26;3.(1)c>='a'&& c<='z'(2)c>='A'&& c<='Z'(3)else课后练习1.D2.C3.A4.A5.B6.C7.C8.C9.B10.D11.A12.D13.D14.A15.2,016.A17.D18.A19.D20.B21.C22.!23.D24.C25.D26.B实验四switch开关语句课前练习1. 4 112.if((k==1)||(k==2)printf("a\n");else if((k==3)||(k==4)||(k==5))printf("b\n");elseprintf("c\n");3.switch (x){case 1:case 2:case 3:printf("x\n");break;case 19:case 20:case 21:printf("y\n");break;default:printf("z\n");}实验内容(一)程序改错1.(1)switch(x)(2)case 4:(3)default:2.(1)a=s/250;(2)case 0:d=0;break;(3)default:d=15;3.(1)else p=1;(2)a=num/1000;(3)num%10(二)完善程序1.(1)grade/10(2)break(3)default2.(1)x<0(2)a=x/10(3)a3.(1)month(2)days=31(3)(year%4==0 && year%100!=0)||(year%400==0)课后练习1.C2.D(将程序最后一条语句改为:printf("a=%d,b=%d\n",a,b);)3.A4.B5. pass 中及格不及格6.2实验五while、do… while循环结构语句课前练习1.02.103.A4.C5.A6.A7.C实验内容(一)程序改错1.(1)long k=1;(2)num/=10;(3)while(num);2.(1)int m=0,mc=0,j;(2)if((k%7==0)||(k%11==0))(3) m=m+k3.(1)max=min=grade;(2)while(grade>=0)(3)if(grade<min)(二)完善程序1.(1)t%2==0(2)m=m*10+t;(3)n=n/10 ;2.(1)ch=getchar()(2)ch>='0'&& ch<='9'(3)(ch>='a'&& ch<='z') ||(ch>='A'&& ch<='Z')3.(1)fabs(t)(2)s/n(3)pi*4课后练习1.A2.A3.D4.B5.A6.C7.A8.30实验六for循环结构语句课前练习1.C2.D3.C4. for(i=100;i!=0;i--) printf("p");5.D6.C7.D8. k<=nk++9.A10.C11.C实验内容(一)程序改错1.(1)int sum=1,s0=0,s1=0,s2=1,s;(2)for(n=4;n<=10;n++)(3)s2=s;2.(1)for(i=1;i<=y;i++)(2)t*=x;(3)t=t%1000;3.(1)int i,count=0;(2)if((i%7==0 || i%11==0) &&(i%77!=0))(3)count++;(二)完善程序1.(1)s=0.0(2)scanf("%d",&n)(3) s+1.0/s12.(1)i%100(2)a+b+c==x(3)t++3.(1)2(2)n(3)n%i==0课后练习1.A2.B3.C4.A5.D6.C7.A8.B9.A10.C实验七循环控制语句课前习题1.D2.循环语句3.break4.A5.206. 6 67.88.B实验内容(一)程序改错1.(1)int i,j,k,sum=0;(2)for(i=1;i<=3;i++)(3)if((k>=1&&k<=6) && (i!=0)&&(j!=0)||(k==0)) 2.(1)for (j=2; j<i; j++)(2)if (i%j == 0)(3)if (j>= i)3.(1)m=n;(2)while(m!=0 && m>=c)(3)if(m==0)(二)完善程序1.(1)i<10(2)j%3!=0(3)continue;2.(1)total=0;(2)sum=0;(3)total+sum;3.(1)j=(y%100)/10;(2)i!=j && i!=k && k!=j(3)t%5==0课后练习1.D2.C3.D4.B5.C6.B7.A8. 9 19. 10 710. x=16 y=8实验八函数的初步应用课前练习1. void return2.C3.A4.C5. 7 36.C7. D8.D实验内容(一)程序改错1.(1)int fun(int a,int b,int c)(2)if(a+b>c&&b+c>a&&a+c>b)(3)else if(a==b||b==c||a==c) 2.(1)if(n==1)(2)c=age(n-1)+2;(3)printf("%d\n",age(5))3.(1)while(n!=i)(2)if(n%i==0)(3)n=n/i;(二)完善程序1.(1)i*i==x(2)return 0(3)f(i+100) && f(i+168)2.(1)x(2)s1+s2+s3==15(3)t++3.(1)f<t(2)return f(3)fun(n)课后练习1.C2.C3. A4.D5.A6.B8.A9.A10.C11.A12.A13.B14.D15.10,2016.13 11 1217.218. 3 119.-3120.22121.2222.main函数23. return void24. void int实验九函数的其他应用课前练习1.B2.A3.A4.C5.D6.D7.558.C9.D10.A实验内容(一)程序改错1.(1)#define SWAP(x,y) temp=x;x=y;y=temp(2)int a,b,temp;(3) SWAP(a,b);2.(1) #define DIV(m) (m)%3==0(2)scanf("%d",&m);(3)if(DIV(m))3.(1)switch(n%10)(2)case 1:c1++;break;(3)case 2:c2++;break;(二)完善程序1.(1)#define f1(x,y) x*y(2)#define f2(a,b) (a)*(b)(3)#include<abc.h>2.(1)12 48 (2)12 12 3.(1)2 313 8 52 315 10 52 3(2)略课后习题1.C2.C3.A4.C5.D6.A7.A8. 1 39.11010.911. 4 012.1013.2715.6 72016.4817. 1 218.5,2519.620.3实验十一维数组课前练习1-3. BDD4. 24 85. B6. int ss[s];7. 37158. 6 5 4, 3 2 1实验内容(一)程序改错1.(1)scanf("%f", a); 改为scanf("%f", &a);(2)max=min=avg=a[1]; 改为max=min=avg=a[0];(3)if(min<a[i]) 改为if(min>a[i]) 或if(a[i]<min)2.(1)while(x[++i]!=0); 改为while(x[i++]!=0);(2)while(x[i] = 0) 改为while(x[i] == 0)(3)sum\=c; 改为sum/=c;3.(1)s=count=1; 改为s=count=0;(2)scanf("%d", a[i]); 改为scanf("%d", &a[i]);(3)break; 改为continue;(4)printf("s=%f count=%f\n", s, count); 改为printf("s=%d count=%d\n", s, count); (二)完善程序1.2.(1)#include<math.h>(2)aver=s/N(3)s=fabs(a[i]-aver)(4)printf(“%f”,t)3.(1)s=i*3+j*5(2)break(3)a[k]!=0 && s!=0课后练习1-2. DC3. I=1、x[I-1]4. 0 1 2, 2 0 15. 47,176. 15,127. 6, 28. 2 3 4,5 5 69. 0 2 3, 2 3 5, 7 11 13实验十一二维数组课前练习1. A2. 96、83-6. BBDB7. x<4、y<3、z==38. 0、1 0、2 1 0、3 2 1 0实验内容(一)程序改错1.(1)s1=s2=s3=s4=0 改为s1=0,s2=0,s3=0,s4=0 (2)s2=s2+a[m][j] 改为s2=s2+a[m-1][j](3)for(i=0; i<m; i++) 改为for(i=1; i<m-1; i++)(4)s=s1-s2-s3-s4 改为s=s1+s2+s3+s42.(1)int a[3][3],sum 改为int a[3][3],sum=0(2)scanf("%d",a[i][j]) 改为scanf("%d",&a[i][j]) (3)sum=sum+a[i][j] 改为sum=sum+a[i][i](4)sum=%f\n 改为sum=%d\n3.(1)int i,j,s,a[3][3],sum 改为int i,j,s,a[3][3],sum=0 (2)for(i=0; i<3; i++) 改为for(i=0; i<3; i=i+2) (3)sum=*a[i][j] 改为sum*=a[i][j](二)完善程序1.(1)sum=0(2)a[i][i]2.(1)i<M(2)j<N(3)a[i][j](4)printf("\n")3.(1)printf("\n")(2)(j+2)%3(3)printf("\n")课后练习1-3. CDD4. 85. sum1=38, sum2=346. A7. 168. 1 0 0, 1 2 0, 3 5 89. 1 1,1 3 3 110.1 3 6 102 5 94 87实验十二数组与函数课前练习1-3. ACB4. 改变、不改变5. D实验内容(一)程序改错1.(1)fun(int a[],int n) 改为double fun(int a[],int n) (2)int i,n; 改为int i;(3)double s; 改为double s=0;(4)s=s+a(i); 改为s=s+a[i];(5)ave=fun(a[],n); 改为ave=fun(a,n);2.(1)float j=0; 改为float xa=0;(2)j<=n 改为j<n(3)j<=n 改为j<n(4)return xa 改为return c3.(1)sum=array[0] 改为sum=0(2)int score[10] 改为float score[10](3)scanf("%f", score) 改为scanf("%f", &score) (4)aver=average(score[10]) 改为aver=average(score)课后练习1-2. DC3. -1、24. 225. 3、6、96. 1、a[i-1][j-1]+a[i-1][j]、j<=i7. 1、1 2 1、1 3 3 18. 1 3 4 5 6 7、3 4 5 6、End of main()!9. 0 1 2、3 4 510. 2 3 4、1 2 3、2 3 4实验十三字符数组与字符串课前练习1-5. BCDBD6. strcmp(s1,s2)==0实验内容(一)程序改错1.(1)char p[ ] 改为char p[20](2)n=1; 改为n=0;(3)p[n]=='\0' 改为p[n]!='\0'(4)length(s[20]) 改为length(s)2.(1)max = 0 改为max = p[0](2)max > p[i] 改为max < p[i](3)i = k 改为k = i(二)完善程序1.(1)s[i]!='\0'(2)s[i]='A'(3)s[i] += 1(4)s2.(1)strlen(s)(2)s[i]!='\0'(3)s[i] >= 'A' && s[i] <= 'Z'(4)fun(s)课后练习1-5. DAACB6. 77. GL8. dian e9. France、England、China、Australia10. Simon、Niku、Josiah、George11. strlen(s)、s[i]>=’a’ && s[i]<=’z’、s[i]+32、’\0’、s2[j]!=s2[n2-j-1]、j<n3、f(s) 实验十四指针与一维数组课前练习1. DDDAC2. 5实验内容(一)程序改错1.(1)printf("%d ", p+i) 改为printf("%d ", *(p+i))(2)m=0 改为m=i(3)k=m 改为m=k(二)完善程序1.(1)math.h(2)&b(3)*pb2.(1)n(2)*(p +i-1) * 3 - 1课后练习1. 42-11. BBBACDACAA12. 2、213. 3、714. 4、16、6415. 36、21416. 26、22、46实验十五指针与字符串课前练习1-6. CBAAAA实验内容(一)程序改错1.(1)int *a = upper 改为int *a = &upper(2)int *b = lower 改为int *b = &lower;(3)a++ 改为(*a)++(4)b++ 改为(*b)++(二)完善程序1.(1)*p!='\0'(2)*p<='Z'(3)*p += 322.(1)s(2)*p!='\0'(3)*p-'0'课后练习1-9. BDCDDCBAD10. gae11. 65、7、8、7612. b5、c7、h1013. 432156、43265114. jih、gfe、dcba实验十六指针与函数课前练习1-2. BB3. 100 2004. B实验内容(一)程序改错1.(1)scanf("%d", p) 改为scanf("%d", p++) (2)*p < *max 改为*p > *max(3)if(max = arr) 改为if(max == arr)(4)while(i=0; i<n; i++); 改为for(i=0; i<n; i++) 2.(1)int num[ ] 改为int num[5](2)num[i] = 0 改为num[k]=0(3)switch (s) 改为switch (*s)(4)num[k]++ 改为num[i]++(二)完善程序1.(1)int *x(2)x[i]==x[i+1](3)n-1(4)f==1课后练习1-4. DCCD5. 10,15,15,106. 21437. i<n-1、a[i]>a[j]、”%d”,p+i、”%d”,*(p+i)8. 4、5、649. 36、9410. *p1=15、*p2=011. 43210、9876512. 10、15、19实验十七结构体、共同体和枚举类型课前习题1.B2.D3.A4.B5.D6.A7.B8.C9.A10.A实验内容(一)程序改错1.(1)enum day{sun,mon,tue,wed,thu,fri,sat};(2)scanf("%s",s);(3)printf("明天是:%s\n",str[d+1]);2.(1) };(2)struct employee em[4]={{1,"wang",25},{2,"li",38},{3,"zhang",30},{4,"qian",45}};(3)if(em[i].age>35)3(1)strcpy(,"Liming");(2)s1.sex='F';(3)printf("%s\n",);(二)完善程序1.(1)struct Date(2)&t.year,&t.month,&t.day(3)t.year,t.month,t.day2.(1)stu[i].score(2)stu[i].score<=stu[j].score(3)sum/N3.(1)S(2)x[i].sex=='M'(3)n课后习题1.B2.C3.D4.D5.B6.37.0,6,7,8,158. 64,48 4,39.410. 0 111.712. struct student a={1021,'M',"zhang"};13.8014. typedef int Integer实验十八文件操作课前练习1. FILE *zx2-4. BBC(一)程序改错1.(1)FILE fp 改为FILE *fp(2)fopen("stu_list.txt", "rb") 改为fopen("stu_list.txt", "wb") (3)fwrite(stu[i] 改为fwrite(&stu[i](4)fread(stu[i] 改为fread(&stu[i](二)完善程序1.(1)FILE(2)NULL2.(1)"filea.dat","r"(2)!feof(3)fgetc(fp)课后练习1-9. CDACBBDAC10. fscanf11. a+12. 123,45613. 3.3实验十九指针与二维数组课前练习1-3. ADC(一)程序改错1.(1)int *p[3] 改为int (*p)[3](2)p[i][j] = (*(p+i)+j) * 5 改为p[i][j] = *(*(p+i)+j) * 5 (3)fun(array[3], 3) 改为fun(array, 3)(二)完善程序1.(1)(*p)[4](2)i==3(3)*(*(p+i)+j)(4)a课后练习1-9. ACBBBCBCA10. 511. if、for、while、switch12. 1 2 5、6 7 8、9 11 12实验二十指针的其他应用课前练习1-2. DB3. 分配内存单元的首地址实验内容(一)程序改错1.(1)(char *)table[] 改为char *table[](2)strcpy 改为strcmp(3)lookup_keyword("return", *keyword 改为lookup_keyword("return", keyword (4)lookup_keyword("main", *keyword 改为lookup_keyword("main", keyword(二)完善程序1.(1)double (*f)(double)(2)b = x(3)cos课后练习1-2. AC3. 44. true、true、a=5、*p1=5、**p2=55. one、two、three、hree6. invisible7. pip、install、numpy实验二十一内存的动态分配及链表课前练习1. A2. 113. C实验内容(一)程序改错1.(1)s = (NODE)malloc(sizeof(NODE)) 改为s = (NODE*)malloc(sizeof(NODE)) (2)s= (NODE*)malloc(sizeof(*NODE)) 改为s= (NODE*)malloc(sizeof(NODE)) (3)p->next = s->next 改为p->next = s(二)完善程序1.(1)stdlib.h(2)(int *)malloc(sizeof(int))(3)free(p)课后练习1. head->next、p、head->next、(NODE*)malloc(sizeof(NODE))2. NODE*、i<n、h==NULL、p->x>p2->x3. POT、head、p2->next、p->next4. p1->word、NULL、c[i].num++、h = h->next。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验名称:循环结构程序设计和数组的应用
1、程序填空
下面程序的功能为:计算1~100之间的偶数之和,完成以下的程序并运行出正确的结果。

# include <stdio.h>
void main()
{int i,s=0;
/**************found*************/
i=2 ;
while(i<=100)
{s=s+i;
/**************found**************/
i+=2 ;
}
printf(“s=%d”,s);
}
结果:s=2550
2、程序改错
(1) 下面程序的功能为:计算10!,修改以下的程序并上机运行通过。

#include <stdio.h>
void main()
{int n,t;
for(n=1,t=1,t<10,t++);for(n=1,t=1;t<=10;t++)
n=n*t;
printf(“10!=%d\n”,n);
}
结果:10!=3628800
(2) 下面程序的功能为:计算1~100之间能被3和7整除的数之和,修改以下的程序并上机运行通过。

#include <stdio.h>
void main()
{int i,s;
s=0;s=0; i=1;
while(i<=100);;
{if(i%3==0||i%7==0){if(i%3==0&&i%7==0)
s+=i;
i=i+1;
}
printf(“s=%d”,s);
}
结果:S=210
3、有一个分数序列:2/1、3/2、5/3、8/5、13/8、……,编写一个C程序,求出这个数列的前30项之和。

解:
#include <stdio.h>
void main()
{
int i=1;
double t,x=1,y=2,sum=0;
while(i<=30)
{
sum=sum+y/x;
t=y;
y=y+x;
x=t;
i++;
}
printf("%f\n",sum);
}
结果:
4、编写程序,求1!+2!+3!+…+10!。

解:
#include <stdio.h>
int sum = 0;
int CountSum(int value)
{
if(value == 1) return 1;
else
return value * CountSum(value - 1);
}
void main()
{ int i;
for(i = 1; i <= 10; i++)
{ /*累加*/
sum += CountSum(i);
}
printf("%d\n",sum);
}
运行结果:
数组的应用
1.程序填空
(1)下面程序的功能为:输入10个数字到数组中,统计其中正数的个数并求和,完成以下的程序并运行出正确结果。

#include <stdio.h>
void main()
{ int i,a[20],sum,count;
sum=0;
count=0;
for(i=0;i<10;i++)
/**************found**************/
scanf(“%d“, &a[i] );
for(i=0;i<10;i++)
if(a[i]>0)
{count++;
/**************found**************/
sum+= a[i] ;
}
printf(“sum=%d,count=%d\n”,sum,count);
}
(2)下面程序的功能为:将3行4列的矩阵转置,如:
A= 128411109765321
A ’= 12
8411
731062951 完成以下的程序并运行出正确结果。

#include <stdio.h>
void main()
{int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int b[4][3],i,j;
for(i=0;i<=2;i++)
/**************found**************/
for( j=0;j<=3;j++ )
/**************found**************/
b[j][i]=a[i][j] ;
printf(“array b:\n “);
for(i=0;i<=3;i++)
{for(j=0;j<=2;j++)
printf(“%4d”,b [i][j]);
printf(“\n”);
}
}
2. 程序改错
(l) 阅读下面的程序,修改以下程序中的错误并上机运行。

#include <stdio.h>
void main()
{int a[5],n;
for(n=0;n<=5;n++) for(n=0;n<=4;n++)
scanf(“%d”,&a); scanf(“%d”,&a[n]);
for(n=0;n<=5;n++) for(n=0;n<=4;n++)
printf(“%5d”,a[n]);
}
(2) 下面程序的功能为:有一个3×4的矩阵,要求输出最大元素的值,以及它的行号和列号,修改以下的程序并上机运行。

#include <stdio.h>
void main()
{int max,i,j,r,c; static int a[3][4]={{12,9,-10,28},{31,19,10,-3},
{15,46,41,-9}};
max=a[1][1];max=a[0][0];
for(i=1;i<=3;i++)for(i=1;i<=2;i++)
for(j=1;j<=4;j++)for(j=1;j<=3;j++)
if(a[i][j]>max)
{max=a[i][j];
r=i+1;
c=j+1; }
printf(“max=%d,row=%d,colum=%d\n”,max,r,c);
}
3.编写一个C程序,实现对10个整数进行升序排序输出。

#include<stdio.h>
void main( )
{
int x[10];
int i,j,s;
printf("input 10 int nombers:\n");
for(i=0;i<10;i++)
scanf("%d",&x[i]);
printf("\n");
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if (x[j]>x[j+1])
{s=x[j]; x[j]=x[j+1]; x[j+1]=s; }
printf("Result is:\n");
for(i=0;i<10;i++)
printf("%d ",x[i]);
}
4.编写一个程序,读入9个裁判所打的分数,去掉一个最高分,去掉一个最低分,求剩余7个分数的平均值(要求用数组实现)。

#include "stdio.h"
void main()
{
int i,min=0,max=0;
float score[9],sum=0;
for(i=0;i<9;i++)
{
printf("pls input referee”s score’s:\n",i+1);
scanf("%f",&score[i]);
}
for(i=0;i<9;i++)
{
if(score[i]<score[min]) min=i;
if(score[i]>score[max]) max=i;
sum+=score[i];
}
sum=sum-score[min]-score[max];
printf(" cut the highest mark:%g score’s \n",score[max]);
printf("cut the lowest points:%g score’s \n",score[min]);
printf("average:%g score’s \n",sum/7);
}
提交的内容包括:程序填空题、程序改错题和编程题给出能运行出正确结果的完整的程序代码文件,所有程序代码放在一个WORD文件中,按照“学号+姓名+实验二程序”命名文件,将此文件作为附件发送到吴老师邮箱(********************.com)。

上述两部分工作都必须完成,完成一半工作的只计一半分数。

未全部完成者酌情给分。

相关文档
最新文档