(最新版)C语言实验报告(答案)
c语言实验报告(附答案版)

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语言实验报告第1、2章答案

第一章答案:1.3拓展实验1.程序分析,预测运行结果,并上机编译、连接、运行。
#include <stdio.h>intmain( ){ printf(“hello everyone!\n”);return 0;}程序的运行结果是屏幕上显示:hello everyone!↙。
[提示]printf( )函数将双引号内的普通字符按原样输出;“\n”是转义字符,含义为换行。
[思考]如果printf(“hello everyone!\n”);修改为printf(“hello\neveryone!\n”);则程序的运行结果是:hello↙everyone!↙。
2.程序改错,请查找并修改以下程序中的语法错误,使程序运行后在屏幕上显示一行信息。
#include <stdio.h>int mian( ){ printf(“I can do it!\n”)return 0;[提示](1)要调试本程序,应先关闭之前运行程序的工作区。
(2)注意体会输出窗口的提示信息,依次双击出错信息,可快速定位到出错位置附近。
(3)应把程序中的mian改为main。
(4)C语言程序要以“;”结束,注意在英文状态下输入。
(4)C语言程序要以“}”结束。
3.⊙程序设计。
编写一个C程序,实现输出如下结果:姓名:张三丰性别:男年龄:105[提示]注意中英文转换。
C程序的标点符号需在英文半角状态输入。
第二章答案2.2基础实验一、程序分析1.以下程序的运行结果是:******↙very good!↙******↙___________________。
#include<stdio.h>intmain( ){ printf(“******\n very good!\n******\n”);return 0;}2.以下程序若输入25和43,则运行结果是:_43,25____________________。
#include<stdio.h>intmain( ){int a,b,t;printf(“enter a,b,”);scanf(“%d%d”,&a,&b);t=a; a=b;b=t;printf(“%d,%d”,a,b);}3.以下程序的运行结果是:_↙x=1.08333↙______________________。
计算机C语言实验报告含答案

