高级语言程序设计.docx

上传人:b****6 文档编号:13105311 上传时间:2023-06-11 格式:DOCX 页数:46 大小:292.01KB
下载 相关 举报
高级语言程序设计.docx_第1页
第1页 / 共46页
高级语言程序设计.docx_第2页
第2页 / 共46页
高级语言程序设计.docx_第3页
第3页 / 共46页
高级语言程序设计.docx_第4页
第4页 / 共46页
高级语言程序设计.docx_第5页
第5页 / 共46页
高级语言程序设计.docx_第6页
第6页 / 共46页
高级语言程序设计.docx_第7页
第7页 / 共46页
高级语言程序设计.docx_第8页
第8页 / 共46页
高级语言程序设计.docx_第9页
第9页 / 共46页
高级语言程序设计.docx_第10页
第10页 / 共46页
高级语言程序设计.docx_第11页
第11页 / 共46页
高级语言程序设计.docx_第12页
第12页 / 共46页
高级语言程序设计.docx_第13页
第13页 / 共46页
高级语言程序设计.docx_第14页
第14页 / 共46页
高级语言程序设计.docx_第15页
第15页 / 共46页
高级语言程序设计.docx_第16页
第16页 / 共46页
高级语言程序设计.docx_第17页
第17页 / 共46页
高级语言程序设计.docx_第18页
第18页 / 共46页
高级语言程序设计.docx_第19页
第19页 / 共46页
高级语言程序设计.docx_第20页
第20页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

高级语言程序设计.docx

《高级语言程序设计.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计.docx(46页珍藏版)》请在冰点文库上搜索。

高级语言程序设计.docx

高级语言程序设计

陕西省高等教育自学考试

高级语言程序设计课程

实践环节考核报告

准考证号:

考生姓名:

所学专业:

计算机及应用专业层次:

大专

考核地点:

西安电子科技大学考核时间:

2012、5、18

考核桌(机)号:

同组考核者姓名:

实践考核评语及成绩评定(由指导教师填写)

 

教师签名:

年月日

主考院校:

西安电子科技大学

《高级语言程序设计》课程实践

实验环境

1.硬件:

CPU2.4G;内存256M;硬盘40G;显示器17;

2.软件:

操作系统windowsxp

3.实验环境:

TurboC,word2003

实验一数据类型、运算符、表达式和数据的输入输出

一、实验目的

1.掌握C语言的基本数据类型,熟悉不同类型数据之间运算和赋值的转换规律,以及字符型、整型数据之间的混合引用。

2.掌握运算符的优先级和结合方向,特别是増一(++)和减一(——)运算符的使用。

3.掌握C程序的编辑、编译、连接和运行的过程。

二、实验内容

手工分析程序中各变量的输出值,运行程序验证手工分析的结果。

1.符号位的扩展。

main()

{charc1,c2;

Inti1,i2;

unsignedu1,u2;

c1=’a’;c2=c1-32;

printf(“%c,%c,%d,%d\n”,c1,c2,c1,c2);

c1=’\176’;c2=’\376’;

i1=c1;12=c2;

u1=’\176’;u2=’\376’;

printf(“%d,%d,%u,%u\n”,i1,i2,u1,u2);

}

运行结果:

‘a’,’A’,97,65

126,-2,126,65534

2、算术表达式的计算。

上机运行并输出结果如下:

main()

{inti1,i2;

charc1,c2;

floatf;

i1=5;c1='A';

i2=i1+++i1;c2=--c1%2;

printf("%d,%d\n",i2,c2);

i1=10;i1*=i1-5;i2=i1%3;

printf("%d,%d\n",i1,i2);

i1=3;f=15/(i1--);

printf("%5.2f\n",f);

}

输出结果:

10,0

50,2

5.00

main()

{inta=5,b=4,c=3,i;

i=a>b>c;

printf("%d,%d\n",i,a||b+c&&c-b);

a=b=c=2;

i=a>b&&(c=0);

printf("%d,%d,%d,%d\n",i,a,b,c);

i=(a==b?

(c=0):

a>b?

(c=1):

(c=-1));

printf("%d,%d,%d,%d\n",i,a,b,c);

}

运行结果:

0,1

0,2,2,2

0,0,2,0

运行程序:

运行结果:

main()

{inta=5,b=4,c=3,i;

i=a>b>c;

printf("%d,%d\n",i,a||b+c&&c-b);

a=b=c=2;

i=a>b&&(c=0);

printf("%d,%d,%d,%d\n",i,a,b,c);

i=(a==b?

(c=0):

a>b?

(c=1):

(c=-1));

printf("%d,%d,%d,%d\n",i,a,b,c);

}

