




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年内蒙古自治区赤峰市全国计算机等级考试C语言程序设计真题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()操作。
A.h->next=s;
B.s->next=h;
C.s->next=h;h->next=s;
D.s->next=h->next;h->next=s;
2.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。
A.13B.33C.18D.40
3.程序设计的任务包括()。
A.编写程序代码并上机调试B.确定所用数据结构C.确定所用算法D.以上选项均正确
4.以下可以正确且安全地用作用户标识符的一组选项是()。
A._32int,long64B.Switch,unsignedC.Abc,getchD.3break,enter
5.设a、b和、c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式为()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
6.图的深度优先遍历类似于二叉树的_______。
A.先序遍历B.中序遍历C.后序遍历D.层次遍历
7.下列合法的声明语句是()。
A.intabc=50;
B.doubleint=3+5e2.5;
C.longdo=1L;
D.float3asd=3e一3;
8.设有定义:intx[2][3];,则以下关于二维数组X的叙述错误的是()。
A.x[0]可看做是由3个整型元素组成的一维数组
B.x[0]和x[l]是数组名,分别代表不同的地址常量
C.数组X包含6个元素
D.可以用语句x[o]=0;为数组所有元素赋初值0
9.下列字符数组初始化语句中,不正确的是()。A.A.charc[]='goodmorning';
B.charc[20]="goodmorning";
C.charc[]={'a','b','c','d');
D.charc[]={"ffgoodmorning"};
10.有以下程序执行程序时,给变量X输入l0,程序的输出结果是()。
A.55B.54C.65D.45
11.下列叙述中错误的是()。
A.线性表是由n个元素组成的一个有限序列
B.线性表是一种线性结构
C.线性表的所有结点有且仅有一个前件和后件
D.线性表可以是空表
12.设s1="Good",s2="",s3="Bye",则s1、s2和s3连接后的结果是()。
A.GoodB.GoodByeC.GoodByeD.Bye
13.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是A.6.5B.6C.5.5D.6
14.若需要0(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择排序方法是()。A.快速排序B.堆排序C.归并排序D.直接插入排序
15.软件工程的出现是由于()。A.A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展
16.下列程序的输出结果是()。voidfun(int*X,inty){printf("%d%d",*x,*y);*x=3;*y=1;}main{intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}A.2143B.1212C.1234D.2112
17.链表不具有的特点是A.A.不必事先估计存储空间
B.可随机访问任一元素
C.插入和删除不需要移动元素
D.所需空间与线性表长度成正比
18.有以下程序
#include<stdio.h>
main()
{charb,c;inti;
b=‘a’;c=‘A’;
for(i=0;i<6;i++)
{if(i%2)putchar(i+b);
elseputehar(i+c);
}printf(“\n”);
}
程序运行后的输出结果是A.ABCDEFB.AbCdEfC.aBeDeFD.abcdef
19.下列选项中合法的赋值语句是()。
A.a=b=34B.a=34,b=34C.i-1;D.m=(int)(x+y);
20.有以下结构体说明、变量定义和賦值语句:structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];则下列scanf函数调用语句有错误的是()。
A.scanf(“%s”,s[0].name);
B.scanf(“%d”,&s[0].age);
C.scanf(“%c”,&(ps->sex));
D.scanf(“%d”,ps->age);
二、2.填空题(20题)21.执行以下程序时,若输入end<回车>,则输出结果是【】。
main()
{charch[10]="Begin";
gets(&ch[1]);puts(ch);
}
22.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。
23.下列程序的输出结果是【】。
main()
{inti;
for(i=1;i=1;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
24.以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值,请填空。
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(1=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*bar)
{inti,j,x;
for(i=0;i<m;i++)
{x=ar[i][0];
for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];
【】=x;
}
}
25.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。
26.阅读下面语句,则程序的执行结果是【】。
#include"stdio.h"
main()
{inta=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d,%d\n",a,b);
elseprintf("%d,%d\n",b,a);}
27.下列程序中的函数stropy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如,若t所指字符串为:efgh,调用strcpy2后,s所指字符串为:efghefgh。请填空。
#include<stdio.h>
#include<string.h>
voidstrcpy2(char*s,char*t)
{char*p=t;
while(*s++=*t++);
s=【】;
while(【】=*p++);
}
main()
{charstr1[100]="abed",str2[]="efgh";
strcpy2(str1,str2);printf("%s\n",str1);
}
28.在算法的4个特性中,算法必须能在执行有限个步骤之后终止指的是算法的______特性。
29.以下程序中给指针p分配三个double型动态内存单元,请填空。
#include<stdio.h>
main()
{dOuble*p;
p=(double*)malloc();
p[0]=1.5;p[1]=2.5;p[2]=3.5
printf("%f%f%f\n",p[0],p[1],p[2]);
}
30.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是
【】。
#include<stdio.h>
main()
{chara,b;
a=getchar();scanf("%d",&b);
a=a-'A'+'0';b=b*2;
printf("%c%c\n",a,b);
}
31.按数据流的类型,结构化设计方法有两种设计策略,它们是变换分析设计和______。
32.【】是数据库设计的核心。
33.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。
34.下列程序的输出结果是【】。
#include<stdio.h>
main()
{charb[]="Helloyou";
b[5]=0;
printf("%s\n",b);
}
35.设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。
36.有以下程序段,且变量已正确定义和赋值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
请填空,使下面程序段的功能与之完全相同
S=1.0;k=1;
while([8]){s=s+1.0/(k*(k+1));[9];}
printf("s=%f\n\n",s);
37.在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【】。
38.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE*myf;longf1;
myf=【】("test.t","rb");
fscek(myf,(),SEEK_END);f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
39.Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向______的设计方法。
40.有以下程序
intsub(intn){retnrn(n/10+n%10);}
main()
{intx,y;
scanf("%d",&x);
y=sub(sub(sub(x)));
printf("%d\n",y);
}
若运行时输入:1234<回车>,程序的输出结果是______。
三、1.选择题(20题)41.有以下程序段:typedefstructNODE{intnum;structNODE*nex;}OLD;以下叙述中正确的是()。
A.以上的说明形式非法B.NODE是一个结构体类型C.OLD是一个结构体类型D.OLD是一个结构体变量
42.以下程序的输出结果是intf(){staticinti=0;ints=1;s+=i;i++;retumS;}main(){inti,a=0;for(i=0;i<5;i++)a+=f();printf("%d\n",a);}
A.20B.24C.25D.15
43.软件调试的目的是A.发现错误B.改正错误C.改善软件的性能D.验证软件的正确性
44.有如下程序
main()
{intn=9;
while(n>6){n--;printf("%d",n);}}
该程序的输出结果是
A.987B.876C.8765D.9876
45.有以下函数定义:
voidfun(intn,doublex){……}
若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfun(n,x);
46.下列不属于软件工程三个要素的是()。
A.工具B.过程C.方法、D.环境
47.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。
A.125B.n/2C.nD.n+1
48.下列叙述中正确的是()。
A.一个逻辑数据结构只能有一种存储结构
B.数据的逻辑结构属于线性结构,存储结构属于非线性结构
C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
49.设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课SC(学号,课号,成绩),则表sc的关键字(键或码)为()。
A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩
50.有以下程序:#include<stdio.h>#include<string.h>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
51.表达式0x130x17的值是()。
A.0x04B.0x13C.0xE8D.0x17
52.下列程序的输出结果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i);}
A.49B.36C.25D.64
53.整型变量X和Y的值相等,且为非0值,则以下选项中结果为0的表达式是______。
A.X||YB.X|YC.X&YD.xy
54.下列叙述中正确的是()。
A.接口复杂的模块,其耦合程度一定低
B.耦合程度弱的模块,其内聚程度一定低
C.耦合程度弱的模块,其内聚程度一定高
D.上述三种说法都不对
55.有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件末尾向前移2*sizeof(int)字节)#include<stdio.h>main(){FILE*fp;inti,a[4]={1,2,3,4},b;fp=fopen("data.dat","wb");for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);fclose(fp);fp=fopen("data.dat","rb");fseek(fp,-2L*sizeof(int),SEEK_END);fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/felose(fp);printf("%d\n",b);}执行后输出结果是
A.2B.1C.4D.3
56.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为______。
A.PAD图B.N-S图C.结构图D.数据流图
57.有以下程序:#include<string.h>main(){charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde";strcat(p,r);strcpy(p+strlen(q),q);printf("%d\n",strlen(p));}程序运行后的输出结果是()。
A.9B.6C.11D.7
58.下面对对象概念描述错误的是()
A.任何对象都必须有继承性B.对象是属性和方法的封装体C.对象间的通讯靠消息传递D.操作是对象的动态属性
59.在说明语句:int*f();中,标识符f代表的是
A.一个用于指向整型数据的指针变量
B.一个用于指向一维数组的行指针
C.一个用于指向函数的指针变量
D.一个返回值为指针型的函数名
60.要为读/写操作打开一个字符文件,其正确的打开方式为_______。
A.wrB.r+C.rb+D.rw
四、选择题(20题)61.有以下程序:
程序运行后的输出结果是()。
A.3B.2C.1D.0
62.
63.
64.下面的程序段运行后,输出结果是()。
A.9B.0C.不确定值D.18
65.下列描述中正确的是()。
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
66.有以下程序:
程序运行后的输出结果是()。
A.6B.3C.8D.12
67.以下选项中,不能作为合法常量的是()。
A.1.234e05B.1.234e+5C.1.234e0.5D.1.234e0
68.有以下程序:
程序运行后的输出结果是()。
69.在软件开发中,需求分析阶段产生的主要文档是()。
A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划
70.设有如下定义:intx=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是()。
A.1B.0C.4D.3
71.待排序的关键码序列为15,20,9,30,67,65,45,90,要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第()个位置。
A.2B.3C.4D.5
72.将E—R图转换为关系模式时,实体和联系都可以表示为()。
A.属性B.键C.关系D.域
73.以下语句中存在语法错误的是()。
74.下列叙述中正确的是()。
A.循环链表是非线性结构
B.双向链表是非线性结构
C.只有一个根结点的数据结构不一定是线性结构
D.有一个以上根结点的数据结构不一定是非线性结构
75.
76.在单链表中,增加头结点的目的是()。
A.方便运算的实现B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性的链式存储实现
77.结构化程序所要求的基本结构不包括()。
A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构
78.
79.
80.
五、程序改错题(1题)81.下列给定程序中,函数ptoc的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本方法是:先对字符串中的头两个元素进行排序,然后把第3个字符插入前两个字符中,插入后前3个字符依然有序;再把第4个字符插入前三个字符中,待排序的字符串已
在主函数中赋予。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<strin9.h>
#include<stdi0.h>
#defineM80
voidproc(char*arr)
{inti,j,n;charch;
n=strlen(arr):
for(i=1;i<n;i++)
//****found****
{c=arr[i];
j=i-1;
while((j>=o)&&(ch<arr[j]))
{
arr[j+1]=arr[j];
j--;
}
arr[j+1]=ch;
}
}
voidmain
{
chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";
printf("Theoriginalstring:%s\n",a);
proc(a);
printf("Thestringaftersortin9:
%s\n\n",a);
}
六、程序设计题(1题)82.请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
参考答案
1.D
2.B
3.D程序设计是一门技术,需要相应的理论、技术、方法和工具来支持。程序设计的任务包括选项A)、B)、c)等方面。
4.AC语言中,合法的标识符由字母、数字和下划线组成,并且第1个字符必须是字母或下划线。选项D中的“3break”错误;用户标识符不能是C语言中的关键字或函数,选项B中的“unsigned”是关键字,不是合法的用户标识符,“Switch”是合法的用户标识符;选项C中的“getch”是库函数名,不是合法的用户标识符,而C语言区分字母大小写,“Abc”是合法的用户标识符;选项A中的两个标识符都是合法的用户标识符。故本题答案为A选项。
5.D
6.A
7.A标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。B选项int不是表达变量类型的标识符,它不能再用做变量名和函数名。C选项do是C语言的一个关键字。D选项标识符只能以字母或下划线开始。
8.Dx[0]是不能赋值的。
9.A本题考查两个概念:①用单引号括起来的一个字符常量只能存放一个字符;②℃语言中没有字符串变量,只能用字符数组来存储字符串。
10.A本题考查的是递归算法的分析。一个直接或间接地调用自身的算法称为递归算法。在一个递归算法中,至少要包含一个初始值和一个递归关系。本题的fun()函数在n等于l时返回1,而在其余情况下返[fi]n+fun(n一1),所以本题的递归算法可以这样来表示:fun(n)=1(n=1)(初始值)fun(n)=n+fun(n一1)(n≠1)(递归关系)此时不难看出,该递归算法实现的是计算l+2+3+…+n,而且n必须大于0,否则会陷入死循环。故题目输出的结果是l+2+3+..+10=55.应该选择A)。
11.CC.【解析】线性表是一种线性结构,由n(n≥0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项C.是错误的。
12.C
13.D解析:本题考查的知识点是运算符的优先级。在这个表达式中,优先级最高的是(int)a,也就是对5.5取整,结果是5,其次是b/b,即2.5/2.5,结果是1.000000,最后相加结果为6.000000(表达式的最终结果为实型),所以4个选项中D正确。
14.C
15.C解析:软件工程的基本概念。软件工程概念的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。
16.C当执行fun函数时,因为参数传递时是地址传递,因此形参值的改变会影响实参中的数,在执行fun函数时先输出12,接着把*X赋3,*y赋4,此时带回主函数中,输出的值为34。
17.B链表是一种特殊的线性表,链表的存储结构与顺序存储结构不同,它的存储区域可以是任意的存储单元,对存储系统中零碎的存储部分具有更好的应用,在给其分配存储单元时,不必事先估计整个存储单元的空间大小;由于链表的元素是通过指针域的指针相连的,用链表存储数据时,对其进行插入和删除操作时,不需要移动其他元素,只需改变其直接前驱指针域,使其指向该结点,并将该结点的指针域修改为指向其直接后继结点即可。当然,不管是链表还是顺序存储,所需空间与线性表长度都成正比。在链式存储的链表结构中,由于后一结点数据被存储在哪里,只有通过前一结点的指针域才知道,因此,访问时只能是逐个访问,而不能实现随机访问。
18.B解析:变量b和c中分别存放字符a和A的ASCII码,当i的值对2求余非零时输出ASCII码为i+b)的字符;当i的值对2求余为零时输出ASCII码为i+c的字符。分析程序可知本题选B。
19.D解析:选项A)是一个合法的赋值表达式,但结尾没加分号,所以它不是一个赋值语句;选项B)是一个逗号表达式,也因为结尾没有加分号而不是合法的赋值语句,选项C)是一个算术表达式,虽然有分号,但这个表达式没有赋值操作,因此,也不是一条赋值语句。
20.D题目中需要输入一个变量,scanf要求输入参数为指针,而D选项中“ps->age”为变量,不是指针。故本题答案为D选项。
21.Bend
22.可重用性继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。
23.1351\r\n3\r\n5解析:本题考查了for循环语句的使用,break语句用在本题中是结束for循环直接跳出循环体外。当i=1时,因为if语句条件不满足,所以直接执行printf('%d\\n',i++);输出1,同时i自加1;执行第二次for循环时,i:3;同样的if语句条件不满足,所以直接执行printf('%d\\n',i++);输出3,同时i自加1执行第三次for循环时,i=5,讧语句条件满足,所以执行printf('%d\\n',i)输出5,然后break语句跳出了for循环。
24.bar[i]bar[i]解析:fun函数中的内层for循环,求出了每一行中的最大值x,内循环结束后就需要把最大值放在存储每行最大值的数组bar[i]中,因此应填bar[i]。
25.完整性控制完整性控制
26.101,0解析:与运算两边的语句必须同时为真时,结果才为真,当执行完if((++a<0)&&!(b--<=0))时,a,b的值已经发生了变化。
27.s-1或--s或s--*s++s-1或--s或s--\r\n*s++解析:在函数。strcpy2()中,首先将指针t保存到指针p中,然后进入第1个while()循环,其循环条件为*s++=*t++,其中“*”和“++”运算符的优先级相同,但他们的结合性为从右至左,而“=”运算符优先级比较低,所以原表达式等价于(*s++)=(*(t++)),即将t当前所指内容复制到s当前所指地址中,然后让s和t同时往后移动一位,整个表达式返回的是复制给s的值。所以,当t所指内容是字符串结束符'\\0',时,while循环结束,原先t所指的整个字符串也就复制到s所指的地址中去了。但是,while循环最后一次判断也会让s和t往后移动一位,即此时s指向了字符串结束符'\\0'的后一位。所以第2次复制字符串之前,应先将s指针往回移动一位,故前一空应该填入s-1或其他等价形式。接下来的while循环实现第二次复制,照抄第1次的while循环就行,故后一空应填入*s++。
28.有穷性有穷性解析:算法的4个基本特性包括:可靠性、确定性、有穷性和拥有足够的情报,其中,算法的有穷性指的是算法必须在有限的时间内完成,即算法必须在执行有限个步骤之后终止。
29.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:本题考核的知识点是malloc()函数.该函数的调用格式是“malloc(n)”,作用是申请n个字符的存储单元,并返回该存储区的首地址,实际调用的时候可在前面加上“(类型说明符*)”,以转换成需要的类型的地址.所以在此空格处应该填写3*sizeof(double)或size(double)*3或其他等价的表达式。
30.1B1B解析:从键盘输入后,a='B',b=33,之后进行运算,a='B'-'A'+'0'='1';b=33*2=66。C语言规定,整型和字符型可以相互转换,已知字符A的ASCII码值为65,所以字符B的ASCII码值为66,所以b='B',最后以字符形式输出a和b,所以输出为1B。
31.事务分析设计事务分析设计解析:典型的数据流图有两种,即变换型和事务型。按照这两种类型把设计方法分为两类,即变换分析设计和事务分析设计。
32.数据模型数据模型
33.E-R图E-R图解析:数据库逻辑设计的任务是将概念模型进一步转化成相应的数据模型。而E-R图是主要的概念模型,因此数据库的逻辑设计的主要工作是将E-R图转换成关系模式。
34.HelloHello解析:语句b[5]=0;相当于语句b[5]='\\0';且'\\0'为字符串结束标志,输出时遇到'\\0'就停止输出。
35.350350解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。在根据完全二叉树的定义,在一棵完全二叉树中,最多有1个度为1的结点。因此,设一棵完全二叉树具有n个结点,若n为偶数,则在该二叉树中有n/2个叶子结点以及n/2-1个度为2的结点,还有1个是度为1的结点:若n为奇数,则在该二叉树中有[n/2]+1个叶子结点以及[n/2]个度为2的结点,没有度为1的结点。本题中,完全二叉树共有700个结点,700是偶数,所以,在该二叉树中有350个叶子结点以及349个度为2的结点,还有1个是度为1的结点。所以,本题的正确答案为350。
36.本题要求将一个for循环改成while循环。首先要保证循环条件相同,在for循环中,每次执行循环之后,循环控制变量k都会加1,而while循环则没有,故需在循环体中增加改变k数值的语句“k++”。\r\n\r\n
37.log2n
38.fopenfopen解析:C语言中的文件分为:ASCII文件与二进制j文件。文件在使用前打开,使用后要关闭。打开文件的函数为:fopen(),调用形式为:fp=fopen('文件名','使用文件方式:);
关闭文件的函数为:fclose(),调用形式为:fclose(fp);其中fp为文件指针。
39.数据结构数据结构
40.1010解析:本题程序中定义了一个函数sub(),用来计算一个整数整除10的商和余数的和。在主函数中,首先用scanf()函数读入一个十进制整数1234,然后对1234三次嵌套调用函数svb()。首先看最里层的调用,应该返回的值是123+4=127;然后中间一层调用应该返回的是12+7=19;所以最外层调用返回1+9=10。故最后输出10。
41.C解析:typedef关键字用于声明一个新的类型名代替已有的类型名。本题中如果没有用typedef进行定义的话,则structNODE为结构体类型,而用typedef定义后,相当于用OLD代表了struetNODE这一结构体类型,故OLD为结构体类型。
42.D解析:函数的静态局部变量在编译时就赋初值,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋值,而只是保留上次函数调用结束时的值。
43.B本题考查软件工程调试。调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题;测试是一个有计划的,可以重复的过程,它的目的是为了发现软件中的问题。因此,软件调试的目的是为了改正软什中的错误。本题的正确答案是选项\u3000B。
44.B解析:该题目应该根据循环体第一次和最后一次执行时的输出结果来决定哪一项是正确的。第一次进入循环时,n的值是9,循环体内,先经过n--运算,n的值变为8,所以第一次的输出值是8,由此可以排除选项A)和D)。由循环条件n>6可以知道,最后一次循环开始时,n的值应该为7,所以最后一次执行循环时,输出为6,由此可以排除选项C)。
45.C解析:选项A中应将y和m前面的函数的类型说明符去掉,故选项A不正确;选项B中函数传了2个参数,其中一个为整型一个为浮点型,而fun()函数在定义时声明的2个参数,一个为整型一个为双精度型,其参数类型不一致,故选项B不正确;选项D在调用函数时,不应该再声明其返回类型,故迭项D不正确.所以,4个选项中选项C符合题意。
46.D解析:软件工程包括三个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制、管理。
47.CC。【解析】对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。
48.D解析:数据的逻辑结构是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和在此集合中定义的若干关系来表示。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接等存储结构。但是不同的存储结构的数据的处理效率不同。
49.C学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C项。
50.D解析:sizeof是求字节运算符,在字符数组a中,“\\0”也作为字节保存,是a数组的一个成员,所以sizeof(a)的值应为9;strlen是测试字符串长度的函数,函数的值为字符串中的实际长度,不包括“\\0”在内,所以strlen(a)的值为8。
51.A解析:运算符“^”是按位异或运算符,其运算规则是:参与运算的两个二进制数,若相对应的二进制位上的数相同,则该位的结果为0;否则该位的结果为1。可得:0x130x17=1001110111=0x04
52.C解析:本题考查if语句.当执行到第一个满足(i*i>=20)&&(i*i<=100)这个条件的i出现时,通过break语句跳出循环,执行下列的printf语句。
53.D解析:“||”为或运算符,当其左有表达式中只要一个为非零则整个表达式的值1。|是按位或,&是按位与,^是按位异或,这三位运算符是按值的二进制位来比较的。
54.C解析:影响模块之间耦合的主要因素有两个:模块之间的连接形式,模块接口的复杂性。一般来说,接口复杂的模块,其耦合程度要比接口简单的模块强,所以选项A的说法错误;耦合程度弱的模块,其内聚程度一定高,选项B错误;选项C正确。
55.D解析:函数fopen(eonstchar*filename,cortstchar*mode)的功能是以mode指定的模式打开filename指定的磁盘文件;fclose(FILE*fp)的功能是关闭文件指针fp指向的文件;函数fscanf(FILE*fp,constchar*format[address,--))的功能是根据for-mat中的格式从fp指向的文件中读取数据,并存入到相应的address指向的变量中。函数fprintf(FILE*fp,constchar*format[,argument,--])的功能是把argument列表中的表达式值写到fp所指向的文件中;函数fwrlte(void*ptr,intsize,intn,FILE*fP)的功能是把ptr指向的缓冲区中的size×n个字节写到文件指针fP指向的文件中。本题中首先定义了一个文件指针fp,然后通过函数fopen以“wb”的方式打开文件“data.dat”,直接通过一个for循环,每循环一次调用函数fwrite将数组中的元素a[i]的值写进fp所指的文件中,该循环共循环4次,循环完后fp所指文件的内容为123,然后通过fclose函数关闭fp所指文件。接着通过函数fopen以“rb”的方式打开文件“data.dat”,通过fseek函数让指针fp从文件末尾向前移动2个int型大小字节的,然后通过函数fread从fp所指的文件中读取一个int型大小的数据到变量b中,故此时b的值为3,因此最后输出的b的值为3。
56.B解析:常见的过程设计工具有:程序流程图、N-S图、PAD图和HIPO图。其
中,为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流
程图,通常也把这种图称为N-S图。
注意:其他常用算法描述工具的概念。
57.B解析:本题首先定义了3个字符数组p、q、r并分别被初始化。数组p指定的大小为20,初始化列表为{\'a\',\'b\',\'c\',\'d\'},即只指定了前4个元素的内容,根据C语言的规定,初始化列表不足时,其余元素均自动初始化为0。然后通过strcat()函数,将字符串,连接到字符串p之后,即执行后p中的内容为'abcdabcde'。因为“strlen(q)”表示求字符串q的长度,很明显为3,所以语句“strcpy(p+strlen(q),q);”的作用就是:将字符串q拷贝到数组p的第3个元素位置处。注意,strcpy函数拷贝字符串会将其结束标志位一起拷贝,故拷贝完后p中的内容为”ababc\\0de',但通过strlen函数取p的长度碰到\'\\0\\即停止,故p中字符串的长度是6,应该选择B。
58.A解析:继承是面向对象的方法的一个主要特征。继承是使用已有的类定义做为基础建立新类的定义技术。已有的类可当做基类来引用,则新类相应地可当做派生类来引用。但并不是所有的对象都必须有继承性。因此,选项A中的说法是错误的,应为所选。
59.D解析:带回指针值的函数,其一般定义形式为:
类型标识符*函数名(参数表);
例如;int*f(x,y);
其中,f是函数名,调用它以后能得到一个指向整型数据的指针(地址),x,y是函数f的形参。在f的两侧分别为*运算符和()运算符,而()优先级高于*,因此f先与()结合,显然是函数形式。这个函数前面有一个*,表示此函数是指针型函数(函数值是指针)。前面的int表示返回的指针指向整型变量。
60.B解析:在C中可以通过fopen函数来打开—个文件,在该函数的第二个参数中指定其打开方式。要以读写方式打开文件可以用'r+'、'w+'、'a+'来表示,要打开二进制文件,可以在打开方式中加上字母b,对于字符文件不要加b。
61.D在ifelse语句中else总是与离它最近的f配对。本题目中x为l所以!X为0,所以执行elseif语句中的内容,判断(x==O)是否成立,因为x为1所以条件不成立,听以elseif内部的if…else语句不再执行,所以Y的值还是初蛤值0。
62.B
63.A
64.B本题主要考查的是用二维数组首地址和下标来引用二维数组元素的方法。通过分析可知,程序中的双重循环定义了一个如下的二维数组:
01200000
23400000
45600000
00000000
00000000
由于数组的下标是从0开始的,所以二维数组元素a[i][j]表示的是二维数组a的第i+1行、第j+1列对应位置的元素。从第二次
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年北京丰台区高三一模高考政治试卷试题(含答案详解)
- 施工单位个人工作总结模版
- 小学班主任教育故事案例
- 2025年终思想工作总结模版
- 图书角的布置与管理
- 阿坝职业学院《文学研究方法论》2023-2024学年第一学期期末试卷
- 陇东学院《拓展训练》2023-2024学年第二学期期末试卷
- 陕西中医药大学《幼儿园舞蹈创编》2023-2024学年第一学期期末试卷
- 陕西国防工业职业技术学院《国际贸易理论与实务一》2023-2024学年第二学期期末试卷
- 陕西学前师范学院《智能交通系统》2023-2024学年第一学期期末试卷
- 2025-2030中国融资租赁行业发展分析与投资战略研究报告
- 2024年北京市统计局招聘事业单位考试真题
- 2025年“铸牢中华民族共同体意识”应知应会知识竞测试赛题
- 2025年四川宜宾三中高三二模高考数学模拟试卷(含答案)
- 入职培训测试题及答案
- 境外项目合作居间协议书范本
- 网格员矛盾纠纷培训
- 2025年河南经贸职业学院单招职业技能测试题库学生专用
- 九宫数独200题(附答案全)
- 2016-2023年北京电子科技职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 塔式起重机设计计算书
评论
0/150
提交评论