文档库 最新最全的文档下载
当前位置:文档库 › c实验题目(实验1-5及答案)

c实验题目(实验1-5及答案)

c实验题目(实验1-5及答案)
c实验题目(实验1-5及答案)

实验一顺序结构的程序设计1.输入x的值,根据下面的多项表达式求y的值:

y=3

4

x5+

8

3

+2x-4

(1)编程,注意要有输入数据的提示语句。

#include ""

main()

{

double x,y;

printf("please input x:\n");

scanf("%lf",&x);

y=4*x*x*x*x*x+12*x*x*x**x*x*x+2*x-4;

printf("y=%\n",y);

}

(2)x取下列值时,分别运行此程序

2.任意输入一个三位整数,然后逆序输出。如输入为123,则输出为321。

(1) 编程,注意要有输入数据的提示语句

(2) 用八进制的形式输出各位数字的ASCII码。

(3) 输入取下列值时,分别运行此程序

main()

{

int x,inversed,hundred,ten,indiv;

printf("please input x:\n");

scanf("%d",&x);

hundred=x/100;

ten=(x-hundred*100)/10;

indiv=x%10; /*indiv=(x-hundred*100)-ten*10;*/

inversed=indiv*100+ten*10+hundred;

printf("the original number is %d\n",x);

printf("the inversed number is %d\n",inversed);

printf("the oct number is %0,%0,%0\n",indiv+'0',ten+'0',hundred+'0');

}

#include <>

main()

{

int x,inversed,hundred,ten,indiv;

printf("please input x:\n");

scanf("%d",&x);

indiv=x%10;

ten=((x-indiv)/10)%10;

hundred=(((x-indiv)/10-ten)/10)%10;

inversed=indiv*100+ten*10+hundred;

printf("the original number is %d\n",x);

printf("the inversed number is %d\n",inversed);

printf("the oct number is %0,%0,%0\n",indiv+'0',ten+'0',hundred+'0');

}

实验二选择结构的程序设计

1.编程计算下面的分段函数。

4x-8 -1≤x<0

y= 3x2+10x-1 0≤x<1

8x3-3x2+2x-1 1≤x<2

(1)事先编好程序和流程图。要求用if语句结构实现,注意数据类型和输入提示语句。#include <>

main ( )

{

float x,y;

printf ("input x:\n");

scanf ("%f",&x);

if (x>=-1&&x<2)

{

if (x>=-1&&x<0)

y=4*x-8;

else if (x>=0&&x<1)

y=3*x*x+10*x-1;

else

y=8*x*x*x-3*x*x+2*x-1;

printf("y=%10.2f",y);

}

else

printf ("DATA ERROR!");

}

(2)将程序运行六遍,分别从键盘上输入-1,,0,,1,这六个数,记录下运行结果并核

对结果的正确性。

(3)再将程序运行二遍,分别从键盘上输入和2二个数,记录下运行结果并核对结果的正确性。

④修改程序,使之能正确处理任何数据。当输入数据大于等于2或小于-1时,通知用户“Data Error”,程序结束。

4.水果店有苹果,一级元/kg,二级元/kg,三级元/kg,四级kg,输入苹果的等级、数量以及顾客的付款数,显示出苹果的等级、数量、应付款数以及找给顾客的钱数。

(1)事先编好程序,分别用if语句和用switch语句结构实现,要求程序能正确处理任何数据。当输入苹果的等级、数量以及顾客的付款数不合要求时,通知用户“Data Error”,程序结束。

注意苹果等级、数量以及顾客付款数数据的类型和输入数据的提示语句。

(2)将程序运行六遍,分别从键盘上输入六组数,记录运行步骤、过程和结果,并核对结果的正确性。

main( )

{

float weight,money,paid;

int rank;

printf ("input rank, weight, money: \n");

scanf ("%d", &rank);

printf ("input weight:\n");

scanf ("%f",&weight);

printf ("input money:\n");

scanf ("%f",&money);

switch (rank)

{

case 1: paid=*weight; break;

case 2: paid=*weight; break;

case 3: paid=*weight; break;

case 4: paid=*weight; break;

default: paid=0;

}

if (weight<=0||money<=0||paid<=0||(money-paid)<0)

printf("DATA ERROR!");

else

{

printf ("the rank is %d!", rank);

printf ("the weight is %10.1f!", weight);

printf ("paid %10.2f yuan", paid);

printf ("the change is %10.2f yuan", money-paid);

}

}

实验三循环结构的程序设计

1.编程序计算1!+2!+3!+4!+5!

(1)分别用单层循环和双层循环编写此程序,作出流程图。

单层循环

#include <> main() {

int sum=0,p=1; int n,i;

printf("please input n:\n"); scanf("%d",&n); printf("n is %d\n",n); for(i=1;i<=n;i++) {

p=p*i;

sum = sum + p; }

printf("The result is %d:\n",sum); }

双层循环: #include <> main() {

int sum=0,p; int n,i,j;

printf("please input n:\n"); scanf("%d",&n); printf("n is %d\n",n); for(i=1;i<=n;i++) {

for(j=1,p=1;j<=i;j++) { p=p*j; }

sum = sum + p; }

printf("The result is %d:\n",sum); }

(2) 分析两种编程的差别。 单层循环效率更高,计算量小。 (3) 若计算

