二级C语言笔试-25_第1页
二级C语言笔试-25_第2页
二级C语言笔试-25_第3页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、二级 C 语言笔试 -25( 总分: 110.00 ,做题时间: 90 分钟 )一、选择题 (总题数: 40,分数: 80.00)1. 一颗二叉树中共有 70 个叶子节点与 80个度为 1 的节点,则二叉树的总节点数为 。(分数: 2.00 )A. 219 VB. 221C. 229D. 231解析:解析树的结点数等于所有结点的度与对应的结点个数乘积之和加1。对任何一棵二叉树 T,如果其叶子结点数为n。,度为2的结点数为n2,则讥=応+1,即叶子结点数总是比度为 2的结点数多1。由于叶 子结点个数为70,则度为2的结点数为70-仁69,所以总结点个数为 69X2+80X1十仁219。2. 按照

2、C语言规定的用户标识符命名规则,不能出现在标识符中的是 。(分数: 2.00 )A. 大写字母B. 连接符 VC. 数字字符D. 下划线解析: 解析 C 语言规定的标识符只能由字母、数字和下划线 3种字符组成 , 且第一个字母必须为下划线 或字母。3. 有以下程序:#include < stdio.h >main()int a=1,2,3,4,y,*p=a3 ;-p;y=*p;printf("y=%d/n",y);程序的运行结果是 。(分数: 2.00 )A. y=0B. y=1C. y=2D. y=3 V解析:解析本题主要考查一维数组及数组元素的地址。程序中定

3、义数组a后知,a0=1 ,a1=2 , a2=3,a3=4 ;在定义指针p时给其赋值为a3的地址。执行-p ;语句后,p指向数组元素a2;然后执行y=*p ; 语句, y 的值为指针 p 所指向的变量的值为 3。4. 有以下程序段:typedef struct node(int data;struct node*next;)*NODE;NODE P;以下叙述中正确的是 。(分数: 2.00 )A. P 是指向 struct node 结构变量的指针的指针B. NODE p;语句出错C. P是指向struct node结构变量的指针VD. P 是 struct node 结构变量解析:解析本题中

4、定义了一个指针类型的“用户类型名”NODE通过“用户类型名”可以定义该类型的结构体变量。5. 若变量已正确定义,有以下程序段:i=0 ;do prinntf("%d,i");while(i+);printf("%d/n",i) ;其输出结果是 。(分数: 2.00 )A. 0,0B. 0,1VC. 1,1D. 程序进入无限循环解析:解析本题考查的重点是do-while用法。do-while循环先执行循环体中的语句,然后再判断while 中的条件是否为真,如果为真 ( 非零 ) 则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次循

