正确答案:A解析:
30. 在C语言中,已知int arr[5] = {1,2,3,4,5};不能取到元素2的表示方式是? A.arr[1] B.*(arr+1) C.1[arr] D.*(arr+4) 正确答案:D解析:
31. 命令chmod 644 myfile将myfile文件的权限设置为? A.属主用户可读可执行,同组和其它用户可读 B.属主用户可读可写,同组和其它用户可读 C.属主用户可写可执行,同组和其它用户可执行 D.属主和同组用户可读,其它用户可读可写 正确答案:B解析:
32. 关于预处理指令,以下说法正确的是: A.#elseif主要用于条件编译
B.#if和#endif经常结合使用,用于条件编译 C.#include可以包含文件,但是只能包含.h文件
D.#define可以用于定义宏变量和宏函数,定义宏以后就不能撤销 正确答案:B解析:
33. 所谓“水仙花”数是一个整数等于各位数字立方的和,例如:153 = 1*1*1+5*5*5+3*3*3,下面的程序 用于输出2~1000内的水仙花数: int n;
for (n = 2; n <= 1000; n++) { (空白处) if (s == n) {
printf(“%d\\n”,n); } }
下列选项中,空白处可以填入的代码是?
B.int s = 0, n1 = n; A. int s = 0, n1 = n;
while (n1 > 0) { while (n1 > 0) {
int t = n1 / 10; int t = n1 % 10;
s+= t * t * t; s += t * t * t;
n1 %= 10; n1 /= 10;
} }
D.int n1,s = 0; C.int n1,s;
for(n1 = n; n1>0; n1 %= 10) { for(n1 = n; n1>0; n1 /= 10) {
int t = n1 / 10; int t = n1;
s += t * t * t; s += t * t * t;
} }
正确答案:A解析:
34. 在C语言中调用函数f1,当f1函数执行完毕后,哪个变量的内存没有被回收?
int a = 1000; void f1(int b){ b = 10; int c = 20;
static int d = 30; }
A.只有a B.Abcd都没有回收 C.只有d 正确答案:D解析:
35. 关于指针,以下说法中错误的是:
D.ad
A.指针就是内存的地址,本身是32位(32位操作系统)的数字. B.数组其实也是一种特殊的指针,是常量指针。 C.指针也可以存放函数的地址, 即 函数指针。
D.指针可以做函数的返回值,用于返回任意变量的地址。 正确答案:D解析:
36. 查看如下代码: int a[5] = {1,2,3,4,5}; int *ap = a; int i = 0;
下列代码中,不可以成功打印出数组元素的是: C.for(;i<5;i++){ A.for(;i<5;i++){
printf(“%d\\n”,ap[i]); printf(“%d\\n”,a[i]);
} }
D.for(;i<5;i++){ B.for(;i<5;i++){
printf(“%d\\n”,*ap++); printf(“%d\\n”,*a++);
} }
正确答案:B解析:
37. -80转换成二进制的结果是:
A.1011 0000 B.0101 0000 正确答案:A解析: 38. 下列标识符合法的是? A.9D B._9 正确答案:B解析:
C.int
C.1101 0001
D.1010 1111
D.s@a
39. 以下代码 int x = 9999, y; for (y = 0; x; y++) x = x & (x - 1); printf (\的输出是?
A.5 B.6 C.7 D.8 正确答案:D解析:
40. typedef struct Part{ short s; int id; char name; } Part; int
main(){ printf(“%d\\n”,sizeof(Part)); } 在考虑结构的对齐和补齐的前提下,打印的结果应该是:
A.7 B.8 C.10 D.12 正确答案:D解析: 41. 以下代码 int x = 1;
x = x++ + ++x; printf (\的输出是?
A.2 B.3 C.4 D.5 正确答案:D解析:
42. 阅读如下代码: char arr[20] = \char b[20] = \char *a = arr; (空白处) int i;
for(i=0;;i++){ *a = *(b+i);
if(*a=='\\0') break; a++; }
printf(\
如果想打印出abcd1234,空白处需要加上的代码是? A.while(*++a); B.a=a+5; C.while(*arr++); D.while(b++); 正确答案:A解析:
43. C语言中,以下程序的输出结果为? int a = 10;
printf(“%d\\n”,sizeof( (a>5)?4:8.0 ) ); A.1 B.2 C.4 D.8 正确答案:D解析:
44. C语言中,下列关于循环的代码有可能编译不通过的是: A.int i; for(i=0;i<10;i++){ } B.for(int i=0;i<10;i++){ } C.int i; for(i=0; ;i++){ } D.for( ; ; ) ;
正确答案:B解析: 45.
C语言中,以下程序的输出结果为: int i = 1;
int s = i++ + ++i; printf(“%d\\n”,s);
A.2 B.3 C.4 D.5 正确答案:C解析: 46. 以下代码 int sum (int a) { static int b = 3; int c = 0; b += 2; c += 1;
return a + b + c; }
int main (void) { int a = 2;
for (int i = 0; i < 5; i++) printf (\ printf (\ return 0; }
的输出是? A.8 8 8 8 8 B.8 9 10 11 12 C.8 10 12 14 16 D.8 11 14 17 20 正确答案:C解析:
47. 如果希望以二进制方式读写文件,文件不存在则创建,文件已存在则保留原内容,那么调用fopen函数时的mode参数应取? A.“ab” B.“a+b“ C.“r+b” D.“w+b” 正确答案:C解析:
48. 已知,有int a1,a2,a3,a4,a5,e;那么以下代码的功能是? e = a1; if(e
A.e的值变成a1
B.e的值为a1,a2,a3,a4的最小值 C.e的值为a1,a2,a3,a4的最大值 D.e的值为a5 正确答案:C解析:
49. C语言中,定义了数组int arr[10],下列关于数组arr的描述中,正确是? A.arr[0]的值一定是0
B.arr[10]是数组的最后一个元素
C.arr[5]=5.0;会成功赋值,并且arr[5]的值为5 D.arr[5]=5.0;不会成功赋值,因为编译不能通过 正确答案:C解析:
50. 已知,文件a.txt中的内容是abcdefg,那么执行如下代码打印出的结果是: FILE *fp = fopen(\int i = 0;
fseek(fp,3L,SEEK_SET); i = getc(fp); printf(\
fseek(fp,-2L,SEEK_CUR); i = getc(fp); printf(\ A.cd B.dc C.ca D.db 正确答案:B解析: