计算机二级c语言笔试题库

时间:2024-04-18 06:01:38编辑:coo君

计算机二级c语言考试的题型有哪些?

计算机二级c语言考试题型有单项选择题、程序填空题、程序改错题、程序设计题四大类题型。各题型分值如下:一、单项选择题单项选择题共四十题,四十分,每一个选择分值为1分,其中单项选择中含公共基础知识,该部分十道题,占10分。二、程序填空题程序填空题有2-3个空,占比分值18分,该题型为上机题,其三个空占比18分,可想而知其重要性。三、程序改错题程序改错题有2-3处错误,该题型分值占比也是18分,难度比程序填空题略难。该题型也为上机题,也许重视该类题型。四、程序设计题程序设计题是计算机二级C语言考试重点,该题为一大题,占比分值24分,该题型也为上机题,为考试重点,需多加练习。注:二级公共基础知识在各科考试选择题中体现。程序设计部分,主要考查考生对程序设计语言使用和编程调试等基本能力,在选择题和操作题中加以体现。计算机二级c语言考试考试要求:一、熟悉Visual C++2010 Express集成开发环境。二、掌握结构化程序设计的方法,具有良好的程序设计风格。三、掌握程序设计中简单的数据结构和算法并能阅读简单的程序。四、在Visual C++2010 Express集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。以上便是计算机二级c语言考试题型及分值说明。

计算机二级c语言考试题目类型

全国计算机二级C语言程序设计包括40个单选题(每题一分)和三道操作题(60分)。单选题中1~10题为二级公共基础知识,单选题的11~40题是C语言的内容。操作题包括程序填空(18分)、程序改错(18分)和编程题(24分)各一题。程序填空是将一个完整的程序,扣掉两到三处,让考生将它填写完整。由于每位考生具体抽到的题目不同,程序填空有2到3个空要填。程序改错也是一个完整的程序,其中有2~3处错误要求考生将他们改正。编程题是要求考生编写一个程序,然后运行出题干要求的结果。题目中主函数main()会完整给出,在主函数中将调用fun()函数,fun函数由考生自己编写。编程题以运行结果给分,所编写完成后必须运行,否则没分。二级C语言程序设计考试涉及公共基础知识和C语言两块。公共基础知识内容包括数据结构与算法、程序设计基础、软件工程基础、数据库设计基础四部分。考10个单选每个1分。C语言有基础知识(C语言概述、常量与变量、数据类型、运算符和表达式),编程三大结构(顺序结构、选择结构、循环结构),数组、函数和指针,其他内容(预处理命令、结构体和共用体、位运算、文件)四大部分内容。重点是第二、三部分。

9月计算机二级《C语言》上机考题及答案

  1、以下选项中属于C语言的数据类型是( )。   A. 复合型   B. 双精度型   C. 逻辑型   D. 集合型   2、以下说法中正确的是( )。   A. C语言程序总是从第一个的函数开始执行   B. 在C语言程序中,要调用的函数必须在main()函数中定义   C. C语言程序总是从main()函数开始执行   D. C语言程序中的main()函数必须放在程序的开始部分   3、选出下列标识符中不是合法的标识符的是( )。   A. hot_do   B. cat1   C. _pri   D. 2ab   4、下列描述中不正确的是( )。   A、字符型数组中可能存放字符串。   B、可以对字符型数组进行整体输入、输出。   C、可以对整型数组进行整体输入、输出。   D、 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。   5、若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( )。   A. p+1   B. a+1   C. a++   D. ++p   6、设有如下定义: int x=10,y=3,z; 则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。   A. 1   B. 0   C. 4   D. 3   7、定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句for(i=0;i<3;i++) printf("%d",x[i][2-i]); 的输出结果是( )   A. 1 5 9   B. 1 4 7   C. 3 5 7   D. 3 6 9   8、读出以下语句的输出结果是( )。   int x=10,y=10;   printf(“%d %d\n”,x--,--y);   A. 10 10   B. 9 9   C. 9 10   D. 10 9   9、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )。   if(x++>5) printf("%d",x);   else printf("%d\n",x - -);   A. 7和5   B. 6和3   C. 7和4   D. 6和4   10、设有如下定义:char *aa[2]={"abcd","ABCD"};则以下说法中正确的是( )。   A)aa数组成元素的值分别是"abcd"和ABCD"   B)aa是指针变量,它指向含有两个数组元素的字符型一维数组   C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的`首地址   D)aa数组的两个元素中各自存放了字符’a’和’A’的地址   11、以下语句的输出结果是( )。   int a=-1,b=4,k;   k=(+ +a<0)&&!(b - -<=0);   printf("%d,%d,%d\n",k,a,b);   A. 1,0,4   B. 1,0,3   C. 0,0,3   D. 0,0,4   12、下列程序的输出结果是( )。   char *p1="abcd", *p2="ABCD", str[50]="xyz";   strcpy(str+2,strcat(p1+2,p2+1));   printf("%s",str);   A. xyabcAB   B. abcABz   C. ABabcz   D. xycdBCD   13、执行下面的程序后,a的值是( )。   #define SQR(X) X*X   main( )   { int a=10,k=2,m=1;   a/=SQR(k+m)/SQR(k+m);   printf("%d\n",a); }   A. 10   B. 1   C. 9   D. 0   14、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。   A.P+i*2   B. P+(i-1)*2   C. P+(i-1)   D. P+i   15、下列程序执行后输出的结果是( )。   int d=1;   fun (int p)   { int d=5;   d + =p + +;   printf("%d,",d); }   main( )   { int a=3;   fun(a);   d + = a + +;   printf("%d\n",d); }   A. 8, 4   B. 9, 6   C. 9, 4   D. 8, 5   16、表达式:10!=9的值是( )。   A. true   B. 非零值   C. 0   D. 1   17、若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是( )。   A. i= *p;   B. *p=*&j;   C. i=&j;   D. i=* *p;   18、不能把字符串:Hello!赋给数组b的语句是( )。   A. char b[10]={’H’,’e’,’l’,’l’,’o’,’!’};   B. char b[10]; b="Hello!";   C. char b[10]; strcpy(b,"Hello!");   D.char b[10]="Hello!";   19、在C程序中有如下语句:char *func(int x,int y); 它是( )。   A. 对函数func的定义。   B. 对函数func的调用。   C.对函数func的原型说明。   D. 不合法的。   20、以下程序的输出结果是( )。   char str[15]=”hello!”;   printf(“%d\n”,strlen(str));   A. 15   B. 14   C. 7   D. 6   参考答案:   1、B 2、C 3、D 4、C 5、C 6、D 7、C 8、D 9、C 10、D   11、D 12、D 13、B 14、B 15、A 16、D 17、B 18、B 19、C 20、D

