c语言程序设计第四章习题答案

合集下载

《C语言程序设计教程》第三版课后习题参考答案

《C语言程序设计教程》第三版课后习题参考答案

《C语言程序设计教程》第三版课后习题参考答案C语言程序设计教程第三版课后习题参考答案第一章:C语言概述1.1 C语言的特点答案:C语言是一种通用的、面向过程的程序设计语言,具有高效、简洁、灵活等特点。

它提供了丰富的程序设计元素和功能,适用于各种不同的应用领域。

1.2 C语言程序的基本结构答案:C语言程序由预处理指令、函数声明、函数定义、变量声明和语句组成。

其中,预处理指令用来引入头文件或定义宏,函数声明用来声明函数的名称和参数,函数定义用来实现函数的功能,变量声明用来声明变量的类型和名称,语句用来表达具体的计算过程。

1.3 C语言的数据类型答案:C语言提供了多种数据类型,包括基本类型(整型、浮点型、字符型等)和派生类型(数组、指针、结构体等)。

每种数据类型在内存中占据一定的存储空间,并具有特定的取值范围和操作规则。

1.4 C语言的运算符和表达式答案:C语言支持各种运算符和表达式,例如算术运算符(+、-、*、/等)、关系运算符(>、<、==等)、逻辑运算符(&&、||、!等)等。

通过运算符和表达式可以进行各种数值计算和逻辑判断。

第二章:基本数据类型与运算2.1 整型数据类型答案:C语言提供了不同长度的整型数据类型,包括有符号整型(int、long等)和无符号整型(unsigned int、unsigned long等)。

整型数据类型可以表示整数值,并具有不同的取值范围。

2.2 浮点型数据类型答案:C语言提供了浮点型数据类型(float、double等),用来表示带小数部分的实数值。

浮点型数据可以表示较大或较小的数值,并具有一定的精度。

2.3 字符型数据类型答案:C语言提供了字符型数据类型(char),用来表示单个字符。

字符型数据可以用于表示各种字符(包括字母、数字、符号等)。

2.4 布尔型数据类型答案:C语言不直接支持布尔型数据类型,但可以使用整型数据类型来表示布尔值(0表示假、非零表示真)。

c语言程序设计第四版第四章答案谭浩强

c语言程序设计第四版第四章答案谭浩强

第四章什么是算术运算什么是关系运算什么是逻辑运算解:略。

C语言中如何表示“真”和“假”系统如何判断一个量的“真”和“假”解:设有一个逻辑表达式,若其结果为“真”,则以1表示;若其结果为“假”,则以0表示。

但是判断一个逻辑量的值时,以0代表“真”,以非0代表“假”。

例如3&&5的值为“真”,系统给出3&&5的值为1。

写出下面各逻辑表达式的值。

设a=3,b=4,c=5。

(1) a+b>c&&b==c(2) a||b+c&&b-c(3) !(a>b)&&!c||1(4) !(x=a)&&(y=b)&&0(5) !(a+b)+c-1&&b+c/2解:(1) 0(2) 1(3) 1(4) 0(5) 1有3个整数a、b、c,由键盘输入,输出其中最大的数。

解:方法一#include <>main(){ int a,b,c;printf("请输入3个整数:");scanf("%d,%d,%d",&a,&b,&c);if(a<b)if(b<c) printf("max=%d\n",c);else printf("max=%d\n",b);else if(a<c) printf("max=%d\n",c);else printf("max=%d\n",a);}方法二:使用条件表达式,可以使程序更加简明、清晰。

程序如下:#include <>main(){ int a,b,c,temp,max;printf("请输入3个整数:");scanf("%d,%d,%d",&a,&b,&c);temp=(a>b)a:b; /* 将a和b中的大者存人temp中 */max=(temp>c)temp:c; /* 将a和b中的大者与c比较,取最大者*/printf("3个整数的最大数是%d\n”,max);}有一函数:写一程序,输入x值,输出y值。

C程序设计(第五版)-第4章选择结构程序设计课后习题答案

C程序设计(第五版)-第4章选择结构程序设计课后习题答案

C程序设计(第五版)-第4章选择结构程序设计课后习题答案1. 什么是算术运算?什么是关系运算?什么是逻辑运算?【答案解析】算熟运算:算术运算即“四则运算”,是加法、减法、乘法、除法、乘⽅、开⽅等⼏种运算的统称。

其中加减为⼀级运算,乘除为⼆级运算,乘⽅、开⽅为三级运算。

在⼀道算式中,如果有多级运算存在,则应先进⾏⾼级运算,再进⾏低⼀级的运算。

C语⾔中的算熟运算符包括:+、-、*、/、++、--、%等种类。

如果只存在同级运算;则从左⾄右的顺序进⾏;如果算式中有括号,则应先算括号⾥边,再按上述规则进⾏计算。

