《C语言》实验报告材料问题详解.docx
- 文档编号:16144518
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:15
- 大小:23.70KB
《C语言》实验报告材料问题详解.docx
《《C语言》实验报告材料问题详解.docx》由会员分享,可在线阅读,更多相关《《C语言》实验报告材料问题详解.docx(15页珍藏版)》请在冰点文库上搜索。
《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; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言 语言 实验 报告 材料 问题 详解