C语言题库(2020版)第2章 数据类型运算符和表达式√

合集下载

(完整word)C语言练习题—基本数据类型和运算

(完整word)C语言练习题—基本数据类型和运算

第2章基本数据类型和运算练习题一、单项选择题1.下列数据中属于“字符串常量"的是( ).A."a”B。

{ABC} C. ’abc\0’ D. 'a’2.下列数据中属于“字符串常量”的是( )。

A.ABC B. “ABC” C. ’abc’ D. ’a'3. 在PC机中,’\n’在内存占用的字节数是( ).A。

1 B. 2 C. 3 D. 44. 在PC机中,"a\xff” 在内存占用的字节数是()。

A. 5B. 6 C。

3 D. 45.字符串”ABC"在内存占用的字节数是( ).A. 3 B。

4 C. 6 D。

86.字符串”\”ABCD\”"在内存占用的字节数是()。

A. 4B. 6 C。

7 D. 87。

在C语言中,合法的长整型常数是( )。

A. 0LB.C. 0.D. 2。

1869e108.在C语言中,合法的短整型常数是()。

A。

OL B. 0821 C. 40000 D。

0x2a9。

下列数据中不属于“字符常量”的是( )。

A. ‘\a’B. ‘\160’C。

‘070’D。

07010.char型常量在内存中存放的是()。

A。

ASCII代码值B。

BCD代码值 C. 内码值D。

十进制代码值11.设整型变量m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是( )。

A。

0,0 B。

0,1 C. 1,0 D。

1,112.设整型变量m,n,a,b,c,d均为1,执行“(m=a>b)&&(n=a〉b)”后,m,n的值是()。

A. 0,0B。

0,1 C. 1,0 D. 1,113.设a为2,执行下列语句后,b的值不为0.5的是( )。

A。

b=1。

0/a B. b=(float)(1/a)C。

b=1/(float)a D. b=1/(a*1.0)14.设a为5,执行下列语句后,b的值不为2的是( ).A。

(完整版)C语言试题库(完整版)

(完整版)C语言试题库(完整版)

C语言试题库一、单项选择第一章 C语言概述(1)一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束。

B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。

C、本程序的MAIN函数开始,到本程序的最后一个函数结束。

D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。

(2)以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。

B、 C程序的每行中只能写一条语句。

C、 C语言本身没有输入输出语句。

D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。

(3) C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。

B、必须在系统调用的库函数的后面C、可以在任意位置。

D、必须在最后面(4)一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、 C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、 if, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5)已知各变量的类型说明如下:int k, a, b;unsinged 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-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、scanf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值(4) 以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5) 若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10) ││(x.>=200) ││(x<=210)C、(x>=1) &&(x<=10) ││(x.>=200) &&(x<=210)D、(x>=1)││(x<=10)&& (x.>=200) ││(x<=210)(2)以下程序的运行结果是#include “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”); else printf(“$ $ $\n”); }以上程序。

(完整word)1、c语言-数据类型与运算符(含答案)详解,推荐文档

(完整word)1、c语言-数据类型与运算符(含答案)详解,推荐文档

(完整word)1、c语言-数据类型与运算符(含答案)详解,推荐文档一、选择题1. 可用作C语言用户标识符的一组标识符是( B )。

A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof2. 存储以下数据,占用存储字节最多的是(D )。

A. 0B. ‘0’C. “0”D. 0.03. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。

A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车4. 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( C )。

A. 12B. 144C. 156D. 2885. 假设在程序中a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是( A)。

A. 1.0/a*b*cB. 1/(a*b*c)C. 1/a/b/(float)cD. 1.0/a/b/c6. 设”int a=15,b=26;”,则”printf(“%d,%d”,a,b);”的输出结果是(C )。

A. 15B. 26,15C. 15,26D. 267. 设x是一个int型的,y的值为10,则表达式x && y的值为(C )。

A. 1B. 0C. 与x值相同D. 与x值相反8. x>0 && x<=10的相反表达式为( A )。

A. x<=0 || x>10B. x<=0 && x>10C. x<=0 || x<=10D. x>0 && x>109. x>0 || y==5的相反表达式为( B )。

A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==510. 下面的哪个保留字不能作为函数的返回类型?( C ) 。

C语言之 2-2 数据类型、运算符和表达式

C语言之 2-2 数据类型、运算符和表达式