⽰例:$ (1 + 1)^{2} * 4+5 * 3$解析:1. 先进⾏括号内运算1+1,然后进⾏乘⽅运算得到结果4.2. 接下来与4相乘,得到结果163. 因为乘法优先级⼤于加法,因此先进⾏5*3,得到结果154. 最终相加得到结果31结果:31关系运算:关系的基本运算有两类:⼀类是传统的集合运算(并、差、交等),另⼀类是专门的关系运算(选择、投影、连接、除法、外连接等),⽽在C语⾔中,关系运算通常被认为是⽐较运算,将两个数值进⾏⽐较,判断⽐较结果是否符合给定的条件。

常见的关系运算符包括:<、<=、>、>=、==、!=等种类。

其中,前4种关系运算符(<、<=、>、>= )的优先级别相同,后2种(==、!=)也相同。

⽽前4种⾼于后2种。

例如, >优先于==。

⽽>与<优先级相同。

并且,关系运算符的优先级低于算术运算符,关系运算符的优先级⾼于赋值运算符(=)。

逻辑运算:在逻辑代数中,有与、或、⾮三种基本逻辑运算。

表⽰逻辑运算的⽅法有多种,如语句描述、逻辑代数式、真值表、卡诺图等。

⽽在C语⾔中,逻辑运算通常⽤于使⽤逻辑运算符将关系表达式或其它逻辑量连接起来组成逻辑表达式⽤来测试真假值。

常见的逻辑运算符包括:&&、||、!等种类&&:与是双⽬运算符,要求有两个运算对象,表⽰两个运算对象都成⽴,则结果为真,否则结果为假。

C语言程序设计教程第四章练习题解析

C语言程序设计教程第四章练习题解析

单选题1、关于C语言中的函数,下列描述正确的是()A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和函数的嵌套均不可以嵌套D.函数的定义和函数的调用均不可以嵌套答案:B解析:函数的定义不可以嵌套,但函数的调用可以嵌套2?、定义一个函数:exce((v1, v2), (v3,v4,v5),v6); 在该函数调用时,实参的个数为()个A.3B.4C.5D.6答案:A解析:(v1, v2),(v3,v4,v5)和v6一共三个实参3、关于C语言中print()函数与scanf()函数,下列描述中正确的是()A.printf()函数可以向任何地方输出数据B.printf()只向控制台输出数据C.scanf()只能输入英文字母和数字D.scanf()函数可以识别输入的空格答案:B解析:printf()是向控制台输出的函数4、在C语言中,内部函数需要添加的关键字是()A.externB.staticC.thisD.auto答案:B解析:在定义内部函数时,需要在函数的返回值类型前面添加static关键字(又称为静态函数)。

5、当调用时,会调用内部函数A.当调用时,会调用内部函数B.当调用时,会调用外部函数C.当调用时,会调用两次,先调用内部函数再调用外部函数D.都不调用,会报错答案:A解析:当内部函数与外部函数重名时,会优先调用内部函数6、在C语言中,声明外部函数需要添加的关键字是()A.externB.staticC.thisD.auto答案:A解析:声明外部函数的方式是在函数的返回值类型前面添加extern关键字7、关于C语言中的局部变量,下列描述中错误的是()A.局部变量就是在函数内部声明的变量B.局部变量只在函数内部有效C.局部变量只有当它所在的函数被调用时才会被使用D.局部变量一旦被调用,其生存周期持续到程序结束答案:D解析:当函数调用结束时局部变量就会失去作用8、关于C语言中的全局变量,下列描述中正确的是()A.全局变量的作用域一定比局部变量的作用域范围大B.静态类别变量的生存周期贯穿于整个程序的运行期间C.函数的形参都属于全局变量D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值答案:B解析:?选项1不对:如果程序中只有一个主函数,则在整个程序运行中,局部变量都在起作用;选项3不对:除了C++的引用类型参数,所有函数的形参都是局部变量;选项4不对:static变量定义时就存储地全局区,初始化为0;9、当全局变量与局部变量重名时,那么在调用时()A.局部变量会被屏蔽B.全局变量会被屏蔽C.都不会调用,系统会报错D.会调用两次,先调用局部变量,再调用全局变量答案:B解析:当局部变量与全局变量重名时,全局变量会被屏蔽。

《C语言程序设计》教材习题答案第4章

