《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=1n=2
【解析】C语言的基本语句包含控制语句、表达式语句、空语句、复合语句、函数调用语句。控制语句:完成一定的控制功能,C语言有9种控制语句,分别是if-elsewhilecontinue
switchreturnfordo-whilebreakgoto
表达式语句:由各类表达式构成,后面加上一个分号,就可以单独作为一条语句出现在一行,多数情况下含赋值运算符。
复合语句:由一对大括号将一组语句序列括起来形成一个程序段,经常出现在选择或循环语句中。
空语句:只有一个分号,表示什么也不做。
函数调用语句:由函数名、圆括号内加实参表和分号组成。
本题中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小时内删除。