运行结果:

0,1

0,2,2,2

0,0,2,0

运行程序:

运行结果:

源代码:

main()

{inta=5,b=4,c=3,i;

i=a>b>c;

printf("%d,%d\n",i,a||b+c&&c-b);

a=b=c=2;

i=a>b&&(c=0);

printf("%d,%d,%d,%d\n",i,a,b,c);

i=(a==b?

(c=0):

a>b?

(c=1):

(c=-1));

printf("%d,%d,%d,%d\n",i,a,b,c);

}

运行结果:

0,1

0,2,2,2

0,0,2,0

运行程序:

 

运行结果:

main()

{inta=5,b=4,c=3,i;

i=a>b>c;

printf("%d,%d\n",i,a||b+c&&c-b);

a=b=c=2;

i=a>b&&(c=0);

printf("%d,%d,%d,%d\n",i,a,b,c);

i=(a==b?

(c=0):

a>b?

(c=1):

(c=-1));

printf("%d,%d,%d,%d\n",i,a,b,c);

}

运行程序:

运行结果:

运行结果:

0,1

0,2,2,2

0,0,2,0

5、逗号表达式的计算。

main()

{inta=2,b=3,c,i;

i=(b=a+1,c=b+2);

printf("%d,%d,%d,%d\n",a,b,c,i);

b=a++,c=++b,i=c+++a;

printf("%d,%d,%d,%d\n",a,b,c,i);

}

 

实验二基本语句的使用

一、实验目的

1.掌握if、switch语句的使用,掌握分支程序设计的一般方法。

2.掌握witch、do-while、for语句实现循环的方法,注意三种循环语句判断循环条件和执行循环体的先后顺序。

3.掌握用分支、循环的方法实现一些常用方法。

4.学习调试程序的方法。

二、实验内容

1.从键盘输入一个字符,判断是字母、数字还是其它字符。

将程序输出部分补充完整。

main()

{charch;

scanf("%c",&ch);

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

printf("%cisletter.\n",ch);

elseif('0'<=ch&&ch>='9')

printf("%cisdigit.\n",ch);

elseprintf("%cisother.\n",ch);

}

程序运行:

输出结果:

输出结果:

从键盘上输入:

4

输出结果:

4isother

输入:

B

输出结果:

Bisdigit

输入:

b

输出结果:

bisletter

2.输入X的值,计算Y的值。

X(x<1)