高级语言程序设计(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语言实验报告第6章答案

6.2基础实验一、程序分析分析以下程序段完成的功能,填写在序号后的空白处,并运行验证结果。
1. ⊙以下程序的运行结果是:_______s=12345↙____________________。
#include <stdio.h>int main( ){ inta[]={1,2,3,4,5},i,j=1,s=0;for(i=4;i>=0;i--){ s=s+a[i]*j;j=j*10;}printf(“ s= %d \n” , s );return 0;}2. 以下程序的运行结果是:_____7 5 3______________________。
#include<stdio.h>int main( ){ int k ;int a[3][3]={9,8,7,6,5,4,3,2,1};for(k=0;k<3;k++)printf(“%d ”,a[k][2-k]);return 0;}3. 以下程序的功能是:____查找最大值元素及下标_________________。
#include <stdio.h>int main( ){ int i, j ,x =0 ,y = 0 , m ;int a[3][3] = { 1, -2 , 0 , 4 , -5 , 6 , 2 , 4 };m = a [0][0] ;for (i=0 ;i < 3 ;i++)for (j = 0 ; j<3 ; j++ )if ( a[ i] [ j ] >m ){ m = a[ i ][ j ] ;x = i ;y = j ;}printf(“ ( % d , % d ) = % d \n”, x , y,m );return 0;} 运行结果:___(1 , 2 ) = 6↙_________________4. 以下程序的的运行结果是:__8,I am student!___________________。
(最新版)C程序设计实验报告(答案)

《C程序设计》实验报告班级:学号:学期:学年第二学期姓名:《C程序设计》实验报告学期:学年第二学期教师姓名:教研室:软件工程教研室实验1 熟悉C语言程序的运行环境,掌握数据描述1.1 实验目的1.了解在开发环境中如何编辑、编译、连接和运行一个C语言程序。
2.通过运行简单的C语言程序,初步了解C语言程序的结构特点。
3.掌握C语言数据类型的概念,学会使用C语言的相关运算符构成表达式。
1.2 实验预习1.熟悉Turbo C的启动和退出及Turbo C中的编辑、编译、连接和运行命令。
2.了解下列命令及函数:include<stdio.h>、main、printf、scanf。
3.熟悉Turbo C环境下每个菜单项的功能及相关命令对应的操作。
4.各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。
int、short (int)、long (int)、unsigned (int)、float、double、char、void 5.各类运算符的优先级和结合规则。
6.常量与变量的区别和联系。
表1-1 Turbo C主菜单项功能表表1-2 Turbo C提示行功能表表1-3 Turbo C快捷操作表4.熟悉Turbo C环境下的块操作。
表1-4 基本光标命令功能操作表表1-5 快速光标移动命令功能操作表表1-6 插入与删除命令功能操作表表1-7 块操作命令功能操作表表1-8 其他命令功能操作表1.3 实验任务1.输入下列程序,记录在Turbo c 下的操作方法。
#include <stdio.h>main(){printf(“I am a student!”);}环境的启动操作:我的电脑—磁盘(各机房磁盘目录有所不同)—Turbo C文件夹—tc。
Exe 。
程序的编译方法:快捷键是 Alt+F9 ;菜单操作是Compile—compile to OBJ程序的保存方法:快捷键是 F2 ;菜单操作是 File--Save程序的运行方法:快捷键是Ctrl+F9;菜单操作是 Run运行结果的查看:快捷键是 Alt+F5 ;菜单操作是 Run—User Screen环境的退出操作:快捷键是 Alt+X ;菜单操作是 File--Quit2. 预测结果并上机验证3.运行程序输入5,-5;预测结果并上机验证4.现欲将编好的上例程序以文件名my.c保存至当前目录下,请阐述方法;当重新进入TC 对其进行简单修改后欲将其另存至C盘SY文件夹下(SY文件夹请自行创建),叙述方法。
《C语言程序开发》实验报告和参考答案

《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程序设计初步一、实验目的(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语言实验报告 实验四 参考答案
实验四循环结构程序设计2(参考答案)(1)编写程序sy4-1.c,输入n,计算并输出如下多项式的值:S n=1+1/2!+1/3!+1/4!+…+1/n!。
例如输入n为15时,输出1.718282。
算法分析:第一项可以看成1/1!,用循环控制累加n个分式,分式的分母是i!,分子固定为1。
参考答案:# include <stdio.h>void main(){double s=0,p=1;int i,n;scanf("%d",&n);for(i=1;i<=n;i++){p = p * i ; //计算分母i!s = s + 1 / p ; //累加}printf("s=%lf\n",s);}运行结果:(2)编写程序sy4-2.c,输入n,根据以下公式计算s:,例如当n=11时,结果为1.833333。
算法分析:该多项式的分母是累加。
参考答案:# include <stdio.h>void main(){double sn=0,s=0;int i,n;scanf("%d",&n);for(i=1;i<=n;i++){s = s + i ; //计算分母1~i的累加和sn = sn + 1 / s ;}printf("sn=%lf\n",sn);}运行结果:(3)编写程序sy4-3.c,计算3~n之间所有素数的平方根之和,要求:输入n,输出结果。
例如,输入n 的值是100,则输出结果是148.874270。
注意n应在2~100之间。
算法分析:穷举3~n之间的数找素数,若是素数则累加她的平方根。
参考答案:# include <stdio.h># include <math.h>void main(){int i,j,n,flag;double s=0;scanf("%d",&n);for(i=3;i<n;i++) //穷举3~n之间找素数{flag=1; //假设当前的i是素数,标志变量设为1for(j=2;j<i;j++) //穷举要判断是否是素数的i的除数,范围2~i-1if(i%j==0) //若i能被j整除,则不是素数{ flag=0; break; } //标志变量改为0,并终止循环if( flag == 1 )s = s + sqrt( i ); //若i是素数,则累加sqrt(i)}printf("s=%f\n",s);}运行结果:(4)编写程序sy4-4.c,根据以下公式求p的值,(m与n为两个正整数且m>n)。
C语言实验报告答案
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语言实验报告第章答案(二)C语言实验报告第一章答案:1. 什么是C语言?C语言是一种高级编程语言,由贝尔实验室的Dennis Ritchie于20世纪70年代初开发。
C语言被广泛用于系统编程、嵌入式系统、驱动程序和应用程序的开发。
2. C语言的特点是什么?C语言具有以下特点:- 简洁:C语言的语法简单明了,易于学习和使用。
- 高效:C语言的执行速度快,占用内存少。
- 通用:C语言可以用于开发各种类型的应用程序。
- 可移植性强:C语言编写的程序可以在不同的操作系统和硬件平台上运行。
3. C语言的基本数据类型有哪些?C语言的基本数据类型包括:- 整型:int、short、long、long long。
- 浮点型:float、double、long double。
- 字符型:char。
4. C语言的运算符有哪些?C语言的运算符包括:- 算术运算符:+、-、*、/、%。
- 关系运算符:>、<、>=、<=、==、!=。
- 逻辑运算符:&&、||、!。
- 位运算符:&、|、^、~、<<、>>。
- 赋值运算符:=、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=。
- 条件运算符:? : 。
5. C语言的控制语句有哪些?C语言的控制语句包括:- 顺序结构:按照代码顺序执行。
- 分支结构:if、switch。
- 循环结构:while、do-while、for。
- 跳转结构:break、continue、goto。
6. C语言的函数是什么?C语言的函数是一段可重复使用的代码块,用于执行特定的任务。
函数可以接受参数和返回值,使程序更加灵活和模块化。
7. C语言的数组是什么?C语言的数组是一组相同类型的数据元素,按照一定的顺序排列。
数组可以根据下标访问其中的元素,使程序更加灵活和高效。
8. C语言的指针是什么?C语言的指针是一种特殊的变量,用于存储内存地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C程序设计》实验报告学期:教师姓名:教研室:实验1 熟悉C语言程序的运行环境,掌握数据描述1.1 实验目的1.了解在开发环境中如何编辑、编译、连接和运行一个C语言程序。
2.通过运行简单的C语言程序,初步了解C语言程序的结构特点。
3.掌握C语言数据类型的概念,学会使用C语言的相关运算符构成表达式。
1.2 实验预习1.熟悉Visual C++的启动和退出及Visual C++中的编辑、编译、连接和运行命令。
2.了解下列命令及函数:include<stdio.h>、main、printf、scanf。
3.熟悉Visual C++环境下每个菜单项的功能及相关命令对应的操作。
4.各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。
int、short (int)、long (int)、unsigned (int)、float、double、char、void 5.各类运算符的优先级和结合规则。
6.常量与变量的区别和联系。
运行环境:1.双击桌面Visual C++快捷方式进入Visual C++,或通过执行“开始——>程序——> Microsoft Visual Studio 6.0——> Microsoft Visual C++6.0”或执行文件"C:\Program Files\Microsoft Visual Studio\COMMON\MSDev98\Bin\MSDEV.EXE"。
2.单击“文件”菜单的“新建”命令。
3.在打开的“新建”对话框中选择“文件”标签。
4.选择C++ Source File,在目录输入栏选择文件保存位置,然后在文件输入栏中输入文件名,扩展名为.c (例如first.c) ,单击确定按钮。
如图所示:5.在源窗口中输入源程序,如图所示。
应工具进行编译编译连接运行若程序有错则找到出错行修改程序。
7.连接:若程序没有语法错误,则可按功能键F7或执行“编译”菜单中的“构件”命令或通过工具栏中的相关工具(编译工具右边工具),进行连接生成可执行文件。
8.运行程序:按组合键“Ctrl+F5”,或通过“编译”菜单中的执行命令,或通过工具栏中的“!”工具运行程序。
1.3 实验任务1.输入下面的程序,注意区分大小写。
#include <stdio.h>main(){printf(“I am a student!”);}2. 预测结果并上机验证3.预测结果并上机验证4.预测结果并上机验证(1) main(){int a,b;a=b=3;printf(“a=%d,b=%d”,a,b);}(2)若将以上程序进行改写,编辑如下:main(){int a,b;a=3;b=3.1;printf(“a=%d,b=%d”,a,b);}由此知,若赋值号左右数据类型不一致时,c 语言将按赋值号左边变量类型为准。
5.现有程序如下,分析填空:若将以上程序第4行进行改写,编辑如下: printf(“%d ”,a=a+b,b=b+a);对比以上两程序,结果不同的原因在于输出列表原程序为逗号表达式,所以输出b=b+a 的值,而修改后的仅有一个格式控制符,只能对应输出第一个表达式a=a+b。
6.若有以下程序段,分析c2的值:int c1=2,c2; c2=1.0/c1*c1;若将程序段改为:c2=1/c1*c1;分析c2所得结果,其中的关键在于除号两端如果都是整型数据,则所得结果截断取整7.现有程序如下:main(){ int a=7, b=10;a=a+b; b=a-b; a=a-b;printf(“%d,%d\n”, a, b );}程序运行的功能是:交换a、b两数的值注:可修改a、b两数的值仔细观察。
8. 现有程序如下,分析填空:现有程序如下,分析填空:9.10.现有程序如下,分析填空:11.现有程序如下,分析填空:12.思考题:改错题(以下程序有多处错误,上机调试。
将正确的程序记录在下方。
要求不能删减已有内容。
)实验2 顺序结构程序设计与调试2.1 实验目的1.熟悉C语言的表达式语句、空语句和复合语句。
2.熟悉函数调用语句,尤其是各输入输出函数的调用语句。
3.熟悉顺序结构程序中语句的执行过程。
4.熟悉程序的跟踪调试和变量值的监视。
5.能设计简单的顺序结构程序。
2.2 实验预习1.熟悉下列函数:putchar、getchar、printf、scanf2.了解顺序结构程序的执行过程。
3.了解程序的跟踪调试和变量值的监视并能够熟练操作。
单步跟踪调试(逐条语句跟踪调试):(1)可按功能键F7进行,要监视某变量的值时,就按Ctrl+F7键,然后输入相应的变量名,就可以在监视消息窗口中查看到该变量的值。
(2)也可逐段运行程序,即每次运行若干条语句。
首先利用Ctrl+F8键在各行光标处设置若干断点,然后按Ctrl+F9键从程序的第一条语句运行到设置的第一个断点,再按Ctrl+F9键从设置的第一个断点运行到设置的第二个断点。
4.了解顺序结构程序的一般构成。
2.3 实验任务1.若有程序main(){ int i,j;scanf("i=%d,j=%d",&i,&j);printf("i=%d,j=%d\n ",i,j);要求给i赋5,给j赋10,则应该从键盘输入i=5,j=102.华氏温度,要求输出摄氏温度,公式为:C=。
要求输出结果保留到小数点后两位。
已知程序段中有三处错误,由注释语句/**********found**********/提示下一条语句有错误,请修改程序中的错误并记录程序运行结果。
3. 已知程序功能是通过用户输入三角形三边,求取三角形面积。
填空,将程序补充完整。
求取公式为;S=(a+b+c)/2 area=sqrt(s*(s-a)*(s-b) *(s-c))4.单步跟踪下面程序的执行,每执行一条语句就查看各变量的值。
运行时输入一个三位的整数。
单步跟踪程序时填写下表,同时分析程序的功能。
#include”stdio.h”void main(){int n,x1,x2,x3,y;printf(“please input number n”);scanf(“%3d”,&n);x1=n/100;x2=n/10%10;x3=n%10;y=x3*100+x2*10+x1;”,y);}printf(“y=%3d5. # include <stdio.h>void main( ){ char ch;ch=getchar();putchar(ch);}运行时如果从键盘输入数据98,你预测的输出结果是实际的输出结果为 9原因在于getchar()只能接收单个字符,数字也当字符处理6. # include <stdio.h>void main( ){ int a,b,c;scanf(“%d,%o”,&a,&b);c=a*b;printf(“%d,%o\n”,c,c);}运行时如果输入数据:12,12你预测的结果是,实际的输出结果是。
7. # include <stdio.h>void main( ){ int x,n1,n2,n3,y;scanf("%3d", &x);n1=x/100;n2=x/10%10;n3=x%10;y=n3*100+n2*10+n1;printf(“%d\n”,y);}上述程序在运行时如果从键盘输入数据8265,则x的值为_ 826 _;输出的结果为 628 , 在变量n1、n2、n3中,_n1_是x的百位数,_n2_是x的十位数,__n3_是x的个位数。
8. #include <stdio.h>void main( ){ int a=123, b=-45;float x=2.54729;printf(“a=%d,%2d,%5d,%-5d,%+5d\n”, a,a,a,a,a);printf(“b=%d,%2d,%5d,%-5d,%+5d\n”, b,b,b,b,b);printf(“x=%f,%9f,%9.2f\n”, x,x,x);printf(“x=%-7.3f,%2.2f,%.0f\n”, x,x,x);}在下面写出程序的运行结果,每个空格用一个|_|来表示a=|_||_| |_||_|,|_|+123b=|_||_| |_||_|,|_||_|-45x=2.547290 ,|_|2.547290 ,|_||_||_||_||_|2.55x=2.547|_||_|,2.55,39. 编辑程序,输入学生语、数、英三门课程成绩(考虑数据类型,整型和实型),并输出其总分和平均分。
整型:main(){ int c,m,e,sum;float ave;scanf("%d,%d,%d",&c,&m,&e);sum=c+m+e;ave=sum/3.0;printf(“sum=%d\n ave=%f”,sum,ave);}实型:main(){float c,m,e,sum,ave;scanf("%f,%f,%f",&c,&m,&e);sum=c+m+e;ave=sum/3;printf(“sum=%f\n ave=%f”,sum,ave);}实验3 选择结构程序设计与调试3.1 实验目的1.理解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。
2.学会正确使用逻辑运算符和逻辑表达式、关系运算符和关系表达式。
3.学会运用逻辑表达式或关系表达式等表达条件。
4.熟练掌握if语句和switch语句。
5.学习跟踪调试程序,针对具体程序组织输入测试数据,观察程序运行能否得到预期的输出结果。
6.熟悉选择结构程序段中语句的执行过程。
3.2 实验预习1.熟悉逻辑运算符和逻辑表达式、关系运算符和关系表达式。
2.熟悉下列语句:if、if-else、switch、break。
3.3 实验任务1.阅读程序,上机调试并记录程序结果。
以上两题告诉了你什么:1) c中的赋值号与等于运算符应区分。
2) 若判断表达式值为0,表示假,执行else分支2.阅读程序,上机调试并记录程序结果。
3.阅读程序,上机调试并记录程序结果。
4.若从键盘输入58,判断以下程序输出的结果。
5.阅读程序,上机调试并记录程序结果。
6.阅读程序,上机调试并记录程序结果。
7.阅读程序,上机调试并记录程序结果。
8.阅读程序,并回答问题main( ){ int a,b,max,min;scanf("%d%d",&a,&b);if(a>b)max=a;elsemax=b;printf("max=%d\n",max);}问题:a、此程序的功能是输出两数中的最大数b、请用条件表达式语句(?:)修改程序使之完成相同的功能,其语句是printf(“max=%d\n”,a>b?a:b);9. 有一函数x-1 (x<1)y = 2(x-1) (1<=x<10)3x-10 (x>=10)编程求当分别输入x的值为0.3,3.9,11时,y的值。