同样也可以在%和浮点数格式说明符之间一些修饰,用来确 定浮点数据的显示宽度、精度及对齐方式。其一般形式为: %[-][m.n]浮点格式说明符 -:依然表示数据输出时左对齐; m.n:m表示整个数据的输出宽度,n表示小数部分输出的位 数。 【例3.5】 #include "stdio.h" void main() { double pi=3.1415; printf("%f,%6.2f,%.2f,%-6.2f\n",pi,pi,pi,pi); } 程序输出结果为: 3.141500,⊔⊔3.14,3.14,3.14⊔⊔
C语言程序设计
2.3.5 赋值运算
1.简单赋值 简单赋值运算符“=“仅执行赋值操作,表达式的形式为: 操作数1=操作数2 “=“的功能是将右操作数的值赋给由左操作数指定的存储 单元(变量)。左操作数必须是一个可更改内容的左值表达式.赋 值运算符的右操作数类型可以和左操作数不同,执行赋值之前右 操作数被自动转换为左操作数的类型。
例6.y<3?-1.0:1 结果为实型, 即使y>=3,结果也为1.0。
1 a>0 0 a=0 -1 a<0
C语言程序设计
为了便于调试程序,下面讲printf。
C语言程序设计
3.2.2 格式输出函数printf
一般调用形式为: printf(“格式控制字符串”,输出项表列); 其功能是按“格式控制字符串”所指定的格式,在 计算机标准输出设备(通常为显示器)上依次输出由输 出项表列所指定的输出项。 输出项表列用于指定输出内容,它通常由一个或多 个输出项构成,当有多个输出项时,输出项之间应使用 逗号“,”分隔,输出项可以是常量、变量或表达式。 输出项的顺序、个数与类型要与“格式控制字符串”中 的格式说明符的顺序、个数、类型相匹配。 “格式控制字符串”是使用一对双撇号括起来的字 符串,用于指定后面各个输出项的输出格式。它一般包 含两个方面的信息:格式说明(以%开头的若干个字符) 和普通字符。

C语言试题数据类型运算符与表达式

C语言试题数据类型运算符与表达式

C 语言试题数据类型运算符与表达式1、以下选项中,不正确的 C 语言浮点型常量是(C)。

A.160.B.0.12C.2e4.2D.0.0分析: e 后面的指数必须为整数。

2、以下选项中,(D)是不正确的 C 语言字符型常量。

A.'a'B.'\\某41'C.'\\101'D.\分析:在 C 语言中,’a’表示字符常量,”a”表示字符串。

3、在 C 语言中,字符型数据在计算机内存中,以字符的(C)形式存储。

A.原码 B.反码 C.ASCII 码 D.BCD 码分析:将一个字符常量放入一个字符变量中,实际上并非将字符本身放到内存单元中,而是将字符的对应的 ASCII 码放到储存单元中。

4、若某、 i、j 和 k 都是 int 型变量,则计算下面表达式后,某的值是(C)。

某= (i=4,j=16,k=32)分析:(i=4,j=16,k=32)的值为最后一个表达式的值,即为 32,所以某=32.5、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低挨次为(B)。

A.算术运算、赋值运算、关系运算 B.算术运算、关系运算、赋值运算 C.关系运算、赋值运算、算术运算 D.关系运算、算术运算、赋值运算分析:算术运算符包括加法运算“+”符减法运算“- ”符乘法运算符“某”以及除法运算符“/”,赋值运算符包括“=、 +=、-=、某=、/=、”,关系运算符包括“、>=”。

3ae6、若有代数式 bc,则不正确的 C 语言表达式是(C)。

分析: C 选项表达的是 3ace/b。

7、表达式!某||a==b 等效于(D)。

A.!((某| |a)==b)B.!(某| |y)==bC.!(某| | (a==b))D. (!某) | | (a==b)分析:由符优先级先后顺序在!某||a==b 中应先算“| | ”再算“!”,最后算“==”。

选项 B 不影响运算顺序。

