版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年安徽省阜阳市全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.将数组a[0,1,…,m-1]作为循环队列SQ的存储空间,f为队头指示,r为队尾指示,则执行出队操作的语句为()A.f=f+1B.f=(f+1)%mC.r=(r+1)%mD.f=(f+1)%(m+1)
2.在循环队列中,若front与rear分别表示对头元素和队尾元素的位置,则判断循环队列空的条件是()。
A.front==rear+1B.rear==front+1C.front==rearD.front==0
3.有以下程序:#includeintfun(intx,inty){if(x!=y)return(x+y)/2);elsereturn(x);}Main(){Inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c));}A.6B.3C.8D.12
4.二维数组A按行顺序存储,其中每个元素占1个存储单元。若A[1][1]的存储地址为420,A[3][3]的存储地址为446,则A[5][5]的存储地址为_______
A.470B.471C.472D.473
5.有以下程序voidss(char*s,chart){while{*s)if(*s==t)*s-t-'a'+'A';S++;main(){charstrl[100]="abcddfefdbd",c='d';ss(str1,c);printf("%s\n",str1);}程序运行后的输出结果是
A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd
6.
7.若一个栈以向量V[1..n]存储,初始栈顶指针top为n+1,则下面x进栈的正确操作是()。
A.top=top+1;V[top]=x
B.V[top]=x;top=top+1
C.top=top-1;V[top]=x
D.V[top]=x;top=top-1
8.下列程序的输出结果是______。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
9.有下列程序:程序执行后的输出结果是()。
A.0,-1,-1,-1
B.0,-1,-1,0
C.0,-1,-1,0,-1,0
D.0,-1,-1,-1,-1,-1
10.衡量显示器的主要技术指标是()
A.波特率B.分辨率C.主频D.显示速度
11.有以下程序:#include<stdio.h>main(){structSTU{charname[9];charsex;doublescore[2];};structSTUa={“Zhao”,‘m’,85.0,90.0},b={“Qian”,‘f’,95.0,92.0};b=a;printf(“%s,%c,%2.0f,%2.0f\n”,,b.sex,b.score[0],b.score[1]);}程序的运行结果是()。
A.Qian,m,85,90B.Zhao,m,85,90C.Zhao,f,95,92D.Qian,f,95,92
12.有以下程序:intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intx;scanf("%if",&x);x=fun(x);printf("%d\n",x);}执行程序时,给变量X输入10,程序的输出结果是()。A.55B.54C.65D.45
13.深度为5的二叉树至多有_____个结点。
A.16B.32C.31D.10
14.有以下程序:#include<stdio.h>main(){FILE*pf;char*s1=“China”,*s2=“Beijing”;pf=fopen(“abc.dat”,“wb+”);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指针回到文件开头*/fwrite(s1,5,1,pf);fclose(pf);}程序执行后,abc.dat文件的内容是()。
A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina
15.
16.
17.有以下程序函数fun只对下标为偶数的元素进行操作.:
程序运行后的输出结果是()。A.A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
18.在学生管理的关系数据库中,存取一个学生信息的数据单位是()。
A.文件B.数据库C.字段D.记录
19.软件详细设计生产的图如右图:该图是()。
A.N—S图B.PAD图C.程序流程图D.E—R图
20.
二、2.填空题(20题)21.在面向对象的方法中,______描述的是具有相似属性与操作的一组对象。
22.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。
23.诊断和改正程序中错误的工作通常称为【】。
24.测试用例包括输入值集和【】值集。
25.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++)
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
26.以下程序的输出结果是【】。
#include<stdio.h>
main()
{inti;
for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);
printf("\n");
}
27.以下程序的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。请填空。#include<stdio.h>main(){longs,t,s1=10;pfintf("\n.Pleaseenters:");scanf("%1d",&s);t=s%10;while(s>0){s=s/100;t=();s1=s1*10;}printf("Theresultis:%1d\n",t);}
28.软件是程序、数据和【】的集合。
29.有以下程序
main()
{intn=0,m+1,X=2;
if(!n)X-=l;
if(m)X-=2;
if(X)X-=3;
printf("%d\n",x);
}
执行后输出的结果是【】。
30.下面的程序为6个整型变量A、B、C、D、E、F输入整数,并按从大到小的顺序输出整数及其所对应的变量名。例如,输入的数为3、2、5、7、4、6,则输出的形式为:D(7)F(6)C(5)E(4)A(3)B(2)。
#include<stdio.h>
intA,B,C,D,E,F;
struct
{
charn;
【】;
}tb1[]={{'A',&A},{'B',&B},{'C',&c},{'D',&D),{'E',&E},{'F',&F}},t;
main()
{
inti,j;
for(i=0;i<6;i++)scanf("%d",【】);
for(i=0;i<5;i++)
for(j=0;j<5-i;j++)
if(【】)
{
t=tb1[j];
tb1[j]=tb1[j+1];
tb1[j+1]=t;
}
for(i=0;i<6;i++)printf("%c(%d)",tb1[i].n,*tb1[i].p);
printf("\n");
}
31.若输入字符串:abcde<回车>,则以下while循环体将执行【】次。
while((ch=getchar())=='e')printf("*");
32.下列循环的循环次数是______。
intk=2;
while(k=0)
printf["%d",k);
k--;
printf("\n");
33.下面程序的输出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
fov(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n",k);}
34.若有下列定义和语句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
则输出结果为______。
35.数据库系统中实现各种数据管理功能的核心软件称为【】。
36.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。
37.软件工程研究的内容主要包括:【】技术和软件工程管理。
38.以下函数用以求x的y次方。补足所缺语句。
Doublefun(doublex,inty)
{inti;doublez=1;
for(i=1;i【】;i++)
z=【】;
returnz;
}
39.下面程序的输出结果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptr1=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptr1+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
40.下列程序段的输出结果是【】。
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");
}
三、1.选择题(20题)41.函数fseek(pf,0L,SEEK_END)中的SEEK_END代表的是()。
A.文件开始B.文件末尾C.文件当前位置D.以上都不对
42.设a为整型变量,不能正确表达数学关系“10<a<15”的C语言表达式是______。
A.10<a<15
B.a==11||a==12||a==13||a==14
C.a>10&&a<15
D.!(a<=10)&&!(a>=15)
43.下列程序的输出结果是______。main(){inta=12,b=12;printf("%d%d\n",--a,++b);
A.1010B.1212C.1110D.1113
44.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。
A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.没有任何关系
45.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}该程序中的for循环执行的次数是______。
A.5B.6C.7D.8
46.若有下面的说明和定义,则sizeof(structaA)的值是()struetaa{intr1;doubler2floatr3;unionuu{charu1[5];longu2[2];}ua;}mya;
A.30B.29C.24D.22
47.设x、y、t均为int型变量,执行以下语句后,y的值为______。x=y=3;t=++x||++y;
A.不定值B.4C.3D.1
48.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表
49.下列叙述中正确的是()。
A.运行结果正确的程序一定具有易读性
B.自己编写的程序主要是给自己使用的
C.当前编写的程序主要是为当前使用的
D.上述三种说法都不对
50.以下程序的输出结果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%1d\n",fun(3));}
A.1B.2C.3D.4
51.结构化程序设计主要强调的是()。
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性
52.下面不属于软件设计原则的是
A.抽象B.模块化C.白底向上D.信息隐蔽
53.设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是______。
A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=*p1*(*p2);
54.有以下程序
intfun1(doublea){returna*=a;}
intfun2(doublex,doubley)
{doublea=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{doublew;w=fun2(1.1,2.0);……}
程序执行后变量w中的值是A.5.21B.5C.5.0D.0.0
55.若w、x、y、z、m均为int型变量,则执行下列的语句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;
A.2B.3C.5D.4
56.若函数调用时,参数为基本数据类型的变量,下列叙述中正确的是()。
A.实参与其对应的形参共占存储单元
B.只有当实参与其对应的形参同名时才共占存储单元
C.实参与其对应的形参分别占用不同的存储单元
D.实参将数据传递给形参后,立即释放原先占用的存储单元
57.下列程序的运行结果是()。
#include<stdio.h>
voidfun(int*s,int*p)
{staticintt=3;
*p=s[t];
t--;
}
voidmain()
{inta[]={2,3,4,5},k;
intx;
for(k=0;k<4;k++)
{fun(a,&x);
printf("%d,",x);
}
}
A.5,4,3,2B.2,3,4,5,C.2,2,2,2,D.5,5,5,5,
58.以下叙述中正确的是
A.C程序中注释部分可以出现在程序中任意合适的地方
B.花括号“{”和“}”只能作为函数体的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的一部分
59.以下程序中的for循环执行的次数是______。#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<NUM;i++)printf("%d\n",i);}
A.5B.6C.7D.8
60.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x>10.0)y=1.O/x;elsey=1.0;printf("%f\n",y);}该程序的输出结果是
A.0B.0.25C.0.5D.1
四、选择题(20题)61.
62.第
15
题
非空的循环单链表head的尾结点(由p所指向),满足
A.p->next==NULLB.p==NULLC.p->next=headD.p=head
63.以下不能将s所指字符串正确复制到t所指存储空间的是()。
A.do{*t++=*8++;}while(*s);
B.for(i=0;t[i]=s[i];i++);
C.while(*t=*s){t++;s++;}
D.for(i=0,j=0;t[i++]=s[j++];);
64.
65.若有以下程序
#include<stdio.h>
inta[]={2,4,6,8};
main()
{inti;
int*p=a;
for(i=0;i<4;i++)a[i]=*p;
printf("%d\n",a[2]);
}
上面程序的输出结果是
A.6B.8
C.4D.2
66.下列关于单目运算符++,——的叙述中正确的是()。
A.它们的运算对象可以是任何变量和常量
B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D.它们的运算对象可以是char型变量、int型变量和float型变量
67.
68.
69.(23)在深度为5的满二叉树中,叶子结点的个数为______。
A.32
B.31
C.16
D.15
70.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系
71.
72.设有如下程序段:
则执行P=s;语句后,以下叙述中正确的是()。
A.可以用*P表示s[O]
B.S数组中元素的个数和P所指字符串长度相等
C.s和P都是指针变量
D.数组s中的内容和指针变量P中的内容相等
73.已知:intx,y;doublez;则以下语句中错误的函数调用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);
B.scanf("%1d*%d&1f",&x,&y,&z);
C.scanf("%x%*d%o",&x,&y);
D.scanf("%x%o%6.2f",&x,&y,&z);
74.下列关于栈的描述错误的是()。
A.栈按“先进后出”组织数据B.栈是特殊的线性表,只能在一端插入或删除数据C.栈具有记忆功能D.栈只能顺序存储
75.
76.设有charstr[10],下列语句正确的是
A.scanf("%s",&str);B.printf("%c",str);
C.printf("%s",str[0]);D.printf("%s",str);
77.下列叙述中正确的是()。A.在switch语句中,不一宗使用break语句
B.在switch语句中,必须使用default
C.break语句必须与swifth语句中的case配对使用
D.break语句只能用于swifth着句
78.下列关于栈叙述正确的是()。A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先能被胍除
79.有以下定义:
80.以下叙述中错误的是()。
A.算法正确的程序可以有零个输入
B.算法正确的程序最终一定会结束
C.算法正确的程序可以有零个输出
D.算法正确的程序对于相同的输入一定有相同的结果
五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是按以下递归公式求函数值。例如,当给n输入3时,函数值为60;当给n输入6时,函数值为480。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放人结构体数组stu中,请编写函数proc(),它的功能是:把指定分数范围之外的学生数据放在b所指的数组中,分数范围之外的学生人数由函数值返回。
例如,输入的分数是70和79,则应当把分数低于70和高于79的学生数据输出,不包含70分和79分的学生数据。主函数中把70放在low中,把79放在heigh中。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。
试题程序:
参考答案
1.B
2.C
3.A本题中第一次调用为fun(8,fun(5,6)),因为fun(5,6)返回值为5,所以第二次调用为fun(8,5)=6。所以选择A)。
4.C
5.B解析:本题中的函数ss()有两个参数,一个是字符型指针变量s,另一个是字符型变量t在函数中通过一个while循环,在循环中一次取出s指向的字符串并判断它是否和t中存放的字符相同,若相等,则执行“s=t-'a'+'A':”(若是小写字母,则把它转换成大写字母)语句。在主函数中执行函数调用ss(strl,c),很显然是把str1数组中所有字符“d”变成大写字母,其他字符不变。所以4个选项中B正确。
6.A
7.C
8.C
9.A程序定义整型变量a和b,初值分别是1,-2。for语句中循环条件式为“a--&&b++”,因为--和++的优先级高于逻辑与运算符&&,所以循环条件式等价于“(a--)&&(b++)”,自左向右运算。第1轮循环,a、b的值为1,-2,首先执行a--,a--的值为1,执行完后a的值为0;继续执行b++,b++的值为-2,执行完后b的值为-1。整个表达式“a--&&b++”的值为真,程序输出0,-1。第2轮循环,a、b的值分别为0,-1,首先执行a--,a--的值为0,执行完后a的值为-1,由于a--的值为0,根据逻辑与运算的短路原则,表达式“a--&&b++”的值一定为假,表达式b++不再执行,循环结束,执行循环体外的printf语句,输出a、b的值分别为:-1,-1。所以本题输出结果为:0,-1,-1,-1。本题答案为A选项。
10.B
11.B在main函数中将结构体变量a赋值给变量b。输出结构体变量b的值为:Zhao,m,85,90。故本题答案为8选项。
12.A函数fun()通过递归调用实现的功能为n+(n-1)+…+1,故程序的输出结果为55。
13.C
14.B题目中先是将s2字符串写入adc.dat中,然后执行rewind函数将写指针放置于文件开头,写入s1字符串。s1字符串将前5个字符覆盖,所以最终结果为Chinang。故本题答案为B选项。
15.D
16.A
17.A由函数fun(int*a,intn)中语句if(a[j]>a[k])k=j;可知当前k是记录数组中较大数据值所在位置的下标变量,所以该函数的作用是对数组a中的下标为偶数位置的数据进行从大到小的排序,即对a[0],a[2],a[4],a[6]中的数据1,3,5,7进行从大到小的排序,其他位置的数据不变,所以答案为A)。
18.D解析:在关系数据表中,行称为元组,对应存储文件中的记录,列称为属性,对应存储文件中的字段,所以本题答案为D。
19.CN—s图提出了用方框图来代替传统的程序流程图,所以A不对。PAD图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,所以8不对。E—R图是数据库中的用于表示E—R模型的图示工具,所以D不对。根据图中所示表示方法是进行软件详细设计时使用的程序流程图。
20.A
21.类类解析:在面向对象的方法中,把具有相同属性和方法的对象称为类,类是对象的抽象,对象是类的实例。
22.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。
23.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。程序调试与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于调试工具找出软件错误的具体位置。软件测试贯穿整个软件生命期,而调试主要在开发阶段。
24.输出输出解析:测试用例曲测试输入数据(输入值集)和与之对应的预期输出结果(输出值集)两部分组成。
25.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本题要求将字符串str中的字符用冒泡排序算法从大到小排列,其实现过程是将相邻两个字符进行比较,如果当前字符小于下—个字符,则通过中间变量temp将字符两两交换,所以第一空应填:str[i],第二空应填:str[i+1]。最终打印输出得到的字符串str,所以第三空应填:'%s',str。
26.ACEACE解析:在本题中,for循环体每执行完一次,变量i的值自加两次。i的初值为\'a\',执行一次循环后变为\'c\',之后再变成\'e\',当其变为\'g\'时,循环条件若不满足,循环终止,故本题共输出3个字符。表达式'i-\'a\'+\ue008\'A\'\ue009'即表示输出i对应的大写字母,结果为ACE。
27.s%10*s1+t
28.文档文档解析:计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。
29.-4-4解析:if-else构造了一种二路分支选择,是一种最基本的选择结构,if(条件)S1(if分结构)elseS2(else分结构),它的工作过程是:先对条件表达式进行判断,若为真(成立,值为非零),就执行if分结构(S1);否则(不成立,值为0),就执行else分结构(S2)。本题中,n=O,可以判断(!n)为真,执行“x=x-1=2-1=1;m=1”,可以判断(m)为真,执行“x=x-2=1-2=-1;”进而可以判断(x)为真,执行x=x-3=-1-3=-4。所以,最后输出为-4。
30.int*ptb1[i].p*tb1[j].p<*tb1[j+1].p
31.0
32.00解析:解答本题需要注意表达式“k=0”,它是赋值表达式而不是关系表达式,不论k为何值,表达式k=0总会使k为0,所以不能进入循环。
33.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:
34.44解析:strcpy(s1,s2)函数的作用是将字符串s2中的内容拷贝到字符串s1中的内容覆盖。strlen()函数是求字符串的长度。本题实际上是要求s2字符串的长度,即是4。
35.数据库管理系统数据库管理系统(DBMS)
36.完整性控制完整性控制
37.软件开发
38.<y+1z*x
39.gaga解析:考查了用字符指针处理字符串的方法。用字符指针处理字符串,首先要使指针指向这个字符串,即题中的ptr1=a和ptr2=b,然后就是通过指针的移动可以引用到字符串中的每一个字符。题中的*(ptr1+k)是使指针ptr1向后移动k个位置,然后取出指向的字符。
40.passwarnpasswarn解析:n++是在执行完其所在的语句后再加1,因此,在执行case的时候,n的值依然为'c',执行case'c'后面的语句,先打印出“pass”;在执行完case'c'后,未遇到break跳出switch,便接着执行下面的语句,又打印出warn。所以此题输出结果是passwarn。
41.B解析:SEEK_END代表的是文件末尾,SEEK_SET代表的是文件的开始,SEEK_CUR代表的是文件当前位置。
42.A解析:选项A中10<a的结果是逻辑值0或1,再与15比较大小没有意义,因此错误。
43.D
44.CC。【解析】数据库系统(DBS)由数据库(DBS)、数据库管理系统(DBMS)、数据库管理员、硬件平台和软件平台五个部分组成,可见DB和DBMS都是DBS的组成部分。
45.B解析:该题目测试考生对宏替换的理解。这是一种简单的情况:不带参数的宏。关键要注意在对2*M+1进行宏替换时,要将宏名M原封不动地代进去,得到NUM的形式为2*N+1+1(千万不要随意给N+1加上小括号,使NUM变为2。(N+1)+1,这就是宏名和变量名之间的区别),在将N代进去,得到NUM的值为6。
46.D
47.C
48.C队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项A和选项B错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。所以,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则,选项C正确,选项D错误。
49.D解析:程序设计中,除了设计和编制出一个运行结果正确的程序之外,还应养成良好的程序设计风格。我们编制的程序主要是给别人看的,而且,所编制的程序主要是为以后看的。因此,选项A、B和C的说法都错误。
50.A解析:本题两次执行fun函数,第一次执行得f(3)=s=n-f(n-1)=3-f(2):第二次执行得s=2,通过传递返回值f(2)=2,所以s=3-2=1,即f(3)=1。
51.D解析:程序不仅是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。
52.C解析:软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念,它们具有抽象、模块化、信息隐蔽和数据独立性。自底向上是集成测试中增量测试的一种。
53.B
54.C(33)C)解析:题中变量w的定义为double型,函数fun2()的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。
55.A解析:条件表达式“a?b:c”的含义是:当a为真时,其值等于表达式b的值;当a为假时,其值等于表达式c的值。
表达式运算过程:第1个表达式:w=2<x=3为真,所以返回w的值,即m=w=2;第2个表达式:m=2<z=5为真,所以返回m的值,即m=2;第3个表达式:w=2<y=4为真,所以返回m的值,即m=2。
56.C解析:本题考查函数调用时的参数传递。函数的形参是函数定义时由用户定义的形式上的变量,实参是函数调用时,主调函数为被调函数提供的原始数据。在函数调用时,实参和其所对应的形参分别占用不同的存储单元,彼此之间不影响。
57.A解析:分析fun函数程序段,可知fun函数要实现的功能是将s中第(t+1)个元素以前的元素逆置赋给数组p。由于fun中函数定义了静态变量t=3,因此,在主函数中调用函数fun(a,&x)时,就是要将数组a中前4个元素逆置赋给数组x,最后输出x数组。
58.A解析:“/*”与“*/”之间的信息称为注释信息,在C语言中,允许在任何能够插入空格符的位置插入注释,但C语言的注释不能进行嵌套,故选项A正确;在C语言中,函数体是从花括号“{”开始,到花括号“}”结束.但没有规定花括号“{”和“}”只能作为函数体定界符,故选项B错误;选项C中前半句是正确的,在C程序中由有一个或多个函数所组成,但不是所有的函数都由用户自己命名,有些函数比如库函数,主函数main()就不能由用户来命名,故选C不正确;在C语言中明确规定每条语句以分号“;”结束,分号是语句不可缺少的一部分,故选项D不正确。所以,4个选项中选项A符合题意。
59.B解析:宏替换是先替换再运算返回结果,因此N的值为2,M的值为3,NUM的值=2*M+1=2*N+1+1=6,而不是:2*M+1=2*(N+1)+1=7。因此该循环只执行6次。
60.D解析:本题考查if语句中的一种表达方式,即:if…elseif…。
该表达式的语句是:
if(表达式1)
语句1
elseif(表达式2)
语句2
elseif(表达式3)
语句3
else
语句4
……
本题执行elsey=1.0,并且以“%f”输出。注意:条件表达式在if语句中的使用。
61.B\r\n
62.C循环链表是另一种形式的链式存储结构。表中最后一个结点的指针域指向头结点,整个链表形成一个环。这种循环链表的好处是从任意结点开始都可以找到其他结点。
循环链表的操作和线性链表基本一致,差别仅在于链表最后的结点,线性链表的判断条件是结点的指针域是否为“空”,而循环链表的判断条件是结点的指针域是否指向头结点。非空的循环单链表head的尾结点p满足p->next=head。
63.Ado{*t++=}S++;}while(*S);不能因为当*s=’、0。时,while(*s)跳出循环,这样字符串结束标志’、0’没有复制给}t,造成}t不完整。注意,*t++=*s++是先执行t=*s,然后才进行t=t+1,s=s+1。B、C、D都能将。\0’复制过去
64.B
65.D本题中,程序开始定义了一个全局数组a,并对这个数组进行赋初值。在主函数中,定义一个整型变量i和一个整型指针变量p,并使指针变量p指向全局数组a的首地址。然后执行for循环,循环变量i的初值为0,循环结束条件为变量i的值大于等于4,循环变量i的值每循环一次自加1,通过这些分析我们知道,循环执行了4次结束。
第一次循环时,由于*p表示数组的第一个元素值2,那么执行a[i]=*p;语句,即将数组的第一个元素变为2;第二次循环时,由于i为1,即将数组的第二个元素变为2,同理,第三次与第四次循环分别将数组的第三和第四个元素值变为2。
循环结束,程序执行输出语句,这时数组中所有元素的值都为2。因此,程序最后的输出结果是2。
66.D++(或——)的运算结果是使运算对象增1(或减1);运算对象可以是整型变量、实型变量,也可以是字符型变量,但不能是常量或表达式。++(或——)的结合方向是”自右向左”。
67.C
68.C
69.C
70.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年浙江大学医学院王晓健团队招聘科研助理备考题库完整参考答案详解
- 2025年上林县明亮镇卫生院口腔科医师招聘备考题库及一套参考答案详解
- 安全生产综合应急预案(3篇)
- 2025年渭南市“县管镇聘村用”专项医疗人才招聘41人备考题库及答案详解参考
- 2025年中国煤炭地质总局河北省招聘备考题库含答案详解
- 2025年中国铁路南昌局集团有限公司招聘494人备考题库及参考答案详解
- 毕节七星关东辰实验学校2026年教师招聘备考题库及答案详解参考
- 2025年辽宁大唐国际阜新煤制天然气有限责任公司招聘备考题库及一套答案详解
- 2025年宁波市鄞州高级中学公开招聘事业编制教师备考题库及参考答案详解一套
- 2025年武汉大学遥感备考题库工程学院高精度智能遥感卫星课题组招聘备考题库及一套参考答案详解
- 2026年元旦校长致辞:骐骥驰骋启新程智育赋能向未来
- 2025国家统计局齐齐哈尔调查队招聘公益性岗位5人笔试考试备考试题及答案解析
- 看管牛羊合同范本
- 2025上海崇明区事务性辅助人员招聘7人笔试备考题库带答案解析
- 2025年东营市总工会公开招聘工会社会工作者(25人)笔试考试备考题库及答案解析
- 污水处理厂设备更新项目社会稳定风险评估报告
- 全国人大机关直属事业单位2026年度公开招聘工作人员考试模拟卷附答案解析
- 人社局公益性岗位笔试题目及答案
- 2026全国人大机关直属事业单位招聘50人笔试考试备考题库及答案解析
- 2026年烟花爆竹经营单位主要负责人证考试题库及答案
- 2025秋统编语文八年级上册14.3《使至塞上》课件(核心素养)
评论
0/150
提交评论