2021-2022年四川省广元市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第1页
2021-2022年四川省广元市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第2页
2021-2022年四川省广元市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第3页
2021-2022年四川省广元市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第4页
2021-2022年四川省广元市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年四川省广元市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.设有宏定义“#defineIsDIV(k,n)((k%n==1)?1:0)”,且变量m已正确定义并赋值,则宏调用“IsDIV(m,5)&&IsDIV(m,7)”为真时所要表达的是()。

A.判断m是否能被5和7整除

B.判断m被5和7整除是否都余1

C.判断m被5或者7整除是否余1

D.判断m是否能被5或者7整除

2.一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为()。

A.2B.4C.6D.8

3.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。

A.访问第i个结点(1<=i<=n)和求第i个结点的直接前驱(2<=i<=n)

B.在第i个结点之后插入一个新结点(1<=i<=n)

C.删除第i个结点(1<=i<=n)

D.将n个结点从小到大排序

4.下列程序的输出的结果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07

5.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为()。

A.0B.‘\0’C.非零值D.NULL

6.和顺序栈相比,链栈有一个比较明显的优势是()。

A.通常不会出现栈满的情况B.通常不会出现栈空的情况C.插入操作更容易实现D.删除操作更容易实现

7.

8.采用深度优先搜索或拓扑排序算法可以判断出一个有向图中是否有环(回路)()

A.对B.错

9.有以下程序:

#include<stdio.h>

main()

{ints=0.n;

for(n=0;n<3;n++)

{switch(s)

{case0;

case1:s+=1;

case2:s+=2;break;

case3:S+=3;

default:s+=4;

}

printf("%d,"s);

}

}

程序运行后的输出结果是()。

A.1,2,4,

B.1,3,6,

C.3,10,14,

D.3,6,10,

10.在C语言中,函数返回值的类型最终取决于()。

A.函数定义时在函数首部所说明的函数类型

B.return语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型

D.函数定义时形参的类型

11.不带头结点的单链表head为空的判定条件是()。

A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL

12.下面不正确的字符赋值或赋初值的方式为()。

A.chars[10]=”hello!”

B.chars[10]={‘h’,‘e’,‘l’,‘l’,‘o’,‘!’}

C.chars[10];s=”hello”

D.char[]=”hello!”

13.下列程序段的时间复杂度为()。A.O(i*j)B.O(i+j+k)C.O(n3)D.O(n2)

14.有下列程序:程序执行后的输出结果是()。A.efg,h,z,q,bcd

B.efg,d,zyz,wbbcd

C.efgabcdsnopqhijkIxyz,h,z,q,bcd

D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd

15.能在O(1)时间内访问线性表的第i个元素的结构是()

A.顺序表B.单链表C.单向循环链表D.双向链表

16.设以下变量均为int类型,则值不等于7的表达式是()。

A.(x=y=6,x+y,x+1)

B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y)

D.(y=6,y+l,x=y,x+1)

17.以下说法正确的是()。

A.C语言只接受十进制的数

B.C语言只接受八进制、十进制、十六进制的数

C.C语言接受除二进制之外任何进制的数

D.C语言接受任何进制的数

18.以下叙述中正确的是()。

A.宏替换不占用程序的运行时间

B.预处理命令行必须位于源文件的开头

C.在源文件的一行上可以有多条预处理命令

D.宏名必须用大写字母表示

19.下列程序的输出结果是()。main(){inta=4,b=5,c;if(a<B){c=a*b;printf("%d,%d,%d\n",b,a,C);}else{c=b/a;printf("%d,%d,%d\n",b,a,C);}}

A.4,5,12B.20C.5,4,20D.12

20.若输入“abcdef”、“abdef”,以下程序的输出结果为()。#include<stdio.h>#lnclude<string.h>main(){intn;chars1[20],s2[20],p1,*p2;scanf("%s",s1);scanf("%s",s2);P1=s1;p2=s2;n=strcmp(p1,p2);printf("%d\n",n);}

A.-1B.0C.abcdefD.abdef

二、2.填空题(20题)21.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。

22.以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:

abcl23edf456gh,执行程序后输出:123456。请填空。

#include<stdio.h>

#include<ctype,h>

