笔试模拟题二级语言模拟_第1页
笔试模拟题二级语言模拟_第2页
笔试模拟题二级语言模拟_第3页
笔试模拟题二级语言模拟_第4页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、二级C语言笔试模拟305一、选择题1、栈和队列的共同特点是A. 都是先进先出C. 只允许在端点处B. 都是先进后出和删除元素D. 没有共同点2、不能与dowhile(exp)语句中的(exp)等价的表达式是()。A. (!exp =O)C. (exp =0)B. (exp0 | exp0)D. (exp!=O)3、在Vaual FoxPro中,使用LOCATEFORexpL命令按条件查找,当查找到满足条件的第一条后,如果还需要查找下一条满足条件的,应该。A. 再次使用LOCATE命令重新查询C. 使用CONTINUE命令D. 使用GO命令B. 使用SKIP命令4、以下程序运行后的输出结果是 #

2、includestdio.hf( main()x);n=1, m;(n); prm=f(%dn, m);f(x) return x*2;A. 1B. 2C. 4 D. 85、以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序a,void sort(n)i,j,t; for(i=0;in-1;i+)for(j=i+1;n;j+) if(aiaj)t=ai;ai=aj;aj=t;main()aa10=1,2,3,4,5,6,7,8,9,10,i;sort(&aa3,5); for(i=0;i10;i+)prf(%d,aai);prf(n);程序运行后的输出结果是A. 1,2,3,4,

3、5,6,7,8,9,10,C. 1,2,3,8,7,6,5,4,9,10,B. 10,9,8,7,6,5,4,3,2,1,D. 1,2,10,9,8,7,6,5,4,3,6、若有定义:A. a2!1a23;,以下选项中对a数组元素正确的是B. a23C. a03D. a12!17、 若有以下说明和定义typedeEG*, *q;EGER;以下叙述正确的是A. p 是型变量B. p 是基类型为的指针变量C. q 是基类型为的指针变量D. 程序中可用EGER代替类型名8、下列选项中不属于C语言数据类型的是()D. 枚举型A. 整型B. 逻辑型C. 双精度型9、计算机是包括( )的完整集合。A程序和

4、数据 B数据 C程序、数据和文档 D算法和数据10、请选出以下语句的输出结果 ( )prf(%dn,strlen(t065xffn);A5 B14C8 D输出项不合法,无正常输出11、设a、b、c、d、mn均为血型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)(n=cd)运算后,n的值为。A. 0B. 1C. 2D. 312、有以下程序: main()x=3, y=2, z=1;f(% dn, x/y&z);pr程序运行后的输出结果是。A. 3B. 2C. -1D.013、对下列二叉树进行前序遍历的结果为A. DYBEAFCZXC. ABDYECFXZB. Y

5、DEBFZXCAD. ABCDEFXYZ14、 已知有结构体:struct ska;float b;data,*p;若有p=&data, 则对data的成员a的正确是()。A. (*p).data.aB. (*p).aC. p-data.aD. p.data.a15、有下列程序段:n,t=1,s=0; scanf(%d,&n);dos=s+t;t=t-2;while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是()。A. 任意正奇数C. 任意正偶数B. 任意负偶数D. 任意负奇数16、若已建立下面的链表结构,指针p、s分别指向图中所示的结点,则不能将s所指的结点到链表末尾的语句

6、组是()AsnextNULL;ppnext;pnexts;Bppnext;snextpnext;pnexts;Cppnext;s-nextp;p-nexts;Dp(*p)next;(* s)next(* p)next;(* p)nexts;17、有下面程序段char a3,b=China; a=b;prf(%3,a);则下面的说法正确的是。A. 运行后见输出ChinaB. 运行后见输出ChC. 运行后见输出ChiD. 编译出错18、要为读/写操作打开一个字符文件,其正确的打开方式为。A. wrB. r+C. rb+D. rw19、有以下程序: main()X,Y,Z;x=y=1:Z=X+,Y+

