c语言程序设计实验与习题指导答案颜晖

c语言程序设计实验与习题指导答案颜

【篇一:c语言程序设计谭浩强版何钦铭颜晖版习题答

案全集】

【程序1】

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数

字的三位数?都是多少?

1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组

成所有的排列后再去

掉不满足条件的排列。

2.程序源代码:

main()

{

int i,j,k;

printf(\n);

for(i=1;i5;i++) /*以下为三重循环*/

for(j=1;j5;j++)

for (k=1;k5;k++)

{

if (i!=ki!=jj!=k) /*确保i、j、k三位互不相同*/

printf(%d,%d,%d\n,i,j,k);

}

}

【程序2】

题目:企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提10%;利润高

于10万元,低于20万元时,低于10万元的部分按10%提成,高

于10万元的部分,可可提成7.5%;20万到40万之间时,高于

20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提

成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键

盘输入当月利润i,求应发放奖金总数?

1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义

成长整型。

2.程序源代码:

main()

{

long int i;

int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;

scanf(%ld,i);

bonus1=100000*0.1;bonus2=bonus1+100000*0.75;

bonus4=bonus2+200000*0.5;

bonus6=bonus4+200000*0.3;

bonus10=bonus6+400000*0.15;

if(i=100000)

bonus=i*0.1;

else if(i=200000)

bonus=bonus1+(i-100000)*0.075;

else if(i=400000)

bonus=bonus2+(i-200000)*0.05;

else if(i=600000)

bonus=bonus4+(i-400000)*0.03;

else if(i=1000000)

bonus=bonus6+(i-600000)*0.015;

else

bonus=bonus10+(i-1000000)*0.01;

printf(bonus=%d,bonus);

}

-----------------------------------------------------------------------------

【程序3】

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:

2.程序源代码:

#include math.h

main()

