版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、二级 C 语言笔试 -345( 总分: 98.50 ,做题时间: 90 分钟 )一、选择题(总题数: 50,分数: 62.00)1. 数据处理的最小单位是 ( ) 。A) 数据 B) 数据元素 C) 数据项 D) 数据结构 (分数: 1.00 )A.B.C. VD.解析: 解析 数据处理的最小单位是数据项;由若干数据项组成数据元素;数据是指能够被计算机识别、 存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。2. 执行下面程序片段的结果是 ( )int x = 123;doprintf("%3d/n", x-) ;while(!x);A) 打印出 321
2、B) 打印出 123 C) 不打印任何内容 D) 陷入死循环(分数: 1.00 )A.B. VC.D.解析:3. C 语言可执行程序的开始执行点是 ( ) 。A) 包含文件中的第一个函数 B) 程序中第一个函数C) 程序中的 main() 函数 D) 程序中第一条语句分数: 1.00 )A.B.C. VD.main()解析:解析每个C程序有且只有一个主函数main(),且程序必须从 main函数开始执行,并在函数中结束。4. 函数的值通过 return 语句返回,下面关于 return 语句的形式描述错误的是A) return 表达式; B) return( 表达式 ) ;C) 一个 retu
3、rn 语句可以返回多个函数值 D) 一个 return 语句只能返回一个函数值分数: 1.00 )A.B.C. VD.解析: 解析 return 语句中的表达式的值就是所求的函数值,此表达式值的类型必须与函数首部所说明 的类型一致。如果类型不一致,则以函数值的类型为准,由系统自动进行转换。一个 return 语句只能返回 一个值。5. 若有下列定义和语句:int u=011,v=0x11,w=11 ; printf("%o,%x,%d/n",u,v,w) ; 则输出结果是 ( ) 。A) 9,17,11 B) 9,11,11 C) 11,11,11 D) 11,17,11(
4、分数: 2.00 )A.B.C. VD.解析:解析在C语言中,“ d表示输出带符号的十进制整型数;“ x表示以十六进制无符号型输出整型数据(即不带前导Ox或0X)6表示以八进制无符号型输出整型数据(即不带前导0)。6. C 语言中,组成数据文件的成分是 。A) 记录 B) 数据行 C) 数据块 D) 字符(字节)序列(分数: 1.00 )A.B.C.D. V解析: 解析 C 语言中的文件是流式文件。流式文件是一种无结构文件,即整个文件是一串字符流或二进 制流。文件的存取以字符或字节为单位。7. 下列叙述中正确的是 ( ) 。A) 栈是“先进先出”的线性表B) 队列是“先进后出”的线性表C) 循
5、环队列是非线性结构D) 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(分数: 1.00 )A.B.C.D. V解析: 解析 本题考查了栈、 队列、循环队列的基本概念, 栈的特点是先进后出, 队列的特点是先进先出, 根据数据结构申各数据元素之间的复杂程度,将数据结构分为线性结构与非线性结构两类。有序线性表既 可采用顺序存储结构,也可以采用链式存储结构。8. 有以下程序 main()int i=1 ,j=1 ,k=2 ;if(j+| k+)&&i+) printf("%d , %d %d/n", i , j , k);执行后输出结果是A) 1 , 1
6、 , 2 B) 2 , 2, 1 C) 2 , 2, 2 D) 2 , 2, 3(分数: 1.00 )A.B.C. VD.解析:解析 该题目的关键是要搞清楚“ &&”和“|”两个逻辑运算符的运算功能。运算符“ &&”和“|” 是双目运算符,要求有两个运算量。且规定逻辑与运算中,只有前面运算量的值为真时,才需要判别后面 的值。只要前面为假,就不必判别后面的值。而逻辑或则为只要前为真,就不必判别后面的值;只有前为 假,才判别后。本题中j+值为真,不进行k+的运算,所以k的值保持不变。9. 下列叙述中正确的是 ( ) 。A) 软件测试应该由程序开发者来完成B) 程序经
7、调试后一般不需要再测试C) 软件维护只包括对程序代码的维护D) 以上三种说法都不对(分数: 2.00 )A.B.C.D. V解析: 解析 因为-测试的目的在于发现错误,从心理学角度讲,由程序的编写者自己进行测试是不合适的,为了达到最好的测试效果,应该由独立的第三方进行测试工作,所以选项A)错误;程序调试,修改一个错误的同时可能引入了新的错误,解决的办法是在修改了错误之后,必须进行回归测试,所以选项B)错误;所谓软件维护,就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程,可 见选项C)也是错误的。10. 软件是指 ( ) 。A) 程序B) 程序和文档C) 算法加数据结构D)
8、 程序、数据与相关文档的完整集合分数: 1.00 )A.B.C.D. V解析: 解析 软件是程序、数据与相关文档的集合,相对于计算机硬件而言,软件是逻辑产品而不是物理 产品,是计算机的无形部分。11. 有下列程序:main() int x=5;do (printf("%d",x-=4) ;while(!(-X);程序的输出结果是 ( ) 。A) 1 B) 2 0 C) 1 -4 D)死循环 (分数: 2.00 )A.B.C. VD.解析:解析本题考查dowhile循环。执行printf 语句,x=x-4=1,输出1,判断while循环的控制 条件,-x=0,则(!(-x)
9、非零,循环条件成立,执行下一次循环;执行 printf 语句,x=x-4=-4,输出 -4 ,判断 while 循环的控制条件, -X=-5 ,则 (!(-X) 为零,循环条件不成立,结束循环。12. 有以下程序main()int a=1,b=2,m=0,n=0,k;k=(n=b >a) II (m=a< b);printf("%d,%d/n",k,m) ;程序运行后的输出结果是A) 0 , 0 B) 0 , 1 C) 1 , 0 D) 1 , 1分数: 1.00 )A.B.C. VD.解析: 解析 在“| ”运算中当其左边的表达式为真,右边的表达式将不再执行。
10、主函数中,“| ”左边的表达式k=(n=b > A),“2>1 ”为真,所以 n被赋值为1,接着k被赋值1,即“ ”运算符左边表达式 为真,此时不再计算“”右边的表达式,因此m的值没有被改变仍为 0,最后的输出结果1, 0。13. “商品”与“顾客”两个实体集之间的联系一般是 。A) 对 B) 对多C) 多对一 D) 多对多分数: 1.00 )A.B.C.D. V 解析:知识点: Visual FoxPro 基础知识 / 关系数据库 评析:两个实体间的联系可以归纳为 3 种类型: 对联系:对的联系表现为主表中的每条记录只与相关表中的条记录相关联。 对多联系:对多的联系表现为主表中的
11、每条记录与相关表中的多条记录相关联。 多对多联系:多对多的联系表现为个表中的多个记录在相关表中同样有多个记录其匹配。 本题中个顾客可以购买多种商品,同种商品可以有多个顾客购买,所以商品和顾客之间是多对多的联 系。14. 有以下程序:#include < stdio.h >#include < string.h >main()char str20("One*world","One*Dream!" ,*p=str1 ;prinft("%d ," ,strlen(p) ;printf("%s/n"
12、,p) ;程序运行后的输出结果是 ( ) 。A) 9 ,One*World B) 9 ,One*Dream!C) 10 ,One*Dream! D) 10 ,One*World(分数: 1.00 )A.B.C. VD.解析: 解析 本题输出两个结果,第一个是求字符串的长度。第二个是输出的字符串,数组的下标是从 开始的,所以当 str 取 1 的时候,应为“ One*Dream!”。15. 以下程序的输出结果是 。#include < stdio.h >#define SQR(x)x*xmain()int a,k=3;a=+SQR(k+1); printf("%d/n&qu
13、ot; ,a) ;A) 8 B) 9 C) 17 D) 20(分数: 1.00 )A.B. VC.D.k+1*k+1解析:解析本题宏替换中遇到形参 x以实参k+1代替,其他字符不变。SQR(k+1)展开后应为字符串16. 下述函数功能是 。int fun(char*x)char*y=x;while(*y+) ; return y-s-1;A)求字符串的长度B)求字符串存放的位置C)比较两个字符串的大小D)将字符串x连接到字符串y后面(分数:1.00 )A. VB.C.D.解析:解析在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度
14、。17. 在关系数据库中,用来表示实体之间联系的是()。A)树结构B)网结构C)线性表D)二维表(分数:1.00 )A.B.C.D. V解析:解析在关系数据库中,用二维表来表示实体之间的联系。18. 现有以下结构体说明和变量定义,如图所示,指针P, q,r分别指向一个链表中连续的三个结点struct nodechar data ;struct node *next;*P,*q,*r ;现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是()A)q-> next=r-> next ; p- > next=r;r-> next=q;B)p-&g
15、t; next=r; q- > next=r- > next;r-> next=q;C)q-> next=r-> next ; r- > next=q;p-> next=r;D)r-> next=q; P- > next=r ; q- > next=r- > next;(分数:1.00 )A.B.C.D. V解析:解析选项D)中首先将q赋给r- > next,也就是将结点q的地址存放在结点r的指针域中;接着 将r赋给p- > next,也就是将结点r的地址存放在结点p的指针域中,此时完成了 q和r所指结点的交换。 q
16、- > next=r- >next的目的是想将q的指针域指向下一个结点的数据地址,但由于一开始执行了 r- >next=q,即已将r的指针域甲存放了 q结点的地址,此时q-next=r- > next就相当于将q指向了其本身,也就是和 下一个结点断开了,所以选项D)错误。19. 阅读下列程序,则运行结果为#include "stdio.h"fun()static int x=3x+;return x ;main()int i,x;for(i=0 ; i v 3 ; i+)x=fun() ;printf("%d/n",x) ;A)
17、3 B) 4 C) 5 D) 6(分数: 1.00 )A.B.C.D. V解析: 解析 在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久的存储单元,即使退 出函数以后,下次再进入该函数时,静态局部变量仍使用原来的存储单元,静态局部变量的初值是在编译 的时候赋予的, 在程序执行期间不再赋予初值。 本题由于连续 3 次调用函数 fun() ,3 次对静态变量 x 进行 操作, x 的值应依次为 4,5,6。20. 有以下程序:void fun(char *a, char*b)a=b;(*a)+;)main()char c1='A',c2='a', *p
18、1, *p2;p1=&c1; p2=&c2; fun(p1,p2); printf("%c%c/n", c1,c2);程序运行后的输出结果是 。A) Ab B) aa C) Aa D) Bb(分数: 2.00 )A. VB.C.D.解析: 解析 本题中函数 fun 的形参是指针变量,因此实参与形参之间是地址传递,即形参的改变可以影响实参。main函数中pl指向c1,p2指向c2,函数调用语句fun(p1,p2)的功能是将p2所指存储单元的内 容的值加 1,即将 c2 的值加 1 得 c2 ='b' ,故 printf 函数的输出结果为 Ab。
19、21. 有以下程序int a=3;main()int s=0;int a=5; s+=a+;s+=a+;printf("%d/n",s);程序运行后的输出结果是A) 8 B) 10 C) 7 D) 11(分数: 1.00 )A. VB.C.D.解析:解析本题中定义一个全局变量a和一个局部变量a。局部变量和全局变量的不同在于,局部变量的存储单元都是在进入这些局部变量所在的函数体 (或复合语句 ) 时生成,退出其所在的函数体 (或复合语句 ) 时消失,而全局变量是在函数外部任意位置上定义的变量,它的作用域从变量定义的位置开始,到整个源 文件结束为止。若全局变量和某一函数中的局部
20、变量同名,则在该函数中,此全局变量被屏蔽,在该函数 内,起作用的将是局部变量,与同名的全局变量不发生任何关系。在程序中首先定义了变量s并赋值为0,接着在嵌套的复合语句中定义了变量a并赋初值为5,接着执行语句s+=a+a;在这条语句中a加1,但表达式a+还是原来的值,故s=s+5,s为5,程序执行到外层,此 时内定义的变量a不再有效,此时的变量a为之前定义的且初值为 3,接着执行后面的语句s+=a+; 相当于执行语句s=s+(+);即s=5+3,最后值为8,所以最后输出的s值为&所以4个选项中A正确。22. 有以下程序 main ( )char str ="xyz",
21、 *ps=str;while (*ps) ps+:for (ps- ;ps-str > =0 ;ps-) puts(ps);执行后输出结果是A) yzxyzB) z yzC) z yz xyzD) x xy xyz(分数: 1.00 )A.B.C. VD.解析: 解析 本题考核的知识点是字符型指针变量的使用执行 while 循环,使指针变量 Ps 指向字符串"xyz”的字符串结束标志,然后执行for循环,先执行"ps -",使ps指向字符"z”,故puts(ps)输出结果为“ z”;再次执行“ ps - ”,使ps指向字符“ y”,故puts(ps
22、)输出结果为“ y2” ;再次执行"ps-",使Ps指向字符xt,故puts(ps)输出结果为“ xyz”,退出循环.所以,C选项为所选。23. 以下所列的各函数首部中,正确的是 。A) void play(Var:Integer,var b:Integer)B) void play(int a,b)C) void play(int a,int b)D) Sub play(a as integer,b as integer)(分数: 1.00 )A.B.C. VD.解析:解析C语言中函数首部中的各参数必须分开单独定义,因此选项C才是正确的。而选项其他语言的函数定义方式。24
23、. 数据库设计的四个阶段是:需求分析,概念设计,逻辑设计和 。(A) 编码设计(B) 测试阶段(C) 运行阶段(D) 物理设计(分数: 2.00 )A.B.C.D. V解析:25. 数据库、数据库系统和数据库管理系统之间的关系是 ( )A) 数据库包括数据库系统和数据库管理系统B) 数据库系统包括数据库和数据库管理系统C) 数据库管理系统包括数据库和数据库系统D) 三者没有明显的包含关系分数: 1.00 )A.B. VC.D.解析: 解析 数据库系统包括数据库和数据库管理系统。26. 以下选项中与 if(a=1) a=b; else a+; 语句功能不同的 switch 语句是 A) swit
24、ch(a)case 1: a=b; break;default:a+ ;B) switch(a=1)case 0: a=b; break;case 1:a+;C) switch(a) default: a+; break;case 1:a=b;D) switch(a=1) case 1:a=b; break;case 0:a+;(分数: 1.00 )A.B. VC.D.case 1:解析:解析选项B中,switch语句中表达式“ a=1”为“真”时, 表达式取值1,程序流程转向 a+; ,与 if(a=1) a=b; else a+; 语句功能不同。27. 下述关于数据库系统的叙述中正确的是A
25、) 数据库系统减少了数据冗余B) 数据库系统避免了一切冗余C) 数据库系统中数据的一致性是指数据类型一致D) 数据库系统比文件系统能管理更多的数据(分数: 1.00 )A. VB.C.D.解析: 解析 数据库系统的数据具有高共享性和低冗余性,但不能完全避免数据冗余;数据的一致性是指 在系统中同一数据的不同出现应保持相同的值。28. 有以下程序:#include < stdio.h >main()FILE*fp ;char str10;fp=fopen("myfile , dat" , "") ; fputs("abc" ,
26、 ip) ;fclose(fp);fp=fopen("myfile.dat" , "a*") ; fprintf(fp , "%d", 28) ; rewind(fp) ; fscanf(fp , "%s" , str) ;puts(str) ; fclose(fp) ;程序运行后的输出结果是 ( ) 。A abc B 28cC. abc28 D .内类型不一致而出错(分数: 1.00 )A.B.C. VD.解析:解析本题考查文件的操作,首先打开文件,进行写操作,把“abc”写入“ myfile ”文件,再打开“
27、myfile.data ”文件,输入 28,在键盘上接收字符,输出并关闭文件。本题结果为abc28。29. 以下程序中函数 sort 的功能是对 a 数组中的数据进行由大到小的排序void sort(int a, int n)int i , j, t ;for(i=0 ; i < n-1 ; i+)for(j=i+1; < n ; j+)if(ai < aj)t=ai; ai=aj; aj=t ;main()int aa10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, i;sort(&aa3 , 5) ;for(i=0 ; i < 10; i+
28、)printf("%d , " , aai) ;printf("/n") ;程序运行后的输出结果是A) 1,2,3,4, 5, 6,7,8,9,10,B) 10, 9, 8,7,6,5,4,3,2,1,C) 1,2,3,8, 7, 6,5,4,9,10,D) 1 ,2, 10,9,8,7,6,5,4,3,(分数: 1.00 )A.B.C. VD.解析: 解析 C 语言中,实参变量和形参变量之间的数据传递是单向的“值传递”方式。指针变量作函数 参也要遵循这一规则,调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。30. 设有语句“ c
29、har a='72' ;”则变量 a( ) 。A) 包含一个字符 B) 包含二个字符C) 包含三个字符 D) 说明不合法(分数: 1.00 )A.B.C.D. V解析: 解析 字符变量的值为单个字符,并用单引号包含,而本题中的单引号中是两个字符,不是合法说 明。31. 下列说法不正确的是A) int *fun();fun是一个返回 int 指针的函数B) int (*fun)();-fun是一个返回 int 指针的函数C) int (*array5)();array是一个有 5 个元素的数组,每一个元素都是一个函数指针,指向一个返回 int 的函数D) int (*fun(in
30、t)(int);fun是带有一个 int 参数的函数,返回值是一个函数指针,这个指针指向带有一个 int 参数并返回 int 的函数B. VC.D.解析:解析该函数中fun是一个函数指针。指向一个返回int的函数。32. 有下列二叉树,对此二叉树前序遍历的结果为()。A) ACFHIBEDG B) ABCDEFGHI C) ABDEGCFHI D) ABCDEFHGI(分数:2.00 )A.B.C. VD.解析:解析对二叉树的前序遍历是指先访问根结点,然后访问左子树,最后访问右子树,并且,在访问 左、右子树时,先访问根结点,再依次访问其左、右子树。33. 如果需要打开一个已经存在的非空文件“
31、Demo进行修改,下面选项中正确的是()。A) fp=fopen("Demo", "r"); B) fp=fopen("Demo", "ab+");C) fp=fopen("Demo", "w+"); D) fp=fopen("Dem0", "r+")(分数:1.00 )A.B.C.D. V解析:解析此题考查文件打开方式对文件操作的影响。由于打开文件进行修改,可见选项A)是错误的,因为此种方式打开时,只能读,不能写,当然无法修改;选项
32、B)是以追加方式“ ab+”打开文件读写,以 这种方式打开时,新写入的数据只能追加在文件原有内容之后,但可以对以前的数据读出。 换言之,“ab+”或“a+”方式打文件后,对于写操作,文件指针只能定位在文件的原有内容之后,但对于读操作,文件指 针可以定位在全文件范围内,可见,按此种方式打开文件不能实现文件内容的修改;选项C)以“w+方式打开文件,此时,原文件中已存在的内容都被清除,但新写入文件的数据可以被再次读出或再次写入,故 也不能实现对文件的修改。只有以“叶”方式打开文件时,才允许将文件原来数据读出,也允许在某些位 置上再写入,从而实现对文件的修改。34. 若a是float型变量,b是uns
33、igned型变量,以下输入语句合法的是()A. scanf("%6 . 2f%d",&a,&b);B. scanf("%f%n",&a,&b);C. scanf("%f%30",&a,&b);D. scanf ("%f%d" ,&a,&b);(分数:1.00 )A.B.C. VD.解析:35. 有以下程序段:int k=0while(k=1)k+;while 循环执行的次数是 ( ) 。A) 无限次 B) 有语法错,不能执行C) 一次也不执行 D) 执
34、行 1 次(分数: 1.00 )A. VB.C.D.解析:解析程序中,k的初值为0。执行while后面小括号中的赋值表达式k=1,则k的值为1,即整个表达式的值为真。所以执行循环体,执行语句“ k+; ”。因为k进行自加,不再减小,没有值为0的可能, 即 while 后面小括号中的赋值表达式的值一直为真, 不能退出循环, 因此 while 循环将无限次地执行下去, 所以,选项A正确。36. 设 x、y、t 均为血型变量,则执行语句 x=y=3; t=+x | | +y;后, y 的值为 。A) 不定值 B) 4 C) 3 D) 1(分数: 1.00 )A.B.C. VD.解析: 解析 C 语言
35、中在做逻辑或运算时,自左向右判断各个参加或运算的表达式,一旦运算到某式的值为非零时,表明整个表达式一定为真,余下的语句则不再进行运算。本题中,+x的值为真,则+y并没有进行运算,所以 y 值不变。37. 数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和 ( ) 。A) 编码设计 B) 测试阶段 C) 运行阶段 D) 物理设计 (分数: 2.00 )A.B.C.D. V解析: 解析 数据库的生命周期可以分为两个阶段:一是数据库设计阶段;二是数据库实现阶段。数据库 的设计阶段又分为四个子阶段: 需求分析、 概念设计、逻辑设计和物理设计。 因此, 本题的正确答案是 D)。38. 下列叙述中正确
36、的是 ( ) 。A) break 语句只能用于 switch 语句B) 在 switch 语句中必须使用 defaultC) break 语句必须与 switch 语句中的 case 配对使用D) 在 switch 语句中,不一定使用 break 语句B.C.D. V解析:解析break为C语言关键字,又称间断语句。break语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在 switch 语句中,也可以出现在循环语句中。 default 是关键字,起标号的作用,代 表所有 case 标号之外的那些标号。 default 标号可以出现在语句体中任何标号位置上。在 switch 语句体
37、中也可以没有 default 标号。39. 程序段: int i=65536 ; prinff("%d/n",i) ;,则输出结果是 。A 65536 B0 C 有语法错误,无输出结果 D-1分数: 2.00 )A.B.C.D. V解析:40. 数据库、数据库系统和数据库管理系统之间的关系是A) 数据库包括数据库系统和数据库管理系统B) 数据库系统包括数据库和数据库管理系统C) 数据库管理系统包括数据库和数据库系统D) 3 者没有明显的包含关系(分数: 1.00 )A.B. VC.D.解析:解析数据库系统(Database System,简称DBS包括数据库(Databas
38、e,简称DB)和数据库管理系 统(Database Management System,简称 DBMS)41. 有以下程序:struct Sint n;int a20;;void f(struct S*P)int i,j,t;for(i=0;i< P- >n-1;i+)for(j=j+1;j < P- > n-1;j+)if(p- > ai > p- > aj)t=P- >ai;p->ai=P- > aj;p-> aj=tmain()int i; st ruct S s10,2,3,1,6,8,7,5,4,10,9;f( s)
39、;for(i=0;i < s.n;i+)printf("%d",s.ai);程序运行后的输出结果是 。A) 3 B) 4 C) 5 D) 6(分数: 2.00 )A. VB.C.D.解析: 解析 在主函数 main() 中定义了一个整型变量 i 和一个结构体变量 s。 f() 函数中,定义了一个结 构体指针类型的指针 p ,外层循环变量 i 表示数组的第 i 个元素,内层循环 j 表示数组的第 i+1 个元素, 调用 f() 函数,通过指针变量 p 来引用结构体成员,并把它们进行从小到大排序,最后输出。42. 以下程序的输出结果是 。main()int i ;for(
40、i=1 ; i v 6 ; i+)if(i%2)(printf("#"); continue ;printf("*") ;printf("/n") ;A) #*#*# B) # C) * D) *#*#*(分数: 1.00 )A. VB.C.D.解析:解析i从i到5循环5次,i为1时,满足条件,打印输出“ #”; i为2时,条件为假,打印输 出“ *”。也就是说,当 i 为奇数时,条件为真,程序打印输出“ #”,否则,输出:“ *”。43. 结构化程序设计主要强调的是 。A) 程序的规模 B) 程序的易读性 C) 程序的执行效率 D)
41、 程序的可移植性(分数: 1.00 )A.B. VC.D.解析: 解析 结构化程序设计主要强调的是结构化程序清晰易读, 可理解性好, 程序员能够进行逐步求精、 程序证明和测试,以保证程序的正确性。44. 执行下列程序段后,变量a, b, c 的值分别是 ( ) 。int x=5,y=4;int a,b,c;a=(-x=y+)?x:+y;b=+x;c=y;A) a=5, b=5, c=5 B) a=4, b=5, c=5C) a=5, b=6, c=5 D) a=1, b=5, c=6B. VC.D.解析: 解析 本题考查自加 (+) ,自减(-) 运算符的使用。“ +i, - i ”,在使用
42、i 之前,先使 i 的值加 1 或者减 1 ,再使用此时的表达式的值参与运算:“ i+,i - ”,先使用此时的 i 的值参与运算,在使用 i 之后,再使 i 的值加 1 或者减 1。对于第1个表达式-x=4 , y+=4.两者相等,-x=y+为真,所以a=x=4,执行完此语句后 y的值是5。 第2个表达式b=+x,x的值先加1,然后赋给b,即b=x+1=5;第一个表达式c=y=5。45. 若变量已正确定义,要求程序段完成求 5! 的计算,不能完成此操作的程序段是 ( ) 。A) for(i=1,p=1;i< =5;i+) p*=i; B) for(i=1;i< =5;i+) p=
43、1; p*=i;C) i=1;p=1; while(i < =5)p*=i; i+; D) i=1;p=1;dop*=i; i+; while(1< =5)(分数: 1.00 )A.B. VC.D.解析:解析选项B中for循环了 5次,而每次循环的时候,都将 p的值重新赋值为1后,再乘以当前数 字i,最后的结果为5,显然不是5!的值,同样的分析可知选项 A、选项C和选项D计算的都是5!。所以, 4个选项中选项B符合题意。46. 有以下程序:#include < stdio.h >int fun(int x, int n)static int sum=0, i;for(i
44、=0; i < n; i+) sum+=xi;return sum;main()int a=1, 2, 3, 4, 5, b=6, 7, 8, 9, s=0;s=fun(a, 5) +fun(b, 4); printf("%d/n", s);程序执行后的输出结果是 ( ) 。A) 45 B) 50 C) 60 D) 55(分数: 1.00 )A.B.C. VD.解析: 解析 本题主要考查的知识点是静态局部变量的运用。如果在定义一个局部变量时使用了static关键字,则这个局部变量就被定义成了一个静态局部变量。一般的局部变量随着函数被调用而诞生,在函 数返回时被销毁。而
45、静态局部变量在函数调用结束后不会被销毁,在下一次该函数被调用时,还会保留上 一次函数调用结束时的值。本题中fun()函数通过一个for循环来累计形参数组 x的前n个元素之和。在主函数中,第1次调用fun(a ,5)时,返回的值应该是数组a的前5个元素的和,而第2次调用fun(b ,4)时,返回的值除了本次累计的数组b前4个元素和之外,还有上次累计的数组a的前5个元素的和,所以累加结果为 60。47. 设有定义: char p='1', '2' , '3' , *q=p; ,以下不能计算出一个 char 型数据所占字节数的表达式是A) sizeof
46、(p) B) sizeof(char) C) sizeof(*q) D) sizeof(p0)(分数: 1.00 )A. VB.C.D.解析: 解析 本题考查的知识点是: sizeof() 运算符。sizeof()运算符的作用是计算一个变量所占的内存字节数。选项A传入的是数组名p,数组p由3个字符大小,所以占3个字节。故不能计算出一个 char型数据所占字符数。而选项 B、C、D传入的都是字符元素 或字符类型名char,这些都能计算出一个 char型数据所占字符数。故本题应该选择A48. 下列程序的输出结果是 ( ) 。#include < stdio.h >void main()
47、int b6=2,4,6,8,10,12;int *p=b,*q=&p;printf("%d",*(p+);printf("%d,",*q);A) 4,4 B) 2,2 C) 4,5 D) 2,4(分数: 2.00 )A.B.C.D. V解析:解析首先定义了一个指向一维数组b的指针p, 一个指向指针p的指针变量q,输出*(p+)是先输出*p即b0的值,再将指针p指向数组的下一个元素 b1,输出*q是输出指针p所指单元的内容,即 b1 的值。49. 下面不属于软件设计原则的是A) 抽象 B) 模块化 C) 白底向上 D) 信息隐蔽(分数: 2.00
48、 )A.B.C. VD.解析: 解析 软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理 和与软件设计有关的概念,它们具有抽象、模块化、信息隐蔽和数据独立性。自底向上是集成测试中增量 测试的一种。50. 若有如下程序:main()int x=3,y=4,z;z=(x+(y-=X*X);printf("%d,%d/n",y,z);则程序执行后的输出结果是 ( ) 。A) -4 ,2 B) -5 ,-2 C) -5 ,-1 D) 4 ,-2(分数: 1.00 )A.B. VC.D.解析:解析因为x的初始值为3,所以x*x=9,而y的初始值为4,所以
49、y-=9后,y为-5 , z=(x+(y-=x*x)=3+(-5)=-2。故程序执行后的输出结果是 -5 , -2,选项B正确。二、填空题 (总题数: 20,分数: 36.50)51. 数据库系统中实现各种数据管理功能的核心软件称为 1 。(分数: 1.00 )填空项 1: (正确答案:数据库管理系统)解析:52. 数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基 于逻辑结构的应用程序不必修改,称为 1 。(分数: 1.00 )填空项 1: (正确答案:物理独立性)解析: 解析 数据独立性分为逻辑独立性与物理独立性。物理独立性是指,由于数据的存储结构与
50、逻辑结 构之间由系统提供映像,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应 用程序不必修改。53. mystrlen 函数的功能是计算 str 所指字符串的长度,并作为函数值返回。请填空。int mystrlen(char *str)int i ;for(i=0 ; ! =70' i+);return(i) ;(分数: 2.00 )填空项 1: (正确答案: *(str+i) 或 stri )解析: 解析 str 是指针变量,它指向字符型数据,在循环过程中,可以用。(str+i) 来访问字符串中的第 i 个元素,判断是否为结束标志,如果不是, i =i+1 ,
51、继续取下一个元素进行判断,直到 *(str+i) 的值 为'/0' 为止,也可以用下标的方式引用字符,如 *(str +i) 相当于 stri 。54. 数据结构分为线性数据结构和非线性数据结构,带链的队列属于 1 。(分数: 2.00 )填空项 1: (正确答案:线性数据结构)解析:55. 以下程序运行后的输出结果是 。#include < stdio.h >main( )int x=1,y=0,a=0,b=0;switch ( x )case 1:switch(y)case 0:a +; break;case 1 :b +; break;case 2:a + ;
52、b +*; break;printf("%d %d/n",a,b);(分数: 2.00 )填空项 1: (正确答案: 2 1 )解析:解析本题考查switch语句。首先x=1,执行switch(y),因为y=0,所以执行case 0:a+ +; break ; 此时a=1执行case 2:a+ ; b+;这时a=2, b=1 ;最后输出结果是 2 1。56. 有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b,则不能把结点b连接到结点 a 之后的语句是 。struct nodechar data ;struct node *next ; a, b(分数: 2
53、.00 )填空项 1: (正确答案: a.next=ab )解析:解析选项A)中,指针变量q保存的就是变量b的地址,选项B)中的p是指针变量,应该是 P- > next=&b ;在选项D)中,用*运算符取出结构体变量,并且保存的就是b的地址。57. 在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数: 2.00 )填空项 1: (正确答案:类)解析: 解析 现实世界中的很多事物都具有相似的性质,把具有相似的属性和操作的对象归为类,也就是 说类是具有共同属性、共同方法的对象的集合,是对对象的抽象。58. 下列程序的输出结果是 。#include < stdi
54、o.h >void swap(int *a, int *B)int *t;t=a;a=b;b=t;main()int i=3,j=5,*p=&i,*q=&j;swap(p,q);printf("%d %d/n",*p,*q);(分数:1.50 )填空项 1: (正确答案: 3 5 )解析:解析本题考查函数中实参和形参的传递,在 C语言函数中实参和形参传递具有不可逆性,参数只 能由实参传向形参,而不能由形参传向实参,虽然 swap 函数的功能是实现两个数的交换,但没有返回值, 故最终的输出结果为 3 5 。59. 已知字符'A的ASQ代码值是65
55、,字符变量cl的值是'A' , c2的值是'D'。执行语句 printf(“d,%d,c1,c2 -2);后,输出结果是 1。(分数: 2.00 )填空项 1: (正确答案: 65, 66)解析: 解析 本题考查的知识点是:字符变量。字符变量其实就是整型变量。只不过它只占1 个字节,所以表示范围是-128127。它所储存的值为它所代表字符的 ASQ码值。“已知字符'A'的ASQ码值是65, 字符变量cl的值是'A' ”这句话告诉我们,c1中存储的值就是65; c2的值为'D',但在输出时减了 2,所 以输出的值为
56、'B' ,也就是 66。60. 以下程序运行后的输出结果是 。main()int m=011,n=11;printf("%d %d/n",+m,n+);(分数: 2.00 )填空项 1:_ (正确答案: 10 11 )解析:61. 以下程序的输出结果是 _。main()int i=010, j=10 ;printf("%d , %d/n" , i , j) ;(分数: 1.00 )填空项 1: (正确答案: 8, 10)解析: 解析 以 0 开头的是八进制数,输出时将其转换成十进制数。62. 下列程序的输出结果是 。void fun(int*n)while(*n)-);printf("%d" , +(*n) ;main()int a=50 ;fun(&a) ;(分数: 2.00 )填空项 1: (正确答案: 0)解析:63. 以下程序的功能是:输出 100以内(不含 100)能被 3整除且个位数为 6的所有整数,请填空。main() (int i,j; for(i=0;i < iO;i+)j=i*10+6 ;if()continueprintf(&quo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026河南牧业经济学院招聘工作人员100名笔试备考试题及答案解析
- 2026年济南市第八人民医院公开招聘卫生高级人才(控制总量)(6人)笔试模拟试题及答案解析
- 2026山东日照市老年大学春季兼职教师招聘考试备考题库及答案解析
- 2026瑞众人寿保险有限责任公司招聘考试参考题库及答案解析
- 2026广东中山市坦洲镇启乐第二幼儿园招聘1人笔试备考题库及答案解析
- 2026浙江省县级医院“浙医聘”集中招聘人员(补充批次2)42人笔试备考题库及答案解析
- 2026江西省交投数智科技有限公司招聘1名劳务派遣人员考试参考试题及答案解析
- 2026山东日照市职业技能鉴定中心就业见习人员招聘4人笔试参考题库及答案解析
- 2026广东佛山市南海区丽雅苑实验幼儿园(海悦园区)招聘储备人才笔试模拟试题及答案解析
- 2026瑞众人寿保险有限责任公司招聘考试备考题库及答案解析
- 四月护眼健康教育:科学守护明亮视界
- 国家广播电视总局部级社科研究项目申请书
- 2025-2030中国自行车行业市场深度调研及发展趋势与投资前景预测研究报告
- 2026年陕西延长石油集团有限责任公司校园招聘笔试备考题库及答案解析
- 工会2025年度工作报告国企2025工会工作报告
- 广东梅州市嘉城建设集团有限公司招聘笔试题库2026
- T∕SZSSIA 019-2026 反恐怖防范管理规范 总则
- 2026年及未来5年市场数据中国税务大数据行业市场全景分析及投资前景展望报告
- 水利工程汛期施工监理实施细则
- 2026年陕西能源职业技术学院单招职业适应性考试题库附参考答案详解(完整版)
- 24J113-1 内隔墙-轻质条板(一)
评论
0/150
提交评论