分析:先算括号里面的, a 不大于 b,则 m=0,c 不大于 d,则 n=0.分析:从后往前算, a 某=a 即 a=a 某 a,a=9;然后 a-=a=9,a=a-9,=0;a+=0,a=a+a=0.10、在以下一组运算符中,优先级最低的运算符是(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语言数据类型和运算符及表达式复习题

C语言数据类型和运算符及表达式复习题

数据类型、运算符和表达式复习题一.选择题1. 以下不合法的用户标识符是:()a) f2_G3 b) If c) 4d d) _82. 以下选项中合法的用户标识符是:()a) long b) _2Test c) 3Dmax d) A.dat3. 以下可用作用户标识符的是:()a) 12_a b) signed c) t-o d) _if4. 以下不是关键字的标识符是:()a) continue b) char c) If d) default5. C语言提供的合法的关键字是:()a) swicth b) cher c) Case d) void6. 以下选项中不合法的int整型常数是()a) 32768b) -56 c) 03 d) 0xAF7. 以下合法的长整型常量是()a) 2L b) 49627 c) 34566666 d) 213&8. 以下正确的实型常量是()a) 1.2E b) .579899 c) 1.2e0.6 d) 89. 以下选项中合法的实型常数是()a) 5E2.0 b) E-3 c) .2E0d) 1.3E10. 以下合法的八进制数是()a) 0135b) 068 c) 013.54 d) o711. 以下合法的十六进制数是()a) 0x b) 0x4de c) 0x1h d) ox7712. 以下选项中非法的数值常量是()a) 019b) 0L c) 0xff d) 1e113. 若变量已正确定义,以下合法的赋值表达式是()a) a=1/b=2 b) ++(a+b)c) a=a/(b=5)d) y=int(a)+b14. 若变量已正确定义,以下非法的表达式是()a) a/=b+c b) a%(4.0)c) a=1/2*(x=y=20,x*3) d) a=b=c15. 设x为int类型,其值为11,则表达式(x++*1/3)的值是:a) 3 b) 4 c) 11 d) 1216.设a,b均为double型,且a=5.5;b=2.5;则表达式(int)a+b/b的值是()a) 6.500000 b) 6 c) 5.500000 d) 6.000000 17.若a为int型,且其值为3,则执行完表达式:a+=a-=a*a后,a的值是()a) -3 b) 9 c) -12 d) 618.设k和x均为int型变量,且k=7;x=12;则能使值为3的表达式是()a) x%=(k%=5) b) x%=(k-k%5)c) x%=k-k%5 d) (x%=k)-(k%=5)19. 若a,b,c 均被定义成整型并已赋大于1的值,能正确表示代数式c b a ⋅⋅1的C 语言表达式是( )a) 1/(float)a*b*c b) 1/(a*b*c)c) 1.0/a/b/c d) 1/a/b/(float)c20. 以下变量x,y,z 均为double 型且已正确赋值,不能正确表示代数式z y x⨯的C 语言表达式是( )a) x/y*z b) x*(1/(y*z))c) x/y*1/z d) x/y/z21. 不能正确表示代数式d c b a ⋅⋅的C 语言表达式是( ) a) a/(c*d)*b b) a*b/c/dc) a*b/c*d d) a*b/(c*d)22.若题中变量已正确定义并赋值,下面符合C 语法的表达式是( )a) a%=7.6 b) a++,a=7+b+cc) int(12.3)%4 d) a=c+d=a+723. 若t 已定义为double 型,则表达式:t=1,t++,t+5的值为( ) a) 7 b) 7.0 c) 2.0 d) 1.024. 已有定义:int a,b; float x,y;,以下正确的赋值语句是:( ) a) a=1,b=2, b) y=(x%2)/10; c) x*=y+8; d) a+b=x;25. 有以下程序:main(){ int y=1111;printf(“y=%6d\n”,y);printf(“y=%+06d\n”,y);}程序运行的结果是:()a) y= 1111 b) y= 1111c) y=1111 d) y= 1111y=001111 y=+01111 y=+01111 y=1111 26. 有以下程序:main(){ int y=456;printf(“*y=%7o*\n”,y);printf(“*y=%-7o*\n”,y);printf(“*y=%07o*\n”,y);}程序运行的结果是:()a) *y= 710*b) *y= 456**y=710 * *y=456 **y=0000710* *y=0000456*c) *y=710* d) *y=456**y=-710* *y=-456**y=0710* *y=0456*27. 有以下程序:main(){ float y=3.667;printf(“*%f*\n”,y);printf(“*%7.2f*\n”,y);printf(“*%8.0f*\n”,y);}程序运行的结果是:()a) *3.667000* b) *3.667000** 3.67* *3.667 ** 4* *4.000000*c) *3.667* d) *3.667000**3.667000* *3.67**3.667000* *4.000000*28. 已有定义:double a,b;,若要求按输入方式(此处*代表一个空格)**1.0**2.0<回车> 分别给a,b输入1,2,则能正确进行输入的语句是()a) scanf(“%f%f”,&a,&b);b) scanf(“%5.1lf%5.1lf”,&a,&b);c) scanf(“%lf%lf”,&a,&b);d) scanf(“%5e%5e”,&a,&b);29. 以下合法的定义语句是()a) short _auto_=100-1;b) double b=1+5e2.5;c) long do=1l;d) float 2_and=1e-3;30. 以下选项中不是C语句的是()a) ++t b) ; c) k=i=j; d) {a/=b=1;b=a%2;}31. 有定义语句:int a=5,b;,不能给b赋2的赋值语句是()a) b=a/2; b) b=b+2; c) b=2%a; d) b=5;b=2;32. 设x和y均为int型变量,语句组x+=y;y=x-y;x-=y;的功能是()a) 把x和y从小到大排列b) 把x和y从大到小排列c) 无确定结果d) 交换x和y中的值33. 有定义语句:long int a; int k;,能给a赋40000的正确语句是()a) a=20000+20000; b) a=4000*10;c) k=400;a=k*100; d) a=4000;a=a*10;34. 若有定义:int a=8,b=5,c;,执行语句:c=a/b+0.4;后,c的值是()a) 1.4 b) 1c) 2.0 d) 235. 有以下程序:main(){ int k=2,i=2,m;m=(k+=i*=k++);printf(“y=%d,%d\n”,m,i);}程序运行的结果是:()a) 8,6 b) 8,3 c) 6,4 d) 7,436. 有以下程序:main(){ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}程序运行的结果是:()a) 3 4 b) 4 2c) 4 3 d) 3 337. 有以下程序:main(){ int i; long l ; float f ; double d ;i=f=l=d=20/3;printf(“%d %ld %3.1f %3.1f\n”,i,l,f,d);}程序运行的结果是:()a) 6 6 6.0 6.0 b) 6 6 6.7 6.7c) 6 6 6.0 6.7 d) 6 6 6.7 6.038. 有以下程序:main(){ unsigned a=32768; int b ;b=a ;printf(“b=%d\n”,b);}程序运行的结果是:()a) b=32768 b) b=32767 c) b=-32768d) b=-1 39.有以下语句printf(“%d,%d,%u\n”,016,16,-16);其输出结果是()a) 16,16,65520 b) 14,16,65520c) 16,16,-16 d) 14,16,-1640.若有定义语句:int b=0x17;printf(“%d”,b++);,其正确的输出结果是()a) 23 b) 24 c) 25 d) 2241.有以下程序:main(){ int x=0xffff;printf(“%d\n”,x--);}程序运行的结果是:()a) 32767 b) FFFEc) -1 d) -32768二.填空题1.已有定义:float f=13.8;,则表达式:(int)f%3的值是___1___.2. 已有定义:int x=3;, 则表达式:x=x+1.78的值是___4___.3. 已有定义:double x=3.5; 则表达式:x=(int)x+1的值是_4.000000__.4. 已有定义:int x=10,y=3,z;, 则表达式:z=(x%y,x/y) 的值是__3___.5. 设a,b,c为整型数,且a的值为2,b的值为3, c的值为4,表达式:a*=16+(b++)-(++c)的值为__28____.6. 已有定义:int x=0,y=0;,则计算表达式:(x+=2,y=x+3/2,y+5)后,表达式的值是_8__,变量x的值是_2__,变量y的值是__3__.7. 已有定义:int x=110,y=017;,则计算表达式:(x++,++y)后,按十进制表示,变量x的值是__111___,变量y的值是__16___。

