重庆理工大学C语言程序实验报告.docx

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

重庆理工大学C语言程序实验报告.docx

《重庆理工大学C语言程序实验报告.docx》由会员分享,可在线阅读,更多相关《重庆理工大学C语言程序实验报告.docx(46页珍藏版)》请在冰点文库上搜索。

重庆理工大学C语言程序实验报告.docx

重庆理工大学C语言程序实验报告

(此文档为word格式,下载后您可任意编辑修改!

《程序设计基础C》

 

教学班级:

学号:

姓名:

课程教师:

实验辅导教师:

 

重庆理工大学计算机学院

2013年2月

实验5循环程序设计

教学班级:

学号:

姓名:

实验日期:

2013年5月28日实验地点:

4-210(机房)

实验成绩:

___________

一、实验目的

(1)了解C语言循环结构的使用范围。

(2)学会正确使用逻辑运算符和逻辑表达式。

(3)熟练掌握C语言的三种循环结构:

whilc语句、do……whilc语句、for语句的特点和使用方法。

(4)能够编写一些有实际应用意义的循环结构程序。

二、实验内容

1.基本内容

题目1:

计算1-3+5-7+......-99+101的值。

(提示:

注意符号的变化)

#include

{inti,t=1,s=0;*t标识正负符号*

for(i=1;i<101;i+=2)*error*

{s+=i*t;

t=-t;

}

printf("s=%d\n",s);

}

1请改错,并运行程序。

#include

{inti,t=1,s=0;

for(i=1;i<=101;i+=2)

{s+=i*t;

t=-t;

}

printf("s=%d\n",s);

}

2分别用do……while语句和while语句改写以上程序。

#include

{inti=1,t=1,s=0;*t标识正负符号*

do{s+=i*t;i++;t=-t;}

while(i<=101);

printf("s=%d\n",s);

}

#include

{inti=1,t=1,s=0;*t标识正负符号*

while(i<=101)

{s+=i*t;i++;t=-t;}

printf("s=%d\n",s);

}

题目2:

分析程序,运行时输入:

24579(注:

表示回车换行)。

#include

{intc;

while((c=getchar())!

='\n')

{switch(c-'2')

{case0:

case1:

putchar(c+4);

case2:

putchar(c+4);break;

case3:

putchar(c+3);

case4:

putchar(c+2);break;

default:

putchar(c);

}

}

printf("\n");

}

题目3:

下面程序的功能是打印100以内个位数为3且能被3整除的所有数,选择合适的语句填入该空格中。

#include

{

inti,j;

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

{j=i*10+3;

if(j%3!

=0)

continue;

printf("%4d",j);

}

}

题目4:

编程输出:

用0~4任意组成无重复数字的三位数?

都是多少?

每行输出10个数。

#include

{

inti,j,k,count=0;

printf("\n");

for(i=1;i<5;i++)*以下为三重循环*

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

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

{

if(i!

=j&&j!

=k&&i!

=k)*确保i、j、k三位互不相同*

{

printf("%6d",i*100+j*10+k);

count++;

if(i=j&&j=k&&i=k)

printf("\n");

}

}

printf("\n");

}

题目5:

根据公式

求e的近似值,精度要求为10-6。

#include

{

doublei=1,s=1,sum=1;

for(i=1;1s>0.000001;i++)

{s*=i;sum+=1s;}

printf("%f",sum);

}

题目6:

输入一行字符,将小写字母转换为大写字母显示,其它字符原样输出。

#include

{

charc;

while((c=getchar())!

='\n')

{if(c>='a'&&c<='z')

c=c-32;

putchar(c);

}

}

2.选择内容

题目7:

打印出如下图案

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

#include

{inti,j;

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

{for(j=1;j<=8-i;j++)理解数字8的作用

printf("");

for(j=1;j<=2*i-1;j++)

printf("*");

printf("\n");

}*上面的程序输出上三角形*

*下面的程序输出下三角形*

for(i=3;i>=1;i--)

{for(j=1;j<=8-i;j++)

printf("");

for(j=1;j<=2*i-1;j++)

printf("*");

printf("\n");}

}

①运行以上程序,验证实验结果。

②模仿上面程序,打印出如下图案

1

222

33333

#include

{inti,j;

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

{for(j=1;j<=6-i;j++)理解数字8的作用

printf("");

for(j=1;j<=2*i-1;j++)

printf("%d",i);

printf("\n");

}

}

9

#include

{

inti,n,s;

for(n=2;n<=1000;n++)

{s=0;

for(i=1;i

if(n%i==0)

s=s+i;

if(n==s)

printf("%5d",n);

}

}

三、实验结果(用截图说明)

1

2

3

4

5

6

7

9

10

四、调试心得(选作)

实验6数组实验

教学班级:

学号:

姓名:

实验日期:

2013年5月28日实验地点:

4-210(机房)

实验成绩:

___________

一、实验目的

(1)理解数组的特点及其与普通变量的区别及特点;

(2)掌握一维数组的定义、赋值和输入输出的方法;

(3)掌握二维数组的定义、赋值和输入输出的方法;

(4)掌握字符数组和字符串函数的使用;

(5)掌握与一维数组和字符数组有关的程序与算法;

(6)理解与二维数组有关的程序与算法。

二、实验任务

1.基本内容

【题目1】读程序,写结果。

#include

{

inti,s=0,a[10]={};

for(i=4;i<7;i++)

s=s+a[i];

printf("s=%d\n",s);

}

【题目2】下面程序给数组a输入数据,以每行4个数据形式输出,请填空。

##include

{

inti,a[N];

for(i=0;i

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

for(i=0;i

{

if(i%4==0)

printf("\n");

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

}

printf("\n");

}

【题目3】用简单选择法对10个整数排序,将程序补充完整。

#defineN10

#include

{

inti,j,min,temp,a[N]={};

for(i=0;i

{

min=i;

for(j=i+1;j

if(a[min]>a[j])

min=j;

if(min!

=i)

{temp=a[i];a[i]=a[min];a[min]=temp;}

}

printf("\n排序结果为:

\n");

for(i=0;i

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

printf("\n");

}

【题目4】下面的程序用冒泡法对10个数排序(从小到大),将程序补充完整。

#defineN10

#include

{

inti,j,min,temp,a[N]={};

for(i=0;i

for(j=0;j

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

{

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

printf("\n排序结果为:

\n");

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

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

printf("\n");

}

【题目5】任意输入20个数到一维数组a中,求这20个数的平均值。

#defineN20

#include

{

inti,s=0,a[N];

for(i=0;i

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

for(i=0;i

s+=a[i];

printf("%f",s20.0);

}

【题目6】编程:

任意输入10个数,判断该哪些是素数,并输出这些素数。

#include

{

inti,j,a[N];

for(i=0;i

{

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

for(j=2;j

if(a[i]%j==0)

break;

if(j==a[i])

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

}

}

【题目7】以下程序是求二维数组中的最小数及其下标(设最小数是唯一的),请填空完成程序,并上机验证。

#include

{

inti,j,row,col,min;

inta[3][4]={{},{},{}};

min=a[0][0];

_______________________

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

if(___________________)

{

min=a[i][j];

row=i;

col=j;

}

printf("min=%d,row=%d,col=%d\n",min,row,col);

}

【题目8】以下程序是实现输出杨辉三角(最多十行),请将程序补充补充完整。

1

11

121

1331

14641

15101051

#defineN11

#include

{

inti,j,a[N][N];

for(i=1;i

{

a[i][1]=1;

a[i][i]=1;

}

for(i=3;i

for(j=2;j<=i-1;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=1;i

{

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

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

printf(”\n”);

}

printf("\n");

}

【题目9】从键盘上任意键入n阶方阵,求它的两条对角线元素之和。

【题目10】分析以下读程序,写的运行结果,并上机验证。

#include

{

charc,s[]="BABCDCBA";

intk;

for(k=1;(c=s[k])!

='\0';k++)

{

switch(c)

{

case'A':

putchar('?

');continue;

case'B':

++k;break;

default:

putchar('*');

case'C':

putchar('&');continue;

}

putchar('#');

}

putchar('\n');

}

【题目11】输入一串字符,计算其中字母的个数。

#include

{

charch[N];

inti,count=0;

puts("请输入一串字符:

");

_____________________*提示:

使用字符串输入函数*

for(i=0;i

if(_____________________________________)

count++;

printf("字母个数为:

%d\n",count);

}

【题目12】编程:

输入一串字符,要求逆序输出。

2.选择内容

【题目13】将两个字符串连接起来,不使用strcat字符函数

#include

{

chars1[2*N],s2[N];

inti=0,j=0;

printf("\n请输入两个字符串,以空格或回车键作字符串结束标志:

\n");

scanf("%s",________);

scanf("%s",________);

while(s1[i]!

='\0')

i++;

while(_______________)

s1[i++]=s2[j++];

s1[i]='\0';

printf("\n连接后的两个字符串为:

\n%s\n",s1);

}

【题目14】在字符串str中查找字符ch首次出现的位置,若str字符串中不包含字符ch,则输出0。

【题目15】有4位学生,考4门功课。

求出每位学生的总分和平均分,及所有学生每门功课平均分和所有功课的平均分。

【题目16】找出一个二维数组的”鞍点”,即该位置上的元素在该行上最大,在该列上最小,如无”鞍点”,则给出提示。

三、实验结果(用截图说明)

1

2

3

4

5

6

7

8

9

10

11

12

13

四、调试心得(选作)

实验7函数实验

教学班级:

学号:

姓名:

实验日期:

2013年5月28日实验地点:

4-210(机房)

实验成绩:

___________

一、实验目的

(1)理解函数定义的方法。

(2)掌握函数实参与形参的对应关系,以及函数”参数传递”的方式。

(3)掌握函数的嵌套调用和递归调用的方法;

(4)掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法。

一、实验任务

1.基本内容

【题目1】以下程序是求3个数中的最大值,请完善程序并上机验证。

#include

{

inta,b,c,m;

intmax(intx,inty);*函数声明*

printf("inputa,b,c=");

scanf("%d,%d,%d",&a,&b,&c);

m=max(max(a,b),c);

printf("最大值是:

%d\n",m);

}

intmax(intx,inty)*函数定义*

{

intz;

z=(x>y)?

x:

y;

returnz;

}

【题目2】程序填空:

子函数中判断一个大于1的整数是否是素数,数据由主函数中输入,并在主函数中显示结果。

#include

{

intnumber;

intprime(intnumber);

printf("请输入一个正整数:

\n");

scanf("%d",&number);

if(__prime(number)________________________)

printf("\n%d是素数:

",number);

else

printf("\n%d不是素数:

",number);

}

intprime(intnumber)*请注意区别main函数和prime函数中的number变量*

{

intflag=1,n;

for(n=2;flag==1&&n<=number2;n++)

if(___number%n==0________________________)

flag=0;

return(flag);

}

【题目3】读程序,验证结果。

#include

{

inti=2,p;

intf(inta,intb);

p=f(i,i+=1);

printf("%d\n",p);

}

intf(inta,intb)

{

intc;

if(a>b)

c=1;

elseif(a==b)

c=0;

else

c=-1;

return(c);

}

①将程序中第4行语句:

p=f(i,i+=1);改为以下语句,比较程序结果:

p=f(i+=1,i);

②实践说明,函数的参数求值顺序是:

从右向左。

【题目4】编程在主函数中输入和输出字符串,在子函数中实现一个字符串按反序存放。

【题目5】用子函数计算4名学生的平均分。

标注“error”处有错误,请改正。

#include

}

voidmain()

{

floatscore[N],aver;

inti;

printf("\ninput%dscores:

\n",N);

for(i=0;i

scanf("%f",&score[i]);

aver=average(score);*error*

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

}

【题目6】改正标注“error”语句行的错误,理解本程序的功能。

#include

{

inta[][3]={},sum;

intfunc(inta[][3]);*函数声明*

sum=func(a);

printf("\nsum=%d\n",sum);

}

intfunc(inta[][3])

{

inti,j,sum=0;

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

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

if(i==j)

sum+=a[i][j];

returnsum;

}

【题目7】在主函数中定义数组A[3][4]、B[4],用子函数对数组A每一行求和,其值放在数组B中,在主函数中输出数组B的值。

【题目8】输入两个正整数,求其中最大公约数和最小公倍数。

将程序补充完整。

#include

}

intfun2(intx,inty)

{

returnx*yfun1(x,y);

}*函数的嵌套调用*

voidmain()

{

inta,b;

printf("请输入两个正整数:

\n");

scanf("%d,%d",&a,&b);

printf("它们的最大公约数为:

%d\n",___fun1(a,b)_____________);

printf("它们的最小公倍数为:

%d\n",_____fun2(a,b)___________);

}

【题目9】阅读以下程序,若输入为ABCDE#时,写出程序的执行结果。

#include"stdio.()

{

reverse();

printf("\n");

}

【题目10】编程计算猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,只剩下一个桃子了,求第一天共摘了多少桃子?

【题目11】阅读以下程序,该程序中,main函数的局部变量是:

_______________,max函数的局部变量是:

_______________,全局变量是:

_____________,理解它们的使用方式。

#include

}

voidmain()

{

inta=9;

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

}

【题目12】以下是一个求1-10累加和的错误程序,请改正。

#include

{

inti,s;

intsum(intj);

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

s=sum(i);

printf("s=%d\t",s);

}

sum(intj)

{

staticintx=0;

x+=j;

return(x);

}

2.选择内容

【题目13】编写一个函数,判断一个整数是不是回文数。

如:

34543是回文数,个位与万位相同,十位与千位相同。

【题目14】在一个数组A中存放100个数据,用子函数判断该数组中那些是素数,并统计该素数的个数,在主函数中输出该素数的个数。

【题目15】用递归法将一个整数转换成字符串。

例如,输入1234,应输出字符串”1234”。

n的位数不确定,可以是任意的整数。

请在注释行中添加注释,使程序易于理解。

#include

{

inti;

if((i=n10)!

=0)*__________________________________*

convert(i);

putchar(n%10+'0');*___________________________________*

}

voidmain()

{

intnumber;

printf("\n输入整数:

");

scanf("%d",&number);

printf("\n输出字符是:

");

if(number<0)*______________________________________*

{

putchar('-');

number=-number;

}

convert(number);

printf("\n");

}

二、实验结果(用截图说明):

1.

2.:

3.

4.

5.

8.

9.

11

12.

四、调试心得(选作)

实验8

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

当前位置:首页 > 小学教育 > 语文

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

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