c语言计算机二级考试选择题如图?

全国计算机二级考试试题题库(附答案)
下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在答题
卡相应位置上涂黑,答在试卷上不得分。
(1) 应用软件是指
A) 所有能够使用的软件 B) 能被各应用单位共同使用的某种软件
C) 所有微机上都应使用的基本软件 D) 专门为某一应用目的而编制的软件
(2) 下列述叙中错误的是
A) 计算机要经常使用不要长期闲置不用
B) 为了延长计算机的寿命,应避免频繁开关计算机
C) 在计算机附近应避免磁场干扰
D) 计算机用几小时后,应关机一会儿再用
(3) 下列字符中,ASCII码值最小的是
A) A B) a C) Z D) x
(4) 用晶体管作为电子器件制成的计算机属于
A) 第一代 B) 第二代 C) 第三代 D) 第四代
(5) 下列各不同进制的四个无符号数中,最小的数是
A) ()2 B) (37)8 C) (75)10 D) (2A)16
(6) 二进制数转换成十六进制数是
A) B) C) D)
(7) 下列各无符号十进制数中,能用八位二进制表示的是
A) 296 B) 333 C) 256 D) 199
(8) 计算机的软件系统可分类为
A) 程序与数据 B) 系统软件与应用软件
D) 操作系统与语言处理程序 D) 程序、数据与文档
(9) 486机中的CPU同时能处理的二进制位数为
A) 8 B) 16 C) 32 D) 64
(10) 在使用计算机的过程中,需要重新启动DOS,则要
A) 按Ctrl+Break键 B) 按^C键 C) 按Ctrl+Alt+Del键 D) 按^H键
(11) 现要从软盘启动DOS(软盘中已存有DOS系统),设有如下一些操作:①打开计算机
电源;②将该软盘插入A驱动器;③关好A驱动器门。则冷启动的操作顺序应为
A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①
(12) 设当前盘中某一文件路径为\A\C\B\,当前目录为\A。下列命令中错误的是
A) CD.. B) RD \A\C\B
C) TYPE \A\C\B\ D) TYPE C\B\
(13) 设当前盘中的根目录下有一子目录AB,在子目录AB下有一文件。现要查看文件
的内容,应使用命令
A) TYPE \AB B) TYPE \AB\
C) TYPE \ D) DIR \AB\
(14) 自动批处理文件必须放在
A) C盘根目录中 B) A盘根目录中
C) 启动盘的任一个目录中 D) 启动盘的根目录中
(15) 设当前盘当前目录为C:\USER\XY\P,且当前盘当前目录为空,则下列命令中能正
确执行的是
A) RD C:\USER\XY\P B) RD USER\XY\P
C) MD \USER\XY\P\USER D) MD \USER\XY\P\X\Y
(16) 下列DOS命令中,合法的是
A) DISKCOMP B) TYPE >>
C) COMP A: B: D) COMP A: A:
(17) 设当前盘为C盘,所用的所有软盘已格式化,且容量相同,则下列DOS命令中错
误的是
A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:
(18) 下列DOS命令中错误的是
A) TYPE >PRN B) TYPE PRN
C) COPY *.TXT PRN D) COPY CON PRN
(19) 下列四组DOS命令中,互相等价的一组是
A) COPY A:*.* B:与DISKCOPY A: B:
B) COPY +与TYPE >>
C) COPY + 与COPY +
D) TYPE *.FOR>CON与COPY *.FOR CON
(20) 设C盘目录结构如下:
且C盘根目录下文件的内容为
CD FORTRAN
CD \TC
如果在A驱动器中插入一张根目录中只有扩展名为.C的若干文件(即A盘中无DOS系统
文件)的软盘片,则由C盘启动DOS系统后,第一次键入下列命令中,正确的是
A) COPY A:\*.C B) COPY A:\*.C TC
C) COPY A:\*.C FORTRAN D) CD USER
(21) C语言提供的合法的数据类型关键字是
A) Double B) short C) integer D) Char
(22) 在C语言中,合法的长整型常数是
A) 0L B) 4962710 C) D)
(23) 表达式:10!=9的值是
A) true B) 非零值 C) 0 D) 1
(24) 合法的C语言中,合法的长整型常数是
A) '\t' B) "A" C) 65 D) A
(25) 若有说明和语句:
int a=5;
a++;
此处表达式a++的值是
A) 7 B) 6 C) 5 D) 4
(26) 在下列选项中,不正确的赋值语句是
A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;
(27) 若有说明:int i,j=7, *p=&i;,则与i=j;等价的语句是
A) I= *P; B) *P=*&J; C) i=&j; D) i=* *p;
(28) 不能把字符串:Hello!赋给数组b的语句是
A) char b[10]={'H','e','l','l','o','!'};
B) char b[10];b="Hello!";
C) char b[10];strcpy(b,"Hello!");
D) char b[10]="Hello!";
(29) 若有以下说明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
则数值为4的表达式是
A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]
(30) 若有以下说明:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为6的表达式是
A) *p+6 B) *(p+6) C) *p+=5 D) p+5
(31) 若有以下说明:
int w[3][4]o={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
则数值为4的表达式是
A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]
(32) 若程序中有下面的说明和定义
struct abc
{int x;char y;}
struct abc s1,s2;
则会发生的情况是
A) 编译进错 B) 程序将顺利编译`连接`执行
C) 能顺利通过编译`连接`但不能执行 D) 能顺利通过编译`但连接出错
(33) 能正确表示a≥10或a≤0的关系表达式是
A)a>=10 or a=10│a<=0
C)a>=10││a=10 ││a<=0
(34) 下面程序的输出是
main()
{ int x=3,y=6,a=0;
while(x++!=(y+=o1))
{ a+o=1;
if(y
#include
main()
{ char ss[10]="12345";
strcat(ss,"6789");
gets(ss);printf("%s\n",ss);
}
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(35) 下面程序的输出是
main()
{ char *a="";
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{ default:v4++;
case '1': v1++;
case '3': v3++;
case '2': v2++; }
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }
A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1
C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8
(36) 下面程序的输出是
main()
{int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b
(37) 若有以下程序段,w和k都是整型变量:

w=k;
LB: if(w==0) go to LE;
w--;
printf("*");
goto LB;
LE: ┆
则不能与上面程序段等价的循环语句是
A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*");
C)w=k; D)w=k;
while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0);
(38) 若有说明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是
A)*p=&a; scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p);
C) p=&a;scanf("%lf",a); D)p=&a; scanf("%le",p);
(39) 当执行下面程序且输入:ABC时,输出的结果是
#include
#include
main()
{ char ss[10]="12345";
gets(ss);printf("%s\n",ss); }
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(40) 若有以下的说明和语句:
main()
{int t[3][2], *pt[3],k;
fpr(k=o; k<3;k++)pt[k]=t[k];
}
则以一选项中能正确表示t数组元素地址的表达式是
A) &t[3][2] B) *pt[0] C) *(pt+1) D) &pt[2]
(41) 下面程序输出数组中的最大值,由s指针指向该元素.
main()
{ int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;
flr(p=a, s=a; p-a<10; p++)
if(---?---)s=p;
printf("The max:%d",*s):
}
则在if语句中的判断表达式应该是
A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s
(42) 下面程序的输出是
#include
main()
{ char*a="abcdefgh";
fun(a);puts(a); }
fun (char * s)
{ int x=0,y;char c;
for(y=strlen(s)-1;x
A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba
(43) 若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句
中实参的个数是
A)3 B)4 C)5 D)6
(44) 下面程序的输出是
main()
{ int t=1; fun(fun(t));}
fun(int h)
{ static int a[3]={1,2,3};
int k;
for(k=0;k<3;k++) a[k]+=a[k]-h;
for(k=1;k<3;k++) printf("%d",a[k]);
printf("\n"); return(a[h]);}
A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,
1,5,9, 1,3,5, 0,4,8, -1,3,7,
(45) C语言中,函数的隐含存储类别是
A)auto B)static C)extern D)无存储类别
(46) 下面程序的输出是
int w=3;
main()
{ int w=10; printf("%d\n",fun(5)*w); }


下半年计算机二级c语言基础试题

下半年计算机二级c语言基础试题   任何设计活动都是在各种约束条件和相互矛盾的需求之间寻求一种平衡,程序设计也不例外。下面是我收集的关于计算机二级c语言基础试题,希望大家认真阅读!   下半年计算机二级c语言基础试题1   一、选择:   1.给出以下定义:   char acX[ ]= "abcdefg";   char acY[ ]= {'a','b','c','d','e','f','g'};   则正确的叙述为( )   A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同   C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组acY的长度   答案:C   2.   void example(char acHello[])   {   printf("%d", sizeof(acHello));   return;   }   void main()   {   char acHello[] = "hello";   example(acHello);//数组名称作参数,传的是地址,一个地址占四个字节   return;   }   的输出是   A 4 B 5 C 6 D不确定   答案:A   3. 有以下程序段   char acArr[]= "ABCDE";   char *pcPtr;   for(pcPtr = acArr; pcPtr < acArr + 5; pcPtr++)   {   printf("%s/n", pcPtr);   }   return;   输出结果是( )   A) ABCD B) A C) E D) ABCDE   B D BCDE   C C CDE   D B DE   E A E   答案:D   4.在中断中,不能同步获取信号量,但是可以释放信号量。   A.正确 B.错误   答案:A   5.以下叙述中不正确的是( )   A) 在不同的函数中可以使用相同名字的变量   B) 函数中的形式参数是局部变量   C) 在一个函数内定义的变量只在本函数范围内有效   D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码)   答案:D   6.设有如下定义:   unsigned long pulArray[] = {6, 7, 8, 9, 10};   unsigned long *pulPtr;   则下列程序段的输出结果为( )   pulPtr = pulArray;   *(pulPtr + 2) += 2;   printf ("%d,%d/n", *pulPtr, *(pulPtr + 2));   A)8,10 B)6,8 C)7,9 D)6,10   答案:D   7. 定义结构体时有下面几种说法,请指出正确的(多选):______   A、结构体中的每个部分,最好进行四字节对齐;   B、结构体的总长度最好是四字节对齐;   C、结构中成员的存放不用考虑字节对齐情况;   答案:A、B   8.void example()   {   int i;   char acNew[20];   for(i = 0; i < 10; i++)   {   acNew[i] = '0';   }   printf("%d/n", strlen(acNew));   return;   }   的输出为( )   A 0 B 10 C 11 D不确定   答案:D   9.switch(c)中的c的数据类型可以是char、long、float、unsigned、bool. ( )   A. 正确 B. 错误   答案:B   10. 网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是   大字节序,为了程序的一致性及可移植性,最好也在程序中加上字节序转换的操作(空操作)。   A. 正确 B.错误   答案:A   二、 填空题   1、 C语言函数返回类型的默认定义类型是   2、 函数的实参传递到形参有两种方式: 和   3、在一个函数内部调用另一个函数的调用方式称为 。在一个函数内部直接或间接调用该函数成为函数 的调用方式   4、C语言变量按其作用域分为 和   5、凡在函数中未指定存储类别的局部变量,其默认的存储类别为   三、 看程序写结果   1、#include   Int abc(int u,int v);   Void main()   {int a=24,b=16,c;   c=abc(a,b);   printf(“value=%d”,c);   }   Int abc(int u, int v)   {int w;   While(v)   {w=u%v;   u=v;   v=w;   }   Return u;   }   2、#include   int x1=30,x2=40;   main()   {int x3=10,x4=20;   sub(x3,x4);   sub(x2,x1);   printf(“%d,%d,%d,%d ”,x3,x4,x1,x2);   }   sub(int x,int y)   {x1=x;x=y;y=x1;}   3、#include   Main()   {int i=5;   Printf(“%d ”,sub(i));   }   sub(int n)   {int a;   If(n==1) return 1;   a=n+sub(n-1);   return (a);   }   4、#include   Void fun()   {static int m;   m+=2;   printf(“%d ”,m);   }   Main()   {int a;   For(a=1;a<=4;a++) fun();   Printf(“ ”);   }   四、 编程题   1、 编写一个函数,判断任一整数是否为素数,用main()函数调用并测试之。   2、 用递归方法求n!   3、 有一个一维数组,内放10个学生成绩,写一个函数,求出平均分,最高分和最低分   下半年计算机二级c语言基础试题2   1.下列叙述中正确的是( )。   A. 所有数据结构必须有根结点   B. 所有数据结构必须有终端结点(即叶子结点)   C. 只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构   D. 没有根结点或没有叶子结点的数据结构一定是非线性结构   【答案】D   【解析】D项正确,线性结构的特点是:   ①集合中必存在“第一个元素"且惟一;   ②集合中必存在“最后一个元素”且惟一;   ③除最后一个元素外,其他数据元素均有惟一的“后继;   ④除第一个元素外,其他数据元素均有惟一的“前驱”。所以没有根结点或没有叶子结点的数据结构一定是非线性结构。AB两项错误,不是所有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不满足只有一个前件或者后件的条件,就不是线性结构。答案选择D选项。   2. 以下叙述中错误的是( )。   A. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令   B. C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件   C. 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中   D. C语言源程序经编译后生成后缀为.obj的目标程序   【答案】A   【解析】A项错误,注释语句不会被翻译成二进制的'机器指令。C源程序经过C编译程序编译之后生成后缀为.obj的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执行文件。答案选择A选项。   3. C语言主要是借助以下( )功能来实现程序模块化的。   A. 定义函数   B. 定义常量和外部变量   C. 三种基本结构语句   D. 丰富的数据类型   【答案】A   【解析】C程序的模块化主要通过函数来实现。C语言允许对函数单独进行编译,从而可以实现模块化。答案选择A选项。   4. 有以下程序段:   char ch;   int k;   ch='a';   k=12;   print("%c,%d,",h,ch,k);   printf("k=%d ",k);   已知字符a的ASCII码十进制值为97,则执行上述程序段后输出的结果是( )。   A. 因变量类型与格式描述符的类型不匹配输出无定值   B. 输出项与格式描述符个数不符,输出为零值或不定值   C.a,97,12k=12   D. a,97,k=12   【答案】D   【解析】字符变量的值是该字符的ASCII码值,可以参与整型变量所允许的任何运算。"ch='a",%c表示以字符格式输出ch的值,所以输出为a;%d表示以十进制代码的形式输出ch的值,为97;k没有对应的输出格式,不输出。在第二个语句中,首先输出"k=",然后以十进制代码输出k的值,为12。答案选择D选项。   5. 下列叙述中正确的是( )。   A. 栈是“先进先出”的线性表   B. 队列是“先进后出"的线性表   C. 循环队列是非线性结构   D. 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构   【答案】D   【解析】有序的线性表既可采用顺序存储结构,也可以采用链式存储结构。A项错误,栈是“先进后出"的线性表B项错误,队列是“先进先出"的线性表;C项错误,循环队列是线性结构的,有序的线性表既可采用顺序存储结构,也可采用链式存储结构。   答案选择D选项。   6. 某二叉树的中序序列为DCBAEFG,后序序列为DCBGFEA,则该二叉树的深度(根结点在第1层)为( )。   A. 5   B. 40   C.3   D. 2   【答案】B   【解析】二叉树的后序序列为DCBGFEA,则A为根结点。中序序列为DCBAEFG,则DCB为左子树结点,EFG为右子树结点。同理B为C父结点,C为D父结点。根据分析,可画出左子树,同理E为F父结点,F为G父结点。根据分析,可画出右子树,故二叉树深度为4层。答案选择B选项。   7. 设有定义:struct{intn;floatx;}s[2],m[2]={{10,2.8},{0,0.0}};,则以下赋值语句中正确的是( )。   A. s[0]=m[1];   B. s=m;   C.s.n=m.n;   D. s[2].x=m[2].x;   【答案】A   【解析】定义了结构体类型数组s,长度为2,结构体类型数组m,长度为2,并对数组m进行了初始化。同类型的结构体可以直接用变量名实现赋值,A项正确;数组名为数组首地址,地址常量之间不可以相互赋值,B项错误;数组名为地址常量不是结构体变量,不能引用成员,C项错误;s[2]与m[2]数组越界,D项错误。答案选择A选项。   8. 关于C语言标识符,以下叙述错误的是( )。   A. 标识符可全部由数字组成   B. 标识符可全部由下划线组成   C. 标识符可全部由小写字母组成   D. 标识符可全部由大写字母组成   【答案】A   【解析】C语言标识符只能由字母、数字、下划线构成,且只能以字母、下划线开头,故答案选择A选项。   9. 以下程序段中的变量已定义为int类型,则   sum=pAd=5;   pAd=sum++,++pAd,pAd++;   printf("%d ",pAd);   程序段的输出结果是( )。   A. 6   B. 4   C. 5   D. 7   【答案】D   【解析】自增和自减运算符的两种用法:前置运算,运算符放在变量之前,规则是先使变量的值增(或减)1,然后以变化后表达式的值参与其他运算;后置运算,运算符放在变量之后,规则是变量先参与其他运算,然后再使变量的值增(或减)1。执行pAd=sum++,sum++是后置自增,执行完后,pAd=5,sum=6。++pAd和pAd++语句中没有其他运算,即效果相同,pAd分别加1,两句执行完后,pAd7。答案选择D选项。 ;


计算机二级C语言题型的变化及应试技巧

  一、考试的变化   考试的模式已经转变为无纸化,选择题直接在计算机上完成抛弃了过去的笔试这一部分,在考核要求没有变化的情况下,也取消了填空题,现在的考试模式规定为一百二十分钟,试题满分为一百分,其中上机操作题为六十分,选择题为四十分。获得合格证书的要求是六十分,不能获得合格证书的考生,在下一次考试中也不会安排补考,只能在一次考试的时候重新按新生的身份来参加。   二、试卷的结构   二级C语言试卷由选择题和上机操作题两部分组成,其中选择题40道小题,每小题1分,选择题前10道小题是二级公共基础知识。上机操作题基本延用传统考试中上机操作题的题型,分别为填空题18分、找错改错题18分和程序设计题24分。   另外无纸化考试中,每个考生的题目是从考试系统中随机生成的,而每个题的各选项(如选择题的四个选项)的顺序也是随机的,不是固定的。   三、试卷题型分析及应试技巧   (一)选择题分析   基本操作与基本知道的掌握是选择题的考核目的,我们对相关知识掌握是不是够全面、是不是能够理解准确,还有理解的思路是不是够清晰都是考核的内容。选择题的覆盖面较为广泛,一般情况下都是单选的客观题,每题为1分。在新规则下,选择题答完退出后再不能进入选择题做答,因此,答选择题时就应认真、谨慎,一些自己已经非常熟悉的选择题,也要认真分析,不能粗心大意,因为一些选择题会设置一些陷阱,一定要明确答案之后再进行选择。每道题都要完成有把握的做正确是有很大难度的,所以在自己不确定或者没有把握的情况的下一定不要浪费太多时间,考试的时候我们也要学会放弃一些题。   解答选择题时可以采用如下几种方法,这样可以提高答题速度和准确率:   1.顺选法:如果对题中的4个选项,一看就能肯定其中的1个是正确的,就可以直接得出答案。   2.排除法:对题中的4个选项逐个去掉错误的选项。   3.比较法:也称之为蒙猜法,对于实在没有把握的题,那就只有比较四个选项中那个更接近题目要求了。   (二)上机操作题分析   上机操作题一般都有输出结果,而要产生输出结果,必须要有实际的编程能力编写程序,这就要运用程序调试方法,所以能够熟练的编写程序和调试程序,对于通过二级C是一项非常重要的技能。   程序编写能力与综合操作能力是上机操作题重点考查部分,主要是通过掌握的知识来实际进行操作。这些操作题的分数是通过机器评定为准,人工复查为辅,所以这一考查部分基本不存在是否公正的情况,但是存在板滞的情况,有些情况可能会因为制定考题时涉及不够周全导致错判。因此对于这样的情况我们在做题的时候一定要充分考虑到,编写程序的时候一定尽可量的按规定而行,避免因错误评判导致不得分的情况出现。   掌握好上机操作题的考试技巧,可以使我们的实际水平在考试时得到充分发挥,从而取得较为理想的'成绩。总结起来有以下几点供我们在复习和考试时借鉴:   1.上机考试训练时,不要死记硬背。要在熟记基本知识点的基础上,加强上机训练,做到真正理解、掌握解题方法和思路。   2.要重视考试模拟软件的使用。使用考试模拟软件进行实际的上机操作练习,尤其要做一些具有针对性的上机模拟题,以便熟悉考试题型,体验真实的上机环境,减轻考试时的紧张程度。   3.学会并习惯使用编程软件的帮助系统。C语言编程软件有非常全面的帮助系统,熟练掌握、使用帮助系统,可以使我们减少记忆量,解决解题中的陌生、疑难问题。   4.熟悉考试场地及环境,尤其是要熟悉考场的硬件情况和所使用的相关软件的情况。一般在正式考试前,考点会提供一次模拟上机的机会,应尽可能去参加。模拟考试时,不要把重点放在做题上,而应放在熟悉考试环境,相应软件的使用方法,考试系统的使用等方面。   5.认真审题,先分析,后答题。试题的考核是有针对性的,因此在答题时也要有针对性。解答前,除了要看清问题外,还要弄清楚题目考核的意图。明白了问在那里后,就可以开始考虑好如何答题了,然后依思路从容做答。   6.考试时不要急燥、慌张,要认真、冷静地看清题目要求,在做完题后一定要保存文件,并运行程序检测运行结果是否符合题目要求。在考完交卷前先关闭掉C语言编程软件和其他打开的文件,再交卷,确保交卷过程中不出错误。   7.熟练的掌握二级C题库中的上机操作题目。   在无纸化环境下,二级C的考试虽减少了笔试环节,但要能够顺利过关获得证书,取决于我们对C语言理论知识和上机操作技能掌握的扎实程度。否则,即使有再好的技巧也无济于事,只能碰运气。所以,二级C考生应该认真学习基础理论,熟练掌握编程和调试程序的技能,打好C语言基础,在扎实的基础上运用以上应试技巧,就能使考试起到事半功倍的效果。

计算机二级c语言题型

答:二级C语言程序设计题型主要包括单项选择题、程序填空题、程序改错题和程序设计题。具体如下:1.单项选择题,40题,共40分(含公共基础知识部分10分);2.程序填空题,3空,共18分;3.程序改错题:2各错误,共18分;4.程序设计题:共24分。拓展: 计算机二级c语言程序设计并不难,主要考察的是基本语法,还有顺序,选择,循环这三大结构,数组及其对应的算法,函数的定义与调用,还有结构体和指针。考试内容一、c语言程序的结构二、数据类型及其运算三、基本语句四、选择结构程序设计五、循环结构程序设计六、数组的定义和引用七、函数八、编译原理九、指针十、结构体十一、位运算十二、文件操作只要求缓冲文件系统(即高级磁盘I/ O系统),对非标准缓冲文件系统(即低级磁盘I/O系统)不要求。

计算机二级c语言考试内容

计算机二级(C语言)考试内容如下:DOS命令,计算机组成原理,多媒体、数据库操作、计算机网络、C语言程序设计。二级考试时间为120分钟,计算机二级考试采用全国统一命题、统一考试的形式。二级考试注意事项如下:1、考生凭准考证和身份证(或户口本、军人身份证)参加考试,缺一不可。2、考试开考前15分钟入场,对号入座,考试中将两证放在课桌右上角接受检查。上机考试交验两证。3、进入考场只能携带铅笔、橡皮、尺子、钢笔、圆珠笔等必备工具。相关内容1、根据新大纲的要求,二级(C语言)考试分为理论考试和上机考试两部分,必须都通过考试才能算合格。2、考试内容分为C语言程序设计(顺序结构、选择结构、循环结构、函数、指针、数组、字符串、编译预处理、作用域、结构体、共用体、文件等)和公共基础(数据结构、程序设计、软件工程和数据库)。

2018年计算机二级考试C语言试题及答案(2)

   2018年计算机二级考试C语言试题及答案(2)   选择题(每小题1分,共40分)   1[单选题] 若有定义语句:double a,* P=&a;以下叙述中错误的是(  )。   A.定义语句中的*号是一个间址运算符   B.定义语句中的*号是一个说明符   C.定义语句中的P只能存放double类型变量的地址   D.定义语句中,*P=&a把变量a的地址作为初值赋给指针变量P   参考答案:A   参考解析:在变量定义double a,* P=&a;中,*号是一个指针运算符,而非间址运算符,所以A错误。   6[单选题] 若有定义语句:int x=10;,则表达式x-=x+x的值为(  )。   A.0   B.-20   C.-10   D.10   参考答案:C   参考解析:算术运算符+的优先级高于-=,且-=的结合方向为自右向左,所以表达式x-=x+x可以表示成x=x-(x+x)=10-(10+10)=-10,选择C。   2[单选题] 若有定义语句:double x,y,*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是(  )。   A.scanf(”%If%le”,px,py);   B.scanf(”%f%f”&x,&y);   C.sceanf(”%f%f”,x.y);   D.scanf(”%If%If'’,x,y);   参考答案:A   参考解析:因为x,y都是double型数据,所以输入时的格式字符应为%lf,所以B与C错误。D选项中scanf("%lf%If",x,y);应为scanf(“%If%If"”,&x,&y);。   3[单选题] 下列数据结构中,属于非线性结构的是(  )。   A.循环队列   B.带链队列   C.二叉树   D.带链栈   参考答案:C   参考解析:树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。   4[单选题] 对于循环队列,下列叙述中正确的是(  )。   A.队头指针是固定不变的   B.队头指针一定大于队尾指针   C.队头指针一定小于队尾指针   D.队头指针可以大于队尾指针,也可以小于队尾指针   参考答案:D   参考解析:循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构,所以队头指针有时可能大于队尾指针,有时也可能小于队尾指针。   5[单选题] 若变量已正确定义,在if(W)printf(”%d\n”,k);中,以下不可替代w的是(  )。   A.ab+c   B.ch=getchar()   C.a==b+c   D.a++   参考答案:A   参考解析:选项A是非法的表达式,C语言中没有运算符。   6[单选题] 下列排序方法中,最坏情况下比较次数最少的是(  )。   A.冒泡排序   B.简单选择排序   C.直接插入排序   D.堆排序   参考答案:D   参考解析:冒泡排序与筒单插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是nlog2n。   7[单选题] 数据库管理系统是(  )。   A.操作系统的一部分   B.在操作系统支持下的系统软件   C.一种编译系统   D.一种操作系统   参考答案:B   参考解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。是一种在操作系统之上的系统软件。   8[单选题] 以下选项中,能用作用户标识符的是(  )。   A._0_   B.8_8   C.void   D.unsigned   参考答案:A   参考解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。B中以数字8开头,所以错误。C与D中用的是关键字void与unsigned,所以错误。   9[单选题] 以下叙述中错误的是(  )。   A.使用三种基本结构构成的程序只能解决简单问题   B.结构化程序由顺序、分支、循环三种基本结构组成   C.C语言是一种结构化程序设计语言   D.结构化程序设计提倡模块化的设计方法   参考答案:A   参考解析:使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A错误。   10[单选题] 下列叙述中正确的是(  )。   A.栈是“先进先出”的线性表   B.队列是“先进后出”的线性表   C.循环队列是非线性结构   D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构   参考答案:D   参考解析:栈是先进后出的线性表,所以A错误;队列是先进先出的线性表,所以B错误;循环队列是线性结构的线性表,所以C错误。   11[单选题] 以下不构成无限循环的语句或语句组是(  )。   A.n=0:   do{++n;}while(n<=0);   B.n=0;   while(1){n++;}   C.n=10;   while(n);{n--;}   D.for(n=0,i=1;;i++)n+=i;   参考答案:A   参考解析:选项A中do后面的语句只执行了一次便结束了循环;B选项中条件while(1)永远成立,所以是死循环;C选项中n的值为10,而循环体为空语句,所以wilile(n)永远为真,进入死循环;D选项中for语句第二个表达式为空,所以没有判别条件,进入死循环。   12[单选题] 若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是(  )。   A.1   B.0   C.2   D.不知道a的值,不能确定   参考答案:A   参考解析:逻辑或”||”要求只要两边的运算对象有一个非零,结果就为真。虽然不知道a的值,但是若a为l,则左边运算对象为1;若a的值不是1,则右边运算对象的值为1,所以总能保证一边非零,所以结果为真,即1。   13[单选题] 下列选项中不属于结构化程序设计原则的是(  )。   A.可封装   B.自顶向下   C.模块化   D.逐步求精   参考答案:A   参考解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。   14[单选题] 某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是(  )。   A.10   B.8   C.6   D.4   参考答案:C   参考解析:根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中是5+1=6个。   15[单选题] 支持子程序调用的数据结构是(  )。   A.栈   B.树   C.队列   D.二叉树   参考答案:A   参考解析:栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A。

2018年计算机二级考试C语言试题及答案(3)

   2018年计算机二级考试C语言试题及答案(3)   1[单选题] 以下叙述中正确的是   A.两个字符串可以用关系运算符进行大小比较   B.函数调用strlen(s);会返回字符串S实际占用内存的大小(以字节为单位)   C.C语言本身没有提供对字符串进行整体操作的运算符   D.当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和   参考答案:C   参考解析:本题考查字符串处理函数strien、strcat、strcmp。B选项中strlen返回的是字符串s实际占用内存大小加上结尾符,A选项中不能用关系运算符进行大小比较,可以使用strcmp。D选项当使用连接函数strcat时,内存空间会减少一个字符位置。   2[单选题] 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。   A.一对一B.一对多C.多对多D.多对一   参考答案:C   参考解析:因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。   3[单选题] 对于while(!E)s;,若要执行循环体s,则E的取值应为:   A.E等于1B.E不等于0C.E不等于1D.E等于0   参考答案:D   参考解析:while语句的一般形式为:while(表达式)语句;其中表达式是循环条件,语句为循环体。while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。该题中如要执行语句s,则!E应为真,因此E应等于0,D选项正确。   4[单选题] 在软件设计中不使用的工具是( )。   A.系统结构图B.PAD图C.数据流图(DFD图)D.程序流程图   参考答案:C   参考解析:系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择C。   5[单选题] 若有定义语句:char a='\82';则变量a(  )   A.说明不合法B.包含1个字符C.包含2个字符D.包含3个字符   参考答案:B   参考解析:char a='\82',定义字符量a,char型变量值为1个字节长度,并从右侧开始运算,所以a的值应为'2'。因此B选项正确。   6[单选题] 若fp已定义为指向某文件的指针,且没有读到该文件的末尾,则C语言函数feof(fp)的函数返回值是   A.EOFB.非0C.-1D.0   参考答案:D   参考解析:本题考查文件的定位,feof函数的用法是从输入流读取数据,如果到达文件末尾(遇文件结束符),eof函数值为非零值,否则为0,所以选项D正确。   7[单选题] 以下叙述中正确的是   A.只要适当地修改代码,就可以将do-while与while相互转换   B.对于“for(表达式1;表达式2;表达式3)循环体”首先要计算表达式2的值,以便决定是否开始循环   C.对于“for(表达式1;表达式2;表达式3)循环体”,只在个别情况下才能转换成while语句   D.如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用while语句   参考答案:A   参考解析:B选项中,for语句中需要先求解先求解表达式1;C选项中,for语句使用最为灵活,它完全可以取代while语句;D选项中,对于死循环,也可以使用for语句。因此A选项正确。

2018年计算机二级考试C语言试题及答案(5)

   2018年计算机二级考试C语言试题及答案(5)   1[单选题] 耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是(  )。   A.提高耦合性降低内聚性有利于提高模块的独立性   B.降低耦合性提高内聚性有利于提高模块的独立性   C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度   D.内聚性是指模块问互相连接的紧密程度   参考答案:B   参考解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A错误,B正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素问彼此结合的紧密程度,所以C与D错误。   2[单选题] 软件设计中划分模块的一个准则是(  )。   A.低内聚低耦合   B.高内聚低耦合   C.低内聚高耦合   D.高内聚高耦合   参考答案:B   参考解析:一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。   3[单选题] 下列数据结构中,能够按照“先进后出”原则存取数据的是(  )。   A.循环队列   B.栈   C.队列   D.二叉树   参考答案:B   参考解析:栈是按先进后出的原则组织数据的。队列是先进先出的原则组织数据。   4[单选题] 以下叙述中错误的是(  )。   A.gets函数用于从终端读入字符串   B.getchar函数用于从磁盘文件读入字符   C.fput,函数用于把字符串输出到文件   D.fwrite函数用于以二进制形式输出数据到文件   参考答案:B   参考解析:本题考查字符处理函数和文件操作函数,属于基础知识,其中B选项getehar函数是用于从终端读入一个字符。   5[单选题] 以下选项中能表示合法常量的是(  )。   A.1,200   B.1.5E2.0   C.'\'   D."\007"   参考答案:D   参考解析:A选项中整型常量应表示为1200,不能包含“,”。B选项中E后面的指数必须为整数。C选项中转义字符以“\”开始,若要表示字符“\”,应写为“\\”。   6[单选题] 若有定义语句:char s[10]="1234567\0\0";则strlen(S)的值是(  )。   A.7   B.8   C.9   D.10   参考答案:A   参考解析:strlen()函数在计算字符串长度时,遇到结束标识为止,且长度不包括结束标识。本题中字符串,从第一个字符开始,遇到第一个结束标识‘\0’为止,注意‘\0’不占字符串长度,所以字符串长度为7。因此A选项正确。   7[单选题] C源程序中不能表示的数制是(  )。   A.十六进制   B.八进制   C.十进制   D.二进制   参考答案:D   参考解析:在C语言中整型常量可以用十进制、八进制和十六进制等形式表示,但不包括二进制,所以选择D。   8[单选题] 设有定义:   int a=1,b=2,e=3;   以下语句中执行效果与其他三个不同的是(  )。   A.if(a>b) c=a,a=b,b=c;   B.if(a>b) {e=a,a=b,b=e;}   C.if(a>b)e=a;a=b;b=C;   D.if(a>b) {c-7-a;a=b;b=e;}   参考答案:C   参考解析:由于a小于b,所以所有选项中的条件都为假,c选项中实际执行了a=b;b=c;两个操作。而A、B、D选项由于条件不成立.所以什么也没有做,所以选择C选项。   9[单选题] 软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是(  )。   A.编译程序   B.操作系统   C.教务管理系统   D.汇编程序   参考答案:C   参考解析:编译软件、操作系统、汇编程序都属于系统软件,只有C教务管理系统才是应用软件。

计算机二级C语言选择题及答案(2)

  }   printf("%d\n",num);   }   程序执行后的输m结果是(  )。   A.35   B.37   C.39   D.3975   32.以下程序的'输出结果是(  )。   main()   {char st[20]="hello\0\t\\\";   printf("%d%d\n",strlen(st).sizeof(st));   }   A.9 9   B.5 20   C.13 20   D.20 20   33.若有以下的定义:‘int t[3][2];”,能正确表示t数组元素地址的表达式是(  )。   A.&t[3][2]   B.t[3]   C.t[l]   D.t[2][2]   34.函数fseek(pf,OL,SEEK END)中的SEEK ENE 代表的起始点是(  )。   A.文件开始   B.文件末尾   C.文件当前位置   D.以上都不对   35.下述程序的输出结果是(  )。   #include   main()   { int i;   for(i=l;i<=10;i++)   {if(i*i>=20)&&(i*i<=100))   break;   }   printf("%d\n",i*i);   }   A.49   B.36   C.25   D.64   36.若有定义“int b[8],*p=b;”,则p+6表示(  )。   A.数组元素b[6]的值   B.数组元素b[6]的地址   C.数组元素b[7]的地址   D.数组元素b[o]的值加上6   37.设变量已正确定义,则以下能正确计算f=n!的程序是(  )。   A.f=0:   for(i=1;i<=n;i++)f*=i:   B.F=1:   for(i=l;i<2n;i++)f*=i:   C.f=l:   for(i=n;i>1;i++)f*=i:   D.f=1;   for(i=n;i>=2;i--)f*=i:   38.下述程序执行的输出结果是(  )。   #include   main()   { char a[2][4];   strcpy(a,"are");strcpy(a[1],"you");   a[0][3]=’&’;   printf("%s\n",a):   }   A.are&you   B.you   C.are   D.&   39.设x=011050,则x=x&01252的值是(  )。   A.0000001000101000   B.1111110100011001   C.0000001011100010   D.1100000000101000   40.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用(双引号)括起时,寻找被包含文件的方式是(  )。   A.直接按系统设定的标准方式搜索目录   B.先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索   C.仅仅搜索源程序所在目录   D.仅仅搜索当前目录   【答案与解析】   1.D。【解析】算法的空间复杂度,是指执行这个算法所需的存储空间。算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间、算法执行过程中所需要的额外空间。   2.D。【解析】数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,用的存储结构有顺序和链式结构。用不同的存储结构,其处理的效率是不同的。   3.D。【解析】所谓的交换排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序通过相邻元素的交换,逐步将线性表变成有序是一种最简单的交换排序方法。   4.C。【解析】结构化程序设计的原则和方法之一是限制使用GOT0语句,但不是绝对不允许使用GOT0语句。其他三项为结构化程序设计的原则。   5.D。【解析】文件系统所管理的数据文件基本上是分散、相互独立的。相对于数据库系统,以此为基础的数据处理存在3个缺点:数据冗余大、数据的不一致性、程序与数据的依赖性强。   6.C。【解析】面对象的设计方法的基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。它虽强调模拟现实世界中的概念而不强调算法,但是它鼓励开发者在软件开发的过程中从应用领域的概念角度去思考。   7.D。【解析】所谓的后序遍历是指,首先遍历左子树,然后遍历右子树,最后访问根结点,并且在遍历左、右树时,仍然先遍历左子树,然后遍历右子树,最后访问根点。因此,后序遍历二叉树的过程也是一个递归过程。   8.B。【解析】软件的过程设计是指系统结构部件转换成软件的过程描述。   9.A。【解析】①对软,牛开发的进度和费用估计不准确:②用户对已完成的软件系统不满意的现象时常发生;③软件产品的质量往往靠不住;④软件常常是不可维护的;⑤软件通常没有适当的文档;⑥软件成本在计算机系统总成本中所占的比例逐年上升;⑦软件开发生产率提高的速度远远跟不上计算机应用迅速普能及深入的趋势。   10.C。【解析】对象的封装性是指从外面看只能看到对象的外部特性,而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。   11.C。【解析】数据库系统由如下5个部分组成:数据库(DB)、数据库管理系统fDBMS)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。其中 DB(DataBase)即数据库,是统一管理的相关数据的集合;DBMS即数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,为用户或应用完程序提供访问DB的方法。由以上可知,选C为正确答案。   12.A。【解析】标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。B选项int不是表达变量类型的标识符,它不能再用做变量名和函数名。C 选项do是C语言的一个关键字。D选项标识符只能以字母或下划线开始。   13.D。【解析】本题考查逻辑运算符的使用。当“&&”的两个运算对象都是逻辑1时,表达式返回值才是1;“||” 的两个运算对象至少有一个是逻辑1时,表达式返回值也是1,x  14.C。【解析】第1个printf函数,格式说明的个数是2,而输出项的个数是3,所以对于多余的输出项k不予输出;第2个printf函数,有两个%说明,第1个%后面的字符要原样输出。本题考查printf函数的格式。①“%x”和“%0”分别表示以十六进制和八进制无符合型输出整型数据(不带前导ox或0);②printf函数中格式说明符之前插入的任何字符都原样输出;③格式说明与输出项的个数,也要相等,如果格式说明的个数少于输出项的个数,则对于多余的输出项不予输出。   15.C。【解析】函数fun(int x,int y)的功能是返回x+y的值。在主函数中,变量a,b,c的初始值分别为1,2,3。因此,逗号表达式“a++,b++,aq b”的值等于5,表达式c++的值为3,调用于函数的表达式为“fun(5,3);”,其返回值等于8。   16.D。【解析】在x=2,y=x+3/2中,3/2=1。2+1= 3,因此表达式的值为3,因为x,y为double型变量,故选择D选项。   17.A。【解析】当x为1时,执行case 1,a自加等于1,因为case 1后没有break,接着执行case 2,此时a的值为2,b自加为1,故选择A选项。   18.D。【解析】本题考梦自增运算符“++”、逻辑与运算符“&&”和逻辑或运算符“||”。自增运算符“++”出现在变量之前,表示先使用变量的值加l,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,再使用变量的值加l。当逻辑与运算符“&&’’两边的运算对象都为真时,逻辑表达式的值才为真;当逻辑或运算符“||”只要一个值为1,值就为1。根据运算符的优先级,题中应先计算内层括号中的值。++j是先自加后运算,因此运算时j的值等于3,所以表达式++j=3成立,即表达式的值为1;1与任何数都为进行或(||)运算,结果都为1,因此k=3的表达式i++是先运算后自加,因此运算时i为1,所以i++=1成立,自加1后i=2。if语句的条件为真即“1”,所以输出i、j、k的值分别是2,3,3。   19.A。【解析】本题考查switch语句。当i一1时,执行case 1,因为没有遇到break语句,所以依次往下运行,“a=a+ 2=2,a=a+3=5”;当i=2时,执行case 2,因为没有遇到break语句,所以依次往下执行,“a=a+2=7,a=a+3= 10”;当i=3时,执行case 3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a—a+2—13,a—a+3一l6:当i=4时,执行default,a=a+3=19,结束循环。   20.C。【解析】只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择C选项。   21.A。【解析】循环的作用是求行下标从1到2列下标从0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a [2][1]+a[2][2]=3+4+5+6+0=18。   22.A。【解析】在程序语句中,k的初始值为5,进行第l次while循环后,k自减1为4,非0,执行循环体里的printf语句,输出k,此时k的值变为1。程序执行第2次循环时,k 自减1变为0,为假,退出while循环语句。所以程序的最后结果为1。   23.A。【解析】通过地址来引用数组元素的方法有下列5种:   (1)a[i][j];(2)*(a[i]+j);(3)*(*(a+j)+i);(4)* (a[i][j]);(5)(&aE0][0]q-3*i+j)。故A正确。   24.C。【解析】选项A、B的空间不够;字符串存储要有结束符’\0’,且要占用一个空间,printf用来输出字符,不能输入字符串。   25.D。【解析】由题目ee线性链表的定义可知,要将q 和r所指的结点交换前后位置,只要使q指向r的后一个结点,p指向r结点,r指向q结点即可。而在选项D由,r-> next=q,这时r指向的节点为q;p->next r,这时p指向的节点为r;q->next=r->next,因为r节点已经指向q,所以执行这个语句后q又指向q,所以选项D不正确。   26.B。【解析】在第1次外层for循环中,首先x++得到x=1。进入到内层for循环,只有循环j的值为奇数时,变量x的值才自加1,所以在内层for循环执行过程中,变量x的值自加两次,当退出内层for循环时,x=3,然后执行x++,得到x=4。在进入执行第2次外层for循环中,首先x++得到x=5。进入到内层for循环,只有循环变量j的值为奇数时,变量x的值才自加1,所以在内层for循环执行过程中,变量X的值自加1两次,当退出内层for循环时,x=7,然后执行x++,得到x=8,所以打印输出变量x的值为8。   27.C。【解析】子函数fun1(double a)的功能是返回a的平方值的整数部分。子函数fun2(double x,double y)的功能是返回X的平方值的整数部分与Y的平方值的整数部分的和。又因为题中变量w的定义为double型,函数fun(2) 的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。所以双精度型变量w的值为5.O。   28.C。【解析】在for循环语句中自变量i从0开始,每次自加2,执行s+=*(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,*(t+i)代表数组的第i+1个元素。所以程序运行的结果是1+3+5+7+9=25,即变量S的值等于25。   29.A。【解析】本题在函数int fun(int n)的定义中又出现了对函数fun的调用,所以函数fun是递归函数

上一篇:2013年计算机二级考试时间

下一篇:国家计算机二级考试试题