C语言程序设计实验指导书 答案 魏海新

Python015

C语言程序设计实验指导书 答案 魏海新,第1张

1、求1+2+3+……….+100。(循环) 答案 #include<stdio.h> void main() { int i,sum=0 for(i=1i<=100i++) sum=sum+i printf("%d",sum) } 2、 求1*2*3*……….*10。(循环) 答案 void main() { int i=0,j=1 for (i=2i<=10i++) { j*=i } printf("%d",j) return 0 } 3、 输入三个数字,输出他们的最大值。(if) 答案 #include<stdio.h>void main() {int a,b,c,d scanf("%d,%d,%d",&a,&b,&c) d=max(a,b,c) printf("max=%d",d) getch()/*暂停看运行结果*/ } int max(int x,int y,int z) {int u if(x>=y&&x>=z) u=x else if(y>=x&&y>=z) u=y else u=z return(u) 4.用起泡法对十个数据排序(数组实现) 答案 #include<stdio.h>main ( ) { int i,j,tstatic int a[10]={5,7,4,2,3,6,1,0,9,8}for(j=0j<9j++) { for(i=0i<9-ji++) { if(a[i]>a[i+1]) { t=a[i]a[i]=a[i+1]a[i+1]=t } } } for(i=0i<10i++) printf("%2d",a[i])} 5、输入十个数字,逆序输出。(数组实现) 答案 #include<stdio.h>main() {int a[10],i=0for(i=0i<=9i++) scanf("%f",&a[i])printf("\n")for(i=9i>=0i--) printf("%f",a[i])} 6输入两个数,交换他们的值并输出。(元素交换) 答案 #include<stdio.h>int main () { int m,n,tempscanf("%d%d",&m,&n)if (m<n) { temp=mm=nn=temp} printf("%d",m)return 0} 7.输出9*9乘法表。(双层循环) 答案 #include <stdio.h> void main() { int i=1for(ii<=9i++) { int j=1for(jj<=ij++) { printf("%d*%d=%d ", i, j, i*j)} printf("\n")} } 8.输入一行字符,将所有的小写字母转换成大写字母,大写字母转换成小写字母,其余字符不变。输出转变后的这行字符。 答案 #include "stdio.h" void main() { char a[n]int iscanf("%s",a)printf("大写为:")for(i=0i<=ni++) { if(a[i]<='z'&&a[i]>='a') a[i]=a[i]-32printf("%c",a[i])} printf("\n小写为:")for(i=0i<=3i++) { a[i]=a[i]+32printf("%c",a[i])} } 9、 编写一个简单计算器程序,要求能够完成两个数的+,-,*,/四种运算。输出运算式及运算结果。(switch) 6.2 #include"stdio.h" main() {char cint i=0,j=0,k=0,l=0while((c=getchar())!=’\n’) {if(c>=65&&c<=90||c>=97&&c<=122) i++else if(c>=48&&c<=57) j++else if(c==32) k++else l++} printf("i=%d,j=%d,k=%d,l=%d\n",i,j,k,l)} 6.6 #include"math.h" main() {int x=100,a,b,cwhile(x>=100&&x<1000) {a=0.01*xb=10*(0.01*x-a)c=x-100*a-10*bif(x==(pow(a,3)+pow(b,3)+pow(c,3))) printf("%5d",x)x++} } 6.7 main() {int m,i,j,sfor(m=6m<10000m++) {s=1for(i=2i<mi++) if(m%i==0) s=s+iif(m-s==0) {printf("%5d its fastors are 1 ",m)for(j=2j<mj++) if(m%j==0) printf("%d ",j)printf("\n")} } } 或 main() {int m,i,j,sfor(m=6m<1000m++) {s=m-1for(i=2i<mi++) if(m%i==0) s=s-iif(s==0) {printf("%5d its fastors are 1 ",m)for(j=2j<mj++) if(m%j==0) printf("%d ",j)printf("\n")} } } 6.8 main() {int i=1,ndouble t,x=1,y=2,s,sum=0scanf("%ld",&n)while(i<=n) {s=y/xsum=sum+st=yy=y+xx=ti++} printf("%f\n",sum)} 11,P128 例6.10(译码) #include<stdio.h>void main() { char cwhile((c=getchar())!='\n') { c=c+4if(c>'Z'+4||c>'z') c=c-26} printf("%c",c)} printf("\n")} 12,P111 5.5 5.6(switch) 5.5 #include <stdio.h>main() {int x,yprintf("输入x:")scanf("%d",&x)if(x<1) { y=xprintf("x=%3d, y=x=%d\n",x,y)} else if (x<10) { y=2*x-1printf("x=%3d, y=2*x-1=%d\n",x,y)} else { y=3*x-11printf("x=%3d, y=3*x-11=%d\n",x,y)} } 5.6 #include <stdio.h>main() { float scorechar gradecase 2: printf("请输入学生成绩:")scanf("%f",&score)while(score>100||(score<0) { printf("\n输入有误,请重新输入:")scanf("%f",&score)} switch((int)(score/10)) { case 10: case 9: grade=’A’breakcase 8: grade=’B’breakcase 7: grade=’C’breakcase 6: grade=’D’breakcase 5: case 4: case 3: case 1: case 0: grade=’E’} printf("成绩是%5.1f,相应的等级是%c。\n",score,grade)} 13,P108 例5.5(一元二次方程求根) 例5.6(求闰年) 5.5 #include<stdio.h>void main() { int year,leapscanf("%d",&year)if(year%4==0) { if(year%100==0) { if(year%400==0) leap=1else leap=0} else leap=1} else leap=0if(leap) printf("%d is",year)else printf("%d is not",year)printf("a leap year.\n") } 5.6 14,P31 例2.17 例2.18 2.17 输出50个学生中成绩高于80分者的学号和成绩 2.18 输出2000——2500年每一年是否闰年 #include<stdio.h> void main() { int year year=2000 go: if(((year%4 == 0)&&(year%100 != 0)) || (year%400 == 0)) printf("%d is run nian",year) if(year<=2500) year=year++ if(year>2500) goto end goto go end: getch() } 希望对你有所帮助

