《C语言》实验报告答案.docx

上传人:b****7 文档编号:15575924 上传时间:2023-07-05 格式:DOCX 页数:15 大小:23.96KB
下载 相关 举报
《C语言》实验报告答案.docx_第1页
第1页 / 共15页
《C语言》实验报告答案.docx_第2页
第2页 / 共15页
《C语言》实验报告答案.docx_第3页
第3页 / 共15页
《C语言》实验报告答案.docx_第4页
第4页 / 共15页
《C语言》实验报告答案.docx_第5页
第5页 / 共15页
《C语言》实验报告答案.docx_第6页
第6页 / 共15页
《C语言》实验报告答案.docx_第7页
第7页 / 共15页
《C语言》实验报告答案.docx_第8页
第8页 / 共15页
《C语言》实验报告答案.docx_第9页
第9页 / 共15页
《C语言》实验报告答案.docx_第10页
第10页 / 共15页
《C语言》实验报告答案.docx_第11页
第11页 / 共15页
《C语言》实验报告答案.docx_第12页
第12页 / 共15页
《C语言》实验报告答案.docx_第13页
第13页 / 共15页
《C语言》实验报告答案.docx_第14页
第14页 / 共15页
《C语言》实验报告答案.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《C语言》实验报告答案.docx

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

《C语言》实验报告答案.docx

《C语言》实验报告答案

计算机基础实验报告(C程序)

学号

班级

姓名

指导教师

金玲玲

实验题目

实验答案

实验内容

编程题:

1、输入一个整数,输出其绝对值。

#include

voidmain()

{

intdata;

printf(“inputthedata:

”);

scanf(“%d”,&data);

if(data>=0)

printf(“%d”,data);

else

printf(“%d”,-data);

}

2、编程题:

输入一个整数,判断该数是奇数还是偶数。

#include

voidmain()

{

intdata;

printf(“inputthedata:

”);

scanf(“%d”,&data);

if(data%2==0)

printf(“%d是偶数”,data);

else

printf(“%d是奇数”,-data);

}

3、编程题:

输入某学生的C语言成绩,判定并输出是否及格。

#include

voidmain()

{

doublegrade;

printf(“inputthec’sgrade:

”);

scanf(“%lf”,&grade);

if(data>=60)

printf(“pass”);

else

printf(“notpass”);

}

4.编写一个程序,要求输入一个字符并判断它是字母字符、数字字符、还是其他字符。

(本例需画流程图)

#include

intmain()

