1、计算机二级(C)65 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(1-10 题每题 2 分,11-50 题(总题数:60,分数:60.00)1.若要求定义具有 10 个 int 型元素的一维数组 a,则以下定义语句中错误的是【 】。(分数:1.00)A.#define N 10B.#define n 5int aN; int a2*n;C.int a5+5;D.int n=10,an.2.下列选项中,能作为合法 DOS 文件名的是( )。(分数:1.00)A.ANP/A.DATB.ABCCOMC.ECD.BASICD.XY+Z.TXT3.有以下程序 int a=2; in
2、t f(int *a) return (*a)+; main( ) int s=0; int a=5; s+=f( s+=f( printf(“%d/n”,s); 执行后输出结果是( )。 (分数:1.00)A.10B.9C.7D.84.与十进制数 511 等值的十六进制数为( )。(分数:1.00)A.1FFB.2FFC.1FED.2FE5.对如下二叉树,进行后序遍历的结果为【 】。 (分数:1.00)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA6.在 Windows 环境下,若资源管理器左窗口中的某文件夹左边标有“”标记,则表示( )。(分数:1.00)A.该文件夹为空
3、B.该文件夹中含有子文件夹C.该文件夹中只包含有可执行文件D.该文件夹中包含系统文件7.下列函数定义中,会出现编译错误的是( )。(分数:1.00)A.max(int x,int y,int *z) *z=xy ? x:y; B.int max(int x,y) int z; z=xy ? x:y; return z; C.max(int x,int y) int z; z=xy?x:y; return(z); D.int max(int x,int y) return(xy?x:y); 8.以下不能定义为用户标识符的是( )。(分数:1.00)A.scanfB.VoidC._3com_D.i
4、nt9.有以下程序段: main( ) int a=5,*b,*c; c= b= 程序在执行了 c=b=语句后,表达式:*c 的值是( )。 (分数:1.00)A.变量 a 的地址B.变量 b 中的值C.变量 a 中的值D.变量 b 的地址10.在 Windows 环境下,PrintScreen 键的作用是( )。(分数:1.00)A.打印当前窗口的内容B.打印屏幕内容C.复制屏幕到剪贴板D.复制当前窗口到剪贴板11.设变量 a、b、c、d 和 y 都已正确定义并赋值。若有以下 if 语句: if(aB) if(cD) y=0; else y=1; 该语句所表示的含义是【 】。 (分数:1.0
5、0)A.B.C.D.12.有以下程序: #include stdio.h main() FILE *fp; int i,k,n; fp=fopen(“data.dat“,“w+“);for(i=1;i6;i+) fprintf(fp,“%d “,i); if(i%3=0) fprintf(fp,“/n“); rewind(fp); fscanf(fp,“%d%d“, *q=*(p+5); printf(“%d %d/n“,*p,*q); 程序运行后的输出结果是( )。 (分数:1.00)A.运行后报错B.6 6C.6 11D.5 1023.以下数组定义中错误的是【 】。(分数:1.00)A.i
6、nt x 3:0;B.int x23=l,2,3,4,5,6;C.int X 3=l,2,3,4,5,6;D.int x23=l,2,3,4,5,6;24.以下叙述中错误的是( )。(分数:1.00)A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以B.在程序结束时,应当用函数 fclose( )关闭已打开的文件C.在利用函数 fread( )从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D.不可以用 FILE 定义指向二进制文件的文件指针25.有以下程序 main() int i; for(i=1;ib?(bc?1:0):0;功能等价的是( )。(分数:1.00)A.if
7、(ab) else k=0;B.if(ab)|(bc) k=1 else k=0;C.if(ab) k=1; else if(bc) k=1; else k=0;28.已定义以下函数 fun(int *p) return *p; 该函数的返回值是( )。 (分数:1.00)A.不确定的值B.形参 p 中存放的值C.形参 p 所指存储单元中的值D.形参 p 的地址值29.对于一个正常运行的 C 程序,以下叙述中正确的是【 】。(分数:1.00)A.程序的执行总是从 main 函数开始,在 main 函数结束B.程序的执行总是从程序的第一个函数开始,在 main 函数结束C.程序的执行总是从 ma
8、in 函数开始,在程序的最后一个函数中结束D.程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束30.表达式 3.6-52+1.2+52 的值是【 】。(分数:1.00)A.4.3B.4.8C.3.3D.3.831.有以下程序 void fun(int *a,int i,int j) int t; if (ij) t=ai;ai=aj;aj=t; fun(a,+i,-j); main( ) int a =1,2,3,4,5,6,i; fun(a,0,5); for(i=0;i6;i+) printf(“%d“,ai); 执行后输出的结果是( )。 (分数:1.00)A.6 5
9、4 3 2 1B.4 3 2 1 5 6C.4 5 6 1 2 3D.1 2 3 4 5 632.以下叙述中错误的是【 】。(分数:1.00)A.C 语言源程序经编译后生成后缀为.obj 的目标程序B.C 程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用 C 语言编写的程序称为源程序,它以 ASCII 代码形式存放在一个文本文件中D.C 语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令33.数字字符 0 的 ASC值为 48,若有以下程序 main() char a=1,b=2; printf(“%c“,b+); printf (“%d/n“,b-a
10、); 程序运行后的输出结果是【 】。(分数:1.00)A.32B.502C.22D.2,5034.下列关于 C 语言数据文件的叙述中正确的是( )。 (分数:1.00)A.文件由 ASCII 码字符序列组成,C 语言只能读写文本文件B.文件由二进制数据序列组成,C 语言只能读写二进制文件C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件35.设有定义:int a,*pa=以下 scanf 语句中能正确为变量 a 读入数据的是( )。(分数:1.00)A.scanf(“%d”,pa);B.scanf(“%d”,a
11、);C.scanf(“%d”,D.scanf(“%d”,*pa);36.设有定义 int a=2,b=3,c=4;,则以下选项中值为 0 的表达式是【 】。(分数:1.00)A.(!a=1 scanf(“%d“, do s+=1; a=a-2; while(a!=n); printf(“%d/n“,s); 若要使程序的输出值为 2,则应该从键盘给 n 输入的值是( )。 (分数:1.00)A.-1B.-3C.-5D.042.有以下程序: #includestdi0.h main( ) FILE *fp; int i=20,j=50,k,n; fp=fopen(“d1.dat“,“W“); fp
12、rintf(fp,“%d/n“,i);fprintf(fp,“%d/n“,j); fclose(fp); fp=fopen(“d1.dat“,“r“,); fscanf(fp,“%d%d“,k,n); printf(“%d%d/n“,k,n); fclose(fp); 程序运行后的输出结果是( )。 (分数:1.00)A.20 30B.20 50C.30 50D.30 2043.以下叙述中不正确的是( )。(分数:1.00)A.C 语言中的文本文件以 ASCII 码形式存储数据B.C 语言中对二进制位的访问速度比文本文件快C.C 语言中,随机读写方式不使用于文本文件D.C 语言中,顺序读写方式
13、不使用于二进制文件44.有以下程序 #include stdio.h #define F(X,Y) (X)*(Y) main( ) int a=3, b=4; printf(“%d/n“, F(a+, b+); 程序运行后的输出结果是( )。 (分数:1.00)A.12B.15C.16D.2045.以下叙述中正确的是【 】。(分数:1.00)A.C 语言中的文件是流式文件,因此只能顺序存取数据B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1 个数据D.当对文件的读(写)操作完成之后,必须将
14、它关闭,否则可能导致数据丢失46.若有定义:int w35;,则以下不能正确表示该数组元素的表达式是【 】。(分数:1.00)A.*(*W+3)B.*(*W+1)4C.*(*(*W+1)D.*(*00+1)47.下列选项中正确的语句组是( )。(分数:1.00)A.char s8; s=“Beijing“;B.char s8; s=“Beijing“;C.char *s; s=“Beijing“;D.char *s; s=“Beijing“;48.有以下程序: main() int p8=11,12,13,14,15,16,17,18,i=0,j=0; while(i+7)if(pi%2)j+
15、=Pi; printf(“%d/n“,j); 程序运行后的输出结果,是【 】。(分数:1.00)A.42B.45C.56D.6049.若有定义 int x=0,*p=i n-1 ;i + ) for(j =i + 1 ;j n;j + ) if(strcmp(p i ,pj ) 0) strcpy(t,pi);strcpy(pi ,pj );strcpy(pj ,t); main ( ) char p 10 = “abc“,“aabdfg“,“abbd“,“dcdbe“, “cd“ ; int i; f(p,5); printf(“%d/n“,strlen(pO ) ); 程序运行后的输出结果
16、是( )。 (分数:1.00)A.6B.4C.3D.555.若程序中已包含头文件 stdio.h,以下选项中,正确运用指针变量的程序段是( )。(分数:1.00)A.int *i=NULL; scanf(“%d“,i);B.float *f=NULL; *f=10.5;C.char t=m, *c= *c=D.long *L; L=/0;56.有以下程序: main( ) int m=3,n=4,x; x=-m+; x=x+8/+n; printf(“%d/n“,x); 程序运行后的输出结果是( )。 (分数:1.00)A.3B.5C.-1D.-257.已有定义:int i,a10,*p;,则
17、合法的赋值语句是( )。(分数:1.00)A.p=100;B.p=a5;C.p=a2+2;D.p=a+2;58.在 Windows 环境下,资源管理器左窗口中的某文件夹左边标有“+“标记表示( )。(分数:1.00)A.该文件夹为空B.该文件夹中含有子文件夹C.该文件夹中只包含有可执行文件D.该文件夹中包含系统文件59.以下程序中,能够通过调用函数 fun,使 main 函数中的指针变量 p 指向一个合法的整型单元的是( )。(分数:1.00)A.main( ) int *p; fun(p); int fun(int *p) int s; p=B.main( ) int *p; fun( in
18、t fun(int *p) int s; *p=C.#includestdlib.h main( ) int *p; fun( int fun(int *p) *p=(int*)malloc(2);D.#includestdlib.h main( ) int *p; fun(p); int fun(int *p) p=(int*)malloc(sizeof(int);60.有以下函数 int fun(char *S) char *t=s; while(*t+); return(t-S); 该函数的功能是【 】。 (分数:1.00)A.比较两个字符串的大小B.计算 S 所指字符串占用内存字节的个
19、数C.计算 S 所指字符串的长度D.将 S 所指字符串复制到字符串 t 中二、填空题(每空 2 分,共 40 分)(总题数:20,分数:40.00)61.下面程序和运行运行结果是 1。 typedef union student char name 10; long sno; char sex; float score 4; STU; main ( ) STU a5; prinff( “% d/n“, sizeof(a) ); (分数:2.00)填空项 1:_62.以下程序运行后的输出结果是 1。 main( ) char m; m=B+32; printf(“%c/n“,m); (分数:2.
20、00)填空项 1:_63.下面程序的运行结果是: 1 int f( int a , int n) if(n1) return a0+f( else return a0; main ( ) int aa3=1,2,3,s; s=f( ; printf(“%d/n”,s); (分数:2.00)填空项 1:_64.按“先进后出“原则组织数据的数据结构是 1。(分数:2.00)填空项 1:_65.若有语句 int i=-19,j=i%4; printf(“%d/n“,j); 则输出的结果是 1。 (分数:2.00)填空项 1:_66.以下函数的功能是计算 (分数:2.00)填空项 1:_67.从 Wi
21、ndows 环境进入 MS-DOS 方式后,返回 Windows 环境的 DOS 命令为 1。(分数:2.00)填空项 1:_68.问题处理方案的正确而完整的描述称为 1。(分数:2.00)填空项 1:_69.以下程序的输出结果是 1。 #include main2 prinff(“dn“,strlen(“IBMn0121“); (分数:2.00)填空项 1:_70.以下程序的运行结果是 1 #include string.h typedef struct student char name10; long sno; float score; STU; main( ) STU a=“zhang
22、san”,2001,95,b=“Shangxian”,2002,90, c=“Anhua”,2003,95,d,*p= d=a; if(strcmp(a.name,b.name)0) d=b; if(strcmp(c.name,d.name)0) d=c; printf(“%ld%s/n”,d.sno,p-name); (分数:2.00)填空项 1:_71.计算机网络分为广域网和局域网,因特网属于 1。(分数:2.00)填空项 1:_72.以下程序的运行结果是 1。 main2 int a=2,b=7,c=5; switch(aO) case 1:switch(b填空项 1:_73.有以下程序
23、 void f( int y,int *x) y=y+*x; *x=*x+y; main( ) int x=2,y=4; f(y, printf(“%d %d/n”,x,y); 执行后输出的结果是 1。 (分数:2.00)填空项 1:_74.数据结构分为线性结构和非线性结构,带链的队列属于 1。(分数:2.00)填空项 1:_75.若有以下程序 main( ) char a; a=H-A+0; printf(“%c/n“,a); 执行后输出结果是 1。 (分数:2.00)填空项 1:_76.计算机软件分为系统软件和应用软件,操作系统属于 1。(分数:2.00)填空项 1:_77.数据管理技术发
24、展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是 1。(分数:2.00)填空项 1:_78.一棵二叉树第六层(根结点为第一层)的结点数最多为 1 个。(分数:2.00)填空项 1:_79.若有以下程序 main( ) int a=4,b=3,c=5,t=0; if(ab)t=a;a=b;b=t; if(ac)t=a;a=c;c=t; printf(“%d %d %d/n“,a,b,c); 执行后输出结果为 1。 (分数:2.00)填空项 1:_80.以下程序运行后的输出结果是 1。 main2 int a=3,b=4,c=5,t=99; if(baa;a=c;c=t
25、 if(aca=t; printf(“%d%d%d/n“,a,b,c); (分数:2.00)填空项 1:_计算机二级(C)65 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(1-10 题每题 2 分,11-50 题(总题数:60,分数:60.00)1.若要求定义具有 10 个 int 型元素的一维数组 a,则以下定义语句中错误的是【 】。(分数:1.00)A.#define N 10B.#define n 5int aN; int a2*n;C.int a5+5;D.int n=10,an. 解析:在选项 D)中,n 是一个整型的变量。C 语言规定,在一维数组的定义中,其下标
26、只能是常量表达式,不能包含变量。2.下列选项中,能作为合法 DOS 文件名的是( )。(分数:1.00)A.ANP/A.DATB.ABCCOM C.ECD.BASICD.XY+Z.TXT解析:3.有以下程序 int a=2; int f(int *a) return (*a)+; main( ) int s=0; int a=5; s+=f( s+=f( printf(“%d/n”,s); 执行后输出结果是( )。 (分数:1.00)A.10B.9C.7 D.8解析:4.与十进制数 511 等值的十六进制数为( )。(分数:1.00)A.1FF B.2FFC.1FED.2FE解析:5.对如下二
27、叉树,进行后序遍历的结果为【 】。 (分数:1.00)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA 解析:后序遍历可以描述为:若二叉树为 空,则空操作;否则:后序遍历左子树;后序遍历右 子树;访问根结点。对于后序遍历,第一个访问的结点一定是最左下的结点,最后一个访问的结点一定是根结点,如果知道这个小技巧,可以迅速确定本题的答案为选项 D)。6.在 Windows 环境下,若资源管理器左窗口中的某文件夹左边标有“”标记,则表示( )。(分数:1.00)A.该文件夹为空B.该文件夹中含有子文件夹 C.该文件夹中只包含有可执行文件D.该文件夹中包含系统文件解析:7.下列函数定义中
28、,会出现编译错误的是( )。(分数:1.00)A.max(int x,int y,int *z) *z=xy ? x:y; B.int max(int x,y) int z; z=xy ? x:y; return z; C.max(int x,int y) int z; z=xy?x:y; return(z); D.int max(int x,int y) return(xy?x:y); 解析:8.以下不能定义为用户标识符的是( )。(分数:1.00)A.scanfB.VoidC._3com_D.int 解析:9.有以下程序段: main( ) int a=5,*b,*c; c= b= 程序在
29、执行了 c=b=语句后,表达式:*c 的值是( )。 (分数:1.00)A.变量 a 的地址B.变量 b 中的值C.变量 a 中的值 D.变量 b 的地址解析:10.在 Windows 环境下,PrintScreen 键的作用是( )。(分数:1.00)A.打印当前窗口的内容B.打印屏幕内容C.复制屏幕到剪贴板 D.复制当前窗口到剪贴板解析:11.设变量 a、b、c、d 和 y 都已正确定义并赋值。若有以下 if 语句: if(aB) if(cD) y=0; else y=1; 该语句所表示的含义是【 】。 (分数:1.00)A.B.C. D.解析:if 语句中包含一个或多个 if 语句称为
30、if 语句的嵌套。在 C 语言中,从最内层开始,else 总是与它上面最近的 (未曾配对的)if 配对。故本题中 y=1 的条件是 cd,又因为此 if 语句是前一个 if 语句的内层嵌套语句,所以在满足内层嵌套的 if 语句之前,必须先满足外层的 if 语句中的条件表达式“ab“,所以选项 C 是正确的。 12.有以下程序: #include stdio.h main() FILE *fp; int i,k,n; fp=fopen(“data.dat“,“w+“);for(i=1;i6;i+) fprintf(fp,“%d “,i); if(i%3=0) fprintf(fp,“/n“);
31、rewind(fp); fscanf(fp,“%d%d“, *q=*(p+5); printf(“%d %d/n“,*p,*q); 程序运行后的输出结果是( )。 (分数:1.00)A.运行后报错 B.6 6C.6 11D.5 10解析:23.以下数组定义中错误的是【 】。(分数:1.00)A.int x 3:0;B.int x23=l,2,3,4,5,6; C.int X 3=l,2,3,4,5,6;D.int x23=l,2,3,4,5,6;解析:二维数组的初始化有以下几种形式:分行进行初始化。不分行的初始化。部分数组元素初始化。省略第一维的定义,不省略第二维的定义。选项 B 等号右边分了
32、 3 行,大于等号左边数组的行数 2。24.以下叙述中错误的是( )。(分数:1.00)A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以B.在程序结束时,应当用函数 fclose( )关闭已打开的文件C.在利用函数 fread( )从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D.不可以用 FILE 定义指向二进制文件的文件指针 解析:25.有以下程序 main() int i; for(i=1;ib?(bc?1:0):0;功能等价的是( )。(分数:1.00)A.if(ab) else k=0; B.if(ab)|(bc) k=1 else k=0;C.if(ab) k
33、=1; else if(bc) k=1; else k=0;解析:28.已定义以下函数 fun(int *p) return *p; 该函数的返回值是( )。 (分数:1.00)A.不确定的值B.形参 p 中存放的值C.形参 p 所指存储单元中的值 D.形参 p 的地址值解析:29.对于一个正常运行的 C 程序,以下叙述中正确的是【 】。(分数:1.00)A.程序的执行总是从 main 函数开始,在 main 函数结束 B.程序的执行总是从程序的第一个函数开始,在 main 函数结束C.程序的执行总是从 main 函数开始,在程序的最后一个函数中结束D.程序的执行总是从程序中的第一个函数开始,
34、在程序的最后一个函数中结束解析:一个 C 程序总是从 main 函数开始执行,而不论其在程序中的位置。在 main 函数中可以调用程序中的其他函数,而其他函数却不可以调用 main 函数。程序最后再从 main 函数中结束。30.表达式 3.6-52+1.2+52 的值是【 】。(分数:1.00)A.4.3B.4.8C.3.3D.3.8 解析:这道题要注意 25 的结果是 2,因为运算符两边的数值类型均为整型,故运算结果的数值类型也被认定为整型。31.有以下程序 void fun(int *a,int i,int j) int t; if (ij) t=ai;ai=aj;aj=t; fun(a
35、,+i,-j); main( ) int a =1,2,3,4,5,6,i; fun(a,0,5); for(i=0;i6;i+) printf(“%d“,ai); 执行后输出的结果是( )。 (分数:1.00)A.6 5 4 3 2 1 B.4 3 2 1 5 6C.4 5 6 1 2 3D.1 2 3 4 5 6解析:32.以下叙述中错误的是【 】。(分数:1.00)A.C 语言源程序经编译后生成后缀为.obj 的目标程序B.C 程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用 C 语言编写的程序称为源程序,它以 ASCII 代码形式存放在一个文本文件中D.C 语
36、言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 解析:并不是源程序中的所有行都参加编译。在条件编泽形式下,相关内容只在满足一定条件时才进行编译。选项 D)中的非执行语句不在其范围内。33.数字字符 0 的 ASC值为 48,若有以下程序 main() char a=1,b=2; printf(“%c“,b+); printf (“%d/n“,b-a); 程序运行后的输出结果是【 】。(分数:1.00)A.32B.502C.22 D.2,50解析:执行语句“printf(“%c,“,b+);“后,b 的值变成字符 3,执行“printf(“%d/n“,b-a);“,即3-1。
37、34.下列关于 C 语言数据文件的叙述中正确的是( )。 (分数:1.00)A.文件由 ASCII 码字符序列组成,C 语言只能读写文本文件B.文件由二进制数据序列组成,C 语言只能读写二进制文件C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 解析:35.设有定义:int a,*pa=以下 scanf 语句中能正确为变量 a 读入数据的是( )。(分数:1.00)A.scanf(“%d”,pa); B.scanf(“%d”,a);C.scanf(“%d”,D.scanf(“%d”,*pa);解析:36.设有
38、定义 int a=2,b=3,c=4;,则以下选项中值为 0 的表达式是【 】。(分数:1.00)A.(!a=1 scanf(“%d“, do s+=1; a=a-2; while(a!=n); printf(“%d/n“,s); 若要使程序的输出值为 2,则应该从键盘给 n 输入的值是( )。 (分数:1.00)A.-1B.-3 C.-5D.0解析:42.有以下程序: #includestdi0.h main( ) FILE *fp; int i=20,j=50,k,n; fp=fopen(“d1.dat“,“W“); fprintf(fp,“%d/n“,i);fprintf(fp,“%d/
39、n“,j); fclose(fp); fp=fopen(“d1.dat“,“r“,); fscanf(fp,“%d%d“,k,n); printf(“%d%d/n“,k,n); fclose(fp); 程序运行后的输出结果是( )。 (分数:1.00)A.20 30B.20 50 C.30 50D.30 20解析:本题首先通过函数 fprintf( )将变量 i,j 的值输出到已打开的 d1.dat 文件中,再由函数 fscanf( ) 从 d1.dat 中读取 i,j 的值到 k,n。43.以下叙述中不正确的是( )。(分数:1.00)A.C 语言中的文本文件以 ASCII 码形式存储数据B
40、.C 语言中对二进制位的访问速度比文本文件快C.C 语言中,随机读写方式不使用于文本文件D.C 语言中,顺序读写方式不使用于二进制文件 解析:44.有以下程序 #include stdio.h #define F(X,Y) (X)*(Y) main( ) int a=3, b=4; printf(“%d/n“, F(a+, b+); 程序运行后的输出结果是( )。 (分数:1.00)A.12 B.15C.16D.20解析:45.以下叙述中正确的是【 】。(分数:1.00)A.C 语言中的文件是流式文件,因此只能顺序存取数据B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
41、C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1 个数据D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失 解析:如果以写方式打开一个已经存在的文件,则在打开时将该文件删除,然后重新建立一个同名的新文件。46.若有定义:int w35;,则以下不能正确表示该数组元素的表达式是【 】。(分数:1.00)A.*(*W+3)B.*(*W+1)4C.*(*(*W+1) D.*(*00+1)解析:在 C 语言中,二维数组的名字表示的是二维数组的地址,表达式*(w+1)表示的是二维数组的第一行的第二元素。在其前面再加上*(*(w+1)就是错误的表达式。
42、47.下列选项中正确的语句组是( )。(分数:1.00)A.char s8; s=“Beijing“;B.char s8; s=“Beijing“;C.char *s; s=“Beijing“;D.char *s; s=“Beijing“; 解析:48.有以下程序: main() int p8=11,12,13,14,15,16,17,18,i=0,j=0; while(i+7)if(pi%2)j+=Pi; printf(“%d/n“,j); 程序运行后的输出结果,是【 】。(分数:1.00)A.42B.45 C.56D.60解析:本程序的作用是求除 p0外的其他奇数的和。 49.若有定义 i
43、nt x=0,*p=i n-1 ;i + ) for(j =i + 1 ;j n;j + ) if(strcmp(p i ,pj ) 0) strcpy(t,pi);strcpy(pi ,pj );strcpy(pj ,t); main ( ) char p 10 = “abc“,“aabdfg“,“abbd“,“dcdbe“, “cd“ ; int i; f(p,5); printf(“%d/n“,strlen(pO ) ); 程序运行后的输出结果是( )。 (分数:1.00)A.6B.4C.3 D.5解析:对字符串比较的方法是依次对两字符串对应位置上的字符两两比较,当出现第一对不相同的字符
44、 时,即由这两个字符(ASCII 码值)决定所在串的大小。55.若程序中已包含头文件 stdio.h,以下选项中,正确运用指针变量的程序段是( )。(分数:1.00)A.int *i=NULL; scanf(“%d“,i);B.float *f=NULL; *f=10.5;C.char t=m, *c= *c=D.long *L; L=/0; 解析:56.有以下程序: main( ) int m=3,n=4,x; x=-m+; x=x+8/+n; printf(“%d/n“,x); 程序运行后的输出结果是( )。 (分数:1.00)A.3B.5C.-1D.-2 解析:57.已有定义:int i
45、,a10,*p;,则合法的赋值语句是( )。(分数:1.00)A.p=100;B.p=a5;C.p=a2+2;D.p=a+2; 解析:58.在 Windows 环境下,资源管理器左窗口中的某文件夹左边标有“+“标记表示( )。(分数:1.00)A.该文件夹为空B.该文件夹中含有子文件夹 C.该文件夹中只包含有可执行文件D.该文件夹中包含系统文件解析:59.以下程序中,能够通过调用函数 fun,使 main 函数中的指针变量 p 指向一个合法的整型单元的是( )。(分数:1.00)A.main( ) int *p; fun(p); int fun(int *p) int s; p=B.main( ) int *p; fun( int fun(int *p) int s; *p=C.#includestdlib.h main( ) int *p; fun( int fun(int *p) *p=(int*)mallo