!10

1

∑=i i ,运行程序观察程序结果是否正确,若有错误如何修改。

不正确,数据越界,将int sum=0,p=1;改为long sum=0,p=1;

printf("The result is %d:\n",sum);改为printf("The result is %ld:\n",sum);

(4) 若计算

!20

1

∑=i i ,运行程序观察程序结果是否正确,若有错误如何修改。

不正确,数据越界,将int sum=0,p=1;改为unsigned long sum=0,p=1; printf("The result is %d:\n",sum);改为printf("The result is %ld:\n",sum); 2.编写程序并上机调试

电视大奖赛有20名评委给选手评分。评分规则是:去掉1个最高分,去掉1个最低分,其余18名评委的平均分选手的得分。设计评分程序。

#include <> #define NUM 20 main() {

int smin=0,smax=0,score; float sum=0;

printf("please input player's score:\n"); scanf("%d",&score); smax=smin=score; for(i=1;i

scanf("%d",&score);

if (score>smax) smax=score; if (score

sum = sum –smax –smin;

printf("The result is %6.2f:\n",sum/(NUM-2)); }

实验四 数组和指针应用的程序设计

1.定义一个有10个元素的一维数组count ,从键盘上输入8个整数,将其按从大到小的顺序排列,并将排序后的数组输出。 (1)作出流程图。

(2)用数组的方法编写程序(排序算法可自己选择)

#define N 8 #include "" main() {

int count[N+2],i,j,n;

printf("input %d numbers:\n", N); for(i=1;i<=N;i++)

scanf("%d",&count[i]); printf("\n");

for(i=1;i

for(j=i+1;j<=N;j++)

if(count[j]>count[i])

{

n=count[i];

count[i]=count[j];

count[j]=n;

}

printf("the sorted numbers:\n");

for(i=1;i<=N;i++)

printf("%d ",count[i]);

}

#define N 8

#include ""

main()

{

int count[N+2],i,j,n;

printf("input %d numbers:\n", N);

for(i=1;i<=N;i++)

scanf("%d",&count[i]);

printf("\n");

for(i=1;i

for(j=1;j

if(count[j]

{

n=count[j];

count[j]=count[j+1];

count[j+1]=n;}

printf("the sorted numbers:\n");

for(i=1;i<=N;i++)

printf("%d ",count[i]);

}

(3)用指针的方法编写程序(排序算法可自己选择)#define N 8

#include ""

main()

{

int count[N+2],i,j,n,*p;

p=count;

printf("input %d numbers:\n", N);

for(i=1;i<=N;i++)

scanf("%d",p+i);

printf("\n");

for(i=1;i

for(j=i+1;j<=N;j++)

if(*(p+j)>*(p+i))

{

n=*(p+i);

*(p+i)=*(p+j);

*(p+j)=n;

}

printf("the sorted numbers:\n");

for(i=1;i<=N;i++)

printf("%d ",*(p+i));

}

#define N 8

#include ""

main()

{

int count[N+2],i,j,n,*p;

p=count;

printf("input %d numbers:\n");

for(i=1;i<=N;i++)

scanf("%d",p+i);

printf("\n");

for(i=1;i

for(j=1;j

if(*(p+j)<*(p+j+1))

{

n=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=n;

}

printf("the sorted numbers:\n");

for(i=1;i<=8;i++)

printf("%d ",*(p+i));

}

2.输入2个字符串,将这两个字符串连接起来并输出,再将连接后的字符串反向。(1)分别输出连接后的字符串和反向后的字符串,并求连接后的字符串长度。(2)用字符数组的方法编写程序

#define NUM 100

#include ""

#include ""

main()

{

char str1[NUM],str2[NUM],str3[NUM]=;

int i,len;

printf("input string 1:\n");

gets(str1);

printf("input string 2:\n");

gets(str2);

strcat(str1,str2);

printf("the concatenation strings:%s\n",str1);

len=strlen(str1);

printf("the concatenation strings's len:%d\n",len);

for(i=0;i

str3[i]=str1[len-i-1];

str3[i]='\0';

printf("the reverse strings:%s\n",str3);

}

(3)用指针的方法编写程序

#define NUM 100

#include ""

main()

{

char str1[NUM],str2[NUM],str3[NUM],*p1,*p2,*p3;

int i,len;

p1=str1;

p2=str2;

p3=str3;

printf("input string 1:\n");

gets(p1);

printf("input string 2:\n");

gets(p2);

strcat(p1,p2);

printf("the concatenation strings:%s\n",p1);

len=strlen(p1);

printf("the concatenation strings's len:%d\n",len);

for(i=0;i

*(p3+i)=*(p1+len-i-1);

*(p3+i)='\0';

printf("the reverse strings:%s\n",p3);

}

实验五函数应用的程序设计

编写一函数,统计字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符

串并输出统计结果。

(1)作出流程图

(2)用值传送的方式实现函数调用,分别从键盘上输入三个不同字符串,并记录下运行的过程和结果。

#include ""

int stat1(char c1)

{

if(c1>='a'&&c1<='z'||c1>='A'&&c1<='Z')

return 0;

else if(c1==' ')

return 1;

else if(c1>='0'&&c1<='9')

return 3;

else

return 4;

}

main()

{

char c;

int i,letters=0,space=0,digit=0,others=0;

printf("please input some characters\n");

while((c=getchar())!='\n')

{

switch(stat1(c))

{

case 0: letters++;break;

case 1: space++;break;

case 2: digit++;break;

default: others++;

}

}

printf("stat2:char=%d space=%d digit=%d others=%d\n",

letters,space,digit,others);

}

(3)用字符数组传送的方式实现函数调用,分别从键盘上输入三个不同字符串,并记录下运行的过程和结果。

#define N 100

#include ""

#include ""

int letters=0,space=0,digit=0,others=0;

void stat2(char p2[N])

{

int i;

for(i=0;p2[i]!='\0';i++)

{

if(p2[i]>='a'&&p2[i]<='z'||p2[i]>='A'&&p2[i]<='Z')

letters++;

else if(p2[i]==' ')

space++;

else if(p2[i]>='0'&&p2[i]<='9')

digit++;

else

others++;

}

}

main()

{

char str[N];

printf("please input some characters\n");

gets(str);

stat2(str);

printf("stat2:char=%d space=%d digit=%d others=%d\n",

letters,space,digit,others);

}

(4)用指针变量传送的方式实现函数调用,分别从键盘上输入三个不同字符串,并记录下运行的过程和结果。

#define N 100

#include ""

#include ""

int letters=0,space=0,digit=0,others=0;

void stat3(char *p3)

{

for(;*p3!='\0';p3++)

{

if(*p3>='a'&&*p3<='z'||*p3>='A'&&*p3<='Z')

letters++;

else if(*p3==' ')

space++;

else if(*p3>='0'&&*p3<='9')

digit++;

else

others++;

}

}

main()

{

char str[N];

printf("please input some characters\n");

gets(str);

stat3(str);

printf("stat3:char=%d space=%d digit=%d others=%d\n", letters,space,digit,others);

}

MATLAB课后实验答案

%实验一MATLAB运算基础 %第一题%(1) z1=2*sin(85*pi/180)/(1+exp(2)) %(2) x=[2,1+2i;-0.45,5]; z2=0.5*log(x+sqrt(1+x.^2)) %(3) a=-3.0:0.1:3.0; z3=(exp(0.3*a)-exp(-0.3*a))/2.* sin(a+0.3)+log((0.3+a)/2) %(4) t=0:0.5:2.5; z4=t.^2.*(t>=0&t<1)+(t.^2-1).*( t>=1&t<2)+(t.^2-2*t+1).*(t>=2&t <3)%第二题 A=[12 34 -4;34 7 87;3 65 7]; B=[1 3 -1;2 0 3;3 -2 7]; A+6*B A-B+eye(size(A)) A*B A.*B A^3 A.^3 A/B B\A [A,B] [A([1,3],:);B^2]%第三题 A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25] B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11] C=A*B F=size(C) D=C(F(1)-2:F(1),F(2)-1:F(2)) whos%第四题 %(1): A=100:999; B=rem(A,21); C=length(find(B==0)) %(2): A='lsdhKSDLKklsdkl'; k=find(A>='A'&A<='Z'); A(k)=[] %实验二MATLAB矩阵分析与处理 %第一题 E=eye(3); R=rand(3,2); O=zeros(2,3); S=diag([2,3]);%判断AB是否相等 A=[E,R;O,S];A^2 B=[E,(R+R*S);O,S^2] %第二题 H=hilb(5) P=pascal(5) Hh=det(H) Hp=det(P) Th=cond(H) Tp=cond(P) %第三题: A=fix(10*rand(5)) H=det(A)Trace=trace(A) Rank=rank(A)Norm=norm(A) %第四题: A=[-29,6,18;20,5,12;-8,8,5] [V,D]=eig(A)%数学意义略 %第五题方法一: %(1): A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4, 1/5,1/6]; b=[0.95,0.67,0.52]'; x=inv(A)*b %(2): B=[0.95,0.67,0.53]'; x=inv(A)*B %(3): cond(A) %第五题方法二: A=hilb(4) A(:,1)=[] A(4,:)=[] B=[0.95,0.67,0.52]'; X=inv(A)*B B1=[0.95,0.67,0.53]'; X1=inv(A)*B1 N=cond(B) N1=cond(B1) Na=cond(A) %矩阵A为病态矩阵 %第六题 A=[1,4,9;16,25,36;49,64,81] B=sqrtm(A) C=sqrt(A) %sqrtm函数是以矩阵为单位进行计算,sqrt函数是以矩阵中的元素进行计算 %实验三选择程序结构设计 %第一题程序一 x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5. 0]; y=[]; %建立存放所有y值的矩阵

大一上期C语言实验报告1熟悉实验环境

成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)熟悉C语言运行环境,了解和使用Visual6.0++集成开发环境(2)熟悉Visual6.0++环境的功能键和常用的功能菜单命令 (3)掌握C语言程序的书写格式和C语言程序的结构 (4)掌握C语言上机步骤,以及编辑、编译和运行一个C语言程序的方法 (5)熟悉Visual6.0++环境下的程序调试方法 2.实验内容 (1)按照实验步骤编辑、编译、运行第一个”Hello World”程序(2)利用实验指导中的第二个程序熟悉调试工具,在已知x,y值的情况下,计算出x和y的和、差、积、商,并显示出来(3)编写一个程序,输入a、b、c三个值,输出它们的和与平均值c 3.源程序 (1)#include void main() {printf(”Hello World”);} (2)#include void main() {int x=5,y=2; int s,d,p,q; s=x+y; d=x-y; p=x*y; q=x/y; printf(“和:%d差:%d积%d商:%d“,s,d,p,q);}

(3)#include void main() {int a,b,c.sum; float ave; Printf(“Please enter the a,b,c:”); scanf(“%d%d%d”,&a,&b,&c); sum=a+b+c; ave=(float)sum/3; printf(“sum=%d,ave=%f\n”,sum,ave);} 4.运行结果 (1) (2) (3)输入18、46、69测试得出答案如下

C语言实验报告参考答案(原)

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include<> main() { int a,b,c,x,y;

a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include<> main() { int a,b,c,d; float x; a=160; b=46; c=18; d=170; x=(a+b)/(b-c)*(c-d);

printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将0赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3

c语言实验答案

c语言实验答案

//1.1编写一程序,在屏幕上输出如下内容:// X | X | X //---+---+--- // | | //---+---+--- // 0 | 0 | 0 #include void main() { printf(" X | X | X\n"); //注意转义字符\n的用法 printf("---+---+---\n "); printf(" | |\n"); printf("---+---+---\n "); printf(" 0 | 0 | 0\n"); } //1.2输出"Hello world!"语句 #include void main() { printf("Hello world!\n"); } //2.1编写一程序,接受用户输入的两个整数,并计算它们的和、差、积、商,程序运行结果应如下所示。 //注意,尖括号部分表示用户输入数据或要被替换的输出内容,尖括号本身并不需要输入或输出。 //多使用几组整数尝试一下,你发现了什么?//The program gets two integers,and

computes their sum,difference,produc t and quotient. //The first number:<第一个整数在此输入> //The second number:<第二个整数在此输入> //Results as follows: //<第一个整数>+<第二个整数>=<和> //<第一个整数>-<第二个整数>=<差> //<第一个整数>*<第二个整数>=<积> //<第一个整数>/<第二个整数>=<商> #include void main() { int a,b; printf("The program gets two integers,and computes their sum,difference,produc t and quotient.\n"); printf("The first number:"); scanf("%d",&a); printf("The second number"); scanf("%d",&b); printf("Results as follows:\n"); printf("%d+%d=% d\n",a,b,a+b); printf("%d-%d=% d\n",a,b,a-b); printf("%d*%d=% d\n",a,b,a*b); printf("%d+%d=% f\n",a,b,1.0*a/b); //做除法时要注意,除得的

实验5(答案)

实验五 连续系统分析 一、实验目的 1.深刻理解连续时间系统的系统函数在分析连续系统的时域特性、频域特性及稳定性中的重要作用及意义,掌握根据系统函数的零极点设计简单的滤波器的方法。 2.掌握利用MATLAB 分析连续系统的时域响应、频响特性和零极点的基本方法。 二、实验原理及内容 MATLAB 提供了许多可用于分析线性时不变连续系统的函数,主要包含有系统函数、系统时域响应、系统频域响应等分析函数。 1. 连续系统的时域响应 连续时间LTI 系统可用如下的线性常系数微分方程来描述: ) ()( )()(01)1(1)(t y a t y a t y a t y a n n n n ++++-- )()( )()(01)1(1)(t x b t x b t x b t x b m m m m ++++=-- 已知输入信号x (t )以及系统初始状态)0(,),0('),0()1(----n y y y ,就可以求出系统的响应。 MATLAB 提供了微分方程的数值计算的函数,可以计算上述n 阶微分方程描述的连续系统的响应,包括系统的单位冲激响应、单位阶跃响应、零输入响应、零状态响应和完全响应。 在调用MATLAB 函数时,需要利用连续系统对应的系数函数。对微分方程进行Laplace 变换即可得系统函数: 1110111)()()(a s a s a s a b s b s b s b s X s Y s H n n n n m m m m ++++++++==---- 在MATLAB 中可使用向量和向量分别保存分母多项式和分子多项式的系数: ],,,,[011a a a a a n n -= ],,,,[011b b b b b m m -= 这些系数均按s 的降幂直至s 0排列。 ● 连续系统的单位冲激响应h (t )的计算 impulse(sys)计算并画出系统的冲激响应。 参数:sys 可由函数tf(b,a)获得。其中: ],,,,[011a a a a a n n -= ],,,,[011b b b b b m m -= h=impulse(sys, t) 计算出系统在向量t 定义的区间上的冲激响应, 向 量h 保存对应区间的系统冲激响应的输出值。 ● 连续系统的单位阶跃响应g (t )的计算 step(sys)计算并画出系统的阶跃响应。

C语言实验报告参考答案

《C语言程序设计》 实 验 手 册

《C语言程序设计》实验课程简介 课程名称:C语言程序设计实验 课程性质:专业必修课 课程属性:专业必修课 学时学分:学时32 学分1 开课实验室:软件实验室 面向专业:网络工程、软件工程、计算机科学与技术 一、课程的任务和基本要求 C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C 语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。 二、实验项目 【实验一】最简单的C程序---顺序程序设计 【实验二】逻辑运算和判断选取控制 【实验三】循环结构程序设计(一) 【实验四】循环结构程序设计(二) 【实验五】函数 【实验六】数组(一) 【实验七】数组(二) 【实验八】指针 【实验九】结构体、共用体和文件 【实验十】C程序综合性实验 三、有关说明 1、与其它课程和教学环节的联系: 先修课程:计算机文化 后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程 2、教材和主要参考书目: (1)教材: 《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目: 《C语言程序设计》谭浩强主编,清华大学出版社,2003年。

三、实验内容 实验一最简单的C程序---顺序程序设计 (验证性实验 2学时) (一)、实验目的 1.熟悉win-tc程序运行环境 2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法 3.掌握C语言中使用最多的一种语句——赋值语句 4.掌握数据的输入输出方法,能正确使用各种格式控制符 (二)、实验内容 1.写出下列程序的运行结果 (1)#include void main() { printf(“*****************\n”); printf(“This is a c program. \n”); printf(“****************\n”); } 运行结果及分析:运行结果为: Printf函数语句表示输出引号内的字符串,最后的\n表示换行, 将程序中的\n去掉后,运行结果及分析:运行结果为: 去掉\n后不换行连续显示 (2)#include void main() { int a=100,b=20,sum,sb; sum=a+b; sb=a/b; printf("sum=%d,sb=%d",sum,sb); } 运行结果及分析: sum=100+20=120;sb=100/20=5. (3)#include void main( )

实验五数值积分参考答案

一 实验目的: 1 加深理解积分理论中分割、近似、求和、取极限的思想方法; 2 了解定积分近似计算的矩形法、梯形法与抛物线法; 3 会用MATLAB 语言编写求定积分近似值的程序,会用MALAB 中的命令求定积分。 二 实验准备素材 见附件。 三 实验内容 1.(不定积分)用int 计算下列不定积分,并用diff 验证 ?dx x x 2 sin ,?+x dx cos 1,?+1x e dx ,?xdx arcsin ,?xdx 3sec 2.(定积分)用trapz,int 计算下列定积分 ?10sin dx x x ,?10dx x x ,?π20)2sin(dx x e x ,?-102dx e x 3.(椭圆的周长) 用定积分的方法计算椭圆1492 2=+y x 的周长 4.(二重积分)计算积分??≤+++y y x dxdy y x 222)1( 5. (广义积分)计算广义积分 ?∞∞-+-dx x x 421)exp(,?10)tan(dx x x ,?-1021sin dx x x 7.1 syms x; g1=int(x.*sin(x).*sin(x)) g1 = x*(-1/2*cos(x)*sin(x)+1/2*x)+1/4*sin(x)^2-1/4*x^2

clear;syms x; d1=diff(x*(-1/2*cos(x)*sin(x)+1/2*x)+1/4*sin(x)^2-1/4*x^2) syms x; g2=int(1/(1+cos(x))) g2 = tan(1/2*x) clear;syms x; d2=diff(tan(1/2*x)) syms x; g3=int(1/(exp(x)+1)) g3 = log(exp(x))-log(exp(x)+1) clear;syms x; d3=diff(exp(x))-log(exp(x)+1)) syms x; g4=int(finverse(sin(x))) g4 = x*asin(x)+(1-x^2)^(1/2) clear;syms x; d4=diff(x*asin(x)+(1-x^2)^(1/2)) syms x; g5=int(sec(x).^3) g5 = 1/2/cos(x)^2*sin(x)+1/2*log(sec(x)+tan(x)) clear;syms x; d5=diff(1/2/cos(x)^2*sin(x)+1/2*log(sec(x)+tan(x))) 7.2 x=10e-100:0.001:1; y=sin(x)./x; trapz(x,y) clear all;syms x;

C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,b,c,x,y; a=150; b=20; c=45;

x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句

实验报告答案

实验2:MIPS指令系统和MIPS体系结构 一.实验目的 (1)了解和熟悉指令级模拟器 (2)熟悉掌握MIPSsim模拟器的操作和使用方法 (3)熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解 (4)熟悉MIPS体系结构 二. 实验内容和步骤 首先要阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统和汇编语言。(1)、启动MIPSsim(用鼠标双击MIPSsim.exe)。 (2)、选择“配置”->“流水方式”选项,使模拟器工作在非流水方式。 (3)、参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。 可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中),然后分别以单步执行一条指令、执行多条指令、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化。 (4)、选择“文件”->“载入程序”选项,加载样例程序 alltest.asm,然后查看“代码”窗口,查看程序所在的位置(起始地址为0x00000000)。 (5)、查看“寄存器”窗口PC寄存器的值:[PC]=0x00000000。 (6)、执行load和store指令,步骤如下: 1)单步执行一条指令(F7)。 2)下一条指令地址为0x00000004,是一条有 (有,无)符号载入字节 (字节,半字,字)指令。 3)单步执行一条指令(F7)。 4)查看R1的值,[R1]= 0xFFFFFFFFFFFFFF80 。 5)下一条指令地址为0x00000008,是一条有 (有,无)符号载入字 (字节,半字,字)指令。 6)单步执行1条指令。 7)查看R1的值,[R1]=0x0000000000000080 。 8)下一条指令地址为0x0000000C ,是一条无 (有,无)符号载入字节 (字节,半字,字)指令。 9)单步执行1条指令。 10)查看R1的值,[R1]= 0x0000000000000080 。 11)单步执行1条指令。 12)下一条指令地址为0x00000014 ,是一条保存字 (字节,半字,字)指令。 13)单步执行一条指令。