{

charch;

printf("Enterancharacter:

");

scanf("%c",&ch);

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

printf("%cisanalpha\n",ch);

else

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

printf("%cisanumeric\n",ch);

else

printf("%cisothercharacter\n",ch);

return0;

}

5.某单位马上要加工资,增加金额取决于工龄和现工资两个因素:

对于工龄大于等于20年的,如果现工资高于2000,加200元,否则加180元;对于工龄小于20年的,如果现工资高于1500,加150元,否则加120元。

工龄和现工资从键盘输入,编程求加工资后的员工工资。

#include

intmain()

{

doublesalary;

intyear;

printf("输入工龄和工资:

");

scanf("%d%lf",&year,&salary);

if(year>=20)

if(salary>2000)

salary=salary+200;

else

salary=salary+180;

else

if(salary>1500)

salary=salary+150;

else

salary=salary+120;

printf("afteraltered:

%.2f",salary);

return0;

}

6.水果店有苹果,一级5.50元/kg,二级4.20元/kg,三级3.00元/kg,四级2.50元/kg,输入苹果的等级、数量,显示出苹果的等级、数量、应付款数。

#include

intmain()

{

doubleprice,total,num;

intlevel;

printf("输入苹果等级和数量:

");

scanf("%d%lf",&level,&num);

switch(level)

{case1:

price=5.5;break;

case2:

price=4.2;break;

case3:

price=3.0;break;

case4:

price=2.5;break;

}

total=price*num;

printf("%fkg%dlevelapple:

%fyuan.",num,level,total);

return0;

}

7.在屏幕上显示一张如下所示的时间表:

*****Time*****

1morning

2afternoon

3night

Pleaseenteryourchoice:

操作人员根据提示进行选择,程序根据输入的时间序号显示相应的问候信息,如选择1时显示"Goodmorning",选择2时显示"Goodafternoon",选择3时显示"Goodnight",对于其他选择显示"Selectionerror!

",用switch语句编程实现。

#include

main()

{

intchoice;

printf("*****Time*****\n");

printf(“1morning\n”);

printf(“2afternoon\n”);

printf(“3night\n”);

printf(“pleaseenteryourchoice\n”);

scanf("%d",&choice);

switch(choice)

{case1:

printf(“Goodmorning!

”);break;

case2:

printf(“Goodafternoon!

”);break;

case3:

printf(“Goodnight!

”);break;

default:

printf(“Selectionerror!

”);

}

}

8.用while或do...while语句实现:

输入一个正整数,计算并输出该数的各位数字之和。

如:

输入12345,其和为1+2+3+4+5。

#include

voidmain()

{intdata,s=0;

scanf(“%d”,&data);

while(data>0)

{

s=s+data%10;

data=data/10;

}

printf(“s=%d”,s);

}

9.从键盘输入若干数,求其中最大数和最小数,直到输入的数为0时结束。

(要求画此题的流程图)

#include

voidmain()

{intdata,max,min;

scanf(“%d”,&data);

max=min=data;

while(data!

=0)

{

if(data>max)max=data;

if(data

scanf(“%d”,&data);

}

printf(“max=%d,min=%d”,max,min);

}

10.统计选票:

现输入选票如下:

3,1,2,1,1,3,3,2,1,2,3,3,3,2,1,1,3,2,0,4,-1

其中:

-1是结束标志;1选李,2选张,3选吴,0,4为废票,统计候选人票数。

intmain()

{intvote,l_vote=0,zh_vote=0,w_vote=0,other_vote=0;

scanf(“%d”,&vote);

for(;vote!

=-1;)

{

switch(vote)

{case1:

l_vote++;break;

case2:

zh_vote++;break;

case3:

w_vote++;break;

default:

other_vote++;

}

scanf(“%d”,&vote);

}

printf(“Li:

%d;Zhao:

%d;

Wu:

%d;Other:

%d”,l_vote,zh_vote,w_vote,other_vote);

return0;

}

11.一个灯塔有8层,共有765盏灯,其中每一层的灯数都是其相邻上层的两倍,求最底层的灯数。

#include

intmain()

{intx,s,i,k;

for(x=1;x<765/2;x++)

{s=0;

k=x;//塔顶灯数

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

{s=s+k;k=k*2;}

if(s==765)break;

}

printf(“%d”,k/2);

return0;

}

12.求100~200间的所有素数。

#include

intmain()

{intx,y;

for(x=100;x<=200;x++)

{

for(y=2;y

if(x%y==0)break;

if(y>=x)printf(“%d”,x);

}

return0;

}

13.输出100以内的所有能整除7的正整数。

#include

intmain()

{

inti;

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

{if(i%7!

=0)continue;

printf("%d\t",i);

}

return0;

}

14.输出半径为1到10的圆的面积,若面积在40到90之间则输出,否则,不输出。

#include  

#definePI3.14

intmain (){ 

 double area=0.0,r;  

for(r=1;r<11;r++){ 

          area=pI*r*r;           

if (area<40)           continue;       

elseif (area>90)         break; 

       printf("r=%.2f,area=%5.2f\n",r,area);   

return0;    

}

15.定义浮点型数组并初始化,求其偶数下标元素的和以及平均值

#include

#defineN10

intmain()

{doublea[N]={2.0,7.2,5.1,10.3,1.1,2.5,6.3,8,4.2,7.4},s=0,avg;

inti;

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

{

s+=a[i];

}

avg=s/N/2;

printf("sum=%.2f,avg=%.2f\n",s,avg);

return0;

}

16.输入10个整数,求其最大数和最小数。

#include

#defineN10

intmain()

{inta[N],i,max,min;

for(i=0;i

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

max=min=a[0];

for(i=1;i

{

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

if(a[i]

}

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

return0;

}

 

17.从键盘输入10个整数,统计其中正数、零和负数的个数并输出。

#include"stdio.h"

intmain()

{intdata[10];

intneg=0,pos=0,zero=0,i;

printf(“pleaseinput10integernumbers:

\n”);

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

scanf(“%d”,&data[i]);

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

{

if(data[i]>0)

pos++;

elseif(data[i]<0)

neg++;

else

zero++;

}

printf(“Thesumofpos=%d,neg=%d,zero=%d”,pos,neg,zero);

return0;

}

18.将一个一维数组中的值按逆序存放(注意不借助其他数组实现),并要求分别输出正序和

逆序排列数据。

思路:

以中间元素为基准,对称元素相互交换

intmain()

{inti=0,j=0,t;

intarr[10];

//输入数组元素值

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

scanf(“%d”,&arr[i]);

//对称交换

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

{t=arr[i];

arr[i]=arr[j];

arr[j]=t;

}

//输出数组元素值

printf(“afterreverse:

”);

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

scanf(“%d”,arr[i]);

return0;

}

19.分别求一个5×5矩阵的各行之和、各列之和、各对角线上的元素之和。

#include

#defineN5

voidmain()

{intarr[N][N],i,j,row[N],col[N],dig[2];//定义数组分别保存行和,列和和对角

//计算各行之和保存在row数组中

for(i=0;i

{row[i]=0;

for(j=0;j

row[i]+=arr[i][j];

}

//计算各行之和保存在col数组中

for(j=0;j

{col[i]=0;

for(i=0;i

col[i]+=arr[i][j];

}

//计算对角线的和

for(i=0;i

{dig[0]+=a[i][i];

dig[1]+=a[i][N-i-1];

}

//输出

for(i=0;i

printf(“%drowis%d”,i,row[i]);

for(i=0;i

printf(“%dcolumnis%d”,i,col[i]);

printf(“maindiagonalis%d,counterdiaonalis%d”,dig[0],dig[1]);

}

}

20.输入二维数组各元素,求一个3×4矩阵中最大的元素值,以及它的行号和列号。

#defineM3

#defineN4

main()

{

intmax,min,i,j,r,c,a[M][N];

for(i=0;i

for(j=0;j

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

max=a[0][0];

for(i=0;i

for(j=0;j

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

{max=a[i][j];

r=i;

c=j;

}

printf(“max=%d,row=%d,colum=%d\n”,max,r,c);

}

21.

若在2*8的二维数组中存放了数据,其中各行的元素构成一个整数,如第一行元素构成整数12345070。

编写程序比较两行元素构成的整数大小。

(规则:

从高位起逐个比对应位数,若每位均相等,则两数相等;若遇到第一个不相等的数字,则数字大者为大)

如:

1

2

3

4

5

0

7

0

1

2

3

6

5

1

3

2

第二行数大。

#include

#defineN8

intmain()

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

intj,n=0;

for(j=0;j

{if(a[0][j]==a[1][j])n++;

elseif(a[0][j]>a[1][j])

{printf(“数1>数2\n”);break;}

else{printf(“数1<数2\n”);break;}

}

if(n==8)printf(“两数相等.\n”);

return0;

}

22.输入奇数,输出图案。

其运行结果如下:

#include 

#define N 50 

int main() 

{     int a[N][N]={0};  

int n,i,j;  

printf("请输入奇数"); 

scanf("%d",&n);  

for(i=0;i

{ if(i<=n/2)  

 {    a[i][n/2-i]=1;    a[i][n/2+i]=1;   }  //上半部分图案

else   {        a[i][n-1-i+n/2]=1;    a[i][i-n/2]=1;      }  //下半部分图案

}  

for(i=0;i

{for(j=0;j

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

printf(“\n”);

}

return 0;

 }

 

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

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

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

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