第2章C语言部分习题答案

合集下载

c语言程序设计第二章课后参考答案

c语言程序设计第二章课后参考答案

第二章:C程序的基本结构一、单项选择题1、以下不是C语言的特点的是________。

A)语言的表达能力强B)语言定义严格 C)数据结构系统化 D)控制流程结构化2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。

A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行3、以下不是二进制代码文件是________。

A)标准库文件 B)目标文件C)源程序文件 D)可执行文件4、下面个选项组中,均属于C语言关键字的一组是________。

A)auto,enum,include B)switch,typedef,continueC)signed,union,scanf D)if,struct,type5、下面四组字符串中,都可以用作C语言标识符的是________。

A)print B)I \am C)signed D)if_maf scanf 3mf ty_prmx_2d mx_ a.f x1#aMb6 AMB A&B 5XY6、以下不属于流程控制语句的是_________。

A)表达式语句 B)选择语句 C)循环语句 D)转移语句7、下面描述中,不正确的是________。

A)C语言的函数体由一系列语句和注释组成。

B)注释内容不能单独写在一行上。

C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。

D)scanf和printf是标准库函数而不是输入和输出语句。

8、下面描述中,正确的是________。

A)主函数的花括号必须有,而子函数中的花括号是可有可无的。

B)一个C程序行只能写一个语句。

C)主函数是程序启动时的唯一入口。

D)函数体包含了函数说明部分。

二、填空题1、一个完整的C程序至少要有一个________函数。

(主函数)2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。

(编译系统)3、C语言是以________为基本单位、整个程序由________组成。

答案第二章 C语言程序设计的初步知识

答案第二章  C语言程序设计的初步知识

第二章 C语言程序设计的初步知识一、选择题1.在C 语言中,下列类型属于构造类型的是 D 。

(0级)A)整型B)字符型C)实型D)数组类型2.在C 语言中,下列类型属于构造类型的是D 。

(0级)A)空类型B)字符型C)实型D)共用体类型3.在C 语言中,下列类型属于构造类型的是 D 。

(0级)A)整型B)指针类型C)实型D)结构体类型4.在C 语言中,下列类型属于基本类型的是 A 。

(0级)A)整型、实型、字符型B)空类型、枚举型C)结构体类型、实型D)数组类型、实型5.下列类型属于基本类型的是 C 。

(0级)A)结构体类型和整型B)结构体类型、数组、指针、空类型C)实型D)空类型和枚举类型6.下列字符串属于标识符的是 A 。

(0级)A)INT B)5_student C)2ong D)!DF7.下列字符串属于标识符的是 A 。

(0级)A)_WL B)3_3333 C)int D)LINE 38.下列字符串不属于标识符的是 D 。

(0级)A)sum B)average C).day_night D)M.D.JOHN9.下列字符串不属于标识符的是 D 。

(0级)A)total B)lutos_1_2_3 C)_night D)$ 12310.下列字符串不属于标识符的是D 。

(0级)A)_above B)all C)_end D)# dfg11.C语言中不能用来表示整常数的进制是 D 。

(0级)A)十进制B)十六进制C)八进制D)二进制12.C语言中能用来表示整常数的进制是 A 。

(0级)A)十进制、八进制、十六进制B)十二进制、十进制C)六进制、八进制D)二进制、十进制13.在C语言中,回车换行符是 A 。

(0级)A)\n B)\t C)\v D)\b14.在C语言中,退格符是 D 。

(0级)A)\n B)\t C)\v D)\b15.在C语言中,反斜杠符是 D 。

(0级)A)\n B)\t C)\v D)\ \16.在ASCII码表中可以看到每个小写字母的ASCII码比它相应的大写字母的ASCII 码 A 。

c语言与程序设计-第2章课后习题参考答案

c语言与程序设计-第2章课后习题参考答案

2.1 下列哪些是词法记号?关键字(是)注释空白符八进制常量(是)三字符序列字符串常量(是)括号(是)2.2 C编译器可将下列每一个源字符串分解为哪些记号?(不必考虑记号组合是否合法)(1)x+++y x, ++, +, y(2)-0xabL -, 0xabL(3) 2.89E+12L 2.89E+12L(4)"String+\"FOO\"" " String+ \"FOO\""(5)x**2 x, *, *, 2(6)"X??/" "X??/"(7)a?b a, ?, b(8)x--+=y x, --, +=, y(9)intx=+10 intx, =, +, 10(10)"String""FOO" "String", "FOO"(这道题当时改的时候有几个小题改得有错误,注意!)2.3 下列哪些不是标识符,为什么?标识符由字母、数字和下划线组成,但首字符必须是字母或下划线。