百度有很多这个教程的答案,非常多。你自己根据需求去下《C语言程序设计实验指导与习题解答》是与孙力主编的《C语言程序设计》(中国农业出版社出版)配套使用的实验指导书。全书共有4章。第1章是C语言编译环境介绍,主要介绍了VisualC++6.0集成开发环境下编辑、编译、调试和运行程序的方法。第2章是上机实验内容,编写了配合《C语言程序设计》上机实验的47个实验和1个综合实训,实验内容循序渐进,由浅入深,分别由基础性实验、提高性实验、综合性和设计性实验构成。第3章是程序开发中的常见错误与调试。第4章是《C语言程序设计》每章末部分习题的参考答案。

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#include<malloc.h>

#include<windows.h>

#include<conio.h>

struct geshen_info

{

char shen_number[4]

char shen_name[20]

int guojia_number

float guojia_jine

int yidiao_number

float yidiao_jie

char tongji_date[11]

char tongji_name[10]

}

struct inc_zhangpeng_info

{

char shen_name[20]

char inc_number[12]

char inc_name[30]

int shen_number

int inc_add_number

float inc_add_jine

int inc_diaochu_number

float inc_diaochu_jine

char tongji_date[11]

char tongji_name[10]

}

struct inc_mingxi_info

{

char inc_number[12]

int pici

char diaochu_pinzhong[30]

int diaochu_number

float diaochu_jine

char diaochu_date[11]

char tongji_name[10]

}

void geshen_info_luru()

{

system("cls")

FILE *pf

char flag='y'

struct geshen_info info

pf=fopen("c:\\各省帐篷调出基本信息.txt","a")

while(flag=='y')

{

memset(info.shen_name,0,20)

memset(info.tongji_date,0,11)

memset(info.tongji_name,0,10)

printf("请输入省编号(三位):\n")

fflush(stdin)

fgets(info.shen_number,5,stdin)

printf("请输入省份名称:\n")

fflush(stdin)

fgets(info.shen_name,20,stdin)

printf("请输入国家分配帐篷总数:\n")

fscanf(stdin,"%d",&info.guojia_number)

printf("请输入国家分配总金额:\n")

fscanf(stdin,"%f",&info.guojia_jine)

printf("请输入已调出帐篷数量:\n")

fscanf(stdin,"%d",&info.yidiao_number)

printf("请输入已调出帐篷金额:\n")

fscanf(stdin,"%f",&info.yidiao_jie)

printf("请输入统计日期(年/月/日):\n")

fflush(stdin)

fgets(info.tongji_date,11,stdin)

printf("请输入统计员:\n")

fflush(stdin)

fgets(info.tongji_name,10,stdin)

fwrite(&info,sizeof(struct geshen_info),1,pf)

printf("是否继续[y/n]:\n")

fflush(stdin)

flag=getchar()

}

fclose(pf)

}

void inc_zhangpeng_info_luru()

