C语言实验参考答案11
c语言实验报告(附答案版)
![c语言实验报告(附答案版)](https://img.taocdn.com/s3/m/0d2dd1194431b90d6c85c745.png)
1、熟练掌握while,do—while,for语句实现循环的方法,包括如何正确地设定循环条件,如何控制循环的次数。
2、掌握break语句与continue语句的使用方法。
3、熟悉循环的嵌套以及从循环体内退出循环的处理。
4、理解什么是循环程序结构。
三、实验指导
为了达到最佳的实验效果,以下提供几条适于模块化编程的指导意见,可供参考。
实验1简单判定性问题求解
一、实验学时
完成本实验需4学时。
二、实验目的
1、阅读程序题
(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法;
(2)掌握不同的类型数据之间赋值的规律;
(3)掌握数据在内存中的存储方式;
(4)学会输入、输出函数的基本格式和使用方法;
(5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。
1)解题分析:解决问题的关键算法为求圆的面积并按要求输出。循环求圆的面积area,若area<40,则用continue语句提前结束本次循环并开始新一轮循环,若area>90,则用break语句跳出循环。
2)算法流程图如图2-1:
3)综合分析
需要从循环体中提前跳出循环,或者在满足某种条件下,不执行循环中剩下的语句而立即从头开始新的一轮循环,这时就要用到break和continue语句。
(1)将一个百分制成绩转换成等级制成绩,百分制与等级制的对应关系如下表:
百分制
90-100
80-89
70-79
60-69
<60
等级制
优
良
中
差
劣
具体要求如下:
1)用switch语句实现该功能;
C语言实验册完整答案
![C语言实验册完整答案](https://img.taocdn.com/s3/m/01a964b169dc5022aaea0051.png)
实验2答案五.程序改错#include<stdi o.h>int main(void){int x=3,y;y = x*x;printf("%d = %d * %d\n",y,x,x); /* 输出*/printf("%d * %d = %d\n",x,x,y);return 0;}六、一般编程题6.1#include<stdio.h>int main(void){int x,y;printf("Input x: ");scanf("%d",&x);printf("Input y: ");scanf("%d",&y);printf("%d + %d = %d\n",x,y,x+y);printf("%d - %d = %d\n",x,y,x-y);printf("%d * %d = %d\n",x,y,x*y);printf("%d / %d = %d\n",x,y,x/y);printf("%d %% %d = %d\n",x,y,x%y);return 0;}6.2#include<stdio.h>int main(void){ float x; double y;printf("Input x: ");scanf("%f",&x);printf("Input y: ");scanf("%lf",&y);printf("%f + %f = %f\n",x,y,x+y);printf("%f - %f = %f\n",x,y,x-y);printf("%f * %f = %f\n",x,y,x*y);printf("%f / %f = %f\n",x,y,x/y);return 0;}6.3#include<stdio.h>int main(void){ char c;printf("Input c: ");scanf("%c",&c);printf("%c\n",c+32);return 0;}6.4#include<stdio.h>int main(void){int celsius,fahr;fahr = 150;celsius = 5*fahr/9 - 5*32/9;printf("fahr = %d, celsius = %d\n", fahr, celsius);return 0;} 如果使用公式9)32(5-⨯=f c 计算结果不一样,celsius = 65。
C语言 习题十一 参考答案
![C语言 习题十一 参考答案](https://img.taocdn.com/s3/m/11cc62ed9b89680203d8255a.png)
3.已有一个存放数千种仓库物质信息的文件 CK,每个信息元素含两个内容:物质编号 kno 和库存量 KNOM。请编程通过检查全库物质的库存量,建立一个新的文件 XK,它包含所有库存量大于 100 的物质 的编号和库存量。 参考程序: /*p360_3.c*/ #include "stdio.h" main() {int n,m;
{scanf("%d%s",&n,xm); for(j=0;j<5;j++) scanf("%d",&sc[i][j]); }
fp=fopen("abc.txt","w"); for(i=0;i<N;i++)
fprintf(fp,"%5d%s%4d%4d%4d%4d%4d\n",n,xm,sc[i][0],sc[i][1],sc[i][2],sc[i][3],sc[i][4]); fclose(fp); } /*p360_1a.c*/ #include "stdio.h" main() {FILE *fp; int num,mark[5],i,sum,n=0; float av,t[5]={0}; char name[20]; if((fp=fopen("abd.txt","w"))==NULL)
FILE *fp1,*fp2; fp1=fopen("ck.txt","r"); fp2=fopen("xk.txt","w"); while(feof(fp1)==0) {fscanf(fp1,"%d,%d",&n,&m);
CPrimer 第11章泛型算法课后习题答案
![CPrimer 第11章泛型算法课后习题答案](https://img.taocdn.com/s3/m/d6c3433f793e0912a21614791711cc7930b77817.png)
第11章-泛型算法1.algorithm头文件定义了一个名为count的函数,其功能类似于find。
这个函数使用一对迭代器和一个值做参数,返回这个值出现的次数的统计结果。
编写程序读取一系列int型数据,并将它们存储到vector对象中然后统计某个指定的值出现了多少次。
// 11.17_11.1_int_to_vector_count.cpp : 定义控制台应用程序的入口点。
//#include"stdafx.h"#include<vector>#include<iostream>#include<algorithm>using namespace std;int _tmain(int argc, _TCHAR* argv[]){cout << "\tInput some int numbers ( ctrl + z to end):\n\t ";vector<int> iVec;int iVal;while ( cin >> iVal )iVec.push_back( iVal );cout << "\n\tInput a num to search in the iVec: ";cin.clear();cin >> iVal;int iCnt = 0;if ( iCnt = count( iVec.begin(), iVec.end(), iVal )){cout << "\n\tThe value " << iVal << " occurs " << iCnt << " times." << endl;}system("pause");return 0;}2.重复前面的程序,但是,将读入的值存储到一个string类型的list对象中。
哈工大 C语言实验报告(答案)
![哈工大 C语言实验报告(答案)](https://img.taocdn.com/s3/m/ada3623583c4bb4cf7ecd111.png)
实验1简单C 程序设计2、将下列由程序流程图描述的算法,转换为C 源代码并填写到图1-3b 框中,然后输入计算机并运行后并分析其运行结果(本小题2分)。
图1-3a 程序流程图图1-3bC 源程序3、项目编程(本小题12分)(1)请向计算机输入a,b,c 三个值,经过程序处理后,要求输出其中最大的一个。
/*C 语言源代码*/main(){}项目要求:①画出程序流程图;②根据流程图编写程序图1-4a 程序流程图图1-4b C 源程序(2)请向计算机输入a,b,c 三个值,经过程序处理后,要求按值从小到大输出。
项目要求:①画出程序流程图;②根据流程图编写程序/*输出最大值*/main(){}项目提示:①可采用if结构;②a,b,c由scanf函数输入程序流程图/*将a,b,c三个值由小到大输出*/main(){}1-5a程序流程图图1-5b C源程序(3)编程实现打印下列由字母组成的树形。
说明:本项目编程的知识点是让学生对双重循环语句结构的理解,清楚双重循环的特点(即当外循环变量中的值变化一次时,则内循环变量中的值要变化若干次)。
提示:可用外循环变量代表行数;内循环变量代表需打印字符的个数。
难点:①字符个数是按奇数变化递增②左右边界字符打印的位置图1-6a字母A-G组成的树形/*打印图形*/main(){}图1-6b C源程序(4)设计报选体育科目统计程序设某学校在新生入学时,需报选体育选修科目。
体育科目包括:篮球、排球、体操、兵乓球和网球。
请为某班级(30人)统计报选各体育科目人数。
项目要求:①画出程序流程图;②根据流程图编写源程序项目提示:可采用switch与for结构程序流程图C语言源代码main(){}图1-7a程序流程图图1-7b C 源程序实验2数组与排序五、项目编程(本题12分,每小题4分)1、将下列一组数读入到a 数组中,然后从a数组中找出其中最大的元素并与第一个数互换;然后从a数组中找出最小的元素并与最后一个数互换,而其余元素的位置不变。
《C语言程序开发》实验报告和参考答案
![《C语言程序开发》实验报告和参考答案](https://img.taocdn.com/s3/m/9aefa871f342336c1eb91a37f111f18583d00c9b.png)
《C语言程序开发》实验报告和参考答案1实实验报告课程名称:C语言程序开发学生姓名:学生学号:专业班级:指导教师:实验日期:2目录实验一循环结构程序设计(一)求1+2+3+.......+100,1100nn(二)输出100~200之间的不能被3整除的数。
实验二数组及其应用(一)有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
(二)输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
实验三函数及其应用(一)有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。
问第4个学生岁数,他说比第3个学生大2岁。
问第3个学生,又说比第2个学生大2岁。
问第2个学生,说比第1个学生大2岁。
最后问第1个学生,他说是10岁。
请问第5个学生多大。
(二)用选择法对数组中10个整数按由小到大排序,一维数组名作函数参数。
实验四指针及其应用(一)将若干字符串按字母顺序(由小到大)输出。
(二)有a个学生,每个学生有b门课程的成绩。
要求在用户输入学生序号以后,能输出该学生的全部成绩。
用指针函数来实现。
3实验一循环结构程序设计实验题目:(一)求1+2+3+.......+100,1100nn(二)输出100~200之间的不能被3整除的数。
实验目的1.掌握循环语句的执行过程及用法2.初步掌握循环程序设计的基本技巧3.掌握用while语句,do-while语句和for语句实现循环的方法4.掌握多重循环的使用(一)实验步骤1.题目分析2.源程序代码3.运行结果(二)实验步骤:1.题目分析源程序代码3.运行结果4实验二数组及其应用实验题目:(一)有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
(二)输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
实验目的1.掌握一维数组的定义及其元素的引用方法2.掌握利用一维数组实现一些常用算法的基本技巧3.掌握二维数组的定义及其应用4.掌握字符数组和字符串函数的使用5.掌握有关二维数组的基本编程技巧(一)实验步骤:1.题目分析2.源程序代码:3.运行结果(二)实验步骤:1.题目分析2.源程序代码3.运行结果5实验三函数及其应用实验题目:(一)有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。
C实验报告答案
![C实验报告答案](https://img.taocdn.com/s3/m/b08fae11cf84b9d528ea7af4.png)
C程序设计初步一、实验目的(1) 熟悉C语言程序的运行环境(VC++ 。
(2) 掌握C语言程序的上机步骤,了解运行C程序的方法。
(3) 掌握C语言程序的书写格式和C语言程序的结构。
二、实验内容(均要求给出运行结果)1.程序改错题(1) 以下程序实现计算x×y的值并将结果输出。
请改正程序中的错误。
#include ""void main()/**********FOUND**********/{ int x=y=4;z=x*y;/**********FOUND**********/printf("z=%d/n", Z);}答案:=======(答案1)=======int x=,4,y=4,z;=======(答案2)=======printf("z=%d\n", z);(2) 以下程序实现输入圆的半径,求圆的周长。
请改正程序中的错误。
#include ""void main(){ int r;float l;printf("Enter r:");scanf("%d", &r);/**********FOUND**********/l=2πr/**********FOUND**********/printf("l=%d\n",l);}答案:=======(答案1)=======l=2**r;=======(答案2)=======printf("l=%f\n", l);2.程序填空题(1) 下面程序能对两个整型变量的值进行交换,请填空。
#include ""void main(){ int a=3,b=4,t;t=a;/***********SPACE***********/【】;/***********SPACE***********/【】;printf("a=%d,b=%d\n",a,b);}答案:=======(答案1)=======a=b=======(答案2)=======b=t(2) 下面程序不用第三个变量,实现两个数的对调操作。
计算机C语言实验报告含答案
![计算机C语言实验报告含答案](https://img.taocdn.com/s3/m/78d0df48a31614791711cc7931b765ce04087a19.png)
高级语言程序设计(C语言)实验报告。
………………………………………………………………………………………………一、实验题目: 语句与顺序结构控制程序设计1)编写程序, 已知圆半径radius=1.25,求圆周长和面积。
源代码: 运行结果:#include <stdio.h> d=7.853981#define PI 3.1415926 s=4.908735void main(){float r=1.25,d,s;d=2.0*PI*r;s=PI*r*r;printf("d=%f\n",d);printf("s=%f\n",s);}2)编写程序完成大写字母的小写转换。
源代码: 运行结果:#include <stdio.h> 请输入一个大写字母:H void main() H h{char ch1,ch2;printf("请输入一个大写字母:");ch1=getchar();ch2=ch1+32;printf("%c %c\n",ch1,ch2);}3)任意从键盘输入一个三位整数, 要求正确分离出它的个位、十位和百位数, 并分别在屏幕上显示。
源代码: 运行结果:#include <stdio.h> 请输入一个整数 :123 void main() b=1,s=2,g=3{int a,g,s,b;printf("请输入一个整数: ");scanf("%d",&a);b=a/100;s=(a%100)/10;g=a%10;printf("b=%d,s=%d,g=%d\n",b,s,g);}二、实验题目: 选择结构程序设计程序设计1)设变量a、b、c分别存放从键盘输入的3个整数。
编写程序, 按从大到小的顺序排列这3个整数, 使a成为最大的, c成为最小的, 并且按序输出这3个整数。
C语言实验报告答案
![C语言实验报告答案](https://img.taocdn.com/s3/m/e4b4e5c7afaad1f34693daef5ef7ba0d4a736dc1.png)
C语言实验报告答案二、编程题(参考答案)1、#include “stdio.h”void main(){ int Math=82,eng=78,comp=91,average;average=(Math+eng+comp)/3;printf(“Math=%d,eng=%d,comp=%d,average=%d\n”,Mat h,eng,comp,average);}2、#include “stdio.h”void main(){ int n=152,d1,d2,d3;d1=n%10;d2=(n/10)%10;d3=n/100;printf(“整数%d的个位数字是%d,十位数字是%d,百位数字是%d\n”,n,d1,d2,d3); }3、#include “stdio.h”void main(){ int n1,n2;printf(“Enter n1,n2:”);scanf(“%d,%d”,&n1,&n2);printf(“%d+%d=%d\n”,n1,n2,n1+n2);printf(“%d/%d=%d\n”,n1,n2,n1/n2);printf(“%d%%%d=%d\n”,n1,n2,n1%n2);}三、改错题原错误行(共三行):/********************************** found ********************************/#in clude “stdoi,h”/********************************** found ********************************/ printf(“%d=%d*%d\n”,x);/********************************** found ********************************/ printf(“%d*%d=%d\n”,y);改正后:#include “stdio.h”printf(“%d=%d*%d\n”,y,x,x);printf(“%d*%d=%d\n”,x,x,y);一、改错题1、原错误行(共三行):/********************************** found ********************************/ #include “stdoi,h”/********************************** found ********************************/ scanf(“%lf”,x);/********************************** found ********************************/ y=1/x改正后:#include “stdio.h”scanf(“%lf”,&x);y=1/x;2、原错误行(共两行):/********************************** found ********************************/ { int i,sum;/********************************** found ********************************/ for(i=1,i<=100,i++)改正后:{ int i,sum=0;for(i=1;i<=100;i++)二、编程题(本标题报告上漏印了)2、(因为报告上小题号就是从2开始的,没有第1题)#include “stdio.h”#include “math.h”void main(){ int a,b,c;float s,area,perimeter;printf(“请输入三角形的三边:”);scanf(“%d,%d,%d”,&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a){ perimeter=a+b+c;s=perimeter/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“area =%.2f,perimeter=%.2f\n”,area,perimeter); }elseprintf(“不构成三角形”);}3、#include “stdio.h”void main(){ int i,m,n;float sum=0;printf(“Enter m:”);scanf(“%d”,&m);printf(“Enter n:”);scanf(“%d”,&n);for(i=m;i<=n;i++)sum=sum+1.0/i;printf(“sum=%.3f\n”,sum);}4、#include “stdio.h”void main(){ int i,n;float sum=0;printf(“Enter n:”);scanf(“%d”,&n);for(i=1;i<=n;i++)sum=sum+1.0/(2*i-1);printf(“sum=%.2f\n”,sum);}5、#include “stdio.h”void main(){ int i,m,n;long a=1,b=1;printf(“Enter m:”);scanf(“%d”,&m);printf(“Enter n:”);scanf(“%d”,&n);for(i=1;i<=m;i++)a=a*i;for(i=1;i<=n;i++)b=b*i;printf(“%d!+%d!=%ld\n”,m,n,a+b); }实验三一、改错题原错误行(共三行):/********************************** found ********************************/ double sum;/********************************** found ********************************/ for(i=1;i<10;i++)sum=sum+fact(i);p rintf(“1!+2!+…+10!=%f\n”,sum);}/********************************** found ********************************/ double fact(int n);改正后:double sum=0;for(i=1;i<=10;i++)double fact(int n)二、编程题1、int even(int n){ if(n%2==0)return 1;elsereturn 0;}2、int prime(int x){ int n;for(n=2;n<x;n++)< bdsfid="194" p=""></x;n++)<>if(x%n==0)return 0;if(x>=2)return 1;elsereturn 0;}3、#include “stdio.h”int fun1(int n){ if(n%2==0)return 1;elsereturn 0;}int fun2(int x){ int n;for(n=2;n<x;n++)< bdsfid="213" p=""></x;n++)<> if(x%n==0)return 0;if(x>=2)return 1;elsereturn 0;}void main(){ int i,m,n,a,b;printf(“Enter m:”);scanf(“%d”,&m);printf(“Enter n:”);scanf(“%d”,&n);a=fun1(m);b=fun2(n);if(a==1) printf(“%d是偶数\n”,m);else printf(“%d是奇数\n”,m);if(b==1) printf(“%d是素数\n”,n);else printf(“%d不是素数\n”,n); }实验四一、改错题1、原错误行(共两行):/********************************** found ********************************/ { int i,s;/********************************** found ********************************/ if(str[i]<=’0’||str[i]>=’9’)改正后:{ int i,s=0;if(str[i]>=’0’&&str[i]<=’9’)2、原错误行(共三行):/********************************** found ********************************/ { int i,j,n,x,a[n];/********************************** found ********************************/ a[i] =a[i+1];/********************************** found ********************************/ a[i]=x; /*插入改正后:{ int i,j,n,x,a[10];a[i+1] =a[i];a[j]=x;3、原错误行(共三行):/********************************** found ********************************/ max=str;/********************************** found ********************************/ if(max<str)< bdsfid="252"p=""></str)<>/********************************** found ********************************/ max=str;改正后:strcpy(max,str);if(strcmp(max,str)<0)strcpy(max,str);4、原错误行(共两行):/********************************** found ********************************/ void fun(int a[],int n) /*该函数求出a数组中n个元素奇数的个数*//********************************** found ********************************/ if(a[i]%2==0) m++;改正后:int fun(int a[],int n)if(a[i]%2!=0) m++;二、编程题1、#include “stdio.h”void main(){ int i,n,min,max,s1,s2,t,a[10];printf(“请输入数据个数n值:”);scanf(“%d”,&n);printf(“请输入这%d个数:”,n);for(i=0;i<n;i++)< bdsfid="273" p=""></n;i++)<>scanf(“%d”,&a[i]);min=a[0]; s1=0;max=a[n-1]; s2=n-1;for(i=0;i<n;i++)< bdsfid="278" p=""></n;i++)<>{ if(a[i]<="">if(a[i]>max) { max=a[i]; s2=i; }}if(s1!=0) { t=a[0];a[0]=a[s1];a[s1]=t; }if(s2!=n-1) { t=a[n-1];a[n-1]=a[s2];a[s2]=t; } for(i=0;i<n;i++)< bdsfid="285" p=""></n;i++)<>printf(“%d ”,a[i]);}2、int sum(int a[],int n){ int i,sum=0;for(i=0;i<n;i++)< bdsfid="292" p=""></n;i++)<>sum+=a[i];return sum;}实验五一、改错题1、原错误行(共两行):/********************************** found ********************************/ scanf(“%d”,&p++);/********************************** found ********************************/ x[0]=x[k];改正后:scanf(“%d”,p++);x[0]=k;二、编程题1、int search(int *a,int n,int x){ int i;for(i=0;i<n;i++)< bdsfid="309" p=""></n;i++)<>if(a[i]==x) return i;return -1;}2、int fun(char *s){ int i,j,n;n=strlen(s);for(i=0,j=n-1;i<="" bdsfid="318" p="">if(s[i]!=s[j])return 0;return 1;}3、此题为选作题#include “stdio.h”void sort(int *a,int n){ int i,j,k,t;for(i=0;i<n-1;i++)< bdsfid="329" p=""></n-1;i++)<> { k=i;for(j=i+1;j<n;j++)< bdsfid="332" p=""></n;j++)<> if(a[j]if(k!=i){ t=a[i];a[i]=a[k];a[k]=t; }}}main(){ int a[10],i,n;printf(“请输入n值:”);scanf(“%d”,&n);printf(“请输入这%d个元素值:”,n);for(i=0;i<n;i++)< bdsfid="345" p=""></n;i++)<>scanf(“%d”,&a[i]);sort(a,n);for(i=0;i<n;i++)< bdsfid="349" p=""></n;i++)<>printf("%d ",a[i]);printf("\n");}一、改错题(原错误行共两行):/********************************** found ********************************/ { scanf(“%d”,&score[j]);/********************************** found ********************************/ printf("总分最高的学生是:%s,%d\n", name, sum);改正后:{ scanf(“%d”,&a[i].score[j]);printf("总分最高的学生是:%s,%d\n", a[k].name, a[k].sum);二、编程题1、#include "stdio.h"typedef struct student /*定义结构体类型*/{ long num;char name[9];int score[3];float aver;}STU;void main(){ STU a[10];int i,j,n,s=0;printf("输入n:");scanf("%d",&n);for(i=0;i<n;i++)< bdsfid="374" p=""></n;i++)<>{ printf("输入第%d个学生的学号、姓名和3门课成绩:",i+1);scanf("%ld",&a[i].num);scanf("%s",a[i].name);s=0;for(j=0;j<3;j++){ scanf("%d",&a[i].score[j]); s+=a[i].score[j]; }a[i].aver=s/3.0;}for(i=0;i<n;i++)< bdsfid="384" p=""></n;i++)<>printf("%s,%.2f分\n",a[i].name,a[i].aver);}三、填空题p->next= head ;head= p ;}p=head ;一、改错题(原错误行共两行):/********************************** found ********************************/ FILE fp;/********************************** found ********************************/if((fp=fopen(“a.txt”,“w”))!=NULL)改正后:FILE *fp;if((fp=fopen(“a.txt”,“w”))==NULL)二、编程题1、#include "stdio.h"#include "string.h"void main(){ FILE *fp;char a[10];if((fp=fopen("test.txt","w"))==NULL) { printf("error");exit(0);}scanf("%s",a);strupr(a);fputs(a,fp);fclose(fp);}2、#include "stdio.h"#include "string.h"void main(){ FILE *fp;char a;if((fp=fopen("test.txt","r"))==NULL) { printf("error");exit(0);}while(!feof(fp)){ a=fgetc(fp);printf("%c",a);}fclose(fp);}3、#include "stdio.h"#include "stdlib.h"typedef struct student{ long num;char name[9];int score[3];float aver;}STU;void main(){ FILE *fp;int i,j,n,s;STU a;scanf("%d",&n);if ((fp=fopen("stud.dat","wb"))==NULL){ printf("File connot be opened\n");exit(0);}for(i=1;i<=n;i++){ scanf("%ld",&a.num);scanf("%s",/doc/204579141.html,); s=0;for(j=0;j<3;j++){ scanf("%d",&a.score[j]); s+=a.score[j]; }a.aver=s/3.0;fwrite(&a,sizeof(STU),1,fp);}fclose(fp);}4、#include "stdio.h"#include "stdlib.h"typedef struct student{ long num;char name[9];int score[3];float aver;}STU;void main(){ FILE *fp;int i,j,n,s;STU a;if ((fp=fopen("stud.dat","rb"))==NULL){ printf("File connot be opened\n");exit(0);}while(fread(&a,sizeof(STU),1,fp)!=NULL){ printf("%ld\t%s\t",a.num,/doc/204579141. html,);printf("%d\t%d\t%d\t%.2f\n",a.score[0],a.score[1],a.score[2], a.aver);}fclose(fp);}。
C语言实验报告_答案
![C语言实验报告_答案](https://img.taocdn.com/s3/m/5821412702020740be1e9b2c.png)
《C语言程序设计》实验指导学院:信息科学与技术学院专业:计算机通信学期:2011~2012学年教师:目录实验1 熟悉C语言程序开发环境............................... 错误!未定义书签。
1.1 实验目的 ......................................................................................... 错误!未定义书签。
1.2 实验预习 ......................................................................................... 错误!未定义书签。
1.3 实验任务 ......................................................................................... 错误!未定义书签。
1.4 实验报告 ......................................................................................... 错误!未定义书签。
实验2 数据描述............................................. 错误!未定义书签。
2.1 实验目的 ......................................................................................... 错误!未定义书签。
2.2 实验预习 ......................................................................................... 错误!未定义书签。
C语言实验题及参考答案
![C语言实验题及参考答案](https://img.taocdn.com/s3/m/7aff127db94ae45c3b3567ec102de2bd9605deaa.png)
C语⾔实验题及参考答案实验⼀1、计算整数各位数字之和(10 分)输⼊⼀个3位正整数,将其每⼀位的数字相加,输出和。
输⼊格式:输⼊⼀个3位正整数。
变量数据类型为unsigned。
输出格式:输出整数每⼀位相加后的整数和。
输⼊样例:输出样例:【参考答案】#include ""int main(){ unsigned int a,ge,shi,bai,sum;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/100;sum=ge+shi+bai;printf("%d\n",sum);return 0;}2、计算代数表达式(10 分)求:输⼊格式:输⼊⾓度x。
变量数据类型为double。
π为。
输出格式:输出y的值,精确到⼩数点后2位。
输⼊样例:输出样例:#include <>#include <>#define PIint main(){double x,y;scanf("%lf",&x);y=sqrt((sin(60*PI/180)+1)*(sin(30*PI/180)+1)/cos(x*PI/180));printf("%.2lf",y);return 0;}3、逆序的三位数(10 分)程序每次读⼊⼀个正3位数,然后输出按位逆序的数字。
注意:当输⼊的数字含有结尾的0时,输出不应带有前导的0。
⽐如输⼊700,输出应该是7。
输⼊格式:每个测试是⼀个3位的正整数。
输出格式:输出按位逆序的数。
输⼊样例:输出样例:【参考答案】#include ""int main(){ int a,ge,shi,bai,b;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/100;b=ge*100+10*shi+bai;printf("%d\n",b);return 0;}4、求整数均值(10 分)本题要求编写程序,计算4个整数的和与平均值。
c 11语言参考答案
![c 11语言参考答案](https://img.taocdn.com/s3/m/13173cbf900ef12d2af90242a8956bec0975a586.png)
c 11语言参考答案C++11语言参考答案C++11是C++语言的一个重要版本,它引入了许多新的特性和改进,使得程序员能够更方便地编写高效、可读性强的代码。
本文将为大家提供一些关于C++11的参考答案,以帮助读者更好地理解和应用这些新特性。
1. auto关键字的作用是什么?如何使用它?答:auto关键字用于自动推导变量的类型。
在C++11之前,我们必须显式地指定变量的类型,但使用auto关键字后,编译器会根据变量的初始值自动推导出其类型。
例如:auto num = 10; // num的类型将被推导为intauto name = "John"; // name的类型将被推导为const char*2. 列出至少三个C++11引入的容器类,并简要描述它们的特点。
答:C++11引入了三个新的容器类,它们分别是unordered_map、unordered_set和array。
unordered_map是一个无序的关联容器,它使用哈希表实现,能够提供O(1)的插入、查找和删除操作。
unordered_set也是一个无序的关联容器,它使用哈希表实现,能够提供O(1)的插入、查找和删除操作。
array是一个固定大小的数组,它的大小在编译时确定,并且不能改变。
与传统的C数组相比,array提供了更多的安全性和便利性,例如可以使用size()函数获取数组的大小。
3. 什么是lambda表达式?如何使用它?答:lambda表达式是C++11引入的一种匿名函数,它能够在需要函数对象的地方使用,并且比传统的函数对象更简洁。
lambda表达式的基本语法如下:[捕获列表](参数列表) mutable(可选) 异常声明(可选) -> 返回类型 {函数体}捕获列表用于指定lambda表达式中要捕获的变量,参数列表用于指定函数的参数,函数体用于指定函数的实现。
例如,下面的lambda表达式将两个整数相加并返回结果:auto add = [](int a, int b) { return a + b; };4. C++11引入的智能指针有哪些?它们的作用是什么?答:C++11引入了三种智能指针,它们分别是shared_ptr、unique_ptr和weak_ptr。
(word完整版)C语言程序设计课后习题1-8参考答案
![(word完整版)C语言程序设计课后习题1-8参考答案](https://img.taocdn.com/s3/m/2d5c3d71e3bd960590c69ec3d5bbfd0a7856d55d.png)
C语言程序设计课后习题1—8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。
运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。
数据运算包括算术运算和逻辑运算。
控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的.存储器是计算机中具有记忆能力的部件,用来存放程序和数据.输入设备是用来输入程序和数据的部件。
输出设备正好与输入设备相反,是用来输出结果的部件。
2、简述计算机的工作原理。
答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。
整个过程由控制器进行控制。
3、计算机软件系统分为哪几类?答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。
系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。
这类软件一般与具体应用无关,是在系统一级上提供的服务。
系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。
另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。
在操作系统的基础上运行。
4、什么叫软件?说明软件与硬件之间的相互关系。
答:软件是指计算机程序及有关程序的技术文档资料。
两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。
在不太严格的情况下,认为程序就是软件。
硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作.在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。
C语言实验报告参考答案完整版
![C语言实验报告参考答案完整版](https://img.taocdn.com/s3/m/6851afceb4daa58da1114a51.png)
C语言实验报告参考答HEN system office room [HEN 16H-HENS2AHENS8Q8-HENH1688]长沙理工大学2010C 语言实验报告参考答案实验一熟悉c 语言程序开发环境及数据描述四、程序淸单1. 编写程序实现在屏幕上显示以下结果:The dress is longThe shoes are bigThe trousers are black答案:#include<>main(){printf (Z/The dress is longArT); printf (zz The shoes are big\rT); printf (zzThe trousers are black'n"); } 2. 改错题(将正确程序写在指定位置)正确的程序为:#include <>main(){printf (,z商品名称 printf CTCL 电视机 printf (”美的空调 printf ("SunRose 键盘 2.编写程序:&二150, b 二20, c 二45,编写求 a/b 、a/c (商)和 a%b 、 3%C (余数)的程序。
答案:#include<>main(){int a, b, c, x, y;d 二150;b 二 20;c=45;x=a/b;y=a/C;printf Ca/b 的商=%d\n", x);价格\『);¥7600\n z/):¥2000\n z ,);Y\n z/);printf ("a/c 的商=%d\n", y);x=a%b;y=a%c;printf Ca/b 的余数=%d\n", x);printf Ca/c 的余数=%d\rT,y);}4.设变量a的值为0, b的值为-10,编写程序:当a>b时,将b赋给C;当乳二b时,将8赋给C。
11C语言程序综合实训
![11C语言程序综合实训](https://img.taocdn.com/s3/m/e04fa1630b1c59eef8c7b466.png)
返 回
11.2 应用程序设计实例
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\t平均成绩\n"); for(i=0;i<N;i++) {printf("%s\t%s\t",stu[i].num,stu[i].name); for(j=0;j<3;j++) printf("%d\t",stu[i].score[j]); printf("%.2lf\n\n",stu[i].av); } printf(" \t \t"); /*输出各科平均成绩*/ for(i=0;i<3;i++) printf("%.2lf\t",all[i]); printf("\n\n"); fclose(fp); } 上一页 下一页
for(i=0;i<N;i++) {printf("%s\t%s\t",s[i].num,s[i].name);
上一页
下一页
返 回
11.2 应用程序设计实例
for(j=0;j<3;j++) printf("%d\t",s[i].score[j]); printf("%.2lf\n",stu[i].av); printf("\n"); } fclose(fp); } void average() /*计算每个学生的平均成绩并输出*/ { int i,j,sum; FILE *fp; fp=fopen("stud","rb"); 上一页 下一页 返 回
C语言实验报告 实验十一 参考答案
![C语言实验报告 实验十一 参考答案](https://img.taocdn.com/s3/m/e26b879cf46527d3250ce074.png)
实验十一参考答案二、实验内容(按要求设计以下程序,并调试分析运行结果)(1) 编写程序sy11-1.c,程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。
函数show的功能是输出这位学生的信息。
void show(STU tt){printf("num : %d\n",tt.num);printf("name: %s\n",);printf("sex : %c\n",tt.sex);printf("birthday(year-month-day): %d-%d-%d\n",tt.birthday.year,tt.birthday.month,tt.birthday.day);printf("score: %g %g %g\n",tt.score[0],tt.score[1],tt.score[2]);}(2) 设计程序sy11-2.c,已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。
请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。
void fun( STU a[], STU *s ){int i;STU min;min=a[0]; //假设第一个元素的成绩最低for(i=1;i<N;i++)if( a[i].s<min.s)min=a[i];*s=min;}(3)设计程序sy11-3.c,学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中, 请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。
double fun( STREC *a, STREC *b, int *n ){int i,j=0;double sum=0,ave;for(i=0;i<N;i++)sum = sum+ a[i].s ;ave=sum/N;for(i=0;i<N;i++)if(a[i].s>ave)b[j++]=a[i];*n=j;return ave;}(4)设计程序sy11-4.c,学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中, 请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言实验参考答案实验一5、输入并运行自已编写的程序(教材第一章P14 三编程题)。
实验二1、编写一个程序,从键盘接收3个实数(分别为10.0、20.0、5.0),输出这3个数的和s、乘积t和平均值a。
#include <stdio.h>main(){float x,y,z,s,t,a;printf(“x,y,z=”);scanf(“%f,%f,%f”,&x,&y,&z);s=x+y+z;t=x*y*z;a=s/3;printf(“s=%f,t=%f,a=%f\n”,s,t,a);}2、编程。
要求用户输入两个整数a、b(分别为20、10),读取用户从键盘输入的值,然后:1)用整数输出这两个数的和、差;2)用长整型输出这两个数的积,用float输出商;3)用整数输出这两个数的余数,用float输出平均值。
#include <stdio.h>{int a,b,he,cha,yu;long ji;float shang,aver;printf(“a,b=”);scanf(“%d,%d”,&a,&b);he=a+b;cha=a-b;ji=(long)a*b;shang=1.0*a/b;yu=a%b;aver=(a+b)/2.0;printf(“a+b=%d,a-b=%d,a*b=%ld\n”,he,cha,ji);printf(“a/b=%f,a%%b=%d,aver=%f\n”,shang,yu,aver);}3. 再次运行程序第2题中的程序,使整数a、b的值分别为10、20,分析程序运行结果,并给出说明。
程序同上。
实验三1、编写一个程序,从键盘接收一个一位的整型数,经转换,用字符函数putchar输出。
例如,输入整数5,程序运行后输出字符5。
#include <stdio.h>{int a;char c;printf(“a=”);scanf(“%d ”,&a);c=a+48;putchar(c);}2、编程。
输入半径,计算球体表面积(24r S ⋅=π)和球体积 (334r V ⋅=π)。
#include <stdio.h>#define PI 3.1415926main(){float r,s,v;printf(“r=”);scanf(“%f ”,&r);s=4*PI*r*r;v=4/3.0*PI*r*r*r;printf(“s=%f,v=%f\n ”,s,v);}3、编写一个程序,要求通过键盘给6个变量赋值,然后将变量的值在屏幕上打印输出。
这六个变量的值分别为:10,-10,40000,a,3.14,hello。
#include <stdio.h>main(){int a,b;long c;char d,ch[6];float e;scanf(“%d%d%ld%c%f%s”,&a,&b,&c,&d,&e,ch);printf(“%d,%d,%ld,%c,%f,%s\n”,a,b,c,d,e,ch);}实验四1. 编程实现:键盘输入三个整数,分别存放到变量a,b,c中,输出其中的最小值(要求不改变a、b、c的值)。
#include <stdio.h>main(){int a,b,c,min;printf("请输入三个整数a,b,c=");scanf ("%d,%d,%d",&a,&b,&c);min=a>b?(b>c?c:b):(a>c?c:a);printf("min=%d\n",min);}2. 编程实现:键盘输入一个字符,如是大写字母,则输出相应小写字母;如是小写字母,则输出相应大写字母;其它字符原样输出。
#include <stdio.h>main(){char c;printf("请输入一个字符:");scanf ("%c",&c);if(c>='a'&&c<='z')c=c-32;else if(c>='A'&&c<='Z')c=c+32;printf("%c\n",c);}3、计算以下分段函数值#include <stdio.h>main(){double x,y;printf("请输入一个实数:");scanf ("%lf",&x);if(x<0&&x!=-3)y=x*x+x-6;else if(x>=0&&x<10&&x!=2&&x!=3)y=x*x-5*x+6;else y=x*x-x-1;printf("x=%f,f(x)=%f\n",x,y);}4. 编写程序,键盘接收一个字符串(只含大、小写英文字母),将该字符串加密后输出。
加密规则为:若为小写字母则不变,若为大写字母则将其转换为小写后再后移一个字母,例如“A”应转换为“b”,“B”应转换为“c”,“Y”应转换为“z”,而“Z”应转换为“a”。
#include <stdio.h>main(){char c[20];int i;printf("请输入一个字符串(只含英文字母):");gets (c);for(i=0;c[i]!=‟\0‟;i++)if(c[i]>= …A‟&&c[i]<= …Y‟)c[i]=c[i]+33;else if(c[i]==‟Z‟)c[i]=…a‟;puts(c);putchar(…\n‟);}5. 编写程序,用scanf输入任意两个数给变量a、b,若a大于等于b,则直接输出a、b,否则将a、b的值交换(即a的原值放入b 中,b的原值放入a中)后再输出。
#include <stdio.h>main(){float a,b,t;printf("请输入两个数:");scanf ("%f,%f",&a,&b);if(a<b){t=a;a=b;b=t;}printf ("a=%f,b=%f",a,b);}6. 编写程序:由系统生成一个10以内的随机整数,用户从键盘上输入一个10以内的整数,如果两者相等输出“OK”,否则输出“ERROR”。
#include <stdio.h>#include <stdlib.h>#include <time.h>main(){int a,b;srand( (unsigned)time(NULL));b=rand()%10+1;printf("请输入一个10以内的整数:");scanf("%d",&a);printf("a=%d,随机数b=%d\n",a,b);if(a==b) printf("OK!\n");else printf("ERROR!\n");}7. 编写程序要求输入整数a和b,若a2+ b2大于100,则输出a2+ b2百位以上的数字,否则输出两数之和。
(此题为选做)#include <stdio.h>main(){int a,b,t;printf("请输入两个整数a,b=");scanf ("%d,%d",&a,&b);t= a*a+b*b;if(t<=100)printf("a*a+b*b =%d",t);else{t=t/100;printf ("a*a+b*b百位以上的数字是%d\n",t);}}实验五1. 编程,计算函数y的值,已知函数y与自变量x的关系为:#include <stdio.h>main(){float x,y;printf(“请输入一个非负数x=”);scanf(“%f”,&x);if(x>=0&&x<100)y=3*x+10;else if(x>=100)y=x*x*x-20;if(x>=0)printf(“y=%f\n”,y);else printf(“输入错误!\n”);}2. 编写一个简单的计算器程序,输入格式为:data1 op data2。
其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。
#include <stdio.h>main(){char op;float d1,d2;printf("请输入算式(如3+5):");scanf("%f%c%f",&d1,&op,&d2);switch(op){case '+': printf("%g+%g=%g\n",d1,d2,d1+d2);break;case '-': printf("%g-%g=%g\n",d1,d2,d1-d2);break;case '*': printf("%g×%g=%g\n",d1,d2,d1*d2);break;case '/': printf("%g÷%g=%g\n",d1,d2,d1/d2);break;}}2. 编程实现:输入一个整数,判断它能否被3,5,7整除,并输出以下信息之一:①能同时被3,5,7整除②能被其中两数(要指出是哪两个数)整除③能被其中一个数(要指出是哪一个数)整除④不能被3,5,7任一个数整除#include <stdio.h>main(){int n;printf("请输入一个整数n=");scanf("%d",&n);if(n%3==0&&n%5==0&&n%7==0)printf("%d能被3,5,7整除\n",n);else if(n%3==0&&n%5==0)printf("%d能被3,5整除\n",n);else if(n%3==0&&n%7==0)printf("%d能被3,7整除\n",n);else if(n%5==0&&n%7==0)printf("%d能被5,7整除\n",n);else if(n%3==0)printf("%d能被3整除\n",n);else if(n%5==0)printf("%d能被5整除\n",n);else if(n%7==0)printf("%d能被7整除\n",n);else printf("%d不能被3,5,7任一个整除\n",n);}4. 已知从2008年12月开始,银行整存整取存款不同期限的年利率分别为:三个月1.71%,半年1.98%,一年2.25%,两年2.79%,三年3.33%,五年3.60%。