main()

{chars[80],d[80];inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(【】){d[j]=s[i];j++;}

d[j]='\0';

puts(d);

}

23.若x、y和z均是int型变量,则执行下面表达式后的x值为【】。

x=(y=4)+(z=3)

24.C语言中用______表示逻辑值为“真”,用数字“0”表示逻辑值为“假”。

25.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。

26.下述函数统计一个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】='')flag=0;

elseif(【】){flag=1;num++}

}

return【】}

27.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序运行时,如果从键盘输入:A,B,<CR>,则输出结果为______。

28.要求使下列程序输出5个整数,请填空。

for(i=0;i<=______;printf("%d\n",i+=2));

29.以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。

intfun(intn)

{intm=0,f=1,i;

for(i=1;i<=n;i++)

{m+=i*f;

f=【】;

}

returnm;

}

main()

{printf("m=%d\n",【】)};

30.瀑布模型将软件生存周期划分为【】、开发和运行3个阶段。

31.软件测试分为白箱(盒)测试和黑箱(盒)测试。等价类划分法属于【】测试。

32.已知字符'A'的ASCII码值为65,以下语句的输出结果是【】。

charch='B';

printf("%c%d\n",ch,ch);

33.在关系模型中,二维表的行称为______。

34.以下程序的输出结果是【】。

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

35.下面程序的输出是【】。

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)

arr[i]=i;

for(i=1;i<4;i++)

k+=arr[i]+i;

printf("%d\n"k);}

36.若有以下程序:

intf(intx,inty)

{return(y-x)*x;}

main()

{inta=3,b=4,c=5,d;

d=f(3,4),f(3,5));

printf("%d\n",d);

}

执行后输出结果是【】。

37.下列程序的输出结果是______。

longfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

printf("%1d\n",x);}

38.无论对于顺序存储,还是链接存储的栈和队列来说,进行插入或删除运算的时间复杂性均相同,则为【】。

39.以下程序的运行结果是______。

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p-&d;

d=a;

if{strcmp(a.nalne,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%ld%s\n",d.sno,p>name};

}

40.以下程序段的功能是统计链表中结点的个数,其中first为指向第一个结点的指针(链表带头结点)。请在下划线内填入正确内容。

structlink

{chardata;

structlink*next;};

structlink*p,*first;

intc=0;

p=first;

while(【】)

{c++;

p=【】;}

三、1.选择题(20题)41.若有说明:inta[][3]={0,0};则不正确的叙述是()。

A.数组a的每个元素的初值都是0

B.数组a的第一维大小为1

C.数组a的行数为1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

42.以下不属于对象的基本特点的是()

A.分类性B.多态性C.继承性D.封装性

43.用树形结构来表示实体之间联系的模型称为()。

A.关系模型B.层次模型C.网状模型D.数据模型

44.若有说明语句:charch='\x41';,则ch中______。

A.包含4个字符B.包含2个字符C.包含1个字符D.字符个数不确定,说明不正确

45.有以下程序:#include<stdio.h>structSTU{charname[10];intnum;};voidf1(structSTUc){structSTUb={"LiSiGuo",2042};c=b;}voidf2(structSTU*c){structSTUb={"SanDan",2044};*c=b;}main(){structSTUa={"YangSan",2041},b={"WangYin",2043};f1(a);f2(&b);printf("%d%d\n",a.num,b.hum);}执行后的输出结果是()。

A.20412044B.20412043C.20422044D.20422043

46.下列说法中不正确的是()

A.调制解调器(Modem)是局域网络设备

B.集线器(Hub)是局域网络设备

C.网卡(NIC)是局域网络设备

D.中继器(Repeater)是局域网络设备

47.下列程序的输出结果是()。

#include<stdio.h>

voidmain()

{intb[6]-<2,4,6,8,10,12};

int*p=b,**q=&p;

printf("%d",*(p++));

printf("%d,",**q);

}

A.4,4B.2,2C.4,5D.2,4

48.下列程序的输出结果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printh("OK";}}

A.0B.3C.OKD.没有任何输出

49.算法具有五个特性,以下选项中不属于算法特性的是_____。A.有穷性B.简洁性C.可行性D.确定性