C语言基本数据类型及运算题库

C语言基本数据类型及运算题库

第二章基本数据类型及运算一、选择题1. 若以下选项中的变量已正确定义,则正确的赋值语句是。

A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3;答案:C2. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是。

A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0答案:C3. 下列C语言中运算对象必须是整型的运算符是。

A) %= B) / C) = D) *=答案:A4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是。

A) 0 B) 0.5 C) 1 D) 2答案:A5. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是。

A) 把x和y按从大到小排列 B) 把x和y按从小到大排列C) 无确定结果 D) 交换x和y中的值答案:D6. 下列变量定义中合法的是。

A)short_a=1-.le-1; B)double b=1+5e2.5;C)long do=0xfdaL; D)float 2_and=1-e-3;答案:A7. 以下4个选项中,不能被看作是一条语句的是。

A) {;} B) a=0,b=0,c=0;C) if (a>0); D) if (b==0)m=1;n=2;答案:D8. 设x=1,y=-1,下列表达式中解为8的是。

A)x&y B)~x│x C)x^x D)x<<=3答案:D9. 在C语言中不合法的整数是。

A)20 B)0x4001 C)08 D)0x12ed答案: C10. 以下选项中不正确的实型常量是A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2答案:B)11.若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7 B)a=7+b+c,a++C)int(12.3%4) D)a=a+7=c+b答案:B)12.以下十六进制数中不合法的是A)oxff B)0Xabc C)0x11 D)0x19答案:A)13. 设int i=2,j=3,k=4,a=4,b=5,c=3;,则执行表达式(a=i<j)&&(b=j>k)&&(c=i,j,k)后,c值是。

c语言第二章课后习题答案

c语言第二章课后习题答案

第3章数据类型、运算符与表达式习题答案一、选择题1.以下表示正确常量的是()。

(A) E-5 (B) 1E5.1 (C) 'a12' (D) 32766L【答案】D2.若有定义:int a=1,b=2,c=3,d=4,x=5,y=6; 则表达式(x=a>b)&&(y=c>d) 的值为()。

(A)0 (B) 1 (C) 5 (D) 6【答案】A3.以下()是正确的字符常量。

(A)"c" (B) '\\'' (C) 'W' (D) "\32a"【答案】C4.以下()是不正确的字符串常量。

(A) 'abc' (B) "12'12" (C) "0" (D) " "【答案】A5.以下是正确的浮点数的是()。

(A)e3 (B) .62 (C) 2e4.5 (D) 123【答案】B6.若有定义:int a=2; 则正确的赋值表达式是()。

(A)a-=(a*3) (B) double(-a) (C) a*3 (D) a*4=3【答案】A7.若有定义:int x=1111,y=222,z=33;则语句printf("%4d+%3d+%2d", x, y, z);运行后的输出结果为()。

(A)111122233 (B)1111,222,33(C)1111 222 33 (D)1111+222+33【答案】D8.已有如下定义和输入语句:int a,b;scanf("%d,%d",&a,&b);若要求a、b的值分别为11和22,正确的数据输入是哪一个?()(A)11 22 (B)11,22 (C)a=11,b=22 (D)11;22【答案】B9.已有如下定义和输入语句,int a; char c1,c2;scanf("%d%c%c",&a,&c1,&c2);若要求a、c1、c2的值分别为40、A和A,正确的数据输入是()。