实验五 连接查询参考答案

--创建学生视图 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_stu]') and OBJECTPROPERTY(id, N'IsView') = 1) drop view [dbo].[v_stu] go create view v_stu as select sid, sname, ssexy, sbdate, Datediff(year, sbdate, getdate()) as sage, stele, ugrade.gid, gname, gyear, udept.did, dname, daddr, dtele, demail, uteacher.tid, tname, tsexy, tbdate, tfield, tprof, tele, qq, email, msn from ustudent, ugrade, udept, uteacher where ustudent.gid=ugrade.gid and ugrade.did=udept.did and ugrade.tid=uteacher.tid --创建选修课程视图 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_sc]') and OBJECTPROPERTY(id, N'IsView') = 1) drop view [dbo].[v_sc] go create view v_sc as select ustudent.sname, usc.*, cname, credit, pcid, chour, cattr, cnum from ustudent, usc, ucourse where ustudent.sid=usc.sid and usc.cid=ucourse.cid --1、显示所有学生的详细信息,包括学号、姓名、性别、年龄、班级名称,入学年份select sid, sname, ssexy, sage, gname, gyear from v_stu --2、显示信息科学与技术系同学的名单,包括学号、姓名、性别、年龄、班级名称、入学年份 select sid, sname, ssexy, sage, gname, gyear from v_stu where dname='信息科学与技术系' --3、显示选修了“数据库”的所有同学的学号、姓名 select sid, sname from v_sc where cname='数据库' --4、显示白云同学的班主任老师的姓名、联系电话 select tname, tele from v_stu

