




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年广东省韶关市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.设有以下程序段:要求输入字符串给结构体变量rec的title成员,错误的输入语句是()A.seanf(”%s”Ptrtitle);
B.scanf(”%s”,rec.title);
C.scanf(’’%s”,(*pu).title);
D.scanf(”%s”,ptr->title);
2.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序运行后的输出结果是()。
A.3B.13C.1D.0
3.
4.已定义以下函数“intfun(int*p){return*p;}”,fun函数的返回值是()。
A.—个整数B.不确定的值C.形参p中存放的值D.形参p的地址值
5.设有如下函数定义:#include<stdio.h>intfun(intk){if(k<1)return0;elseif(k==1)return1;elsereturnfun(k-1)+1;}若执行调用语句“n=fun(3);”,则函数fun总共被调用的次数是()。
A.2B.3C.4D.5
6.有以下程序#include<stdio.h>voidfun(char**p){++p;printf("%s",*p);}main{char*a[]={"Morning","Afternoon","Evening","Night");fun(a);}程序的运行结果是()。A.AfternoonB.fternoonC.MorningD.orning
7.下列叙述中正确的是______。
A.线性表是线性结构B.栈与队列是非线性结构C.线性列表是非线性性结构D.二叉树是线性结构
8.若已包括头文件且已有定义charsl[18],s2={"ABCDE")和inti,现要将字符串”ABCDE”赋给sl,下列语句错误的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.sl="ABCDE";
D.for(i=0;i<6;i++)sl[i]=s2[i]
9.设x、Y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。
A.xYB.x<=YC.x‖y+zy-zD.!((x
10.用链接方式存储的队列,在进行删除运算时()。
A.仅修改头指针B.仅修改尾指针C.头、尾指针都要修改D.头、尾指针可能都要修改
11.表达式9!=10的值为()。
A.非零值B.trueC.0D.1
12.下列关于C语言文件的叙述中正确的是()。
A.文件由一系列数据依次排列组成,只能构成二进制文件
B.文件由结构序列组成,可以构成二进制文件或文本文件
C.文件由数据序列组成,可以构成二进制文件或文本文件
D.文件由字符序列组成,其类型只能是文本文件
13.某二叉树的前序和后序序列正好相反,则该二叉树一定是_____的二叉树
A.空或者只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子
14.根据二叉树的定义可知道二叉树共有种不同形态的二叉树()。
A.3B.4C.5D.7
15.以下关于结构化程序设计的叙述中正确的是()。
A.一个结构化程序必须同时由顺序、分支、循环三种结构组成
B.结构化程序使用goto语句会很便捷
C.在C语言中,程序的模块化是利用函数实现的
D.由三种基本结构构成的程序只能解决小规模的问题
16.有以下程序
prt(int*m,intn)
{
inti;
for(i=0;i<n;i++)
m[i]++;
}
main()
{
inta[]={1,2,3,4,5},i;
prt(a,5);
for(i=0;i<5;i++)
printf("%d,",a[i]);
}
程序运行后的输出结果是A.A.1,2,3,4,5,
B.3,4,5,6,7,
C.2,3,4,5,6,
D.2,3,4,5,1,
17.设x和y均为bool量,则x&&y为真的条件是()。
A.它们均为真B.其中一个为真C.它们均为假D.其中一个
18.有以下程序:intfun(intn){if(n==l)returnl;elsereturn(n+fun(n一1)):}main{intx;scanf("%d",&x);x=fun(x);printf("%d\n",x):}执行程序时,给变量X输入10,程序的输出结果是()。A.55B.54C.65D.45
19.若在线性表中采用折半查找法查找元素,该线性表应该()A.元素按值有序B.构采用顺序存储结C.元素按值有序且采用顺序存储结构D.元素按值有序且采用链式存储结构
20.C语言中逻辑表达式的值为()
A.0或1B.非零值或者零值C.ture或falseD.'ture'或者'false'
二、2.填空题(20题)21.一棵二叉树第六层(根结点为第一层)的结点数最多为______个。
22.以下程序的输出结果是【】。
main()
{char*p=“abodefgh”,*r;
long*q;
q=(long*)p;
q++;
r=(char*)q;
printf(“%s\n”,r);
}
23.以下程序段的输出结果是【】。
inti=9;
printf("%o\n",i);
24.以下程序的输出结果是______。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\n",*p,*q);
}
25.若有如下程序:
main()
{intx=4,y=3,x=2,t;
t=x<y<z;
printf("%d\n",t);}
则程序运行后的输出结果是【】。
26.常用的黑箱测试有等价类划分法、【】和错误推测法3种。
27.下列程序段的输出结果是【】。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':
case'A':
case'b':
case'B':printf("good");break;
case'c':case'C':printf(”pass");
case'd':case'D':printf(”warn");
}
28.软件测试的方法有动态测试、静态测试和【】13种。
29.“printf("%d\n",strlen("\t\"023\xABC\n");”语句的输出结果是______。
30.以下程序输出的最后一个值是【】
intff(intn)
{staticintf=1;
f=f*n;
returnf;
}
main()
{inti;
for(i=1;i<=5;i++)printf("%d\n",ff(i));
}
31.软件是程序、数据和【】的集合。
32.对于长度为n的顺序存储的线性表,当随机插入和删除—个元素时,需平均移动元素的个数为【】。
33.\13'在内存中占1个字节,"\12"在内存中占______个字节。
34.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于【】的联系。
35.若有程序:
main()
{inti,j;
scanf('i=%d,j=%d";&i,&j);
printf("i=%d,j=%d\n",i,j);
}
要求给i赋10,给j赋20,则应该从键盘输入上【】。
36.下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。
#include<stdio.h>
main()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
______;
for(i=0;i<9;i++)
{if(i%4=0)printf("\n");
printf("%3d",b[i]);
}
}
37.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。
38.在程序设计阶段应该采取______和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成程序。
39.数据管理技术的发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【】。
40.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】(要求形参名为b)。main(){doubles[10][22];intn;……fun(s);……}三、1.选择题(20题)41.下列关于C语言的说法不正确的是
A.C语言既具有高级语言的一切功能,也具有低级语言的一些功能
B.C语言中的每一条执行语句都必须用分号结束,分号不是C语言的一部分,是语句之间的分隔符号
C.注释可以出现在程序中任意合适的地方
D.命令行后面不能加分号,命令行不是C语言的语句
42.下列对于软件测试的描述中正确的是()。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能多地发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
43.若有如下函数调用语句;sub(a,1,fun(b,c),d+c,(a+d,c*f));则在该函数调用语句中含有实参的个数是()
A.5B.7C.10D.6
44.有以下程序main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\n"i,j);}程序运行后的输出结果是
A.9,9B.8,9C.1,8D.9,8
45.有下列程序:main(){inty=20;do{y--;}while(--y);printf("%d\n",y--);}当执行程序时,输出的结果是()。
A.-1B.1C.4D.0
46.若有定义:inta=4,b=5;floatx=3.4,y=2.1;,则下列表达式的值为()。(float)(a+B)/2+(int)x%(int)y
A.5.5B.55C.5.5D.55
47.下面程序输出的结果是______。main(){inti=5,j=9,x;x=(i=j?i:(j=7));printf("\n%d,%d",i,j)}
A.5,7B.5,5C.语法错误D.7,5
48.为使*p=20,下面正确的程序是()
A.#include<stdio.h>main(){inta=10,b=20,*p=&b;printf("%d\t%d\n",p,*p);}*p)
B.#include<stdio.h>main(){inta=10,b=20,*p=b;printf("%d\t\%d\n",p,*p)}
C.#include<stdio.h>main(){inta=10,b=20,*p;p=&a;p++;printf("%d\t\%d\n",p,*p);}}
D.#include<stdio.h>main(){inta=10,b=20,*p;*p=20;printf("%d\t\%d\n",p,*p);}
49.以下函数定义的类型符是()。fff(doublex){printf("%f",x+x);}
A.与x类型相同B.void类型C.int类型D.无法确定
50.有以下程序intf(intn){if(n==l)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf{"%d\n",j);}程序运行后的输出结果是
A.4B.3C.2D.1
51.下列叙述中正确的是()。
A.break语句只能用于swish语句体中
B.continue语句的作用是使程序的执行流程跳出包含它的所有循环
C.break语句只能用在循环体内和switch语句体内
D.在循环体内使用break语句和continue语句的作用相同
52.下列字符串是合法的标识符的是()。
A._HJB.9_studentC.longD.LINE1
53.关系数据库管理系统能实现的专门关系运算包括()。
A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表
54.下列程序的输出结果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}
A.69825B.63825C.6385D.693825
55.以下语句的输出结果是()printf("%d,%d,%u\n",016,16,-16);
A.16,16,65420B.14,16,6542C.16,16,-16D.14,16,-16
56.下列可用于C语言用户标识符的—组是______。
A.voiddefineWORD
B.a3_b3_123Car
C.For-abcIFCase
D.2aDOsizeof
57.有以下程序#inclUde<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1;j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4
A.0987654321B.4321098765C.5678901234D.0987651234
58.有以下程序:#include<stdio.h>#defineN8voidfun(int*x,inti){*x=*(x+i)+1;}main(){inta[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=0;i<N/2;i++){printf("%d",a[i]);}printf("\n");}程序运行后的输出结果是()。
A.1313B.3234C.4234D.1234
59.以下程序的输出结果是_______。main(){charst[20]="hello\0\t\\";printf(%d%d\n",strlen(st),sizeof(st));}
A.99B.520C.1320D.2020
60.程序中头文件typel.h的内容是:#defineN5#defineM1N*3程序如下:#include"type1.h”#defineM2N*2main(){inti;i=M1+M2;printf("%d\n",i);}程序编译运行后的输出结果是()
A.10B.20C.25D.30
四、选择题(20题)61.下列关系表达式中,结果为“假”的是()。
A.(3+4)>6
B.(3!=4)>2
C.3<=4
D.
E.3
F.(3<4)=1
62.有以下程序:
程序执行后的输出结果是()。
A.y=一1B.Y=0C.y=1D.while构成无限循环
63.
有以下程序:
voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;
}
main
{char*s1="abe",*s2="123":
swap(s1,s2);
printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是()。
A.123,abeB.abc.123C.1bc,a23D.321,cba
64.有以下程序
main()
{intx,y;
scanf("%d",&x);
y=x>12?x+10:x-12;
printf("%d\n",y);
}
若运行时给变量x输入12,则以下程序的运行结果是
A.0B.22
C.12D.10
65.以下选项中正确的定义语句是()。
A.double,a,b;B.doublea=b=7;C.doublea;b;D.doublea=7,b=7;
66.若有定义:inta,h;通过语句:scanf(”%d;%d”,&a,&B.;,能把整数3赋给变量a,5赋给变量b的输入数据是()。
A.35B.3,5C.3;5D.35
67.已知inta,b;doublec;,则以下语句中错误的函数调用是
A.scanf("%d,%x,%lf",&a,&b,&c);B.scanf("%d,%d,%le",&a,&b,&c);
C.scanf("%o,%x,%o",&a,&b,&c);D.scanf("%d,%o,%e",&a,&b,&c);
68.
69.
70.算法的时间复杂度是指()。
A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程所需要的基本运算次数D.算法程序中的指令条数
71.两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是()。
if(x++>5)printf("%d",x);
elseprintf("%d\n",x--);
A.7和5B.6和3C.7和4D.6和4
72.
73.在下列选项中,没有构成死循环的是()。
A.
B.
C.
D.
74.
75.在数据库管理系统DBMS中,用来定义内模式和外模式等一些数据库管理系统中其他结构的语言为
A.CB.BasicC.DDLD.DML
76.
77.
78.
79.
80.当执行以下程序段时,()。x=-l:do{x=x*X;)while(!x);A.循环体将执行一次B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误
五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:将str所指字符串中出现的t1所指字符串全部替换成t2所指字符串,所形成的新的字符串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如,当str所指字符串中所指的内容为abcdabcdef9,t1所指字符串中的内容为bc,t2所指字符串中的内容为11时,结果在w所指的数组中的内容应为alldalldefg。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写函数proc(),该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
1122234456666778
9910101010
删除后,数组中的内容应该是:
12345678910
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
参考答案
1.A符号“_>”是指针特用的,符号“.”用于指定元素的成员。ptr是指针,只能用符号“一>”,因此选项A错误。+P是指定元素(Fee)可以使用“.”运算,因此选项D正确。选项B,Fee.title代表数组title,同理选项C正确。答案为A选项。
2.AC语言中的转义字符也是一个字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3个字符。strlen遇到‘\\0’字符计数结束,因此计数为3。故本题答案为A选项。
3.A
\r\n
4.A函数返回值为指针变量指向的数据,该数据已被定义为整型。故本题答案为A选项。
5.B执行调用语句“n=fun(3);”,3被当作实参传递进去,进行了一次调用。3被当作实参传进去后,程序会执行“elsereturnfun(k-1)+1;”,函数被调用了第2次,参数是3-1,也就是2。2被当作参数传进去后,程序会执行“elsereturnfun(k-1)+1;”函数被调用了第3次,参数是2-1,也就是1。1被当作实参传进去后,程序会执行“elseif(k==1)return1;”,函数不再被递归调用。所以最终结果为3次。故本题答案为B选项。
6.A执行fun(a)语句时,P指向的是字符串数组a的第一个字符串“Morning”,p自加1之后,p指向字符串数组a的第2个字符串“Afternoon”。
7.A解析:一般将数据结构分为两大类型:线性结构与非线性结构。线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。
8.C数组名sl是代表sl数组首地址的地址常量,因为“=”左边不能出现常量,所以s1="ABCDE"的方法是错误的。
9.D本题考查逻辑运算符的使用。当“”的两个运算对象都是逻辑l时,表达式返回值才是1;“‖”的两个运算对象至少有一个是逻辑1时,表达式返回值也是l,x<y为1,!z为0,10为1,0‖为1,因此,!l为0。
10.D
11.D
12.C文件由数据序列组成,可以构成二进制文件或文本文件。故本题答案为C选项。
13.B
14.B
15.C解析:结构化程序设计是指将待开发的软件系统划分为若干个相互独立的模块,与具体的语句结构无关。Goto语句的滥用会导致程序的可读性降低。三种基本结构构成的程序依然可以解决大规模的问题,只是不利于复用。
16.C用数组名作为函数实参时,不是把数组的值传递给形参,而是把实参数组的起始地址传递给形参数组,这样两个数组就共同占用同一段内存单元。本题通过“prt(a,5);”将数组a的首地址传递给了指针变量m,使指针变量m指向数组a的首地址,那么,对指针变量所指向的存储单元的内容的改变就是对数组a中的元素的改变。题中函数prt的作用是将指针变量m所指向的存储单元中的元素值各加上1,故数组a中的值也随之变化,所以。输出的数组元素的值为2,3,4,5,6,。
17.A
18.A函数intfun(intn)的功能是求1+2+…+n的值并返回。所以执行程序时,给变量x输入10后,执行语句“x=fun(x);”,X的值将变为1到10中10个整数的累加和,即55。
19.C
20.A
21.3232解析:二叉树的一个性质是,在二叉树的第k层上,最多有2k-1(k≥1)个结点。由此,26-1=32.所以答案为32。
22.efghefgh解析:本题定义了一个字符型指针变量p并通过赋初值让它指向了一个字符串,定义了另一个字符型指针变量r和一个长整型指针变量q。首先通过语句“q=(long*)p;”把P的地址值强制转换为长整型地址值并赋值给q,然后执行“q++;”,地址值增加了4,执行语句“r=(char*)q;”,把长整型指针变量q的值再强制转换成字符型地址值并赋给r,r的值应为字符串中字符“e”的地址,最后输出,指向的字符中,是“efgh”。
23.1111解析:本题考核的知识点是printf()函数的输出格式。本题中定义了一个整型变量i并赋初值为9,然后要求以八进制输出i的值,9的八进制数的表示为11。
24.3535解析:函数swap(int*a,int*b)的功能是实现*a和*b中两个数据的交换,在主函数中调用swap(p,q)后,参形指针变量a和b分别指向i和j,在swap(int*a,int*b)执行完后,指针变量a和b分别指向j和i,而指针变量p,q所指向变量的值没有发生变化,所以输出结果为35。
25.1
26.边界值分析法边界值分析法解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价类划分、边界值分析法和错误推测法3种。
27.passwarnpasswarn解析:n++是在执行完其所在的语句后再加1,因此,在执行case的时候,n的值依然为'c',执行case'c'后面的语句,先打印出“pass”;在执行完case'c'后,未遇到break跳出switch,便接着执行下面的语句,又打印出warn。所以此题输出结果是passwarn。
28.正确性测试正确性测试
29.66解析:strlen()函数的作用是计算字符串的长度并作为函数的返回值,这里的长度不包括串尾的结束标志\'\\0\'。
\'\\t\'f是转义字符,代表横向跳若干格:'\\'是转义字符,代表双引号;\'\\023\'只代表一个字符,而不管转义字符后面有几个字符;’仅AB,是以两位十六进制数AB表示的ASCII码字符,只代表一个字符;\'\\n\'是转义字符,代表回车换行。
5个字符常量各代表一个字符,再加上字母C,所以返回的长度是6。
30.120120解析:静态变量的类型说明符是static,静态局部变量属于静态存储方式,它具有以下特点:
①静态局部变量属于静态存储类别,在静态存储区内分配存储单元。在程序整个运行期间都不释放。
②对静态局部变量是在编译时赋初值的,即只赋初值—次,在程序运行时它已有初值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。
③如在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。(注意:C语言中的非静态变量在定义时,系统并不会自动给它赋初值)
④虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的。
本题中函数的功能是:与for语句一起求一个整数的阶乘。
31.文档文档解析:计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。
32.n/2n/2解析:删除—个元素,平均移动的元素个数为(n-1+n-2+…+0)/n=(n-1)/2;插入一个元素,平均移动元素个数为(n+n-1+n-2+…+1)/n=(n+1)/2:所以总体平均移动元素个数为n/2。
33.22解析:'\\13':表示八进制数13表示的ASCII字符,是一个字符,占一个字节;而”\\12”是个字符串,除了八进制数12表示的ASCII字符占一个字节外,还有在字符串的末尾加上串结束标志“'\\0'”,所以共有2个字节。
34.一对多(或1∶N)一对多(或1∶N)解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1∶1)的联系、一对多(1∶N)或多对一(N∶1)的联系和多对多(N∶N)的联系。
35.i=10j=20i=10,j=20解析:该函数的第一个参数是格式字符串,主要由两类字符组成,一类是非格式符要求原样输入,一类是格式符对应要输入的变量,所以本题中应该原样输入i=,j=,后面分别给变量10和20,故空格处应该填入i=10,j=20。
36.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:将数组a中元素a[i]与a[j+1]值相加后的值赋予数组b中元素b[i],即可实现将一个数组的前项和后项之和存入另一数组。
37.参照完整性参照完整性
38.自顶向下自顶向下解析:在程序设计时,应先考虑总体,后考虑细节,逐步使问题具体化,对复杂的问题,应该设计一些子目标作为过渡,上述方法概括为:自顶向下,逐步细化。
39.数据库系统阶段数据库系统阶段解析:在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段,其中数据独立性最高的阶段是数据库系统阶段。
40.
41.B解析:分号是C语言的一部分,不是语句之间的分隔符号。C语言中的每一条执行语句都必须用分号“;”结束,分号是C语言的一部分,不是语句之间的分隔符号。
42.C解析:关于软件测试的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。本题答案为C。
43.A
44.D解析:本题中首先定义了字符数组a,由于它的长度省略,所以其长度由初值个数确定,为9。接着将sizeof()函数返回的值赋给i(SIZeof()函数的作用是返回运算对象占用的字符数),所以i值为9。然后将strlen()函数的返回值赋给j(strlen()函数的作用是返回字符串的长度,不包括字符串的结束标记'\\0'),所以j值为8,所以最后输出的i,j的值为9,8。所以4个选项中D正确。
45.D解析:本题考查do…while循环。当--y是0(即y是0)时结束循环,输出y--是先输出y的值再将y的值减1。
46.C解析:在计算(float)(a+b)/2时,由于通过强制类型转换将(a+b)转换成了float型,所以应先将2转换成float型,再进行计算,得4.500000。
在计算(int)x%(int)y时,先将x和y通过强制类型转换成int型,再进行求余运算,得1。
又因为4.500000是float型,所以将1和它相加时,先将1换成float型,再计算,得到5.500000。
注意:类型转换的一般规则是:低级类型服从高级类型,并进行相应的转换。数据类型的级别由低到高的排序表示为:char→int→unsigned→long→float→double。
47.A解析:条件表达式的—般形式为:表达式1?表达式2:表达式3;先求解表达式1,若为真则求解表达式2;若表达式1的值为假,则求解表达式3。本题中先判断i=j,不等,执行j=7;然后执行x=7。故本题为A。
48.A
49.C解析:在函数定义时,由于函数没有说明其类型,所以系统默认一律自动按整型处理。
50.B解析:本题考查的知识点是递归函数.通过分析不难写出,f()函数的数学表达式为:
f(n)=1n=1;
f(n)=f(n-1)+1n不等于1;
在主函数中for循环执行了两次函数调用f(i)。第一次:i为1,调用f(1)得到返回值1,并把它加到i中,i的值为1。第二次i为2,调用f(n),根据递归公式可知“f(2)=f(1)+1”,得到返回值2并把它加到i中,j的值为3。所以最后输出的j的值为3,所以4个选项中B正确。
51.C解析:只能在循环体内和swish语句体内使用break语句。当break出现在循环体的switch语句体内时,其作用只是跳出该switch语句体,并不能中止循环体的执行。若想强行中止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件则跳出本层循环体。
52.A解析:标识符是以字母、数字和下划线组成的字符串,且只能是字符或下划线开头,且C语言的关键字不能用作用户自定义的标识符。注意:熟记C语言中常用的关键字。
53.B解析:此题为数据库的基本概念,可以对照办工软件的电子表格进行如下理解:选择:我们根据某条件选择出一行或多行元组(一个元组即为二维表中的一行)。投影:按字段(也称属性,比如学生关系(学号,姓名,出生年月,性别),学号、姓名…都是属性)选取一列或多列(一个二维表中所有元组在某一列或几列上截取出来)。连接:2个或2个以上的表连接组成一张新的表,通常有条件连接。比如学生关系(学号,姓名,系号),又有一张系表(系号,系名,主任),2张表可以合并为一张这样的表(学号,姓名,系号,系名,主任)。
54.C
55.B
56.B解析:C语言规定标识符只能由字母,数字和下划线3种字符组成,且第—个字符必须为字母或下划线,所以排除C和D。C语言还规定标识符不能为C语言的关键字,从而选项A(void是关键字)也是错误的。
57.C解析:函数fun(int*s,intn1,intn2)的功能是对数组s中的元素进行首尾互相调换。所以在主函数中,当fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5,6,7,8,9,0};再执行fun(a,4,9),数组a[12]={4,3,2,1,0,9,8,7,6,5};再执行fun(a,0,9)后,数组a[12]={5,6,7,8,9,0,1,2,3,4}。
58.C解析:函数fun(int*x,inti)的功能是把数组元素x[i]的值加1赋给x[0]。所以在主函数中执行fun(a,2)后,数组元数a[0]的值等于4。然后在for循环语句中,输出数组a中的前4个元素的值,分别是4,2,3,4。
59.B解析:C语言中字符串是以'\\0'字符结束的,且strlen()函数计算的是'\\0'字符前的所有字符的个数。本题中strlen(st)应为5。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof()函数是计算变量或数组的所分配到的内存空间的大小。所以本题的sizeof(st)为20。
60.C
61.B\n在一个表达式中,括号的优先级高,先计算3!=4,为真即是l,1>2为假。
\n
62.Ay一一表示Y使用后再自减l。所以最后一次Y的值为0,条件不成立但仍要执行自减操作,Y的值为一1,跳出循环。打印Y的值一1。
63.C
\n本题考查swap函数,它的作用是把x、Y所指的内容互换,其他的不变,因此当执行完调用函数后,仅仅a与1互换,其他的没有变。
\n
64.A在本题中,程序首先定义了两个整型变量x和y,然后通过键盘输入的方式给这变量x赋初值。执行语句y=x>12?x+10:x-12;,该题语句是将x>12?x+10:x-12的运算结果保存到变量y中,由于从键盘输入的值是12,那么变量x的值为12,此时x>12的运算结果为假,则执行x-12部分,那么计算后的结果为0,并将这个结果赋值给变量y,最后输出变量y的值,因此答案选A。
65.DA选项中变量类型符double后面不能有逗号。B选项中变量b不能先使用再定义,应该写成选项D中的格式。C选项中变量a后面应该是逗号而不是分号。
66.C输入数据的格式必须与seanf()的格式控制串完全匹配,所以输入时必须在3和5之间输入“;”。
67.C本题主要考查格式输入函数scanf。此函数一般的输入形式是scanf(格式控制,地址表列);。函数“格式控制”的含义同printf函数,以%开始,以一个格式字符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版离婚财产分割协议书范本:离婚诉讼中财产分割的证据收集与运用技巧
- 2025版驾校场地租赁及教学设备更新协议
- 2025版超市店铺转让协议及供应链整合与物流配送合同
- 二零二五年度房屋买卖与房地产投资分析服务合同
- 2025版足浴店全方位承包合作协议
- 二零二五年度绿色建筑工程炮工安全责任书
- 2025版古建筑修复与设计合同标准
- 二零二五年度垃圾场智能监控系统施工合同
- 二零二五年度景区景点保洁与维护协议
- 2025年度智能设备研发劳务外包个人服务协议范本
- 《慢性萎缩性胃炎》课件
- 海钓项目商业计划书
- 洛阳理工学院教师招聘考试题库真题2023
- 安庆亿成化工科技有限公司化学品输送管线项目环境影响报告书
- 葫芦岛广宁220千伏输变电工程环评报告
- YS/T 922-2013高纯铜化学分析方法痕量杂质元素含量的测定辉光放电质谱法
- GB/T 22751-2008台球桌
- GB/T 12228-2006通用阀门碳素钢锻件技术条件
- GA 1205-2014灭火毯
- 社区工作者经典备考题库(必背300题)
- 金手指外观检验重点标准
评论
0/150
提交评论