计算机二级考试(含答案)
一、选择题(1)在C语言源程序中,以下叙述正确的是()。A)main函数必须位于文件的开头。B)每行只能写一条语句。C)程序中的一个语句可以写成多行。D)每个语句的最后必须有点号。(2)以下()是正确的字符常量。A)“c”B)‘\’C)‘W’D)“32a”(3)若有定义:inta=2;则正确的赋值表达式是()。A)a-=(a*3)B)double(-a)C)a*3D)a*4=3(4)下面叙述正确的是()。A)2/3与2.0/3.0等价B)(int)2.0/3与2/3等价C)++5与6等价D)'A'与"A"等价(5)putchar()函数的功能是向终端输出()。A)多个字符B)一个字符C)一个实型变量值D)一个整型变量表达式(6)结构化程序设计不包括()。A)最优化B)自顶而下,逐步细化C)模块化设计D)结构化编码(7)已知doublea=5.2;则正确的赋值表达式是()。A)a+=a-=(a=4)*(a=3)B)a=a*3=2C)a%3D)a=double(-3)n(8)C语言对if嵌套语句的规定:else总是与()配对。A)第一个ifB)之前最近的且尚未配对的ifC)缩进位置相同的ifD)之前最近的if(9)对于整型变量x和y,语句for(x=0,y=0;(y!=123)&&(x<4);x++)y++;中的“y++;”被执行()。A)4次B)0次C)123次D)3次(10)以下能对一维数组a进行正确初始化的语句是()。A)inta[5]=(0,0,0,0,0);B)inta[5]=[0];C)inta[5]={1,2,3,4,5,6,7};D)inta[]={0};(11)若有定义:inta[3][4]={{1,2},{0},{1,2,3}};则a[1][1]的值为()。A)0B){1,2}C)1D)3(12)若有定义:chara[]="abcdef";charb[]="xyz";则以下程序段运行后屏幕输出为()。strcpy(a,b);printf("%c",a[2]);A)cB)zC) D)d(13)以下程序运行后屏幕输出为()。#include
voidf(inti){inta=2;a=i++;printf("%d,",a);}main(){ninta=1,c=3;f(c);a=c++;printf("%d",a);}A)4,3B)3,3C)4,5D)3,5(14)以下叙述中,正确的是()。A)宏展开不占用运行时间,只占用编译时间B)预编译处理命令行必须以分号结束C)一个源程序只能有一个预编译处理命令行D)使用带参数的宏定义时,应该说明每个参数的数据类型(15)以下程序段运行后*(++p)的值为()。chara[5]="work";char*p;p=a;A)'w'B)存放'w'的地址C)'o'D)存放'o'的地址(16)以下程序段运行后x的值为()。inta[]={1,2,3},b[]={4,2,5};int*p,*q;inti,x;p=a;q=b;for(i=0;i<3;i++)if(*(p+i)==*(q+i))x=*(p+i)*2;A)2B)4C)6D)不确定(17)设有以下定义语句:structstudent{intnum;charname[10];floatscore;}wang,zhang;n则变量wang所占的内存字节数是()。A)14B)16C)18D)20(18)若有以下定义:structlink{intdata;structlink*next;}a,b,c,*head,*p;其中,指针head指向变量a,p指向变量c,a.next指向变量b,链表结构如下图所示:abc┌──┬──┐┌──┬──┐┌──┬──┐head→│data│next┼→│data│NULL│p→│data│next│└──┴──┘└──┴──┘└──┴──┘则能够把c插入到a和b之间并形成新链表的程序段是()。A)a.next=c;c.next=b;B)head.next=p;p.next=head.next;C)head->next=&c;p->next=head->next;D)(*head).next=p;(*p).next=&b;(19)对枚举类型进行定义,不正确的是()。A)enumb{1,2,3};B)enuma{A,B,C};C)enumc{D=3,E,F};D)enumd{X=0,Y=5,Z=9};(20)以下程序的可执行文件名是file.exe。main(argc,argv)intargc;char*argv[];{inti;for(i=2;i,其输出结果是()。A)CLanguageandProgrammingB)MyCLanguageandProgrammingC)MyCLanguageandProgrammingD)fileMyCLanguageandProgrammingn二、完成程序1、补充程序Ccon011.c,使其计算。2、补充程序Ccon012.c,该程序用公式计算圆周率的近似值。3、补充程序Ccon013.c,程序实现从10个数中找出最大值和最小值。三、改错1、程序Cmody011.c的功能是:从字符串数组str1中取出ASCII码值为偶数且下标为偶数的字符依次存放到字符串t中例如,若str1所指的字符串为:4AZ18c?Ge9a0z!则t所指的字符串为:4Z8z注意:数组下标从0开始。2、程序cmody012.c中,函数fun(intn)的功能是:根据参数n,计算大于10的最小n个能被3整除的正整数的倒数之和。例如:四、完成函数1、打开程序cprog011.c,完成其中的函数fun1,该函数的数学表达式是:例如:fun1(0.76)=2.175fun1(3.00)=5.307fun1(3.76)=9.1112、打开程序cprog012.c,完成其中的函数fun2(inta[],intn,intb[],intc[]),实现:1)将数组a中大于-20的元素,依次存放到数组b中;2)将数组b的元素按照从小到大的顺序存放到数组c中;3)函数返回数组b中的元素个数。n一、选择题(1)C(2)C(3)A(4)B(5)B(6)A(7)A(8)B(9)A(10)D(11)A(12)B(13)B(14)A(15)C(16)B(17)B(18)D(19)A(20)A二、完成程序1、floatf;(fabs(x)-2)/(x*x+1)2、-sign43、p+nmax<*qnum三、改错题1、j=0;if((str1[i]%2==0)&&(i%2==0))2、if((i>10)&&(i%3==0))y+=(double)1/i;四、函数1、x=(1+sin(x)+exp(x))/(1+x);return(x);2、inti,k,temp,j=0;for(i=0;i-20)b[j++]=a[i];for(i=0;ic[k]){temp=c[i];c[i]=c[k];c[k]=temp;}returnj;