{

long int i,x,y,z;

for (i=1;i100000;i++)

{ x=sqrt(i+100);/*x为加上100后开方后的结果*/

y=sqrt(i+268);/*y为再加上168后开方后的结果*/

if(x*x==i+100y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/printf(\n%ld\n,i);

}

}

-----------------------------------------------------------------------------

【程序4】

题目:输入某年某月某日,判断这一天是这一年的第几天?

1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

2.程序源代码:

main()

{

int day,month,year,sum,leap;

printf(\nplease input year,month,day\n);

scanf(%d,%d,%d,year,month,day);

switch(month)/*先计算某月以前月份的总天数*/

{

case 1:sum=0;break;

case 2:sum=31;break;

case 3:sum=59;break;

case 4:sum=90;break;

case 5:sum=120;break;

case 6:sum=151;break;

case 7:sum=181;break;

case 8:sum=212;break;

case 9:sum=243;break;

case 10:sum=273;break;

case 11:sum=304;break;

case 12:sum=334;break;

default:printf(data error);break;

}

sum=sum+day; /*再加上某天的天数*/

if(year%400==0||(year%4==0year%100!=0))/*判断是不是闰年*/ leap=1;

else

leap=0;

if(leap==1month2)/*如果是闰年且月份大于2,总天数应该加一天*/

sum++;

printf(it is the %dth day.,sum);}

-----------------------------------------------------------------------------

【程序5】

题目:输入三个整数x,y,z,请把这三个数由小到大输出。

1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果xy则将x与y的值进行交换,然后再用x与z进行比较,如果xz则将x与z的值进行交换,这样能使x最小。

2.程序源代码:

main()

{

int x,y,z,t;

scanf(%d%d%d,x,y,z);

if (xy)

{t=x;x=y;y=t;} /*交换x,y的值*/

if(xz)

{t=z;z=x;x=t;}/*交换x,z的值*/

if(yz)

{t=y;y=z;z=t;}/*交换z,y的值*/

printf(small to big: %d %d %d\n,x,y,z);

}

-----------------------------------------------------------------------------

【程序6】

题目:用*号输出字母c的图案。

1.程序分析:可先用*号在纸上写出字母c,再分行输出。

2.程序源代码:

#include stdio.h

main()

{

printf(hello c-world!\n);

printf( ****\n);

printf( *\n);

printf( * \n);

printf( ****\n);

}

-----------------------------------------------------------------------------

【程序7】

题目:输出特殊图案,请在c环境中运行,看一看,very beautiful!

1.程序分析:字符共有256个。不同字符,图形不一样。

2.程序源代码:

#include stdio.h

main()

{

char a=176,b=219;

printf(%c%c%c%c%c\n,b,a,a,a,b);

printf(%c%c%c%c%c\n,a,b,a,b,a);

printf(%c%c%c%c%c\n,a,a,b,a,a);

printf(%c%c%c%c%c\n,a,b,a,b,a);

printf(%c%c%c%c%c\n,b,a,a,a,b);}

-----------------------------------------------------------------------------

【程序8】

题目:输出9*9口诀。

1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

2.程序源代码:

#include stdio.h

main()

{

int i,j,result;

printf(\n);

for (i=1;i10;i++)

{ for(j=1;j10;j++)

{

result=i*j;

printf(%d*%d=%-3d,i,j,result);/*-3d表示左对齐,占3位*/

}

printf(\n);/*每一行后换行*/

}

}

-----------------------------------------------------------------------------

【程序9】

题目:要求输出国际象棋棋盘。

1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。

2.程序源代码:

#include stdio.h

main()

{

int i,j;

for(i=0;i8;i++)

{

for(j=0;j8;j++)

if((i+j)%2==0)

printf(%c%c,219,219);

else

printf( );

printf(\n);

}

}

-----------------------------------------------------------------------------

【程序10】

题目:打印楼梯,同时在楼梯上方打印两个笑脸。

1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。

2.程序源代码:

#include stdio.h

main()

{

int i,j;

printf(\1\1\n);/*输出两个笑脸*/

for(i=1;i11;i++)

{

for(j=1;j=i;j++)

printf(%c%c,219,219);

printf(\n);

}

}

【程序11】

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....

2.程序源代码:

main()

{

long f1,f2;

int i;

f1=f2=1;

for(i=1;i=20;i++)

{ printf(%12ld %12ld,f1,f2);

if(i%2==0) printf(\n);/*控制输出,每行四个*/

【篇二:c语言实验指导书全教程】

class=txt>一、本实验课的性质、任务与目的

本实验课目的是使学生掌握c语言编程的常用方法,以任务驱动教

学法,重点培养学生的编程能力,为以后学习后继专业课程和进行

软件开发打下基础。通过学习能够运用c语言中的各个知识点编写

能完成一定功能的程序。训练学生进行复杂程序设计的技能和培养

良好程序设计的习惯,实验教学是培养应用型人才的重要环节,其

重要程度决不亚于知识的传授。把高级语言的学习与程序设计、上

机实践紧密地结合起来,以提高学生能灵活运用新的知识分析问题

和解决问题的能力。

二、本实验课所依据的课程基本理论

本实验课基于c语言的语法和词法规则、数据的表示及算法的处理,而语法及算法正是高级语言程序设计的主要研究对象。《c语言程序

设计》的主要任务是:c 语言是一种应用广泛结构化程序设计语言,本课程介绍c语言的基本概念、基本语法和编程方法,重点描述c

语言的结构化的特征,并通过本课程的学习,使学生掌握一定的结

构化程序设计的知识,以及用c语言编写程序的能力。

三、实验类型与要求

在做每个实验之前,让学生对本次实验相关的内容进行预习、算法

设计、流程图的设计、编写程序,做好实验的准备工作;写出预习

报告,画出流程图,要求独立完成。

每组1人,实验共40学时五、考核方式与评分办法

实验总成绩=出勤情况*10%+实验报告*20%+平时*30%+实验内容

*40%

六、本实验课配套教材或实验指导书

教材:

苏小红主编.c语言大学实用教程,电子工业出版社,十一五国家级规

划教材,2008 .7 参考书:

[1]何钦铭,颜晖主编.c语言程序设计,高等教育出版社,十一五规划

教材,2008 .1 [2]颜晖主编.c语言程序设计实验指导,高等教育出版社,2008.1

[3]张引,何钦铭等. c程序设计基础课程设计,浙江大学出版社,2007.9

[4]谭浩强. c程序设计题解与上机指导.北京:清华大学出版社.2006

年3月第3版 [5]谭浩强. c程序设计试题汇编.北京:清华大学出版社.2006年3月第2版 [6]夏宽理. c语言程序设计.北京:中国铁道出版社.2006年2月第1版

[7]夏宽理. c语言程序设计上机指导与习题解答.北京:中国铁道出

版社.2006.2 [8]王士元. c高级实用程序设计.北京:清华大学出版

社.1996年1月第1版 [9]谭浩强. c程序设计.北京:清华大学出版社.2006年3月第3版

七、实验报告要求

上机实验目的在于:①通过验证课本中的内容及自己编写的程序,

加深对课本中词法、语法的掌握;②熟悉所用的c语言开发环境;

③上机调试自己的程序,学会编程,重要是能上机调试通过,调试

经验是通过自己的直接实践来累积。

上机实验的要求:①课前准备好上机所要的程序源代码;②上机输

入和调试自己的程序,努力独立完成调试过程,自行解决编译错误;

③实验结束,认真编写实验报告

在机器上运行程序代码,每次实验成绩分为优、良、及格、不及格,未参加的为0分。要求认真编写实验报告。报告内容应包含以下内容:

1.实验题目

2.实验目的和要求 3.解题思路

4.调试过程(实验过程出现的问题及解决的方法或尚未解决的问题)5.程序代码及运行结果 6.实验结果分析 7. 教师评语

第二部分:c语言程序设计的运行环境vc++6.0

------vc++ 6.0集成开发环境的使用

在众多的面向对象程序设计语言中,microsoft公司的vc++6.0 独

树一帜,是一个集程序编辑、编译、连接和调试于一体的c语言程序

开发环境。在windows环境下,操作方便。 vc环境中运行c语言

源程序的步骤 1、启动visual c++6.0开发环境 2、创建一个项目(1)在visual c++6.0开发环境主窗口,单击file菜单中的new选项,显示一个new对话框,如下:

(2)单击projects,选择win32 console applocation,

并在右侧相应的文本框中填入项目的路径和名称

(3)在弹出的win32 console applocation-step 1 of 1对话框中选择an empty project单选项,然后单击finish.

(4)最后在new project information对话框中单击ok。 3、建立c 源程序文件

(1)选择菜单命令project | add to project | new,弹出new对话框。

(2)在new对话框的files中选择c++ source file ,并写入文件名,单击ok 4、编辑c语言源程序

(1)在文件编辑窗口中输入源代码(2)选择file | save,保存程序5、建立并运行可执行程序

(1)选择菜单命令build | build filename.ext建立可执行文件(2)选择菜单命令build | execute filename.exe运行程序,观察显示的内容6、关闭工作空间

选择菜单命令file | close workspace关闭工作空间。例:从键盘上输入两个整数,输出两者中的较大数。 1、新建一cpp

文件后,在编辑窗口输入源代码如下:

2、编译、连接后,从键盘上输入12,34 回车,则可查看程序运行结果:

第三部分:实验内容

实验一:熟悉vc++6.0运行环境

【目的与要求】

1、了解vc环境下c语言的运行环境,熟悉编译系统的操作环境。

2、了解在该系统上如何编辑和运行一个c程序。

3、通过运行简单的c程序,初步了解运行c语言程序的操作过程。【实验内容】

1、题目:由键盘输入两个整数,计算并输出两个数之和。

2、程序代码:

#include “stdio.h”void main() {int a,b,sum;

printf(“please i nput two integer numbers:\n”);

scanf(“%d%d”,a,b); sum=a+b;

printf(“%d+%d=%d”,a,b,sum); }

3、具体操作:

(1)输入程序,按ctrl+f9。若在运行后有词法或语法错误,则根据提示进行修改,

再进行调试,直到没有语法错误。

(2)运行后,依下列不同的方式输入数据,查看程序执行结果。①12spacebar34 ↙

② 12 ↙ 34 ↙

【实验分析与讨论】

1、总结c程序的基本结构和书写规则。

2、分析调试过程中常见的错误提示和解决策略。

3、掌握调试过程

中问题解决的方法和思路【diy】

一、改错:实现求三个数的平均值。 #include stdio.h void main()

{float a,b,c,sum;

float average; a=10; b=20; c=35; average==sum/3;

printf(“the average is %4d”,average); }

二、填空:实现从键盘中读取两个浮点型数据,相乘之后输出结果,要求结果须保留4位

小数。

#include“stdio.h” void main()

【篇三:c语言作业—第四章,何钦铭,颜晖,主编】1002

2010013060 机械1002

C语言程序设计(第3版)何钦铭 颜 晖 第9章 结构

第9章结构 【练习9-1】定义一个能够表示复数的结构类型,一个复数包括实数与虚数两个部分。 解答: struct complex{ float real; float imaginary; }; 【练习9-2】人的出生日期由年、月、日组成,请在例 9-1 中的通讯录结构中增加一个成员:出生日期,用嵌套定义的方式重新定义该结构类型。 解答: struct date{ int year; int month; int day; }; struct student{ int num; char name[10]; struct date birthday; int computer,english,math; double average; }; 【练习9-3】例 9-1 中,如果要计算的是三门课程的课程平均成绩,应该如何改写程序? 解答: #include<> struct student{ int num; char name[10]; int computer,english,math; double average; }; int main(void) { int i, n; double math_sum,english_sum,computer_sum; struct student s1; printf("Input n:"); scanf("%d", &n);

printf("Input the student's number, name and course scores:\n"); math_sum=english_sum=computer_sum=0; for(i=1;i<=n;i++){ printf("No.%d:",i); scanf("%d%s%d%d%d",&,,&,&,&; math_sum+=; english_sum+=; computer_sum+=; } printf("math_ave:%.2lf\nenglish_ave:%.2lf\ncomputer_ave:%.2lf\n", math_sum/n,english_sum/n,computer_sum/n); return 0; } 【练习9-4】定义一个包含 5 名学生信息的结构数组,并对该结构数组的所有元素进行初始化。 解答: struct student{ int num; char name[10]; int computer, english, math; }; struct student s[5]={{30101, "张一",69,75,84 },{30132, "李二",80,8 5,90},{40231, "王三",71,91,74},{40754, "赵四",65,76,87},{50426, "刘五",81,92,73}}; 【练习9-5】参考例 9-2,输入并保存 10 个学生的成绩信息,分别输出平均成绩最高和最低的学生信息。 解答: #include<> struct student{ int num; char name[10]; int computer,english,math; double average; }; int main(void) { int i,n,max,min; struct student students[50]; printf("Input n:"); scanf("%d",&n); for(i=0;i

C语言程序设计及实验指导练习及习题参考答案(8--10)

C语言程序设计及实验指导练习及习题参考答案(8--10) 8 练习参考答案1、练习 8-1.如果有定义:intm,n=5,某p=&m;与m=n等价的语句是BA.m=某p;B.某p=某&n;C.m=&n;D.m=某某p; 8-2.设计一个程序计算输入的两个数的和与差,要求自定义一个函数um_diff(floatop1,floatop2,float某pum,float某pdiff),其中op1和op2是输入的两个数,某pum和某pdiff是计算得出的和与差。解答:#includeintmain(void){ floatop1,op2,um,diff; voidum_diff(floatop1,floatop2,float某pum,float某 pdiff);printf(“inputop1andop2:“);canf(“%f%f”,&op1,&op2);um_d iff(op1,op2,&um,&diff); printf(“%f+%f=%f;%f- %f=%f\\n”,op1,op2,um,op1,op2,diff);return0;} voidum_diff(floatop1,floatop2,float某pum,float某pdiff){ 某pum=op1+op2;某pdiff=op1–op2;} 8-3.两个相同类型的指针变量能不能相加?为什么?解答: 不能。因为指针变量是一种特殊的变量,指针变量的值存放的是所指向变量的地址,两个地址相加并不能保证结果为一个有效的地址值,因而在C语言中指针变量相加是非法的。8-4.根据表8.2所示,这组数据的冒

泡排序其实循环到第6遍(即n-2)时就已经排好序了,说明有时候并不一定需要n-1次循环。请思考如何改进冒泡排序算法并编程实现(提示:当发现一遍循环后没有数据发生交换,说明已经排好序了)。 解答:设置一个标志变量flag,进入一轮循环前设置为0,在循环中有发生数据交换就改写flag值为1。当该轮循环结束后检查flag值,如果变为1说明发生了数据交换,还没有排好序,如果为0说明没有发生交换,已经排好序。#include voidbubble(inta[],intn);intmain(void){ intn,a[8];inti; printf(\canf(\ printf(\for(i=0;i printf(\for(i=0;i printf(\return0; } voidbubble(inta[],intn)/某n是数组a中待排序元素的数量某/{ inti,j,t,flag; for(i=1;ia[j+1])

C语言程序设计学习指导与实践教程习题和实验解答(第2章)2

C语言程序设计学习指导与实践教程 ——第2章习题和实验解答 2.1 C语言概述 1.【习题解答】 1结构化程序有三大基本结构:顺序、分支和循环. 2..算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。。 有穷性:一个算法应包含有限的操作步骤而不能是无限的。 确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的,有零个或多个输入输出,有一个或多个输出。 有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。 对于程序设计人员,必须会设计算法,并根据算法写出程序。可以用自然语言、流程图、伪代码和计算机语言表示算法。 3.C语言的主要特点有:语言简洁、紧凑,使用方便、灵活。ANSI C一共只有32个关键字;控制语句丰富,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分;运算符丰富,共有34种;数据结构类型丰富;具有结构化的控制语句;语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此有人把它称为中级语言;生成目标代码质量高,程序执行效率高;与汇编语言相比,用C语言写的程序可移植性好。 4.用传统流程图表达如下:

5. 计算机硬件系统的组成:计算机硬件系统主要由运算器、控制器、存储器、输入设备和输出设备构成,运算器和控制器合称为中央处理器(CPU),输入设备和输出设备统称为外部设备。 6.计算机网络常用的传输介质:分为有线介质和无线介质;有线介质包括光纤、同轴电缆和双绞线;无线介质包括红外信号、微波等。

c语言程序设计实验与习题指导答案颜晖

c语言程序设计实验与习题指导答案颜 晖 【篇一:c语言程序设计谭浩强版何钦铭颜晖版习题答 案全集】 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数 字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组 成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf(\n); for(i=1;i5;i++) /*以下为三重循环*/ for(j=1;j5;j++) for (k=1;k5;k++) { if (i!=ki!=jj!=k) /*确保i、j、k三位互不相同*/ printf(%d,%d,%d\n,i,j,k); } } 【程序2】 题目:企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高 于10万元的部分,可可提成7.5%;20万到40万之间时,高于 20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提 成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键 盘输入当月利润i,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义 成长整型。

2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf(%ld,i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i=100000) bonus=i*0.1; else if(i=200000) bonus=bonus1+(i-100000)*0.075; else if(i=400000) bonus=bonus2+(i-200000)*0.05; else if(i=600000) bonus=bonus4+(i-400000)*0.03; else if(i=1000000) bonus=bonus6+(i-600000)*0.015; else bonus=bonus10+(i-1000000)*0.01; printf(bonus=%d,bonus); } ----------------------------------------------------------------------------- 【程序3】 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析: 2.程序源代码: #include math.h main() { long int i,x,y,z; for (i=1;i100000;i++) { x=sqrt(i+100);/*x为加上100后开方后的结果*/ y=sqrt(i+268);/*y为再加上168后开方后的结果*/