7、,+Y;prf(“%d,%d,%dn”,X,Y,Z);程序运行后的输出结果是()。A. 2,3,3B. 2,3,2C. 2,3,1D. 2,2,120、下列SQL语句中,用于修改表结构的是()。A. ALTERB. CREATEC. UPDATED. INSERT21、有以下程序段:main)a=5,*b,*C;c=&b;b=&a;程序在执行了“c=&b;b=&a;”语句后,表达式“*c”的值是A. 变量a的地址C. 变量a中的值B. 变量b中的值D. 变量b的地址22、 下列对于线性链表的描述中正确的是空间不一定连续,且各元素的顺序是任意的A.B.C.D.空间不一定连续,且前件元素一定在后件

8、元素的前面空间必须连续,且前件元素一定在后件元素的前面空间必须连续,且各元素的顺序是任意的23、在长度为n的有序线性表中进行二分查找,情况下需要比较的次数是A. O(n)B. O(n2)C. O(log2n)D.O(nlog2n)24、 有两个关系R和S如下:则由关系R得到S的操作是A. 投影B. 交C. 选择D. 并25、有以下程序f1 (f2( main()x,x,y)return y)returnxy?x:y; xy?y:x;a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d);f=f1(f2(a,b),f2(c,d); g=a+b+c+d-e-f;pf

9、(%d,%d,%dn,e,f,g);程序运行后的输出结果是 。A.4,3,7B.3,4,7C.52,7D.2,5,726、下列对于测试的描述中正确的是()。A.B.C.D.测试的目的是证明程序是否正确 测试的目的是使程序运行结果正确测试的目的是尽可能多地发现程序中的错误测试的目的是使程序符合结构化原则27、有以下结构体说明和变量定义,点。struct node,指针p、q、r分别指向一个链表中的三个连续结data;tract node * next;*p,*q,*r;现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是A. r-next=-next=r-next;p-n

10、ext=r;q-next=r-next;p-next=r;r-next=q;p-next=r;q-next=r-next;r-next=q;q-next=r-next;r-next=q;P-next=r;28、 若有定义:char * st=how are you ; ,下列程序段中正确的是A. char a11, *p; strcpy(p=a+1, st4); B. char a11; strcpy(+a,st);C. char a 11; strcpy (a, st); (p=a 1, st+2);D. char a , * p; strcpy29、若有以下说明和定义 union dta;

11、char b;double c;data;以下叙述中错误的是 。data的每个成员起始地址都相同变量data所占的内存字节数与成员c所占字节数相等A.B.C.D.程序段data.a=5;pr data可以作为函数的实参f(%fn,d);输出结果为5.00000030、设有以下程序段:x=0, s=0;while(!x!=0) s+=+X;pr则(f(%d, s);)。A. 运行程序段后输出0B. 运行程序段后输出1C. 程序段中的控制表达式是的D. 程序段执行无限次31、以下程序的输出结果是 ( ) main( ) union char i 2;k; r;r. i02,ri10;prf(%dn

12、,r,k);A2 B1 C0 D不确定32、以下程序运行后的输出结果是 #includestdio.h main() char s=012xy;for(i=0; si!=0; i+)i,n=0;if(si=a & si=z) n+;prf(%dn, n);A. 0B. 2C. 3D. 533、 有以下程序main()c=35;prf(%dn,c&c);程序运行后的输出结果是。A. 0B. 70C. 35 D. 134、下面结构体的定义语句中,不正确的是 Astructdate。month; day; year;Struct date da;Bstmctdatemonth; day; year;

13、C.dastructmonth; day;year; date 1;D. #define DATE stmct date DATEmonth; day;year;da;二、填空题35、下列表达式用于判断y是否为闰年。闰年的判断条件是:年号能被4整除但不能被100整除或年号能被400整除,请填空。36、以下程序运行后的输出结果是。structstruct; main()NODEk;Nink;struct NODE m5,*p=m,*q=m+4; i=0;while(p!=q)p-k=+i;p+; q-k=i+;q-;q-k=i; for(i=0;i5;i+)pr prf(n);f(%d,mi.k

14、);37、 有以下程序:main()m,n,p;scanf(m=%dn=%dp=%d,&m,&n,&p);prf(%d%d%dn,m,n,p);若想从键盘上输入数据,使变量m中的值为111,n中的值为222,p中的值为333,。确的输入为中,元间的逻辑关系是通过 【2】 决定的;38、性表的顺序性表的中,元间的逻辑关系是通过 【3】 决定的。39、在两种基本测试方法中,测试的原则之一是保证所测模块中每一个独立路径至少执行一次。40、关系数据库管理系统能实现的专门关系运算包括选择、连接和 【5】 。41、 以下程序的功能是:将输入的正整数按逆序输出。例如:若输入135则输出531。请填空。#in

