《C语言程序的设计》(江宝钏著)实验五答案
c语言程序设计,江宝钏著,实验九

宁波大学实验报告学号姓名专业土木建设类5班学院阳明学院2016年 6月 10 日}2.程序改写题#include<>struct{int year;int month;int day;}date;int main(){int days(int year,int month,int day);int day_sum;printf("Input year,month,day:");scanf("%d,%d,%d",&,&,&;day_sum=days,,;printf("%d/%d is the %dth day in %d",,,day_sum,; return 0;}int days(int year,int month,int day){int sum=0,i;int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; for(i=1;i<month;i++){sum=sum+a[i];}sum=sum+day;if((year%1==0&&year%100!=0||year%400==0)&&month>=3){sum+=1;}return sum;}3.一般编程题(1)#include<>struct z{c har a[30];i nt r;};void main(){struct z z1={"通信工程",32},z2={"电子信息科学与工程",35},z3={"自动化",44},z4={"光电信息工程",28};printf("%s专业,报名人数%d\n",,;printf("%s专业,报名人数%d\n",,;printf("%s专业,报名人数%d\n",,;printf("%s专业,报名人数%d\n",,;}(2)#include ""#include <>#define SIZE 3struct student{int score[3];float average;} stud[SIZE];void input(){int i;for(i=0;i<SIZE;i++){printf("第%d个学生的成绩:\n",i+1);scanf("%d%d%d",&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);}}void calaverage(){int i;for(i=0;i<SIZE;i++){stud[i].average=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/;}}void sortput(){int i,j;struct student temp;for(i=0;i<SIZE;i++){for(j=0;j<SIZE-i-1;j++){if(stud[j].average<stud[j+1].average)temp=stud[j];stud[j]=stud[j+1];stud[j+1]=temp;}}}void output(){int i;printf("\n");for(i=0;i<SIZE;i++)printf("%d %d %d %\n",stud[i].score[0],stud[i].score[1],stud[i].score[2], stud[i].average);}void main(){input();calaverage();sortput();output();}实验心得、遇到的问题与解决的方法:结构体的使用,可以让我们可以将多个变量当作一个整体。
《C语言程序设计》(江宝钏著)实验八答案

江宝钏实验八3.一般编程题1.用指针法统计10个数中正数、负数和零的个数,并分别求正数的总和,负数的总和。
#include <stdio.h>void main(){int a[10];int i,*p,sum1,sum2,c1,c2,c3;printf("输入10个整数:");for(i=0;i<10;i++)scanf("%d",&a[i]);c1=c2=c3=0;sum1=sum2=0;for(p=a;p<(a+10);p++){if(*p<0){ sum1+=*p;c1++;}if(*p==0){ c2++;}if(*p>0) {sum2+=*p;c3++;}}printf("正数,负数的和:%d %d\n",sum2,sum1);printf("正数、零、负数的个数:%d %d %d \n",c3,c2,c1);}4.较难编程题1.输入一行字符,开始用一个指针指向这行字符的开头,并依次向后移,分别统计出其中英文字母、空格、数字和其它字符的个数。
#include <stdio.h>#include <string.h>#define N 100void main(){char *p;char str[N];int c1,c2,c3,c4,i;printf("input a string:");gets(str);i=strlen(str);c1=c2=c3=c4=0;for(p=str;p<str+i;p++){if(*p>='a'&&*p<='z'||*p>='A'&&*p<='Z') c1++;if(*p==' ')c2++;if(*p>='0'&&*p<='9')c3++;elsec4++;}printf("字母个数:%d\n",c1);printf("空格个数:%d\n",c2);printf("数字个数:%d\n",c3);printf("其他字符个数:%d",c4);}。
C语言程序设计 (江宝钏 著) 清华大学出版社 第6章参考答案

习题6一、程序阅读题1、以下程序运行后的输出结果是c 。
#include <stdio.h>void fun(int x, int y, int z){z=x*x+y*y;}void main(){int a=31;fun(5,2,a);printf("%d",,a);}A、0B、29C、31D、无定值2、以下程序运行后的输出结果是d 。
#include <stdio.h>void f(int x,int y){int t;if(x<y){ t=x; x=y; y=t; }}void main( ){int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c);printf("%d,%d,%d\n",a,b,c);}A、3,4,5B、5,3,4C、5,4,3D、4,3,53、以下程序运行后的输出结果是a 。
#include "stdio.h"#define FUDGE(y) 2.84+y#define PR(a) printf("%d",(int)(a)) #define PRINT1(a) PR(a);putchar('\n') void main(){int x=2;PRINT1(FUDGE(5)*x);}A、12B、14C、16D、184、以下程序的输出结果是d 。
#include <stdio.h>int k = 1;void main(){ void Fun();int j;for(j = 0; j < 2; j++)Fun();printf("k=%d", k);}void Fun(){ int k = 1;printf("k=%d,", k);k++;}A、k=1,k=2,k=3B、k=1,k=2,k=1C、k=1,k=1,k=2D、k=1,k=1,k=15、以下程序的输出结果是d 。
《C语言程序设计》实验设计习题答案

