《C语言程序设计》综合练习题一、单选题1. C语言中基本数据类型有。
CA)整型、实型、逻辑型B)整型、字符型、逻辑型C)整型、实型、字符型D)整型、实型、字符型、逻辑型2. 在C语言中,数字O29是一个。
AA)八进制数 B)十进制数 C)十六进制数 D)非法数3. 在以下关于C语言的不严格的叙述中,错误的说法是。
AA)在标识符中,大写字母和小些字母的意义相同B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义4.下列关于C语言用户标识符的叙述中正确的是。
BA)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线,但可以出现下划线C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头【解析】考查C语言中的用户标识符规则,在C语言程序设计中,用户标识符是由字母、数字和下划线组成的,并且第一个字符必须是字母或下划线。
5. 结构化程序设计方法中有三种基本控制结构,以下不正确的是。
DA) 顺序结构B) 选择结构C) 循环结构 D) 数组结构6. C语言提供的合法关键字是。
DA) swicth B) cha C) Case D) default7.以下非法的赋值语句是CA) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;【解析】对表达式不能进行自加自减运算。
8.在以下一组运算符中,优先级最高的运算符是。
A) <= B) = C) % D) &&【解析】C语言常用的积累运算符的优先级关系是:逻辑非“!”>算术运算符>关系运算符>逻辑与“&&”>逻辑或“||”>赋值运算符>逗号运算符。
由于C选项为求余运算符,所以本题正确答案为C选项。
9. 以下四个选项中不能看作一条语句的是。
DA) {;} B) a=0,b=0,c=0; C) if(a>0) D) if(b==0)m=1;n=2;【解析】C语言的基本语句包含控制语句、表达式语句、空语句、复合语句、函数调用语句。
控制语句:完成一定的控制功能,C语言有9种控制语句,分别是if-else、while、continue、switch、return、for、do-while、break、goto;表达式语句:由各类表达式构成,后面加上一个分号,就可以单独作为一条语句出现在一行,多数情况下含赋值运算符。
复合语句:由一对大括号将一组语句序列括起来形成一个程序段,经常出现在选择或循环语句中。
空语句:只有一个分号,表示什么也不做。
函数调用语句:由函数名、圆括号内加实参表和分号组成。
本题中D选项为三条语句,一条控制语句,链条表达式语句。
正确答案为D选项。
10. 能将高级语言编写的源程序转换为目标程序的软件是。
DA) 汇编程序B) 编辑程序C) 解释程序D) 编译程序11.以下选项中合法的实型常数是。
CA) 5E2.0 B) E-3 C) .2E0 D) 1.3E【解析】以指数形式表示实数时,字母e或E之前必须有数字,且e后面指数必须为整数。
12.依据C语言的语法规则,下列合法标识符是AA)Else B)else C)user$2 D)5_examp【解析】标识符的定义有明确的规则:(1)标识符只能由字母、数字、下划线三者构成;(2)标识符的首字符必须是字母或者下划线;(3)标识符命名对字母大小写敏感;(4)标识符定义不能和C语言关键字(Key Words)相同。
C语言中标识符对大小写敏感,sum和SUM是不同的标识符。
13.以下选项中合法的用户标识是。
A) long B) _2Test C) 3Dmax D) A.dat【解析】选项中A为保留字;选项C没有以字母或者“_”开头;选项D中不能有“.”14.在C语言中,字符型数据在内存中的存储形式是。
DA) 原码B) 补码C) 反码D) ASCII码【解析】数据在内存中是以二进制形式存放的。
数值是以补码表示的。
c的char数据属于基本类型,在内存中字符的存储实际上是把字符相对应的ASCII代码放到存储单元中的。
而这些ASCII代码值在计算机中也是以二进制形式存放的。
这个与整型的存储很相似。
因此这两类之间的转换也比较方便!整型:一个正数的补码和其原码的形式相同。
而负数的补码方式是将其绝对值的二进制形式“按位求反再加1”;实型:在内存中占4个字节,是按照指数形式存储的,实型数据分为小数部分和指数部分,分别存放!计算机用二进制表示小数部分,用2的幂次来表示指数部分!15.以下非法的赋值语句是。
CA) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;【解析】对表达式不能进行自加自减运算。
16.已定义c为字符型变量,则下列正确的赋值语句是。
DA) c='66'; B) c="66"; C) c="B"; D) c=66;17.已知小写字母的ASCII码为97,对于int a=99, b='b'; printf(“%c,%d”, a , b);的结果是。
BA) 99, b B) c, 98 C) 99, 98 D) c, b【解析】字符类型变量用char来定义,特别要注意字符数据在内存中的存储方式:字符数据在内存中是用字符对应的ASCII码存储,其存储形式实质是采用整数形式,由于ASCII码集合中有256个字符,因此用0~255这个范围内的256个整数分别与每个字符对应。
因此字符型数据和整型数据在一定范围(0~255)内,形式上可以相互引用。
表现在这两种类型的变量能够以对方形式常量来赋值,以对方的形式来输出,还可以同时出现在算数表达式中参与运算int n='a'; /*相当于n=97*/char c=65; /*相当于c='A',A的ASCII码是65*/printf("n=%d,n=%c",n,n); /*输出:c=97,n=a*/printf("c=%d,c=%c",c,c); /*输出:n=65,n=A*/虽然字符型数据和整型数据在一定范围内可以通用,但其外在表现形式并不影响各自的数据类型,上例中n本质上还是整型变量,c本质上还是字符型变量。
18.若变量a和i已正确定义,且i已正确赋值,合法的语句是。
BA) a=1 B) ++i; C) a=a++=5 D) a=int(i)【解析】C语言的语句必须以分号结束,选项A是错误的。
赋值表达式等号的左边只能是变量,而不能是表达式,选项C中含有a++=5,是错误的。
选项D中的强制转换类型必须用圆括号将int括起来,也是不正确的。
19.假定x和y为double型,则表达式x=2,y=x+3/2的值是。
DA) 3.500000 B) 3 C) 2.000000 D) 3.000000【解析】算出来结果为3,排除A和C选项;又因为是double型,所以D选项为正确答案。
20.以下程序的输出结果是。
Cmain(){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) 不确定【解析】本题考察条件表达式。
简单的条件表达式(条件表达式?表达式1:表达式2)可以用来代替if语句进行赋值。
详见教材102页。
21.设a=3,b=4,c=-5,则逻辑表达式:a || b+c && b==c 的值是。
BA) 1 B) 0 C) 非0 D) 语法错【解析】运算符优先级由高到底为算术运算符---关系运算符---&&和||---赋值运算符。
其中&&和||的结合方向为从左到右22.表示关系x<=y<=z的c语言表达式为。
AA) (x<=y)&&(y<=z) B) (x<=y)AND(y<=z)C) x<=y<=z D) (x<=y)&(y<=z)【解析】C语言中没有关键字AND,逻辑与运算符是&&,不是AND,因此选项B是错误的;而&是C语言的位与运算符,因此选项D是错误的;选项C是数学表达式,也是错误的。
23.设有变量int x=0,y=1,z=1,则运行表达式:x=y++>z--后,x,y,z的值分别是。
DA) 1,1,1 B) 1,2,0 C) 0,1,1 D) 0,2,0【解析】注:前缀是先增值后引用,后缀是先引用再增值24.已知 int a=4,b=5; ,执行表达式 a=a>b 后,变量a的值为。
AA)0 B)1 C)4 D)5【解析】C语言常用的积累运算符的优先级关系是:逻辑非“!”>算术运算符>关系运算符>逻辑与“&&”>逻辑或“||”>赋值运算符>逗号运算符。
由于关系运算符优先级别高于赋值运算符,所以先执行a>b,得到结果为假,即0,所以变量a的值为0。
25.能正确表示逻辑关系“a≥10或a≤0”的C语言表达式是。
BA) a>=10 or a<=0 B) a>=10 || a<=0C) a>=10 && a<=0 D) a>=10 | a<=026.设有定义 int a=3,b=4,c=5; ,则以下表达式中,值为0的表达式是。
DA) a&&b B) a<=b C) a||b+c&&b-c D) !((a<b)&&!c||1)27.以下合法的赋值语句是。
BA)x=(1,y=2); B)++x; C)x=y=15; D)y=int(x);28.以下选项中,与k=n++完全等价的表达式是。
AA) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1【解析】在本题中,k=n++为后辍运算,根据其运算规则,应先把n的值赋给k,然后n的值再加上1,选项A的表达式与本题中的表达式等价。
29.若有定义:“int a=8,b=5,c;”,执行语句“c=a/b+0.4”后,c的值为。
A) 1.4 B) 1 C) 2.0 D) 2【解析】由于a,b,c都是整型变量,所以每一步计算都要取整,所以选B。
不同类型数据间是可以进行转换和运算的。