50.有以下程序main(){charst[20]="hello\0\t'\\";printf("%d%d\n",strlen(st),sizeof(st));}程序运行后的输出结果是()

A.99B.520C.1320D.2020

51.以下程序运行后,输出结果是

#definePT5.5

#defineS(x)PT*x*x

#include<stdio.h>

main()

{inta=1,b=2;

printf("%4.1f\n",S(a+b));}

A.49.5B.9.5C.22D.45

52.若二维数组a有m列,且设a[0][0]位于数组的第一个位置上,则计算任一元素a[i][j]在数组中的位置的式子为()

A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1

53.有以下程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="****a*b****",t[80];fun(s,t);puts(t);}程序的运行结果是()。

A.*****a*bB.a*bC.a*b****D.ab

54.若有如下程序:sub(intn){intt;if(n==1)returnt=5;elset=sub(n-1)+3;returnt;}main(){printf("%d\n",sub(5));}则程序运行后的输出结果是()

A.17B.18C.19D.20

55.下面程序的输出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default:v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}

A.v1=4,v2=2,v3=1,v4=1

B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1

D.v1=8,v2=8,v3=8,v4=8

56.设有下列语句inta=1,b=2,c;c=ab(b<<2);执行后,C的值为()。

A.6B.7C.8D.9

57.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。

A.-3B.9C.-12D.6

58.以下程序的输出结果是______。main(){inta=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}

A.-11B.01C.10D.00

59.函数ftell(fp)的作用是()。

A.得到fp所指向文件的当前读写位置B.初始化流式文件的位置指针C.移动流式文件的位置指针D.以上答案均正确

60.模块本身的内聚是模块独立性的重要性度量因素之—。在7类内聚中,具有最强内聚的—项是______。

A.顺序性内聚B.过程性内聚C.逻辑性内聚D.功能性内聚

四、选择题(20题)61.

62.

63.C语言用_______表示逻辑“真”值。

A.trueB.t或yC.非零整型值D.整型值0

64.下列判断正确的是()。

A.chara="ABCD":等价于char*a;*a="ABCD":

B.charstr[10]={"ABCD"}:等价于charstr[10];str[]={"ABCD"};

C.char*s="ABCD":等价于chars;*s="ABCD";

D.charc[5]="ABCD",d[5]="ABCD":等价于charc[5]-d[5]="ABCD";

65.

66.下列用于printf函数的控制字符常量中,代表“竖向跳格”的转义字符常量是()。

A.\bB.\tC.\vD.\f

67.以下符合c语言语法的实型常量是()。

A.8E一2B.3)14)159EC.E14D.2)2E0)5

68.有以下程序:

程序运行后的输出结果是()。

A.500B.401C.503D.1404

69.

70.

71.链表不具有的特点是A.A.不必事先估计存储空间

B.可随机访问任一元素

C.插入和删除不需要移动元素

D.所需空间与线性表长度成正比

72.设有如下三个关系表

下列操作中正确的是()。

A.T=RnSB.T=RUSC.T=R×SD.T=R/S

73.

74.(67)数据处理的最小单位是()

A.数据

B.数据元素

C.数据项

D.数据结构

75.设有如下程序段

76.C语言提供的合法的数据类型关键字是()。

A.DoubleB.shortC.integerD.Char

77.下列数据结构中,能用二分法进行查找的是()。

A.顺序存储的有序线性表B.结性链表C.二叉链表D.有序线性链表

78.23.若有下面的程序段

chars[]="china";char*p;p=s;

则下列叙述正确的是

A.s和p完全相同B.数组s中的内容和指针变量p中的内容相等

C.s数组长度和p所指向的字符串长度相等D.*p与s[0]相等

79.有以下程序程序运行后的输出结果是()。A.2B.0C.3D.5

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:给定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个数。

例如,n=8时,输入90.009,179.623,167.575,100.051,6.092,154.986,12.432,45.765,所得平均值为94.566635,在平均值以上的实数个数应为4。

请修改程序中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