{

system("cls")

FILE *pf

char flag='y'

struct inc_zhangpeng_info info

pf=fopen("c:\\省属企业帐篷生产调出汇总基本信息.txt","a")

while(flag=='y')

{

memset(info.inc_name,0,30)

memset(info.tongji_date,0,11)

memset(info.tongji_name,0,10)

memset(info.shen_name,0,20)

printf("请输入该企业所属省份:\n")

fflush(stdin)

fgets(info.shen_name,20,stdin)

printf("请输入企业编号\n")

fflush(stdin)

fgets(info.inc_number,12,stdin)

printf("请输入企业名称\n")

fflush(stdin)

fgets(info.inc_name,30,stdin)

printf("请输入省分配帐篷总数\n")

fscanf(stdin,"%d",&info.shen_number)

printf("请输入已生产帐篷数量\n")

fscanf(stdin,"%d",&info.inc_add_number)

printf("请输入已生产帐篷金额\n")

fscanf(stdin,"%f",&info.inc_add_jine)

printf("请输入已调出帐篷数量\n")

fscanf(stdin,"%d",&info.inc_diaochu_number)

printf("请输入已调出帐篷金额\n")

fscanf(stdin,"%f",&info.inc_diaochu_jine)

printf("请输入统计日期\n")

fflush(stdin)

fgets(info.tongji_date,11,stdin)

printf("请输入统计员\n")

fflush(stdin)

fgets(info.tongji_name,10,stdin)

fwrite(&info,sizeof(struct inc_zhangpeng_info),1,pf)

printf("是否继续[y/n]:\n")

fflush(stdin)

flag=getchar()

}

fclose(pf)

}

void inc_mingxi_info_luru()

{

system("cls")

FILE *pf

char flag='y'

struct inc_mingxi_info info

pf=fopen("c:\\企业帐篷调出明细基本信息.txt","a")

while(flag=='y')

{

memset(info.diaochu_pinzhong,0,30)

memset(info.diaochu_date,0,11)

memset(info.tongji_name,0,10)

printf("请输入企业编号\n")

fflush(stdin)

fgets(info.inc_number,12,stdin)

printf("请输入调出帐篷批次\n")

fscanf(stdin,"%d",&info.pici)

printf("请输入调出帐篷品种\n")

fflush(stdin)

fgets(info.diaochu_pinzhong,30,stdin)

printf("请输入调出帐篷数量\n")

fscanf(stdin,"%d",&info.diaochu_number)

printf("请输入调出帐篷金额\n")

fscanf(stdin,"%f",&info.diaochu_jine)

printf("请输入统计日期\n")

fflush(stdin)

fgets(info.diaochu_date,11,stdin)

printf("请输入统计员\n")

fflush(stdin)

fgets(info.tongji_name,10,stdin)

fwrite(&info,sizeof(struct inc_mingxi_info),1,pf)

printf("是否继续[y/n]:\n")

fflush(stdin)

flag=getchar()

}

fclose(pf)

}

void change_geshen_info()

{

system("cls")

printf("**********修改各省信息:**********\n")

struct geshen_info info[100]

FILE *pf

int i=0

int length

int choose

char flag='n'

memset(info,0,sizeof(info))

pf=fopen("c:\\各省帐篷调出基本信息.txt","r")

if(!pf)

{

printf("打开信息库失败!\n")

Sleep(1000)

return

}

while(!feof(pf))

{

fread(&info[i],sizeof(struct geshen_info),1,pf)

i++

}

length=i-1

if(length==0)

{

printf("无信息:\n")

Sleep(1500)

return

}

printf("共有%d条信息\n",length)

for(i=0i<lengthi++)

{

printf(" 省编号: %s 省名: %s\n 国家分配帐篷总数: %d\n 国家分配总金额: %10.3f\n 已调出帐篷数量: %d\n 已调出帐篷金额: %10.3f\n 统计日期: %s\n 统计员: %s\n ",

info[i].shen_number,info[i].shen_name,info[i].guojia_number,info[i].guojia_jine,info[i].yidiao_number,info[i].yidiao_jie,info[i].tongji_date,info[i].tongji_name)

}

fclose(pf)

FILE *changef

changef=fopen("c:\\各省帐篷调出基本信息.txt","w")

while(flag=='n')

{

printf("请选择你要对那个信息进行修改:\n")

scanf("%d",&choose)

printf("你要修改的是否为[y/n]")

printf(" 省编号: %s 省名: %s\n 国家分配帐篷总数: %d\n 国家分配总金额: %10.3f\n 已调出帐篷数量: %d\n 已调出帐篷金额: %10.3f\n 统计日期: %s\n 统计员: %s\n ",

info[choose-1].shen_number,info[choose-1].shen_name,info[choose-1].guojia_number,info[choose-1].guojia_jine,info[choose-1].yidiao_number,info[choose-1].yidiao_jie,info[choose-1].tongji_date,info[choose-1].tongji_name)

fflush(stdin)

flag=getchar()

}

printf("进行修改:\n")

printf("请输入省编号(三位):\n")

fflush(stdin)

fgets(info[choose-1].shen_number,5,stdin)

printf("请输入省份名称:\n")

fflush(stdin)

fgets(info[choose-1].shen_name,20,stdin)

printf("请输入国家分配帐篷总数:\n")

fscanf(stdin,"%d",&info[choose-1].guojia_number)

printf("请输入国家分配总金额:\n")

fscanf(stdin,"%f",&info[choose-1].guojia_jine)

printf("请输入已调出帐篷数量:\n")

fscanf(stdin,"%d",&info[choose-1].yidiao_number)

printf("请输入已调出帐篷金额:\n")

fscanf(stdin,"%f",&info[choose-1].yidiao_jie)

printf("请输入统计日期(年/月/日):\n")

fflush(stdin)

fgets(info[choose-1].tongji_date,11,stdin)

printf("请输入统计员:\n")

fflush(stdin)

fgets(info[choose-1].tongji_name,10,stdin)

printf("修改成功\n")

printf("对文件进行写入:\n")

for(i=0i<lengthi++)

{

fwrite(&info[i],sizeof(struct geshen_info),1,changef)

}

fclose(changef)

}