C语言程序设计实验指导书参考答案

上级实验参考答案#include "stdio.h" #include"math.h" int main() { int i; double a, b; for(i=0;i<=100000;++i) {a=sqrt(i+100); b=sqrt(i+168); if((int)a==ceil(a)&&(int)b==ceil(b)) printf("%d\n",i);} } 实验2 基本数据类型、运算和表达式 一、实验目的 1)掌握C 语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。2)掌握不同的类型数据之间赋值的规。 3)学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加++ )和自减--)运 算符的使用。 4 )进一步熟悉C 程序的编辑、编译、连接和运行的过程。 二、实验内容 1. 变量的定义 [题目1117:变量定义,按要求完成程序] 下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。 void main() {

int a, b; /*定义整型变量a 和b*/ int i, j; /*定义实型变量i 和j */ a=5; b=6; i=3.14;j=i*a*b; printf("a=%d,b=%d,i=%f,j=%f\n", a, b, i,j); } [具体操作步骤] 1)将代码补充完整; 2)在TC 或VC++上运行通过; 3)在JudgeOnline 实验系统上提交; 2. 赋值表达式与赋值语句 [题目1118:赋值表达式与赋值语句,写出程序运行结果] 阅读下面程序,写出运行结果: void main() { float a; int b, c; char d, e; a=3.5; b=a; c=330; d=c; e='\\'; printf("%f,%d,%d,%c,%c", a,b,c,d,e); } 运行结果为: 3.500000,3,330,J,\ [提示]赋值语句具有类型转换的功能,但可能会改变数据。 3. 基本运算 [题目1119:基本运算,写出程序运行结果] 阅读下面程序,写出运行结果:

C语言程序设计实验与习题指导同步自测答案

C语言程序设计实验与习题指导同步自测答案 2.1.3 同步自测 一、选择题 1.D 2.C 3.D 4.C 5.A 6.B 7.D 8.C 二、填空题 1.①c ②exe 2.①main 3.①函数说明部分②函数体 4.①主或main ②主或main 5.①; 2.2.3 同步自测 一、选择题 1.B 2.D 3.C 4.C 5.C 6.B 7.D 8.A 9.C 10.B 11.D 12.D 13.D 14.C 15.C 16.D 17.C 18.C 19.B 20.A 21.D 22.A 23.D 24.C 25.D 26.B 27.B 28.D 29.D 30.C 31.A 32.B 33.D 34.B 35.C 2.3.3 同步自测 一、选择题 1.B 2.C 3.D 4.A 5.B 6.A 7.A 8.A 9.D 10.B 2.4.3 同步自测 一、选择题 1.B 2.A 3.B 4.C 5.B 6.D 7.C 8.A 9.D 10.B 二.编程题 1. #include void main() { int x,y; printf("请输入自变量x的值: "); scanf("%d",&x); if(x<0) y=3*x+1; else if(x<5) y=2*x; else y=x+2; printf("\n函数y的值为: %d",y); } 2. #include void main() { int a,b,c,d,t; printf("请输入四个整数:\n"); scanf("%d%d%d%d",&a,&b,&c,&d); if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;}

