C语言第二章习题及详解

合集下载

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语言第二章习题带答案

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语言课后习题参考答案(前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语言2-10章作业

带答案C语言2-10章作业

带答案C语言2-10章作业C语言习题集专业班级学号姓名第2章运算符与表达式一、选择题1.若有定义:int a=2,b=3 ; float x=,y=; 则下面表达式的值为(C)。

(float)(a+b)/2+(int)x% (int)yA) B)35 C) D)2.若有定义:int x=3 ,y=2; float a= ,b=; 则下面表达式的值为( B )。

(x+y)%2+(int)a/(int)bA) B)1 C) D)23.若x和n均是int 型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为( A )。

x%=(n%=2)A)0 B)1 C)2 D)34.设有 int x=11; 则表达式 (x++*1/3)的值是( A )。

A)3 B)4 C)11 D)125.下列程序的输出结果是( C )。

#include <>main( ){ double d=; int x,y;x=; y=(x+/;printf("%d\n", d*y);}A)3 B)3.2 C)0 D)6.下列程序执行后的输出结果是(小数点后只写一位)( A )。

#include <>main( ){ double d; float f; long l; int i;i=f=l=d=20/3;printf("%d %ld %f %f\n", i,l,f,d);}A)6 6 B)6 6C)6 6 D)6 67.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( C )。

A)1 B)2 C) D)8.若变量a,i已正确定义,且i已正确赋值,则合法的语句是( B )。

A)i=int(a) B)++i; C)a=a++=5; D)a=int(i);9.若执行以下程序段后,c3的值为( A )。

int c1=1,c2=2,c3;c3=c2*c1;A)0 B)0.5 C)1 D)210.如下程序的运行结果是( D )。

c语言第二章试题库及答案详解

c语言第二章试题库及答案详解

c语言第二章试题库及答案详解C语言作为一门经典的编程语言,其试题库及答案详解对于学习者来说至关重要。

以下是C语言第二章的试题库及答案详解,内容涵盖了基本的C语言概念、数据类型、运算符和表达式等。

一、选择题1. 在C语言中,以下哪个是合法的整型常量?- A. 2023- B. 0x1A3F- C. 2023.0- D. '2023'答案: A, B2. 以下哪个选项表示的是C语言中的浮点型常量?- A. 3.14159- B. 2.5e2- C. 0.314E-2- D. All of the above答案: D3. 在C语言中,哪个运算符用于计算两个数的乘积?- A. +- B. -- C. *- D. /答案: C二、填空题1. 在C语言中,基本数据类型包括______、______、______和______。

- 答案:整型(int),字符型(char),浮点型(float),双精度型(double)2. 赋值语句的一般形式是______。

- 答案:变量名 = 表达式3. 表达式 `5 + (fl + 2) * 3 / 2` 的正确计算顺序是先计算______,然后是______,最后是______。

- 答案:括号内的表达式,乘除,加减三、简答题1. 请简述C语言中的变量声明和变量初始化的区别。

- 答案:变量声明是指告诉编译器变量的类型和名称,但不赋予其具体的值。

而变量初始化是在声明的同时赋予变量一个初始值。

2. 解释C语言中的运算符优先级及其对表达式求值的影响。

- 答案:运算符优先级决定了在没有括号的情况下,表达式中各个运算符的执行顺序。

例如,乘法和除法的优先级高于加法和减法,因此在没有括号的情况下,乘除运算会先于加减运算执行。

四、编程题1. 编写一个C语言程序,计算并输出1到10的整数之和。

```c#include <stdio.h>int main() {int sum = 0, i;for(i = 1; i <= 10; i++) {sum += i;}printf("The sum of integers from 1 to 10 is: %d\n", sum);return 0;}```2. 编写一个C语言程序,实现两个浮点数的加法,并输出结果。

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

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语言程序设计》课后习题详解

《全国计算机等级考试二级教程——C语言程序设计》课后习题详解