4th 不是,以数字开头;sizeof 不是(标准C的关键字)_limit 是_is2 是xYshould 是x*y 不是,* 非法o_no_o_no 是temp-2 不是,- 非法isn't 不是,' 非法enum 不是(标准C的关键字。

注:关键字也称为保留字,是被系统赋予特定含义并有专门用途的标识符。

关键字不能作为普通标识符,但可以作为宏名。

所有预处理均发生在识别这些关键字之前。

)2.4 在下列表示中,哪些是合法常数,哪些是非法常数?对于合法常数,指出其类型;对于非法常数,说明其错误原因。

2L 合法,long长整型''' 不合法,单引号组中的单引号前需要转义字符.12 合法,double双精度浮点型0x1ag 不合法,g不是16进制数中的符号,也不表示任何类型33333 合法,int整形"a" 合法,字符串常量"" 合法,字符串常量0.L 合法,long double长双精度浮点型E20 不合法,缺少尾数部分0377UL 合法,unsigned long无符号长整型'\18' 不合法,存在非8进制位'\0xa' 不合法,不符合十六进制字符码表示规则\xhh0x9cfU 合法,unsigned int无符号整形'\45' 合法,char字符型1.E-5 合法,double双精度浮点型'\0' 合法,char字符型3.F 合法,float浮点型"3'4"" 不合法,缺少转义符'"' 合法,char字符型(P35,双引号作为字符常量时既可用图形符号也可用转义序列表示)'\a' 合法,char字符型2.6 以下的变量声明语句中有什么错误?(1)int a; b = 5; 第一个分号改为逗号int a, b=5;(2)doubel h; 关键字错误double h;(3)int x = 2.3; 类型错误float x = 2.3;(4)const long y; 需要赋初值const long y = 0;(5)float a = 2.5*g; g未定义变量int g = 1; float a = 2.5*g;(6)int a = b = 2; b未定义变量int a = 2, b = 2;2.7 设变量说明为:int a = 1, b = 2, c = 3, d;double x = 2.0; y = 7.7;请给出下列表达式的值。

C语言_分章节练习_带答案_第二章_数据类型

C语言_分章节练习_带答案_第二章_数据类型

C语言_分章节练习_带答案_第二章_数据类型[单选题]1.C 语言中(以16 位PC 机为例),各数据类型的存储空间长度的排列顺序为。

A)char<int<long<=float<doubleB)char=int<long<=float<doubleC)char<int<long=float=doubleD)char=int=long<=float<double答案:A解析:2.若x、i、j 和k 都是int 型变量,则计算下面表达式后,x 的值为。

x=(i=4,j=16,k=32)A)4B)16C)32D)52答案:C解析:3.假设所有变量均为整型,则表达式(a=2,b=5,a+b++,a+b) 的值是。

A)7B)8C)5D)2答案:B解析:4.语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符。

A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母、数字和下划线中的任一种字符答案:C解析:5.下面正确的字符常量是。

A)"c"B)'\\''C)'W'D)""答案:C解析:6.下面不正确的字符串常量是。

A)'abc'B)"12'12"C)"0"D)" "答案:A解析:7.若有代数式3ae/bc,则不正确的C 语言表达式是。

A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*3答案:C解析:8.已知各变量的类型说明如下,则不符合C 语言语法规定的表达式是。

int k,a,b;unsigned long w=5;double x=1.42;A)x%(-3)B)w+=-2C)k=(a=2,b=3,a+b)D)a+=a-=(b=4)*(a=3)答案:A解析:9.已知各变量说明如下,则符合C 语言语法规定的表达式是。

C语言课后习题参考答案

C语言课后习题参考答案

C语言课后习题参考答案第一章:基础知识问题1:C语言的发展历史及特点C语言是由贝尔实验室的肯·汤普逊和丹尼斯·里奇在20世纪70年代初开发的一种高级程序设计语言。

它以其简洁、高效和可移植性而闻名。

C语言被广泛应用于系统级编程、嵌入式系统和科学计算等领域,并成为其他编程语言的基础。

问题2:C语言的基本数据类型及其存储范围C语言的基本数据类型包括字符型(char)、整型(int)、浮点型(float)、双精度浮点型(double)和空类型(void)。

它们的存储范围如下:- char:-128 到 127 或 0 到 255- int:-32,768 到 32,767 或 0 到 65,535- float:3.4E-38 到 3.4E38- double:1.7E-308 到 1.7E308- void:无特定存储范围问题3:如何在C语言中输出语句?在C语言中,可以使用printf函数来输出语句。

它的基本语法为:```cprintf("要输出的内容");```问题4:定义变量的语法规则在C语言中,定义变量的语法规则如下:```c数据类型变量名;```例如,定义一个整型变量x:```cint x;```问题5:如何进行变量的赋值?变量的赋值可以使用赋值运算符(=)。

例如,将一个整型常量10赋值给变量x:```cx = 10;```第二章:控制结构问题1:if语句的语法结构if语句用于根据条件执行不同的代码块。

它的基本语法结构如下:```cif (条件) {// 条件为真时执行的代码}```问题2:switch语句的用法及语法结构switch语句用于根据不同的表达式值执行相应的代码块。

它的基本用法及语法结构如下:```cswitch (表达式) {case 值1:// 当表达式的值等于值1时执行的代码break;case 值2:// 当表达式的值等于值2时执行的代码break;default:// 当表达式的值与所有case都不匹配时执行的代码break;}```问题3:循环语句的分类及语法结构C语言中的循环语句包括for循环、while循环和do-while循环。

C语言课后习题参考答案(前5章)

C语言课后习题参考答案(前5章)

《C语言程序设计基础》书后习题参考答案(无编程题答案,红色为书上错误)第二章习题一、选择题。

1、在C语言中,要求参加运算的数必须是整数的运算符是()A)% B)/ C)!D)*2、若已定义x和y为double类型,则表达式“x=1.0,y=x+3/2”的值是()A)1 B)2 C)2.0 D) 2.53、若变量已正确定义并赋值,符合C语言语法的表达式是()A)a=a+7; B) a=7+b+c,a++ C) int (12.3/4 ) D) a=a+7=c+b4、若有定义:int x=3,y=2;float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为()A)1.0 B)1 C) 2.0 D)25、若x和n均是int型变量,且x的初值为12,n的初值为5 ,则执行表达式x%=(n%=2) 后x 的值为()A) 0 B)1 C) 2 D)36、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为()A)7 B)8 C)9 D)107、指出下列哪一个选项的程序是错误的()A)#include<stdio.h> B) #include<stdio.h>void main( ) void main( ){int x,y,z; {int x,y,z;x=0;y=x+1; x=0,y=x+1;z=x+y; z=x+y;} }C) #include<stdio.h> D) #include<stdio.h>void main( ) void main( ){int x,y,z; {int x,y,z;x=0;y=x+1, x=0,y=x+1;z=x+y; z=x+y,} }8、若a为整型变量,则以下语句( )a=-2L;printf(“%d\n”,a);A)赋值不合法B)输出值为-2 C)输出为不确定值D)输出值为29、若变量a,i已经正确定义,且i已正确赋值,则合法的语句是()A)i=int(a) B) ++i; C)a=a++=5; D) a=int(i);10、若执行以下程序段后,c3的值为()int c1=1,c2=2,c3;c3=1.0/c2*c1;A)0 B)0.5 C)1 D)211、如下程序的运行结果是()#include<stdio.h>void main( ){ int y=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);}A) 3 4 B) 4 2 C) 4 3 D) 3 312、以下程序的输入结果为()#include<stdio.h>void main( ){int i=4,a;a=i++;printf(“a=%d,i=%d’,a,i);}A)a=4,i=4 B)a=5,i=4 C)a=4,i=5 D)a=5,i=513、以下程序的输出结果是()#include <stdio.h>void main( ){ int a=5,b=4,c=6,d;printf(“%d\n”,d=a>b?(a>c?a:c):( b); //多了(}A) 5 B) 4 C) 6 D) 不确定14、在C语言中,如果下面的变量都是int类型,则输出的结果是()sum=pad=5;pad=sum++,pad++,++pad;printf(“%d\n”,pad);A)7 B)6 C)5 D)415、已知int i;float f;,正确的语句是()A)(int f)%i; B)int(f)%i; C) int(f%i); D)(int)f%i;16、已知int j,i=1;执行语句j=-i++;后,j的值是()A)1 B)2 C)-1 D)-217、已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=1.42;则以下不符合C语言语法的表达式是()A)x%(-3) B)w+=-2 C)k=(a=2,b=3,a+b) D)a+=a-=a*(a=3)18、C语言中运算对象必须是整型的运算符是( )A) %= B) / C) = D)<=19、有以下程序main(){ int m=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序运行后的输出结果是( )A)12353514 B)12353513 C)12343514 D)1234351320、下面程序的输出结果是()#include<stdio.h>main( ){int x=5,y=3;printf(“%d\n”,y=x/y); }A)0 B)1 C)3 D)不确定的值21、执行下列程序中的输出语句后,a的值是()#include<stdio.h>void main( ){int a;printf(“%d\n”,(a=3*5,a*4,a+5)); }A) 65 B)20 C)15 D)1022、执行下列程序时输入1234567,程序的运行结果为()#include<stdio.h>main( ){int x,y;scanf (“%2d%2ld”,&x,&y);printf(“%d\n”,x+y); }A)17 B)46 C)15 D)923 、已知char a;int b;float c;double d; 则表达式a*b+c-d结果类型为()A) double B)int C)float D) char二、填空题1、若i为int整型变量且赋值为6,则运算i++后的表达式的值是__6__,变量i的值是___7___。

C语言第二章习题及详解

C语言第二章习题及详解

C语言第二章习题及详解二、第二章1、设整型变量a的值为2,下列表达式值为1的是__。

(A)A)a%3B)a/3=0C)--a D)a++2.设变量a、b、c已定义并赋值,则下列表达式中符合C语言语法规则的是__。

(B)A)a=5++操作数只能是变量B)a=b=c++C)a=%2D)b=a+1=2左边只能是单个变量,即变量1=变量2=。

3.下列式中,最终运算结果的数据类型不是单精度的表达式是__。

(A)A)(int)(3+3.0)B)1e-3fen:n必须为整数C)(float)(3)D)(int)3.0+3.04.字符串”ab\x41\\34cd\102y”的长度是_A_。

\xhh表示ASCII 码:例\x41,41是16进制的。

字符串含有’\0’。

’\102’也表示ASCII码,但102是8进制的,长度为10,储存空间占11个字节。

A)10B)12C)14D)185、变量是在程序运行过程中可改变的它的三要素是类型、名称、数值6.以下选项中合法的常量是?DA)’Internet’B)E_3变量C)02x D)0xfeL7.以下选项中合法的赋值表达式是?CA)d=8+a+f=d+6同2D B)d=(a+8)++同2AC)d=(8+e,e++,d+9)D)d=7+e++=d+78.main(){int x=5,y=3;float f;f=x/y;表示为整形printf(“f=%f\n”,f);}则程序的输出结果是?f=1.0000009.设整型变量x,y,z均为2,表达式(x++)+(y++)+(z++)的值是_A 先使用值再加加_。

A)6B)7C)8D)910.设int a=3,b=5;float x=7.5,y=3.5;则表达式(float)a+b/2+(int)x%(int)y;的值是6.0__。

*11.执行语句:int a;a=‘1’+1.5;后,正确的叙述是_D_。

A)a的值是字符‘3’B)a的值是浮点型C)不允许字符型和浮点型相加D)a的值是字符’1’的ASCII码值加上112.设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是_B_。

C语言程序设计第2章 数据类型与运算练习题及解答

C语言程序设计第2章 数据类型与运算练习题及解答

第2章数据类型和运算符习题及解答一.选择题。

1.下列是用户自定义标识符的是A)_w1 B)3_xy C)int D)LINE-3答案:A解析: C语言规定用户标识符由英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,由此可见选项B),D)是错的;此外,C语言不允许用户将关键字作为标识符,而选项C)选项项中的int 是C语言的关键字。

语言中最简单的数据类型包括A)整型、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)字符型、实型、逻辑型答案:B解析:本题考查C语言的数据类型。

在C语言中,没有专门的逻辑型数据类型,可以用0和1来表示逻辑值。

所以,在本题的选择答案中,不应该包括逻辑型。

3.假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A)3 B)6 C)10 D)20答案:D解析: x数组共有10个元素,在花括弧内只提供3个初值,这表示只给前面的3个成员赋值,后7个元素的值为0,所以,一共有20个字节。

4.以下选项中不正确的实型常量是A) B) C) D)234e-2答案:B解析:实型常量表示时字母E或e前必须有数字,其后数字必需为整数,故B错。

5.若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1 B)a=b=c+2 C)int %3 D)a=a+7=c+b答案:B解析:选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。

因此,正确答案是选项B),它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。

6.下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_b3, _123,CarC)For, -abc, IF Case D)2a, DO, sizeof答案:B解析: C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线,排除选项C)和D)。

C语言程序设计 – 第 02 章课后习题

C语言程序设计 – 第 02 章课后习题

C语言程序设计– 第二章课后习题电子13-02班王双喜一、选择题1. 下面四个选项中,均是合法整型常量的选项是(A)A. 160,-0xffff,011B. -0xcdf,01a,0xeC. -01,986,012,0668D. -0x48a,2e5,0x2. 设C语言中,一个short int型数据在内存中占2个字节,则unsigned short int型数据的取值范围为(C)A. 0~255B. 0~32767C. 0~65535D. 0~2147483647(解释:unsigned 类型是无符号数,其最小值是0;两个字节能表示216 = 65536种状态,因此其范围便是0~65535)3. 下面四个选项中,均是合法的浮点数的选项是(C)A. 160,0.12,e3B. 123,2e4.2,.e5C. -.18,123e4,0.00D. –e3,.234,1e34. 在C语言中,char型数据在内存中存储的是字符的(D)A. 补码B. 反码C. 原码D. ASCII码5. 若有定义“char c = ‘\72’”(A)A. 包含1个字符B. 包含2个字符C. 包含3个字符D. 不合法,c的值不确定(解释:C程序中,反斜杠“\”是转义字符,按照规定“72”表示的应当是一个八进制数,因此c中存放的是二进制代码为01110010的ASCII(美国标准信息交换码))6. 若有以下定义,则能使其值为3的表达式是(D)int k = 7, x = 12;A. x %= (k %= 5)B. x %= (k - k % 5)C. x %= k - k % 5D. (x %= k) – (k %= 5)7. 执行逗号表达式a = 3, b = 5, a -=a+b,b = a-b之后,a和b的值分别为(D)A. 3和5B. -5和-2C. 8和3D. -5和-10(解释:逗号运算符的计算顺序是从左往右的,且每个表达式的运算完毕后相关变量立即生效)8. 设有定义:char x = 3, y = 6, z;,则执行语句z = x ^ y<<2;后,z的二进制值是(B)A. 00010100B. 00011011C. 00011100D. 00011000(解释:移位运算符优先级高于按位或运算符,因此z = 00011 xor 11000)9. 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是(B)A. n = (n*100 + 0.5)/100.0B. m = n*100 + 0.5, n = m/100.0C. n=n*100+0.5/100.0D. n = (n/100+0.5)*100.0(解释:要想保留小数点后两位应现将其第三位变成十分位然后再加0.5使其转换成整型变量后能实现四舍五入,而后再除以100.0而不是100是为了防止整个表达式沦为整型表达式而导致小数被舍弃)10. 下列程序执行后的输出结果是(小数点后只写一位)(A)A. 6 6 6.0 6.0B. 6 6 6.7 6.7C. 6 6 6.0 6.7D. 6 6 6.7 6.0# include <stdio.h>main(){double d; float f; long l; int i;i = f = l = d = 20 / 3;printf(“%d %d %f %f \n”, i, l, f, d);}(解释:由于“20 / 3”是操作数都是整型,小数部分将被舍去)11. 若变量已正确定义并赋值,下面符合C语言语法的是(B)A. a := b + 1B. a = b = c + 2C. int 18.5 % 3D. a = a + 7 = c + b(解释:A、C均不合法,D中赋值运算符的左值必须是一个变量)12. 若变量a、i已正确定义,且i已正确赋值,合法的语句是(B)A. a==1B. ++i;C. a = a++ = 5;D. a = int(i);(解释:A没有分号)13. 若有定义:int a = 7; float x = 2.5, y = 4.7;,则表达式x + a % 3 * (int)(x + y) % 2 / 4的值是(A)A. 2.5B. 2.75C. 3.5D. 0.0(解释:按照运算符的优先级不难得出结果;注意当运算符的操作数都是整型时,其结果也是整型)14. 设变量a是整型,f是单精度型,i是双精度型,则表达式10 + ’a’ + i * f值的数据类型为(C)A. intB. floatC. doubleD. 不确定(解释:i是双精度类型,因此整个表达式的类型就是双精度型。

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语言2-3章习题参考解答

C语言2-3章习题参考解答

第二章C语言的基本数据类型及运算2.1C语言中的标识符可以由哪些字符组成?一个合法的C语言标识符应遵循那些规定?解:略。

2.2C语言有哪些数据类型?各种基本数据类型所占存储空间长度如何?解:略。

2.3若有定义int a=7; float x=2.5, y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值为多少?解:2.52.4假设所有变量均为整型,则表达式(a=2, b=5, b++, a+b)的值是什么?解:82.5若int x=1, y=2; 则表达式1.0+x/y的值是什么?解:1.02.6找出下列程序中的几处错误并改正。

Main(){ int a=1, b=c=5, t=326845;int d; char ch='A' ;d=b*c;printf("ch=%c, d=%d, t=%ld\n", ch, d, t);}解:错误(1)b=c=5(初始化错误)应该为:b=5,c=5错误(2)t=326845(给基本整型变量t赋值超过最大值32768,会导致执行结果错误)2.7写出下列程序的运行结果。

(1) main(){ int a, b, c, d;a=28; b=8;c=a/b; d=a%b;printf("%d/ %d=%d, %d%%d=%d\n", a, b, c, a, b, d);}(2) main(){ char x='a', y=98;printf("%d\t\b%c", x, y);}(3) main(){ int a=5, b=12, x, y;x=a*=4; y=b- -;printf("%d, %d, %d, %d\n", a, b, x, y);}(4) main(){ int m, n=4;float x=21.7, y=7.0;++n;m=x/y+n;printf("%d, %d\n", m, n);}解:(1)28/8=3, 28%8=4(2)97 b(3)20, 11, 20, 12(4)8, 5第三章C语言程序设计初步3.1什么是输入输出格式说明符?它与转义字符的区别是什么?解:略。

C语言第二章习题带答案

C语言第二章习题带答案

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 )。

A.'\'','\\','\n' B.'\','\017','\'C.'\018','\f','xab' D.'\\0,'101','x1f6.在C语言中,数字029是一个( D )。

A.八进制数B.十六进制数 C.十进制数D.非法数7.下列可以正确表示字符型常数的是( B )。

A."a" B.'\t' C."\n" D.2978.以下( C )是错误的转义字符。

A.'\\' B.'\'' C.'\81' D.'\0'9.C语言中整数-8在内存中的存储形式是( A )。

A.1111 1111 1111 1000 B.100000000000 1000C.000000000000 1000 D.1111 1111 1111 011110.将字符g赋给字符变量c,正确的表达式是( C )。

A.c="g" B.c=101 C.c='\147' D.c='0147' 11.字符串"\\\22a,0\n"的长度是( C )。

C语言课后习题答案

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语言习题(前五章)参考答案

C语言习题(前五章)参考答案

C 语言习题参考答案第一部分 C 语言基础一、判断题1.对 2.错 3.对 4.对 5.错 6.错第二部分 数据类型、运算符及表达式一、选择题 1.AD 2.B 3.(1)CD (2)BD (3)C (4) B 5.B6.D /*赋值时,若有溢出,则只截取低位*/ 7.(1)AB (2)BD (3)ABCD 8.C 9.D10.C /*A,B 赋值运算符左值只能是变量,不能是表达式或常量,D 是逗号语句*/12.B /*赋值运算符优先级比逗号表达式高*/ 13.A14.D /*八进制数中,合格字符只能是0~7*/ 15.A /*二进制补码*/16.A /*八进制数中,合格字符只能是0~7*/ 17.D 19.B 20.D21.B /*赋值运算符右值的数据类型强制转换为左值的数据类型*/ 22.ABD 23.D 24.C 25.ABD 二、填空题1. 1 , -128~127 ; 2 , -32768~32767 ; 4 ,-2147483648~2147483647 ; 4 ,383810~10 。

3. 单引号, 双引号 。

4. 优先级 , 结合性 。

6. 2.5 。

7. 3.5 。

11. 24 , 10 , 60 , 0 , 12 , 0 12. double 。

14. 9 。

16. 1.5 , 1 。

18. 2 , -2 。

/*余数符号仅由被除数的符号决定*/ 三、判断题1.错 /*如常量*/3.错 /*如float 只能准确表示7位有效数字,多余的位数是近似表示*/4.错5.对6.对 10.错 四、简答题4写出下列各数的二进制补码(写成16为二进制形式):32: 0000 0000 0010 0000 -1: 1111 1111 1111 1111 -32768:1000 0000 0000 0000 2002: 0000 0111 1101 0010 -128: 1111 1111 1000 0000 0: 0000 0000 0000 0000 五、程序阅读 1.aabb[4个空格]cc[6个空格]c A 6 2.9,11,9,10第三部分 顺序结构一、选择题 2.D3.B /*假设int 占2个字节*/4.D5.C 7.C 8.B 9.D 10.B11.C /*D ,scanf 函数的格式符中不能规定小数位数*/ 12.A /*格式控制符:%2d%2d%3d,输入时,前两个空格对应的数字赋给a ,紧挨着的两个空格的位置赋给b*/ 13.C 14.D 15.D 二、填空题 6. %8. -10 12 410.34[回车] 题目补充:scanf 函数的调用形式为:scanf(“%d%d%f ”,&i,&j,&x); 。

C语言-课后题答案

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语言篇)第2章 习题答案[2页]

数据结构与算法(C语言篇)第2章 习题答案[2页]

习题答案1.填空题(1)线性(2)顺序表(3)单链表(4)数据域、指针域(5)头结点(6)一定(7)不一定2.思考题(1)线性表采用顺序存储通常被称为顺序表。

顺序表指的是集合中数据元素之间的逻辑结构为线性结构,并且数据元素按照逻辑顺序依次存放在地址连续的存储单元中。

一般情况下,线性表中的所有数据结点的类型是相同的。

在C语言中,通常使用一维数组和结构体来表示顺序表。

(2)线性表采用链式存储通常被称为单链表。

单链表指的是集合中数据元素之间的逻辑结构为线性结构,但是数据元素所在的存储单元在内存地址上是不连续的。

单链表中的结点都是由两部分组成,一部分为数据域(data);另一部分为指针域(next)。

简单地说,data域用来存放结点的数据,而next域存放的是一个指针,该指针保存的是下一个结点所在的内存地址,或者说该指针指向下一个结点。

(3)在单链表中,如果需要查找某一个结点的后继时,直接通过指针移动到下一个结点即可。

但是要查找某一结点的前驱时,则需要从结点头开始。

为了提高数据操作的效率,引入双向循环链表。

双向循环链表中结点的结构与单链表不同,每一个结点都有一个指向前一个结点的指针和一个指向后一个结点的指针。

4.编程题(1)int seqlist_insert(seqlist_t *l, int value){if(seqlist_full(l)){ //判断是否为满printf("seqlist full\n");return -1;}l->last++; //数组下标加1,表示要插入数据l->data[l->last] = value; //将需要插入的数据赋值到数组中,表示插入数据 return 0;}(2)int linklist_head_insert(linklist_t *h, datatype_t value){linklist_t *temp;//为新插入的数据结点申请空间temp = (linklist_t *)malloc(sizeof(linklist_t));temp->data = value; //为新插入结点的数据域赋值数据temp->next = h->next; //将头结点指针指向的下一个结点的地址赋值给新结点的指针 h->next = temp; //将头结点指针指向新的结点return 0;}(3)void dlinklist_insert(dlinklist_t *dl, datatype_t value){//使用malloc函数为新插入的结点申请空间dlinklist_t *temp = (dlinklist_t *)malloc(sizeof(dlinklist_t));//为新插入的结点赋值temp->data = value;//获取第一个有数据的结点的地址,地址为dl->next//如果此时只有一个头结点,则假设存在有数据的结点dlinklist_t *pnext = dl->next;//将头结点与新插入的结点建立关系dl->next = temp;temp->prior = dl;//将头结点的下一个结点与新插入的结点建立关系temp->next = pnext;pnext->prior = temp;return ;}(4)使用递归的方法,函数调用自己本身,形成一个函数的复用//参数为指向头结点的指针int show_reverse_linklist(linklist_t *h){if(h->next == NULL){printf(“%d ”, h->data);return 0;}show_reverse_linklist(h->next);printf(“%d ”, h->data);return 0;}。

C语言 习题二 参考答案

C语言 习题二 参考答案

第二章:C程序的基本结构一、单项选择题1、以下不是C语言的特点的是________。

A)语言的表达能力B)语言定义严格 C)数据结构系统化 D)控制流程结构化2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。

A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行3、以下不是二进制代码文件是________。

A)标准库文件 B)目标文件C)源程序文件 D)可执行文件4、下面个选项组中,均属于C语言关键字的一组是________。

A)auto,enum,include B)switch,typedef,continueC)signed,union,scanf D)if,struct,type5、下面四组字符串中,都可以用作C语言标识符的是________。

A)print B)I \am C)signed D)if_maf scanf 3mf ty_prmx_2d mx_ a.f x1#aMb6 AMB A&B 5XY6、以下不属于流程控制语句的是_________。

A)表达式语句 B)选择语句 C)循环语句 D)转移语句7、下面描述中,不正确的是________。

A)C语言的函数体由一系列语句和注释组成。

B)注释内容不能单独写在一行上。

C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。

D)scanf和printf是标准库函数而不是输入和输出语句。

8、下面描述中,正确的是________。

A)主函数的花括号必须有,而子函数中的花括号是可有可无的。

B)一个C程序行只能写一个语句。

C)主函数是程序启动时的唯一入口。

D)函数体包含了函数说明部分。

二、填空题1、一个完整的C程序至少要有一个________函数。

(主函数)2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。

(编译系统)3、C语言是以________为基本单位、整个程序由________组成。

《C语言程序设计教程》(第三版)李凤霞 主编——第二章习题答案

《C语言程序设计教程》(第三版)李凤霞 主编——第二章习题答案

第二章:C程序的基本结构一、单项选择题1、以下不是C语言的特点的是________。

A)语言的表达能力B)语言定义严格 C)数据结构系统化 D)控制流程结构化2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。

A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行3、以下不是二进制代码文件是________。

A)标准库文件 B)目标文件C)源程序文件 D)可执行文件4、下面个选项组中,均属于C语言关键字的一组是________。

A)auto,enum,include B)switch,typedef,continueC)signed,union,scanf D)if,struct,type5、下面四组字符串中,都可以用作C语言标识符的是________。

A)print B)I \am C)signed D)if_maf scanf 3mf ty_prmx_2d mx_ a.f x1#aMb6 AMB A&B 5XY6、以下不属于流程控制语句的是_________。

A)表达式语句 B)选择语句 C)循环语句 D)转移语句7、下面描述中,不正确的是________。

A)C语言的函数体由一系列语句和注释组成。

B)注释内容不能单独写在一行上。

C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。

D)scanf和printf是标准库函数而不是输入和输出语句。

8、下面描述中,正确的是________。

A)主函数的花括号必须有,而子函数中的花括号是可有可无的。

B)一个C程序行只能写一个语句。

C)主函数是程序启动时的唯一入口。

D)函数体包含了函数说明部分。

二、填空题1、一个完整的C程序至少要有一个________函数。

(主函数)2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。

(编译系统)3、C语言是以________为基本单位、整个程序由________组成。

数据结构(C语言版)习题及答案第二章

数据结构(C语言版)习题及答案第二章

数据结构(C语⾔版)习题及答案第⼆章习题2.1选择题1、线性表的顺序存储结构是⼀种(A)的存储结构,线性表的链式存储结构是⼀种(B)的存储结构。

A、随机存取B、顺序存取C、索引存取D、散列存取2、对于⼀个线性,既要求能够进⾏较快的插⼊和删除,⼜要求存储结构能够反映数据元素之间的逻辑关系,则应该选择(B)。

A、顺序存储⽅式B、链式存储⽅式C、散列存储⽅式D、索引存储⽅式3、已知,L是⼀个不带头结点的单链表,p指向其中的⼀个结点,选择合适的语句实现在p结点的后⾯插⼊s结点的操作(B)。

A、p->next=s ; s->next=p->next ;B、s->next=p->next ; p->next=s ;C、p->next=s ; s->next=p ;D、s->next=p ; p->next=s ;4、单链表中各结点之间的地址( C D)。

A、必须连续B、部分地址必须连续C、不⼀定连续D、连续与否都可以5、在⼀个长度为n的顺序表中向第i个元素(0A、n-iB、n-i+1C、n-i-1D、i2.2填空题1、顺序存储的长度为n的线性表,在任何位置上插⼊和删除操作的时间复杂度基本上都⼀样。

插⼊⼀个元素⼤约移动表中的(n/2)个元素,删除⼀个元素时⼤约移动表中的((n-1)/2)个元素。

2、在线性表的顺序存储⽅式中,元素之间的逻辑关系是通过(物理顺序)来体现的;在链式存储⽅式,元素之间的逻辑关系是通过(指针)体现的。

3、对于⼀个长度为n的单链表,在已知的p结点后⾯插⼊⼀个新结点的时间复杂度为(o(1)),在p结点之前插⼊⼀个新结点的时间复杂度为(o(n)),在给定值为e的结点之后插⼊⼀个新结点的时间复杂度为(o(n))。

4、在双向链表中,每个结点包含两个指针域,⼀个指向(前驱)结点,另⼀个指向(后继)结点。

5、对于循环链表来讲,逐个访问各个结点的结束判断条件是(设P为指向结点的指针,L为链表的头指针,则p->next= =L)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章
2.5写出以下程序运行的结果。

#include <stdio.h>
void main()
{
char c1='a',c2='b',c3='c',c4='\101',c5='\116';
printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);
printf("\t \b%c%c\n",c4,c5);
}
解:
aabbㄩㄩㄩㄩccㄩㄩㄩㄩㄩㄩabc
AN
2.6 要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。

因此,"China"应译为"Glmre"。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

解:
#include <stdio.h>
void main()
{ char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;
c1+=4;
c2+=4;
c3+=4;
c4+=4;
c5+=4;
printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);
}
2.7例2.6能否改写成如下:(略)
解:可以,在可输出字符范围内int和char作用相同。

运行时显示:
ab
97 98
2.8求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4
设x=2.5,a=7,y=4.7
(2)(float)(a+b)/2+(int)x%(int)y
设a=2,b=3,x=3.5,y=2.5
解:(1)2.5
(2)3.5
2.9写出程序运行的结果。

#include <stdio.h>
void main()
{ int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
解:
9,11,9,10。

相关文档
最新文档