C语言数据类型、运算符和表达式

C语言数据类型、运算符和表达式

逻辑运算符
总结词
用于组合或比较布尔值的运算符
详细描述
逻辑运算符包括逻辑与(&&)、逻 辑或(||)和逻辑非(!)。它们用于 组合或比较布尔值,并根据逻辑关系 返回真或假。
位运算符
总结词
对二进制位进行操作的运算符
VS
详细描述
位运算符包括位与(&)、位或(|)、位 异或(^)、位非(~)和位移运算符 (<<、>>)。它们对二进制位进行操作, 可以实现位级别的逻辑运算和位移操作。
例子
a = b、c += d、e -= f、 g *= h、i /= j、k %= l、 m &= n、o ^= p、q |= r、s <<= t、u >>= v
描述
用于给变量赋值或对变量 进行复合赋值操作。
THANKS
感谢观看
描述
用于进行数值计算,结果为算术类型。
关系表达式
关系运算符
、<、>=、<=、==、!=
例子
a > b、c < d、e >= f、g <= h、i == j、k != l
描述
用于比较两个值的大小关系,结果为整型,1表示关系成立,0表 示关系不成立。
逻辑表达式
逻辑运算符
01
&&、||、!
例子
02
a && b、c || d、!e
描述
03
用于进行逻辑运算,结果为整型,1表示逻辑成立,0表示逻辑
不成立。
位表达式
位运算符
&、|、^、~、<<、>>
例子

C语言-2数据类型、运算符和表达式

C语言-2数据类型、运算符和表达式

常量与变量
运算符与表达式 数据类型转换
2.4
2.5
8

标识符(identifier) :
给程序中的实体——变量、常量、函数、数组、定: 标识符只能由字母、数字和下划线三种字符组成,且第一 个字符必须为字母或下划线。 例如:a1 _a1
9

如: 15.01 如: 3.5E7或3.5e7

注意事项: 字母E或e前后必须要有数字 E或e后边的指数必须为整数 整数或小数部分可以省略,但不能同时省略 默认为双精度实型常量:如 123.45 定义单精度实型常量 123.45f、1e-2F 定义长双精度型常量 123.45l、 456.78L、1e-2l
标识符分类:
关键字: C语言具有特定含义的标识符,必须用小写
系统定义标识符
如:int/long/void/for等
预定义标识符: 系统定义的标识符,如:标准库
函数名、编译预处理命令
用户自定义标识符:
用户对其使用的变量、数组、函数等操作对象所命的名字
注意:标识符区分大小写
10
关键字:C语言规定具有特定含义的标识符。 关键字必须为小写字母。
11
库函数名、头文件、编译预处理命令等统称为预定义标识符. 用户定义标识符时,应注意避免和预定义标识符重名.否则原 预定义标识符就失去了原有的作用.

标准库函数
数学函数:sqrt, fabs, sin, cos, pow等 输入输出函数:scanf, printf, gets,puts等

编译预处理命令

2、变量的赋值
通过赋值语句赋值
int a; a=3; 通过初始化方式赋初值 int k=3;

第2章数据类型,运算符与表达式参考答案及解析

第2章数据类型,运算符与表达式参考答案及解析

参考答案及解析一、选择题1. 答案:C【解析】C语言的标识符命名规则为:①只能由字母、数值和下划线3种字符组成;②第一个字符必须是字母或下划线;③不能与C语言中的关键字或保留字相同。

2. 答案:C【解析】标识符命名规则:标识符必须由字母(a~z或A~Z)或下划线(_)开头;标识符的其他部分可以用字母、下划线或数字(0~9)组成;大小写字母表示不同意义,如cout和Cout 代表不同的标识符;在定义标识符时,虽然语法上允许用下划线开头,但是,我们最好避免定义用下划线开头的标识符,因为编译器常常定义一些下划线开头的标识符。

因此,本题正确答案为C)。

3. 答案:C【解析】C语言合法标识符的命名规则是:标识符只能由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。

因为选项C)中的标识符的第一个字符为"&",所以选项C)为本题的正确答案。

4. 答案:A【解析】在C语言中,合法标识符的命名规则是:标识符可以由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。

C语言的标识符可以分为关键字、预定义标识符和用户标识符。

选项B)和C)中的横线以及点都不合法,选项D)中的case为C语言关键字,故本题答案为A)。

5. 答案:B【解析】C语言规定用户标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线,可见选项C),D)是错误的;此外,C语言不允许用户将关键字作为标识符,而选项A)中的void正是C语言的关键字。

6. 答案:C【解析】C语言规定的标识符只能由字母、数字和下划线3种字符组成,第一个字符必须为字母或下划线,并且不能使用C语言中的关键字作为标识符。

选项C)中goto和int是关键字,b-a中"-"不是组成标识符的3种字符之一;选项D)中int是关键字,所以,均是不合法用户标识符的选项是C)。