六、程序设计题(1题)82.请编写一个函数intproc(int*s,intt,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。例如,输入如下整数:876675896101999401980431451777则输出结果为4,999。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.B逻辑与运算两边运算对象的值都为真时,结果才为真。所以需要m能被5和7整除都余1。故本题答案为B选项。

2.C

3.A

4.C根据赋值运算的类型转换规则,先将double型的常量l.2转换为int型,因为x的类型是int,则X的值为1;执行语句y=(K+3.8)/5.0时,即先将整型变量X的值1转换为double型1.0,然后3.8相加得4.8,进行除法运算4.8/5.0结果为0.即变量y的值为0,d*Y的值也为0,故选C选项。

5.Cfeof函数的用法是从输入流读取数据,如果到达文件末尾(遇到文件结束符)函数值为非零值,否则其值为0。故本题答案为C选项。

6.A

7.A

8.A

9.C\n本题考查switch…ease语句,在本题的程序中,只有在case2:s=s+2;break;,才有break语句,所以当s=0时会执行s=s+1;s=s+2;,所以s=3,当s=3时,会执行s=s十3;s=s+4;,所以s=10,依此类推,答案选择C。

\n

10.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。

11.A

12.C

13.C

14.A程序定义一个二维字符数组v,使用5个字符串对其初始化。对于表达式“*v”等价于“*(v+0)”,输出的是数组v的第1个元素efg;“**(v+3)”等价于“*(*(v+3)+0)”,输出的是数组v的第4个元素的第1个字符h;“v[4]”表示数组v的第5个元素,“v[4]+2”表示输出从下标2开始的所有字符,即z;“v[2]”表示数组v的第3个元素,“*(v[2]+4)”表示数组v的第3个元素的下标为4的字符q;“v[1]+1”表示数组v的第2个元素从下标1开始的子字符串,即bcd。所以程序输出:efg,h,z,q,bcd。本题答案为A选项。

15.A

16.C

17.BC语言可以使用格式控制符“%d”“%u”等接受十进制的数,使用“%o”接受八进制的数,使用“%x”接受十六进制的数。本题答案为B选项。

18.A宏替换是在编译阶段前的预处理阶段,对程序中的宏完成文本替换,因此宏替换不占用运行时间,选项A正确;预处理命令行无须在源文件的开头,它可以出现在程序的任何一行的开始部位,其作用一直持续到源文件的末尾,选项B错误;在源文件的一行上至多只能有一条预处理命令,选项C错误;宏名通常使用大写字母表示,这并不是语法规定,只是一种习惯,选项D错误。本题答案为A选项。

19.C解析:本题考查ifelse语句。第一个if语句,先判断条件,发现a<b成立,执行下列的复合语句,得c=a*b=20,b、a的值不变。

20.A

21.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。

22.s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]解析:字符数组的初始化,字符串的输入和输出的应用。C语言没有字符串变量,字符串不是存放在一个变量中而是存放在一个字符型数组中,因此为了存放字符串,常常在程序中定义字符型数组;字符串存放在字符数组中,但字符数组与字符串可以不等长,C语言规定以“\\0”字符作为字符串结束标志。

本题中,chars[80],d[80];定义了两个字符型数组,可以放入80个字符。gets函数是c语言提供的一个专门用于读字符串的函数,它读入全部字符(包括空格),直到遇到回车为止。本题中,读入字符串s后,开始比较s中的每个字符是否为数字字符,因为字符数据在内存中以相应的ASCII码存放,所以只需比较相应的ASCII码值是否在48('0'的ASCII代码)与57('9'的ASCII代码)之间,或者直接与'0','9'进行比较,如果是数字字符则将此字符存入d数组中,不是则继续进行下一字符的比较,直至s结束(即'0'的出现)。将“'\\0'”字符作为字符串d结束标志,最后调用puts函数输出d。所以在空格处应填入比较语句s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或&&48<=s[i]或57>=s[i]。

23.77解析:x=(y=4)+(z=3)等价于y=4,z=3,x=y+z=4+3=7。

24.非0非0解析:逻辑运算中,非0表示逻辑“真”,用。表示逻辑“假”。

25.可重用性继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。

