大学c语言课教材答案第一章
C语言第一章习题带答案
练习1-1答案选择题1.下列4组字符串中都可以用作C语言程序中的标识符的是( D )。
A.print 3d oodb B.I\m one_half start$itC.Pxq my->book line# D.str_1 Cpp into2.下面的说法正确的是( C )。
A.C程序由符号构成B.C程序由标识符构成C.C程序由函数构成D.C程序由C语句构成3.与十进制数35相等的二进制数是( A )。
A.100011 B.01001 C.100110 D.100101 4.与47值相等的十六进制数是( A )。
A.2F B.215 C.32F D.115 5.(01101)2 + (101101)2的值是( B )。
A.(101010)2 B.(3A)16 C.(2A)16 D.576.将15向左移动2位后的值是( D )。
A.(3C)16 B.(00111100)2 C.(60)10 D.都正确7.将250与5进行按位与的结果是( A )。
A.0 B.1 C.(FF)16 D.(F0)16 8.将(AF)16与(78)16进行按位异或的结果是( A )。
A.(D7)16 B.(28)16 C.(D8)16 D.(27)16 9.将(717)8按位取反的结果是( B )。
A.(110001)2 B.(060)8 C.(60)10 D.都不正确练习2-1答案选择题1.C语言中的简单数据类型包括( B )。
A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型2.在C语言中,错误的int类型的常数是( A )。
A.32768 B.0 C.037 D.0Xaf3.下列常数中不能作为C的常量的是( D )。
A.0x45 B.2.5e-2 C.3e2 D.05824.设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是( B )。
大一c语言习题练习及答案
第一章程序设计与C语言1.1 选择题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)1.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.int t2.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);3.下列四组选项中,正确的C语言标识符是(C )。
A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)4.下列四组字符串中都可以用作C语言程序中的标识符的是(A )。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)知识点:简单C语言程序的构成和格式5.在一个C程序中___B___。
A、main函数必须出现在所有函数之前B、main函数可以在任何地方出现C、main函数必须出现在所有函数之后D、main函数必须出现在固定位置6.以下说法中正确的是__D____。
A、#define和printf都是C语句B、#define是C语句,而printf不是C、printf是C语句,但#define不是D、#define和printf都不是C语句7.一个C程序的执行是从(A )。
A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束8.在C 语言中,每个语句必须以(D )结束。
c语言《程序设计基础》课后习题参考答案与解析
c语言《程序设计基础》课后习题参考答案与解析《程序设计基础》习题参考答案与部分解析第1章 C 语言概述一、填空a) C源程序的基本单位是函数。
b) 一个C程序中至少应包括一个 main函数。
c) 在C语言中,输出操作是有库函数 printf( )函数完成。
二、单选题1、A2、C3、B解析:第1题答案:A 。
因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。
且到main函数结束。
第2题答案:C 。
因为 main函数没有限制必须位于程序的最前面。
C程序书写自由,一行内可写几个语句。
在对一个C 程序进行编译的过程中,无法检查注释当中的拼写错误。
不过C语言本身并没有输入输出语句,输入输出是由函数完成的。
第3题答案:B。
因为一个C语言程序是由若干个函数组成的。
但至少包含一个main 函数,且main函数的位置不限。
三、编程题1、编写一个输出“Welcome to C!”信息的小程序。
解:程序如下#include “stdio.h”main( ){1printf(“Welcome to C!”) ;}2、已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。
海伦公式为:S?= ,其中s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( ){int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。
*/float s ,s1 ; /* s1作为面积变量,s 作为中间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开平方根功能。
*/printf(“area=%f\n”,s1);}2第2章程序设计基础知识一、单选题1、C2、A3、C4、A5、C6、C7、D8、C9、D 10、A 11、D 12、A 13、C 14、C 15、B A 16、B 17 D解析:1. 答案:C。
昆明理工大学C语言程序设计课后习题答案
昆明理工大学C语言程序设计课后习题答案第1章认识C语言(一)、是非题1.程序是指挥计算机进行各种信息处理任务的一组指令序列。
A.对B.错2.机器语言与硬件平台相关,但汇编语言和硬件平台无关。
A.对B.错3.编译型高级语言明显优于解释型高级语言。
A.对B.错4.C语言把高级语言的基本结构和低级语言的实用性紧密结合起来,不仅适合编写应用软件,而且适于编写系统软件。
A.对B.错5.面向对象的程序设计方法明显优于面向过程的程序设计方法。
A.对B.错6.计算机算法要有一个明确的起点和确定的步骤序列。
A.对B.错7.main函数是C程序的入口,由计算机系统负责调用。
A.对B.错8.在C语言中,同一行上可以写一条或多条语句,但一条语句不能写在多行上。
A.对B.错9.在C语言中,扩展名为.h的文件称为头文件,常用于组织C标准函数库中的函数。
A.对B.错10.注释语句会增加编译结果的复杂性,因此要尽量减少注释语句的数量。
A.对B.错11.声明变量的含义是通知编译系统为变量分配合适大小的存储空间。
A.对B.错12.C语言不允许使用关键字作为变量的名称,但可以使用保留字为变量命名。
A.对B.错13.符号常量提高了程序的可读性,但降低了程序维护的方便性。
A.对B.错14.变量声明把一个具体的标识符名称和计算机内存中的一个特殊的位置联系起来,同时确定了该位置存储的信息类型。
A.对B.错15. C语言允许在同一条语句中定义多个相同类型的变量,其间用分号进行分隔。
A.对B.错16.在ISO/ANSI 1999规定中,允许将变量声明放在程序中的任何位置。
A.对B.错17.不同类型的数据在内存中所占存储单元的大小不同,内部存储方式不同,取值范围不同,甚至能够参与的运算种类也不相同。
A.对B.错18.有符号和无符号整数的区别仅在于对数据最高位的解释不同。
若最高位解释为数据位,则为signed类型;若最高位解释为符号位,则为unsigned类型。
c语言第一章答案(Clanguage1)
c语言第一章答案(C language 1)Chapter 1 basic knowledge of C languageFirst, the multiple-choice question1the answer is AA correct textbook, page 11, line secondB (} can be regarded as a sign of compound statementsThe C main function is not user namedThe D semicolon is the end of the statement. It must be part of the statementTo do this subject requires a thorough understanding of the concepts in the book2the answer is AThe A error textbook, page fourth, describes the user identifier like this 一when naming an identifierThe selection is customized by the user, but cannot be the same as the keyword, so the A option is incorrect, thisSubject to user identifierThe user identifier is an identifier, so it can be underlined, but the underlined character does not belong to the alphabet,Underline one of the numbers. This topic examines the concept of user identifiers.4the answer is BDefine is a predefined identifier, and a predefined identifier can be a user identifier, soDefine can be user ID, if is keyword, and keyword cannot be user identifier,Therefore, if cannot be a user identifier5the answer is DSizeof is the key word, refer to appendix twoNote: 6一13 examines the concept of user identifiers6the answer is DThe D answer begins with number 2 and does not conform to the identifier definition7the answer is C8the answer is DInt is the keyword9the answer is BThe answer A is the key word, the answer C starts with the number, does not conform to the concept, the answer D outThe decimal point is now displayed10the answer is AThe answer A has a decimal point11the answer is CAnswer C begins with numbers12the answer is AB answer, float is the key word,C answer, 3C to number 3 start,D answer in -5dNot one of the letters, numbers, or underscores13the answer is AB the answer is "-max - error”. InC answer, "3COM" begins with letter 3, and "D" in answerInt is a keyword, not a user identifier14the answer is BA answer 15. should not be a bit behind, C answer appears in the comma, D in the letter Bproblem15the answer is BThe last 8 lines of the eighth page of the textbook16the answer is B8 appears in B, and octal can only consist of 0 to 717the answer is DThe answer D begins with 0, not o18the answer is CIn answer A, E is followed by integers and 0. 5 by decimalsIn answer B, E cannot be empty laterIn answer D, E cannot be blank aheadThis topic examines the index representationThere is a problem with 2 in answer A, not decimal formIn answer B, E cannot be blank aheadIn answer D, E cannot be empty laterThis topic examines the index representation20the answer is AB in octal can not appear in the number 8,C in E can not be followed by decimal,D inE behindCan not be empty21the answer is B0.4 of B is decimal, incorrect22the answer is C0.5 of C is decimal, incorrect23the answer is D3. 6-5/2+1. 2+5%2=3. 6-2+1. 2+1=3. 8This topic examines arithmetic operators, noting that integers are divided by integers and that results can only be integers% cannot be used for real type calculations25the answer is DD answer, $does not belong to letters, numbers, underscores26the answer is AA the answer is a comma expression. In theB answer, x+l=y is the assignment expression, and the left is the changeVolume, and this is x=l, and similarly, the answer C is also wrong in x+10, in the D answer,The type conversion is mandatory,Correct is (double) x/1027the answer is AThe subject of this review is where the notes need to be noted, and the specific answers are shown in the middle of the second page of the textbook28the answer is BIn answer A, N2 is not defined. In answer C, you cannot use it before defining f. The answer is DThe middle of E must be an integer29the answer is CThe type of transformation is mandatory, and the k% (int) f is correct30the answer is DThis topic is similar to the textbook sixteenth page example 15, the solution is to seize ++m, 一n, 一m,The value of an expression is the value after the change of the variable, and the value of the n-- expression is the variation of the variable nPrevious value31the answer is BThis topic is the textbook tenth page example 9, the concrete solution sees the textbook, this topic inspects is negativeAn integer is the same as a unsigned positive integer stored in a computer, but not expressedThe same two numbersIn A answer, % operand cannot be real type, 26.8 error, assignment in B answerOperator, the left of the assignment operator must be a variable, so the assignment operator has the wrong 1+2 on the leftWrong, same answer, D error33the answer is CThis topic examines the first point about the addition and decrement operators on the fifteenth page of the textbookThat is only the operation object increment operator is variable, while in C + + (i+1).And i+1 is an expression34the answer is BThis topic examines the integer divided by integer. The result is an integer. In the B answer, the 1/2 result is 0, which leads to the value of the whole expression of 0, which is obviously wrong35the answer is D36the answer is ASee the last tenth lines of the thirteenth page of the textbookSimilarly, the type of aand B is doubleSee textbook ninth, page Two, fill in the blanks textbooks,Ninth pages,the last seventh linestextbooks,third pages,the last fifth lines textbooks,Ninth pages,the last sixth linestextbooks,This topic examines the value of the n++ expression as the value before the change of N, and then increases the value of N by37the answer is BC=a/b+0. 4, c=8/5+0. 4, c=l+0. 4, c=l. 4, because C is int, so the value of n is 1. To do this, you need to read the title carefully 38the answer is D(int) a+b/b= (int) 5. 5+2. 5/2. 5=5+1. 000000-b=6. 00000039the answer is Dseventh pages, the last fifth lines5 textbooks, eighth pages, integer variables, and eleventh page variables6 5+3. 6/2=5+l. 8=6. 8The value of the 7 a++ expression is the value before the change of a, and, of course, a itself is increased by 18 assign 10 to variable B。
C语言答案(删减版)
C语言答案()第一章C语言程序设计基础习题参考答案1-1 冯·诺依曼体系结构的基本原理:五大构成部分:输入、输出、CPU、控制器、存储器;程序存储、自动执行、逻辑判断功能;二进制的信息表示。
1-6 编辑、编译、链接、执行。
1-7 必须有一个主函数,它是程序执行的起点;一个C语言程序由函数构成;每一条可执行语句都必须由分号结束;函数的代码段必须由花括号对括住。
一个函数中的语句组由声明区和可执行语句区两部分构成。
1-8 三个一缩;每遇到一个结构时均缩格,每结束一个结构时回退;缩格格式必须对齐。
1-9 试给出以下问题的程序设计过程描述:1) 求两个数中之最大者。
#include<stdio.h>int main(void){float fA,fB;clrscr();printf("Please input two values(fA,fB)::"); /*输入要比较的两个数fA,fB*/scanf("%f,%f",&fA,&fB); /*格式化输入fA,fB*/if(fA>=fB) printf("the max is %f",fA);if(fA<fB) printf("the max is %f",fB);return 0;} /*main()函数结束*/2) 求三个数中之最大者。
#include<stdio.h>int main(void){float fA,fB,fC,fMax;printf("Please input three values(fA,fB,fC)::");/*fA,fB,fC是输入的3个数,fMax存放最大值*/scanf("%f,%f,%f",&fA,&fB,&fC);fMax=fA;/*假定fA最大*/if(fMax<fB) fMax=fB;if(fMax<fC) fMax=fC;printf("The max is %f\n",fMax);/*输出最大值*/return 0;} /*main()函数结束*/3) 求1+2+3+…+100,即。
C语言程序设计基础第一章习题答案
5、C(参考P9,2.编译)
二、填空题
1、函数
2、.c;.obg;.exe
3、机器语言;汇编语言;高级语言;机器语言;高级语言
4、顺序结构;选择结构;循环结构
5、当型循环;直到型循环
三、问答题
1、答:所谓程序就是一组计算机能够识别和执行的指令;程序设计是指利用计算机解决问题的全过程。
2、答:源程序:用高级语言编写的程序;
目标程序:把源程序翻译成的二进制程序;
可执行程序:把目标程序和与系统的函数库以及其他目标程序连接起来形成的程序。
3、答:参考P4
四、编程题
1、答:
#include”stdio.h”
int main()
{
printf(“Happy new year!\n”);
}
2、答:
#include”stdio.h”;
scanf("%d%d",&a,&b);
if(a<b)printf("min=%d\n",a);
else printf("min=%d\n",b);
}
第一章(P14)
一、选择题
1、B(P14小结中的第三段)
2、D(参考P9,3.链接部分的内容)
3、A(B选项,“{}”除了做可以作为函数体的定界符意外还可以作为一个程序块的分节符等;C选项,不是所有的奇函数可以由用户命名的如”main“函数;D选项,分号是C语句的必要组成部分,是不可缺少的。)
《C语言开发入门教程》—习题答案
《C语言开发入门教程》习题答案第1章初识C语言一、填空题1、汇编语言、高级语言2、。
c3、Stadio、h4、return5、编译、链接二、判断题1、×2、√3、×4、√5、√三、选择题1、A2、B3、C、D4、D5、B四、简答题1、printf(),该函数用于输出一行信息,能够简单理解为向控制台输出文字或符号等。
printf()括号中的内容称为函数的参数,括号内能够看到输出的字符串“Hello, world\n”,其中“\n"表示换行操作,它可不能输出到控制台。
2、注释是对程序的某个功能或者某行代码的解释说明,它只在C语言源文件中有效,在编译时会被编译器忽略、五、编程题1、参考答案#include<stdio、h〉void main(){printf(”我喜爱C语言!");ﻩgetchar(); //等待输入一个字符,起到让运行结果界面暂停}第2章数据类型与运算符一、填空题1、0、0x/0X2、下划线3、原码、反码、补码4、构造类型、空类型5、获取数据字节数二、判断题1、×2、×3、√4、×5、√三、选择题1、A、B、D 2、B 3、B4、C5、D四、简答题1、在C语言中依照运算符进行运算需依照变量的个数能够将运算符分为单目运算符、双目运算符和三目运算符,其区别与示例如下表:2、在进行自增(++)和自减(——)的运算时,假如运算符(++或—-)放在操作数的前面则是先进行自增或自减运算,再进行其他运算。
反之,假如运算符放在操作数的后面则是先进行其他运算再进行自增或自减运算。
五、编程题1、参考答案#include〈stdio、h>void main(){ﻩfloat a = 1。
5, b= 2。
6, h =5;ﻩfloat s;ﻩs= (a +b)*h;ﻩprintf(”梯形的面积为:%、2f\n", s); //%。
c语言课后答案-电子科技大学出版社Word版
将A中的醋倒入C
将B中的酱油倒入A
将C中的醋倒入B
2.输入一个数放在a中
max = a
以下步骤重复9次:
输入一个数放在a中
如果a>max,max=a
打印max的值
3.如果a<b
temp=a
a=b
b=temp
如果c>a
temp = a
a=c
c=temp
否则
如果c>b
temp=b
b=c
c=temp
2.顺序结构,分支结构,循环结构
3.所谓算法就是为解决一个问题而采取的方法和步骤。
算法的特性:有穷性、确定性、输入、输出、可行性。
表示算法的方式:(1)用自然语言表示;(2)用流程图表示;(3)用N—S流程图表示;(4)用伪代码表示;(5)用计算机语言表示。
二、算法
1.瓶子A里盛有醋
瓶子B里盛有酱油
int g,s,b;//个位、十位、百位
printf("水仙花数有:\n");
for(a=100;i<=999;a++)
{g=a%10;
s=a/10%10;
b=a/100;
if (a==g*g*g+s*s*s+b*b*b)
printf("%d ",a);
}
printf("\n");
}
4、
main()
}
2.main()
{
int a,b,c;
scanf(“%d%d%d”,&a,&b,&c);
printf(“sum=%d”,a+b+c);
C语言课后习题答案
1.1选择题:⑴一个C程序的执行是(A)。
A)从main()函数开始,直到main()函数结束B)从第一个函数开始,直到最后一个函数结束C)从第一个语句开始,直到最后一个语句结束D)从main()函数开始,直到最后一个函数结束⑵计算机能直接执行的语言是(B)。
A)汇编语言B)机器语言C)高级语言D)A和B⑶一个C程序是由(C)。
A)一个主程序和若干子程序组成B)若干过程组成C)一个或多个函数组成D)若干子程序组成⑷下列说法正确的是(B )。
A)C程序书写格式限制严格,一行内必须写一个语句B)C程序书写比较自由,一个语句可以分行写在多行上C)C程序书写格式限制严格,要求一行内必须写一个语句,并要求行号D)C程序中一个语句不可以分写在多行上1.2填空题:⑴构成C语言程序的基本单位是函数。
⑵C语言源程序文件的后缀是.c,经过编译后,生成文件的后缀是,obj,经过连接后,生成文件的后缀是.exe。
⑶在TURBO C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是.exe。
⑷一个C语言程序必须有而且只能有一个主函数,它的函数名为main。
⑸一个函数有两部分组成,第一部分称为函数首部;第二部分称为函数体。
⑹函数体由符号{开始,用符号}结束。
函数体的前面是声明部分,其后是执行部分。
1.3上机编辑、调试、运行下列程序,发现错误,并改正之。
/*求1 + 2 + 3 + ……+ 10的和*/#include <stdio.h>main(){int sum,n;sum = 0;n = 1;while(n < 10){sum = sum + n;n = n + 1;}printf("sum = %d \n",sum);}2.1选择题⑴ 在以下标识符中,( B )是合法的用户标识符。
A ) a#bB ) getchC ) voidD ) ab*⑵ 不合法的八进制数是( B )。
C语言基础知识习题答案——第一章
第一章C语言基础知识一,选择题1 答案是AA正确B {}可以作为复合语句的标志C main 函数不是用户命名的D 分号是语句结束的标志,肯定是语句的一部分做这个题目需要对书上的概念透彻的理解2 答案是AA 错误用户标识符:命名时,标识符的选择由用户自定,但是不能与关键字相同,所以A选项错误。
这个题目考察用户标识符3 答案是B用户标识符是标识符,所以可以是有下划线,但是中划线不属于字母,数字,下划线其中一种。
这个题目考察用户标识符的概念。
4 答案是Bdefine 是预定义标识符,而预定义标识符可以是用户标识符,所以define可以是用户标识,if 是关键字,而关键字不能是用户标识符,所以if不可以是用户标识符5 答案是Dlong 是关键字,参照附录二注:6--13 考察用户标识符概念6 答案是DD答案以数字2开头了,不符合标识符定义7 答案是CC答案以数字开头了8 答案是Dint 是关键字9 答案是B答案A 是关键字,答案C是以数字开头了,不符合概念,答案D出现了小数点10 答案是A答案A出现了小数点11 答案是C答案C 以数字开头了12 答案是AB答案中float 是关键字,C答案中3c以数字3开头了,D答案中-5d 中- 不属于字母,数字,下划线中一种13 答案是AB答案中-max中-错误,C答案中3COM以字母3开头了,D答案中int 是关键字,不是用户标识符14 答案是BA答案中15. 后面不应该有点,C答案中出现了逗号,D中字母B有问题15 答案是DVisual C++6.0中int类型的变量占的字节数为4。
16 答案是BB中出现了8,而八进制只能有0到7组成17 答案是D答案D中开头是0不是o18 答案是C答案A中E后面是整数,0.5是小数答案B 中E后面不能为空答案D中E前面不能为空本题目考察指数的表示形式19 答案是C答案A中2.0有问题,不能为小数形式答案B中E前面不能为空答案D中E后面不能为空本题目考察指数的表示形式20 答案是AB中八进制中不能出现数字8,C中e后面不能是小数,D中e后面不能为空21 答案是BB中0.4是小数,不正确22 答案是CC中0.5是小数,不正确23 答案是D3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8本题目考察算术运算符,需要注意整数除以整数结果只能是整数24 答案是D%不能用于实型的计算25 答案是DD答案中$不属于字母,数字,下划线26 答案是AA答案是逗号表达式,B答案中x+1=y是赋值表达式,左边只能是变量,而这里是x+1, 同理答案C中x+10也是错误的,在D答案中,考察的是强制类型转换,正确的是(double)x/1027 答案是A本题考察的是注释需要注意的地方,具体解答见课本第2页中间部分28 答案是B答案A中n2没有定义,答案C中在定义f之前不能使用它,答案D 中E后面必须是整数29 答案是C考察的是强制类型转换,正确的是k%(int)f30 答案是D本题目类似与第七课时的例一,解题方法是要抓住++m,--n,--m,表达式的值是变量变化之后的值,而n--表达式的值是变量n变化之前的值31 答案是B本题目考察的是负整数与无符号正整数在计算机中存放的格式的一样的,但表示的不同的两个数32 答案是CA答案中%运算对象不能为实型,26.8错误,B答案中考察的赋值运算符,赋值运算符左边必须是变量,所以赋值运算符左边1+2错误,同理答案D错误33 答案是C本题目考察的是课本第15页的关于自加与自减运算符的第一点说明,即增量运算符的运算对象只能是变量,而在C答案中++(i+1)中,i+1是表达式34 答案是B本题目考察的是整数除以整数结果是整数,在B答案中1/2结果是0,导致整个表达式的值是0,明显是错误的35 答案是D对于++、--单目运算符来说,其运算对象可以是char型、int型和float 型变量36 答案是A本题目主要考察n++表达式的值是n变化之前的值,然后使n的值增加137 答案是Bc=a/b+0.4 c=8/5+0.4 c=1+0.4 c=1.4 因为c 是int 型的,所以c的值是1 ,做此题目需要仔细阅读题目38 答案是D(int)a+b/b=(int)5.5+2.5/2.5=5+1.000000=b=6.000000同样a,b的类型是double型的39 答案是Dlong 和short不能相互修饰40 答案是C标识符中不能有$41答案是CA选项中,在变量赋值时不能赋给表达式,而y*5是表达式;选项B 中进行强制类型转换时,类型标识符要加上括号,所以错误;选项D 中,%(求余运算符)运算对象只能是整形数。
C语言一至二章课后题答案
}
6.计算下列表达式的值。
(1)(1+3)/(2+4)+8%3(2)2+7/2+(9/2*7)
(3)(int)(11.7+4)/4%4(4)2.0*(9/2*7)
解答:(1)2(2)33(3)3(4)56.000000
7.阅读程序,写出输出结果.
(1) #include <stdio.h>
(4)反复工作直到编译能正确完成,编译中发现的错误都已排除,所有警告都已处理,这是就可进行程序连接,如果发现错误,就返回第(2)步,修改程序后重新编译。
(5)正常连接产生可执行程序后,可开始程序的调试执行。此时需要一些实际数据考查程序的执行效果。如果执行中出现问题,或发现结果不正确,那么就要设法确定错误的原因,回到前面的步骤:修改程序,重新编译,重新连接等等。重复上述过程直到程序正确为止。
2.将下面的数学表达式写成C语言的表达式
(1) (2) (3) (4)其中G=6.637*103 (5)
解答:(1)(小数点后保留两位有效数字)
(2)
(3)
(4)
(5)(小数点后保留两位有效数字)
3.设a=6,b=4写出下列运算符表达式的结果
(1)b+=3 (2)a++ (3)10==a+b (4)b=a+6
}
说明:当几个类型不一致的数据在进行运算时,系统将自动进行类型转换,即把赋值语号右边的类型换成左边的类型,即浮点型富裕整型,舍去小数部分。
9.试编写一个程序实现匀减速直线运动的位移,从键盘上输入物体运动的初速的,运动的加速度以及时间,最终将位移显示到屏幕上。
C语言课后习题答案
第一章习题答案一、选择题1~5:BDCDA 6~10:DABBB 11~12:CC二、填空题1、main()2、函数首部,函数体3、函数4、编辑、编译、连接、运行5、.cpp、.obj、 .exe6、; 或分号三、编程题#include <stdio.h> /* 包含标准库的信息 */void main() /* 定义名为main 的函数,它不接受参数值 */{ /* main函数的语句都被括在花括号中 */printf("hello, world\n");/* main 函数调用库函数printf 以显示字符序列,其中\n代表换行符 */}第二章习题答案一、选择题1~5:CBABB 6~10:CDCDD 11~15:CADBC 16~20:BDAAD二、填空题1、整型,实型,字符型,枚举类型2、13、94、123535145、2,16、2,27、10 20 08、a=149、2,3,110、double第三章习题答案一、选择题1~5:CBBBC 6~10:DDDBB二、填空题1、控制语句,表达式语句,复合语句2、;3、{}4、15、a6、c:dec=120,oct=170,hex=78,ASCII=x7、32767,327678、10,A,109、3 310、(1) 123.456001(2) □□□□□□□ 123.456(3) 123.4560(4) 8765.456700(5) □□□□□□ 8765.457(6) 8765.4567(7) 8765.4567三、编程题1、参考答案:#include <stdio.h>void main(){int a,b,c;long int u,n;float x,y,z;char c1,c2;a=3;b=4;c=5;x=1.2;y=2.4;z=-3.6;u=51274;n=128765;c1='a';c2='b';printf("\n");printf("a=%2d b=%2d c=%2d\n",a,b,c );printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x, y,z);printf("x+y=%5.2f y+z=%5.2f z+x=%5. 2f\n",x+y,y+z,z+x);printf("u=%6ld n=%9ld\n",u,n); printf("c1='%c'or %d(ASCII)\n",c1,c1);printf("c2='%c'or %d(ASCII)\n",c2,c2);}2、参考答案:#include <stdio.h>void main(){float a, b, c, t;printf("please input a,b,c:\n"); scanf ("%f, %f, %f", &a, &b, &c);t=(a+b+c)/3;printf ("averageof %6.2f、%6.2f and %6.2f is %6.2f\n",a,b,c,t);}3、参考答案:#include <stdio.h>main(){int R, d;float s;printf("请输入圆的半径");scanf("%d",&R);d=2*R;c=2*3.14159*R;printf("d=%d,c=%f\n",d,c);}4、参考答案:#include <stdio.h>void main(){int h, f, x, y; /* x为鸡的数量,y为兔的数量 */printf("请输入鸡兔的总头数h,总脚数f:");scanf("%d%d", &h, &f);x=(4*h-f)/2;y=(f-2*h)/2;printf("笼中有鸡%d 只,有兔%d只。
C语言课后习题部分答案(哈工大)
第一章:1.2答:控制器、运算器、存储器、输入设备和输出设备。
第二章:2.2(1)C(2)B(3)A(4)B(5)D(6)D(7)D(8)CB第三章3.2(1)C(2)D3.3(1)在scanf函数中,参数应是两个变量的地址。
scanf(“%d,%d”,&a,&b);(2) 数据输出格式与数据类型不相配printf(“%f”,f);(3) 数据输入格式与数据类型不相配scanf(“%lf%ld”,&var,&a);(4)在scanf输入格式控制串中多了\n,a和b前面少了&scanf(“%d,%d”,&a,&b);(5)%f的输入格式不应有精度控制Scanf(“%5f”,&f);(6)程序输入错误使变量a,b的值不是6,2输入a=6,b=2(回车)3.4(1)aabbccabc(2)0 1 1(3)68(4)3.500000(5)12 913 9(6)12 913 93.5因为1/2在C语言中的值为零,S始终是零,结果错误。
#include<stdio.h>#include<math.h>main()float a,b,c;float s,area;printf("Input a,b,c:");scanf("%f,%f,%f",&a,&b,&c);s =1.0/2*(a+b+c);area = sqrt(s*(s-a)*(s-b)*(s-c));printf("area=%.2f\n",area);getch();}第四章4.2(1)D(2)B(3)D(4)D4.3(1)over!(2)right(3)right(4)right?(5)1,abcdefg$abcdefgEnd!2,abcdefgEnd!(6)************************(7)*#*#*#$4.4(1)1,(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) 2,flag(2)1,(ch >= …a‟ && ch <= …z‟) || (ch >= …A‟ && ch <= …Z‟) 2,ch <= …9‟ && ch >= …0‟3,ch = …‟(3)1,fahr2,Celsius = 5.0 / 9 * (fahr - 32)3,fahr = fahr + step4.15#include<stdio.h>#include<math.h>main()int n = 1,count = 1;double e = 1.0,term = 1.0;while(fabs(term) >= 1e-5){term = term / n;e = e + term;n++;count++;}printf("e=%f,count=%d\n",e,count);getch();}4.18#include<stdio.h>main(){int i,j,k,n;printf("result is:");for(n=100; n<1000; n++){i = n/100;j = (n-i*100)/10;k = n%10;if(i*100 + j*10 + k==i*i*i + j*j*j + k*k*k){printf("%d\t",n);}}printf("\n");getch();}4.19#include<stdio.h>#include<math.h>main(){int i1,i2,i3,i4,k,n;printf("Input data is:");scanf("%d",&n);k = fabs(n);i1 = k / 1000;i2 = (k - i1 *1000)/100;i3 = (k-i1*1000-i2*100)/10;i4 = k % 10;printf("The sum of the total bit is %d\n",i1+i2+i3+i4);getch();}4.20#include<stdio.h>main(){int x = 0;do{x++;}while(!(x%5==1 && x%6==5 && x%7==4 && x%11==10));printf("x=%d\n",x);getch();}4.22#include<stdio.h>main(){int i,j,k;for(i=0; i<=3;i++){for(j=0;j<=3;j++){for(k=0;k<=6;k++){if(i+j+k==8){printf("i=%d,j=%d,k=%d\n",i,j,k);}}}}getch();}4.23#include <stdio.h>main(){int x,y;for (x=1; x<=97; x++){y=98-x;if(2*x + 4*y == 386){printf("x=%d, y=%d\n",x, y);}}getch();}4.24#include<stdio.h>main(){int x,y,z;for (x=0; x<=20; x++){for(y=0; y<=33; y++){z = 100 - x - y;if (5*x + 3*y + z/3.0 == 100){printf("x=%d, y=%d, z=%d\n", x, y, z);}}}getch();}。
(完整版)C教材习题答案(1-8章)
main()
{
int score;
char ch;
printf("请输入一个百分制分数:");
scanf("%d",&score);
if(score>100 || score<0){
printf("非法输入!\n");
return 0;
}
switch(score/10) {
#include<math.h>
main(){
float s=0;
int i,j,n,t;
printf("请输入n的值:");
scanf("%d",&n);
for(i=1;i<=n;i++){
t=1;
for(j=1;j<=i;j++)
t*=j;
s+=1.0/t;
}
printf("%.2f\n",s);
}
2.输出100以内所有能被13和17整除的数。
#include<stdio.h>
main(){
int i;
for(i=1;i<=100;i++)
if(i%13==0 || i%17==0)
printf("%4d",i);
}
3整元换零钱问题。把5元兑换成1角,2角,5角的硬币,一共有多少种换法,编写求解此问题。
printf("5角:%d个\t2角:%d个\t1角:%d个\n",i,j,k);
n++;
C语言课后习题答案(第1-8章)
C语言课后习题答案(第1-8章)1.有的编程题答案有多种,只给出一种参考答案。
2.结合课本学习编程思想与技巧。
第一章C语言概述一、简答题1.(1)语言简洁、紧凑,使用方便、灵活;(2)运算符丰富;(3)具有丰富的数据类型;(4)具有结构化的控制语句;(5)语法限制不太严格,程序设计自由度大;(6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接访问硬件;(7)生成目标代码质量高,程序执行效率高;(8)用C 语言写的程序可移植性好,基本上不作修改就能用于各种型号的计算机和各种操作系统。
2.顺序结构,分支结构,循环结构3.所谓算法就是为解决一个问题而采取的方法和步骤。
算法的特性:有穷性、确定性、输入、输出、可行性。
表示算法的方式:(1)用自然语言表示;(2)用流程图表示;(3)用N—S流程图表示;(4)用伪代码表示;(5)用计算机语言表示。
二、算法1.瓶子A里盛有醋瓶子B里盛有酱油有一个空瓶C将A中的醋倒入C将B中的酱油倒入A将C中的醋倒入B2.输入一个数放在a中max = a以下步骤重复9次:输入一个数放在a中如果a>max,max=a打印max的值3.如果a<b< bdsfid="85" p=""></b<>temp=aa=bb=temp如果c>atemp = aa=cc=temp否则如果c>btemp=bb=cc=temp打印a,b,c的值4.i=1sum=0以下程序循环100遍: sum=sum+i i=i+1 打印sum 的值5.如果(n 除以3的余数为0 并且 n 除以5的余数为0)n 能够同时被3和5整除否则 n 不能够同时被3和5整除 6.i=101以下语句循环50遍:j=2 flag=1 当j<(i 除以2的整数部分)时循环以下语句:如果i 除以j 的余数为零flag=0 退出该循环如果flag==1 打印i 的值 i=i+2 7.如果m做以下循环,直到m,n 能够被i 整除:如果m 能够被i 整除并且n 能够被i 整除 i 即是m 和n 的最大公约数跳出循环否则 i=i-1 打印i 的值8.data=b*b —4*a*c 如果data >0否则如果data=0 x1=x2=—b/2 否则无实数解三、编程题1.main () { a data b x 2)(1+-=adata b x 2)(2--=printf(“How do you do?\n”);printf(“##############################\n”);}2.main(){int a,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“sum=%d”,a+b+c);}第二章数据类型与表达式一、单项选择题1. B2. C3. A4. A5. D6. B7.A8.C9.D二、写出下列程序的运行结果1.aabb cc abcAN2.ab97983. 9,11,9,104.a=2,b=3,c=25.s1=2.500000s2=3三、编程题main(){char c1='c',c2='h',c3='i',c4='n',c5='a';c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);}第三章顺序程序设计选择题1)B 2)D 3)D 4)A 5)A 6)B 7)B 8)A 9)D 10)C 11)D 12)A填空题1)b 2)261 3)25 21 37 4)abc 5)5.0,4,c=3 6)3编程题#define PI 3.1415926main( ){float h, r, l, sv, sz ;printf(“请输入圆的半径r,圆柱高h:\n”) ;scanf(“%f,%f”,&r, &h) ;l=2* PI *r ;s= PI *r*r ;sv=3.0/4.0* PI *r*r*r ;sz= PI *r*r*h ;printf(“圆周长为:l=%6.2f, 圆面积为:s=%6.2f\n”, l, s) ;printf(“求体积为:sv=%6.2f, 圆柱体积为:sz=%6.2f\n”, sv, sz) ;}2、main( ){float c, f ;printf(“请输入一个华氏温度:\n”) ;scanf(“%f”, &f) ;c=5.0/9.0*(f-32) ;printf(“摄氏温度为:%6.2f\n”, c) ;}第四章循环程序设计一、选择题1.D2.D3.D4.C5.D6.A7.B8.B9.A 10.D.11.B 12.A 13.B 14.C 15.C 16.A 17.A 18.B 19.D 20.D21.A二、填空题1.5858582.03.184.89215.20,06.67.1,3,28.Year%400==0year%100!=0count++三、编程题1.main(){long a;scanf(“%ld”,&a);if (a>=10000&&a<=99999) printf(“这是个五位数”);else if (a>=1000&&a<=9999) printf(“这是个四位数”);else if (a>=100&&a<=999) printf(“这是个三位数”);else if (a>=10&&a<=99) printf(“这是个二位数”);else if (a>=0&&a<=9)printf(“这是个一位数”);elseprintf(“输入错误”);}3.main(){int a;int g,s,b;//个位、十位、百位printf("水仙花数有:\n"); for(a=100;i<=999;a++){g=a%10;s=a/10%10;b=a/100;if (a==g*g*g+s*s*s+b*b*b) printf("%d ",a);}printf("\n");}4、main(){int i,n;printf("input n:");scanf("%d",&n);printf("\n%d=",n);for(i=2;i<=n;i++){while(i!=n)if(n%i==0){printf("%d*",i);n/=i;} else break;}printf("%d\n",n);}5、#include “stdio.h”main(){char c;int w,x,y,z;w=x=y=z=0;while((c=getchar())!=’\n’){if((c>’a’&&c<’z’)||(c>’A’&&c<’Z’)) w++;else if (c==’’)x++;else if (c>’0’&&c<’9’)y++;else z++;}printf(“英文字母个数:%d\n”,w); printf(“空格个数:%d\n”,x);printf(“数字个数:%d\n”,y);printf(“其他字母个数:%d\n”,z); }6、main(){float h=100,t=100;int j;for(j=1;j<10;j++){t=t/2;h=h+t*2;}printf(“共经过:%f 米\n”,h); printf(“第十次反弹%f 米\n”,t/2); }第五章数组一、单项选择题1. B2. A3. C4. C5. D6. B7.C8.B9.C 10. B二、写出下列程序的运行结果1.S=3682.*************************3.S1=18S2=104.!margorP5.数字0的出现次数是:3数字1的出现次数是:2数字2的出现次数是:2数字3的出现次数是:2数字4的出现次数是:0数字5的出现次数是:1数字6的出现次数是:1数字7的出现次数是:1数字8的出现次数是:1数字9的出现次数是:1 三、编程题1.#include "stdio.h" main(){int a[11];int i,j,t;printf("input 10 number:\n");for (i=1;i<11;i++)scanf("%d",&a[i]);printf("\n");for (i=1;i<=9;i++)for (j=1;j<=10-i;j++)if (a[j]<a[j+1])< bdsfid="320" p=""></a[j+1])<> {t=a[j];a[j]=a[j+1];a[j+1]=t;}printf("the sorted number is:\n");for (i=1;i<11;i++)printf("%4d",a[i]);}2.#include "stdio.h"main(){int a[11],i,b;printf("imput 10 sorted number:\n");for (i=0;i<10;i++)scanf("%d",&a[i]);printf("input an integer:\n");scanf("%d",&b);for (i=9;i>=0&&a[i]>b;i--)a[i+1]=a[i];a[i+1]=b;printf("sorted numbers:\n");for (i=0;i<11;i++)printf("%5d",a[i]);}3.#include "stdio.h"main(){int a[5],i,j,t;printf("input 5 integer:\n");for (i=0;i<5;i++) /*输入5个整数*/scanf("%d",&a[i]);for (i=0,j=4;i<="" bdsfid="348" p="">{t=a[i];a[i]=a[j];a[j]=t;}for (i=0;i<5;i++) /*逆序存放后重新输出*/printf("%5d",a[i]);}4.#include "stdio.h"main(){int i,j,a[10][10]={{1},{1,1}};for (i=2;i<10;i++) /*给二维数组每个元素赋值*/ {a[i][0]=1; for (j=1;j<=i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];}for (i=0;i<10;i++) /*输出二维数组*/{for (j=0;j<=i;j++)printf("%-5d",a[i][j]);printf("\n");}}5.#include "stdio.h"main(){int a[3][4],i,j,max,row,col;printf("input 3*4 matrix:\n");for (i=0;i<3;i++) /*输入3*4矩阵*/for (j=0;j<4;j++)scanf("%d",&a[i][j]);max=a[0][0]; row=0; col=0;for (i=0;i<3;i++) /*寻找矩阵中的最大值及其行列号*/ for (j=0;j<4;j++)if (max<a[i][j])< bdsfid="376" p=""></a[i][j])<>{max=a[i][j]; row=i, col=j;}printf("\n数组中最大的数是%d,其行号是%d,列号是%d\n",max,row,col);}6.#define N 3#define M 4#include "stdio.h"main(){int a[N][M],i,j,k,max,row,col;printf("input %d*%d matrix: \n",N,M);for (i=0;i<="" bdsfid="387" p="">for (j=0;j<m;j++)< bdsfid="389" p=""></m;j++)<>scanf("%d",&a[i][j]);for (i=0;i<="" bdsfid="392" p="">{max=a[i][0]; row=i; col=0;for(j=1;j<a[i][j])<="" *求矩阵中每一行的最大值及其所行列号*="" bdsfid="395" if="" p="">{max=a[i][j]; col=j;}for (k=0;k<max)<="" *判断每一行的最大值在其所在列是否最大*="" bdsfid="398" if="" p="">break;if (k==N) /*得到鞍点*/{printf("the point is %d,row=%d,col=%d\n",max,row,col);break;}}if (i==N) /*没有鞍点*/printf("no point\n");}7.#include "stdio.h"{int num=0,word=0;/*word=0表示未出现单词,如出现单词就置word为1.num用来统计单词个数*/char c;printf("please input a string :\n");while ((c=getchar())!='\n')if (c==' ')word=0;else if (word==0){word=1; num++;}printf("There are %d words in the line\n",num);}8.#include "stdio.h"main(){int i,j,uppn,lown,dign,span,othn;/*uppn,lown,dign,span,othn分别存放英文大写字母、小写字母、数字、空格和其他字符的个数*/char text[3][80];uppn=lown=dign=span=othn=0;for(i=0;i<3;i++){gets(text[i]);for(j=0;j<80&&text[i][j]!='\0';j++){if(text[i][j]>='A'&&text[i][j]<='Z')uppn++;else if(text[i][j]>='a'&&text[i][j]<='z')lown++;else if(text[i][j]>='0'&&text[i][j]<='9')dign++;else if(text[i][j]==' ')span++;elseothn++;}}for(i=0;i<3;i++)printf("%s\n",text[i]);printf("uppn=%d\n",uppn);printf("lown=%d\n",lown);printf("dign=%d\n",dign);printf("span=%d\n",span);printf("othn=%d\n",othn);}9.#include "stdio.h"{int i,j;char str1[20],str2[20];printf("input two strings:\n");gets(str1);gets(str2);j=strlen(str1); /*求字符串1的长度*/for (i=0;str2[i]!='\0';i++,j++) /*字符串合并*/ str1[j]=str2[i];str1[j]='\0'; /*加上字符串结束标志*/puts(str1);}10.#include "stdio.h"main(){int i,n;char str1[20],str2[20];printf("input two strings:(no more than 20 characters)\n"); gets(str1); gets(str2);n=strlen(str1)printf("%d\n",str1[i]-str2[i]);}第六章函数与编译预处理一、单项选择题1. C2. B3. B4. B5. A6. B7.A8.C9.D 10. A二、写出下列程序的运行结果1.92.4,B8,B3.-4.0000004.a=6,b=55.48三、编程题1.main(){ int prime(int n);int n;printf("input n(n>0):\n");scanf("%d",&n);if (prime(n))printf("%d is a sushu\n",n);else printf("%d is not a sushu\n",n); }int prime(int n){int flag=1,i;for (i=2;i<=n/2&&flag==1;i++)if (n%i==0) flag=0;return(flag);}2.#define N 3convert(int array[3][3]){ int i,j,t;for (i=0;i<n-1;i++)< bdsfid="507" p=""></n-1;i++)<> for (j=i+1;j<n;j++)< bdsfid="509" p=""></n;j++)<> {t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}main(){int i,j;int a[N][N];printf("input a:\n");for (i=0;i<n;i++)< bdsfid="520" p=""></n;i++)<>for (j=0;j<n;j++)< bdsfid="522" p=""></n;j++)<> scanf("%d",&a[i][j]);printf("Array a:\n");for (i=0;i<n;i++)< bdsfid="526" p=""></n;i++)<> {for (j=0;j<n;j++)< bdsfid="528" p=""></n;j++)<> printf("%5d",a[i][j]);printf("\n");}convert(a);printf("a de zhuanzhi is:\n");for (i=0;i<n;i++)< bdsfid="535" p=""></n;i++)<>{for (j=0;j<n;j++)< bdsfid="537" p=""></n;j++)<>printf("%5d",a[i][j]);printf("\n");}}3. #include#includemain(){char str[100];printf("input a string:\n") ;gets(str);inverse(str);printf("the reversed string is:%s\n",str);}inverse(char str[]){char t;int i,j;for (i=0,j=strlen(str)-1;i<j;i++,j--)< bdsfid="558" p=""></j;i++,j--)<>{t=str[i];str[i]=str[j];str[j]=t;}4. #includeconcat(char str1[],char str2[]){ int i=0,j;while (str1[i]!='\0')i++;for (j=0;str2[j]!='\0';i++,j++)str1[i]=str2[j];str1[i]='\0';}main(){char str1[100],str2[100];gets(str1);gets(str2);concat(str1,str2);puts(str1);}5. main(){char str[80];printf("input a string (4 ge shu zi zi fu):\n"); scanf("%s",str); insert(str);printf("result is:\n%s\n",str);}insert(char str[]){int i;for (i=strlen(str);i>0;i--){str[2*i]=str[i];str[2*i-1]=' ';}6. #include "stdio.h"int i,ndight,nwhite,nletter,nother;count(char str[]){ndight=nwhite=nletter=nother=0;for (i=0;str[i]!='\0';i++)if (str[i]>='0'&&str[i]<='9')ndight++;else if ((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z')) nletter++;else if (str[i]==' ')nwhite++;else nother++;}main(){char text[80];printf("input a string:\n");gets(text);count(text);printf("ndight=%d,nletter=%d,nwhite=%d,nother=%d\n",n dight,nletter,nwhite,nother); }7. #define N 10#includesort(char str[]){int i,j;char t;for (i=1;i<n;i++)< bdsfid="625" p=""></n;i++)<>for (j=0;j<n-i;j++)< bdsfid="627" p=""></n-i;j++)<> if (str[j]>str[j+1]){t=str[j];str[j]=str[j+1] ;str[j+1]=t;}}main(){char str[N];int i ;printf("Input 10 ge zi fu:\n");gets(str);printf("The sorted result:\n") ;for(i=0;i<n;i++)< bdsfid="639" p=""></n;i++)<> printf("%c",str[i]);}8.这题较复杂#include#include#define N 10void input_e(int num[],char name[N][8]){int i;for (i=0;i<n;i++)< bdsfid="651" p=""></n;i++)<> { printf("input gong hao:");scanf("%d",&num[i]);printf("input name:");getchar();gets(name[i]);}for (i=0;i<n;i++)< bdsfid="659" p=""></n;i++)<> printf("%5d%10s\n",num[i],name[i]);}void sort(int num[],char name[N][8]) /*选择法排序*/{int i,j,min,temp1;char temp2[8];for (i=0;i<n-1;i++)< bdsfid="666" p=""></n-1;i++)<> {min=i;for (j=i+1;j<n;j++)< bdsfid="669" p=""></n;j++)<>if (num[j]temp1=num[i];strcpy(temp2,name[i]);num[i]=num[min];strcpy(name[i],name[min]);num[min]=temp1;strcpy(name[min],temp2);}printf("the sorted result:\n");for (i=0;i<n;i++)< bdsfid="681" p=""></n;i++)<>printf("%5d%10s\n",num[i],name[i]);}void search(int n,int num[],char name[N][8]) /*折半查找法*/ { int top,bott,mid,find;bott=N-1;if ((nnum[N-1]))find=-1;while ((find==0)&&(top<=bott)){mid=(bott+top)/2;if (n==num[mid]){find=1; printf("%d name is:%s\n",n,name[mid]);}else if (n<num[mid])< bdsfid="695" p=""></num[mid])<> bott=mid-1;else top=mid+1;}if ((find==-1)||(find==0))printf("%d is not found.\n",n);}main(){int num[N],number,c,flag;char name[N][8];input_e(num,name);sort(num,name);for (flag=1;flag;){printf("please input chazhao de gonghao:"); /*输入查找的工号*/ scanf("%d",&number);search(number,num,name);printf("continue Y/N?"); /*是否继续查找*/getchar();c=getchar();if (c=='N'||c=='n')flag=0;}}9. #include "stdio.h"#define MAX 10main(){char str[MAX];char c;int i;i=0;printf("input number(16 jinzhi): "); /*输入一个十六进制的数*/while((c=getchar())!='\n'&&i<max)< bdsfid="727" p=""></max)<>{ str[i]=c;i++;printf("result is :%d\n",htod(str));}int htod(char s[]){int i,n;n=0;for(i=0;s[i]!='\0';i++){if (s[i]>='0'&&s[i]<='9')n=n*16+s[i]-'0';if (s[i]>='a'&&s[i]<='f')n=n*16+s[i]-'a'+10;if (s[i]>='A'&&s[i]<='F')n=n*16+s[i]-'A'+10;}return(n);}10. #define SW AP(a,b) t=a;a=b;b=t main(){int a,b,t;printf("input a,b:") ;scanf("%d,%d",&a,&b);SW AP(a,b);printf("result:a=%d,b=%d\n",a,b);}11. #define SURPLUS(a,b) ((a)%(b)) main(){int a,b;printf("input a,b:");scanf("%d,%d",&a,&b);printf("result is: %d\n",SURPLUS(a,b)); } 12. main(){int a,b,c;printf("input a,b,c:");scanf("%d,%d,%d",&a,&b,&c);printf("max=%d\n",max(a,b,c));}int max(int x,int y,int z){int t;t=(x>y ? x : y);return(t>z?t:z);}#define MAX(x,y) ((x)>(y)?(x):(y)) main(){int a,b,c;printf("input a,b,c:");scanf("%d,%d,%d",&a,&b,&c);printf("max=%d\n",MAX(MAX(a,b),c)); }13. #include "stdio.h"#define CHANGE 1#define MAX 80main(){char str[MAX];int i;printf("input a string:\n");gets(str);#if (CHANGE){ for (i=0;str[i]!='\0';i++)if (str[i]>='a'&&str[i]<'z'||str[i]>='A'&&str[i]<'Z')str[i]=str[i]+1;else if (str[i]=='z'||str[i]=='Z')str[i]=str[i]-25;}#endifprintf("%s\n",str);}第七章指针一、选择题1)A 2)D 3)D 4)C 5)B 6)B 7)B 8)C 9)B 10)C 11)A 12)A 13)A 14)C 15)B 16)A 17)C 18)B 19)D 20)B二、阅读下面程序,写出程序运行结果1)abcdeedcba 2)1113151719 3)(TurboC中是11,9 7,11 )(VisualC是9,9 7,11)4)3 6 5)6385三、编程题1、main( ){ int a[10],i,temp,*p=a;printf("Please input array a:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]);printf("array a:\n");for(i=0;i<10;i++)printf("%4d",a[i]);for(i=0;i<5;i++){ temp=p[i];p[i]=p[10-i-1];p[10-i-1]=temp;}printf("\n Now array a:\n");for(i=0;i<10;i++)printf("%4d",a[i]);}2、main( ){ int a[3][3],*p,i,j;printf("please input matrix:\n"); for(i=0;i<3;i++) for(j=0;j<3;j++)scanf("%d",&a[i][j]);p=&a[0][0];move(p);printf("\n Now matrix:\n");for(i=0;i<3;i++){ for(j=0;j<3;j++)printf("%4d",a[i][j]);printf("\n");}}move(int *q){ int i,j,t;for(i=0;i<3;i++)for(j=i;j<3;j++){ t=*(q+3*i+j);*(q+3*i+j)=*(q+3*j+i); *(q+3*j+i)=t;}}3、#include#include。
C语言-课后题答案
第三章
3.用下面的scanf函数输入数据,使a=3, b=7, x=8.5, y=71.82, c1='A', c2='a'。问在键盘上如何输入?
解:
#include<stdio.h>
void main()
{
int a, b; float x, y; char c1, c2;
{
char c1,c2;
c1=getchar();
c2=getchar();
printf("c1=%d c2=%d\n",c1,c2);
printf("c1=%c c2=%c\n",c1,c2);
}
第四章
3. 写出下面各逻辑表达式的值。设a=3,b=4,c=5。
printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);
break;
case 4: printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);
printf("最大数为: %d",max);
}
第二章
1.假如我国国民生产总值的年增长率为10%,计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式为P=(1+r)^n,r为年增长率;n为年数;P为与现在相比的百分比。
解:
#include<stdio.h>
#include<math.h>
void main()
{
double P, r=0.1, n=10;
C语言第一章习题带答案
练习1-1答案选择题1.下列4组字符串中都可以用作C语言程序中的标识符的是( D )。
A.print 3d oodb B.I\m one_half start$itC.Pxq my->book line# D.str_1 Cpp into2.下面的说法正确的是( C )。
A.C程序由符号构成B.C程序由标识符构成C.C程序由函数构成D.C程序由C语句构成3.与十进制数35相等的二进制数是( A )。
A.100011 B.01001 C.100110 D.1001014.与47值相等的十六进制数是( A )。
A.2F B.215 C.32F D.115 5.(01101)2 + (101101)2的值是( B )。
A.(101010)2 B.(3A)16 C.(2A)16 D.576.将15向左移动2位后的值是( D )。
A.(3C)16 B.(00111100)2 C.(60)10 D.都正确7.将250与5进行按位与的结果是( A )。
A.0 B.1 C.(FF)16 D.(F0)168.将(AF)16与(78)16进行按位异或的结果是( A )。
A.(D7)16 B.(28)16 C.(D8)16 D.(27)169.将(717)8按位取反的结果是( B )。
A.(110001)2 B.(060)8 C.(60)10 D.都不正确练习2-1答案选择题1.C语言中的简单数据类型包括( B )。
A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型2.在C语言中,错误的int类型的常数是( A )。
A.32768 B.0 C.037 D.0Xaf3.下列常数中不能作为C的常量的是( D )。
A.0x45 B.2.5e-2 C.3e2 D.05824.设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是( B )。
A.0至255 B.0~65535 C.-32768~32767 D.-256~2555.下面4个选项中,均是合法转义字符的选项是( A )。