void change_inc_zhangpeng_info()

{

system("cls")

printf("**********修改各省属企业信息:**********\n")

struct inc_zhangpeng_info info[100]

FILE *pf

int length

int i=0

int choose

char flag='n'

memset(info,0,sizeof(info))

pf=fopen("c:\\省属企业帐篷生产调出汇总基本信息.txt","r")

if(!pf)

{

printf("打开信息库失败!\n")

Sleep(1000)

return

}

while(!feof(pf))

{

fread(&info[i],sizeof(struct inc_zhangpeng_info),1,pf)

i++

}

length=i-1

if(length==0)

{

printf("无信息:\n")

Sleep(1500)

return

}

printf("共有%d条信息\n",length)

for(i=0i<lengthi++)

{

printf(" 企业编号: %s 企业名称: %s\n 省分配帐篷总数: %d\n 已生产帐篷总数: %d\n 已生产帐篷金额: %10.3f 已调出帐篷数量: %d\n 已调出帐篷金额: %10.3f\n 统计日期: %s\n 统计员: %s\n ",

info[i].inc_number,info[i].inc_name,info[i].shen_number,info[i].inc_add_number,info[i].inc_add_jine,info[i].inc_diaochu_number,info[i].inc_diaochu_jine,info[i].tongji_date,info[i].tongji_name)

}

fclose(pf)

FILE *changef

changef=fopen("c:\\省属企业帐篷生产调出汇总基本信息.txt","w")

while(flag=='n')

{

printf("请选择你要对那个信息进行修改:\n")

scanf("%d",&choose)

printf("你要修改的是否为[y/n]")

printf(" 省名: %s 企业编号: %s 企业名称: %s\n 省分配帐篷总数: %d\n 已生产帐篷总数: %d\n 已生产帐篷金额: %10.3f 已调出帐篷数量: %d\n 已调出帐篷金额: %10.3f\n 统计日期: %s\n 统计员: %s\n ",

info[choose-1].shen_name,info[choose-1].inc_number,info[choose-1].inc_name,info[choose-1].shen_number,info[choose-1].inc_add_number,info[choose-1].inc_add_jine,info[choose-1].inc_diaochu_number,info[choose-1].inc_diaochu_jine,info[choose-1].tongji_date,info[choose-1].tongji_name)

fflush(stdin)

flag=getchar()

}

printf("进行修改:\n")

memset(info[choose-1].inc_name,0,30)

memset(info[choose-1].tongji_date,0,11)

memset(info[choose-1].tongji_name,0,10)

memset(info[choose-1].shen_name,0,20)

printf("请输入该企业所属省份:\n")

fflush(stdin)

printf("请输入企业编号\n")

fflush(stdin)

fgets(info[choose-1].inc_number,12,stdin)

printf("请输入企业名称\n")

fflush(stdin)

fgets(info[choose-1].inc_name,30,stdin)

printf("请输入省分配帐篷总数\n")

fscanf(stdin,"%d",&info[choose-1].shen_number)

printf("请输入已生产帐篷数量\n")

fscanf(stdin,"%d",&info[choose-1].inc_add_number)

printf("请输入已生产帐篷金额\n")

fscanf(stdin,"%f",&info[choose-1].inc_add_jine)

printf("请输入已调出帐篷数量\n")

fscanf(stdin,"%d",&info[choose-1].inc_diaochu_number)

printf("请输入已调出帐篷金额\n")

fscanf(stdin,"%f",&info[choose-1].inc_diaochu_jine)

printf("请输入统计日期\n")

fflush(stdin)

fgets(info[choose-1].tongji_date,11,stdin)

printf("请输入统计员\n")

fflush(stdin)

fgets(info[choose-1].tongji_name,10,stdin)

printf("修改成功\n")

printf("对文件进行写入:\n")

for(i=0i<lengthi++)

{

fwrite(&info[i],sizeof(struct geshen_info),1,changef)

}

fclose(changef)

}

下面的发布上来了,给我邮箱,我发给你