2010C语言实验报告参考答案

2010C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a;

大学物理实验报告答案大全(实验数据)

U 2 I 2 大学物理实验报告答案大全(实验数据及思考题答案全包括) 伏安法测电阻 实验目的 (1) 利用伏安法测电阻。 (2) 验证欧姆定律。 (3) 学会间接测量量不确定度的计算;进一步掌握有效数字的概念。 实验方法原理 根据欧姆定律, R = U ,如测得 U 和 I 则可计算出 R 。值得注意的是,本实验待测电阻有两只, 一个阻值相对较大,一个较小,因此测量时必须采用安培表内接和外接两个方式,以减小测量误差。 实验装置 待测电阻两只,0~5mA 电流表 1 只,0-5V 电压表 1 只,0~50mA 电流表 1 只,0~10V 电压表一 只,滑线变阻器 1 只,DF1730SB3A 稳压源 1 台。 实验步骤 本实验为简单设计性实验,实验线路、数据记录表格和具体实验步骤应由学生自行设计。必要时,可提示学 生参照第 2 章中的第 2.4 一节的有关内容。分压电路是必须要使用的,并作具体提示。 (1) 根据相应的电路图对电阻进行测量,记录 U 值和 I 值。对每一个电阻测量 3 次。 (2) 计算各次测量结果。如多次测量值相差不大,可取其平均值作为测量结果。 (3) 如果同一电阻多次测量结果相差很大,应分析原因并重新测量。 数据处理 (1) 由 U = U max ? 1.5% ,得到 U 1 = 0.15V , U 2 = 0.075V ; (2) 由 I = I max ? 1.5% ,得到 I 1 = 0.075mA , I 2 = 0.75mA ; (3) 再由 u R = R ( 3V ) + ( 3I ) ,求得 u R 1 = 9 ? 101 &, u R 2 = 1& ; (4) 结果表示 R 1 = (2.92 ± 0.09) ?10 3 &, R 2 = (44 ± 1)& 光栅衍射 实验目的 (1) 了解分光计的原理和构造。 (2) 学会分光计的调节和使用方法。 (3) 观测汞灯在可见光范围内几条光谱线的波长 实验方法原理