26.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在统计字符串单词个数的算法中,本题的flag是为了记录一个单词是否结束。第13空应填*s++;如果某个字符不是空格,则必须判断它是否是单词,如是,则使得flag的标志为1,num的值加1。本题判断方法是:先判断s所指向的字符是否为空格,如果是则使得flag=0,否则判断前一个字符是否是空格,如果是则说明这个字符是一个单词的开始,将flag标志为1,num的值加1,如果不是,则不必记录。故第14空应填flag=0或*(s-1)='';最后一个空格需填写的是返回的单词的个数,即num。

27.BB解析:因为c是字符类型变量,它只能接收一个字符,所以c=A,字符型变量在参与算术运算的时候是用其相应的ASCII码参与运算的,这样++c得到字母B的ASCII码,用putchar函数输出是输出其相应的字符,所以是B。

28.88解析:本题考查基本的for循环条件,i+=2表示i每次递增2,从0开始,输出5个整数则需要的条件是i<=8。

29.=-ffun(10)=-f\r\nfun(10)解析:本题要求调用fun()函数计算m的值,故在主函数中的空白处应该填调用fun()函数的语句。fun()函数有一个形参n,为每次参加计算的值个数,故在主函数中的空白处应该填fun(10),在fun()函数中用到了一个for循环,共循环n次,当循环第i次的时候,m的值等于m=1-2+…+[(-1)的i-1次方]*i,所以在fun()函数的空白处应该填使f改变符号的语句,故应填-f或其他等价形式。

30.计划计划解析:瀑布模型是B.W.Boehm于1976年提出的。它将软件生存周期划分为计划、开发、运行3个时期,每个时期又分为若干个阶段。

31.黑箱或黑盒黑箱或黑盒解析:黑箱测试是根据程序规格说明所规定的功能来设计测试用例,它不考虑程序的内部结构和处理过程。常用的黑箱测试技术分为等价类划分、边界分析、错误猜测以及因果图等。

32.B66B66解析:字符B的ASCII码值为66,因此,按%c形式输出B,按%d形式输出66,输出结果为:B66。

33.元组元组解析:在关系型数据库中,用二维表来表示关系,二维表的表名即关系名,二维表的行称为关系的元组,二维表的列,称为关系的属性。

34.99解析:本题要输出的结果是字符串'IBM\\n012\\1\\\\'的长度,'IBM'是3个字符,\'\\n\'是1个字符,'012'又是3个字符,最后的\'\\1\'和\'\\\\\'都是1个字符。所以最终字符串的长度应该是3+1+3+1+1=9。故本题应该填9。

35.1212解析:本题通过第一个for循坪将数组arr[0]-arr[9]分别赋值为0-9,通过第二个for循环的三次循环累加,求出结果为12,具体分析如下:

i=1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12;

36.99解析:在主函数中函数f(f(3,4),f(3,5))的返回值赋给d。函数的第一个参数为f(3,4)的返回值,函数f(3,4)返回值为(4-3)×3=3,f(3,5)返回值为(5-3)×3=6,那么函数f(f(3,4),f(3,5))等价于函数f(3,6)其返回值为(6-3)×3=9。因此d被赋值为9;所以输出9。

37.考查ifelse语句,n=4不满足条件,所以fun5(4)=4+fun5(3),n==3也不满足条件,fun5(3)=3+fun5(2),n==2满足条件fun5(2)=2,故x=4+3+2=9。\r\n\r\n

38.O(2)

39.2002Shangxian2002Shangxian解析:本题考核的知识点是结构体类型的定义、赋初值以及字符串的比较。本题中首先定义一个结构体类型STU,镇结构体由一个长度为10的字符型数组、一个long型变量和一个float型变量组成。接着在主函数中用STU定义了4个结构体变量a、b、c、d,并且给a、b、c赋初值,然后定义?一个结构体指针p,并让它指向变量d。然后让将变量a的值赋给变量d,接着通过两个if语句比较结构体变量a、b、c的成员name大小。第一个订语句将结构体变量和结构体变量中较小的那个赋值给结构体变量d,第二个if语句将结构体变量和结构体变量较大的那个赋给结构体变量d。比较通过函数strcmp实现。strcmp()函数有两个参数,分别为被比较的两个字符串。如果第一个字符串大于第二个字符串返回值大于0,若第一个小于第二个返回值小于0,相等时返回值为0。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串,如果遇到某一个字符小,该字符所在的字符串就是较小的字符串。程序中第一个if语句strcmp(,)>0为真,故将b的值赋给d;第二个if语句strcmp()>0为假,故不执行后面的语句,最后d的值为b的值,因此输出d.sn0和p->name的值为2002Shangxian

