大连理工c语言第五次上机作业参考答案
c语言上机实验题及参考答案

5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}
大连理工c语言第五次上机作业参考答案

第五次上机作业:(请用指针实现)1.数据移位有n(n<=10)个整数,使前面各数顺序向后移m(m<=n)个位置,最后m 个数变成最前面的m个数,如图所示。
编写函数shift(a,n,m)实现上述功能,在主函数中输入n个整数和输出调整后的n个数。
SAMPLE OUTPUTnInput n(n<=10):10Input 10 integers:Output the original:Output the shifted:#include <>#define N 10void shift(int a[ ],int n,int m);void main( ){ int i,n,m;int a[N];printf("Input n(n<=10):");scanf("%d",&n);printf("Input %d integers:\n",n);for(i=0;i<n;i++)scanf("%d",a+i);printf("Output the original:\n");for(i=0;i<n;i++)printf("%d ",*(a+i));printf("\n");printf("Input m(m<=%d):",n);scanf("%d",&m);shift(a,n,m);printf("Output the shifted:\n");for(i=0;i<n;i++)printf("%d ",*(a+i));printf("\n");}void shift(int a[ ],int n,int m){ int i,j,t;for(i=0;i<m;i++){ t=a[n-1];for(j=n-2;j>=0;j--)a[j+1]=a[j];a[0]=t;}}2.字符串排序在主函数中输入10个不等长的字符串放入二维字符数组中,编写函数sort()利用指针数组对其排序,在主函数中输出排好序的字符串。
上机作业参考答案5

1.输出一个数组中最大元素下标#include <stdio.h>void main( ){int i,j,a[10];for(i=0;i<=9;i++) scanf("%d",&a[i]);j=0;for(i=1;i<=9;i++)if(a[i]>a[j]) j=i;printf("最大元素值是:%d\n",a[j]);printf("最大元素下标:%d\n", j);}2.输入任意10个数,打印出其中最大数、最小数。
#include <stdio.h>void main( ){int a[10],i,j, k;for(i=0;i<=9;i++) scanf("%d",&a[i]);j=k=0;for(i=1;i<=9;i++){if(a[i]>a[j]) j=i;if(a[i]<a[k]) k=i;}printf("最大元素:%d\n",a[j]);printf("最小元素:%d\n", a[k]);}3.从10个整数中把最小的数找出来,并与最前面的数对调, 指出最小的数原来的位置。
#include <stdio.h>void main( ){int i,j,a[10],k;for(i=0;i<=9;i++) scanf("%d",&a[i]);j=0;/*假设最小值是第0个元素*/for(i=1;i<=9;i++)if(a[i]<a[j]) j=i;if(j!=0){ k=a[0]; a[0]=a[j]; a[j]=k;}printf("min number is:%d\n",a[0]);printf("the position is:%d\n", j);}4.已知5个数已经按由大到小排好序,请编程使得它们按由小到大排序。
C语言上机实验

实验一(第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;}实验结果:参见类型转换规则。
C语言上机作业试题5套含答案

第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。
程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。
例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。
例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。
(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。
)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。
方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。
例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。
⏹A说:不是我。
⏹B说:是C。
⏹C说:是D。
⏹D说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
(完整版)大连理工大学C语言题库(12套)

/*********Begin**********/
/********** End **********/
}
main()
{
int n,a[100],i,num;
void TestFunc();
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
num=average_num(a,n);
12.数组名可以作为函数的实参和形参.Y
13.一个include命令只能指定1个被包含的文件。y
14.若p为指针变量,a为数组名,则a-p是合法的表达式.y
15.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。Y
16.C语言中,关闭一个文件就删除了这个文件.N
对对错错错对对对对对错对对对对错
printf("the num is:%d\n",num);
TestFunc();
}
void TestFunc()
{
FILE *IN,*OUT;
int n;
int i[10];
int o;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Read File Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Write File Error");
}
c程序语言第五版习题答案