c语言实验习题及答案详解

1.数据类型 a.输入一个小数点后有多位数字的小数,实现将其保留三位小数,并输出;, #include<> main() {double b,d; printf("请输入一个小数:"); scanf("%lf",&b); printf("输出原来的数:%f\n",b); b*=1000; b+=; b=(int)b; d=b/1000; printf("输出现在的数:%.3lf\n0",d); } b.输入一个4位整数,求其得各位数字的平方和;(1234 1+4+9+16=30) #include<> main() {int n,sum=0,i,t; printf("请输入一个四位整数:\n"); scanf("%d",&n); for(i=0;i<4;i++) {t=n%10; n/=10; sum+=t*t; } printf("%d\n",sum);

} c.定义字符型变量ch,写出六种给ch赋值字符’A’的代码; #include<> main() {char ch; ch='A'; ch=65; ch=0x41; ch=0101; ch='\101'; ch='\x41'; } d.编写程序输出26组大小写字母;(AaBbCc……….XxYyZz) #include<> main() {int i; for(i=65;i<91;i++) {printf("%c",i); printf("%c",i+32); } printf("\n"); } e.定义浮点型变量f1、f2,为f1赋值10的-30次,为f2赋值10的30次 #include<> main() { double f1,f2; f1=10e-30;

哈工大(威海)c语言实验报告册答案