《全国计算机等级考试二级教程——C语言程序设计》习题分析与解答第一章程序设计基本概念习题分析与解答1.1 【参考答案】.EXE1.2 【参考答案】[1].C [2].OBJ [3].EXE1.3 【参考答案】[1]顺序结构[2]选择结构[3]循环结构第二章C程序设计的初步知识习题分析与解答一、选择题2.1 【参考答案】B)2.2 【参考答案】D)2.3 【参考答案】B)2.4 【参考答案】A)2.5 【参考答案】C)2.6 【参考答案】A)2.7 【参考答案】B)2.8 【参考答案】B)2.9 【参考答案】D)2.10 【参考答案】C)2.11 【参考答案】B)2.12 【参考答案】B)2.13 【参考答案】A)二、填空题2.14 【参考答案】[1]11 [2]122.15 【参考答案】[1]4.2 [2]4.22.16 【参考答案】[1]{ [2]} [3]定义[4]执行2.17 【参考答案】[1]关键字[2]用户标识符2.18 【参考答案】[1]int [2]float [3]double2.19 【参考答案】float a1=1.0, a2=1.0;或float a1=1, a2=1;(系统将自动把1转换为1.0)2.20 【参考答案】存储单元2.21 【参考答案】 3.52.22 【参考答案】[1]a*b/c [2]a/c*b [3]b/c*a2.23 【参考答案】把10赋给变量s2.24 【参考答案】[1]位[2]1位二进制数据(0或1)2.25 【参考答案】[1]8 [2]127 [3]01111111 [4]-128 [ 5 ] 10000000 2.26 【参考答案】[1]32767 [2]-32768 [3]10000000000000002.27 【参考答案】[1]十[2]八[3]十六三、上机改错题2.28 【分析与解答】第1行的错误:(1) include是一个程序行,因此在此行的最后不应当有分号(;)。

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)int _int; B)double int_; C)char For D)float US$;解析:合法的标识符由字母、数字和下划线组成,因此$不能用作变量名,。

答案:D2.以下不合法的用户标识符是。

A)j2_ KEY B)Double C)4d D)_8_解析:用户标识符由字母(大小写)或者下划线开头,随后跟字母、数字或下划线的任意组合,因此C不正确。

答案:C3.以下不合法的数值常量是。

A)011 B)le1 C)8.0E0.5 D)0xabcd解析:A中011是一个八进制整数常量;B中le1是实数常量的科学记数表示法,而C 中8.0E0.5则是错误的记法,因为E(e)后面必须是整数。

答案:C4.以下不合法的字符常量是。

A)'\018' B)'\"' C)'\\' D)'\xcc'解析:C语言中允许一种特殊形式的字符常量,也就是一个“\”开头的字符序列,'\ddd'表示8进制所代表的字符,'\xhh'表示16进制所代表的字符,转移字符,'\"','\\'分别表示字符"和\。

选项A中数值超过八进数值字的范围(0~8)。

答案:A5.以下程序的功能是:计算半径为r的圆面积S。

程序在编译时出错。

/* 文件路径名:ex2_1_5\main.c */#include <stdio.h> /* 标准输入/出头文件*/#include <stdlib.h> /* 包含库函数system()所需要的信息*/int main(void) /* 主函数main() */{float r = 6, s; /* 半径r与面积s */s = π* r * r; /* 计算面积*/printf("s=%f\n", s); /* 输出面积*/return 0; /* 返回值0, 返回操作系统*/}出错的原因是。

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语言程序设计习题集第2章-(答案)基本数据类型及顺序结构程序设计

C语言程序设计习题集第2章-(答案)基本数据类型及顺序结构程序设计

