达内CSD 1506 综合考试测评 (单选题)[转]
1. C语言中,下列代码中if的条件何时为逻辑真: int a; scanf(“%d”,&a); if(3
A.只有输入4的时候为真 B.永远不可能为真 C.永远都是真 正确答案:C解析:
2. 在vi中,以下哪个底行命令可将第10到20行的内容拷贝至第30行之后? A.:10,20 co 30 B.:10,20 co 31 C.:10,20 cp 30 D.:co 10,20,30 正确答案:A解析:
3. 关于预处理指令,以下说法正确的是:
A.#include可以包含文件,文件名必须用<>括起来 B.#define可以定义宏,宏一旦定义,就无法取消 C.#ifndef、#ifdef都可以用于条件编译 D.#elseif 可以用于条件编译 正确答案:C解析:
4. 以下代码实现的是字符串的哪个函数? void f(char *s1,char *s2){ while(*s1++); s1--;
while(*s1++=*s2++); }
A.strcpy函数 B.strcat函数 正确答案:B解析: 5. 以下代码 int x = 1;
int main (void) {
printf (\ int x = x;
printf (\ return 0; }
的输出是? A.1 1
B.编译错误
C.<不确定的数> <不确定的数> D.1 <不确定的数> 正确答案:D解析:
6. 以下代码 int a, b;
for (a = 0, b = 0; a <= 1 && ! b++; a++) a++;
printf (\
D.代码编译错误
C.strlen函数 D.strcmp函数
的输出是? A.2 2 B.2 1 C.0 1 D.1 2 正确答案:B解析:
7. typedef struct Part{ char c; int id; double d; char name; } Part; int
main(){ printf(“%d\\n”,sizeof(Part)); } 在考虑结构的对齐和补齐的前提下,打印的结果应该是:
A.14 B.16 C.20 D.24 正确答案:C解析: 8. 定义联合代码如下: union { int i;
double d; short s; } u;
printf(\那么,输出应该为: A.4 B.8 C.14 D.16 正确答案:B解析:
9. 下列属于合法C标识符的是 A.3d B.double C.a@3 D.Int 正确答案:D解析:
10. #ifndef _TEXT_H_ #define _TEXT_H_ #include
C.这种写法意义不大,没什么作用 D.用条件编译防止text.h被多次包含 正确答案:D解析:
11. 用条件编译防止text.h被多次包含,以下代码正确的是?
A.#ifndef _TEXT_H_ #define _TEXT_H_ #include
D.#ifndef _TEXT_H_ #define _TEXT_H_ #elif #include
12. C语言的主函数中调用函数f1,当f1函数执行完毕后,哪个变量的内存被回收了: int i = 1;
void f1(int a){ int b;
static int c = 5; }
int main(){ int d = 1;
f1(d); getchar(); }
A.变量a
B.变量a和b D.变量a、b、c和d
C.变量a、b和c 正确答案:B解析:
13. 允许下面的程序,则以下输出正确的是: void fun( int *n){ while((*n)--);
printf(“%d”,++(*n)); }
int main(){ int a = 10; fun(&a); return 0;} A.1 B.0 C.10 D.程序不正确 正确答案:B解析:
14. 下列关于字符串的代码正确的是? A.char *st1 = \ B.char *st1 = \ C.char st1[] = \ D.char st1[] = \=”abcde”; 正确答案:A解析:
15. 以下宏定义 #define z(x, y) (((x) & (y)) + (((x) ^ (y)) >> 1)) 的功能是? A.求两个数的最大值 C.求两个数的平均值 正确答案:C解析:
16. 在C语言中,下列代码执行结果是? int score = 4; switch(score){ case 5:
printf(\ case 4:
printf(\ case 3:
printf(\ default:
printf(\}
A.ABCD B.BCD C.B 正确答案:B解析: 打印出的数字应该为: A.4 5 B.10 5 正确答案:D解析:
B.求两个数的平方和 D.求两个数的方均根
D.BD
17. int i=10; printf(“%d ”,sizeof(i=5)); printf(“%d\\n”,i); 上面的代码执行完毕后,
C.10 10
D.4 10
18. 以下两条语句: scanf (\cin.ignore (80, '\\n'); 在行为方面有何不同?
A.前者读取并丢弃输入缓冲区中的首个换行符,后者读取并丢弃输入缓冲区中的前80个换行符
B.前者读取并丢弃输入缓冲区中的所有换行符,后者读取并丢弃输入缓冲区中的后80个换行符
C.前者读取并丢弃输入缓冲区中的所有字符直至遇到换行符,后者读取并丢弃输入缓冲区中的80个字符,若遇到换行符则提前返回 D.二者完全等价,没有任何不同 正确答案:C解析:
19. 以下代码 char c = 200; printf (\的输出是? A.200 B.56 C.-56 D.-55 正确答案:C解析:
20. 以下代码 char ca[8];
void foo (char ca[16]) {
printf (\ }
int main (void) { char ca[32]; foo (ca); return 0; }
的输出是? A.4 B.8 C.16 正确答案:A解析:
D.32
21. 在C语言中,下面关于数组的声明语句中,编译能通过的是? A.int[] arr; B.int arr[] = {}; C.int arr[]; D.int arr[5]; arr = {1,2,3,4,5}; 正确答案:B解析:
22. 关于费氏数列1 1 2 3 5 8 13 21 ...的通项最佳实现是? A.int f1(int n){ if(n<3) return 1; return f1(n-1)+f1(n-2); } B.int f1(int n){ if(n<2) return 1; return f1(n-1)+f1(n-2); }
C.int f2(int n){ int x=1,y=1,i; for(i=3;i<=n;i++){ y = x+y; x = y-x; } return y; } D.int f2(int n){ int x=1,y=1,i; for(i=3;i<=n;i++){ y = x+y; x = y-x; } return x; } 正确答案:C解析: 23. 以下代码 :
unsigned char a = 0xa5; unsigned char b = ~a >> 1 + 2 + 3; printf (\的输出是? A.50 B.253 正确答案:B解析:
C.1
D.-3
24. 关于vi中的命令和快捷键,以下说法正确的是? A.Ctrl+s 可以保存 正确答案:D解析:
25. 以下代码 int a[2]; scanf (\(\的功能是? A.打印输入的两个整数的大值 C.打印输入的两个整数的均值 正确答案:A解析:
26. 下列关于相对路径和绝对路径的说法错误的是? A.相对路径就是从当前所在目录出发的一种目录描述方式 B.绝对路径就是从根目录出发的一种目录描述形式 C.Unix系统中,绝对路径都是以/开始的 D..和..只能用于相对路径中 正确答案:D解析:
27. 根据下列 变量的类型以及函数参数类型,选出正确的sizeof的结果: 注意:选项给出结果的顺序是按照圆序号的顺序排列的。 char str[] = “Hello”; sizeof(str) = ① char *p = str ; sizeof(p) = ②
int n = 10; sizeof(n) = ③ void Func ( char str[100]) {
sizeof( str ) = ④ }
void *p = malloc( 100 ); sizeof ( p ) = ⑤ A.5 4 4 100 100 B.5 4 4 4 4 C.6 4 4 100 100 D.6 4 4 4 4 正确答案:D解析:
28. 求最大值的宏函数最佳定义代码为: A.#define MAX(x, y) (x>y?x:y)
B.#define MAX(x, y) ((x)>(y)?(x):(y)) C.#define MAX(x, y) (x D.#define MAX(x, y) ((x)<(y)?(x):(y)) 正确答案:B解析: 29. C语言中,下列随机数的实现代码中,哪个是正确的? A.srand(time(0)); int ran = rand(); B.rand(time(0)); int ran = srand(); C.srand(0); int ran = rand(); D.srand(0); int ran = rand(time(0)); B.打印输入的两个整数的小值 D.打印输入的两个整数的差值 B.Ctrl+a 可以全选 D.w 文件名 可以另存为 C.WQ 可以保存退出