1、C语言实验报告标准答案C语言实验报告答案 作者: 日期: 计算机基础实验报告(C程序)学号 班级姓名指导教师金玲玲实验题目实验答案实验内容 编程题: 1、输入一个整数,输出其绝对值。 #include void main() int data; printf(“input the data:”); scanf(“%d”,&data); if(data=0) printf(“%d”,data); else printf(“%d”,-data); 2、编程题:输入一个整数,判断该数是奇数还是偶数。 #include void main() int data; printf(“input the d
2、ata:”); scanf(“%d”,&data); if(data%2=0) printf(“%d是偶数”,data); else printf(“%d是奇数”,-data); 3、编程题:输入某学生的C语言成绩,判定并输出是否及格。 #include void main() double grade; printf(“input the cs grade:”); scanf(“%lf”,&grade); if(data=60) printf(“pass”); else printf(“not pass”); 4.编写一个程序,要求输入一个字符并判断它是字母字符、数字字符、还是其他字符。 (
3、本例需画流程图 ) #includeint main() char ch; printf(Enter an character:); scanf(%c,&ch);if(ch=a&ch=A&ch=0&ch=9) printf(%c is a numericn,ch); else printf(%c is other charactern,ch); return 0;5.某单位马上要加工资,增加金额取决于工龄和现工资两个因素:对于工龄大于等于20年的,如果现工资高于2000,加200元,否则加180元;对于工龄小于20年的,如果现工资高于1500,加150元,否则加120元。工龄和现工资从键盘输入
4、,编程求加工资后的员工工资。#include int main ( ) double salary; int year; printf(输入工龄和工资:); scanf(%d%lf,&year,&salary); if(year=20) if(salary2000) salary=salary+200; else salary=salary+180; else if(salary1500) salary=salary+150; else salary=salary+120; printf(after altered:%.2f,salary); return 0;6.水果店有苹果,一级5.50元
5、/kg,二级4.20元/kg,三级3.00元/kg,四级2.50元/kg,输入苹果的等级、数量,显示出苹果的等级、数量、应付款数。#include int main ( ) double price,total,num; int level; printf(输入苹果等级和数量:); scanf(%d%lf,&level,&num); switch(level) case 1: price=5.5; break; case 2: price=4.2; break; case 3: price=3.0; break; case 4: price=2.5; break; total=price*nu
6、m; printf(%f kg %d level apple: %f yuan.,num,level,total); return 0;7.在屏幕上显示一张如下所示的时间表: *Time* 1 morning 2 afternoon 3 night Please enter your choice: 操作人员根据提示进行选择,程序根据输入的时间序号显示相应的问候信息,如选择1时显示Good morning, 选择2时显示Good afternoon, 选择3时显示Good night,对于其他选择显示Selection error!,用switch语句编程实现。 #includemain()
7、int choice; printf(*Time*n); printf(“1 morningn”); printf(“2 afternoonn”); printf(“3 nightn”); printf(“please enter your choicen”); scanf(%d,&choice); switch(choice) case 1: printf(“Good morning!”); break; case 2:printf(“Good afternoon!”); break; case 3:printf(“Good night!”); break; default: printf(
8、“Selection error!”); 8.用while或do.while语句实现:输入一个正整数,计算并输出该数的各位数字之和。如:输入12345,其和为1+2+3+4+5。 #include void main() int data,s=0; scanf(“%d”,&data); while(data0) s=s+data%10; data=data/10; printf(“s=%d”,s); 9.从键盘输入若干数,求其中最大数和最小数,直到输入的数为0时结束。(要求画此题的流程图) #include void main() int data,max,min; scanf(“%d”,&d
9、ata); max=min=data; while(data!=0) if(datamax) max=data; if(datamin) min=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为废票,统计候选人票数。 int main() int vote, l_vote=0,zh_vote=0,w_vote=0,other_vote=0; scanf(
10、“%d”,&vote); for(;vote!=-1;) switch(vote) case 1: l_vote+;break; case 2:zh_vote+;break; case 3: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); return 0; 11. 一个灯塔有8层,共有765盏灯,其中每一层的灯数都是其相邻上层的两倍,求最底层的灯数。#include int main
11、( ) int x,s,i,k; for(x=1;x765/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); return 0;12. 求100200间的所有素数。#include int main( ) int x,y; for(x=100;x=200;x+) for(y=2;y=x) printf(“%d”,x); return 0;13. 输出100以内的所有能整除7的正整数。#include int main() int i; for(i=1;i100;i+) i
12、f(i%7!=0) continue; printf(%dt,i); return 0;14. 输出半径为1到10的圆的面积,若面积在40到90之间则输出,否则,不输出。#include #define PI 3.14 int main() double area=0.0,r;for(r=1;r11;r+) area=pI*r*r;if(area90)break; printf(r=%.2f,area=%5.2fn,r,area); return 0;15. 定义浮点型数组并初始化,求其偶数下标元素的和以及平均值#include #define N 10int main() double aN
13、=2.0,7.2,5.1,10.3,1.1,2.5,6.3,8,4.2,7.4,s=0,avg; int i; for(i=0;i10;i+=2) s+=ai; avg=s/N/2; printf(sum=%.2f,avg=%.2fn,s,avg); return 0;16. 输入10个整数,求其最大数和最小数。#include#define N 10int main() int aN,i,max,min; for(i=0;iN;i+) scanf(%d,&ai); max=min=a0; for(i=1;imax) max=ai; if(aimin) min=ai; printf(max=%
14、d,min=%dn,max,min); return 0; 17.从键盘输入10个整数,统计其中正数、零和负数的个数并输出。#include stdio.hint main( ) int data10; int neg=0,pos=0,zero=0,i; printf(“please input 10 integer numbers:n”); for(i=0;i10;i+) scanf(“%d”, &datai); for(i=0,i0) pos+; else if(datai0) neg+; else zero+; printf(“The sum of pos=%d,neg=%d,zero=
15、%d”,pos,neg,zero); return 0; 18. 将一个一维数组中的值按逆序存放(注意不借助其他数组实现),并要求分别输出正序和 逆序排列数据。 思路:以中间元素为基准,对称元素相互交换int main() int i=0,j=0,t; int arr10; /输入数组元素值 for(i=0;i10;i+) scanf(“%d”,&arri); /对称交换 for(;i=j;i+,j+) t=arri; arri=arrj; arrj=t; /输出数组元素值 printf(“after reverse:”); for(i=0;i10;i+) scanf(“%d ”,arri);
16、 return 0; 19. 分别求一个55矩阵的各行之和、各列之和、各对角线上的元素之和。 #include #define N 5 void main() int arrNN,i,j,rowN,colN,dig2; /定义数组分别保存行和,列和和对角 /计算各行之和保存在row数组中 for(i=0;iN;i+) rowi=0; for(j=0;jN;j+) rowi+=arrij; /计算各行之和保存在col数组中 for(j=0;jN;j+) coli=0; for(i=0;iN;i+) coli+=arrij; /计算对角线的和 for(i=0;iN;i+) dig0+=aii; d
17、ig1+=aiN-i-1; /输出 for(i=0;iN;i+) printf(“%d row is %d”, i,rowi); for(i=0;iN;i+) printf(“%d column is %d”, i,coli); printf(“main diagonal is %d,counter diaonal is %d”,dig0,dig1); 20.输入二维数组各元素,求一个34矩阵中最大的元素值,以及它的行号和列号。#define M 3#define N 4main( )int max,min,i,j,r,c,aMN;for(i=0;iM;i+)for(j=0;jN;i+) sc
18、anf(“%d”,&aij);max=a00;for(i=0;iM;i+)for(j=0;jmax) max= aij;r=i;c=j;printf(“max=%d , row =%d , colum=%d n”,max , r, c); 21. 若在2*8的二维数组中存放了数据,其中各行的元素构成一个整数,如第一行元素构成整数12345070。编写程序比较两行元素构成的整数大小。(规则:从高位起逐个比对应位数,若每位均相等,则两数相等;若遇到第一个不相等的数字,则数字大者为大) 如:1234507012365132 第二行数大。 #include #define N 8 int main()
19、 int a2N=1,2,3,4,5,0,7,0,1,2,3,6,5,1,3,2; int j,n=0; for(j=0;ja1j ) printf(“ 数1数2n”); break; else printf(“数1数2n”); break; if(n=8) printf(“两数相等.n”); return 0; 22. 输入奇数,输出图案。其运行结果如下: #include#define N 50intmain()intaNN=0;intn,i,j;printf(请输入奇数);scanf(%d,&n);for(i=0;in;i+) if(i=n/2)ain/2-i=1;ain/2+i=1; /上半部分图案elseain-1-i+n/2=1;aii-n/2=1;/下半部分图案 for(i=0;in;i+) for(j=0;jn;j+)printf(“%5d,aij);printf(“n”);return0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1