C实验报告答案.doc

上传人:wj 文档编号:5636583 上传时间:2023-05-08 格式:DOC 页数:18 大小:79.44KB
下载 相关 举报
C实验报告答案.doc_第1页
第1页 / 共18页
C实验报告答案.doc_第2页
第2页 / 共18页
C实验报告答案.doc_第3页
第3页 / 共18页
C实验报告答案.doc_第4页
第4页 / 共18页
C实验报告答案.doc_第5页
第5页 / 共18页
C实验报告答案.doc_第6页
第6页 / 共18页
C实验报告答案.doc_第7页
第7页 / 共18页
C实验报告答案.doc_第8页
第8页 / 共18页
C实验报告答案.doc_第9页
第9页 / 共18页
C实验报告答案.doc_第10页
第10页 / 共18页
C实验报告答案.doc_第11页
第11页 / 共18页
C实验报告答案.doc_第12页
第12页 / 共18页
C实验报告答案.doc_第13页
第13页 / 共18页
C实验报告答案.doc_第14页
第14页 / 共18页
C实验报告答案.doc_第15页
第15页 / 共18页
C实验报告答案.doc_第16页
第16页 / 共18页
C实验报告答案.doc_第17页
第17页 / 共18页
C实验报告答案.doc_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C实验报告答案.doc

《C实验报告答案.doc》由会员分享,可在线阅读,更多相关《C实验报告答案.doc(18页珍藏版)》请在冰点文库上搜索。

C实验报告答案.doc

实验

一、实验学时

完成本实验需4学时。

二、实验目的1、阅读程序题

1

简单判定性问题求解

(1)掌握c语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法;

(2)掌握不同的类型数据之间赋值的规律;(3)掌握数据在内存中的存储方式;

(4)学会输入、输出函数的基本格式和使用方法;

(5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。

2、编程题

(1)如何运用if-else判定性结构进行程序设计;

(2)如何运用switch判定性结构进行程序设计。

3、调试题

(1)熟悉c程序的编辑、编译、连接和运行的过程。

三、实验指导

为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。

1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。

2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。

要注意简单判定性问题的结构选择。

3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。

对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

-1-

四、实验内容

1、阅读程序题

(1)main()

{/*定义字符型变量*/

charc1,c2;/*向字符变量赋以整数*/c1=97;c2=98;

printf(%c%c\n,c1,c2);/*以字符形式输出*/printf(%d%d\n,c1,c2);/*以整数形式输出*/

}

思考:

可否改成intc1,c2;输出结果是?

相同

(2)main()

{

inta=7,b=5;

printf(%d\n,b=b/a);

}

思考:

若将printf语句中%d变为%f,可否输出分式的值?

可以

(3)main()

{

inta=9;

a+=a-=a+a;/*包含复合的赋值运算符的赋值表达式*/printf(%d\n,a);

}

思考:

赋值表达式a+=a-=a+a的求解步骤?

第一步:

a=a-(a+a)=-9第二步a=a+a=18(4)main()

{

intk=-1;

printf(%d,%u\n,k,k);}

-2-

思考:

-1在内存中的存储形式?

取反加一11111111111111111111111111111111(32个)

(5)main()

{

unsignedx1;intb=-1;

x1=b;/*有符号数据传送给无符号变量*/printf(%u,x1);

}

(6)main()

{

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

printf(%d\n,(!

(a<b))&&(c=c+1));printf(%d,c);}

思考:

若将第一个1(换行)6(7)main()

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

if(c=a);printf(%d\n,c);else

printf(%d\n,b);}

2、编程序并上机调试运行(包括题目及要求、流程图、程序清单、测试数据及结果)

(1)将一个百分制成绩转换成等级制成绩,百分制与等级制的对应

-3-

具体要求如下:

1)用switch语句实现该功能;

2)用键盘输入百分制成绩,输入前要有提示信息,对于不合理的数

据应输出错误信息;

3)输出结果应包含百分制成绩和成绩等级;

4)分别输入成绩-10,30,60,68,75,83,95,102,查看记录运

行结果。

-4-

(2)银行整存整取存款不同期限的月息利率分别为:

?

0.63%?

?