《C语言程序设计》实验设计习题答案C语言程序设计是计算机专业的一门基础课程,通过实验设计习题可以帮助学生巩固所学的C语言知识,并提升编程能力。
本文将为您提供《C语言程序设计》实验设计习题的答案,以帮助您更好地理解和掌握相关知识。
实验一:基本输入输出实验题目描述:请编写一个程序,实现输入两个整数并输出其和与积。
```c#include<stdio.h>int main(){int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);int sum = num1 + num2;int product = num1 * num2;printf("和:%d\n", sum);printf("积:%d\n", product);return 0;```实验二:判断奇偶数实验题目描述:请编写一个程序,实现判断输入整数是奇数还是偶数的功能,并输出结果。
```c#include<stdio.h>int main(){int num;printf("请输入一个整数:");scanf("%d", &num);if(num % 2 == 0){printf("%d为偶数\n", num);}else{printf("%d为奇数\n", num);return 0;}```实验三:求和实验题目描述:请编写一个程序,实现输入n个整数并输出其和。
```c#include<stdio.h>int main(){int n, num;int sum = 0;printf("请输入整数的个数:");scanf("%d", &n);for(int i = 0; i < n; i++){printf("请输入第%d个整数:", i+1);scanf("%d", &num);sum += num;printf("和:%d\n", sum);return 0;}```实验四:阶乘实验题目描述:请编写一个程序,实现输入一个整数并输出其阶乘。
《C语言程序设计》(江宝钏著)实验五答案

5.4 实验五函数与预处理一、实验目的与要求1. 掌握C语言函数的定义方法、函数的声明及函数的调用方法。
2. 理解函数实参与形参的对应关系以及“值传递”的方式。
3. 掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。
4. 掌握动态存储分配的方法。
5. 掌握宏定义和文件包含处理方法。
6. 实验4学时二、实验内容1.程序验证与改错题(1) 程序验证题①下面程序执行的结果是什么void swap(int x, int y){int temp;temp=x;x=y;y=temp;}void main(){int a,b;scanf(“%d%d”, &a,&b);if(a>b)swap(a, b);printf(“%d\t %d”, a,b);}思考:为什么a,b的值没有交换?答:修改后的函数为#include<stdio.h>void swap(int &x, int &y){int temp;temp=x;x=y;y=temp;}void main(){int a,b;scanf("%d%d",&a,&b);swap(a,b); //if语句被去掉//printf("%d\t %d\n", a,b);}因为调用函数中改变的是形参而非实参,加上&,其意义是改变实参的地址。
If语句中,只有当a>b时才交换a,b的值去掉后在任何情况下都交换a,b的值②调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。
请验证下面的程序是否符合题目要求。
#include”stdio.h”int fun(int n){int m, i;for (i=1; i<=n; i++){m+=i;}return m;}void main(){printf("m=%d\n", fun(10));}在上面程序的基础上,修改程序. 计算m=1-2+3-4+…+9-10。
《C语言程序设计》(江宝钏著)实验八答案

江宝钏实验八3.一般编程题1.用指针法统计10个数中正数、负数与零的个数,并分别求正数的总与,负数的总与。
#include <stdio、h>void main(){int a[10];int i,*p,sum1,sum2,c1,c2,c3;printf("输入10个整数:");for(i=0;i<10;i++)scanf("%d",&a[i]);c1=c2=c3=0;sum1=sum2=0;for(p=a;p<(a+10);p++){if(*p<0){ sum1+=*p;c1++;}if(*p==0){ c2++;}if(*p>0) {sum2+=*p;c3++;}}printf("正数,负数的与:%d %d\n",sum2,sum1);printf("正数、零、负数的个数:%d %d %d \n",c3,c2,c1);}4.较难编程题1.输入一行字符,开始用一个指针指向这行字符的开头,并依次向后移,分别统计出其中英文字母、空格、数字与其它字符的个数。
#include <stdio、h>#include <string、h>#define N 100void main(){char *p;char str[N];int c1,c2,c3,c4,i;printf("input a string:");gets(str);i=strlen(str);c1=c2=c3=c4=0;for(p=str;p<str+i;p++){if(*p>='a'&&*p<='z'||*p>='A'&&*p<='Z')c1++;if(*p==' ')c2++;if(*p>='0'&&*p<='9')c3++;elsec4++;}printf("字母个数:%d\n",c1); printf("空格个数:%d\n",c2); printf("数字个数:%d\n",c3); printf("其她字符个数:%d",c4); }。
《C语言程序设计》(江宝钏著)实验五答案培训资料

《C语言程序设计》(江宝钏著)实验五答案5.4 实验五函数与预处理一、实验目的与要求1. 掌握C语言函数的定义方法、函数的声明及函数的调用方法。
2. 理解函数实参与形参的对应关系以及“值传递”的方式。
3. 掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。
4. 掌握动态存储分配的方法。
5. 掌握宏定义和文件包含处理方法。
6. 实验4学时二、实验内容1.程序验证与改错题(1) 程序验证题①下面程序执行的结果是什么void swap(int x, int y){int temp;temp=x;x=y;y=temp;}void main(){int a,b;scanf(“%d%d”, &a,&b);if(a>b)swap(a, b);printf(“%d\t %d”, a,b);}思考:为什么a,b的值没有交换?答:修改后的函数为#include<stdio.h>void swap(int &x, int &y){int temp;temp=x;y=temp;}void main(){int a,b;scanf("%d%d",&a,&b);swap(a,b); //if语句被去掉//printf("%d\t %d\n", a,b);}因为调用函数中改变的是形参而非实参,加上&,其意义是改变实参的地址。
If语句中,只有当a>b时才交换a,b的值去掉后在任何情况下都交换a,b的值②调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。
请验证下面的程序是否符合题目要求。
#include”stdio.h”int fun(int n){int m, i;for (i=1; i<=n; i++){m+=i;}return m;}void main(){printf("m=%d\n", fun(10));}在上面程序的基础上,修改程序. 计算m=1-2+3-4+…+9-10。
C语言程序设计(江宝钏著)清华大学出版社第9章习题答案(1)