15、clude stdio.hmain()n,s;f(Enter a number:);scanf(%d,&n); f(Output:);pr pr dos=n%10;prf(%d,s);while(n! =0);prf(n);42、以下程序中,函数 sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。#define #define24void SumColumMin(aMN,*sum)i,j,k,s=0; for(i=0;iN;i+)k=0;for(j=1;jM;j+) if(akiaji)k=j;s+= ; =s;main(

16、) xMN=3,2,5,1,4,1,8,3,s;SumColumMin( );prf(%dn,s);43、以下程序的输出结果是 (9) 。main()a33=1,2,9,3,4,8,5,6,7,i,s=0;for(i=0;i3:i+)s+=aii+ai3-i-1;prtf(“%dn”,s);44、 若有定义:k;,以下程序段的输出结果是。for(k=2;k6;k+,k+)prf(#%d,k);45、 对设计的最小(模块或程序单元)进行的测试通常称为测试。46、 下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。请填空。#includestdio.h #include

17、string.h main() char a=clanguage,t; i,j,k;k=strlen(a); for(i=0;i=k-2;1+=2) for(j=1+2;j=k;j+=2)ift=ai;ai=aj;aj=t;puts(a);prf()n);47、Windows窗口一般由标题栏、菜单栏、控制按钮等部分组成。为了移动窗口,则要用鼠标拖动 【3】。48、 以下程序运行后的输出结果是。main()x=0210;prf(%Xn,x);49、算法的复杂度主要包括 【1】 复杂度和空间复杂度。:一、选择题1、C 考查栈和队列概念的掌握。解题要点 栈和队列都是一种特殊的操作受限的线性表,只允许

18、在端点处进行和删除。二者的区别是:栈只允许在表的一端进行或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行操作,在另一端进行删除操作,是一种“先进先出”的线性表。考点 2、C 评价模块独立性的主要标准,以及对它们的定义和分类。 本题考查dowhile循环。在dowhile循环中,当表达式的值为非零(真)时,执行循环,不能与其等价的是为零的表达式,即(exp=0)。3、C 本题考查的知识点是表结构修改的非SQL命令。在Vaual FoxPro中,使用LOCATE FORexpL命令按条件查找,当查找到满足条件的第一条后,如果还需要查找下一条满足条件的,应使用CONTINUE命令。

19、4、D 本题解题的关键是程序中3次调用了函数f,而且上一次的函数返回值作为本次调用的实参。第1次调用f(n),n=1传递给形参x,所以函数f返回值为1*2=2;第2次调用f(2),2传递给形参x,函数的返回值为2*2=4;第3次调用f(4),4传递给形参x,函数的返回值为4*2=8。 5、C C语言中,实参变量和形参变量之间的数据传递是单向的“值传递”方式。指针变量作函数参也要遵循这一规则,调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。6、D C语言中数组下标是从0开始的,所以二维数组a23的第一维下标取值为0、1;第二维的下标取值为0、1、2,因而选项A) 、B)