实验1简单判定性问题求解 一、实验学时 完成本实验需4学时。 二、实验目的 1、阅读程序题 (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法; (2)掌握不同的类型数据之间赋值的规律; (3)掌握数据在内存中的存储方式; (4)学会输入、输出函数的基本格式和使用方法; (5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。 2、编程题 (1)如何运用if-else判定性结构进行程序设计; (2)如何运用switch判定性结构进行程序设计。 3、调试题 (1)熟悉C程序的编辑、编译、连接和运行的过程。 三、实验指导 为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。 1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。 2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。要注意简单判定性问题的结构选择。 3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

四、实验内容 1、阅读程序题 (1)main( ) { /*定义字符型变量*/ char c1,c2; /*向字符变量赋以整数*/ c1=97; c2=98; printf("%c %c\n",c1,c2); /*以字符形式输出*/ printf("%d %d\n",c1,c2); /*以整数形式输出*/ } 思考:可否改成int c1,c2;输出结果是?相同 (2)main() { int a=7,b=5; printf("%d\n",b=b/a); } 思考:若将printf语句中%d变为%f,可否输出分式的值?可以(3)main() { int a=9; a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/ printf("%d\n",a); } 思考:赋值表达式a+=a-=a+a的求解步骤? 第一步:a=a-(a+a)=-9 第二步a=a+a=18 (4)main() { int k=-1; printf("%d,%u\n",k,k);

C实验报告1参考答案范文

《高级语言程序设计》实验报告 班级: 学号: 姓名: 成绩: 实验1熟悉Visual C++6.0环境及运行C 程序 一、实验目的 1.掌握在Visual C++6.0环境下C 程序的建立、编辑、编译和执行过程。 2.掌握C 程序的最基本框架结构,完成简单程序的编制与运行。 3.了解基本输入输出函数scanf()、printf ()的格式及使用方法。 4.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。 二、实验内容 1.下列程序的功能是:从键盘输入两个数a 和b ,求它们的平方和,并在屏幕上输出。输入该C 程序,编译并运行之,记下屏幕的输出结果,以文件名sy1_1.c 保存。 #include main() { int a,b,sum; /*定义整型变量a 、b 、sum */ printf("Please Input a,b \n "); /*输出提示信息*/ scanf("%d%d",&a,&b); /*从键盘输入两个整数分别赋予a 和b*/ sum=a*a+b*b; /*赋值语句,把a 2+b 2的结果赋给变量sum*/ printf("%d*%d+ %d*%d=%d\n",a,a,b,b,sum); /*输出语句*/ } (1)下列程序的功能为:计算x*y 的值并将结果输出。试纠正程序中存在的错误,以实现其功能。程序以文件名sy1_2.c 保存。 #include main main () { int x=2;y=3;a int x=2;y=3;a ;

A=x*y a =x*y ; print ('a=%d",A); print f ("a=%d",a ); printf("\n"); } (2)下程序的功能为:求两数中的较大数据并输出。纠正程序中存在的错误,以实现其功能。程序以文件名 sy1_3.c 保存。 #include viod main() void main() { int a ,b , max; Scanf(“%d,%d ”,&a,&b); s canf(“%d,%d ”,&a,&b); Max=a; m ax=a; If (max main() { int x,y,total; /* 定义整型变量x,y,total*/ printf("Please input x,y ! "); /* 输出提示信息 */ scanf(“%d%d ”,&x,&y); /* 由键盘输入两个数分别赋予x 和y*/ total=x+y; /* 赋值语句 */ printf("%d + %d=%d\n",x,y,total); /* 输出两个整数的和 */ }

大学化学实验课后思考题参考答案

(2)吸取溶液手拿刻度以上部分,将管的下口插入欲取的溶液中,吸取溶液 至刻度线2cm以上,迅速用食指堵住移液管管口。 (3)调节液面将移液管垂直提离液面,调节溶液的弯月面底部于刻度线相切 (4)放出溶液放液以后使尖嘴口在容器内壁靠约30秒,注意最后一滴的处 理,吹或不吹。 为了使液体自由落下,不停留在管内壁,确保移液准确定量,故放液时要垂直流下液体; 若移液管上没有注明“吹”字,最后一滴不可吹出,因为在设计移液管时,移液管体积没有包括最后一滴溶液的体积。 3)使用容量瓶配制溶液时,应如何进行定量转移? 答:称取一定质量的固体放在小烧杯中,用水溶解,转移过程中,用一根玻璃棒插入容量瓶内,烧杯嘴紧靠玻璃棒,使溶液沿玻璃棒慢慢流入,玻璃棒下端要靠近瓶颈内壁,不要接近瓶口,以免有溶液溢出。 待测液流完后,将烧杯沿玻璃棒向上稍提起,同时直立,是附着在烧杯嘴上的一滴溶液流回烧杯内。残留在烧杯中的少许溶液,可用少量蒸馏水按上述方法洗3-4次,洗涤液转移合并到容量瓶中;定容并摇匀。

实验二酸碱标准溶液的配制与浓度的标定 思考题: 1)配制酸碱标准溶液时,为什么用量筒量取盐酸和用台秤称固体氢氧化钠,而 不用移液管和分析天平?配制的溶液浓度应取几位有效数字?为什么 答:因为浓盐酸容易挥发,氢氧化钠吸收空气中的水分和二氧化碳,准确量取无意义,只能先近似配制溶液浓度,然后用基准物质标定其准确浓度,,所以配制时不需要移液管和分析天平。 因为配制时粗配,配制的溶液浓度应取一位有效数字。 2)标定HCl溶液时,基准物,称0.13g左右,标定NaOH溶液时,称邻苯 二甲酸氢钾0.5g左右,这些称量要求是怎么算出来的?称太多或太少对标定有何影响? 答:根据滴定时所需盐酸或氢氧化钠的体积在20-25ml估算出来的。因为滴定管在读数时会存在一定误差,消耗体积在20-25ml时相对误差较小。称太多,所需盐酸或氢氧化钠可能会超过滴定范围,而且会造成浪费;称太少,相对误差较大,不能满足误差要求。 3)标定用的基准物质应具备哪些条件? 答:基准物质应具备:(1)组成物质应有确定的化学式;(2)纯度要求在99%以上; (3)性质稳定;(4)有较大的摩尔质量;(5)与待标定物质有定量的化学反应。 4)溶解基准物质时加入50ml蒸馏水应使用移液管还是量筒?为什么? 答:用量筒。因为基准物质的质量是一定的,加入50ml蒸馏水只是保证基准物质完全溶解,不影响定量反应有关计算,所以只需用量筒取用就可以了。 5)用邻苯二甲酸氢钾标定氢氧化钠溶液时,为什么选用酚酞指示剂?用甲基橙 可以吗?为什么? 答:邻苯二甲酸氢钾与氢氧化钠反应的产物在水溶液中显微碱性,酚酞的显色范围为pH8-10,可准确地指示终点。 甲基橙的显色范围为pH3.1-4.4,在反应尚未达到终点时,就已经变色,会产生较大的误差,所以不能用甲基橙为指示剂。 6)能否作为标定酸的基准物?为什么? 答:不能,因为草酸的和值接近,不能分步滴定,滴定反应的产物不是唯一的,所以不能作为标定酸的基准为。但能作为氧化还原滴定的基准物。