C语言程序设计(江宝钏著)清华大学出版社第9章习题答案(1)习题9 答案第5 题:#includevoid infoinput(struct student* st,int num);void levelcount(struct student* st,int num);//定义一个结构student 表示学生基本情况struct student{char stuno[20];char stuname[20];double cgrade;char gradelevel;};int main(){struct student ss[100]; //根据题意,一个班学生人数不超过100 个int snum=0;while (snum<=0||snum>100){printf("请输入班级的学生数n<=100:");scanf("%d",&snum);}infoinput(ss,snum);levelcount(ss,snum);return 0;}//输入基本数据void infoinput(struct student* st,int num){int i=0;while(i<num){< bdsfid="89" p=""></num){<>printf("请输入学生%1d 的学号、姓名、计算机成绩:",i+1);scanf("%s%s%lf",st[i].stuno,st[i].stuname,&st[i].cgrade); while (st[i].cgrade<0||st[i].cgrade>100){printf("请输入学生%1d 的计算机成绩[0-100]:",i+1);scanf("%lf",&st[i].cgrade);}if (st[i].cgrade>=90) st[i].gradelevel='A';else if(st[i].cgrade>=70) st[i].gradelevel='B';else if(st[i].cgrade>=60) st[i].gradelevel='C';else st[i].gradelevel='D';i++;}}//统计等级人数void levelcount(struct student* st,int num){int levelA=0,levelB=0,levelC=0,levelD=0;int i;for(i=0;i<num;i++){< bdsfid="107" p=""></num;i++){<> switch (st[i].gradelevel){case 'A':levelA++;break;case 'B':levelB++;break;case 'C':levelC++;break;case 'D':levelD++;break;};}printf("统计结果:A:%d 人,B:%d 人,C:%d 人,D:%d 人\n",levelA,levelB,levelC,levelD);}第6 题:#include#includevoid finit();void fcreat();void fdelete();void fupdate();void ffind();//定义日期struct date{int year;int month;int day;};//定义一个结构student 表示学生基本情况struct llist{char name[20];struct date birthday;char homeno[10];char mobileno[20];};struct llist addlist[50];//如果不用链表做,假设://通讯录每个位置记录一个联系人信息//如果某位置联系人姓名信息为空,表示该位置无联系人int main(){int menuno=0;while (1){printf("\n 请选择操作功能:\n");printf("[1]新建:\n");printf("[2]删除:\n");printf("[3]修改:\n");printf("[4]查询:\n");printf("[5]退出:\n");scanf("%d",&menuno);switch(menuno){case 1:fcreat();break;case 2:fdelete();break;case 3:fupdate();break;case 4:ffind();break;case 5:return 0;default:printf("错误选项,请重新选择!\n");};}return 0;}void finit(){int i;for(i=0;i<50;i++) {strcpy(addlist[i].name,"");addlist[i].birthday.year=0;addlist[i].birthday.month=0;addlist[i].birthday.day=0;strcpy(addlist[i].homeno,"");strcpy(addlist[i].mobileno,"");}}void fcreat(){int i;char oname[20];int oyear;int omonth;int oday;char ohomeno[10];char omobileno[20];printf("请输入联系人信息姓名、出生年、月、日、家庭电话、手机号:\n"); scanf("%s%d%d%d%s%s",oname,&oyear,&omonth,&oday,oho meno,omobileno); for(i=0;i<50;i++) {if (strlen(addlist[i].name)==0) {strcpy(addlist[i].name,oname);addlist[i].birthday.year=oyear;addlist[i].birthday.month=omonth;addlist[i].birthday.day=oday;strcpy(addlist[i].homeno,ohomeno);strcpy(addlist[i].mobileno,omobileno);printf("已增加新联系人\n");break;}}if (i>=50) printf("通讯录满,无法增加新联系人\n");void fdelete(){int i;char oname[20];printf("请输入联系人姓名:\n");scanf("%s",oname);for(i=0;i<50;i++) {if (strcmp(addlist[i].name,oname)==0) {strcpy(addlist[i].name,"");addlist[i].birthday.year=0;addlist[i].birthday.month=0;addlist[i].birthday.day=0;strcpy(addlist[i].homeno,"");strcpy(addlist[i].mobileno,"");printf("已删除该联系人%s\n",oname);break;}if (i>=50) printf("无该联系人,无法删除\n");}void fupdate(){int i;char oname[20];char nname[20];int nyear;int nmonth;int nday;char nhomeno[10];char nmobileno[20];printf("请输入联系人姓名:\n");scanf("%s",oname);printf("请输入联系人信息姓名、出生年、月、日、家庭电话、手机号:\n"); scanf("%s%d%d%d%s%s",nname,&nyear,&nmonth,&nday,nho meno,nmobileno); for(i=0;i<50;i++) {if (strcmp(addlist[i].name,oname)==0) {strcpy(addlist[i].name,nname);addlist[i].birthday.year=nyear;addlist[i].birthday.month=nmonth;addlist[i].birthday.day=nday;strcpy(addlist[i].homeno,nhomeno);strcpy(addlist[i].mobileno,nmobileno);printf("已修改联系人%s\n",nname);break;}if (i>=50) printf("无该联系人,无法修改\n");void ffind(){int i;char oname[20];printf("请输入联系人姓名:\n");scanf("%s",oname);for(i=0;i<50;i++) {if (strcmp(addlist[i].name,oname)==0) {printf("姓名:%s",addlist[i].name);printf(" 出生日期:%1d 年%1d 月%1d 日",addlist[i].birthday.year,addlist[i].birthday.month,addlist[i].bi rthday.day); printf("家庭电话:%s",addlist[i].homeno);printf("手机:%s",addlist[i].mobileno);break;}}if (i>=50) printf("无该联系人\n");}第7 题:#includevoid salaryinput(struct salary* sl,int num);void salarylist(struct salary* sl,int num);struct salary{char id[20];char name[20];double base;double merit;double subsidiary;double insurance;double tax;double real;};int main(){struct salary ss[100]; //工资人数不超过100 个int snum=0;while (snum<=0||snum>100){printf("请输员工人数n<=100:");scanf("%d",&snum);}salaryinput(ss,snum);salarylist(ss,snum);return 0;void salaryinput(struct salary* sl,int num){int i=0;while(i<num){< bdsfid="279" p=""></num){<>printf("请输入员工%1d 的编号、姓名、基本工资、绩效工资、津贴工资、保险:\n",i+1); scanf("%s%s%lf%lf%lf%lf",sl[i].id,sl[i].name,&sl[i].base,&sl[i].meri t,&sl[i].su bsidiary,&sl[i].insurance);sl[i].tax=(sl[i].base+sl[i].merit+sl[i].subsidiary)*0.05;sl[i].real=(sl[i].base+sl[i].merit+sl[i].subsidiary-sl[i].insurance-sl[i].tax); i++;}}void salarylist(struct salary* sl,int num){int i;for(i=0;i<num;i++){< bdsfid="289" p=""></num;i++){<>printf("员工的编号、姓名、实发工资如下:",i+1);printf("%s %s %lf\n",sl[i].id,sl[i].name,sl[i].real);}}第8 题:#include#includevoid linkcreat();void linklist();struct Node{char data;struct Node *link;};Node *snode=NULL,*tmpnode,*lastnode;int main(){linkcreat();linklist();//最好增加一个释放链表的函数,为什么?return 0;}void linkcreat(){char c;lastnode=snode;printf("请输入一行字符:\n");while(scanf("%c",&c),c!='\n'){tmpnode=(Node*)malloc(sizeof(Node)); tmpnode->data=c;if (snode==NULL) snode=tmpnode;else lastnode->link=tmpnode; lastnode=tmpnode; }lastnode->link=NULL;}void linklist(){tmpnode=snode;while(tmpnode!=NULL){printf("%c",tmpnode->data); tmpnode=tmpnode->link; }printf("\n");}。
c语言程序设计实验与习题答案