40.p!=NULLp->nextp!=NULL\r\np->next解析:结构体变量构成链表需要每个节点中都有一个指向下一个结点的指针,就像本题中的next指针一样。注意:掌握可以对链表进行的操作。

41.D解析:本题考查给二维数组元素赋值。给二维数组元素赋值时应注意下列两点:①在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0。②二维数组第一维的大小由下列规则确定;当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小;当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小等于所得商数加1。

42.C解析:对象的基本特点包括;标识惟一性、分类性、多态性、封装性和独立性等。继承性不属于对象的基本特点。

43.B解析:在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有3种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。所以,本题的正确答案是B。

44.C解析:'\\x41'是转义字符,x表示41是十六进制数,41是字母a的ASCII码值。

45.A解析:f2函数传递的是变量的地址,可以实现数据的交换,而f1函数传递的是值,调用完f1函数后,c的值改变了,但main函数中的a值并未改变。

46.D解析:为了让计算机接入局域网必须要网卡,Hub用于把局域网中的所有计算机连接起来,调制解调器用于把局域网和互联网连接起来,中继器是广域网设备,用于网络中信息的传递。

47.D解析:首先定义了一个指向一维数组b的指针p,一个指向指针p的指针变量q,输出*(p++)是先输出*p即b[0]的值,再将指针p指向数组的下一个元素b[1],输出**q是输出指针p所指单元的内容,即b[1]的值。

48.D解析:在题中,i的值为3,由于“case3:”后面没有break语句,所以继续向下执行“case4:”后面的语句,由于“case4:”后面的语句为break强行退出switch语句,所以,本题没有任何输出。

49.B解析:一个算法应当具有以下5个特性:有穷性;确定性;可行性;有零个或多个输入;由一个或多个输出.简洁性不属于这5个特性,所以本题应该选择B。

50.B

51.A解析:考查宏替换的使用。宏替换用'#define宏名宏体'的形式来定义。在进行编译预处理时,将把程序中宏定义之后的所有宏名用宏体替换。宏虽然可以带参数,但宏替换过程中不像函数那样要进行参数值的计算、传递及结果返回等操作;宏替换只是简单的字符替换,不进行计算,因而本题中的S(a+b)进行宏替换后为PT*1+2*1+2=5.5*1+2*1+2=9.5。

52.D

53.C

54.A

55.C解析:当switch后面括弧内的表达式的值与某一个case后面的常量的表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。

56.D解析:变量b的初值等于2,所以表达式b<<2表示b的值二进制左移两位,即扩大4倍,所以变量b的等于8。然后与a的值1进行异或运算,得9。

57.C解析:本题中首先定义一个整型变量a并给它赋初值为3,在表达式中,从右开始执行,即先执行“a-=a*a;”等价于a=a-a*a即a=3-3*3=-6,此时a的值为-6,接着执行“a+=a-;”相当于执行a=a+a即a=-6+(-6)=-12,此时a的值为-12。所以,4个选项中选项C符合题意。

58.C解析:C语言中如果逻辑与运算符左边的表达式为假,右边的表达式就不再运算了,(++a<0)=(0<0)=0,所以逻辑与右边的表达式就不参与运算,没有改变b的值。因此输出b=1,a=0。

59.A解析:位置指针当前值函数ftell()的基本调用格式为:ftell(fp)。

ftell()函数的参数说明:“fp”是指向文件的文件型指针。

ftell函数的功能:得到fp所指向文件的当前读写位置,即位置指针的当前值,如果函数的返回值为-1L,表示出错。

60.D解析:内聚性是—个模块内部各元素间彼此结合的紧密程度的度量。内聚共有7类,它们之间的内聚性由弱到强排列顺序为:偶然内聚、逻辑内聚,时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚。

61.D\r\n

62.B

63.C

64.Da=“ABCD”书写错误,因为“=”左边不能出现常量;

温馨提示

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

评论

0/150

提交评论