7. 答案:B【解析】合法的标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,用户定义的标识符不能与关键字相同。

C语言 第2章 类型、运算符与表达式(2.4~2.7)

C语言 第2章 类型、运算符与表达式(2.4~2.7)
第二章
数据类型、运算符和表达式
主要内容
2.1 预备知识 2.2 常量和变量的概念 2.3 各种数据类型的常量及变量 2.4 变量赋初值 2.5 不同类型数据之间的混合运算 2.6 常用运算符和表达式 2.7 输入函数与输出函数
2
2.4.1 变量和内存的概念
变量: 程序运行过程中其值可以改变的量。 系统为程序中的每一个变量开辟存储单元。 变量名: 字母开头,后跟字母、数字和下划线组成。 C语言中的关键字不能作为变量名。
37
2.7.1
格式输出函数printf
printf函数一般格式: printf(格式控制,输出表列) 格式控制是由双引号括起来的字符串,包含三种信息: 1、格式说明:由“%”和格式字符组成,如%d,%f等。 它的作用是将输出的数据按照指定的格式输出。 2、普通字符:需要原样输出的字符。 3、转义字符:用于控制输出。 输出表列是一些要输出的数据。
27
2.5 数据的混合运算
1、自动转换
• 运算转换
• 赋值转换 2、强制类型转换
28
1、自动转换—运算转换

在进行运算时,不同类型的数据要先自动转换成 同一类型,然后进行运算。转换的规则按图所示。
double← float
long unsigned 转换由编译系统自动完成。 转换按数据长度增加的方向进行, 即按“向高看齐”的原则提升“ 较低”类型,以保证不降低精度。

33
2、强制类型转换
注意:对一个变量进行强制转换后,得到一个新的 类型的数据,但原来变量的类型不变。 例:x原为实型变量且值为2.6,在执行 i = (int)x 后得到一个整数 2,并把它赋给整型变量 i, 但 x 仍为实型,值为2.6。

C语言-数据类型习题及答案

C语言-数据类型习题及答案

第二章数据类型,运算符与表达式一.选择题1.不合法的字符常量是(B)。

A)…\t?B) “A” C)…a?D)?\x32?2、合法的字符常量是(D)。

A)…\084?B) …\84? C)…ab?D)?\x43?2.(B)是C语言提供的合法的数据类型关键字。

A)Float B)signed C)integer D)Char3.在以下各组标识符中,合法的标识符是(4)。

(1)A)B01 B)table_1 C)0_t D)k%(2)A)Fast_ B)void C)pbl D)<book>(3)A)xy_ B)longdouble C)*p D)CHAR(4) A) sj B)Int C)_xy D)w_y234.属于合法的C语言长整型常量的是(B)。

A)5876273 B)0L C)2E10 D)(long)58762735.下面选项中,不是合法整型常量的是(B)。

A)160 B)-0xcdg C)-01 D)-0x48a6.判断int x = 0xaffbc;x的结果是(B)(turbo c 版本)。

A)赋值非法B)溢出C)为affb D)为ffbc7.下面选项中,均是合法浮点数的是(B)。

A)+1e+1 B)-.60 C)123e D)-e3A)5e-9.4 B)12e-4 C)1.2e-.4 D).8e-4A)03e2 B)-8e5 C)+2e-1 D)5.e-08.在C语言中,要求参加运算的数必须是整数的运算符是(C)。

A)/ B)* C)% D) =9.在C语言中,字符型数据在内存中以(D)形式存放。

A)原码B)BCD码C)反码D)ASCII码10.下列语句中,符合语法的赋值语句是(C)。

A)a=7+b+c=a+7;B)a=7+b++=a+7;C)a=(7+b,b++,a+7);D)a=7+b,c=a+7;11.(B)是非法的C语言转义字符。

A)…\b?B)…\0xf? C)…\037? D)…\??12.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中(B),是正确的。

第2章数据类型、运算符和表达式

第2章数据类型、运算符和表达式

