




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年宁夏回族自治区吴忠市全国计算机等级考试C语言程序设计真题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列程序的输出结果是______。#include<stdio.h>main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}
A.3B.3.2C.0D.3.07
2.若有定义inta=12,n=5,则表达式a%=(n%2)运算后,a的值()。
A.0B.1C.12D.6
3.程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系
4.下列算法中,()算法用来求图中某顶点到其他顶点所有顶点之间的最短路径。
A.DijkstraB.FloyedC.PrimD.Kruskal
5.设有定义:“inta;floatb;”,执行“scanf("%2d%f",&a,&b);”语句时,若从键盘输入876543.0<回车>,a和b的值分别是()。
A.876和543.000000
B.87和6.000000
C.87和543.000000
D.76和543.000000
6.C语言提供的合法的数据类型关键字是()。
A.DoubleB.shortC.integerD.Char
7.
8.两个或两个以上模块之间联系的紧密程度称为()。
A.耦合性B.内聚性C.复杂性D.数据传输特性
9.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen("myfile,dat","");{puts("abe",ip);fclose(fp);fp=fopen("myfile.dat","a*");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%S",str);puts(str);fclose(fp);}程序运行后的输出结果是()。A.abcB.28cC.abc28D.内类型不一致而出错
10.下列选项中,能够满足“只要字符串s1等于字符串S2,则执行ST”要求的是()。
A.if(s1-s2==0)ST;
B.if(s1==s2)ST;
C.if(strcpy(s1,s2)==1)ST;
D.if(strcmp(s2,s1)==0)ST;
11.用单链表方式存储的线性表,存储每个结点需要两个域,一个数据域,另一个是()。
A.当前结点的所在地址B.后继结点的所在地址C.空指针域D.空闲域
12.请阅读以下程序:#include<stdio.h>voidfun(ints[]){staticintj=0;dos[j]+=s[j+1];while(++j<2);}main(){intk,a[10]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}上面程序的输出是
A.34756B.23445C.35745D.12345
13.设有定义:intn=0,*p=&n,**q=&p;则下列选项中正确的赋值语句是()。
A.p=1;B.*q=2;C.q=p;D.*p=5;
14.数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放的存储器内,该数组按行存放,元素A[8][5]的起始地址为()。
A.SA+141B.SA+144C.SA+222D.SA+225
15.若要说明一个类型名STP,使得定义语句STPs;等价于Char*s;,以下选项中正确的是()。
A.typedefChar*s;
B.typedefChar*STP;
C.typedefSTP*Char;
D.typedef*CharSTP;
16.有以下程序:#include<stdio.h>main(){inti,data;scanf(“%d”,&data);for(i=0;i<8;i++){if(i<=data)continue;printf(“%d,”,i);}}程序运行时输入5并按〈Enter〉键,则程序输出结果为()。
A.5,6,7,B.0,1,2,3,4,C.6,7,D.6,7,8,
17.字符串"alibaba"的二进制哈夫曼编码有多少位()
A.11B.12C.13D.14
18.以下程序的输出结果是_______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;print("%d%d%d,a[2],a[5],a[8]);}
A.258B.741C.852D.369
19.以下关于注释的叙述中错误的是()。
A.注释的边界符号“/”和“*”之间不允许加入空格
B.C语言允许注释出现在程序中任意合适的地方
C.注释的内容仅用于阅读,对程序的运行不起作用
D.注释的边界符号“/*”和“*/”必须成对出现且可以嵌套
20.执行下列程序中的输出语句后,a的值是()。main{inta;printf(“%d\n”,(a=2*3,a*5,a+7));}A.17B.37C.6D.13
二、2.填空题(20题)21.为了列出当前盘当前目录中所有第三个字符为C的文件名的有关信息,应该使用命令【】。
22.下列程序段的运行结果是______。
charstr口="ABCD",*p=str;
printf("%d\n",*(p+3));
23.执行以下程序后的输出结果是【】。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
24.数据结构分为逻辑结构与存储结构,线性链表属于【】。
25.若输入21、23、34、11、2、6,则以下程序的运行结果【】。
main()
{inti;
char+p,num[6];
for(i=0;i<5;i++)
scanf("%d,",&num[i]);
scanf("%d",&num[5]);
p=&num[0];
sort(p,6);
for(i=0;i<5;i++)printf("%d,",num[i]);
printf("%d\n",num[5]);
}
sort(p,m)
char*p;
intm;
{inti;
charchange,*p1,*p2;
for(i=0;i<m/2;i++)
{p1=p+i;
p2=p+(m-1-i);
change=*p1;
*p1=*p2;
*p2=change;
}
}
26.设有定义“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc【】a。
27.函数count(head)统计链表的结点个数,head为表头指针,阅读程序,要求将整个if语句改成while循环控制结构,其形式为【】。
#include<stdio.h>
intcount(NODE*head)
{intn=0;
if(head!=NULL)
do
{n++;
head=head->next;
}while(head!=NULL);
returnn;}
28.一个算法的空间复杂度是指该算法所耗费的【】。
29.下列程序的输出结果是______。
#defineP(A)printf("%d,",(int)(A))
#definePRINT(A)P(A);printf("theend")
main()
{inti,a=0;
for(i=1;i<5.i++)
PRINT(a+i);
printf("\n");
}
30.以下程序的功能是:处理由学号和成绩组成的学生记录,N名学生的数据已在主函数中放入结构体数组s中,它的功能是:把分数最高的学生数据放在h所指的数组中,注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。请填空。
#include<stdio.h>
#defineN16
typedefstruct
{charnum[10];
ints;
}STREC;
intfun(STREC*a,STREC*b)
{inti,j=0,max=a[0].s;
for(i=0;i<N;i++)
if(max<a[i].s)max=a[i].s;
for(i=0;i<N;i++)
if(【】)b[j++]=a[i];
returnj;
}
main()
{STRECs[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},
{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},
{"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}
};
STRECh[N];
inti,n;FILE*out;
n=fun(s,h);
printf("The%dhighestscore;\n",n);
for(i=0;i<n;i++)
printf("%s%4d\n",h[i].num,h[i].s);
printf("\n");
out=fopen("out15.dat","w");
fprintf(out,"%d\n",n);
for(i=0;i<n;i++);
fprintf(out,"%4d\n",h[i].s);
fclose(out);
}
31.在结构化分析使用的数据流图(DFD)中,利用【】对其中的图形元素进行确切解释。
32.以下程序的输出结果是【】。
main()
{
intp[7]=(11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
33.要求使下列程序输出5个整数,请填空。
for(i=0;i<=______;printf("%d\n",i+=2));
34.若从键盘输入58,则以下程序的输出结果是【】。
main()
{inta;
scanf(“%d”,&A);
if(a>50)printf(“%d”,A);
if(a>40)printf(“%d”,A);
if(a>30)printf(“%d”,A);
}
35.以下程序的输出结果是______。
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
36.若有语句
inti=-19,j=i%4;
printf("%d\n",j),
则输出的结果是______。
37.衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准,其中()是度量一个模块功能强度的一个相对指标。
38.以下函数的功能是删除字符串s中的所有数字字符。请填空。
vioddele(char*s)
{intn=0,i;
for(i=0;s[i];i++)
if(______)
s[n++];s[i];
s[n]=______;
}
39.与十进制数101等值的二进制数为【】。
40.若有以下程序:
main()
{int,p,a=5;
if(P=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
执行后输出结果是【】。
三、1.选择题(20题)41.若有定义intw[3][5];,则以下不能正确表示该数组元素的表达式是A.*(*w+3)B.*(*w+1)[4]C.*(*(*w+1))D.*(&w[0][0]+1)
42.已知函数的调用形式:fread(buf,size,count,fp),参数buf的含义是
A.一个整型变量,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针,指向要读入数据的存放地址
D.一个存储区,存放要读的数据项
43.有以下程序:#include<stdio.h>voidfun(int*s,intnl,intn2){inti,j,t;i=nl;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,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序运行的结果是()。
A.9.87654e+008B.4.3211e+009C.5.6789e+009D.9.87651e+008
44.有以下程序:#include<stdio.h>main(){FLLE*fp;inti=20,j=30,k,n;fp=fopen("d1.dat""w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("d1.dar","r");fp=fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);)程序运行后的输出结果是()。
A.2030B.2050C.3050D.3020
45.数据库管理系统中用来定义模式、内模式和外模式的语言为()。
A.CB.BasicC.DDLD.DML
46.有定义语句:ihtb;charc[10];,则正确的输入语句是
A.scanf("%d%s",&b,&c);
B.scanf("%d%s",&b,c);
C.scanf("%d%s",b,c);
D.scanf("%d%s",b,&c);
47.软件测试是软件开发过程中重要且不可缺少的阶段,测试过程中的______是基础测试。
A.系统测试B.有效性测试C.单元测试D.集成测试
48.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为______。
A.n-1B.nC.n+1D.2n
49.有以下定义语句
doublea,b;intw;longc;
若各变量已正确赋值,则下列选项中正确的表达式是A.a=a+b=b++B.w%(int)a+b)C.(c+w)%(int)aD.w=a==b;
50.有以下程序
main()
{inti=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d%d%d\n",i,j,k);
}
程序运行后的输出结果是()
A.123
B.234
C.223
D.233
51.以下叙述中错误的是()
A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B.在程序结束时,应当用fclose函数关闭已打开的文件
C.在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D.不可以用FILE定义指向二进制文件的文件指针
52.有以下程序:#include<stdio,h>main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下叙述中正确的是()。
A.程序输出大写字母MB.程序输出小写字母mC.格式说明符不足,编译出错D.程序运行时产生出错信息
53.有以下程序:inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t+=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("%d\n",s);}程序运行后的输出结果是()。
A.24B.28C.32D.36
54.编制一个好的程序,首先要保证它的正确性和可靠性,还应强调良好的编程风格,在书写功能性注释时应考虑
A.仅为整个程序作注释B.仅为每个模块作注释C.为程序段作注释D.为每个语句作注释
55.以下有四组用户标识符,其中合法的一组是()
A.For-subCase
B.4dDOSize
C.f2_G3IFabc
D.WORDvoiddefine
56.对表达式for(表达式1;;表达式3)可理解为()。
A.for(表达式1;0;表达式3)
B.for(表达式1;1;表达式3)
C.for(表达式1;表达式1;表达式3)
D.for(表达式1;表达式3;表达式3)
57.以下叙述中不正确的是
A.在不同的函数中可以使用相同的名字的变量
B.函数中的形式参数是局部变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效
58.有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向此链表中的3个连续结点。structnode{intdata;structnode*next;}*p,*q,*r;
现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是
A.p->next=q->next;
B.p-next=p->next->next;
C.p->next=r;
D.p=q->enxt;
59.模块本身的内聚是模块独立性的重要性度量因素之一。在7类内聚中,具有最强内聚的—类是______。
A.顺序性内聚B.过程性内聚C.逻辑性内聚D.功能性内聚
60.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf(“%d,%d\n”,m,i);}执行后的输出结果是
A.8,6B.8,3C.6,4D.7,4
四、选择题(20题)61.
62.软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程
B.软件从需求分析、设计、实现到测试完成的过程
C.软件的开发过程
D.软件的运行维护过程
63.若有定义语句:doublea,*p=&a;,以下叙述中错误的是()。
A.定义语句中的*号是一个间址运算符
B.定义语句中的*号只是一个说明符
C.定义语句中的P只能存放double类型变量的地址
D.定义语句中,*p=&n把变量a的地址作为初值赋给指针变量P
64.以下程序运行后的输出结果是()。
A.2011B.99C.209D.1111
65.下列关于C语言数据文件的叙述中正确的是______。
A.文件由ASCII码字符序列组成,C语言只能读写文本文件
B.文件由二进制数据序列组成,C语言只能读写二进制文件
C.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
D.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
66.当把以下四个表达式用做if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是()。
A.k%2B.k%2==1C.(K%2)!=0D.!k%2==1
67.
有以下程序:
main
{inta=0,b=l0,c=0,d=0;
if(a=1)b=1;c=2;
elsed=3;
printf("%d,%d,%d,%d\n",a,b,C,d);
}
程序输出()。
A.0,1,2,0B.0,0,0,3C.1,1,2,0D.编译有错
68.以下程序的输出结果是()。main{inta[3][3]=“l,2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21
69.有以下程序程序的运行结果是()。
A.321678B.876543C.1098765D.345678
70.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。
A.aut0和register
B.extem和register
C.auto和static
D.static和register
71.有以下程序:
程序运行后的输出结果是()。
A.16B.1C.32D.0
72.
73.程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系
74.
75.有以下程序:
I程序运行后的输出结果是()。
A.0B.3C.7D.8
76.在关系数据库中,用来表示实体之间联系的是()。
A.二维表B.E—R图C.元组D.文件
77.若在定义语句:
78.以下4个选项中,不能看作一条语句的是()。
A.;B.a=5,b=2.5,c=3.6;C.if(b!=5)x=2;y=6;D.returnj;
79.有以下程序:
程序的运行结果是()。
A.0987654321
B.4321098765
C.5678901234
D.0987651234
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:利用插入排序法对字符串中的字符按从大到小的顺序进行排序。插入法的基本方法是:先对字符串中的头两个元素进行排序,然后把第3个字符插入前2个字符中,插人后前3个字符依然有序,再把第4个字符插入前3个字符中,待排序的字符串已在主函数中赋予。例如,原始字符串为“goodluck”,则排序后的字符串为“uoolkgdc”。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为“****A*BC*DEF*G****”,删除后,字符串中的内容应当是“ABCDEFG”。
注意:部分源程序给出如下。
请勿改动maini)函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
voidfun(chara)
{
voidmain
{
chars[81];
print{("Enterastring:\n");
gets(s):
fun(S);
printf("Thestringafterdeleted:\n");
puts(s);
}
参考答案
1.C
2.A
3.C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:→或↓表示控制流;□表示加工步骤;
表示逻辑条件。
4.A
5.B本题考查scanf函数,输入格式符%2d%f表示只接收了字符,其中a输入的值为2位的十进制整数,即87,然后将紧接着的6赋给b,因为b的值为单精度数在,即6.000000,故选择B选项。
6.Bdouble,char,int,第一个字母都是小写。
7.B
8.A解析:耦合性是模块间互相连接的紧密程度的度量,取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。
[知识拓展]模块的独立程序是评价设计好坏的一个重要标准,衡量软件的模块独立性有两个定性的度量标准。其中内聚性是指一个模块内部各个元素间彼此结合的紧密程度的度最,内聚性是从功能角度来度量模块内的联系;耦合性是模块间互相连接的紧密程度的度量,耦合性从整体的角度来度量模块间的联系。
9.C本题考查文件的操作,首先打开文件,进行写操作,把“abc”写入“myfile”文件,再打开“myfile.data"文件,输入28,在键盘上接收字符,输出并关闭文件。本题结果为abc28。
10.D在C语言中,对两个字符串进行比较,使用字符串比较函数strcmp。如果这个函数的返回值等于0,说明两个字符串相等。故本题答案为D选项。
11.B
12.C解析:本题考查了通过数组首地址引用数组元素的方法。第一次执行fun(a)后,a[0]=3,a[1]=5。第二次执行fun(a)时,因为static变量j保存着上次执行时的值为2,所以a[2]=7,最后数组a={3,5,7,4,5},所以正确答案为C)。
13.D解析:选项A),B),C)的指针赋值表达方式都不正确,*p=5表达整数5放到指针p所指向的存储单元中。注意:通过指针引用一个存储单。
14.C
15.B用关键字typedef声明一种新的类型的形式为typedef类型名标识符。本题中的类型为char*。
16.Cmain函数首先定义一个整型变量data,使用scanf函数输入一个整数赋给data。接着执行for循环,i的值为0~7。当i的值不大于data的值时,使用continue语句跳过当前循环,进入下一轮循环。若从键盘输入5,data的值为5,i取值为0~5时,都不执行printf语句。当i取值为6、7时,执行printf语句,输出6,7。故本题答案为C选项。
17.C
18.C解析:在本题运行时主要注意的是当i=9时,a[i]=10-9=1:i=8时,a[i]=10-8=2;i=7时,a[i]=10-7=3;……依此类推,直到i=0时,a[i]=10-0=10:此时,i的值已变为-1,判断for的循环条件,不成立,然后输出a[2],a[5],a[8]分别为8,5,2。
19.D在编写程序时可以在程序中加入注释。在添加注释时,注释内容必须放在符号“/*”和“*/”之间,“/*”和“*/”必须成对出现,“/*”与“*/”之间不可以有空格,选项A正确;注释可以用英文,可以用中文,可以出现在程序中任意合适的地方,选项B正确;注释部分只适用于阅读,对程序的运行不起作用,选项C正确;使用“/*”和“*/”的注释之间不可再嵌套“/*”和“*/”,选项D错误。故本题答案为D选项。
20.C本题考查逗号表达式。程序输出时输出一个%d,所以输出第一个a的值与后续无关。本题考查逗号表达式。本题的返回值是a+7,a=2*3=6,a+7=13(注意:本题问的是a的值,而不是程序的输出值)。
21.DIR??C*.*
22.6868解析:本题考查如何用指针引用数组元素。本题先定义了一个指向字符型数组str的指针p,指针p指向数组str的首地址,p+3将指针指向str[3],*(p+3)指的是字符“D”,输出时是以“%d,格式输出的,即输出其相应ASCII码值68。
23.a=14a=14解析:逗号表达式的值是以逗号分隔的最后一个表达式的值。所以题目中的语句a=(3*5,a+4);就等价于a=a+4;。故本题输出结果是a=14。
24.存储结构
25.6211342321
26.->->解析:若结构体变量abc有成员a,并有指针p_abc指向结构变量abc,则引用变量abc成员a的标记形式有abc.a和p_abc->a。
27.while(p!=NULL){n++;head=head→next;}while(p!=NULL){n++;head=head→next;}解析:do…while循环转化为while循环,循环体执行的内容应该是一致的,不同的是do…while结构是先执行一次循环体,然后再判断循环条件是否满足,而while循环则是先判断循环条件是否满足,满足则执行循环体。所以do…while循环结构若想转换为while循环结构,必须在do…while循环之前先对循环条件进行一个判断,即此题中的if(head!=NULL)。注意:3种循环结构的比较。
28.存储空间存储空间解析:空间复杂度是指算法在执行过程中临时占用的存储空间大小,包括:①算法本身所占用的存储空间;②算法的输入输出数据所占用的存储空间;③算法在运行过程中临时占用的存储空间。
29.1234theend1,2,3,4,theend解析:本题考查带参数的宏的定义。第1次循环,i=1时,调用PRINT(1),P(1)输出1;第2次循环,i=2时,调用PRINT(2),P(2)输出2:第3次循环,i=3时,调用PRINT(3),P(3)输出3:第4次循环,i=4时,调用PRINT(4),P(4)输出4,theend。
30.max==a[i].smax==a[i].s解析:该程序使用循环嵌套,第1个for语句的作用是找出最大值。第2个循环的作用是找出与max相等的成绩,也即最高成绩的学生,并存入b中。
31.数据字典或DD数据字典或DD解析:数据流图用来对系统的功能需求进行建模,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。数据词典(DataDictionary,DD)用于对数据流图中出现的所有成分给出定义,它使数据流图上的数据流名字、加工名字和数据存储名字具有确切的解释。
32.2424解析:本题程序定义了一维数组p,有七个数组元素,整型变量i,j初值分别为0,当while的条件表达式(i<7&&p[i]%2=1)的值为真时,执行语句j+=p[i++];,如:当i=0时,i<7为真,p[i]%2=11%2=1,表达式(p[i]%2=1)的值为真,所以接个表达式(i<7&&p[i]%2=1的值为真,执行j=j+p[i++]=0+11=11,i=1;,依此类推可以得出答案24。
33.88解析:本题考查基本的for循环条件,i+=2表示i每次递增2,从0开始,输出5个整数则需要的条件是i<=8。
34.585858585858解析:在程序中,执行scanf()语句后,a被赋值为58。接着执行第一个if语句,因为,a=58>50,执行第一个if语句后面的输出语句,输出58;接着执行第二个if语句,因为,a=58>40,执行第二个if语句后面的输出语句,输出58;接着执行第三个if语句,因为,a=58>30,执行第三个if语句后面的输出语句,输出58,所以最后的输出为585858。
35.246
36.-3-3解析:本题考核的知识点是运算符“%’的应用。该运算符是求两个数相除的余数,其结果与被除数的符号一致,本题中“-19%4”的值为“-3”,所以说空格处应该填-3。
37.内聚性内聚性解析:模块的独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。内聚性是度量一个模块功能强度的一个相对指标,耦合性则用来度量模块之间的相互联系程度。
38.s[i]<'0'‖s[i]>9或!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))isdigit(s[i])==0或s[i]>'9'‖s[i>'0'或!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'‖*(s+i)>'9'或!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或*(s+i)>='9'&&*(s+i)<='0'!(*(s+i)<='9'&&*(s+i)>='0'或iss[i]<'0'‖s[i]>9,或\r\n!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))\r\nisdigit(s[i])==0或s[i]>'9'‖s[i>'0'或\r\n!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'‖*(s+i)>'9'或\r\n!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或\r\n*(s+i)>='9'&&*(s+i)<='0'\r\n!(*(s+i)<='9'&&*(s+i)>='0'或is解析:本题考核的知识点是字符指针变量作为函数的参数以及与字符串有关的算法。从一个字符串中删除某字符的方法是从字符串的第一个字符开始一一判断该字符是否是要删除的字符,若不是则把它放到结果字符串中,若是则不放入结果字符串中。本题的第一个空应判断a[i]是否为数字字符,只有在不是数字字符的情况下才存入结果字符串,所以应填入s[i]<'0'‖s[i]>'9'。最后应在结果字符串的末尾填上字符串结束标志“\\0”。
39.1100101
40.11解析:首先计算if语句后面的表达式,根据运算符的优先级可知,先算“a!=0”,该值为1,再把1赋值给p,结果为1(真),执行其后的printf语句,输出的值为1。
41.C在C语言中,二维数组的名字表示的是二维数组的地址,表达式*(W+1)表示的是二维数组的第一行的第二个元素。在其前面再加上*(*(w+1))就是错误的表达式。
42.C本题主要考查成块读函数fread。在C语言中,提供了一种成块的读写方式来操作文件,使其数组或结构体等类型可以进行一次性读写。成块读文件函数的调用形式为:
intfread(void*buf,intsize,intcount,FILE*stream)
fread()函数的意思是从stream指向的流文件读取count(字段数)个字段,每个字段为size(字段长度)个字符长,并把它们放到buf(缓冲区)指向的字符数组中,然后进行读取操作。fread()函数返回实际已读取的字段数。
从上面的分析我们可以知道,参数buf是一个无返回类型的指针,指向要读入数据的存放地址,它其实是一个缓冲区。因此本题正确的答案选C。
43.C解析:函数fun的功能是:将数组s中从n1至n2的元素首尾互换,然后将第2个和倒数第2个元素互换,依次类推,其实也就是将原来的元素倒置。执行fun(a,0,3);将数组a中的第0~3个元素互换,结果为4321;执行fun(a,4,9);将数组a中的第4~9个元素互换,结果为098765。此时a中的元素依次为4321098765,执行fun(a,0,9);再次将这10个元素倒置,结果为5678901234。
44.A解析:本题首先以创建方式打开文件d1.dat,两次调用fpnntf()把i和j的值写到文件d1.dat中,文件d1.dat的内容为20<回车>30<回车>后把该文件关闭再以读的方式打开,文件位置指针指向文件头,再通过fscanf()函数从中读取两个整数到k和n中,由于格式符无间隔,因此输入数据可以用回车隔开,故输入的k值为20,n值为30。所以4个选项中A正确。
45.C解析:选项A),B)显然不合题意。数据定义语言(DataDefinitionLanguage,简称DDL)负责数据的模式定义与数据的物理存取构建;数据操纵语言(DataManipulationLanguage,简称DML)负责数据的操纵,包括增、删、改等操作。
46.B解析:定义b为整型数,c为字符数组,所以在输入语句的地址表列中,要在b前加上取址符“&”,而c就是字符数组的首地址,所以不用加上取址符&。
47.C
48.C解析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。
49.C解析:选项A不是合法的赋值语句,将最右边的第一个赋值表达式加括号即为a=a+(b=b++)才正确,故选项A不正确。选项B中运算符%的对象必须是整型,而在选项B中(int)a+b为double型,故选项B不正确。a,b都为double型,应当避免使用a==b这样的关系表达式,因为通常存放在内存中的实型数据是有误差的,因此不可能精确相等,这将导致关系表达式a==b总为0。所以,4个选项中选项C符合题意。
50.D解析:根据优先级顺序,先计算内层括号的值。j自加1等于3,所以++j==3成立,表达式为1,由于1“|”任何数都为1,所以不用计算“||”后面的表达式,所以k=3,最后计算“&&”之前的表达式,i先进行判断再自加1,所以i++==1成立,自加1后i=2。if语句的条件为“1”,所以输出i、j、k的值分别是2,3,3。
51.D解析:顺序文件只能从头读写,二进制文件可以随机读写,选项A正确:文件在使用后应关闭,当程序结束时,应当把打开的文件关闭,选项B正确:用fread()函数可以一次性地读取同类型的很多数据,选项C正确;在C语言中指向各种文件的文件指针都是通过FILE来定义的,故选项D是错误的。所以4个选项中选D
52.B解析:本题输出的是逗号表达式的值,即a2的值m。
53.B解析:题目中第1行声明了一个全局变量a,在函数f()中,也声明了一个静态变量a,这时全局变量被屏蔽,即在f()函数中用到的a是其内部定义的这个静态变量a,而不是全局变量。但f()函数的if子句和else子句又分别了局部变量a,这时静态变量a又被屏蔽,即在if子句中使用的是if子句自己定义的a,else子句也是这样。在主函数中,通过for语句连续执行了2次f()函数,并将返回值累加到s中,且s被全局变量a初始化,即初始值是4。第1次调用f(),参数值为0,0能被2整除,执行if子句,t被自增6,a增1不会影响外面的变量a。函数返回t和静态变量a的和,即11,此时,静态变量a被增1,这次对a的改变会带入到下一次f()函数的调用小去。第2次调用f(),参数值为1,1不能被2整除,执行else子句,t被自增7,a增1不会影响外面的变量a。函数返回t和静态变量a的和,此时a的值为上次调用f()时增1后的值6,即返回7+6=13。所以,主函数中s现在的值为4+11+13=28。故应该选择B。
54.C解析:功能性注释是嵌在源程序体中的,用以描述其后的语句或程序段是在做什么工作,或者执行了下面的语句会怎么样。所以它描述的是一段程序,是为程序段做注释,而不是每条语句。
55.C
56.B在本题中,for循环结构缺省了表达式2,而表达式2的作用是用来判断循环是否结束,在缺省该语句的情况下,循环将无法结束,从题目给出的四个循环结构我们可以看出,能构成死循环的是选项B,该选项中for结构的表达式2一直为1,即真,这样循环就无法结束。因此,本题正确的答案选B。
57.D解析:C语言在函数中说明的变量为局部变量,只在函数内起作用但不会影响到其他函数。所以在不同的函数中使用相同的函数名不代表是同一函数,A)项正确。在函数定义时声明的参数只在函数内部起作用,是函数的局部变量,B)正确。在一个函数中定义的变量是这个函数的局部变量,所以只在这个函数内起作用,C)正确。复合语句中定义的变量其作用域是这个复合语句,不会扩大到整个函数,所以D)项错误。注意:函数的书写风格。
58.D解析:本题考查链表结点的删除。q->next中存放的是r所指结点的首地址,将r所指结点的首地址存于p->next中,则实现删除q所指结点的功能,并保持链表连续,p所指结点与r所指结点相连。
59.D解析:内聚性是一个模块内部各元素间彼此结合的紧密程度的度量。内聚共有7类,它们之间的内聚性由弱到强排列顺序为:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚。
60.C解析:在复合赋值语句中,应该由右向左依次赋值,在表达式中,右端由i*=k得i=2*2为4,k=k+i,即k值为6,m=k故m=6。
61.D
62.A通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
63.C\ndoublea,*p=&a语句的意思是将a的值存放到指针变量P中,P是指针可以随意指向任何地址,所以答案C错误。
\n
64.Astden返回的是不包括\\0在内的数组
65.C文件一般指存储在外部介质上数据的集合。C语言把文件看做是一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 管道工程法律法规政策学习与应用考核试卷
- 纺织品批发商物流配送网络优化考核试卷
- 纺织品供应链管理考核试卷
- 渔业资源养护与海洋资源全球合作机制加强考核试卷
- 电视节目的虚拟现实与增强现实体验考核试卷
- 植物油加工厂的智能化生产调度优化考核试卷
- 硅冶炼厂的工艺优化与产能提升考核试卷
- 煤炭行业技术创新与研发考核试卷
- 涤纶纤维在防油地毯材料中的应用考核试卷
- 眼科光学相干断层扫描设备考核试卷
- GB/T 5534-2024动植物油脂皂化值的测定
- 养老院消防预案和应急预案
- 2024年大学生心理健康知识竞赛题库及答案共180题
- 精神残疾人康复培训
- 夫妻忠诚协议书(完整版)
- 水利基础理论知识单选题100道及答案解析
- 2024年面向双高电力系统发展需求的柔性直流输电技术报告
- 发酵类制药工业水污染物间接排放标准DB41 758-2012
- 2025年中考历史复习专项训练:中国近代史材料题40题(原卷版)
- 2024年手工木工职业技能竞赛理论考试题库-下(多选、判断题)
- 2024上半年浙江杭州市临平区机关事业单位编外用工招聘61人历年高频500题难、易错点模拟试题附带答案详解
评论
0/150
提交评论