c语言程序设计实验指导参考答案

c语言程序设计实验指导参考答案 C语言程序设计实验指导参考答案 在学习C语言程序设计的过程中,实验是不可或缺的一部分。通过实验,我们 可以巩固所学的知识,提高编程能力。然而,有时候我们可能会遇到一些难题,不知道如何下手。本文将为大家提供一些C语言程序设计实验的参考答案,希 望能够帮助大家更好地完成实验任务。 1. 实验一:C语言基础 实验一主要涉及C语言的基础知识,包括变量、运算符、控制语句等。以下是 一些常见的题目及参考答案: 题目一:编写一个程序,实现两个整数的交换。 ```c #include 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 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 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; } ``` 题目二:编写一个程序,判断一个字符串是否为回文字符串。

C语言程序设计 上机实验指导与习题 参考答案(第四版)

C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C 语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。(2)了解在该系统上如何编辑、编译、连接和运行一个 C 程序。(3)通过运行简单的 C 程序,初步了解 C 程序的特点。(4)在教师的指导下,学会使用在线评判系统。二、实验内容1. 运行第一个 C 程序题目:ThefirstCProgram将下列程序输入 visualc ,编译、连接和运行该程序。includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。(2)保存程序,取名为 a1.c。(3)按照第一章中介绍的方法,编译、连接和运行程序。,则该题完成。4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2. 在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算 ab由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampb printfquotdquotab(1)在程序编辑窗口中输入程序。(2)保存程序,取名为 a2.c。(3)按照前二章中介绍的方法,编译、连接和运行程序。(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。 45(6)按照第三章中介绍的方法进入在线评判系统。(7)显示题目列表,点击题号为 1001,题名为“计算 ab”的题目。(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序 a2.c。(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。 3实验 2 基本数据类型、运算和表达式一、实验目的(1)掌握 C 语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。(2)掌握不同的类型数据之间赋值的规律。(3)学会使用 C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加()和自减(‐‐)运算符的使用。(4)进一步熟悉 C 程序的编辑、编译、连接和运行的过程。二、实验内容1. 变量的定义题目 1117:变量定义,按要求完成程序下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。includequotstdio.hquotmain int ab /定义整型变量 a 和 b/ int ij /定义实型变量 i 和 j/ a5 b6 i3.14jiab printfquotadbdifjfnquotabij 具体操作步骤(1)将代码补充完整;(2)在 codeblocks 或 VC上运行通过;(3)在在线评判系统上提交;题目 6568:在显示屏上显示指定字符要求编写一个程序,在显示屏上显示如下内容(全为半角字符,且不包括空格):C:ABC.TXT提示注意转义字符在程序中的使用。参考程序:includequotstdio.hquotintmain printfquotC:ABC.TXTquot2. 赋值表达式与赋值语句题目 1118:赋值表达式与赋值语句,写出程序运行结果阅读下面程序,写出运行结果:includequotstdio.hquotintmain floata intbc charde a3.5 ba c330 dc e141 printfquotfddccquotabcde运行结果为:3.5000003330Ja提示赋值语句具有类型转换的功能,但可能会改变数据。3. 基本运算题目 1119:基本运算,写出程序运行结果阅读下面程序,写出运行结果:includequotstd io.hquotmain intabc floatd15ef a357 b15/10 cb e15/10 fd/10 printfquotdddfffquotabcdef运行结果为:02115.0000001.0000001.500000提示除法分

C语言程序设计实验实验指导书及答案

常熟理工学院电气与自动化工程学院《C语言程序设计》实验指导书 实验一熟悉C程序运行环境 班级学号姓名成绩 一、实验目的 1. 熟悉C语言Visual C++6.0调试环境。 2. 掌握C程序的编辑、调试及运行。 二、实验内容 项目1. 调试并运行下面程序,并写出运行结果: #include int main() { printf(“Good morning!\n”); printf(“Hello,world!\n”); return 0; } 运行结果(注意,按照屏幕输出格式写): 项目2. 调试并运行下面程序,并写出运行结果: #include int main() { int a , b , sum; /*定义变量*/ a=23; b=56; /*为变量赋值*/ sum=a+b; /*计算两个变量的和*/ printf(“sum is %d\n”,sum); /*输出计算结果*/ return 0; } 运行结果:

2 项目3. 调试并运行下面程序,并写出运行结果: #include int max(int,int); int main() { int a , b , c; /*定义变量*/ a=23; b=56; /*为变量赋值*/ c=max(a,b); /*调用max函数,将得到的值赋给c*/ printf(“max is %d\n”,c); /*输出c的值*/ return 0; } int max(int x,int y) /*定义max函数,函数值为整型*/ { int z; /*定义变量*/ if(x>y) z=x; else z=y; return(z); /*将z的值返回*/ } 运行结果: 三、提高部分 1.试想,如果求10个数中的最大者,则程序该如何编写。 程序代码 运行结果:

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 二实验内容32

上机实验 实验1 C 语言程序初步 一实验目的 1了解所用的计算机系统的基本操作方法学会独立使用该系统 2 了解在该系统上如何编辑编译连接和运行一个C 程序 3 通过运行简单的C 程序初步了解C 程序的特点 4 在教师的指导下学会使用JudgeOnline 实验系统 二实验内容 1 运行第一个C 程序 [题目The first C Program] 将下列程序输入TC 或VC编译连接和运行该程序 void main printf "The first C Program\n" [具体操作步骤] 以Turbo C 上的操作为例 1Windows 进入后按照第一章中介绍的方法进入Turbo C 2在编辑窗口中输入程序 3保存程序取名为a1c 4按照第一章中介绍的方法编译连接和运行程序 2 在JudgeOnline 系统中提交实现了计算ab 功能的程序

c语言程序设计实验与习题指导颜晖答案

c语言程序设计实验与习题指导颜晖答案 C语言程序设计实验与习题指导 C语言作为一门广泛应用于软件开发、嵌入式系统和科学计算领域的编程语言,是计算机科学与技术专业学生的必修课程之一。在学习C语言的过程中,实验 与习题是非常重要的环节,通过实践与思考,学生能够更好地理解和掌握C语 言的基本概念和编程技巧。本文将对C语言程序设计实验与习题进行一些指导 和答案解析,帮助学生更好地完成相关任务。 一、实验指导 1. 实验一:Hello World程序 Hello World程序是C语言程序设计的入门级实验,通过编写一个简单的程序,输出"Hello World"这个经典的字符串,学生可以初步了解C语言的基本语法和 程序结构。以下是一个示例代码: ```c #include int main() { printf("Hello World\n"); return 0; } ``` 在这个程序中,`#include `是一个预处理指令,用来包含标准输入输 出库的头文件。`int main()`是程序的入口函数,`printf("Hello World\n");`用来输 出字符串,`\n`表示换行。`return 0;`表示程序正常结束。

2. 实验二:变量与运算 实验二主要涉及变量的定义与使用,以及基本的算术运算。以下是一个示例代码: ```c #include int main() { int a = 10; int b = 5; int sum = a + b; int product = a * b; float average = (float)(a + b) / 2; printf("The sum is %d\n", sum); printf("The product is %d\n", product); printf("The average is %.2f\n", average); return 0; } ``` 在这个程序中,`int a = 10;`和`int b = 5;`分别定义了两个整型变量a和b,并赋 予初始值。`int sum = a + b;`和`int product = a * b;`分别计算了a和b的和与积。`float average = (float)(a + b) / 2;`通过强制类型转换将和除以2,并赋值给浮点

2.2.3同步自测c语言程序设计实验与习题指导习题答案

2.2.3同步自测c语言程序设计实验与习题指导习题答案 2.2.3 同步自测 一、选择题 1.如a为int型,则与表达式a等价的C语言关系表达式是(B)。 (A)a>0 (B)a!=0 (C)a==0 (D)a<0 2.运行完下列程序后,在屏幕上的内容是(D)。 void main () { int a=0; a+=(a=12); printf ("%d\n",a); } (A)0 (B)6 (C)12 (D)24 3.若x,y为实数类型的变量,要判断x,y相等,最好使用下列关系表达式(D)。 (A)x==y (B)x-y==0 (C) fabs(x-y)<1e-8 (D)labs(x-y)<1e-8 4.执行下面程序中输出语句后,a的值是(C)。 #include<> main( ) { int a; printf("%d\n",(a=3*5,a*4,a)); } (A)65 (B)20 (C)15 (D)10 5.若变量t为double类型,表达式(t=1,t+5,t)的值是(C)。 (A)1 (B) (C) (D)6 6.下述程序的输出结果是(B)。 #include <> void main() { int a,b,c=241;

a=c/100%9; b=-1&&-1; printf("%d,%d\n",a,b); } (A)2,0 (B)2,1 (C)6,1 (D)0,-1 7.设有C语句:int x=3, y=4,z=5;,则下面表达式中值为0的是(D)。 (A)x&&y (B)x<=y (C)x||y+z&&y-z (D)!((x 8.位运算中,操作数每左移一位,在没有溢出的情况下其结果相当于(A)。 (A)操作数乘以2 (B)操作数除以2 (C)操作数除以4 (D)操作数乘以4 9.下面程序运行后,变量m的值为(C)。 #include<> void main() { int m,n,k; m=(n=4)+(k=10-7); printf(〞m=%d\n〞,m); } (A)4 (B) 3 (C)7 (D)14 10.有定义int a=3,b=4,c=5;执行完表达式a++>--b&&b++>c--&&++c后, a,b,c的值分别为(B)。 (A)3 4 5 (B) 4 3 5 (C) 4 4 4 (D) 4 4 5 11.在下列选项中,不正确的赋值语句是(D)。 (A)t/=5; (B)n1=(n2=(n3=0)); (C) k=i==j; (D) a=b+c=1; 12.在以下的四个运算符中,优先级最低的运算符是(D)。 (A)<= (B)/ (C)!= (D)&& 13.设x,y分别为单精度和双精度类型变量,则下列选项(D)可将

PTA 浙大版《C语言程序设计实验与习题指导(第3版)》题目集(参考答案)

编程题 实验1-1 Hello World! (5 分) #include int main() { printf("Hello World!"); return 0; } 实验1-2 Welcome to You! (5 分) #include int main() { printf("Welcome to You!"); return 0; } 实验1-3 Programming in C is fun! (5 分) #include int main() { printf("Programming in C is fun!"); return 0; } 实验1-4 输出三角形(5 分) #include int main() { int i,n=4; printf("****\n"); printf("***\n"); printf("**\n"); printf("*\n"); return 0; } 实验1-5 输出菱形图案(5 分)

#include int main() { printf(" A\n"); printf("A A\n"); printf(" A\n"); return 0; } 实验1-6 输出带框文字(5 分) #include int main() { printf("************\n"); printf(" Welcome\n"); printf("************\n"); return 0; } 实验1-7 What is a computer? (5 分) #include int main() { printf("What is a computer?"); return 0; } 实验1-8 输出倒三角图案(5 分) #include int main() { printf("* * * *\n"); printf(" * * *\n"); printf(" * *\n"); printf(" *\n"); return 0; } 实验2-1-1 计算摄氏温度(5 分) #include

C语言程序设计 (何钦铭 颜晖 著) 高等教育出版社第四章 课后答案

#include #include void main() { double eps,s,item,flag,denominator; s=0;item=1;flag=1;denominator=1; printf("Enter eps: "); scanf("%lf",&eps); while(fabs(item)>=eps) { item=flag/denominator; s=s+item; flag=-flag; denominator=denominator+3; } printf("s=%lf\n",s); } 练习4-4 #include void main() { int num,n; float score,total=0; num=0;n=0; printf("Please input score # 1 :"); scanf("%f",&score); while(score>=0) { if(score<60)num++; total=total+score; n++; printf("Please input score #%d(0~100): ",n+1); scanf("%f",&score); } printf("The average score is %.2f.\n",total/n); printf("The numbers between 0 and 59 is %d.\n",num); }

#include void main() { int i,j,n,num; printf("Enter n : "); scanf("%d",&n); for(i=1;i<=n;i++) { printf("Please input an integer : "); scanf("%d",&num); for(j=2;j<=num-1;j++) if(i%j==0)break; if(j>num-1 && num!=1)printf("%d is a prime.\n",num); else printf("%d is not a prime.\n",num); } } 练习4-8 #include void main() { int i,j,n; double e,product; e=1; printf("Enter n : "); scanf("%d",&n); for(i=1;i<=n;i++) { product=1; for(j=1;j<=i;j++) product=product*j; e=e+1/product; } printf("e=%.2lf\n",e); } 练习4-11

C语言程序设计第版何钦铭颜晖函数

第5章函数 练习5-1使用函数求1到n之和:输入一个正整数 n,输出1~n之和.要求自定义和调用函数sum(n)求 1~n 之和.若要计算 m~n(m int sum(int n); int main(void) { int n; int sum; printf("Enter n:") scanf("%d", &n); printf("sum = %d\n", sum(n)); return 0; } int sum(int n) { int result, i; result = 0; for(i = 1; i <= n; i++)

result = result + i; return result; } 若要计算 m~n(m double max(double a, double b); int main(void)

C语言程序设计实验指导书课后答案

实验一 (1)编程求37+29的值,实习VC环境。 #include void main() { int a,b,sum; a=37; b=29; sum=a+b; printf("sum=%d",sum); } (2)从键盘输入三个整数,求出最大数并输出。 #include void main() { int a,b,c,y; int max(int x,int y); printf("input a,b,and c:"); scanf("%d,%d,%d",&a,&b,&c); y=max(a,b); y=max(y,c); printf("\nmax=%d\n",y); } int max(int x,int y) { int z; if(x>y) z=x; else z=y; return(z); } (3)通过上机实践,运行下列程序并分析输出结果。 A 程序代码 #include void main() { char ch='a'; printf("%c对应的ASCII码是:%d\n",ch,ch); } 程序输出结果:a对应的ASC||码是:97

B 程序代码 #include void main() { int a=168; float b=123.456; float x=35.567,y; printf("a=%5d\n",a); printf("a=%-5d\n",a); printf("b=%6.2f\n",b); printf("b=%e\n",b); y=(int)(x*100+0.5)/100.0; printf("x=f,y=%f\n",x,y); } 程序输出结果: a=168 a=168 b=123.46b=1.234560e+002 x=f,y=35.567001 C程序代码 #include void main() { int a=168; printf("十进制数%d对应的八进制数是%o\n",a,a); printf("十进制数%d对应的十六进制数是%x\n",a,a); } 程序输出结果: 十进制数168对应的八进制数是250 十进制数168对应的十六进制数是a8

C语言程序设计实验指导(含答案)

C语言程序设计部分实验参考答案 实验2 #include int main(){//2-1-2 int c,f=150; c=f*5/9-32*5/9; printf("fahr=%d, celsius=%d\n",f, c); return 0; } #include int main(){//2-1-3 int c=26,f; f=c*9/5+32; printf("celsius=%d, fahr=%d\n",c, f); return 0; } #include int main(){//2-1-4 int math=87,eng=72,comp=93; printf("math=%d, eng=%d, comp=%d, average=%d\n",math, eng, comp, (math+eng+comp)/3); return 0; } #include int main(){//2-1/5 int n=152,a,b,c; c=n%10; b=(n/10)%10; a=n/100; printf("整数%d 的个位数字是%d, 十位数字是%d, 百位数字是%d\n",n, c, b, a); return 0; } #include int main(){//2-1-6 int x=3,y; y=x*x; printf("%d=%d*%d\n",y,x,x); printf("%d*%d=%d\n",x,x,y); return 0;

} #include int main(){//2-2-1 double x, y; printf("Enter x:"); scanf_s("%lf",&x); if(x!=0){ y=1/x; }else{ y=0; } printf("f(%.2f)=%.1f\n",x,y); return 0; } #include int main(){//2-2-2 int celsius, fahr; fahr=100; celsius=5*(fahr-32)/9; printf("fahr=%d, celsius=%d\n",fahr,celsius); return 0; } #include int main(){//2-2-3 double money, rate,x=1.0; int i,year; printf("Enter money, year and rate:"); scanf("%lf %d %lf",&money,&year,&rate); for(i=1;i<=year;i++) x=x*(1+rate); printf("intrest=%.2f\n",money*x-money); return 0; } #include #include int main(){//2-2-4 double x, y; printf("Enter x"); scanf_s("%lf",&x); if(x<0.0) y=pow(x+1,2)+2*x+1/x; else y=sqrt(x); printf("f(%.2f)=%.2f\n",x,y);

相关文档
最新文档