c程序语言第五版习题答案C程序语言第五版习题答案在学习编程语言的过程中,练习和理解习题是非常重要的一部分。
对于C程序语言第五版的学习者来说,习题的解答不仅可以帮助巩固所学的知识,还能够提升编程能力。
在本文中,我将为大家提供C程序语言第五版习题的一些答案和解析,希望能够对学习者有所帮助。
1. 习题1-1题目:编写一个程序,在屏幕上输出"Hello, World!"。
解答:```c#include <stdio.h>int main(){printf("Hello, World!\n");return 0;}```解析:这是一个非常简单的程序,使用了C语言中的标准输入输出库函数`printf`来输出字符串"Hello, World!"。
`\n`表示换行符。
2. 习题2-1题目:编写一个程序,计算并输出华氏温度转换为摄氏温度的结果。
解答:```c#include <stdio.h>int main(){float fahrenheit, celsius;printf("请输入华氏温度:");scanf("%f", &fahrenheit);celsius = (fahrenheit - 32) * 5 / 9;printf("摄氏温度为:%.2f\n", celsius);return 0;}```解析:这个程序通过用户输入的华氏温度,使用公式`(华氏温度 - 32) * 5 / 9`来计算摄氏温度,并输出结果。
3. 习题3-2题目:编写一个程序,输入一个浮点数,输出该浮点数的立方值。
解答:```c#include <stdio.h>int main(){float num, cube;printf("请输入一个浮点数:");scanf("%f", &num);cube = num * num * num;printf("立方值为:%.2f\n", cube);return 0;}```解析:这个程序通过用户输入的浮点数,使用乘法运算符`*`计算该浮点数的立方值,并输出结果。
大连理工大学c语言大作业