(2)预定义的标识符 预定义的标识符在C语言中都有特殊含义,如 scanf和 printf 是库函数名,系统中用来作为输入输出函数。用户一般不要用 它们作为自定义标识符。 (3)用户自定义标识符 在程序中使用的变量名、符号常量名、函数名、数组名、类 型名、文件名、标号名等有效的字符序列,除库函数的函数名、 关键字由系统定义外,其余都由用户自定义,统称为用户自定 义标识符。 例如: total,area,_ab,sum,average,student_name,等 都是合法的标识符。 标识符虽然可由程序员随意定义,但标识 符是用于标识某个量的符号。因此,命名应尽量有相应的意义, 以便阅读理解,做到“见名知义”。 变量名要用小写字母,符号常量名要用大写字母。即在标识 符中,大小写是有区别的。例如:A和a是两个不同的标识符。
数据类型 类型说明符 数值范围
整型 int -32768~32767 -215~215-1 0~65535 -32768~32767 -215~215-1
字节
2 2 2 2 4
无符号整型 unsigned int 短整型 short
无符号短整 unsigned short 型 long 长整型 无符号长整 unsigned ong 型
2.2.4 字符串常量
字符串常量是由一对双引号括起的字符序列。例如: "CHINA" ,"C program." , "$12.5" 等都是合法的字符串常 量。字符串常量和字符常量是不同的量。它们之间主要有以下 区别: ①字符常量由单引号括起来,字符串常量由双引号括起来。 ②字符常量只能是单个字符,字符串常量则可以含零个或多个 字符。
3、十进制整常数 十进制整常数没有前缀。其数码为0~9。 以下各数是合法的十进制整常数:237,-568 ,65535 4、整型常数的后缀 在16位字长的机器上,基本整型的长度也为16位,因此表 示的数的范围也是有限定的。十进制无符号整常数的范围为 0~65535,有符号数为-32768~+32767。如果使用的数超过了 上述范围,就必须用长整型数来表示。长整型数是用后缀“L” 或“l”来表示的。例如: 十进制长整常数 158L (十进制为158) 358000L (十进制为358000) 八进制长整常数 012L (十进制为10) 077L (十进制为63) 0200000L (十进制为65536) 十六进制长整常数 0X15L (十进制为21) 0XA5L (十进制为165) 0X10000L (十进制为65536

c语言第二章试题及答案

c语言第二章试题及答案

c语言第二章试题及答案一、选择题1. 在C语言中,以下哪个选项不是合法的变量名?A. _123B. intC. 2nameD. name123答案:C2. C语言中,用于定义整型变量的关键字是:A. intB. floatC. charD. double答案:A3. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. %D. ==答案:A4. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defineC. defD. void答案:D5. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello";B. char str[] = "Hello", str2[] = "World";C. char str[] = {"Hello"};D. char str[] = "Hello", "World";答案:A二、填空题1. 在C语言中,使用________关键字可以定义一个指针。

答案:int*2. 如果需要定义一个可以存储10个整数的数组,应该使用________关键字。

答案:int3. 在C语言中,使用________函数可以将字符串从标准输入读取到程序中。

答案:scanf4. 要将一个整数变量的值赋给另一个整数变量,可以使用________运算符。

答案:=5. 在C语言中,使用________函数可以输出字符串到标准输出。

答案:printf三、简答题1. 请简述C语言中数组和指针的区别。

答案:数组是一种数据结构,用于存储相同类型的多个元素,而指针是一种变量,它存储的是另一个变量的内存地址。

数组名可以作为指针使用,但它本身并不是指针。

2. 解释C语言中函数声明和函数定义的区别。

答案:函数声明提供了函数的原型,包括函数名、返回类型和参数类型,但不包含函数体。

考点6 数据类型、运算符与表达式

考点6 数据类型、运算符与表达式

考点6 数据类型、运算符与表达式(1)【答案】A)【解析】C语言中标识符由字母、下划线或数字组成,且开头必须是字母或下划线。

另外,关键字不能作为其他用途的标识符。

因为C语言中区分大小写,所以B)选项中的“FOR”可以作为标识符来用。

A)选项中含有非法字符&,因此选择A)。

(2)【答案】A)【解析】C语言中标识符由字母、下划线或数字组成,且开头必须是字母或下划线。

因此A)选项中的连接符不合法。

(3)【答案】A)【解析】变量命名规范:由字母数字下划线组成,且数字不作为开头。

所以A)错误。

(4)【答案】A)【解析】C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。

另外,关键字不能作为其他用途的标识符。

B)选项中以数字8开头,所以错误。

C)与D)中用的是关键字void与unsigned,因此错误。

故本题答案为A)。

(5)【答案】A)【解析】C语言不存在逻辑类型,所以A)错误。

单精度float类型可提供6位有效数字,双精度double类型可提供16位有效数字,所以要保存带有多位小数的数据,要使用双精度类型,所以B)选项正确。

结构体类型可以保存不同类型数据,所以C)正确,整数的表示是不存在误差的,所以D)选项正确。

(6)【答案】A)【解析】C语言中八进制整型常量的开头是数字0,十六进制整型常量的开头是数字0x或0X。

C语言中的实型常量有两种表示形式:小数形式,小数形式表示的实型常量必须要有小数点;指数形式,以“e”或“E”后跟一个整数来表示以10为底数的幂数,且规定字母e或E之前必须要有数字,且e 或E后面的指数必须为整数。

B)选项中028错误,八进制中没有数字8。

C)选项中4e1.5中e后面的指数不是整数。

D)选项中3.e5小数点后面缺少数字。

因此本题答案为A)。

(7)【答案】A)【解析】A)选项中115L表示115是长整型数据,合法。

B)选项是八进制常量的表示方法,但是在八进制中不能含有数字8,因此B)选项错误。

C语言练习-运算符和表达式

C语言练习-运算符和表达式

数据类型,运算符与表达式1. 单项选择题(1)以下字符串为标识符的是。

A. _MYB. 2_2222C. shortD. LINE 5【答】A(2)下列符号可以作为变量名的是。