0.66%?

月息利率=?

0.69%

?

0.75%?

?

输入存款的本金和年?

0.84%

期限?

1年期限?

2年期限?

3年期限?

5年

期限?

8年限,求到期时能从银行得到

程序代码

的利息与本金的合计。

(利息的计算公式为:

利息=本金×月息利率×12

-5-篇二:

c实验报告5参考答案

《高级语言程序设计》实验报告班级:

学号:

姓名:

成绩:

实验5循环结构程序设计

一、实验目的

1.掌握循环结构程序设计的3种控制语句——while语句、do···while语句、for语句的使用方法。

2.了解用循环的方法实现常用的算法设计。

二、实验内容

1

(1)下列程序的功能为:

求1~100之和(和值为5050)并输出。

纠正程序中存在的错误,以实现其功能。

程序以文件名sy5_1.c保存。

#include<stdio.h>

main()

{

inti,sum=0;

i=1;

while(i<100)while(i<=100)sum=sum+i;{sum=sum+i;i++;i++;}

printf(“thesumfrom1to100is%d\n”,sum);

}

(2)下列程序的功能为:

倒序打印26个英文字母。

纠正程序中存在的错误,以实现其功能,程序以文件名sy5_2.c保存。

#include<stdio.h>main(){

charx;

x=z;

while(x!

=a)while(x!

=a-1)或while(x>=a){

printf(%3d,x);printf(%3c,x);

x++;

x--;

}

}

(3)下列程序的功能为:

输入一个大写字母,打印出一个菱形。

该菱形中间一行由此字母组成,其相邻的上下两行由它前面的一个字母组成,按此规律,直到字母a出现在第

一行和最末行为止。

纠正程序中存在的错误,以实现其功能。

程序以文件名sy5_3.c保存。

例如,输入字母d,打印出如下图形:

#include<stdlib.h>

main()

{

inti,j,k;

charch;

scanf(%c,&ch);

k=ch-a+1;

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

{

for(j=20;j>=i;j--)

printf(%c,);

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

printf(%c,a+i-1);

printf(\n);

}

k=ch-a;

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

{for(i=20;i>=i;i--)for(j=20;j>=i;j--)

printf(%c,);

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

printf(%c,a+i-1);

printf(\n);

}

}

2.程序填空题

(1)用辗转相除法求两个正整数的最大公约数和最小公倍数。

补充完善程序,以实现其功能,程序以文件名sy5_4.c保存。

#include<stdio.h>main(){scanf(%d%d,&m,&n);

if(m<n)

/*交换两数*/

k=m*n;

r=m%n;

while(r)

{m=n;

n=r;

;

}

printf(%d输出最大公约数和最小公倍数*/

}

(2)假设有1020个西瓜,第一天卖了一半多两个,以后每天卖剩的一半多两个,求几天后能卖完。

补充完善程序,以实现其功能。

程序以文件名sy5_5.c保存。

#include<stdio.h>

main(){intday,x1,x2;day=0;

x1=1020;

{

;

x1=x2;

day++;

}

printf(day=%d\n,day);

}

(3)下列程序的功能为:

输出100以内能被3整除且个位数为6的所有整数.补充完善程序,以实现其功能。

程序以文件名sy5_6.c保存。

#include<stdio.h>

main(){inti,j;for(i=0;_______;i++)

{j=i*10+6;

if(_______)

continue;

printf(%d,j);

}

}

3

(1)计算1~100之间所有含8的数之和。

程序以文件名sy5_7.c保存。

参考程序:

#include<stdio.h>

main()

{

inti,sum=0;

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

if(i%10==8||i/10==8)

sum+=i;

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

}

(2)编写程序,利用下列近似公式计算e值,误差应小于10-5。

程序以文件名sy5_8.c保存。

e?

1?

1111?

?

?

…?

1!

2!

3!

n!

参考程序:

#include<stdio.h>

main()

{

inti=0;

longn=1;

floate=0,t=1;

while(t>1e-5)

{

e+=t;

i++;

n*=i;

t=1.0/n;

}

printf(e=%f\n,e);

}

(3)某学校有近千名学生,在操场上排队,若5人一行余2人,7人一行余3人,3人一行余1人。