Y=2X-1(1=

3X-11(x.>=10)

#include

main()

{intx,y;

scanf("%d",&x);

if(x<1)y=x;

elseif(x<10)y=2*x-1;

elsey=3*x-11;

printf("%d",y);

}

输入:

x=0.6输出:

0.6

输入:

x=2输出:

3

输入:

x=11输出:

22

3.

X+1(0≤x≤1.5)

2x²+x+1(1.5≤x≤3.0)

X+sinx(3.0≤x≤6.0)

x²+cosx(6.0≤x≤9.0)

0(x≥9.0)

用if语句或switch语句计算.

Y=

 

#include

main()

{floatx,y;

scanf("%f",&x);

if(x>0&&x<=1.5)

y=x+1;

elseif(x>=1.5&&x<3.0)

y=2*x*x+x+1;

elseif(x>=3.0&&x<6.0)

y=x+sin(x);

elseif(x>=6.0&&x<9.0)

y=x*x+cos(x);

elseif(x≥9.0);

y=0;

}

输入数据:

1

结果:

2

4.输入一个不超过5位的正整数,要求1.求出它是几位数;2.分别打印出每一位数字;3.按逆序打印出各位数字,例如原数为123,应输出321.

main(){

intdata;

inta,b,c,d,e;

printf("enter:

");

scanf("%d",&data);

if(data<10){

printf("1\n");

}

if(data>=10&&data<100){

a=data%10;

b=data/10;

printf("2\n");

printf("%d%d\n",a,b);

}

if(data>=100&&data<1000){

a=data/100;

b=data/10%10;

c=data%10;

printf("3\n");

printf("%d%d%d\n",c,b,a);

}

if(data>=1000&&data<10000){

a=data/1000;

b=data/100%10;

c=data/10%10;

d=data%10;

printf("4\n");

printf("%d%d%d%d\n",d,c,b,a);

}

if(data>=10000&&data<100000){

a=data/10000;

b=data/1000%10;

c=data/100%10;

d=data/10%10;

e=data%10;

printf("5\n");

printf("%d%d%d%d%d\n",e,d,c,b,a);

}

getch();

}

输入:

123

输出结果为:

321

5.计算数列:

1、3、5、……2n-1、……的前n项之和,其中的n的键盘输入,将程序补充完整。

(分别用三种循环语句来完成)

方法一:

(用for语句实现)

main()

{longs,n,k,i;

scanf("%ld",&n);

k=2*n-1;

s=0;

for(i=1;i<=k;i++)s+=i;

printf("1+3+……+%ld=%ld\n",k,s);

}

方法二(用while语句实现)

main()

{longs=0,n,i=1;

scanf("%ld",&n);

while(i<=(2*n-1));

{s+=i;

i=i+2;

}

printf("1+3+……+%ld=%ld\n",2*n-1,s);

}

方法三(用do-while语句实现)

main()

{longs=0,n,i=1;

scanf("%ld",&n);

do

{s+=i;

i=i+2;

}while(i<=(2*n-1));

printf("1+3+……+%ld=%ld\n",2*n-1,s);

}

7、利用公式e=1+1/1!

+1/2!

+……+1/n!

计算e的值,要求最后一项小于10-6;

/1+1/1!

+1/2!

+....+1/n!

=e

main()

{inti=1,n=1;

floatp=1.0,e=1.0;

while(p>10E-6)

{n=n*i;

p=1.0/n;

i++;

e=e+p;

}

printf("%f=1+1/1!

+1/2!

+....+1/n!

\n",e);

}

结果:

e=1+1/1!

+1/2!

+…+1/n!

=2.718282

 

实验三数组及指针的应用

一、实验目的

1.掌握指针的概念,能够正确使用指针变量。

2.掌握一维数组和二维数组的定义及初始化的方法。

3.掌握使用下标法和指针法引用数组元素。

4.掌握用一维数组的方法处理二维数组。

5.掌握用字符数组存放字符串的操作方法,能正确使用指向字符串的指针量。

6.掌握系统提供的字符串处理函数。

7.掌握与数组有关的算法。

二、实验内容

1.用下标和指针对一维数组进行输出。

分析程序运行结果,然后运行程序进行验证。

main()

{inti,a[5]={1,2,3,4,5},b[3]={2,4,6},*pb=b;

for(i=0;i<5;i++)

printf("%5d",a[i]);

printf("\n");

for(i=4;i>=0;i--)

printf("%5d",*(a+i));

printf("\n");

for(i=0;i<3;i++)

printf("%5d",pb[i]);

printf("\n");

for(i=2;i>=0;i--)

printf("%5d",*(pb+i));

printf("\n");

}

运行程序:

运行结果:

输出结果:

1,2,3,4,55,4,3,2,12,4,66,4,2

2、输入字符串a,b,将字符串b连接在、字符串a之后。

将程序补充完整。

(不使用字符串连接函数)

#include

main()

{

chara[80],b[40],*pa=a,*pb=b;

gets(pa);gets(pb);

while(*pa!

='\0')pa++;

while(*pb!

='\0')

{*pa=*pb;

pa++;

pb++;

}

puts(a);

puts(b);

}

运行结果:

如数组a为:

abc,数组b为def

结果是:

abcdef

3、从键盘上输入一个十进制正整数,将其转化成八进制,然后输出(要求用字符型存放八进制数)

main()

{inti=0,a[100],x,k;

scanf("%d",&x);

while(x!

=0){

a[i]=x%8;

x/=8;

i++;

}

for(k=i-1;k>=0;k--)

printf("%d",a[k]);

}_

程序运行结果:

4、输入10个正整数,存入数组a中然后按从大到小的顺序进行排序并输出。

main()

{inti,j,m,n,a[10]

for(i=0;i<10;i++)

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

for(m=1;m<10;m++)

for(j=9,i=0;i<10-m;i++,j--)

if(a[j]>a[j-1])

{n=a[j],a[j]=a[j-1],a[j-1]=n;}

for(i=10;i>0;i--)

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

printf("\n");

}

实验结果:

12,36,-35,56,-15,35,40,58,-100,

58,56,40,36,35,12,-15,-35,-100

6、输入一行数字字符,用整型数组统计其中每个数字字符的个数,下标为零的元素存放‘0’的个数,下标为一的元素存放‘1’的个数,……。

#include

#include

intmain()

{

inta[10]={0};

charch='\0';

printf("请输入数字:

");

do

{

ch=getche();

if(ch>='0'&&ch<='9')

{

a[ch-'0']++;

}

}while((ch>='0'&&ch<='9'));//非数字退出循环

for(inti=0;i<10;++i)

{

printf("\n%d,%d个",i,a[i]);

}

return0;

}

7、用二维字符型数组存放若干个字符串,利用系统提供的字符串处理函数找出其中最大的字符串。

#include

#include

#define N 3 

void main()

{

char a[10][10];

int i;char *max;

for(i=0;i

{

printf("input %d strings:

",i+1);

gets(a[i]);

}

max=a[0];

for(i=1;i

if(strcmp(max,a[i])<0)max=a[i];

puts(max);

}

 

实验四函数及指针的应用

一、实验目的

1.掌握函数定义和调用的方法。

2.掌握函数之间数据传递的方法,理解“值传递”和“地址传递”的区别。

3.掌握函数的嵌套调用和递归调用的方法。

4.掌握数据存贮类型的概念和使用方法。

二、实验内容

1、利用函数求一维数组中的最大值和最小值,将程序补充完成。

#definen5

main()

{voidmax_min();

inta[n],i,max,min;

for(i=0;i

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

max_min(a,&max,&min,n);

for(i=0;i

printf("%5d",a[i]);

printf("\nmax=%d,min=%d\n",max,min);

}

voidmax_min(a,p_max,p_min,n)

inta[],*p_max,*p_min,n;

{inti;

*p_max=*p_min=a[0];

for(i=1;i

{if(a[i]>*p_max)*p_max=a[i];

if(a[i]<*p_min)*p_min=a[i];

}

return;

}

实验结果:

8,32,46,15,20

max=46,min=8

2.分析程序运行结果,然后运行程序进行验证。

比较静态变量与自动变量的区别。

源程序:

main()

{voidfun();

fun();

fun();

}

voidfun()

{inta=0;

staticintb=0;

a++;b++;

printf("%d,%d\n",a,b);

}

运行程序:

运行结果:

输出结果:

1,11,21,11,2

 

4、分别用函数递归和非递归的方法求两个整数的最大公约数。

要求在主函数中输入两个整数并输出最大公约数。

1)非递归

#include

intmain()

{

intm,n;

intm_cup,n_cup,res;/*被除数,除数,余数*/

printf("Entertwointeger:

\n");

scanf("%d%d",&m,&n);

if(m>0&&n>0)

{

m_cup=m;

n_cup=n;

res=m_cup%n_cup;

while(res!

=0)

{

m_cup=n_cup;

n_cup=res;

res=m_cup%n_cup;

}

printf("Greatestcommondivisor:

%d\n",n_cup);

}

elseprintf("Error!

\n");

return0;

}

2)递归

#include

intgetGreatestCommonDivisor(intnum1,intnum2)

{

inttemp;

temp=num1%num2;

if(temp==0)

{

returnnum2;

}

else

{

returngetGreatestCommonDivisor(num2,temp);

}

}

intmain()

{

intm,n;

intm_cup,n_cup,res;/*被除数,除数,余数*/

printf("Entertwointeger:

\n");

scanf("%d%d",&m,&n);

if(m>0&&n>0)

{

m_cup=m;

n_cup=n;

printf("Greatestcommondivisor:

%d\n",getGreatestCommonDivisor(m_cup,n_cup));

}

elseprintf("Error!

\n");

return0;

}

5.用函数递归的方法求Fibonacci数列的前n项。

int(m);

intm;

{if(n<0)

{printf("inputerror!

\n");

return(-1);

else

if(m==0||m==1)

return

(1);

else

return(f(m-2)+f(m-1));

}

main()

{inti,f[100];

scanf(%d%,&n);

for(i=0;i

{F[i]=f[i];printf(“%d”,F(i);)}

实验结果:

1235

13213455

144233377610

1597258441816765

只部分结果。

9

7、编写一函数,统计由实参传来的一个字符串中的字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。

#include

voidcount(char*s,int*a,int*b,int*c,int*d)

{

*a=*b=*c=*d=0;

while(*s)

{

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

(*a)++;

elseif('0'<=*s&&*s<='9')

(*b)++;

elseif(*s=='')

(*c)++;

else

(*d)++;

s++;

}

}

intmain()

{

chars[100];

intlc,dc,sc,oc;

printf("输入字符串:

\n");

gets(s);

count(s,&lc,&dc,&sc,&oc);

printf("字母:

%d\n",lc);

printf("数字:

%d\n",dc);

printf("空格:

%d\n",sc);

printf("其它:

%d\n",oc);

return0;

}

8、利用函数计算一个5*5矩阵的主对角线元素之和,在主函数中输出矩阵以及主对角线元素之和。

#include

intmain(intargc,char*argv[])

{

inti,j;

intsum=0;

intmatrix[5][5]={0};

printf("请输入一个5×5矩阵:

\n");

for(i=0;i<5;i++)

for(j=0;j<5;j++)

{

scanf(

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2