A. +aB. *pC. _DAYD. next day【答】C(3)设c是字符变量,则以下表达式正确的是。

A. c=666B. c='c'C. c="c"D. c="abcd"【答】B(4)23+'m'+3.6-123.45/'b'的结果是型数据。

A. charB. doubleC. intD. long int【答】3.6和123.45均为double型,运算结果也是double型。

本题答案为B。

(5)若变量已正确赋值,以下符合C语言语法的表达式是。

A. a=a+7;B. a=7+b+c,a++C. int(12.3%4)D. a=a+7=c+b【答】选项A错误,以分号结尾是一个语句而不是表达式;选项B正确,是一个逗号表达式;选项C错误,因为%求模运算的两个运算数必须均为整数;选项D错误,给一个表达式(a+7)而非变量赋值是不正确的。

本题答案为B。

(6)整型变量x=1,y=3,经下列计算后,x的值不等于6的表达式是。

A. x=(x=1+2,x*2)B. x=y>2?6:5C. x=9-(--y)-(--y)D. x=y*(int)(4.8/2)【答】选项A的计算过程——x=1+2=3,再计算x=x*2=6;选项B的计算过程——y>2为真,x=6;选项C的计算过程——式中有两个--运算,最后y=1,x=9-1-1=7;选项D的计算过程——x=y*(int)(4.8/2)=y*2=6。

本题答案为C。

(7)若定义int m=7,n=12;则能得到值为3的表达式是。

A. n%=(m%=5)B. n%=(m-m%5)C. n%=m-m%5D. (n%=m)-(m%=5)【答】A、B、C、D选项各表达式的值分别是0、2、2、3。

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

第二章数据类型运算符和表达式
一、单项选择
1.若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为( B )
2.下面四个选项中,均是不合法的用户标识符的选项是( B )。

3.判断字符型变量c1是否为数字字符的正确表达式为( A )
4.在C语言中,要求运算数必须是整型的运算符是( A )
5.下面四个选项中,均是合法的用户标识符的选项是(A)。

6.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(B)。

7.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为(B)。

8.表达式18/4*sqrt(4.0)/8值的数据类型为(B)。

9.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( D )
10.判断字符型变量c1是否为小写字母的正确表达式为(B)。

11.在C语言中,char型数据在内存中的存储形式是(C)。

12.以下选项中关于C语言常量的叙述错误的是:( D )
13.下面正确的字符常量是(B)
14.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( D)
15.以下选项中,能表示逻辑值"假"的是( B )
16.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为(C)
17.以下选项中非法的字符常量是( B )
18.以下关于C语言数据类型使用的叙述中错误的是(B )
19.设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为(C)。

20.若有数学式3ae
bc,则不正确的C语言表达式是(A)
21.下列表达式中,不满足"当x的值为偶数时值为真,为奇数时值为假"的要求的是(C)
二、填空
1.若s是int型变量,s=6;则表达式s%2+(s+1)%2的值为___1__
2.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为___9__
3.C语言中的标识符只能由三种字符组成,它们是__字母___,_数字____和____下划线_
4.若a.b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为 6,b值为_4,c值为_2_
5.在C语言中,不带任何修饰符的浮点常量,是按___double__类型数据存储的。

6.已知A=
7.5,B=2,C=3.6,表达式A>B && C>A || A<B && !C>B的值是__0___
7.设有以下变量定义,并已赋确定的值,char w; int x; float y; double z;则表达式:w*x+z-y所求得的数据类型为_double____
8.假设m是一个三位数,从左到右用a、b、c表示各位的数字,则从左到右各个数字是bac的三位数的表达式是100*b+10*a+cc+10*a+100*b
9.若有x=1,y=2,z=3,则表达式(x<y?x:y)==z++的值是_0____
10.数学表达式
)
(3b
a
b
a
+
-
等价的C语言表达式是sqrt(fabs(a-b))/(3*(a+b))
11.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为__int___
12.若a是int型变量,则表达式(a=4*5,a*2),a+6的值为_26__
13.若x和n均是int型变量,且x和n的初值均为5,则精神表达式x+=n++后x的值为__10___,n 的值为___6__
14.执行以下程序段后,a=___10__,b=___9__,c=____11_。

int x=10,y=9 ;
int a,b,c ;
a = (x--==y++) ? x-- : y++ ;
b = x++ ;
c = y ;
15.设x,y,z 均为int 型变量;写出描述“x,y 和z 中有两个为负数”的C 语言表达式:(x<0&&y<0)||(x<0&&z<0)||(y<0&&z<0)
16.已知int a=7;float x=2.5,y=4.7;计算表达式的值为
4/2)%(int)(*3%y x a x ++2.5
17.若有定义:int e=1,f=4,g=2;float m=10.5,n=4.0,k;则计算赋值表达式k=(e+f)
/g+sqrt((double)n)*1.2/g+m 后k 的值是_13.7____
18.若x 为int 类型,请以最简单的形式写出与逻辑表达式!x 等价的C 语言关系表达式_x==0____。

相关文档
最新文档