《C语言程序设计》综合练习题
一、单选题
1. C语言中基本数据类型有 。C
A) 整型、实型、逻辑型 B)整型、字符型、逻辑型
C) 整型、实型、字符型 D)整型、实型、字符型、逻辑型
2. 在C语言中,数字O29是一个 。A
A) 八进制数 B) 十进制数 C) 十六进制数 D) 非法数
3. 在以下关于C语言的不严格的叙述中,错误的说法是 。A
A) 在标识符中,大写字母和小些字母的意义相同
B) 有些不同类型的变量可以在一个表达式中运算
C) 在赋值表达式中等号 “=”左边的变量和右边的值可以是不同类型
D) 同一个运算符号在不同的场合可以有不同的含义
4. 下列关于C语言用户标识符的叙述中正确的是 。B
A)用户标识符中可以出现下划线和中划线(减号)
B)用户标识符中不可以出现中划线,但可以出现下划线
C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
【解析】考查C语言中的用户标识符规则,在C语言程序设计中,用户标识符是由字母、数字和下划线组成的,并且第一个字符必须是字母或下划线。
5. 结构化程序设计方法中有三种基本控制结构,以下不正确的是 。D
A) 顺序结构 B) 选择结构 C) 循环结构 D) 数组结构
6. C语言提供的合法关键字是 。D
A) swicth B) cha C) Case D) default
7.以下非法的赋值语句是 C
A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;
【解析】对表达式不能进行自加自减运算。
8.在以下一组运算符中,优先级最高的运算符是 。
A) <= B) = C) % D) &&
【解析】C语言常用的积累运算符的优先级关系是:逻辑非“!”>算术运算符>关系运算符>逻辑与“&&”>逻辑或“||”>赋值运算符>逗号运算符。由于C选项为求余运算符,所以本题正确答案为C选项。
9. 以下四个选项中不能看作一条语句的是 。D
A) {; } 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. 能将高级语言编写的源程序转换为目标程序的软件是 。D
A) 汇编程序 B) 编辑程序 C) 解释程序 D) 编译程序
11.以下选项中合法的实型常数是 。C
A) 5E2.0 B) E-3 C) .2E0 D) 1.3E
【解析】以指数形式表示实数时,字母e或E之前必须有数字,且e后面指数必须为整数。免费的数控编程自学网站
12.依据C语言的语法规则,下列合法标识符是 A
A)Else B)else C)user$2 D)5_examp
【解析】标识符的定义有明确的规则:(1)标识符只能由字母、数字、下划线三者构成;(2)标识符的首字符必须是字母或者下划线;(3)标识符命名对字母大小写敏感;(4)标识符定义不能和C语言关键字(Key Words)相同。C语言中标识符对大小写敏感,sum和SUM是不同的标识符。jsonp和json区别
13.以下选项中合法的用户标识是 。
A) long B) _2Test C) 3Dmax D) A.dat
【解析】选项中A为保留字;选项C没有以字母或者“_”开头;选项D中不能有“.”
14.在C语言中,字符型数据在内存中的存储形式是 。D
A) 原码 B) 补码 C) 反码 D) ASCII码
【解析】数据在内存中是以二进制形式存放的。数值是以补码表示的。c的char数据属于基本类型,在内存中字符的存储实际上是把字符相对应的ASCII代码放到存储单元中的。而这些ASCII代码值在计算机中也是以二进制形式存放的。这个与整型的存储很相似。因此这两类之间的转换也比较方便!整型:一个正数的补码和其原码的形式相同。而负数的补码方式是将其绝对值的二进制形式“按位求反再加1”; 实型:在内存中占4个字节,是按照指数形式存储的,实型数据分为小数部分和指数部分,分别存放!计算机用二进制表示小数部分,用2的幂次来表示指数部分!
15.以下非法的赋值语句是 。C
A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;
【解析】对表达式不能进行自加自减运算。
16.已定义c为字符型变量,则下列正确的赋值语句是 。D
A) c='66'; B) c="66"; C)putchar函数 c="B"; D) c=66;
17.已知小写字母的ASCII码为97,对于int a=99, b='b'; printf(“%c,%d”, a , b);的结果是 。B
A) 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已正确赋值,合法的语句是 。B
A) 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的值是 。D
A) 3.500000 B) 3 C) 2.000000 D) 3.000000
【解析】算出来结果为3,排除A和C选项;又因为是double型,所以D选项为正确答案。
20.以下程序的输出结果是 。C
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) 不确定
【解析】本题考察条件表达式。简单的条件表达式(条件表达式?表达式1:表达式2)可以用来代替if语句进行赋值。详见教材102页。
21.设a=3,b=4,c=-5,则逻辑表达式:a || b+c && b==c 的值是正则匹配多个数字 。B
A) 1 B) 0 Cscanf同时输入字符和数字) 非0 D) 语法错
【解析】运算符优先级由高到底为算术运算符---关系运算符---&&和||---赋值运算符。其中&&和||的结合方向为从左到右音效网
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论