word格式-可编辑-感谢下载支持第2章基本数据类型及顺序结构程序设计一、选择题1、以下关于long、int和short类型数据占用内存大小的叙述中正确的是(D)A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定2、以下选项中不合法的标识符是(C)A)print B)FOR C)&a D)_003、可在C程序中用作用户标识符的一组标识符是(A)A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Big14、以下选项中不属于字符常量的是(B )A)'C' B)"C" C)'\xCC0' D)'\072'5、以下选项中,合法的一组C语言数值常量是(B)A)028 B)12. C).177 D) 0x8A.5e-3 0Xa23 4e1.5 10,000-0xf 4.5e0 0abc 3.e56、以下正确的字符串常量是(A)A) "\ \ \" B) ' abc ' C)Olympic Games D) ""7、下列定义变量的语句中错误的是(D)。

A)int _int;B)double int_; C)char For;D)float USS8、下列变量定义中合法的是(A)。

A) short _a=1.le-1;B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1e-3;9、以下定义语句中正确的是(C)A)int a=b=0 ; B)char A=65+1,b='b';C)float a=1,*b=&a,*c=&b ; D)double a=0.0,b=1.1;10、设有说明语句:char a=’\72’;则变量a(A)。

C语言基础练习题(含答案)(2)

C语言基础练习题(含答案)(2)
C.!(x%2) D.x%2
12.已知 x=45, y=’a’, z=0; 则表达式(x>=z && y<’z’ || !y)的值是()。
A.0 B.语法错
C.1 D.“假”
D.switch (grade)
{ case ’C’ :printf(”<60\n”);
break;
case ’B’ :printf(”60——84\n”);
break;
default: printf(”grade is error!\n”);
if(a>b)
c=a; a=b; b=c;
A.a=1, b=2, c=3 B.a=2, b=3, c=3
C.a=2, b=3, c=1 Βιβλιοθήκη D.a=2, b=3, c=2
17.请阅读以下程序:该程序()。
#include ”stdio.h”
22.以下程序的输出结果是()。
#include ”stdio.h”
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.不确定
23.若a、b、c1、c2、x、y均为整型变量,正确的switch 语句是()。
A.switch (a+b); B.switch a
{ case 1: y=a+b; break; { case c1: y=a-b; break;
C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s)

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语言 习题二 参考答案

第二章: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.5
D.4
正确答案:B
13、变量定以后,系统将为变量分配存储空间,int类型的自动变量()。
A.将在编译时分配4个字节的存储空间
B.将在编译时分配8个字节的存储空间
C.将在程序执行时分配4个字节的存储空间
D.将在程序执行时分配8个字节的存储空间
正确答案:C
14、变量定以后,系统将为变量分配存储空间,double类型的静态变量()。
A.x%(-3)
B.w+=-2
C.k=(a=2,b=3,a+b)
D.a+=a- =(b=4)*(a=3)
正确答案:A
18、假设变量均已正确定义并赋值,以下符合C语言语法的赋值表达式是
A.d=9+c+f=d+9
B.d=(9+e,f=d+9)
C.d=9+e,e++,d+9
D.d=9+e++=d+7
正确答案:B
n1=ch1-'1';
n2=n1*10+(ch2-'2');
printf("%d\n",n2);
正确答案:25
10、以下程序段在执行时,输入18,38<回车>,执行结果是
int a,b;
scanf("%d,%o",&a,&b);
b+=a;
printf("%d",b);
正确答案:21
A.9 9
B.9 10
C.10 9
D.10 10
正确答案:C
二、填空题
1、要使以下程序输出3。请在空中填入正确内容。

C语言章节习题及答案

C语言章节习题及答案

《C程序设计》复习题集第2章基础概念一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的)2.1以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点正确答案: C2.2 以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前定义正确答案: A2.3 以下说法正确的是A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分正确答案: C2.4 C语言规定,在一个源程序中,main函数的位置A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后正确答案: C2.5 以下叙述不正确的是A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面正确答案: D2.6 下列叙述中正确的是A)C语言编译时不检查语法B)C语言的子程序有过程和函数两种C)C语言的函数可以嵌套定义D)C语言的函数可以嵌套调用正确答案: D2.7 以下叙述正确的是A)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,%是只能用于整数运算的运算符正确答案: D2.8 下列关于C语言的说法不正确的是A)C语言既具有高级语言的一切功能,也具有低级语言的一些功能B)C语言中的每一条执行语句都必须用分号结束,但分号不是C语言的一部分,是语句之间的分隔符号C)注释可以出现在程序中任意合适的地方D)命令行后面不能加分号,命令行不是C语言的语句正确答案: B2.9 以下说法错误的是A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式B)计算机只能处理由0和1的代码构成的二进制指令或数据C)C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件D)每一种高级语言都有它对应的编译程序正确答案: C2.10 C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-while D)if,for,continue正确答案: A第3章数据类型运算符与表达式一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的)3.1 C语言提供的基本数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案: B3.2 C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母,数字和下划线中任一字符正确答案: C3.3 下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_b3, _123,CarC)For, -abc, IF Case D)2a, DO, sizeof正确答案: B3.4 下面四个选项中,均是不正确的8进制数或16进制数的选项是A)016 0x8f 018 B)0abc 017 0xaC)010 -0x11 0x16 D)0a12 7ff -123正确答案: D3.5 下列数据中,不合法的C语言实型数据的是A)0.123 B)123e3 C)2.1e3.5 D)789.0正确答案: C3.7 若有说明语句:char c='\72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定正确答案: A3.8 有字符串如下,"\n\\\407as1\"\xabc",则字符串的长度为A)6 B)7 C)8 D)9正确答案: D3.9 C语言中运算对象必须是整型的运算符是A)%= B)/ C)= D)<=正确答案: A3.10 若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b正确答案: B3.11 若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a= =1 B)++i; C)a=a++=5; D)a=int(i);正确答案: B3.12 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A)2.500000 B)2.750000 C)3.500000 D)0.000000正确答案: A3.13 若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是A)sizeof,&=,<<,^ B)sizeof,<<,^,&= C)^,<<,sizeof,&= D)<<,^,&=,sizeof正确答案: B3.14 以下不正确的叙述是A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案: D3.15 已知int i,a;执行语句i=(a=3,a++,- -a,a+4,a+5,++a);后,变量i的值为A)2 B)3 C)4 D)5正确答案: C3.16 设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为A)int B)float C)double D)不确定正确答案: C3.17 在C语言中,char型数据在内存中的存储形式是A)补码B)反码C)原码D)ASCII码正确答案: D3.18 字符型数据在机器中是用ASCII码表示的,字符’5’和’7’在机器中表示为A)10100011和 01110111 B)01000101和01100011C)00110101和00110111 D)01100101和01100111正确答案: C3.19 不能进行++和- -运算的数据类型为A)指针B)整型C)长整型D)常量正确答案: D3.20 设有int x=11;则表达式(x++*1/3)的值是A)3 B)4 C)11 D)123.21 以下程序的输出结果是main(){ int a=21,b=11;printf("%d\n",- -a+b,- -b+a);}A)30 B)31 C)32 D)33正确答案: A3.22 假设整型变量a,b,c的值均为5,则表达式a+++b+++c++的值为A)17 B)16 C)15 D)14正确答案: C3.23 已知int a=6; 则执行a+=a-=a*a;语句后,a的值为A)36 B)0 C)-24 D)-60正确答案: D3.24 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0正确答案: B3.25 sizeof(float)是A)一个双精度型表达式B)一个整型表达式C)一种函数调用D)一个不合法的表达式正确答案: B3.26下列关于字符串的说法中错误的是A)在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志B)′\0′作为标志占用存储空间,计入串的实际长度C)在表示字符串常量的时候不需要人为在其末尾加入′\0′D)在C语言中,字符串常量隐含处理成以′\0′结尾正确答案: B3.27 以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z 的C语言表达式是A)x/y*z B)x*(1/(y*z)) C)x/y*1/z D)x/y/z正确答案: A3.28 下列关于语句的说法错误的是A)复合语句是由“{”开头,由“}”结尾的B)复合语句在语法上视为一条语句C)复合语句内,可以有执行语句,不可以有定义语句部分D)C程序中的所有语句都必须由一个分号作为结束正确答案: C二、填空题3.30 以下程序的输出结果是【1】。

