《2007计算机等级考试二级C语言考前模拟密卷及答案10》由会员分享,可在线阅读,更多相关《2007计算机等级考试二级C语言考前模拟密卷及答案10(13页珍藏版)》请在金锄头文库上搜索。
1、2007计算机等级考试二级C语言考前模拟密卷及答案(10)(1)下列叙述中正确的是A)线性表是线性结构B)栈与队列是非线性结构C)线性链表是非线性结构D)二叉树是线性结构(2)非空的循环单链表head的尾结点(由p所指向),满足A)p-next=NULLB)p=NULLC)p-next=headD)p=head(3)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是A)堆排序B)直接插入排序 C)快速排序D)直接选择排序(4)对建立良好的程序设计风格,下面描述正确的是A)程序应简单、清晰、可读性好B)符号名的命名只要符合语法C)充分考虑程序的执行效率D)程序的注释可有可无(5)
2、下列不属于结构化分析的常用工具的是A)数据流图B)数据字典C)判定树D)PAD图(6)在软件生产过程中,需求信息的给出是A)程序员B)项目管理者C)软件分析设计人员D)软件用户(7)下列工具中为需求分析常用工具的是A)PADB)PFDC)N-SD)DFD(8)NULL是指A)0B)空格 C)未知的值或无任何值D)空字符串(9)数据库的故障恢复一般是由A)数据流图完成的B)数据字典完成的C)DBA完成的D)PAD图完成的(10)下列说法中,不属于数据模型所描述的内容的是A)数据结构B)数据操作C)数据查询D)数据约束(11)C语言程序的基本单位是A)程序行B)语句C)函数D)字符(12)下面四个
3、选项中,均是合法整型常量的选项是A)160 -0xffff 011B)-0xcdf 01a 0xeC)-01 986,012 0668D)-0x48a 2e5 0x(13)以下选项中合法的用户标识符是A)longB)_2TestC)3DmaxD)A.dat(14)假定x和y为double型,则表达式x=2,y=x+3/2的值是A)3.500000B)3C)2.000000D)3.000000(15)以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子xyz的C语言表达式是A)x/y*zB)x*(1/(y*z)C)x/y*1/zD)x/y/z(16)设x,y,t均为int型变
4、量,执行语句:x=y=3;t=+x|+y;完成后,y的值为A)不确定B)4C)3D)1(17)已知i,j,k为int型变量,若从键盘输入:1,2,3,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是A)scanf(-,-,-, i, j, k);B)scanf(%d %d %d,&i,&j,&k);C)scanf(%d,%d,%d,&i,&j,&k);D)scanf(i=%d,j=%d,k=%d,&i,&j,&k);(18)若变量已正确定义并赋值,下面符合C语言语法的表达式是A)m=5B)c=b=a=1C)float 8%5D)x+5=y+2(19)下列程序运行的结果是main
5、()float x;int i;x=3.6;i=(int)x;printf(x=%f,i=%d ,x,i);A)x=3.600000,i=3B)x=3.6,i=3C)x=3,i=3D)x=3.600000,i=3.000000(20)若执行下面的程序时,从键盘上输入5和2,则输出结果是main() int a,b,k;scanf(%d,%d ,&a,&b);k=a;if(aelse k=b%a;printf(%dn ,k);A)5B)3C)2D)0(21)C语言中 while 和do-while循环的主要区别是A)do-while的循环体至少无条件执行一次B)while的循环控制条件比do-w
6、hile的循环控制条件更严格C)do-while允许从外部转到循环体内D)do-while 的循环体不能是复合语句(22)以下程序的输出结果是main() int x=1,y=3;printf(%d,x+); int x=0;x+=y*2;printf(%d,%d, ,x,y);printf(%d,%dn,x,y);A)1,6,3,1,3B)1,6,3,6,3C)1,6,3,2,3D)1,7,3,2,3(23)下面程序输出的结果是main() int i;int a33=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+)printf(%d ,a2-ii);A)1 5 9B)7 5
7、 3C)3 5 7D)5 9 1(24)请阅读以下程序:main() int a=5,b=0,c=0;if(a=b+c)printf(*n);else printf(n);以上程序A)有语法错不能通过编译B)可以通过编译但不能通过连接C)输出*D)输出(25)以下程序的输出结果是main() char c=z;printf(%c,c-25);A)aB)ZC)z-25D)y(26)下面函数的功能是char *fun(char *str1,char*str2)while(*str1)&(*str2+=*str1+);return str2;A)求字符串的长度B)比较两个字符串的大小C)将字符串st
8、r1复制到字符串str2中D)将字符串str1接续到字符串str2中(27)下面函数调用语句含有实参的个数为func(exp1,exp2),(exp3,exp4,exp5);A)1B)2C)4D)5(28)下面程序段的运行结果是char *s=abcde;s+=2;printf(%d,s);A)cdeB)字符cC)字符c的地址D)无确定的输出结果(29)已有变量定义和函数调用语句:int a=25;print_value(&a);下面函数的正确输出结果是void print_value(int *x)printf(%dn,+*x);A)23B)24C)25D)26(30)当顺利执行了文件关闭操
9、作时,fclose函数的返回值是A)-1B)TRUEC)0D)1(31)设有如下定义char *s2= abcd,ABCD;则下列说法错误的是A)s数组元素的值分别是abcd和ABCD两个字符串的首地址B)s是指针数组名,它含有两个元素分别指向字符型一维数组C)s数组的两个元素分别存放的是含有4个字符的一维字符数组中的元素D)s数组的两个元素中分别存放了字符a和A的地址(32)以下不能对二维数组a进行正确初始化的语句是A)int a23=0;B)int a3=1,2,0;C)int a23=1,2,3,4,5,6;D)int a3=1,2,3,4,5,6;(33)有以下程序struct STU
10、 char num10; float score3; ; main()struct STU s3=20021,90,95,85, 20022,95,80,75, 20023,100,95,90,*p=s; int i; float sum=0; for(i=0;iscorei; printf(%6.2fn,sum); 程序运行后的输出结果是A)260.00B)270.00C)280.00D)285.00(34)若有说明:int a10;则对a数组元素的正确引用是A)a10B)a3,5C)a(5)D)a10-10(35)下面程序段中,输出*的个数是char *s=ta018bc;for(;*s!
11、=0;s+)printf(*);A)9B)5C)6D)7(36)设有如下函数fun (float x)printf(n%d,x*x);则函数的类型是A)与参数x的类型相同B)是voidC)是int型D)无法确定(37)有如下定义#define D 2 int x=5;float y=3.83;char c=D;则下面选项中错误的是A)x+;B)y+;C)c+;D)D+;(38)以下程序段的执行结果为#define PLUS(X,Y)X+Ymain() int x=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);printf(SUM=%d,sum);A)SUM=9B)SUM=12C)SUM=18D)SUM=28(39)C语言规定,函数返回值的类型是由A)return语句中的表达式类型所决定B)调用该函数时的主调函数类型所决定C)调用该函数时系统临时决定D)在定义该函数时所指定的函数类型所决定(40)下列程序的运行结果是void fun(int *a,int *b) int *k;k=a;a=b;b=k;main() int a=2004, b=9,*x=&a,*y=&b;fun(x,y);printf(%d%d,a,b);A)2004 9B)9 2004C)0 0D)编译时出错(41)下列程序是用来判断数组中特定元素的位置所在。