版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、二级 C 语言笔试 -477( 总分: 98.00 ,做题时间: 90 分钟 )一、 选择题 (总题数: 40,分数: 66.00)1. 按照“先进后出”原则组织数据的数据结构是 ( ) 。A) 队列 B) 栈C) 双向链表 D) 二叉树(分数: 1.00 )A.B. VC.D.解析: 解析栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另端是封闭的。 进行插入、删除的端称为栈顶,封闭的一端称为栈底。栈顶元素是最后被插入的元素,也是最后被删除 的,是按先进后出的原则组织数据的。2. 在深度为 5 的满二叉树中,叶子结点的个数为 ( ) 。A) 32 B) 31 C) 16 D)
2、 15(分数: 1.00 )A.B.C. VD.解析:解析 所谓满二叉树是指这样的一种二叉树: 除最后一层外, 每一层上的所有结点都有两个子结点。这就是说,在满二叉树中,每层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。由此可知,本题中叶子结点的个数为25-1=16。3. 下列叙述中正确的是 ( ) 。A) 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B) 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C) 线性表的链式存储结构所需要的存储空唰一般要少于顺序存储结构D) 上述三种说法都不对(分数: 2.00 )A
3、.B. VC.D.解析: 解析 线性表的存储分为顺序存储和链式存储。在顺序存储中, 所有元素所占的存储空间是连续的,各数据元素在存储空间中是按逻辑顺序依次存放的。所以每个元素只存储其值就可以了,而在链式存储的 方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部 分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间 要大一些。4. 下列数据结构中,属于非线性的是 ( ) 。A) 线性表 B) 队列 C) 树 D) 栈(分数: 2.00 )A.B.C. VD.解析: 解析 线性结构,是指数据元素只有一个直接前件元素和
4、直接后件元素。线性表是线性结构。栈和 队列是指对插入和删除操作有特殊要求的线性表,树是非线性结构。5. 下列工具中为需求分析常用工具的是 ( ) 。A) PAD B) PFD C) N-S D) DFD(分数: 1.00 )A.B.C.D. V解析:解析需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD('可题分析 图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。6. 结构化程序设计主要强调的是 ( ) 。A) 程序的规模 B) 程序的效率C) 程序设计语言的先进性 D) 程序的易读性(分数: 1.00 )A.B.C
5、.D. V解析: 解析 程序不光是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此 程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。7. 下列关于线性链表的描述中正确的是 ( ) 。A) 存储空间不一定连续,且各元素的存储顺序是任意的B) 存储空间不一定连续,且前件元素一定存储在后件元素的前面C) 存储空间必须连续,且各前件元素一定存储在后件元素的前面D) 存储空间必须连续,且各元素的存储顺序是任意的(分数: 2.00 )A. VB.C.D.解析: 解析 线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也 可能是不连
6、续的。8. 关于结构化程序设计原则和方法的描述错误的是 ( ) 。A) 选用的结构只准许有一个入口和一个出口B) 复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C) 不允许使用GOTO语句D) 语言中所没有的控制结构,应该采用前后一致的方法来模拟(分数: 2.00 )A.B.C. VD.解析:解析限制使用GOTO语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用 GOTO语句其他三项为结构化程序设计的原则。9. 某二叉树中有 n 个度为 2 的结点,则该二叉树中的叶子结点数为A) n+1 B) n-1C) 2n D) n/2(分数: 2.00 )A. VB.C.D.解析:解析对于任
7、何一棵二叉树 T,如果其终端结点(叶子结点)数为n1,度为2的结点数为n2,则n仁n2+1 所以该二叉树的叶子结点数等于n+1。10. 软件开发的结构化生命周期方法将软件生命周期划分成 ( ) 。A) 定义、开发、运行维护 B) 设计阶段、编程阶段、测试阶段C) 总体设计、详细设计、编程调试 D) 需求分析、功能定义、系统设计(分数: 1.00 )A. VB.C.D.解析: 解析 通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期,它可 以分为软件定义、软件开发及软件运行维护三个阶段。11. 数据库设计中反映用户对数据要求的模式是 ( ) 。A) 内模式 B) 概念模式
8、C) 外模式 D) 设计模式(分数: 2.00 )A.B.C. VD.解析: 解析 概念模式,是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构, 是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图 )。它是由数据库管理系统提供的数据模式描述语言(Data Description Language , DDL)来描述、定义的,体现、反映了数据库系统的整体观。外模式对应于用户级,它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,也称为子模式或用户模式,它是用户的数据视图,也就是用户 所见
9、到的数据模式,它反映了用户对数据的要求。包含模式中允许特定用户使用的那部分数据,用户可以 通过外模式描述语言来描述、定义对应于用户的数据记录 (外模式 ) ,也可以利用数据操纵语言 (Data Manipulation Language , DML对这些数据记录进行描述。内模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述, 它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式由 内模式描述语言来描述、定义,它是数据库的存储观。12. 下列选项中正确的语句组是 ( ) 。A) char s8; s="Beij
10、ing" B) char *s; s="Beijing"C) char s8; s="Beijing" D) char *s; s="Beijing"(分数: 1.00 )A.B.C.D. Vchar解析:解析本题考查字符串的定义和赋初值。选项 A)、C)错误,字符数组的赋值可以逐个字符赋给数 组中各元素,也可以定义字符数组时整个字符串赋初值。 选项B)、D)是给字符指针赋值,正确的格式是 *s;s="Beijing" ;选项 B)不对。13. 以下不能定义为用户标识符是 。(A) Main(B) _0(
11、C) _int(D) sizeof(分数: 1.00 )A.B.C.D. V解析:14. 下列程序的输出结果是 ( )#include < stdio.h >main()int a=4 ; printf("%d/n",(a+=a-=a*a)A) -8 B) 14 C) 0 D) -24(分数: 2.00 )A.B.C.D. V解析:解析表达式a+=a-=a*a看起来复杂,其实将它分成两个表达式来计算就简单了:第一个表达式 (a-=a*a)=(a=a-a*a=-12):第二个表达式(a+=a-=a*a)=(a=a+a=-24)。15. 下列程序的输出结果是 ( )
12、 。mainint x=8,y=8;printf("%d%d/n",x-,-y);A) 8 8 B) 7 7 C) 7 8 D) 8 7(分数: 2.00 )A.B.C.D. V解析:解析本题考查自减(-)运算符的使用。“X - ”是先引用x的值然后将x的值减1,所以输出的x 值为8;“ - y”是先将y的值减1然后再引用y的值,所以输出的y值为7。16. 下列不是合法的 C 语言语句是 ( ) 。A) a = 5 B) int i;i+; C); D);(分数: 1.00 )A. VB.C.D.解析:解析选项A)是一个表达式,它后面没有分号结尾(C语言中规定语句必须以分号
13、结束),所以它不是语句;选项B)用一个花括号把几条语句括起来了,这是一个复合语句;选项C)中只有一个分号,是一个空语句;选项D)是个复合语句,也是一个空语句。17. 若有表达(W)?(-x):(+y),则其中与 W等价的表达式是 。A) w=1 B) w=0 C) w!=1 D) w!=0(分数: 1.00 )A.B.C.D. V解析: 评析 条件表达式的一般形式为:表达式 1?表达式 2:表达式 3,其执行顺序:先求解表达式 1,若 非0( 真)则求解表达式 2,此时表达式 2 的值就作为整个条件表达式的值,若表达式 1 的值为 0(假),则求 解表达式3,此时表达式3的值就作为整个条件表达
14、式的值。 本题中相当于先判断 w的值是否为非0,所以 与 w 等价的表达式是 w!=0 。18. 下列能正确定义且赋初值的语句是 ( ) 。A) int n1=n2=10; B) char c=32;C) float f=f+1.1; ;(分数: 2.00 )A.B. VC.D.解析:解析C语言规定,可以在定义变量的同时给变量赋初值,称为变量初始化。在选项A)中在给n1和n2进行赋初值,但变量 02没有定义;在选项 C)中定义变量f时,不能在赋值表达式的右边出现变量f自身,所以选项C)错误:在选项D)用指数表达式的常量中,字母E后面的数应该为整数,而不应该为小数形式。因此,选项B)正确。19.
15、 当变量 c 的值不为 2、4、6 时,值也为“真”的表达式是 ( ) 。A. (c=2)|(c=4)|(c=6) B . (c > =2&&g =6)|(c!=3)|(c!=5)C. (c > =2&&c< =6)&&!(c%2) D . (c > =2&&g =6)&&(c%2!=1)(分数: 1.00 )A.B. VC.D.解析:解析B选项中C的值不为2、4、6时,表达式的值也为真。20. 以下程序中函数 reverse 的功能是对 a 所指数组中的内容进行逆置。 void rever
16、se(int a, int n)int i, t;for(i=0; i v n/2; i+)t=ai; ai=an-1-1; an-1-i=t;main()int b10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10;int i, s=0;reverse(b, 8);for(i=6; i v 10; i+)s+=bi; printf("% d/n", s);程序运行后的输出结果是 。A) 22 B) 10 C) 34 D) 30(分数: 1.00 )A. VB.C.D.解析:解析主函数调用reverse时。实参为b和8,即reverse函数的功能是将数组 b中
17、的前8个元素 逆置,其余元素不变。因此函数调用结束后数组b的内容为:& 7,6、5、4、3、2、1、9、10。main函数中 for 循环语句的功能是求 b6 元素到 b9 元素的和,即 s=b6+b7+b8+b9=2+1+9+10=22 ,因此 printf 语句的输出结果是 22。21. 以下程序运行后的输出结果是#include < stdio.h >main()int i, j, m=1;for(i=1; i <3; i+)for(j=3; j> 0;j-)if(i*j> 3) break;m*=i*j;printf("m=%d/n&qu
18、ot;,m);A) m=6 B) m=2 C) m=4 D) m=5(分数: 1.00 )A. VB.C.D.解析:解析程序中,当循环变量i=2 , j=3时,i Xj > 3成立,结束j循环。只有当i为1, j分别为1 , 2, 3 时,才参与了 m*=i*j 计算。因此,m=XlxiX2x 1X3=6。22. 定义如下变量和数组:int i , x33=1, 2, 3, 4, 5, 6, 7, 8, 9;则下面语句的输出结果是 ( ) 。for(i=0 ;i < 3;i+)printf("%d" , xi2-i);A) 159 B) 147 C) 357 D
19、) 369(分数: 2.00 )A.B.C. VD.解析: 解析 本题主要考查二维数组的使用。 题中利用 for 循环来输出 x 数组中的指定元素: 当 j=0 时,输出 x02=3;当 i=1 时,输出 x115;当 i=2 时。输出 x20=7。23. 设有程序段:int k=12;while(k=1)k=k-1;则下列描述中正确的是 ( ) 。A) while 循环执行 10 次 B) 循环是无限循环C) 循环体语句一次也不执行 D) 循环体语句执行一次分数: 2.00 )A.B.C. VD.解析:解析本题考查while循环。while循环的控制表达式 k=1是个赋值表达式而不是逻辑表达
20、式,所 以循环体一次也不执行。24. 下列语句组中,正确的是A) char *s; s="Olympic" B) char s7; s="Olympic"C) char *s; s="Olympic" D) char s7; s="Olympic"(分数: 2.00 )A. VB.C.D.解析:解析数组名代表数组的首地址,是一个地址常量,不能对其赋值,所以选项B、D错误。只有在初始化时才可以用花括号,所以选项C错误。25. 表达式'8'-'2' 的值是( ) 。A) 整数 6 B)
21、字符 6 C) 表达式不合法 D) 字符 8(分数: 2.00 )A. VB.C.D.解析: 解析 在 C 语言中,虽然字符都是变为其对应的 ASCII 码值来参与算术运算的,但字符间的相对 位置关系还是不变的,字符 8和字符 2的 ASCII 码值相差仍是 6。26. 若各选项中所用变量已正确定义, fun() 函数中通过 return 语句返回一个函数值, 下列选项中错误的程 序是 ( ) 。A) main()x =fun(2,10);float fun(int a,int b)B) float fun(int a,int b)main()x =fun(i,j); C) float fun
22、(int,int);main()x =fun(2,10);float fun(int a,int b)D) main()float fun(int I,int j);x =fun(i,j); float fun(int a,int B)(分数: 2.00 )A. VB.C.D.解析: 解析 C 语言规定,函数必须先定义,后调用 (函数的返回值类型为 int 或 char 时除外) 。在选项A)中,调用的子函数在调用后面定义,所以不正确。在选项B)、C)中,被调用函数在主调函数之前定义,再在主函数中调用,所以是正确的:在选项D)中,在主调函数中先对于函数float fun(int i,int j
23、)进行了定义,然后进行调用。27. 以下数组定义中错误的是A) int x 3=0; B) int x23=1,2,3,4,5,6;C) int x 3=1,2,3,4,5,6; D) int x23=1,2,3,4,5,6;(分数: 2.00 )A.B. VC.D.解析:解析二维数组的初始化有以下几种形式:分行进行初始化;不分行进行初始化;部分数组 元素进行初始化;省略第一维的定义,不省略第二维的定义。选项B)等号右边分了 3行,大于等号左边数组的行数 2。28. 若语句“ t=fun(fun(x,y,a),(a+b,a+c),x+y+z);"对 fun函数的调用正确,则fun函数
24、的形参个数为()A) 3 B) 4 C) 5 D) 6(分数: 2.00 )A. VB.C.D.解析: 解析 本题考查函数调用时的参数个数。在函数调用时,实参必须和形参的个数、类型一一对应。 但函数的计算结果只有一个值,因而 fun 函数的参数个数为 3。29. 有如下程序段: int *p,a=10,b=1;p=&a; a= *p+b;执行该程序段后,a的值为()。A) 12 B) 11 C) 10 D) 编译出错(分数: 1.00 )A.B. VC.D.解析: 解析 p=&a 表达式的含义是将变量 a 的地址赋给指针变量 p;a=*p+b 表达式的含义是指针变量 p 所 指
25、内存的值 10 与 b 的和赋给 a。30. 有以下程序:#include < stdio.h >#define N 20fun(int a ,int n,int m)int i,j;for(i=m;i > :n;i-) ai+1 =ai;main( )int i,aN. = 11,2.3,4,5,6,7,8,9,10;fun( a,2,9)for(i =0;i v 5;i + ) printf("% d" ,ai);程序运行后的输出结果是 ( ) 。A) 10234 B) 12344 C) 12334 D) 12234(分数: 1.00 )A.B.C.
26、VD.解析:解析本题函数fun的作用是将指定的数组元素(下标从n m)向后移一位。调用函数 fun(a , 2, 9)将a2到a9的各元素依次向后移一位,最后 a数组中各元素的值分别为 1, 2,3,3,4,5, 6,7, 8, 9, 10,程序输出数组的前 5 个元素: 12334。31. 有以下程序#includev stdio.h >#includev string.h >main()char a10= ”abcd";printf("%d , %d/n" , strlen(a) , sizeof(a) ;程序运行后的输出结果是A) 7 , 4 B
27、) 4 , 10C) 8 , 8 D) 10 , 10(分数: 2.00 )A.B. VC.D.解析: 解析 strlen() 用来返回字符串的长度,而 si- zeof() 返回的是一个对象或者类型所占的内存字 节数,即数组所占的内存。32. 以下程序的输出结果是 。structHARint x,y;structHAR*p;main()h0.x=1;h0.y=2;h1.x=3;h1.y=4;h0.p=&h1.p=h;printf("%d%d/n",(h0.p->y) ;A) 12 B) 23 C) 14 D) 32分数: 2.00 )A.B.C.D. V解析
28、:评析本题中是一个含有两个结点的循环链表。C语言中结构体的定义为:srtyct结构体类型名成员项表;33. 若有说明:int*p1 ,*p2,n=8,m下列均是正确赋值语句的选项是()。A) p1=&n;p2=&p1 ; B) p1=n ;C) p1=&n;*p2=p1 ; D) p1=&n;p2=p1 ;(分数: 2.00 )A.B.C.D. V解析: 解析 本题考查指针变量的赋值。选项A)中,pl、p2本身都是地址变量,不能再将pl取地址赋给p2;选项B)中,不能将整型数据直接赋值给指针型数据;选项 C)中,*p2代表了一个整型变量,而*p2=p1这个语句试
29、图把一个地址值放入一个整型 变量中是错误的:选项D)中指针间的赋值是正确的。34. 有以下程序:void ss(char *s,char t)while(*s)if(*s=t)*s=t-'a'+'A's+;main()char str1100="abcddfefdbd",c='d'ss(str1,c);printf("%s/n",str1);程序运行后的输出结果是 ( ) 。A) ABCDDEFEDBD B) abcDDfefDbDC) abcAAfefAbA D) Abcddfefdbd(分数: 2.00
30、 )A.B. VC.D.解析:解析函数ss(char *s,char t)的功能是将指针s所指向的字符串中存在的字符"t ”均改写成大写字母;所以main函数中引用函数ss后使得数组strl中的小写字母“ d”均变成了大写字母“ D”,然后输出数组 str1 ,结果为: abcDDfefDbD。35. 有以下程序:#include < string.h >main(int argc , char *argv)int i=1, n=0;while(i < argc)n=n+strlen(argvi) ; i+)printf("%d/n" , n)
31、;该程序生成的可执行文件名为: proc.exe ,若在运行时输入命令行:proc 123 45 67 则该程序的输出结果是 。A) 3 B) 5C) 7 D) 11(分数: 2.00 )A.B.B. VD.解析:解析main()函数中参数argc包含命令行选项的个数,argv包括argc个C风格字符串。字符串 长度函数 strlen(s) 计算以 s 为起始地址的字符串的长度。36. 以下语句或语句组中,能正确进行字符串赋值的是 。A) char*sp ; *sp="right!" ;B) char s10;s="right!";C) char s10
32、;*s="right!";D) char*sp="right!" ;(分数: 2.00 )A.B.C.D. V解析:解析本题的考点是C语言的数组和指针。C的数组名是一个特殊类型的指针,固定指向数组第一 个元素的位置,运行过程中不能再改变其指向。因此选项B、C都是错误的。指针可以指向任何单元,但选项 A 是错误的, 因为赋值语句“ *sp="right!" ”是错误的, 正确写法是“ sp="right!" ”。 而对于选项 D, 由于“ char * sp="right!"”是定义指针同时赋初值
33、,因此是正确的。37. 若有下列说明,则 ( ) 不是对 strcpy 库函数的正确的调用。 strcpy 库函数用于复制一个字符串: char*str1="abcd",str210,*str3="hijklmn",*str42,*str5="aaaa"A) strcpy(str2,str1) B) strcpy(str3,str1)C) strcpy(str4,str1) D) strcpy(str5,str1)(分数: 2.00 )A.B.C. VD.解析:解析strcpy(s1,s2)函数的功能是将字符串s2复制到字符串si中(
34、注意:要保证si存储区能容纳下 s2 字符串 ) 。38. 有以下程序#includemain()FILE *fp; int ai0=i,2,3,i,n;fp=fopen("dl.dat","w");for(i=0;i v 3;i+) fprintf(fp,"%d",ai);fprintf(fp,"/n");fclose(fp);fp=fopen("dl.dat","r");fscanf(fp,"%d", n); fclose(fp);printf(&qu
35、ot;%d/n",n);程序的运行结果是 。(A) 12300(B) 123(C) 1(D) 321(分数: 2.00 )A.B. VC.D.解析:39. 下列描述中不正确的是 ( ) 。A) 字符型数组中可以存放字符串B) 可以对字符型数组进行整体输入、输出C) 可以对整型数组进行整体输入、输出D) 不能在赋值语句中通过赋值运算符“ =”对字符型数组进行整体赋值(分数: 2.00 )A.B.C. VD.解析:解析本题考查对数组的理解。C语言规定只能逐个引用数组元素,而不能一次引用整个数组。对 于字符数组,可以将整个字符串一次输入或输出。所以,选项C)不正确。40. 若有以下结构体,
36、则正确的定义或引用的是 ( ) 。struct Testint x ;int y ;vl ;A) Test.x=10 ; B) Test v2;v2.x=10 ;C) struet v2;v2.x=10 ; D) struct Test v2=10;(分数: 2.00 )A.B.C.D. V解析:解析 此题考查结构体的定义和引用。选项 A) 的错误是通过结构体名引用结构体成员;选项 B) 的 错误是将结构体名作为类型名使用;选项 C) 的错误是将关键字 struct 作为类型名使用;选项 D) 是定义 变量 v2 并对其初始化的语句,初始值只有前一部分,这是允许的。二、填空题 (总题数: 15
37、,分数: 32.00)41. 软件定义时期主要包括 1 和需求分析两个阶段。(分数: 2.00 )填空项 1: (正确答案:可行性研究)解析: 解析 软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用及维护等,还可以将软件生命周期分为三个阶段:软件定义阶段:可行性研究和需求分析;软件开发阶段:设计、 实现和测试;软件运行维护阶段:交付使用和维护。42. 在树形结构中,没有前件的结点是 。(分数: 2.00 )填空项 1: (正确答案:根结点)解析: 解析 树型结构具有如下特点:每个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称为树的根;每一个结点可
38、以有多个后件,它们都称为该结点的子结点。没有后件的结点称为叶子结点;一个结点所拥有的后件个数称为树的结点度;树的最大层次称为树的深度。43. 在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数: 2.00 )填空项 1: (正确答案:类)解析: 解析 在面向对象方法中,把具有相同属性和方法的对象称为类,类是对象的抽象,对象是类的实 例。44. 测试用例包括输入值集和 1 值集。(分数: 2.00 )填空项 1: (正确答案:输出)解析: 解析 测试用例是为测试设计的数据,测试用例由测试输入数据和与之对应的预期输出结果两部分 组成。测试用例的格式为: ( 输入值集 ), (输出
39、值集 ) 。45. 按“先进后出”原则组织数据的数据结构是 1 。(分数: 2.00 )填空项 1: (正确答案:栈或 Stack )解析: 解析 栈和队列是两种特殊的线性表,其特殊性在于对它们的操作只能在表的端点进行。栈中的数 据按照后进先出的原则进行组织,而队列中的数据是按照先进先出的原则进行组织。因此,本题的正确答 案是栈 (Stack) 。46. 下列程序的输出结果是 。main()int i ;for(i=1;i+1 ; i+)if(i> 4)printf("%d/n", i);break ;printf("%d/n", i+);(分数:
40、2.00 )填空项1: (正确答案:135)解析:解析本题考查了 for循环语句的使用,break语句用在本题中是结束 for循环直接跳岀循环体外。当i=1时,因为if语句条件不满足,所以直接执行printf("%d/n" , i+);输出1,同时i自加1;执行第二次for循环时,i=3 ;同样的if语句条件不满足,所以直接执行printf("%d/n" ,i+);输出3,同时i自加1;执行第三次for循环时,i=5,if语句条件满足,所以执行printf("%d/n" ,i),输出5,然后break语句跳出了 for循环。47. 下
41、列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。int n=0 ,c;c=getchar();while(c!='/n')if()n+;(分数:2.00 )填空项1: (正确答案:c > ='a'&&c < ='z')解析:解析小写字母在内存中以 ASCII的形式存入,且从a到z依次递增,所以可以直接用c> ='a'&&c < ='z'判断是不是小写字母;c!='/n'判断是用换行符结束循环。48. 在计算机中,字符的
42、比较是对它们的1进行比较。(分数:2.00 )填空项1: (正确答案:ASCII码)解析:解析在C语言中,对字符也可以进行比较运算,并且是按照其 ASCII码值进行的。49. 以下程序的功能是:求岀数组x中各相邻两个元素的和依次存放到a数组中,然后输岀。请填空。main()int x10,a9,i;for(i=0;i < 10;i+) scanf("%d", & xi);for( 11 ;i < 10;i+)ai-1=xi+ 12 jfor(i=0;i < 9;i+) printf("%d",ai);printf("&
43、quot;);(分数:4.00 )填空项1: (正确答案:i=1xi-1)解析:解析 对于 10个数,相邻的两个数相加取和, 总共要进行 9次加法运算, 所以空 11处应填入 i=1 相邻的两个数相加取和,放在数组a中,x0与x1的和存放在a0中,所以空12处应填入xi-1。50. 若有定义 double a5;,则 a 数组元素下标的上限为 1 。(分数: 2.00 )填空项 1: (正确答案: 4)解析: 解析一维数组元素的定义形式为:数组名 N ,则该数组中元素的下限是 0,上限是 N-1。51. 若有下列定义: int a=1,2,3,4,5,6,7,8,9,10,*p=a;,则值为
44、3 的表达式为: 1 。(分数: 2.00 )填空项 1: (正确答案: p+=2, *(p+) )解析:解析由题可知a2=3,因此只要使指针 p指向a3,然后再引用指针的值就可以了52. 以下程序运行后的输出结果是 。struct NODEint hum ;struct NODE *next ;main()structNODE s3=1, '/0', 2, '/0', 3, '/0', *p , *q , *r ;int sum=0 ;s0 next=s+1 ; s1.next=s+2;s2.next=s ;p=S; q=p- > next ; r=q- > next ;sum+=q=> next- > num; sum+=r- > next- > next- > num;printf("%d/n" , sum);(分数: 2.00 )填空项 1: (正确答案: 5)解析:解析程序通过语句“ s0next = s+1 ; s1.next=s+2; s2.next = s;”将结构体变量 s中各结点连接成了一个循环链表,即最后一个结点的指针域指向了头结点,整个链表形成了一个环,并通过语句“p= s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年专利许可续签申请
- 2024年制衣厂工种:劳动合同定制版
- 2024年个人间借款合同(合法性审查)
- 二年级上册数学教案-9 总复习(9)-人教版
- 二年级上册数学教案-第2课时 观察物体(2)(人教版)
- 2024年二手挖掘机租赁合同协议书
- 2024-2025学年人教版八年级物理下册第12章第1节杠杆教案
- 大班安全活动教案:我会用剪刀
- 2024年N95口罩专供合同
- 中班上学期语言教案:小蛋壳
- 植物检疫学知到章节答案智慧树2023年华南农业大学
- 国际海上人命安全公约
- 北师大版初一数学计算能力大赛
- 凝血基础知识专家讲座
- 万物之理-爱因斯坦之梦智慧树知到答案章节测试2023年中国海洋大学
- 高速铁路列车餐饮服务PPT完整全套教学课件
- 岭南药食文化
- 输变电工程建设的标准强制性条文实施管理规程
- 工程竣工验收报告甲方
- 灌溉用双轴取向硬聚氯乙烯(PVC-O)管材和连接件基本参数及技术要求
- 物联网技术在军事上的应用:物联网与现代战争课件
评论
0/150
提交评论