编写程序,求该校的学生总人数。

程序以文件名sy5_9.c保存。

参考程序:

#include<stdio.h>

main()

{inti;

for(i=900;i<=1000;i++)

if(i%5==2&&i%7==3&&i%3==1)

break;

printf(学生总人数=%d\n,i);

}

(4)从键盘输入n个学生的学号和每人m门课程的成绩,计算每个学生的总分及平均分。

输出内容包括每个学生的学号、总分和平均分。

程序以文件名sy5_10.c保存。

#include<stdio.h>

voidmain()

{

inti,j,n,m,no,score,sum;

floatave;

printf(输入学生数和每人课程数:

);

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

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

{sum=0;

printf(输入第%d个学生的学号:

i);

scanf(%d,&no);

printf(输入第%d个学生的%d门课程成绩:

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

{

scanf(%d,&score);

sum+=score;

}

ave=(float)sum/m;

printf(\n**第%d

为:

%.2f\n\n,i,no,sum,ave);

}

}

个学生的学号为:

%d总分为:

%d平均分篇三:

c实验报告6参考答案

《高级语言程序设计》实验报告

班级:

学号:

姓名:

成绩:

实验6数组程序设计

一、实验目的

1.掌握一维数组和二维数组的定义、赋值和输入输出的方法。

2.掌握字符数组和字符串函数的使用。

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

二、实验内容

1

(1)中存在的错误,以实现其功能。

程序以文件名sy6_1.c保存。

#include<stdio.h>

voidmain(){intn=10,i,sum=0;inta[n];inta[10];

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

{

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

sum=sum+a[i];

}

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

}

(2)下列程序的功能为:

将字符串b连接到字符串a。

纠正程序中存在的错误,以实现其功能。

程序以文件名sy6_2.c保存。

inti,n=0;

while(!

a[n])n++;while(a[n]!

=\0)n++;

for(i=0;b[i]!

=\0;i++)

a[n+i]=b[i];

a[n+i]=’\0

’;

printf(%s\n,a);

}

(3)下列程序的功能为:

找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。

也可能没有鞍点。

纠正程序中存在的错误,以实现其功能。

程序以文件名sy6_3.c保存。

#include<stdio.h>

#definen4

#definem4

main()

{

inti,j,k,flag1,flag2,a[n][m],max,maxj;for(i=0;i<n;i++)for(j=0;j<m;j++)

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

flag2=0;

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

{

max=a[j][0];max=a[i][0];

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

if(a[i][j]>max)if(a[i][j]>=max)

{

max=a[i][j];

maxj=j;

}

for(k=0,flag1=1;k<n&&flag1;k++)

if(max>a[k][maxj])

flag1=0;

if(flag1)

{

printf(\nthesaddlepointis:

a[%d][%d]=%d\n,i,maxj,max);

flag2=1;

}

}

if(flag2)if(!

flag2)

printf(\nthereisnosaddlepointinthematrix\n);

}

2.程序填空题

(1)以下程序的功能是:

采用二分法在给定的有序数组中查找用户输入的值,并显示查找结果。

补充完善程序,以实现其功能。

程序以文件名sy6_4.c保存。

#includestdio.h

#definen10

main()