5、环语句。6. 有以下程序:struct Sint n;int a20;;void f(struct S*P)int i,j,t;for(i=O;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 ; struct S s1O,2,3,1,6,8,7,5,4,1O,9;f( s) ;for(i=O;i < s.n;i+)printf("%d",s.ai

6、);程序运行后的输出结果是 。(分数: 2.OO )A. 3 VB. 4C. 5D. 6解析: 解析 在主函数 main() 中定义了一个整型变量 i 和一个结构体变量 s。 f() 函数中,定义了一个结 构体指针类型的指针 p,外层循环变量i表示数组的第i个元素,内层循环j表示数组的第i+1个元素, 调用 f() 函数,通过指针变量 p 来引用结构体成员,并把它们进行从小到大排序,最后输出。7. 有以下程序:float f1(float n)return n*n;float f2(float n)return 2*n;main()float(*p1)(float),(*p2)(float),

7、(*t)(float),y1,y2 ;p1=f1;p2=f2 ;y1=p2(p1(2.0) ;t=p1;p1=p2;p2=t ;y2=p2(p1(2.0) ;printf("%3.0f,%3.0f/n",y1,y2) ;程序运行后的输出结果是 。(分数: 2.00 )A. 8,16VB. 8,8C. 16,16D. 4,8解析: 解析 题目中 (*p1)(float) 定义了一个指向函数的指针变量 pl ,此函数的返回值是 float 类型。 在 main 函数中,使得 pl 指向了函数 f1 ,p2 指向了函数 f2 。语句“ y1=p2(p1(2.0) ”先调用了 p1

8、 函数, 将其返回值4.000000传递给了 f2的形参n,并使其函数返回值8.000000赋值给y1。然后在main函数中交换了 p1、p2指针变量的指向,使pl指向了函数f2 ,p2指向了函数fl,并先调函数f2,得到返回值4.000000, 使其传递给fl函数的形参n,并将带回的返回值 16.000000赋值给y2。8. 以下选项中不属于字符常量的是 。(分数: 2.00 )A. 'C'B. "C"VC. '/xCC'D. '/072'解析:解析C语言中字符常量是用单引号括起来的单个字符,因此,选项B是错误,用双引号括起

9、来的字符属于字符串。选项C、选项D分别表示十六进制、八进制格式ASCI代码值对应的字符常量。9. 有以下程序:main()int a=1,b=3,c=5;int*p1= a,*p2= b,*p= c;*p=*p1*(*p2);printf("%d/n",c) ;执行后的输出结果是 。(分数: 2.00 )A. 1B. 2C. 3 VD. 4解析:解析*卩仁1 , *p2=3 , *p=3,指针p指向变量c,故正确选项为 Co10. 下列叙述中错误的是 。(分数: 2.00 )A. 计算机不能直接执行用 C语言编写的源程序B. C程序经C编译后,生成后缀为.obj的文件是一个

10、二进制文件C. 后缀为 .obj 的文件,经连接程序生成后缀为 .exe 的文件是一个二进制文件D. 后缀为.obj和.exe的二进制文件都可以直接运行V解析:解析C语言是一种“高级语言”。由高级语言编写的程序称为“源程序”。C语言源程序经过编译后生成一个后缀为 .obj 的二进制文件 (称为目标文件 ),最后还要由“连接程序” (Link) 软件把此 .obj 文 件与C语言提供的各种库函数连接起来,生成一个后缀为.obj的可执行文件。在 DOS犬态下,只需打人此文件的名字(不必打入后缀.obj)就可以运行。后缀为.obj的文件不可以直接执行。11. 有以下程序:fun(int x)int

11、p ;if(x=0|x=1)return(3)p=x-fun(x-2);return p ;main()printf("%d/n",fun(7);执行后的输出结果是 (分数: 2.00 )A. 7B. 3C. 2 VD. 0解析:解析函数fun是一个递归调用函数,首先主函数将实参7传递给fun函数中的形参x,由于x=7不满足 if 语句的条件,则执行下面的“ p=x -fun(x-2) ;”语句,此语句继续调用本身,直到当 x=1 时,返 回函数值3代入到调用它的表达式中,以此类推,最终p的值为2o12. 有以下程序:main()char ch="uvwxyz&q

12、uot; , *pc ;pc=ch;printf("%c/n",*(pc+5);程序运行后的输出结果是 o(分数: 2.00 )A. zVB. 0C. 元素 ch5 地址D. 字符 y 的地址解析:解析字符指针pc指向字符串数组ch的首地址,*(pc+5)就是pc5的值。13. 设有如下关系表:R S TA B C A B C A B C1 1 2 3 1 3 1 1 22 2 3 2 2 33 1 3 则下列操作中正确的是 。(分数: 2.00 )A. T=RQSB. T=RUSVC. T=RXSD. T=R/S解析:解析并(U):关系R和S具有相同的关系模式,R和S的并

13、是由属于R或属于S的元组构成的集 合。14. 有以下程序:main()int i ;for(i=1,i < =40;i+)if(i+%5=0)if(+i%8=0)printf("%d",i);printf ("/n");执行后的输出结果是 。(分数: 2.00 )A. 5B. 24C. 32 VD. 40解析:解析i=30时,条件表达式“ i+%5=0为真,i+后i=31 ,+i后i=32 ,即条件表达式“ +i%8=C” 为真。15. 有以下程序段:int n,t=1,S=0;scanf("%d", n) ;dos=s+t;t

14、=t-2;while(t!=n) ; 为使此程序段不陷入死循环,从键盘输入的数据应该是 。(分数: 2.00 )A. 任意正奇数B. 任意负偶数C. 任意正偶数D. 任意负奇数 V解析: 解析 为了使程序不陷入死循环, 则 while 的条件不能一直为真。 t 的初值为 1,循环体中语句 t=t-2 使t变为负奇数-1、-3、-5,而while的循环条件是t不等于n,若从键盘输入的数据为 A B、C三项 时,则t永远不等于n,即循环条件一直为真,程序陷入死循环。只有输入负奇数时,t会在某个时候等于n,使得while条件不成立,终止循环。16. 有以下程序:main()int a44=1,4,3

15、,2,8,6,5,7,3,7,2,5,4,8,6,1,),i,j,k,t;for(i=0;iv 4;i+)for(j=0;jv 3;j+)for(k=j+1;k v 4;k+)if(aji > aki)t=aji;aji=aki;aki=t;/*按列排序 */for(i=0;i<4;i+)printf("%d,",aii);程序运行后的输岀结果是 。(分数:2.00 )A. 1,6,5,7,VB. 8,7,3,1,C. 4,7,5,2,D. 1,6,2,1,解析:解析本题首先定义了一个4行4列的二维数组,并用了三层 for循环来进行由小到大的排序。外 层循环变量

16、i表示数组的列.第二层循环变量j表示数组的行,第三层循环用于求第i列第j行的最小值, 其中通过if语句对相关数值进行比较和交换。最后通过for循环对排序后数组对角线上的元素输岀。17. 以下关于字符串的叙述中正确的是 。(分数:2.00 )A. C语言中有字符类型的常量和变量B. 两个字符串中的字符个数相同时才能进行字符串大小的比较C. 可以用关系运算符对字符串的大小进行比较D. 空串一定比空格打头的字符串小V解析:解析本题考查的重点是 C语言中对字符串的理解。选项B是错误的,两个字符串不一定非要字符一样多才可以比较大小;选项C是错误的,不能用关系运算符来对字符串进行大小比较。因为空串只有一个

17、null字符(其值为零),从而,它一定比空格打头的字符串小,所以选项D是正确的。18. 现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中连续的三个节点。struct nodechar data ;struct no de* next;*p,*q,*r;现要将q和r所指节点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是(分数:2.00 )A.B.C.D. V解析:解析D中的操作将会丢失r后面的链表结构,不能保持链表的连续。19. 下列对于线性链表的描述中正确的是 。(分数:2.00 )A. 存储空间不一定是连续,且各元素的存储顺序是任意的VB. 存储空间不

18、一定是连续,且前件元素一定存储在后件元素的前面C. 存储空间必须连续,且各前件元素一定存储在后件元素的前面D. 存储空间必须连续,且各元素的存储顺序是任意的解析: 解析 线性表的链式存储结构称为线性链表,是一种物理存储单元上非连续、非顺序的存储结构, 数据元素的逻辑顺序是通过链表中的指针链接来实现的。20. 在软件设计中,不属于过程设计工具的是 。(分数: 2.00 )A. PDL(过程设计语言)B. PAD 图C. N-S 图D. DFD 图 V解析:解析常用的过程设计(即详细设计)工具有以下几种:图形工具:程序流程图、N-S(方盒图)、PAD(问题分析图)和HIPO(层次图+输入/处理/输

19、出图):表格工具:判定表;语言工具:PDL(伪码)。21. 在面向对象方法中,实现信息隐蔽是依靠 。(分数: 2.00 )A. 对象的继承B. 对象的多态C. 对象的封装 VD. 对象的分类解析: 解析 信息隐蔽是通过对象的封装性来实现的。22. 在一个C源程序文件中所定义的全局变量,其作用域为 (分数: 2.00 )A. 所在文件的全部范围B. 所在程序的全部范围C. 所在函数的全部范围D. 由具体定义位置和 extern 说明来决定范围 V解析: 解析 本题考查的重点是全局变量的作用域。 全局变量由具体定义位置和 extern 说明来决定范围, 因此选项D是正确的。23. 数据库系统的核心

20、是 。(分数: 2.00 )A. 数据模型B. 数据库管理系统 VC. 数据库D. 数据库管理员解析:解析数据库管理系统(DBMS): 种系统软件,负责数据库中的数据组织、数据操纵、数据维护、 控制及保护和数据服务等,是数据库的核心。24. 以下选项中值为 1 的表达式是 。分数: 2.00 )A. 1-'0'B. 1-70'VC. '1'-0D. '/0'-'0'解析:解析0 '的ASQ值为0。25. 有以下程序: main() int x,y,z ; x=y=1;z=x+,y+,+y ; printf(&quo

21、t;%d,%d,%d,%d/n",x,y,z) ; 程序运行后的输出结果是 。(分数: 2.00 )A. 2,3,3B. 2,3,2C. 2,3,1VD. 2,2,1解析:解析z=x+是先把x的值1赋给z,所以z=1,然后再把x加1赋给x, x=2, +y后y又加1,所 以 y=3 。26. 以下叙述中正确的是 。(分数: 2.00 )A. break 语句只能用于 switch 语句体中B. continue 语句的作用是使程序的执行流程跳出包含它的所有循环C. break 语句只能用在循环体内和 switch 语句体内 VD. 在循环体内使用 break 语句和 continue

22、 语句的作用相同解析: 解析 只能在循环体内和 switch 语句体内使用 break 语句。当 break 出现在循环体中的 switch 语 句体内时,其作用只是跳出该 switch 语句体。当 break 出现在循环体中,但并不在 switch 语句体内时, 则在执行 break 后,跳出本层循环。27. 有以下程序: main()unsigned char a=2,b=4,c=5,d;d=a|b;d =c;printf( “%d/n",d) ; 程序运行后的输出结果是 。(分数: 2.00 )A. 3B. 4 VC. 5D. 6解析: 解析 本题中主要进行位逻辑计算。 将 a

23、 的值转换为二进制 000000010,b 转换为二进制 00000100, 将a和b进行按位或运算,因此 d的二进制数为00000110, c的二进制为00000101 ;接下来把d和c进行 按位与运算,并转化为十进制输出。28. 下列关于栈的描述中错误的是 。(分数: 2.00 )A. 栈是先进后出的线性表B. 栈只能顺序存储VC. 栈具有记忆作用D. 对栈的插入和删除操作中,不需要改变栈底指针解析: 解析 栈是限定在一端进行插入与删除运算的线性表。在栈中,允许插入与删除的一端称为栈顶, 不允许插入与删除的另一端称为栈底, 对栈的插入和删除操作中 , 不需要改变栈底指针。 栈是按照“先进后

24、 出”或“后进先出”的原则组织数据的。栈具有记忆作用。栈的存储方式和线性表类似,也有两种,即顺 序栈和链式栈。29. 对长度为 n 的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2 的排序方法是 。(分数: 2.00 )A. 快速排序B. 冒泡排序C. 直接插入排序D. 堆排序 V解析: 解析 冒泡排序是一种最简单的交换类排序它通过相邻元素的交换逐步将线性表变成有序。对于长度为 n 的线性表,在最坏的情况下,所有的元素正好为逆序,冒泡排序需要经过n/2 遍的从前往后的扫描和n/2遍的从后往前的扫描,需要比较的次数为(n-1)+(n- 2)+2+1=n(n -1)/2。快速排序也是一种

25、互换类的排序方法,但比冒泡法的速度快,快速排序法的关键是对线性表的分割,以及对其分割出的子表再进 行分割。直接插入排序是将无序列表中的各元素一次插入到已经有序的线性表中,这种排序方法的效率与冒泡排序法相同,最坏的情况下,所有元素正好为逆序,需要比较的次数为1+2+-+(n -1)+(n-2)=n(n-1)/2。堆排序属于选择类排序方法, 它首先将一个无序序列建成堆, 然后将堆顶元素与堆中最后一个元素交换 然 后将左右子树调整为堆,继续交换元素,直至子序列为空。在最坏的情况下,堆排序需要比较的次数为()(nlog 2n) 。30. 以下错误的定义语句是 。(分数: 2.00 )A. int x3

26、=0,1,1,2,3;B. int x43=1,2,3,1,2,3),1,2,3,1,2,3;C. int x4=1,2,3,1,2,3,1,2,3,1,2,3; VD. int x3=1,2,3,4;解析: 解析 若在定义二维数组的同时对数组进行初始化,可以不指定一维长度但二维长度不能省略, 因此选项C是错误的。如果数据不足,系统将自动给后面的元素自动补初值0。31. 若变量已正确定义,有以下程序段:int a=3,b=5,c=7;if(a > b) a=b;c=a ;if(c!=(分数: 2.00 )A. c=b ;pri解析:解析本题考查if条件语句。a=3,b=5,因此a >

27、; b条件不成立,c=a=3。此时c!=a条件不成立, 不执行c=b;语句,c的值仍然为5。结果a=3, b=5,c=3。32. 有以下程序: main() int m,n,P ; scanf("m=%dn=%dp=%d",m,n, p) ; printf("%d%d%d/n",m,n,p) ;若想从键盘上输入数据,使变量m中的值为123, n中的值为456, p中的值为789,则王确的输入是 。(分数: 2.00 )A. m=123n=456p=789 VB. m=123 n=456 p=789C. m=123, n=456, P=789D. 123

28、456 789解析:解析本题的考点是关于C语言的输入语句scanf的通配符。C语言规定:scanf中的双引号中的 输入格式(就是俗称的通配符)决定了输入的格式。要输入 123给m,456给n,789给p,由scanf的输入格 式:“ 口=%4*=%4卩=%决定了输入必须的格式是:m=123n=456p=78933. 数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和 (分数: 2.00 )A. 编码设计B. 测试阶段C. 运行阶段D. 物理设计 V解析: 解析 数据库设计阶段包括:需求分析、概念分析、逻辑设计、物理设计。34. 设变量均已正确定义,若要通过 scanf("%d%c

29、%d%c",& a1, & c1, & a2, & c2);语句为变量al和a2赋数值10和20,为变量c1和c2赋字符X和Y以下所示的输入形式正确的是 (注:代表空格字符)o(分数: 2.00 )人.10口炬20口 YB. 10QX2U YC. 10口 XD. 10X20口 Y 20Y V解析: 解析 当从键盘输入字符,并且在格式说明中未制定宽度时,输入字符 (包括空格符、回车符、 Tab符)将按顺序赋予各输入项。也就是说,输入字符之间没有间隔符,所以选项D是正确的。35. 有以下程序:point(char *p)P+=3; )main()char

30、b4='a','b','c','d',*p=b;point(p) ; printf("%c/n",*p) ;程序运行后的输出结果是 o分数: 2.00 )A.a VB. bC. cD. d解析:解析本题的考点是C语言的函数参数的传递方式(传值)。函数poret的形参是一个char型指针 P,当调用point(p)时,将指针p的值传递给形参,函数point中的p+=3,并不影响主程序 main中的p值, 因此函数调用结束后,p仍指向b的首地址,输岀*p的值应是字符a。36. 软件调试的目的是 。(分数:2.00

31、)A. 发现错误B. 改正错误VC. 改善软件的性能D. 验证软件的正确性解析:解析软件测试的目的:尽可能地多发现程序中的错误,不能也不可能证明程序没有错误软件测 试是一个发现错误而执行程序的过程。软件调试的目的是发现错误的位置,并改正错误。I37. 若有代数式 (其中e仅代表自然对数的底数,不是变量 ),则以下能够正确表示该代数式的C语言表达式是。(分数:2.00 )A.B.C. VD.解析:解析exp()函数的功能是返回以自然数 e为底、函数参数x为幂的指数值ex; pow(n,x)函数是计 算nx;fabs()函数功能是返回函数参数的绝对值;sqrt()用于返回函数参数的平方根。 选项A

32、中的不是有效的C语言表达式;选项 B中powr(x,e)的功能是求xe值,显然也不正确;选项 D中的pow(n,x)存在和 选项B相同的问题。38. 有以下程序:fun(char p10)int n=0,i;for(i=0;i v 7;i+)if(Pi0=T)n+;return n ;main()char str10="Mon","Tue","wed","Thu","Fri","Sat","Sun";printf("%d/n",fun(

33、str);程序执行后的输岀结果是 。(分数:2.00 )A. 1B. 2VC. 3D. 0T的个数。二维数组的地址作为解析:解析fun()函数实现的功能为查找二维字符数组第一列中为字符 函数的实参。39. 有以下程序:#includevoid WriteStr(char *fn , char*str)FILE*fp ;fp=fopen(fn, "w") ; fputs(str,fp);fclose(fp);main()WriteStr("t1.dat","start");WriteStr("t1.dat",&quo

34、t;end");程序运行后,文件t1.dat中的内容是。(分数:2.00 )A. startB. endVC. startendD. endrt解析:解析本题的考点是C语言的文件操作。函数 WriteStr的作用是:用“文本写”方式打开指定的 文件fn,写入字符串str并关闭。而主函数main中调用了两次 WriteStr ,分别向文件t1.dat中写入字符 串“ start ”和“ end”,由于打开文件的方式是写方式,第二次打开冲掉第一次写的内容。文件t1.dat中最后的内容是第二次写入的字符串“ end”。因此正确选项是Bo40. 以下叙述中错误的是o(分数:2.00 )A.

35、在程序中凡是以“ #”开始的语句行都是预处理命令行B. 预处理命令行的最后不能以分号表示结束C. #define MAX 是合法的宏定义命令行D. C程序对预处理命令行的处理是在程序执行的过程中进行的V#include 、 #define 、 #if解析:解析在C语言中,凡是以“ #”开头的行都称为编译预处理命令行,如等,每行的末尾不得用“;”结束,以区别于C语句、定义和说明语句。选项C中的宏定义为不带参数的C源程序进行编译前执行宏命令行,宏名之后可以有替换文本,也可以没有。编译预处理是在编译程序对的当然也在程序执行之前执行,因此选项D是错误的、填空题(总题数:13,分数:30.00)41.

36、在深度为7的满二叉树中,度为2的节点个数为1(分数:2.00 )填空项1: (正确答案:63)解析:解析满二叉树的第k层上有2k-1个结点,度为k的满二叉树一共有2k-1个结点,由二叉树的性质可知:除去第k层上的结点,其他所有结点都是度为 2的结点,所以度为2的结点数为2k-1-2 k-1,即27-1-2 7-1 =6342. 对下列二叉树进行中序遍历的结果为 o(分数:2.00 )填空项 1: (正确答案: ACBDFEHG)P解析:解析二叉树的中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树43. 测试用例包括输入值集和 1 值集。(分数: 2.00 )填空项 1: (正

37、确答案:输出)解析: 解析 测试用例是为测试设计的数据,测试用例由测试输入数据和与之对应的预期输出结果两部分 组成。测试用例的格式为: ( 输入值集 ), (输出值集 ) 。44. 软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于 1 阶段(分数: 2.00 )填空项 1: (正确答案:开发)解析: 解析 软件生命周期可以分为软件定义、软件开发和软件运行维护 3 个阶段,其中软件开发包括软 件设计 ( 概要设计和详细设计 ) 、软件实施、软件测试等。45. 在关系数据库中,用来表示实体之间联系的是 1 。(分数: 2.00 )填空项 1: (正确答案:关系)解析

38、: 解析 关系数据库系统采用关系模型作为数据的组织方式,在关系模型中用二维表来表示实体及实 体之间的联系。46. 设有定义: float x=123.4567;, 则执行以下语句后的输出结果是 。printf("%f/n",(int)(x*100+0.5)/100.0) ;(分数: 2.00 )填空项 1: (正确答案: 460000)解析:解析“printf(格式控制,输出项表)”中,“f默认以 6位小数输出,“(int)(x*100+0.5)将表达式“ (x*100+0.5) ”的值强制转换为整型。47. 以下程序运行后的输出结果是 。main()int x,a=1,b

39、=2,c=3,d=4;x=(a < b)?a:b;x=(a< c)?x:C;x=(d> x)?x:d ;printf("%d/n" , x) ;(分数: 2.00 )填空项 1: (正确答案: 1)解析: 解析 条件运算表达式:“表达式1 ?表达式 2:表达式 3”,但表达式 1 的值为非 0 时,此时表达式 2的值就是整个条件表达式的值,反之为表示式 3 的值。解析易知结果为 1。48. 已知字母A的ASQ码为65。以下程序运行后的输出结果是 。main() char a , b;a='A'+'5'-'3'

40、b=a+'6'-'2' printf("%d%c/n",a,b)(分数:2.00 )填空项1: (正确答案:67 G)解析:解析根据题意,a= A + '5'- '3' =65+2=67 b=67+4=71, 71即为字母G的ASQ码值。程序要求按十进制形式输岀a,按字符形式输岀b,所以结果为67 G。49. 以下程序运行后的输岀结果是 。void swap(int X , int y)int t ;t=x;x=y;y=t;printf("%d%d",x,y);main()int a=3 ,

41、 b=4;swap(a,b);printf("%d%d/n",a,b) ;(分数:2.00 )填空项1: (正确答案:4 3 3 4 )解析:解析C函数的参数传递是传值的,因此 swap(a , b)调用将a和b的值3和4传递给swap的形参 x和y, x和y通过t交换值,printf 输出x和y结果是:4 3。 swap函数调用结束,a和b的值并没有交 换,printf 输出a和b结果是:3 4。因此输出结果是:4 3 3 4。以下程序的功能是输岀如下形式的方阵:13 14 15 16910 11 125 6 7 81 2 3 4请填空。main()int i,j,x ;

42、for(j=4;j (10); j-)for(i=1;i < =4;i+)x=(j-1)*4+ (11);printf("M",x) ;printf("/n") ;(分数:4.00 )填空项1: (正确答案:=1或0)解析:填空项1: (正确答案:i )解析:解析本程序有两个for循环,外层for循环控制输出数据的行数,故第一空填“=1”或“0”, 内层循环控制每行输岀的个数。在内层for循环中,用语句“ x=(j -1)*4+控制输岀方阵中具体数据,由于这些数据与其所在的行、列有关系,故此空填i。下列程序中的函数strcpy2()实现字符串两次复制,即将 t所指字符串复制两次到 s所指内存空间中,合 并形成一个新字符串。例如t所指字符串为efgh,调用strcpy2后,s所指字符串为efghefgh。请填空。#include < stdio.h > #include < string.h > void strcpy2(char*s,char*t) char

温馨提示

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

评论

0/150

提交评论