c语言程序设计实验与习题答案C语言程序设计实验与习题答案C语言是一种广泛使用的程序设计语言,它具有高效、灵活和强大的特点,因此在计算机科学和工程领域中得到了广泛的应用。
在学习C语言的过程中,实验和习题是非常重要的一部分,通过实验和习题的完成,可以加深对C语言的理解和掌握。
在C语言程序设计实验中,通常会涉及到一些基本的概念和技术,比如变量、数据类型、运算符、控制结构、函数、指针等。
通过实验,学生可以学习如何使用这些概念和技术来解决实际问题,提高编程能力和解决问题的能力。
同时,习题也是非常重要的,通过习题的完成,可以巩固对C语言知识的掌握,并且可以提高解决问题的能力。
在习题中,通常会涉及到一些常见的编程问题,比如求解数列、排序算法、字符串处理、文件操作等,通过解决这些问题,可以提高学生的编程能力和解决问题的能力。
为了帮助学生更好地完成C语言程序设计实验和习题,下面我们提供一些实验和习题的答案,供学生参考:实验一:变量和数据类型```c#include <stdio.h>int main() {int a = 10;float b = 3.14;char c = 'A';printf("a = %d\n", a);printf("b = %f\n", b);printf("c = %c\n", c);return 0;}```实验二:运算符和表达式```c#include <stdio.h>int main() {int a = 10, b = 5;int sum, diff, product, quotient, remainder; sum = a + b;diff = a - b;product = a * b;quotient = a / b;remainder = a % b;printf("sum = %d\n", sum);printf("diff = %d\n", diff);printf("product = %d\n", product);printf("quotient = %d\n", quotient);printf("remainder = %d\n", remainder);return 0;}```通过以上实验和习题的答案,希望能够帮助学生更好地理解和掌握C语言的知识,提高编程能力和解决问题的能力。
C语言程序设计实验五 参考答案

答案:
#include<stdio.h>
void main()
{
int i,j,num=0;
for(i=3;i<=1000;i++)
{
for(j=2;j<=1000;j++)
if(i%2==0)
break;
5-4从键盘输入一个整数n,计算2n+1与++n之和。要求计算两数之和用函数实现。
答案:
#include<stdio.h>
void main()
{
int a;
int sum(int n);
printf("input n:\n");
scanf("%d",&a);
sum(a);
}
int sum(int n)
if(i%2!=0)
{
printf("%5d",i);
num++;
if(num%10==0)
printf("\n");
}
}
printf("\n");
}
*************************************************************************************************************实验三*******************************************
c语言程序设计实验五参考答案实验解答实验五参考答案编程语言c语言吧c语言答案
《C语言程序设计》(江宝钏著)实验四答案