C语言实验报告参考源代码

实验5三种基本结构的综合应用 4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=100;i<=999;i++) {for(j=2;j=i) /*三位数是素数时*/ {k=i%100; /*去掉百位数字*/ if(k>=10) /*十位数字不是0时*/ {for(m=2;m=k) /*两位数是素数时*/ {p=i%10; /*p为个位数字*/ for(q=2;q=p)n++;}}}} printf("%d\n",n);} Key:57 5.求[2,400]中相差为10的相邻素数对的对数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=2;i<=400;i++) {for(j=2;j=i) /*i是素数时*/ {for(k=i+1;k=k)break;} /*k是素数时终止if语句的外层循环*/ if(k>=i+10) /*[i+1,i+9]不是素数时*/ {for(q=2;q

实验报告5答案

实验报告 课程名称:高级语言程序设计 实验五:循环结构程序设计 班级: 学生姓名: 学号: 专业: 指导教师: 学期:2010-2011学年上学期 云南大学信息学院

一、实验目的 1、理解循环的概念 2、理解并掌握循环结构相关语句的含义、格式及使用 3、学会循环的应用及控制,包括: ① 掌握使用循环输入多个数据的方法 ② 掌握在多个数据中有选择地输出数据的方法 ③ 掌握在多个数据中对某种数据进行计数的方法 ④ 掌握求多个数据中最大值、最小值的方法 ⑤ 掌握使用break 、continue 语句终止循环 4、掌握循环的嵌套 二、知识要点 1、循环变量、循环条件、循环体的概念 2、三种循环语句的一般格式、执行过程 3、理解选择结构与循环结构中“条件表达式”之不同含义 4、二重循环的执行过程 三、实验预习 (要求做实验前完成) 1、循环变量的主要用途是: 2、用循环求多个数的和之前,先要把和的初始值赋为: 3、用循环求多个数的乘积之前,先要把乘积的初始值赋为: 4、字符变量能否作为循环变量? 5、循环过程中,如果循环条件成立,但需要结束循环,可采用什么办法? 6、什么叫循环的嵌套? 四、实验内容 (要求提供:① 算法描述或流程图 ② 源程序 ) 1、编程,利用循环计算以下表达式的值: (5+52)*(4+42)*(3+32)*(2+22)*(1+12)*(1/2+1/3+1/4+1/5)(for 循环) 2、编程,从键盘输入若干个整数,当输入0时,输入停止。统计并输出总共输入了几个 数,以及所有输入数的和。(while 循环) 3、输入一行字符,分别统计其中的英文字母、数字、空格和其他字符的个数。 4、使用二重循环编程,绘制如下图形: *****A ****B ***C **D *E 5. 输入10个整数,输出最大值、最小值和平均分。 6. 编写程序,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。程序运行后,若输入精度0.0005,则程序应输出为3.14…。 () 1121231234121233535735793521n n π?????????=++++++?????????+………… 五、实验结果(要求写出运行界面及输出的运行结果)

相关文档