数据结构(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)。

二、第二章
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.0
4.字符串”ab\x41\\34cd\102y”的长度是_A_。

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

字符串含有’\0’。

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

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

A)6B)7C)8D)9
10.设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码值加上1
12.设int类型的数据长度为2个字节,则unsigned int类型数据的取
值范围是_B_。

A)均为2个字节TC与VC不一样B)0~65535
C)-32768~32767D)-256至255
13.执行下列语句后,运行结果为C__。

先i++再i++最后+
main()
{int i=3,j;
j=++i+i++;
printf(“%d\n”,j);
}
A)6B)7C)8D)9
14.执行下列语句后,运行结果为6;y=1;z=6.000000______。

main()
{
int x=4,y;
float k=4,z;
clrscr();
printf("%d\n",--x*--x*--x);
x=4;
y=--x*--x*--x;
printf("y=%d\n",y);
z=--k*--k*--k;
printf("z=%f\n",z);}
x为浮点型:从左向右计算。

--i优先于*
x为整型:在输出函数中,从左向右计算;在输出函数外,先连续减,然后乘积。

15.若a为int类型,且其值为5,则执行表达式a+=a-=a*a后,a的值为_C_。

自右至左a=a-a^2=-20a=a+a=-40
A)-5B)-40C)-15D)不确定
16.如果x,y,i和j都是int型变量,则表达式x=(i=1,j=6,y=8)的值为_8_。