4.较难编程题
编程题 1 输出 1-999 之间的所有同构数。 (同构数:一个数出现在它的平方数的右端,这个数就 称为同构数,如 5 出现在 25 的右端,5 是同构数,25 出现在 625 右端,25 也是同构数。
答: #include<stdio.h> #include<math.h> void main() { int n=1000,k=100,m=10,i,a,b; for(i=10;i<n;i++)
二、实验内容
1. 程序验证题与改错题 (1)程序验证 从键盘输入一个整数,在屏幕上将其逆序数输入,例如输入 8193,输出 3918。 #include<stdio.h> void main() { int x,number; printf("请输入一个整数:"); scanf("%d",&x); do{ x=number%10; number=number/10; printf("%d", x); }while(number!=0); printf("\n"); } 答: #include<stdio.h> void main() { int x,number; printf("请输入一个整数:"); scanf("%d",&number); do{ x=number%10; number=number/10; printf("%d", x); }while(number!=0); printf("\n");
for(j=1;j<=i;j++) sum1*=j; sum2+=sum1; } printf("%d",sum2); } 3.一般编程题 编程题 1 用三种循环结构(while 语句、do-while 语句、for 语句) ,求 1000 以内奇数的和。 答: #include<stdio.h> void main() { int n=1000,i=1,j=1,k,sum1=0,sum2=0,sum3=0; while(i<=n) { sum1+=i; i++; i++; } printf("while 语句求得奇数和为 :%d\n",sum1); do{ sum2+=j; j++; j++; }while(j<=n); printf("do-while 语句求得奇数和为 :%d\n",sum2); for(k=1;k<=n;k++) { sum3+=k; k++; } printf("for 语句求得奇数和为 :%d\n",sum3); } 编程题 2现方式做保护处理对用户上传分享的文档内容本身不做任何修改或编辑并不能对任何下载内容负责
《C语言程序设计》(江宝钏著)实验七答案

7、4 实验七字符与字符串处理一、实验目得与要求1.掌握C语言字符型数据得概念,理解字符型与整型数据之间得关系。
2.掌握字符得输入与输出.3.掌握转义字符常量、字符串常量得使用.4.掌握字符、字符串与字符数组得输入与输出。
5.掌握字符串函数得使用\字符串数组得使用。
6.实验课时2学时二、实验内容1.程序改错题①调试下列程序,使之具有如下功能:任意输入两个字符串(如:"ningbo"与”china”),并存放在a,b两个数组中。
然后把较短得字符串放在a数组,较长得字符串放在b数组。
并输出.程序中得strlen就是库函数,功能就是求字符串得长度,它得原型保存在头文件"string、h"中.调试时注意库函数得调用方法,不同得字符串输入方法,通过错误提示发现程序中得错误。
提示发现程序中得错误。
#include <stdio、h>#include<string、h>void main(){char a[10],b[10],ch;int c,d,k;scanf("%s",&a);scanf("%s",&b);/*error*/printf(”a=%s,b=%s\n”,a,b);c=strlen(a);d=strlen(b);if(c>d){for(k=0;k<d;k++)/*error*/{ch=a[k];a[k]=b[k];b[k]=ch;}a[k]=’\0'; /* error*/}printf(”a=%s\n",a);printf(”b=%s\n",b);}答:#include〈stdio、h>#include<string、h>void main(){ﻩﻩchara[10],b[10],ch;int c,d,k;scanf("%s”,&a);scanf(”%s",&b);ﻩprintf("a=%s,b=%s\n",a,b);c=strlen(a);d=strlen(b);if(c>d){ﻩﻩfor(k=0;k〈c;k++)ﻩ{ﻩﻩﻩch=a[k];ﻩa[k]=b[k];ﻩb[k]=ch;ﻩ}ﻩa[k]='\0';ﻩb[k]='\0’;ﻩ}ﻩprintf(”a=%s\n",a);printf("b=%s\n",b);}②下列给定程序中,函数fun得功能就是:依次取出字符串中所有数字字符,形成新得字符串,并取代原字符串.请改正函数fun中得错误,使它能得出正确得结果。
C语言程序与设计-第5章-实验及习题答案1

第5章实验及习题答案5.6 实验实验任务1 一维数组程序设计二、实验内容1. 验证性实验(1)验证【例5-2】程序(输入10个整数, 存入数组中, 分别按原序、逆序输出), 回答题后问题。
①运行程序时如何输入数据?请举例: 1 2 3 4 5 6 7 8 9 10↙(也可用回车符间隔数据)。
②输入的10个数据分别存放在a[0]~ a[9] 中。
③若要计算10个整数的和, 请写出此程序段并验证。
(2)验证【例5-4】程序(选择法排序), 回答题后问题。
①语句“if ( w != i ) { t = a[i] ; a[i] = max ; a[w] = t ; }”实现的操作是在第i趟排序中, 如果找出的最大数a[w]不在最前面, 则与a[i]交换, 否则不交换。
②请将随机产生的数据改为从键盘输入。
③请修改程序实现从小到大排序。
2. 设计性实验(1)把一组数{ 3, 4, 6, 7, 1, 8, 9, 13, 2, 5, 11, 14 }中的所有奇数找出, 放在另一个数组中并输出, 数据由初始化方式提供。
参考程序:# include <stdio.h>main( ){ int a[12] = { 3 , 4 , 6 , 7 , 1 , 8 , 9 , 13 , 2 , 5 , 11 , 14 } , b[12] , i , j , m ;for( i = 0 ; i < 12 ; i++ ) /* 输出原始数据*/printf( " %4d " , a[i] ) ;printf( " \n " ) ;m = 0 ;for( i = 0 ; i < 12 ; i++ ) /* 找奇数*/if( a[i]%2==1 ) { b[m] = a[i] ; m++ ; }for( j = 0 ; j < m ; j++ ) /* 输出奇数*/printf( " %4d " , b[j] ) ;}(2)利用随机数函数产生20个三位数, 将这20个数从小到大排列并输出。
《C语言程序设计》实验设计习题答案