《C语言程序设计》教材习题答案第4章
scanf("%d",&n);
if(++n<10) printf("%d\n",n);
else printf("%d\n",--n);
}
3、若a、b、c1、c2、x、y均是整形变量,正确的switch语句是D
switch(a-b)
{default:y=a*b;break;
case 3:
case 10:y=a-b;break;
{
day+=a[ai][i];
}
day+=d;
printf("这是该年的弟%d天\n",day);
}
7、输入一个字符,判断输入字符的种类,即区分空格、回车、数字字符、英文字母和其他字符(要求分别用if…else if和switch语句编写)。
#include<stdio.h>
void main()
{
else x=6;
else x=7;
12、有如下程序段
int a=14,b=15,x;
char c='A';
x=(a&&b)&&(c<'B');
执行该程序段后,x的值为D 1
13、有如下程序段
int score=5;
switch(score)
{
case 5:printf("very good!");
case 4:printf("Good!");
default:printf("data error!");
}
程序输出结果为D Very good! Good! Data error!

c语言第4章 选择结构程序设计习题答案

c语言第4章 选择结构程序设计习题答案

第4章选择结构程序设计习题(P111)4。

2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。

4.3 写出下面各逻辑表达式的值。

设a=3,b=4,c=5。

(1)a+b〉c&&b==c (2)a||b+c&&b-c (3)!(a〉b)&&!c||1(4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c—1&&b+c/2解:该题在求解过程中注意:一、优先级。

逻辑运算符(&&和||)低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低;二、逻辑表达式的求值规则。

(P94)所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)14。

4有3个整数a、b、c,由键盘输入,输出其中最大的数。

分析:这是一个规模较小的求最值的算法,习题1.6用函数的方法实现。

该题不用函数调用实现,但方法类似。

法一:先求前两个数的最值,再用前两个数的最值和第三个数比较即得结果。

法二:先假设第一个数是最值,再依次和第二、第三个数比较得结果。

其中都要用到单分支或双分支选择结构语句。

参考程序如下:法一:main(){ int a,b,c,max;/*定义4个整型变量,其中a,b,c存原始数据,max存最值*/ printf(”\ninput the value of a,b,c:"); /*提示输入*/scanf(”%d%d%d",&a,&b,&c);/*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/if(a>b) max=a;else max=b;if(max<c) max=c;printf("\nmax=%d\n",max);}法二:main(){int a,b,c,max;printf(”\ninput the value of a,b,c:”);scanf(”%d%d%d",&a,&b,&c);max=a;if(max〈b) max=b;if(max<c) max=c;printf("\nmax=%d\n”,max);}4.6有一个函数:写一段程序,输入x,输出y的值。

C语言程序设计实例教程第2版习题答案作者李红第4章选择结构程序设计

C语言程序设计实例教程第2版习题答案作者李红第4章选择结构程序设计

4.3 课后习题4.3.1 项目练习一.练习目的1.进一步巩固选择结构程序设计语句的使用2.进一步巩固break语句的使用方法3.提高编程和调试程序的能力二.练习内容1.接受用户输入的三种商品的价格。

如果购买的三种商品中至少有一种商品的价格大于50 或者三种商品的总额大于100,则折扣率为15%,否则折扣率为0,计算并显示用户应付的钱数。

#include "stdio.h"main(){float a,b,c,price;scanf("%f%f%f",&a,&b,&c);price=a+b+c;if((a>50)||(b>50)||(c>50)||(price>100))price=price*0.85;printf("%.2f",price);getch();}2.判断所输入的一个年份是否为闰年。

#include "stdio.h"main(){int year,flag=0;scanf("%d",&year);if((year%4==0)&&(year%100!=0)||(year%400==0))flag=1;if(flag==1)printf("%d年是闰年!",year);elseprintf("%d年不是闰年!",year);getch();}3.利用if结构编写程序,输入x值,求解以下分段函数的y值。

当x<1时,y=x+1;当1≤x<10,y=2x+5;当x≥10时,y=x2+8。

#include "stdio.h"main(){int x,y;scanf("%d",&x);if(x<1) y=x+1;else if(x>=10) y=x*x+8;else y=2*x+5;printf("%d",y);getch();}4.编写一个程序,根据用户输入的期末考试成绩,输出相应的成绩评定信息。

《C语言程序设计》第二版(谭浩强)-4-7章课后习题答案-清华大学出版社

《C语言程序设计》第二版(谭浩强)-4-7章课后习题答案-清华大学出版社

4-5原题:打印出下题的结果main(){?int a=5,b=7;?float x=67.8564,y=-789.124;?char c='A';?long n=1234567;?unsigned u=65535;?printf("%d%d\n",a,b);?printf("%3d%3d\n",a,b);?printf("%f,%f\n",x,y);?printf("%-10f,%-10f\n",x,y);?printf("%8.2f,%8.2f,%4f,%4f,%3f,%3f\n",x,y,x,y,x,y);?printf("%e,%10.2e\n",x,y);?printf("%c,%d,%o,%x\n",c,c,c,c);?printf("%ld,%lo,%x\n",n,n,n);?printf("%u,%o,%x,%d\n",u,u,u,u);?printf("%s,%5.3s\n","COMPUTER","COMPUTER");}结果:575 767.856400,-789.12402367.856400 ,-789.12402367.86, -789.12,67.856400,-789.124023,67.856400,-789.1240236.78564e+01, -7.9e+02A,65,101,411234567,4553207,d68765535,177777,ffff,-1COMPUTER, COM4-6原题:用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a'。

《C语言程序设计》 课后习题答案 高等教育出版社

《C语言程序设计》 课后习题答案 高等教育出版社

《C语言程序设计》课后习题答案高等教育出版社《C语言程序设计》课后习题答案高等教育出版社第一章:C语言概述1. C语言的特点C语言是一种以处理底层任务和系统编程为目标的高级编程语言。

其特点包括语法简洁、执行效率高、可移植性强等。

第二章:C语言基本数据类型1. C语言中的基本数据类型C语言中的基本数据类型包括整型、字符型、浮点型等。

整型可以进一步细分为有符号整型和无符号整型。

第三章:C语言运算符1. C语言中的运算符C语言中常见的运算符包括算术运算符、赋值运算符、关系运算符、逻辑运算符等。

这些运算符用于执行各种数学和逻辑操作。

第四章:C语言控制语句1. C语言中的条件语句C语言提供了if语句和switch语句来实现条件判断。

if语句用于执行基于布尔表达式的条件分支,而switch语句用于根据不同的值执行不同的代码块。

第五章:C语言函数1. C语言中的函数定义和调用函数是C语言中的基本模块,用于封装可重用的代码。

函数定义包括函数返回类型、函数名、参数列表和函数体等部分。

第六章:C语言数组1. C语言中的数组定义和使用数组是一组相同类型的数据元素的集合。

C语言中可以使用数组来存储和操作大量数据。

第七章:C语言指针1. C语言中的指针概念指针是一种变量,它存储了内存地址。

通过指针,可以直接访问和修改对应内存地址中的数据。

第八章:C语言字符串1. C语言中的字符串操作字符串是由一系列字符组成的数据类型。

C语言通过字符数组来表示和操作字符串。

第九章:C语言结构体1. C语言中的结构体定义和使用结构体是一种自定义的复合数据类型,它可以包含多个不同类型的成员变量。

第十章:C语言文件操作1. C语言中的文件读写操作文件操作是一种重要的数据输入和输出方式。

C语言提供了一系列函数来实现文件的读写操作。

总结:通过解答以上习题,我们可以更好地掌握C语言的各个方面,提升我们的编程能力和解决问题的能力。

希望本文对读者有所帮助。

c语言程序设计苏小红第二版课后答案

c语言程序设计苏小红第二版课后答案

c语言程序设计苏小红第二版课后答案C语言作为一门古老而强大的编程语言,至今仍然在各个领域中发挥着重要作用。

苏小红教授的《C语言程序设计》第二版是一本广受好评的教材,它不仅系统地介绍了C语言的基础知识,还通过丰富的实例和练习题帮助读者加深理解。

以下是该书部分课后习题的答案解析,以供参考。

第一章:C语言概述1. 问题:C语言的特点是什么?答案:C语言的特点包括简洁高效、结构化、可移植性高、丰富的运算符、数据类型丰富等。

2. 问题:C语言的发展历程是怎样的?答案:C语言起源于20世纪70年代,由丹尼斯·里奇(Dennis Ritchie)在贝尔实验室开发,最初用于UNIX操作系统的编写。

随着UNIX的流行,C语言也逐渐被广泛使用。

第二章:数据类型、运算符和表达式1. 问题:C语言中的基本数据类型有哪些?答案:C语言中的基本数据类型包括整型(int)、字符型(char)、浮点型(float和double)等。

2. 问题:算术运算符有哪些?答案:算术运算符包括加(+)、减(-)、乘(*)、除(/)和模运算(%)。

第三章:控制语句1. 问题:if语句的基本形式是什么?答案:if语句的基本形式是:```cif (条件) {// 条件为真时执行的代码} else {// 条件为假时执行的代码}```2. 问题:for循环的一般形式是什么?答案:for循环的一般形式是:```cfor (初始化表达式; 条件表达式; 迭代表达式) {// 循环体}```第四章:数组1. 问题:一维数组的声明方式是什么?答案:一维数组的声明方式是:```c类型数组名[数组大小];```2. 问题:如何使用数组?答案:使用数组时,可以通过数组名和索引来访问数组元素,例如: ```cint arr[10];arr[0] = 1; // 给数组的第一个元素赋值```第五章:函数1. 问题:函数的定义包括哪些部分?答案:函数的定义包括返回类型、函数名、参数列表和函数体。

C语言程序设计习题集第4章 循环结构(答案)

C语言程序设计习题集第4章 循环结构(答案)

第4章循环结构一、选择题1、有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是( A)A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次2、t为int类型,进入下面的循环之前,t的值为0while( t=1){ …… }则以下叙述中正确的是( B)A) 循环控制表达式的值为0B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B )A) m==0 B) m!=0 C) m==1 D) m!=14、有以下程序,程序运行后的输出结果是(C )。

main(){int i=1,sum=0;while(i<=4){sum=sum+i;i=i+1;}printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环5、有以下程序,程序运行后的输出结果是(D )。

main(){ int i=1,sum=0;while(i<=4)sum=sum+i;i=i+1;printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环6、有如下程序main(){int n=9;while(n>6){n--;printf(“%d”,n);}}该程序段的输出结果是(B)A) 987 B) 876 C) 8765 D) 98767、以下程序的输出结果是( B )main(){ int num= 0;while(num<=2){ num++; printf(“%d\n”,num);}}A) 1 B) 1 C)1 D) l2 2 23 348、有以下程序,若运行时输入3.6 2.4<回车>,则输出的结果是( B)。

main(){float x,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>1.0){x=y;y=z;z=x/y;}elsebreak;}printf(“%f\n”,y);}A)1.500000 B)1.600000 C)2.000000 D)2.4000009、执行以下程序段时x=-1;do{ x=x*x; }while(! x);则下面描述正确的是(A )A) 循环体将执行一次B) 循环体将执行两次C) 循环体将执行无限次D) 系统将提示有语法错误10、有以下程序段其输出结果是(C )int x=3;do{ printf("%d",x-=2); }while (!(--x));A) 1 B) 3 0 C) 1 -2D) 死循环11、有如下程序main(){int x=23;do{printf(“%d”,x);x--;}while(!x);}该程序的执行结果是(B )A) 321 B) 23 C) 不输出任何内容D) 陷入死循环12、有以下程序段int n=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345 &&n<3);此处do—while循环的结束条件是( D)A) P的值不等于12345并且n的值小于3B) P的值等于12345并且n的值大于等于3C) P的值不等于12345或者n的值小于3D) P的值等于12345或者n的值大于等于313、以下不构成无限循环的语句或语句组是(A)A) n=0;do {++n;}while(n<0);B) n=0;while(1){n++;}C) n=10;while(n);{n--;}D) for(n=0,i=1; ;i++)n+=i;14、若i为整型变量,则以下循环执行的次数是(B)for(i=2;i= =0;) printf(“%d”,i--);A)无限次B)0次C)1次D)2次15、执行语句for(i=1;i++<4;)后,变量i的值是(C)A) 3 B) 4 C) 5 D) 不定16、有以下程序main(){int y=9 ;for( ; y>0 ; y--)if(y%3==0 ) printf("%d" , --y) ;}程序的运行结果是(C)A) 741 B)963 C)852 D)87542117、以下程序执行后sum的值是( C)A)15 B)14 C) 不确定D)0main(){ int i , sum;for(i=1;i<6;i++) sum+=i;printf(“%d\n”,sum);}18、有如下程序{ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf(“%d\n”,sum);}该程序的执行结果是(C)A) 6 B) 3 C) 死循环D) 019、执行语句for(i=3;i>0;i--);i--;后,变量i的值是(C )A)0 B)10 C)-1 D)120、执行下面程序片段的结果是(A )。

C语言程序设计教程第四章练习题解析(1)

C语言程序设计教程第四章练习题解析(1)
A.3
B.4
C.5
D.6
答案:A
解析:(v1, v2),(v3,v4,v5)和v6一共三个实参
3、关于C语言中print()函数与scanf()函数,下列描述中正确的是()
A.printf()函数可以向任何地方输出数据
B.printf()只向控制台输出数据
C.scanf()只能输入英文字母和数字
D.scanf()函数可以识别输入的空格
s=2;
else
s=n-fun(n-1);
return s;
}
void main()
{
printf("%ld\n", fun(3));
}
A.1
B.2
C.3
D.4
答案:A
解析:fun()函数传入3时,返回3-fun(2);fun()函数传入2时,返回2。所以fun(3)返回3-2=1。
23、在C语言中,函数的隐含存储类别是()。
12、C语言程序的基本单位是()。
A.程序行
B.语句
C.函数
D.字符
答案:C
解析:函数是C语言程序的基本单位
13、C语言中决定函数返回值的类型的是()。
A.return语句中的表达式类型
B.调用函数的主调函数类型
C.调用函数时临时
D.定义函数时所指定的函数类型
答案:D
解析:函数的返回值取决于定义函数时指定的返回值类型
28、下列程序的输出结果是()。
int b=2;
int func(int *a)
{
b += *a;
return b;
}
void main()
{
int a=2, res=2;

国家开放大学C语言程序设计章节测试参考答案

国家开放大学C语言程序设计章节测试参考答案

国家开放大学《C语言程序设计》章节测试参考答案第一章C语言概述自测练习一:C语言字符集自测练习1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。

(√)2.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。

(√)3.在C语言程序中,ABC和abc被作为同一标识符使用。

(×)自测练习二:C语言字符集自测练习1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。

(√)2.在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。

(√)3.C语言中使用的字符常量,其起止标记符是()。

a. 双引号b. 尖括号c. 单引号d. 中括号4.C语言中使用的字符串常量,其起止标记符是()。

a. 双引号b. 中括号c. 尖括号d. 单引号自测练习三:C语句分类自测练习1.在C语言中,一条简单语句的结束符是()。

a. 分号b. 空格c. 冒号d. 逗号2.在C语言中,每条复合语句的开始标记字符为()。

a. <b. [c. (d. {3.不符合C语言规定的复合语句是()。

a. {x=0;}b. {}c. {;}d. {y=10}4.C语言中的选择类语句有两条,它们是()。

a. else和caseb. if和switchc. if和elsed. switch和case自测练习四:函数分类与使用自测练习1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。

a. nameb. mainc. MAINd. function2.C语言程序中的基本功能模块为()。

a. 标识符b. 函数c. 表达式d. 语句3.一个函数定义所包含的两个部分是()。

a. 函数头和函数体b. 函数原型和函数体c. 函数名和参数表d. 函数头和函数尾4.一个程序文件开始使用的每条预处理命令,其首字符必须是()。

a. #b. @c. %d. $5.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。

C语言第四章习题答案

C语言第四章习题答案

1.下列程序中横线处正确的语句应该是()#include<iostream>using namespace std;class Base{public;void fun( ){cout< < “Base : : fun” < < endl;}};class Derived : public Base{public:void fun( ){_________//显示调用基类的函数fun( )cout < < “Derived : : fun” < < endl;}};A fun( ).B Base.fun( )C Base : : fun( )D Base - >fun( )2下面程序的执行结果是()#include<iostream.h>class A{public:void disp(){ cout<<"class A"<<endl;}};class B:public A{public:void disp(){cout<<"class B"<<endl;}};void main(){B b;b.disp();}输出为:class B3下面程序的执行结果是()#include<iostream.h>class A{public:A(int I,int j){a=I;b=j;}void move(int x,int y){a+=x;b+=y;}void show(){cout<<"("<<a<<","<<b<<")"<<endl;} private:int a,b;};class B:private A{ public:B(int I,int j,int k,int l):A(I,j){x=k;y=l;}void show(){cout<<x<<","<<y<<endl;}void fun(){move(2,4);}void f1(){A::show();}private:int x,y;};void main(){ A e(2,3);e.show();B d(4,5,6,7);d.fun();d.show();d.f1();d.show();}输出为:(2,3)6,7(6,9)4下面程序的输出结果为#include<iostream.h>class base{public:base(int x,int y){a=x;b=y;}void show(){cout<<"base:"<<a<<";"<<b<<endl;} private:int a,b;};class derived:public base{public:derived(int x,int y,int z):base(x,y),c(z){}void show(){cout<<"derived:"<<c<<endl;} private:int c;};int main(){base b(10,10),*pb;derived d(20,30,40);pb=&b;pb->show();pb=&d;pb->show();return 0;}输出结果为base:10;10base:20;3055、下面程序的输出结果为#include<iostream.h>class AA{protected:int k;public:AA(int n=4):k(n){}~AA(){cout<<"AA"<<endl;}virtual void f() const=0;};inline void AA::f() const{}class BB:public AA{public:~BB(){cout<<"BB"<<endl;}void f() const{cout<<k-2;AA::f();}};int main(){AA &p=*new BB;p.f();delete &p;return 0;}程式的执行结果2AA6 分析以下程式的执行结果:#include<iostream.h>class base{ int n;public:base(){};base (int a){cout << "constructing base class" << endl;n=a;cout << "n=" << n << endl;}~base() { cout << "destructing base class" << endl; } };class subs : public base{int m;public:subs(int a, int b) : base(a){cout << "constructing sub class" << endl;m=b;cout << "m=" << m << endl;}subs() { cout << "destructing sub class" << endl; }};void main (){subs s(1,2);}解:这里base 是基类,subs为派生类,subs类的构造函数中含有调用基本类的构造函数。

《C程序设计》作业参考答案(1-4章)

《C程序设计》作业参考答案(1-4章)

第1章C语言概述习题(P13):1.3 写出一个C程序的构成。

答:C程序由一个main函数和0个或多个自定义函数构成,每个函数的构成如下:函数类型函数名(函数参数列表){说明部分执行部分}1.4 C语言以函数为程序的基本单位,有什么好处?答:一个函数实现一个相对独立的功能,便于实现程序的模块化。

1.5 请参照本章例题,编写一个C程序,输出以下信息:*************************************************Very good!*************************************************答:参照例1.1编程如下# include <stdio.h>void main(){printf("********************************************\n");printf(" Very good!\n");printf("********************************************\n");}1.6 编写一个C程序,输入a、b、c 3个值,输出其中最大者。

答:参照例1.3编程如下法一:修改例1.3的主函数,自定义max函数不变。

# include <stdio.h>void main(){int max(int x,int y); /*函数声明*/int a,b,c,m; /*定义4个变量,m用于存放最大值*/scanf("%d%d%d",&a,&b,&c);/*从键盘上输入3个整数*/m=max(a,b); /*第一次调用max函数求出前两个数的最大值放在m中*/m=max(m,c); /*再调max函数求出m和第三个数的最大数*/printf("max is %d\n",m); /*输出结果*/}int max(int x,int y) /*定义求两个数的最大数的函数max */{int z;if(x>y) z=x;else z=y;return(z);}法二:修改例1.3的主函数和max函数,将max函数改为求3个数的最大数。

c语言详解(第五版)第四章程序设计项目答案

c语言详解(第五版)第四章程序设计项目答案

C语言详解(第五版)第四章程序设计项目答案1.Keith的Sheet Music需要一个程序来实现其为音乐教师定制的折扣政策。

程序提示用户输入购买总额并且表明购买者是不是教师。

#include<stdio.h>#include<stdlib.h>#define discount_1 0.12#define discount_2 0.1#define tax_rate 0.05void instruct_purchase(void);double total(double total_purchase,char a[1]);int main(void){void instruct_purchase(void);double total(double,char);double total_purchase,total_payment,total1;char a;instruct_purchase();printf("Please enter the creer teacher(enter t) or not(enter n).>>>\n");scanf("%c",&a);printf("Please enter the total purchase.>>>\n");scanf("%lf",&total_purchase);total1=total(total_purchase,a);printf("The total payment is %.2f.",total1);system("pause");return(0);}void instruct_purchase(void){printf("This program figure a total bill.");printf("The tax rate is $%.2f.\n",tax_rate);printf("The discount of total purchase which is more than 100 dollars is $%.2f.\n",discount_1); printf("The discount of total purchase which is less than 100 dollars is $%.2f.\n",discount_2); printf("Please press <return> or <enter> button after typing in each number.\n\n\n");}double total(double total_purchase,char a){double discount_total,total_payment,tax;if(a=='t')if(total_purchase>100){discount_total=total_purchase*discount_1;tax=total_purchase*tax_rate;total_payment=total_purchase+tax-discount_total;}else{discount_total=total_purchase*discount_2;tax=total_purchase*tax_rate;total_payment=total_purchase+tax-discount_total;}else{ tax=total_purchase*tax_rate;total_payment=total_purchase+tax;}return(total_payment);}3.罗盘的度数换算为罗盘的方位。

C语言 第四章 选择结构程序设计期末测试习题与答案

C语言 第四章 选择结构程序设计期末测试习题与答案
C.其之后最近的if
D.其之前最近的没有else配对的if
参考答案:D
12、在下面的条件语句中,只有一个在功能上与其它三个语句不等价,它是( )。
A.if (a)语句1 else语句2
B.if (a!=0)语句1 else语句2
C.if (a==0)语句2 else语句1
D.if (a==0)语句1 else语句2
printf(“a=%d,b=%d\n”,aa=2,b=2
C.a=1,b=0
D.a=1,b=1
参考答案:B
16、假定所有变量均已正确说明,以下程序段运行后的输出结果是( )。
int a=1,b=5,c=3;
if(a>b)
a=b;
b=c;
c=a;
printf("a=%d b=%d c=%d\n",a,b,c);
D.if(a==0) printf("%d\n",x); else printf("%d\n",y);
参考答案:D
2、假定所有变量均已正确说明,下列程序段运行后x的值是( )。
a=b=c=0;x=12; if(!a)x--; else x=5; if(c) x=3; else x=4;
A.3
B.4
C.12
int a=1,b=3,c=5; if(c=a+b) printf("yes\n"); else printf("no\n");
A.3
B.5
C.1
D.2
参考答案:A
5、当把以下4个表达式用作if语句的控制表达式时,有一个选项与其他3个选项含义不同,这个选项是( )。
A.k%2==1

《C语言程序设计》课后习题答案第四版

《C语言程序设计》课后习题答案第四版

《C语言程序设计》课后习题答案第四版C语言程序设计课后习题答案第四版第一章基本概念和语法1.以下是一些基本概念和语法的习题答案:1.1 基本概念1.1.1 C语言是一种高级程序设计语言,最初由贝尔实验室的丹尼斯·里奇(Dennis Ritchie)于1972年开发。

1.1.2 C语言具有跨平台性,能够在多个操作系统上运行。

1.1.3 C语言程序是由函数构成的,每个程序都至少包含一个main函数。

1.2 数据类型和变量1.2.1 C语言中的基本数据类型包括整型(int)、浮点型(float)、字符型(char)和布尔型(bool)等。

1.2.2 变量是用来存储数据的内存位置,它们需要在使用前进行声明。

1.3 运算符和表达式1.3.1 运算符用来执行各种运算操作,例如加减乘除和逻辑运算等。

1.3.2 表达式由变量、常量和运算符组成,用来进行数据计算和逻辑判断。

1.4 控制语句1.4.1 if语句用于条件判断,根据条件的真假来选择执行不同的代码块。

1.4.2 for循环语句用于重复执行某段代码,可以设定循环次数或者循环条件。

1.4.3 switch语句用于多条件选择,根据不同的条件执行相应的代码块。

第二章数组和字符串2.以下是关于数组和字符串的习题答案:2.1 数组2.1.1 数组是一种用来存储多个相同类型数据的数据结构。

2.1.2 数组可以通过索引访问和修改其中的元素,索引从0开始。

2.1.3 数组的长度是固定的,声明时需指定数组的大小。

2.2 字符串2.2.1 字符串是由字符组成的数组,以空字符'\0'结尾。

2.2.2 字符串可以通过数组或者指针方式进行操作。

2.2.3 C语言提供了许多用于处理字符串的函数,例如strcpy、strcmp和strlen等。

第三章函数和指针3.以下是有关函数和指针的习题答案:3.1 函数3.1.1 函数是一段可重复调用的代码块,用于执行特定的任务。

《C语言程序设计》习题及解答1-4章

《C语言程序设计》习题及解答1-4章
}
参考答案
一、选择题(1)B
(2)C
(3)C
(4)B
(5)B
(6)D
(7)D
(8)C
(9)C
(10)D
(11)B
(12)D
(13)D
(14)C
(15)A
二、填空题【1】2
【5】32767
【2】-2
【6】6.000000
【3】scanf
【7】49
【4】printf
第三章习题
一、单项选择题
1.下面不属于C语言的数据类型是【】。
int x=-32769;
printf("%d",x);
4.执行下列程序的输出结果是【6】。
main( )
{
float a=1,b;
b=++a*++a;
printf("%f\\n",b);
}
5.执行下列程序的输出结果是【7】。
main( )
{
int x=5,y;
y=++x*++x;
printf("y=%d\\n",y);
本题正确答案为B。
二、填空题
1.若以下程序的输出结果是13,请填空。
main( )
{ int x=016;
printf("%d\\n",【1】); }
分析:在C语言中以0开头的数字是八进制数,016相当于十进制数14,执行printf语句时,输出项应为x的值减1。
本题正确答案为【1】--x或x-=1。
A)整型
B)实型
C)逻辑型
D)双精度实型
分析:和其它高级语言相比,C语言中没有逻辑型数据,也没有逻辑型变量。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第四章选择结构
1:实现输入一个字符的大小写字母的转换
#include<stdio.h>
void main()
{char x='a';
printf("输入x:\n");
scanf("%c",&x);
if( x>='A' && x<='Z')
{
x=x+32; /*是大写,转换为小写,至于为什么要+32吗,请看看
大小写字母的ASCII码差值*/
}
else
if( x>='a' && x<='z')
{
x=x-32; /*是小写,转换为大写*/
}
/*其它不用理*/
printf("%c\n",x);
}
2:输入一个大写字母实现,输出字母表中的前后字母,但是当时A 或是Z时提示输出的“没有前面的字母”,“没有后面的字母”
#include<stdio.h>
void main()
{char x;
printf("输入一个大写字母x:\n");
scanf("%c",&x);
if (x=='A')
{printf("没有前面的字母");}
if( x=='Z')
{ printf("没有后面的字母");}
else// (x>'A'||x<'Z')
{printf("%c, %c",x-1,x+1);}
}
3:实现的是对百分制的评等级
#include<stdio.h>
void main()
{
float x;
printf("请输入学生的成绩x的值\n");
scanf("%f",&x);
if(x>=90&&x<=100)
{printf("等级为A ");}
else
{
if (x>=80&&x>=89)
{printf("等级为B ");
}
else
if (x>=70&&x<=79)
{printf("等级为C ");
}
else
if (x>=60&&x<=69)
{printf("等级为D ");
}
else
{
printf("等级为E ");
}
}
}
4:知道今天的日期,年月日,求出明天的年月日
#include <stdio.h>
int main()
{
int year,month,day;
int maxdays[]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入年月日,中间用空格隔开!\n");
scanf("%d %d %d",&year,&month,&day);
if(year%400==0 || (year%4==0 && year%100!=0)) maxdays[1]=29;//闰年二月最大值是29
if(month>12 || month<1)
{
printf("日期不合法!\n");
return 0;
}
if(day>maxdays[month-1])
{
printf("日期不合法!\n");
return 0;
}
day++;
if(day>maxdays[month-1])
{
day=1;
month++;
if(month>12)
{
month=1;
year++;
}
}
printf("明天的日期是:%d-%d-%d\n",year,month,day);
return 0;
}
5:输入三角形的三条边的长度,判断能否构成三角形,并且判断三角形的形状。

#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,s;
printf("please input a,b,c\n");
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&b+c>a&&c+a>b)
{
if(a==b&&a==c&&b==c)
printf("等边三角形\n");
else if(a==b||a==c||b==c)
printf("等腰三角形\n");
else if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))
printf("直角三角形\n");
else printf("任意的三角形\n");
}
else
printf("不能构成三角形\n");
}。

相关文档
最新文档