17、main()不懂看课件
{int x=0,z,y=z=-1;i--优先于-
x=x---z-y;
printf("x=%d\n",x);
}输出结果是:1
main()
{int x=0,z,y=z=-1;
x=--x-z-y;
printf("x=%d\n",x);
}输出结果是:1
main()
{int x=0,z,y=z=-1;
x=-y-z+--x;
printf("x=%d\n",x);
}输出结果是:1
main()
{int x=0,z,y=z=-1;
x+=--x-z-y;自右向左
printf("x=%d\n",x);
}输出结果是:0
main()
*{int x=0,z,y=z=-1;
x+=z---y;自右向左
printf("x=%d\n",x);
}输出结果是:x=0x=0+(-1--1)=0
main()
{int x=0,z,y=z=-1;/*x*=-y-z---x;*/
x=-y-z---x;/*x+=-y-z---x;*/
printf("x=%d\n",x);
}输出结果是:x=2
18.
main
{int x=3,y=0;
y=++x*--x;/*x=++x*x--;*/自右向左即:--x=2++x=3y=3*3=9 printf(“y=%d,x=%d\n”,y,x);
}输出结果是:y=9x=3
19.若a=3,b=3,c=5;则
⑴c+b++*a*++b的值是53
⑵a++*a+b+c*a*++b的值是73自右至左
⑶a*a+++b*++a的值是28
⑷printf(“%d,%d\n”,a,a++)
的输出结果是43
⑸printf(“%d,%d\n”,a,++a)
的输出结果是44
⑹printf(“%d,%d\n”,++a,a)
的输出结果是43
*⑺printf(“%d,%d\n”,a++,a)
的输出结果是33右结合性
19、main()
{int x=3;
x+=--x+x++;
printf(“x=%i\n”,x);
}x=7
main()
{int a=9;
a+=a-=a+a;
printf(“%d\n”,a);
}此程序执行后的结果是:?-18
main()
{int a=5;
a*=a/=a++;
printf(“%d\n”,a);
}此程序执行后的结果是:?2 main()
{
int x=4,y;
float k=4,z;
clrscr();
printf("%d\n",--x*--x*--x); x=4;
y=++x*--x*--x;
printf("y=%d\n",y);
z=++k+--k*--k;
printf("z=%f,k=%f\n",z,k); }输出结果:
6
y=27
z=9.000000,k=3.000000。

相关文档
最新文档