20、、C) 都是错误的,选项D) 表示数组元素a00。7、BEGER是类型名,由它来间接定义p和*q的类型,因此,p是基类型为的指针变量,故选项A不正确,选项B正确, q是二级指针变量,它指向基类型是的指针变量,故选项C,D不正确。所以4个选项中B正确。8、B 11、A9、C10、A C语言中比较表达式的运算结果为0或1。0代表不成立,1表示成立。12、D 本题中表达式x/y&z中运算符优先级的顺序为:(按位取反)、/(除)、&(按位与),即首先执行z得11111110,然后执行x/y=3/2=1,最后执行1&11111110=00000001 &11111110=00000000=0。13、C

21、二叉树前序遍历的含义是:首先根结点,然后按前序遍历根结点的左子树,最后按前序遍历根结点的右子树,前序遍历二叉树的过程是一个递归的过程。根据题目中给出的二叉树的结构可知前序遍历的结果是:ABDYECFXZ。14、B 本题主要考查结构指针:p=&data,结构体的成员,可以通过结构变量,即data.a也可以用等价的指针形式:(*p).a和p-a来 15、D结构体变量中的成员。 因为变量t的初始值等于1,经过第一次do while循环中,执行t=t-2这条语句一次,所以变量t的值为-1,判断关系表达式 t!=n是否成立,如果关系表达式成立,则执行第二次循环,再执行t=t-2这条语句一次,所以变量t的

22、值为-3,接着再判断关系表达式t!=n是否成立,如果关系表达式成立,执行第三次循环,否则退出循环。由此可知,所以只要输入变量n的值为负奇数,则一定会使t=n成立,则退出do while循环。16、C 18、B17、D 在C中可以通过fopen函数来打开个文件,在该函数的第二个参数中指定其打开方式。要以读写方式打开文件可以用r+、w+、a+来表示,要打开二进制文件,可以在打开方式中加上字母b,对于字符文件不要加b。19、C 本题主要考查的知识点是运算符的优先级和结合性。解本题的关键在于表达式Z=x+、V+、+Y的计算,其中有三种运算符“=”、“,”和“+”,它们的优先级从高到低依次是“+”、 “

23、=”和“,”,所以原表达式就相当于(Z=(X+),(Y+),(+Y)。自增运算符“+”是单目运算符,即它只对一个运算分量起作用,根据其在运算分量的前面或后面分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加1之后的值,后缀形式表达式的值为运算分量加1之前的值。20、A 在SQL语句中,创建用CREATE,删除用DROP,改变用ALTER,后面跟类型和名字,附加子句。21、C 主函数中定义了一个整型变量a,一个整型指针变量b和一个二级指针变量c,并让c指向指针变量b,让指针b指向整形变量a,所以*c为变量a的值,

24、所以,4个选项中选项C符合题意。22、A 线性链表是链式结构。在链式结构中,数据结构的空间可以不连续,各数据结点的23、C顺序与数据元间的逻辑关系可以不一致。 二分查找法也称为折半查找法。它的基本是:将n个元素分成个数大致相同的两半,取an/2与欲查找的x进行比较,如果x=an/2,则找到x,算法终止;如果xan/2,则要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列);如果xan/2,则要在数组a的右半部继续搜索x。每次余下n/(2i)个元素待比较,当最后剩下一个时,即n/(2i)=1。故,n=2i;所以i=log2n。24、C 选择和投影都是对单个表进行运算,其结果都是一个关系。交

25、和并运算要求参与运算的表具有相同的属性。选择运算是满足条件的元组,由图可知,由关系R得到关系S的操作是选择。25、A函数f1的功能是返回两个数中比较的值,f2的功能是返回两个数中比较小的值。26、C测试是为了发现错误而执行程序的过程,且为了达到好的测试效果,应该由独立的第三方来构造测试,程序员应尽量避免检查自己的程序。27、A 题目中要求将q和r所指结点的先后位置交换,即要求p所指结点的指针域指向r所指向的结点,r所指向的结点的指针域指向q所指向的结点,q所指向的结点的指针域指向r所指向的结点。选项A首先让r所指向的指针的指针域指向q所指向的结点,这样就将r所指向的结点的指针域指向的结点丢失了

