笔试题
1: 设 float a=2, b=4, c=3; ,以下 C 语言表达式与代数式 (a+b)+c 计算结果不一致的是
A.(a+b)*c/2
B.(1/2)*(a+b)*c
C.(a+b)*c*1/2
D.c/2*(a+b)
参考答案: B,因为 a,b,c 三个变量都是浮点数,所以在 B 答案中其结果是 0,因为在计算 1/2 是就是 0,如果改成 1/2.0 就正确了。
2: 为了向二进制文件尾部增加数据,打开文件的方式应采用
A.″ab″
B.″rb+″
C.″wb″
D.″wb+″
参考答案: D
3: 下述程序执行后的输出结果是
#include
main()
{
int x= 'f';
printf( “%c n”, 'a'+(x - ‘a'+1));
}
A.g
B.h
C.i
D.j
参考答案: A
4:C 语言中,下列运算符优先级高的是
A.!
B.%
C.>>
D.= =
参考答案: A
5:数组定义为“ int a [ 4 ] ; ”,表达式 ( ) 是错误的。
A.*a
B. a [ 0 ]
C. a
D.a++ 参考答案: D
6: 执行语句“ k=7>>1; ”后,变量 k 的当前值是
A.15
B.31
C. 3
D. 1 参考答案: C
7: 定义函数时,缺省函数的类型声明,则函数类型取缺省类型
A.void
B.char
C.float
D.int 参考答案: D 8: 若 main() 函数带参数,参数个数多是
A.0
B. 1
C. 2
D. 3
参考答案: C 只知道有定义形式 main(int argc,char* argv[]))
9: 若有宏定义: #define MOD(x , y) x%y 则执行以下语句后的输出结果是 int a=13 ,b=94; printf( ″%d n″, MOD(b, a+4));
A. 5
B.7
C.9
D.11
参考答案: B
10: 下列各个错误中,哪一个不属于编译错误
A.改变 x 原值 3 为 5 ,写作“ x==5 ; ”
B.花括号不配对
C.复合语句中的后一条语句后未加分号
D.变量有引用、无定义参考答案: A
11: 下列程序段运行后, x 的值是 ( )
a=1;b=2;x=0;
if(!( — a))x — ;
if(!b)x=7;else ++x;
A.0
B. 3
C. 6
D.7
参考答案: A
12: 设
#define N 3
#define Y(n) ((N+1)*n)
则表达式 2*(N+Y(5+1)) 的值是
A.42
B.48
C.54
D.出错
参考答案: B Y(5+1) 传递过去的应该是 6,而不是简单的把 5+1给替换掉
13: 若定义了 char ch[]={ ″abc 0def ″}, *p=ch; 则执行 printf( ″%c″,*p+4); 语句的输出结果是
A.def
B. d
C. e
D.0
参考答案: C
14: 下列转义字符中错误的是
A.′ 000′
B.′ 14′
C.′ x111′
D.′ 2′
参考答案: C error C2022: ‘273' : too big for character
15: 算术运算符,赋值运算符和关系运算符的运算优先级按从高到低依次为
A.算术运算、赋值运算、关系运算
B.算术运算、关系运算、赋值运算
C.关系运算、赋值运算、算术运算
D.关系运算、算术运算、赋值运算参考答案: B 16: 设#define N 3
#define Y(n) ((N+1)*n) 则表达式 2*(N+Y(5+1)) 的值是
A.42
B.48
C.54
D.出错
参考答案: B
17: 表达式 strcmp( “ 3.14 ”,“ 3.278 ” ) 的值是一个
A.非零整数
B.浮点数
C.0
D.字符参考答案: A 18: 设 struct { short a; char b; float c;
}cs;
则 sizeof(cs) 的值是
A. 4
B. 5
C. 6
D.7 参考答案: D 字节对齐的话应该是 8
19: 若变量已正确定义,表达式 ( j=3 , j++ ) 的值是
A. 3
B. 4
C. 5
D.0 参考答案: A 20:C 语言中运算对象必须是整型的运算符是
A.%
B./
C.!
D.**
参考答案: A 21: 多态类中的虚函数表是 Compile-Time ,还是 Run-Time 时建立的 ? 22:
01 #include
02
03 void main()
04
05 { int c;
06
07 while ((c=getchar())!= ′ \ n ′ )
08
09 switch(c - ′ 2 ′ )
10
11 { case 0:
12
13 case 1:putchar(c+4);break;
14
15 case 2:putchar(c+4);break;
16
17 case 3:putchar(c+3);break;
18
19 default:putchar(c+2);break;
20
21 }
22
23 printf( ″\ n ″ );
24
25 }
运行时输入: 2473 ,输出结果:
参考答案: 6897 VC++6.0 测试过
23:写一语句实现 x是否为 2 的若干次幂的判断。
参考答案: !(X)&(X-1)
24: 如何判别一个数是 unsigned 。
参考答案: 1 #define issignal(x) ((x>=0 && ~x>=0) ? 1:0) // 为 1 是无符号为 0 有符号
25: 已知一个数组 table ,用一个宏定义,求出数据的元素个数。
参考答案: #define NTBL
1 #define NTBL (sizeof(table)/sizeof(table[0]))
26: 最简单的 RS-232 线缆需要几根线?最通用的波特率是多少?最通用的位数是多少?
参考答案: 3 根; 9600 bit/s ;1 bit start ,8 bit data ,1 bit stop 。
27: 请简单描述一下什么是 IIC 总线?标准速率是多少?快速速率是多少?总线设备地址是几位?通信总线有几根,分别是什么?
参考答案:一种芯片之间的通信总线;100 Kbit/s ;400 Kbit/s ;7 bit ;2 根,SDA、SCL 。
28: 请简单描述一下什么是 IIC 总线?标准速率是多少?快速速率是多少?总线设备地址是几位?通信总线有几根,分别是什么?
参考答案:一种芯片之间的通信总线;100 Kbit/s ;400 Kbit/s ;7 bit ;2 根,SDA、SCL 。
29: 请问 SPI 通信总线有几根,分别是什么?
参考答案: 4 根,CS、 MCLK(SCLK)、 MISO(SDI)、 MOS(I SDO)。
30: 请问 USB通信总线的通信速率有几种?分别最大是什么?
参考答案: 4 种;低速: 1.5Mbit/s , 全速: 12Mbit/s , 高速: 480Mbit/s , 超高速: 4.8Gbit/s , 。