大连理工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。
c语言上机练习
第一次上机练习(首次)1.阅读以下程序,说出其功能和运算结果(输入5↙)。
#include <stdio.h>int main( ){int n ;int factorial(int n) ;scanf("%d",&n) ;printf("%d\n", factorial(n)) ;return 0 ;}int factorial(int n){int i, fact=1 ;for(i=1;i<=n;i++)fact=fact*i ;return fact ;}答案:120 求n的阶乘。
2.改正下列程序中的错误,在屏幕上显示“Welcome to You!”。
#include <stdio.h>int mian( ){printf("Welcome to You!\n")return 0 ;}答案:2行main4行末尾少分号3.编写程序在屏幕上显示以下内容:Programming is fun.And Programming in C is even more fun!答案:#include <stdio.h>int main( ){printf("Programming is fun.\nAnd Programming in C is even more fun!\n") ;return 0 ;}4.编写程序输出以下图案:* * * ** * ** **答案:#include <stdio.h>void main( ){printf("* * * *\n");printf(" * * *\n");printf(" * *\n");printf(" *\n");}5.编写程序,计算并在屏幕上显示10~20的平方值。
C语言程序设计实验五 参考答案
答案:
#include<stdio.h>
void main()
{
int i,j,num=0;
for(i=3;i<=1000;i++)
{
for(j=2;j<=1000;j++)
if(i%2==0)
break;
5-4从键盘输入一个整数n,计算2n+1与++n之和。要求计算两数之和用函数实现。
答案:
#include<stdio.h>
void main()
{
int a;
int sum(int n);
printf("input n:\n");
scanf("%d",&a);
sum(a);
}
int sum(int n)
if(i%2!=0)
{
printf("%5d",i);
num++;
if(num%10==0)
printf("\n");
}
}
printf("\n");
}
*************************************************************************************************************实验三*******************************************
c语言程序设计实验五参考答案实验解答实验五参考答案编程语言c语言吧c语言答案
大连理工大学软件学院编译第五次上机作业属性计算1
编译技术第5次上机内容
目的:充分理解语义分析的方法及相关语义计算的执行时机,用C++程序实现。
要求:
1.以S属性的语法制导定义为基础,将下表的语义规则嵌套在语法分析的过程中,即实现语法制导的翻译过程。
2.以语法分析部分的两次上机结果为基础,添加语义分析部分。
即以LL(1)文法或者LR文法为基础。
当产生式完全推导出来或者归约时执行对应的语义动作。
3.输入:
5+3+8*2
输出:24
4.若输入有误,如:3**2(4+5)
则应提示:*后面缺少运算对象,
2后面缺少运算符,
请重新输入!
5.由于输入串是具体的数值,因此应调用相应的词法分析的功能。
扩展:
1.对浮点数也能完成上述的操作。
2.增加减法和除法对应的产生式,并能计算其语义结果。
3.在FTP中第五次上机的文件夹中有两个压缩包,用递归下降法实现的程序在压缩包“recursion_calculator.rar”中,用非递归的预测分析方法实现的程
序在压缩包“predict_calculator.rar”中。
可以任选其一作为基础进行改进。
将其改造成有减法和除法的程序,并写出对应的产生式。
《C语言》上机实验题及参考答案
《C语言》上机实验题及参考答案2017《C语言》上机实验题及参考答案为了帮助大家备考接下来的计算机二级考试,应届毕业生店铺整理了2017《C语言》上机实验题及参考答案,希望能帮助大家备考计算机二级考试。
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语言上机实验完整答案
实验 2
程序代码 #include<stdio.h> void main () {char a;int i;
for (i=1;;i++) {
a=getchar(); if(a=='\n') break; switch(a) {case '0':printf(" zero ");break;
case '1':printf(" one ");break; case '2':printf(" two ");break; case '3':printf(" three ");break; case '4':printf(" four ");break; case '5':printf(" five ");break; case '6':printf(" six ");break; case '7':printf(" seven ");break; case '8':printf(" eight ");break; case '9':printf(" nine ");break; }
printf("input a number\n"); scanf("%d",&n); h=n-7*i;
while(h>7) {i=i+1; h=n-7*i;} switch(h) { case 1: printf("星期一\n"); break ; case 2: printf("星期二\n"); break ; case 3: printf("星期三\n"); break ; case 4: printf("星期四\n"); break ; case 5: printf("星期五\n"); break ; case 6: printf("星期六\n"); break ; case 7: printf("星期日\n"); break ; } } 运行结果
c语言程序设计上机答案
c语言程序设计上机答案C语言程序设计是一门实践性很强的课程,上机练习是掌握C语言编程技能的重要环节。
以下是一些常见的C语言上机练习题目及其参考答案,供学习者参考。
1. 打印“Hello, World!”```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 计算两个数的和```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("%d + %d = %d\n", a, b, sum);return 0;}```3. 判断一个数是否为素数```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); ++i) { if (n % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d 是素数。
\n", num);} else {printf("%d 不是素数。
\n", num); }return 0;}```4. 计算圆的面积```c#include <stdio.h>#include <math.h>double calculateArea(double radius) {return M_PI * radius * radius;}int main() {double radius, area;printf("请输入圆的半径:");scanf("%lf", &radius);area = calculateArea(radius);printf("半径为 %f 的圆的面积是:%f\n", radius, area); return 0;}```5. 字符串反转```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int length = strlen(str);for (int i = 0; i < length / 2; ++i) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```6. 计算阶乘```c#include <stdio.h>unsigned long long factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}int main() {int num;printf("请输入一个非负整数:");scanf("%d", &num);printf("%d 的阶乘是:%llu\n", num, factorial(num)); return 0;}```7. 排序算法(冒泡排序)```c#include <stdio.h>void bubbleSort(int arr[], int n) {for (int i = 0; i < n - 1; ++i) {for (int j = 0; j < n - i - 1; ++j) { if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}int main() {int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]);bubbleSort(arr, n);printf("排序后的数组是:\n");for (int i = 0; i < n; ++i) {printf("%d ", arr[i]);}printf("\n");return 0;}```8. 寻找最大值```c#include <stdio.h>int findMax(int arr[], int n) {int max = arr[0];for (int i = 1; i < n; ++i) {if (arr[i] > max) { max = arr[i]; }}return max;。
C语言上机实验 答案
实验一上机操作初步(2学时)一、实验方式:一人一机二、实验目的:1、熟悉VC++语言的上机环境及上机操作过程。
2、了解如何编辑、编译、连接和运行一个C程序。
3、初步了解C程序的特点。
三、实验内容:说明:前三题为必做题目,后两题为选做题目。
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程序设计(4学时)一、实验方式:一人一机二、实验目的:1、掌握C语言的数据类型。
C语言第五六次作业
当前编程题: 级第五次作业 级第五次作业---求两组整数的异或集 当前编程题:11级第五次作业 求两组整数的异或集 3.【问题描述】从标准输入中输入两组整数(每行不超过 个整数,每组整数中元素 【问题描述】从标准输入中输入两组整数 每行不超过 个整数, 每行不超过20个整数 不重复),合并两组整数 去掉在两组整数中都出现的整数, 合并两组整数, 不重复 合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序 输出(即两组整数集“异或” 输出(即两组整数集“异或”)。 输入形式】首先输入第一组整数,以一个空格分隔各个整数; 【输入形式】首先输入第一组整数,以一个空格分隔各个整数;然后在新的一行上 输入第二组整数,以一个空格分隔,行末有回车换行。 输入第二组整数,以一个空格分隔,行末有回车换行。 输出形式】按从大到小顺序排序输出合并后的整数集( 【输出形式】按从大到小顺序排序输出合并后的整数集(去掉在两组整数中都出现 的整数,以一个空格分隔各个整数)。 的整数,以一个空格分隔各个整数)。 样例输入】 【样例输入】 5 1 4 32 8 7 9 -6 5 2 87 10 1 样例输出】 【样例输出】 87 32 10 9 8 7 4 2 -6 样例说明】第一组整数为5 【样例说明】第一组整数为 1 4 32 8 7 9 -6,第二组整数分别为 , 5 2 87 10 1。将第一组和第二组整数合并(去掉在两组整数中都出现的整数5 。将第一组和第二组整数合并(去掉在两组整数中都出现的整数 ),并从大到小顺序排序后结果为 和1),并从大到小顺序排序后结果为 ),并从大到小顺序排序后结果为87 32 10 9 8 7 4 2 -6。 。 评分标准】该题要求输出两组整数的异或集,共有5个测试点 个测试点, 【评分标准】该题要求输出两组整数的异或集,共有 个测试点,提交程序文件名 为xor.c。 。
(完整版)C语言上机练习题及答案
(完整版)C语言上机练习题及答案1输入三个整数x,y,z,把这三个数由小到大输出。
# includevoid main(){int x,y,z,a;scanf ("%d,%d,%d",&x,&y,&z);if(x>y) {a=x; x=y;y=a;}if(x>z) { a=x; x=z; z=a;}if(y>z) {a=y; y=z; z=a;}printf("%d,%d,%d\n",x,y,z);}2输入圆的半径,输出圆的周长和面积。
# include# define PI 3.1415926# define S ==PI*r*r# define V (4.0/3)*PI*r*r*rvoid main(){double r;printf("please input r:");scanf("%lf",&r);printf("area is %.4lf\n",S);printf("volume is %.4lf\n",V);}输入正方形的边长,输出正方形的周长和面积。
# includevoid main(){float c,zc,mj;printf("输入你的正方形");scanf("%f\n",&c);zc=4*c;mj=c*c;printf("周长%f,面积%f,边长%f",zc,mj,c);}3用格式输入函数输入3个字符,并用输出函数反向输出3个字符和他们的ASCII 码。
# includeint main(){char-ch1,ch2,ch3;printf("please input three characters:\n");scanf("%C%C%c",&ch1,&ch2,&ch3);printf("%c\n%d\n",ch3,ch3);printf("%c\n%d\n",ch2,ch2);printf("%c\n%d\n",ch1,ch1);}输入一个摄氏温度,要求输出华氏温度。
c语言第五版课本课后习题答案
c语言第五版课本课后习题答案C语言是一门广泛应用的编程语言,其第五版课本通常包含了大量的理论知识和实践练习。
课后习题是帮助学生巩固和检验学习成果的重要部分。
以下是一些C语言第五版课本课后习题的答案示例,请注意,这些答案仅供参考,具体答案可能因课本版本和习题内容的不同而有所变化。
# 第一章:C语言概述习题1:简述C语言的特点。
答案: C语言是一种结构化编程语言,具有高效性、可移植性、丰富的运算符和数据类型等特点。
它广泛应用于系统软件、嵌入式系统等领域。
习题2:解释编译型语言和解释型语言的区别。
答案:编译型语言在执行前需要通过编译器将源代码转换为机器语言,生成可执行文件;而解释型语言在执行时由解释器逐行解释执行,不需要编译过程。
# 第二章:数据类型与变量习题1:列举C语言中的基本数据类型。
答案: C语言的基本数据类型包括整型(int)、浮点型(float和double)、字符型(char)等。
习题2:什么是变量?变量声明的一般形式是什么?答案:变量是存储数据值的容器,其名称可以代表内存中的一个存储位置。
变量声明的一般形式为:`数据类型变量名;`。
# 第三章:控制结构习题1:什么是条件语句?列举C语言中的条件语句类型。
答案:条件语句用于根据条件的真假来控制程序的执行流程。
C语言中的条件语句包括if语句、if...else语句和switch语句。
习题2:循环语句的作用是什么?C语言中有哪些循环语句?答案:循环语句用于重复执行一段代码直到满足特定条件。
C语言中的循环语句包括for循环、while循环和do...while循环。
# 第四章:函数习题1:函数的定义是什么?函数的作用是什么?答案:函数是一段具有特定功能的代码块,可以被重复调用。
函数的作用是实现代码的模块化,提高代码的复用性。
习题2:函数声明和函数定义的区别是什么?答案:函数声明提供了函数的名称、返回类型和参数列表,但不包含函数的实现细节;函数定义则包含了函数的实现代码。
大连理工大学开发区c++实验五继承与派生答案
大连理工大学开发区c++实验五继承与派生答案
1下面对派生类的描述中,错误的是(D)。
A.一个派生类可以作为另外一个派生类的基类。
B.派生类至少有一个基类。
C.派生类的成员除了它自己的成员外,还包含了它的基类的成员。
D.派生类中继承的基类成员的访问权限到派生类中保持不变。
2下列对友元关系叙述正确的是(A)。
A.不能继承。
B.是类与类的关系。
C.是一个类的成员函数与另一个类的关系。
D.提高程序的运行效率。
3当保护继承时,基类的(B)在派生类中成为保护成员,不能通过派生类的对象来直接访问。
A.任何成员。
B.公有成员和保护成员。
C.公有成员和私有成员。
D.私有成员。
4设置虚基类的目的是(B)。
A.简化程序。
B.消除二义性。
C.提高运行效率。
D.减少目标代码。
5在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是(C)。
A.派生类的对象可以赋给基类的对象。
B.派生类的对象可以初始化基类的引用。
C.派生类的对象可以直接访问基类中的成员。
D.派生类的对象的地址可以赋给指向基类的指针。
- 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++)。