{

inta[]={0,1,2,3,4,5,6,7,8,9},k;

intlow=0,high=n-1,mid,find=0;

printf(请输入欲查找的值:

\n);

scanf(%d,&k);

while(low<=high)

{

mid=(low+high)/2;

if(a[mid]==k)

{

printf(找到位置为:

%d\n,mid+1);find=1;

}

if(a[mid]>k)

;

else

_____;

}

if(!

find.printf(%d未找到\n,k);`

}

(2)以下程序的功能是:

求3个字符串(每串不超过20个字符)中的最大者。

补充完善程序,以实现其功能。

程序以文件名sy6_5.c保存。

#include<stdio.h>

#include<string.h>

voidmain()

{

charstring[20],str[3][20];

inti;

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

gets(str[i]);

)strcpy(string,str[0]);

elsestrcpy(string,str[1]);

if(puts(string);

}

(3)下列程序的功能为:

从键盘输入20个整数,统计非负数个数,并计算非负数之和。

补充完善程序,以实现其功能。

程序以文件名sy6_6.c保存。

#include<stdio.h>

main()

{inti,a[20],sum=0,count;

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

);

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

{if(a[i]<0)

sum+=a[i];

count++;

}

printf(s=%d\tcount=%d\n,sum,count);

}

3.编程题

(1)然后在排好序的数列中插入一个数,使数列保持从大到小的顺序。

程序以文件名sy6_7.c存盘。

#definen11

#include<stdio.h>

voidmain()

printf(请输入%d个整数:

\n,n);

for(i=0;i<n-1;i++)

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

for(i=0;i<n-2;i++)//选择排序

{k=i;

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

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

k=j;

if(k!

=i)

{t=a[k];a[k]=a[i];a[i]=t;}

}

printf(\n排序后:

\n);

for(i=0;i<n-1;i++)

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

printf(\n请输入插入整数:

);

scanf(%d,&p);

j=9;

while(j>=0&&a[j]>p)//找插入位置

{a[j+1]=a[j];j--;}

a[j+1]=p;//插入

printf(\n插入后:

\n);

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

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

printf(\n);

}

(2)从键盘输入两个矩阵a、b的值,求c=a+b。

程序以文件名sy6_8.c存盘。

357?

?

4810?

a?

?

?

?

?

b?

?

12136?

?

61316?

?

?

?

?

?

#include<stdio.h>

voidmain()

{

inta[2][3],b[2][3],c[2][3],i,j;

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

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

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

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

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

scanf(%d,&b[i][j]);

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

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

c[i][j]=a[i][j]+b[i][j];

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

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

printf(%3d,c[i][j]);

printf(\n);

}

}

(3)从键盘输入一个字符串,删除其中某个字符。

如输入字符串“abcdefededff”,删除其中的字符e,则输出的字符串为“abcdfddff”。

程序以文件名sy6_9.c存盘。

//方法一:

#include<stdio.h>

#include<string.h>

voidmain()

{

inti,j;

chars[80],c;

printf(输入一行字符:

);

gets(s);

printf(输入要删除字符:

);scanf(%c,&c);

for(i=0,j=0;s[i]!

=\0;i++)

if(s[i]!

=c)

s[j++]=s[i];

s[j]=\0;

puts(s);

}

//方法二:

#include<stdio.h>

#include<string.h>

voidmain()

{charline[80];

charch;

inti,j;

intlen;

printf(输入一行字符:

);

gets(line);printf(输入要删除字符:

);

ch=getchar();

i=0;

while(line[i]!

=\0)

{while(line[i]!

=\0&&line[i]!

=ch)i++;len=strlen(line);

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

line[j]=line[j+1];line[j]=\0;

}

puts(line);

}篇四:

c实验报告7参考答案

《高级语言程序设计》实验报告

班级:

学号:

姓名:

成绩:

实验7函数程序设计

一、实验目的

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

2.掌握函数实参与形参的传递方式。

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

4.了解全局变量和局部变量、动态变量、静态变量的概念和使用方法。

二、实验内容

1

(1)下列sub函数的功能为:

将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。

例如,当s所指字符串的内容为“abcd”时,t所指数组中的内容为“dcbaabcd”。

纠正程序中存在的错误,以实现其功能。

程序以文件名sy7_1.c存盘。

#include<stdio.h>

#include<string.h>

voidsub(chars[],chart[])

{

inti,d;

d=strlen(s);

for(i=1;i<d;i++)for(i=0;i<d;i++)

t[i]=s[d-1-i];

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

t[d+i]=s[i];

t[2*d]=/0;t[2*d]=\0

}

main()

{

chars[100],t[100];

printf(pleaseenterstrings:

);

scanf(%s,s);

sub(s,t);

printf(\ntheresultis:

%s\n,t);

}

(2)下列程序的功能为:

将字符数组中的字符串逆序输出。

纠正程序中存在的错误,以实现其功能。

程序以文件名sy7_2.c存盘。

#include<string.h>

#include<stdio.h>

#definearr_size=80;

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

当前位置:首页 > 初中教育 > 语文

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

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