实验三3.4编写程序,用getchar函数读入两个字符c1,c2,然后分别用putchar函数输出void main(){char c1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);putchar('\n');printf("%c %c\n",c1,c2);}3.5把790分钟换成用小时和分钟表示,然后输出。
void main(){int s=790;printf("%d小时",s/60);printf("%d分钟",s%60);}3.6将读入三个数a,b,c,然后交换它们的值,把a的值给b,把b的值给c,把c的值给a.main(){int a,b,c,t;scanf("%d,%d,%d",&a,&b,&c);t=a;a=b;b=c;c=t;printf("%d,%d,%d",a,b,c);3.7输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后输出此数,验证处理是否真确。
#include<stdio.h>void main(){float x,s,a;int z;scanf("%f",&x);a=100*x+0.5;z=(int)(a);s=z/100.0;printf("%.2f\n",s); }main(){int a,b,t;double c;scanf("%lf",&c);b=100*c;t=1000*c;a=t%10;if (a>=5) b=b+1;else b=b+0;c=1.0*b/100;printf("%7.2lf/n",c); return 0;}void main(){int x,y;scanf("%d",&x);if(x<0&&x>-5) y = x ; if(x==0) y = x-1;if(x<10&&x>0) y = x+1; printf("%d",y);}实验四4.2不嵌套if语句void main(){int x,y;scanf("%d",&x);if(x<0&&x>-5) y = x ;if(x==0) y = x-1;if(x<10&&x>0) y = x+1;printf("%d",y);}法二:嵌套if语句void main(){int x,y;scanf("%d",&x);if((x>-5)&&(x<0)) y=x;else if(x==0) y=x-1;else if(x<10&&x>0) y=x+1;printf("%d",y);}4.3如下程序运用条件运算符求变量的绝对值?void main(){int a,M;scanf("%d",&a);M=a>0?a:-a;printf("abs(a)=%d",M);4.4某服装店经营套服,也可单件出售,若买的不少于50套,每套80元,不足50套的每套90元,只买上衣每件60元,只买裤子每条45元,(读入所买上衣C和裤子t的件数,计算应付款m。
【程序设计】《C语言程序设计》(江宝钏著)实验二答案【精品资料】

2.5 实验二编写几个简单的C程序一、实验目的与要求1.掌握C语言基本数据类型的概念,理解数据类型与运算的关系。
2.掌握简单变量的定义,算术表达式和赋值表达式的使用。
3.掌握基本输出语句的使用。
4.进一步熟悉C程序的编辑、编译、连接和运行的过程。
5.掌握简单C程序查错方法,编写几个简单程序。
6.实验4学时二、实验内容1.程序验证或填空(1)编译和运行下面程序,查看执行的结果:#include<stdio.h>int main(void){int si=-1;float f=5;double df=3;printf("si = %d, f = %f, df = %lf\n", si,f,df);return 0;}若把输出语句中的格式控制中的格式说明符的顺序改变一下,会有什么结果?再把%lf修改为%f,运行会有什么结果?Si=-1,f=5.00000,df=3.000000当顺序变为printf("si = %f, f = %lf, f = %d\n", si,f,df);时结果为si=-0.000000 f=0.000000 df=1074266112当把%lf修改为%f时即 printf("si = %f, f = %f, f = %d\n", si,f,df);结果为si=-0.000000 f=0.000000 df=1074266112(2)分析程序,并上机运行验证运行结果#include “stdio.h”void main( ){ printf(“\t*\n”);printf(“\t\b* * *\n”);printf(“\t\b\b * * * * *\n”);}Tab * 换行Tab 取消tab * * * 换行Tab 取消tab 退格 * * * * * 换行(3) 运行程序,并分析结果。
#include “stdio.h”void main( ){ int a=10,x=5,y=6;a+=a*=6;x=y++;y=++x;a=x+++y;printf(“%d,%d,%d\n”,a,x,y);}14,8,7 以下绿色部分为对结果的分析#include “stdio.h”void main( ){ int a=10,x=5,y=6;a+=a*=6; 此步对结果无影响\\x=y++; \\x=y y=y+1 此时x=6,y=7\\y=++x; \\x=x+1 y=x 此时 x=7 y=7\\a=x+++y; \\a=x+y x=x+1 此时 x=8 y=7 a=14\\ printf(“%d,%d,%d\n”,a,x,y);}(4)不用第3个变量,实现将二个数进行对调,请填空。
C语言程序设计实验指导书参考答案

C语言程序设计上机实验指导与习题参考答案(仅供教师内部参考)华南农业大学目录上机实验.................................................................................................................................................................... 1 实验1 C 语言程序初步 (1)一、实验目的............................................................................................................................................ 1 二、实验内容 (1)实验 2 基本数据类型、运算和表达式...........................................................................................................3 一、实验目的............................................................................................................................................3 二、实验内容............................................................................................................................................3实验 3 基本输入与输出...................................................................................................................................5 一、实验目的............................................................................................................................................5 二、实验内容............................................................................................................................................5实验 4 选择结构程序设计...............................................................................................................................4 一、实验目的............................................................................................................................................4 二、实验内容............................................................................................................................................4实验 5 循环结构程序设计(一)...................................................................................................................9 一、实验目的............................................................................................................................................9 二、实验内容............................................................................................................................................9实验 6 循环结构程序设计(二).................................................................................................................15 一、实验目的..........................................................................................................................................15 二、实验内容..........................................................................................................................................15实验7 数组.....................................................................................................................................................17 一、实验目的..........................................................................................................................................17 二、实验内容..........................................................................................................................................17实验8 字符数组的应用.................................................................................................................................22 一、实验目的..........................................................................................................................................22 二、实验内容..........................................................................................................................................22实验9 函数的基本应用.................................................................................................................................24 一、实验目的..........................................................................................................................................24 二、实验内容..........................................................................................................................................24实验10 指针与结构体...................................................................................................................................26 一、实验目的..........................................................................................................................................26 二、实验内容..........................................................................................................................................26*实验11 链表................................................................................................................................................29 一、实验目的..........................................................................................................................................29 二、实验内容..........................................................................................................................................29*实验12 文件...............................................................................................................................................32 一、实验目的..........................................................................................................................................32 二、实验内容..........................................................................................................................................上机实验实验 1 C 语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
《c语言程序设计》实验指导书答案

《c语言程序设计》实验指导书答案《C语言程序设计》实验指导书答案实验一:C语言环境搭建与基本语法1. 问题:如何在计算机上搭建C语言开发环境?答案:搭建C语言开发环境通常需要安装编译器和集成开发环境(IDE)。
常见的编译器有GCC,而IDE如Visual Studio Code、Code::Blocks等。
安装完成后,配置好编译器路径,即可开始编写和编译C语言程序。
2. 问题:C语言的基本数据类型有哪些?答案:C语言的基本数据类型包括整型(int)、字符型(char)、浮点型(float和double)以及更复杂的结构体(struct)和联合体(union)等。
3. 问题:如何定义一个变量?答案:定义变量的基本语法是:`类型名变量名;`。
例如,定义一个整型变量a:`int a;`。
4. 问题:如何实现变量的输入和输出?答案:使用`scanf`函数进行输入,使用`printf`函数进行输出。
例如,输入一个整数并输出:`scanf("%d", &a); printf("%d", a);`。
实验二:控制结构1. 问题:C语言中的条件语句有哪些?答案:C语言中的条件语句主要有`if`语句和`switch`语句。
2. 问题:如何使用`if`语句?答案:`if`语句的基本语法是:`if (条件) { 语句 }`。
例如,判断一个数是否为正数:`if (a > 0) { printf("正数"); }`。
3. 问题:如何使用`switch`语句?答案:`switch`语句用于多条件分支选择。
基本语法是:`switch (表达式) { case 常量1: 语句1; break; case 常量2: 语句2; break; ... default: 默认语句; }`。
4. 问题:C语言中的循环语句有哪些?答案:C语言中的循环语句主要有`for`循环、`while`循环和`do-while`循环。
c语言程序设计实验指导参考答案

c语言程序设计实验指导参考答案C语言程序设计实验指导参考答案在学习C语言程序设计的过程中,实验是不可或缺的一部分。
通过实验,我们可以巩固所学的知识,提高编程能力。
然而,有时候我们可能会遇到一些难题,不知道如何下手。
本文将为大家提供一些C语言程序设计实验的参考答案,希望能够帮助大家更好地完成实验任务。
1. 实验一:C语言基础实验一主要涉及C语言的基础知识,包括变量、运算符、控制语句等。
以下是一些常见的题目及参考答案:题目一:编写一个程序,实现两个整数的交换。
```c#include <stdio.h>void swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}int main() {int a, b;printf("请输入两个整数:");scanf("%d %d", &a, &b);swap(&a, &b);printf("交换后的结果为:%d %d\n", a, b); return 0;}```题目二:编写一个程序,求1到n的和。
```c#include <stdio.h>int sum(int n) {if (n == 1) {return 1;} else {return n + sum(n - 1);}}int main() {int n;printf("请输入一个正整数:");scanf("%d", &n);printf("1到%d的和为:%d\n", n, sum(n)); return 0;}```2. 实验二:数组和字符串实验二主要涉及数组和字符串的应用。
以下是一些常见的题目及参考答案:题目一:编写一个程序,找出数组中的最大值。
```c#include <stdio.h>int findMax(int arr[], int n) {int max = arr[0];for (int i = 1; i < n; i++) {if (arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {1, 2, 3, 4, 5};int n = sizeof(arr) / sizeof(arr[0]);printf("数组中的最大值为:%d\n", findMax(arr, n));return 0;}```题目二:编写一个程序,判断一个字符串是否为回文字符串。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.4 实验五函数与预处理一、实验目的与要求1. 掌握C语言函数的定义方法、函数的声明及函数的调用方法。
2. 理解函数实参与形参的对应关系以及“值传递”的方式。
3. 掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。
4. 掌握动态存储分配的方法。
5. 掌握宏定义和文件包含处理方法。
6. 实验4学时二、实验容1.程序验证与改错题(1) 程序验证题①下面程序执行的结果是什么void swap(int x, int y){int temp;temp=x;x=y;y=temp;}void main(){int a,b;scanf(“%d%d”, &a,&b);if(a>b)swap(a, b);printf(“%d\t %d”, a,b);}思考:为什么a,b的值没有交换?答:修改后的函数为#include<stdio.h>void swap(int &x, int &y){int temp;temp=x;x=y;y=temp;}void main(){int a,b;scanf("%d%d",&a,&b);swap(a,b); //if语句被去掉//printf("%d\t %d\n", a,b);}因为调用函数中改变的是形参而非实参,加上&,其意义是改变实参的地址。
If语句中,只有当a>b时才交换a,b的值去掉后在任何情况下都交换a,b的值②调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。
请验证下面的程序是否符合题目要求。
#include”stdio.h”int fun(int n){int m, i;for (i=1; i<=n; i++){m+=i;}return m;}void main(){printf("m=%d\n", fun(10));}在上面程序的基础上,修改程序. 计算m=1-2+3-4+…+9-10。
答:#include<stdio.h>int fun(int n){int m=0,i;for (i=1;i<=n;i++){if(i%2==1)m+=i;elsem-=i;}return m;}void main(){printf("m=%d\n",fun(10));}(2)程序改错题下列程序的功能是利用自定义函数计算一无符号的整数各位数字的乘积。
#include<stdio.h>unsigned f(unsigned num){unsigned k=0;do{k*=num/10;num/=10;}while(k);return k;}void main(){int x;printf(“input x=:\n”);scanf(“%d”, x);printf(“%d”, f(x));}答:#include<stdio.h>unsigned f(unsigned num){unsigned k=1;do{k*=num%10;num/=10;}while(num!=0);return k;}void main(){int x;printf("input x=:\n");scanf("%d",&x);printf("%d", f(x));}2.一般编程题编程题1编写一函数,把输入的4个数字字符转换成一个int数据存放,如输入4123这字符转换为4123这个整数,并通过主函数验证结果。
答:#include<stdio.h>int f(char c){int a;a=int(c)-48;return a;}void main(){int a,b=0;char c;while((c=getchar())!='\n'){a=f(c);b=b*10+a;}printf("%d\n",b);printf("%d+%d=%d\n",b,b,b+b);printf("\n");}编程题2编写程序求:1*1*1+2*2*2+3*3*3+4*4*4+5*5*5提示:主函数用来现实结果,f1( )函数用来求一个数的立方,f2( )函数用来求和。
#include <stdio.h>int f1(int n){……}int f2(int m){……}void main(){……}答:1解(使用库函数)#include<stdio.h>void main(){int i=4;char temp;int result=0;temp=getchar();while(temp!='\n'){result*=10;result+=((int)temp-48);temp=getchar();}printf("%c\n",temp);printf("%d\n",result);}2解(使用stdlib 库函数中的atoi ()函数)# include <stdio.h># include <stdlib.h>void main (){int num;char str[30];gets(str);num = atoi(str);printf("num to int:%d\n",num);}编程题3定义两个带参数的宏,将两个参数的值相加和相减,并写出程序,输入两个数作为使用宏时的实参。
输出相加和相减后的和与差。
答:#include <stdio.h>#define P(m,n) m+n;#define Q(m,n) m-n;void main(){int m,n,p,q;scanf("%d %d",&m,&n);p=P(m,n);q=Q(m,n);printf("%d=%d+%d\n",p,m,n);printf("%d=%d-%d\n",q,m,n);}编程题4编程输出2到10000之间的所有完数。
所谓完数是指因子之和与它本身相等的数。
如6=1+2+3,6是一个完数。
要求:定义函数 factor(m) 判断m是否为完数;由主函数调用它,来对所有2到10000之间的所有数进行判断。
#include <stdio.h>#include <math.h>int factor(int m){int i,s=0;……}void main(){int i,m,sum;……}答:#include <stdio.h>#include <math.h>int factor(int m){int i,s=0;for(i=1;i<m;i++){if(m%i==0)s+=i;}if(s==m)return s;elsereturn 0;}void main(){int i,m,sum;m=10000;for(i=2;i<=m;i++){sum=factor(i);if(sum>0){printf("%d ",sum);}}printf("\n");}3.较难编程题编程题1用函数调用实现求两个数的最大公因子和最小公倍数答:#include <stdio.h>#include <math.h>int f(int m,int n){int i;for(i=1;;i++){if(m==n)break;if(m>n)m=m-n;elsen=n-m;}return n;}int g(int x,int y,int z){int i;i=x*y/z;return i;}void main(){int a,b,c,d;scanf("%d %d",&a,&b);c=f(a,b);d=g(a,b,c);printf("最大公因子:%d\n",c);printf("最小公倍数:%d\n",d);}编程题2用递归方法求1+2+3+...+n并将其中素数去除后之和。
#include <stdio.h>#include <math.h>int isprime (int number) {……}long fact(int n){……}void main(){int m,sum;……}答:#include <stdio.h>#include <math.h>int isprime (int number) {int i;for(i=2;i<number;i++){if(number%i==0)break;}if(i==number)return 0;elsereturn number;}long fact(int n){long result,a;if(n==1)result=1;else{a=isprime(n);result=a+fact(n-1);}return result;}void main(){int m,sum;scanf("%d",&m);sum=fact(m);printf("%d\n",sum); }。