26、。选项B首先q所指向的结点的指针域指向r所指向的结点的指针域所指向的结点,然后,让p所指向结点的指针域指向r所指向的结点,最后让r所指向的结点的指针域指向q所指向的结点,满足要求。选项C首先让p所指向结点的指针域指向r所指向的结点,然后让q所指向的结点的指针域指向r所指向的结点的指针域所指向的结点,最后让r所指向的结点的指针域指向q所指向的结点,满足要求。选项D首先让q所指向的结点的指针域指向r所指向的结点的指针域所指向的结点,然后,让r所指向的结点的指针域指向q所指向的结点,最后让P所指向结点的指针域指向r所指向的结点,满足要求。28、A 本题综合考查字符数组的赋值和strcpy函数的用法。

27、C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是的:str1=China,如果想把China这5个字符放到数组str1中,除了逐个输入外,还能使用strcpy函数,该函数的功能是将一个字符串到一个字符数组中。例如:strcpy(str1, China)或strcpy(str1, str2);注意,不能企图用以下语句来进行赋值(将str2的值传给str1):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接赋值给一个字符数组。strcpy函数的结构是:strcpy(字符数组1,字符串2),其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,“字符数组1”必须写成数组

28、名形式,如(str1), “字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。29、C union是表示共用体的关键字,成员a,b,c共占用同一个内存空间,data的每个成员起始地址都相同;共用体变量所占的内存长度等于最长的成员的长度,故变量data所占的内存字节数与成员c所占字节数相等:执行“data.a=5;prf(%fn,d);”prf函数只是将内存中的数据以不同的类型输出,而不能将内存中的整型数据自动转换为等值的浮点数故C是错误的。30、B 本题中,“!”表示逻辑非运算符,“!=“表示不等于运算符,逻辑非运算符比不等于运算符的优

29、先级高。31、A 32、B 程序的功能是统计字符串“012xy”中小写字母的个数。所以程序的运行结果为2。33、C 按位与运算是将两个操作数看做两个二进制数,然后对两个二进制数的对应位进行与运算,即同为1时,结果为1,否则为0。当两个操作数相同时,它们的相应位也相同,所以得到的结果和原操作数也相同。所以选项C正确。34、A二、填空题35、(y%4=0)&(y%100!=0)(y%400=0) 考查逻辑表达。年号能被4整除(y%4=0)但不能被100整除(y%100 1=0),两者是与的关系,年号能被400整除即y%400=0,与前两项是或的关系。36、13431 m是结构数组,长度为5。结构指

30、针p、q分别指向m0、m4,i初值为0.while循环当p和q不相等时,执行“p-k=+i;q-k=i+;”,也就是m0k值为1,m4k值为1,i值变为2,则“p+,q-”,p、q分别指向m1、m3,while循环当p和q不相等时,执行“p- k=+i;q-k=i+;”,也就是m1k值为3,m3k值为3,i值变为4,“p+,q-”,p、 q都指向m2,while循环当p和q相等时,循环停止。while循环体后面的“q-k=i;”,也就是m2k值为4。因此“for(i=0;i5;i+)pr 37、m=111n=222p=333f(%d,mi.k);”输出结果是:13431。 本题考查的是C语言s

31、canf函数和prf函数的相关知识。scanf函数中的格式控制说明是“m=%dn=%dp=%d”,根据题目要求为了使变量m中的值为111,n中的值为222,p中的值为333,需通过scanf函数进行输入,输入内容为m=111n=222p=333。38、相邻位置39、白盒邻接指针 按功能划分测试可分为白盒测试和黑盒测试。白盒测试的原则是保证所测试模块中每一独立路径至少执行一次;保证所测试模块所有判断的每一分支至少执行一次:保证所测试模块每一循环都在边界条件和一般条件下至少各执行一次;验证所有40、投影数据结构的有效性。 关系数据库管理系统的专门关系运算包括选择、连接和投影。选择运算在指定的关系中选取所有满足给定条件的元组,一个新关系;投影运算在给定关系的某些域上进行;连接运算是从两个关系的积中选出满足给定属性间一定条件的元组。41、 n/=10或n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论