大连理工大学c语言大作业第一篇:大连理工大学c语言大作业程序设计大作业总结报告——<东北大馅饺子馆>的点餐/帐目信息管理系统选题意义;餐厅账目繁多,通过本系统可以实现餐厅管理的自主化。
更加适应这个信息化的社会。
通过对账目、订单的管理与排序。
也能使餐厅管理者更加直观地看出产品之间的优劣与受众。
使其能够更好的调动资源,达到餐厅的快速发展目的。
设计方案;1)任务分析该系统应包括两大界面—用户界面和管理界面。
用户界面包括用户点餐功能并将用户点餐信息存入账单文件中。
管理界面包括记录饺子的单价,库存等信息并将这些信息按一定规律排列供管理者参考,还要记录每天的收入与库存消耗。
2)系统组成框图系统组成如下图所示,点餐/帐目信息管理系统中任务调度模块是信息管理的指挥中心,所有的功能模块均通过该模块集中管理和调用。
数据文件是用于将改变的记录随时保存起来,I/O交互模块是指数据按键和控制按键的响应操作。
数据按键是窗口的输入输出。
系统平台I/O交互任务调度数据文件添加账目查询账目查询原料销量排序当天收入功能模块设计;本管理系统开发的过程中成功地完成很多函数的编写,而且全部通过程序调试。
下面针对与该系统相关的主要功能函数的编写思路和实现方法作总结。
1)数据描述与数据文件(1)数据描述;系统中共定义了三种结构体分别是struct list(账单信息)、struct dump(原材料信息)、struct system(管理信息)其中账单信息成员定义如下; struct list/*账单信息 */ { int num;/*编号*/ intmonth;/*月份*/ int date;/*日期*/ int table;/*桌号*/ int people;/*人数*/ int add;/*收款金额*/ };原材料信息;struct dump/*原材料信息*/ { int num;/*编号*/ char a[40];/*名称*/ int price;/*单价*/ int quantity;/*库存*/ };管理信息;struct system { struct dump data;/*点餐*/ int cash;/*收款*/ int sale;/*销量*/ int p;/*人数*/ };(2)数据文件;共定义四个数据文件;记录编号的文件count、记录原料的文件dumplings、记录账单的文件customer、数据处理文件system。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五次上机作业:(请用指针实现)
1.数据移位
有n(n<=10)个整数,使前面各数顺序向后移m(m<=n)个位置,最后m 个数变成最前面的m个数,如图所示。
编写函数shift(a,n,m)实现上述功能,在主函数中输入n个整数和输出调整后的n个数。
SAMPLE OUTPUT
Input n(n<=10):10
Input 10 integers:1 2 3 4 5 6 7 8 9 10 Output the original:1 2 3 4 5 6 7 8 9 10 Input m(m<=10):4
Output the shifted:7 8 9 10 1 2 3 4 5 6 #include <stdio.h>
#define N 10
void shift(int a[ ],int n,int m);
void main( )
{ int i,n,m;
int a[N];
printf("Input n(n<=10):");
scanf("%d",&n);
printf("Input %d integers:\n",n);
for(i=0;i<n;i++)
scanf("%d",a+i);
printf("Output the original:\n");
for(i=0;i<n;i++)
printf("%d ",*(a+i));
printf("\n");
printf("Input m(m<=%d):",n);
scanf("%d",&m);
shift(a,n,m);
printf("Output the shifted:\n");
for(i=0;i<n;i++)
printf("%d ",*(a+i));
printf("\n");
}
void shift(int a[ ],int n,int m)
{
int i,j,t;
n
for(i=0;i<m;i++)
{ t=a[n-1];
for(j=n-2;j>=0;j--)
a[j+1]=a[j];
a[0]=t;
}
}
2.字符串排序
在主函数中输入10个不等长的字符串放入二维字符数组中,编写函数sort()利用指针数组对其排序,在主函数中输出排好序的字符串。
#include <stdio.h>
#include <string.h>
#define N 10
#define M 80
void sort(char *s[ ]);
void main()
{ char s[N][M],*strp[N];
int i;
printf("Input 10 strings:\n");
for(i=0;i<N;i++)
gets(s[i]);
for(i=0;i<N;i++)
strp[i]=s[i];
sort(strp);
printf("Output sorted strings:\n");
for(i=0;i<N;i++)
puts(strp[i]);
}
void sort(char *s[ ])
{
int i,j,k;
char *p;
for(i=0;i<N-1;i++)
{ k=i;
for(j=i+1;j<N;j++)
if(strcmp(s[k],s[j])>0)
k=j;
f(i!=j)
{ p=s[k];
s[k]=s[i];
s[i]=p;
}
3.学生成绩统计
有一个班级30个学生5门课,编写函数实现下列功能:
(1)函数average()求第一门课的平均分;
(2)函数findfail()找出有2门以上(含2门)课程不及格的学生,输出其学号和全部课程成绩及平均成绩;
(3)函数findgood()找出平均成绩在90分以上或全部课程成绩在85分以上的学生。
在主函数中输入数据并输出结果。
#include <stdio.h>
#define N 30
#define M 5
int average(int a[ ][M+3]);
void findfail(int a[ ][M+3]);
void findgood(int a[ ][M+3]);
void main( )
{ int s[N][M+3],i,j;
int ave;
printf("Input 5 scores for each student:\n");
for(i=0;i<N;i++)
{ s[i][0]=i+1;
printf("%d:",i+1);
for(j=1;j<=M;j++)
scanf("%d",&s[i][j]);
printf("\n");
}
ave=average(s);
printf("The average of the first course is %d\n",ave);
findfail(s);
printf("The students who failed in 2 or more courses:\n");
for(i=0;i<N;i++)
{ if(s[i][M+2]=='N')
{ for(j=0;j<M+2;j++)
printf("%-5d",s[i][j]);
printf("\n");
findgood(s);
printf("The students whose average>90 or each course>85:\n");
for(i=0;i<N;i++)
{ if(s[i][M+2]=='Y')
{ for(j=0;j<M+2;j++)
printf("%-5d",s[i][j]);
printf("\n");
}
}
}
int average(int a[ ][M+3])
{ int i,sum=0;
for(i=0;i<N;i++)
sum+=a[i][1];
return(sum/N);
}
void findfail(int s[][M+3])
{ int i,j,count,sum;
for(i=0;i<N;i++)
{ count=0;
sum=0;
for(j=1;j<=M;j++)
{ sum+=s[i][j];
if(s[i][j]<60)
count++;
}
s[i][M+1]=sum/M;
s[i][M+2]=0;
if(count>=2)
s[i][M+2]='N';
}
}
void findgood(int s[ ][M+3])
{ int i,j,count;
for(i=0;i<N;i++)
{ count=0;
for(j=1;j<=M;j++)
if(s[i][j]>=85)
count++;
if(count==M || s[i][M+1]>=90)
s[i][M+2]='Y';
}
}
4.矩阵乘法
在主函数中输入m和n (0<m, n<=5),分别定义矩阵A m X n,B n X m和C m X m,从键盘读入矩阵A和B中元素的值。
调用函数multiply()计算矩阵C=A XB。
并在主函数中输出矩阵C。
SAMPLE OUTPUT
Input m and n (1~5):4 3
Input A4 X 3:
1 2 3
4 5 6
7 8 9
10 11 12
Input B3 X 4:
1 2 3 4
4 5 6 8
7 8 9 10
C=AXB is:
30 36 42 50
66 81 96 116
102 126 150 182
138 171 204 248
#include <stdio.h>
#define N 5
void multiply(int a[][N],int b[][N],int c[][N],int m,int n);
void main()
{ int a[N][N],b[N][N],c[N][N];
int i,j,m,n;
printf("Input m and n(1~5):");
scanf("%d%d",&m,&n);
printf("Input A %d*%d:\n",m,n);
for(i=0;i<m;i++)。