




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年广东省汕尾市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.软件设计中划分模块的一个准则是()。A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合
2.有以下程序:#include〈stdio.h〉voidfun(int*s){staticintj=0;do{s[j]=s[j]+s[j+1];}while(++j<2);}main(){inti.a[10]={1,2,3,4,5};for(i=1;i<3;i++)fun(a);for(i=0;i<5;i++)pfintf(“%d”,a[i]);printf(“\n”);}程序运行后的输出结果是()。A.12345B.23445C.34756D.35745
3.标准库函数fgets(str,n,fp)的功能是()。A.从fp所指的文件中读取长度不超过n-1的字符串存入指针str所指的内存
B.从fp所指的文件中读取长度为n的字符串存入指针str所指的内存
C.从fp所指的文件中读取n个字符串存入指针str所指的内存
D.从fp所指的文件中读取长度为n-1的字符串存入指针str所指的内存
4.有以下程序:
程序执行后的输出结果是()。
A.1B.2C.3D.4
5.用C语言编写的代码程序
A.可立即执行B.是一个源程序C.经过编译即可执行D.经过编译解释即可执行
6.以下语句中,正确制作电子邮件链接的是()。
7.以下能正确定义一维数组的选项是______。
A.inta[5]={0,1,2,3,4,5};
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
8.
9.
10.用二分法查找长度为10的、排好序的线性表,查找不成功时,最多需要比较多少次?()
A.3B.4C.5D.6
11.有以下程序(注:字符a的ASCIl码值为97)#include<stdio.h>main(){char*s={"abc")do{printf("%d",*S%10");++S;}while(*s);}陧序运行后的输出结果是()。A.abcB.789C.7890D.979899
12.有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母:
程序运行后的输出结果是()。
A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!
13.下列语句组中正确的是()。
A.char*s;s=“Olympic”;
B.chars[7];s=“Olympic”;
C.char*s;s={“Olympic”};
D.chars[7];s={“Olympic”};
14.
15.有如下嵌套的if语句:if(a<b)if(a<c)k=a;elsek=C:elseif(b<c)k=b;elsek=C;以下选项中与上述if语句等价的语句是()。A.k=(a<b)?a:b;k=(b<c)?b:C;
B.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
C.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
D.k=(a<b)?a:b;k=(a<c)?a:c;
16.设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。
A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1
17.有以下程序:#include<stdio.h>main(){charch=‘D’;while(ch>‘A’){ch--;putchar(ch);if(ch==‘A’)break;putchar(ch+1);}}程序运行后的输出结果是()。
A.CBB.BCAC.CCBBD.CDBCA
18.在带头结点的单链表head为空的判定条件是()。
A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL
19.以下选项中合法的c语言常量是()。
A.,C—STR’B.2014.1C.”\l.0D.2EK
20.
二、2.填空题(20题)21.下面的程序实现的是从指针p所指向的地址的n个数中,找出最大的和最小的数据,请填空。
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;______;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
22.以下程序通过函数指针p调用函数fun,请在填空栏内写出定义变量p的语句。
voidfun(int*x,int*y)
{……}
main()
{inta=10,b=20;
【】:
p=fun;p(&a,&b);
……
}
23.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。
24.下列程序的输出结果是______。
#include<stdio.h>
main()
{intx=1,y=1,a=1,b=1;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,B);
}
25.为了便于对照检查,测试用例应由输入数据和预期的【】两部分组成。
26.设有以下定义和语句,则*(*(p+2)+1)的值为【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
27.软件开发过程中所使用的资源一般包括:【】、软件资源和硬件资源。
28.数据的基本单位是______。
29.在面向对象方法中,类之间共享属性和操作的机制称为______。
30.软件危机的核心问题是【】和软件开发效率低。
31.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
32.下面程序运行后的输出结果是()。
#include<stdio.h>
main()
{inta[]={1,2,3,4,5,6},*k[3],i=1;
while(i<4)
{k[i-1]=&a[2*i-1];
printf("%d",*k[i-1]);
i++;
}
}
33.函数compare的功能是比较两个字符串是否相等,若相等则函数返回值0,否则返回值1,请填空。
compare(chars[],chart[])
{inti=0;
while(s[i]==t[i]||【】)i++;
return(【】?1:0);
}
34.以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。
structnode
{intinfo;
【】link;};
35.成本估算模型中,Putnam估算模型是一种【】模型。
36.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于【】的联系。
37.若有以下定义,则使指针p指向值为35的数组元素的语句是______。
inta[10]={14,27,47,29,35,21,49,71},*p;
38.以下程序运行后的输出结果是______。
#inClude<strinq.h>
char*ss(char*s)
{char*p;t;
p=S+1;t=*s;
while(*p){*(p-1)=*p;p++;}
*(p-1)=t;
returns;
}
main()
{char*p,str[10]="abcdefgh";
p=ss(str);
printf("%s\n",p);
}
39.以下程序输出的最后一个值是【】。
intff(intn)
{staticintf=1;
f=f*n;
returnf;
}
main()
{inti;
for(i=1;i<5;i++)printf("%d\n",ff(i));}
40.以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。
main()
{floatx[1000],sum=0,ave,a;
intn=0,i;
printf("Entermark:\n");scanf("%f",&a);
while(a>=0.0&&n<1000)
{sum+【】;x[n]=【】;
n++;scanf("%f",&a);
}
ave=【】;
printf("Output:\n");
printf('ave=%f\n",ave);
for(i=0;i<n;i++)
if(【】)printf("%t\n",x[i]);
}
三、1.选择题(20题)41.为了使模块尽可能独立,要求()。
A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
42.在软件研制过程中,CASE是指()
A.计算机辅助软件工程B.计算机产生的例子C.实验室使用的工具D.计算机辅助系统工程
43.以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=0;i<n-1;i++)for(j=i+l;j<n;j++)if(strcmp(p[i],p[j])<0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[][lO]-{"abc","aabdfg","abbd","dcdbe","cd"};inti;f(p,5);printf("%dkn",strlen(p[0]));}程序运{亍后的输出结果是
A.6B.4C.5D.3
44.有如下程序:main(){inta[3][3]={{i,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
45.有以下程序
#include<stdio.h>
main()
{intc;
while((c=getchar())!=′\n)
{switch(c-′2′)
{case0:
case1:putchar(c+4);
case2:putchar(c+4);break;
case3:putchar(c+3);
case4:putchar(c+3);break;}}
printf("\n")}
从第一列开始输入以下数据<CR>代表一个回车符。
2743<CR>
程序的输出结果是
A.66877B.668966C.6677877D.6688766
46.设x为int型变量,执行以下语句,x=10;x+=x-=x-x;x的值为______。
A.10B.20C.30D.40
47.如果一个算法显式地调用自己则称为()
A.直接递归B.自用递归C.间接递归D.外用递归
48.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}该程序输出结果是______。
A.0B.0.25C.0.5D.1
49.在软件开发过程中,软件结构设计是描述______。
A.数据存储结构B.软件体系结构C.软件结构测试D.软件控制过程
50.结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法
A.对象B.数据结构C.数据流D.目标
51.下述关于数据库系统的叙述中,正确的是()。
A.数据库系统减少了数据冗余
B.数据库系统避免了一切冗余
C.数据库系统中数据的一致性是指数据类型一致
D.数据库系统比文件系统能管理更多的数据
52.有如下程序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
53.下列特征中不是面向对象方法的主要特征的是()。
A.多态性B.继承C.封装性D.模块化
54.有以下程序:#include<studio.h>#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(a++,b++));}
A.12B.15C.16D.20
55.下面程序的输出结果是()。main(){inti=1,p;p=f(i,++i);printf("%d",p);}intf(inta,intb){intC;if(a>b)C=1;elseif(a==b)C=0;elseC==-1;return(C);}
A.-1B.0C.1D.2
56.有以下程序:#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
57.利用fseek函数可以实现的操作是
A.改变文件的位置指针B.文件的顺序读写C.文件的随机读写D.以上答案均正确
58.下列关于栈的描述中错误的是()
A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针
59.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
60.sizeof(float)是()。
A.一种函数调用B.一种函数定义C.一个浮点表达式D.一个整型表达式
四、选择题(20题)61.
62.
63.若有定义:“int*P,x=0,*p,p=&x;”,则语句“printf("%d\n",*p);”的输出结果是()。
A.随机值B.0C.x的地址D.P的地址
64.
65.有以下程序:
#include<stdio.h>
#defineN3
voidfun(inta[][N],intb[])
{inti,j;
for(i=0;i<N;i++)
{b[i]=a[i][0];
for(j=i;j<N;j++)
if(b[i]<a[i][j])b[i]=a[i][j];
}
}
main()
{intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;
fun(x,y);
for(i=0;i<N;i++)printf("%d,",y[i]);
printf("\n");
}
程序运行后的输出结果是(,)。
A.2,4,8,
B.3,6,9,
C.3,5,7,
D.1,3,5,
66.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
67.排序的一个重要目的是为了对已排序数据进行
A.合并B.打印输出C.查找D.分类
68.
69.按照“先进后出”原则组织数据的结构是()。
A.队列B.栈C.双向链表D.二叉树
70.URI的全称是()。A.标准资源描述符B.标准资源标识符C.通用资源描述符D.统一资源标识符
71.有以下函数定义:
voidfun(intn,doublex){……}
若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用的语句是
A.fun(inty,doublem);B.k=fun(10,12.5);
C.fun(x,n);D.voidfun(n,x);
72.
73.
74.
75.以下不合法的字符常量是
A.’x\018’B.’\"’C.’\\’D.’\xcc’
76.下列可用于C语言用户标识符的一组是()。
A.void,define,WORD
B.a3_3,_123,Car
C.For,-abc,IFCase
D.2a,DO,sizeof
77.以下能正确定义一维数组的选项是A.intnum[];
B.#defineN100intnum[N];
C.intnum[0..100];
D.intN=100;intnum[N];
78.以下程序的输出结果是________。main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}func(inta,intB){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}
A.8,17B.8,16C.8,20D.8,8
79.以下叙述中正确的是()。A.在c语言中,预处理命令行都以‘‘#”开头
B.预处理命令必须位于c源程序的起始位置
C.#include必须放在c程序的开头
D.C语言的预处理不能实现宏定义和条件编译的功能
80.对长度为n的线性表排序,在最坏情况下,比较次数是nlog2n的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:计算str所指字符串中含有t所指字符串的数目,并作为函数值返回。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.编写函数fun,其功能是:将所有大于1小于整数m的非素数存人XX所指数组中,非素数的个数通过k返回。
例如,若输入17,则应输出:46891012141516。注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
参考答案
1.B一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
2.D本题考查静态变量,静态变量有储存已经操作过的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案选择D。
3.Afgets函数的功能是从fp所指文件中读入n-1个字符放入以str为起始地址的空间内,读取长度不超过n-1,读入结束后,自动在最后添加’\\0’,选项A正确。本题答案为A选项。
4.C该程序中int8pl=&a,+p2=&b,4P=&c;指定义三个指针变量,并赋值,即使pl指向a;p2指向b;p指向c。+P=。pl$(+p2)。;该条语句是给P所指的存储单元c赋值,就是pl所指的存储单元的值,即a的值,与p2所指的存储单元b的值相乘,也就是c=a+b,等价于c=1·3=3;因此C选项正确。‘
5.B解析:C语言一种高级语言,C语言源程序经过C语言编译程序编译之后,生成一个后缀为。OBJ的二进制文件(称为目标文件),最后还要由称为“连接程序”(Link)的软件,把此。OBJ文件与C语言提供的各种库函数连接在一起,生成一个后缀.EXE的可执行文件。显然C语言不能立即执行,故选项A错误;根据以上定义,选项C和选项D错误,所以,4个选项中选项B符合题意。
6.C
7.B解析:选项A)定义的是长度为5的数组元素,但初值有6个元素,所以错误;选项C)不符合数组定义形式,数组名后应加上“[];选项D)的类型说明符错误,应改为char;选项B)中的0,1,2,3,4,5分别表示对应字符的ASCII码,所以正确。
8.B
9.D
10.B
11.B程序中的*s%10是求余运算,分别是a、b、C的ASCIl码值对10进行求余运算然后输出,所以输出的答案为789。r
12.D调用缸函数后,实参数组名sl传给形参指针P,P也指向数组sl。m函数的功能是遍历字符数组中的所有字符,如果某一个字符是空格并且前一个字符是小写字母的话,就把前一个字符转换为大写。程序中语句P[i一1]=P[i—1]一ga’+-A‘;即P[i一1]=P[i一1]一32,意思是将P[i一1]中的字符转换为大写。因此D选项正确。
13.A字符型指针变量可以用A选项的赋值方法“Char*s;s=“OlymPiC”;”。C选项的写法“char*s;s={“Olympic”};”是错误的。字符数组可以在定义的时候初始化,如“chars[]={“Olympic”};”或者“chars[]=“Olympic”;”,但是不可以在定义字符数组后对数组名赋值(数组名是常量,代表数组首地址),所以B选项和D选项都是错误的。对于本例,B、D选项中字符数组s的大小至少为8,才能存放下字符串(字符串的末尾都有结束标识‘\\0’),同时,此时S为字符数组的地址,是常量,不能为其赋值。故本题答案为A选项。
14.A
15.C条件运算符(?:)是C语言中唯一的一个三目运算符,它是对第一个表达式做真/假检测,然后根据结果返回两个表达式中的一个作为运算的结果。<表达式1>?<表达式2>:<表达式3>。在运算中,首先对第一个表达式进行检验,如果为真,则返回表达式2的值;如果为假,则返回表达式3的值。
16.D本题考查逻辑运算符的使用。当“&&”的两个运算对象都是逻辑1时,表达式返回值才是1;“||”的两个运算对象至少有一个是逻辑1时,表达式返回值也是1,x<y为1,!z为0,1&&0为1,0||为1,因此,!1为0。
17.Dputchar函数的功能是输出一个字符,由whlie判断条件和ch初始值可知,只要“ch≠‘A’”,执行两次putchar函数,否则跳出循环。第1次输出“CD”,第2次输出“BC”,第3次输出“A”后跳出循环。故本题答案为D选项。
18.B
19.B所谓常量是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项A是字符串,但使用单引号,错误,选项c,D,为实型常量中指数形式,但指数形式e(E)之前必须是数字,之后必须为整数,错误。故答案为B选项。
20.A
21.
22.void(*p)();void(*p)();解析:要定义p为指向函数的指针变量,需写成void(*p)();,注意*p两侧的括弧不可以省略,表示P先与*结合,是指针变量,再与后面的()结合,表示此指针变量指向函数,这个函数无返回值(同fun()函数)。
23.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。
24.a=2b=3a=2,b=3解析:分析程序,程序从x=1语句开始执行,之后执行第一个switch语句,switch(x)=switch(1),所以执行case1,case1语句中包含一个复合switch语句:这时执行第二个switch语句,此时y=1,所以switch(y)=switch(1),因此执行case1,将b加1,得到b=2,遇到break语句,退出第二个switch语句,则整个case1的复合语句执行完毕,由于在这个case1的后面没有break语句使其退出第一个switch语句,所以接着执行下列的case2后面的语句,即将a,b各加1,得到a=2,b=3。
25.输出结果输出结果解析:注意:测试的基本方法和步骤。
26.6060解析:程序中定义a是一个3行2列的二维数组,p是指向两个元素的一维数组指针,并让p指向二维数组a的首行。则代码*(*(p+2)+1)中的p+2指向二维数组a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。
27.人员资源人员资源
28.数据元素。数据元素。
29.继承继承
30.软件质量差软件质量差解析:大约在20世纪60年代末人们在计算机软件的开发和维护过程中,遇到了一系列严重问题,从而认识到软件危机的存在。软件危机的核心问题是软件开发的质量太差和软件系统开发的效率太低。
31.概念设计阶段(数据库概念设计阶段)概念设计阶段(数据库概念设计阶段)
32.246
33.s[i]!='\0'||t[i]!='\0's[i]=='\0'&&t[i]=='\0's[i]!='\\0'||t[i]!='\\0'\r\ns[i]=='\\0'&&t[i]=='\\0'
34.structnode*structnode*解析:本题中的结构类型名为structnode,所以空白处应填:structnode*。即定义一个指向自身的结构体指针。
35.动态多变量动态多变量
36.一对多(或1∶N)一对多(或1∶N)解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1∶1)的联系、一对多(1∶N)或多对一(N∶1)的联系和多对多(N∶N)的联系。
37.p=a+4或p=&a[4]。p=a+4或p=&a[4]。解析:可以直接将数组元素a[4]的地址(即&a[4])赋给指针变量p,也可以用数组名加偏移量的形式(即a+4)表示数组元素a[4]的地址,并赋给指针变量p。
38.bcdefghabcdefgha解析:在本题定义的ss()函数中首先定义了一个指针p和一个字符变量t,然后让p指向参数指针s的下一个位置s+1,并让t保存s位置的字符.然后使用一个while循环将p指向的内容赋给它前面一个位置,即将参数s所指的字符串从第2个字符开始整体往前移动一位。循环结束时,p指向原s串的结束标志处,所以让*(p-1)=t;即是将原s串的第1个字符复制到s串的最后一个位置。整个函数实现的是让一个字符串循环左移一位。故主函数中最后输出的字符串是'bcdefgha'。
39.120120解析:静态变量的类型说明符是static,静态局部变量属于静态存储方式,它具有以下特点:
①静态局部变量属于静态存储类别,在静态存储区内分配存储单元。在程序整个运行期间都不释放。
②对静态局部变量是在编译时赋被值的,即只赋被值一次,在程序运行时它已有被值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。
③如在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。(注意:C语言中的非静态变量在定义时,系统并不会自动给它赋被值)
④虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的。
本题中函数的功能是:与for语句一起求一个整数的阶乘。
40.=aasum/nx[i]<ave=a\r\na\r\nsum/n\r\nx[i]<ave解析:sum是用来存放学生成绩总和的,a是输入的成绩,ave存放平均成绩,n既是循环变量,又表示学生人数,x[n]保存第n个学生的成绩。sum用来累加每个同学的成绩,因此有sum+=a;把新输入的学生成绩保存在数组中,因此有x[n]=a;ave是所有同学的平均成绩,因此有ave=sum/n;逐个把学生成绩和平均成绩比较,因此有if(x[i]<ave)。
41.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。
42.A
43.C解析:函数strcmp(字符串1,字符串2)作用是将”字符串1”和”字符串2”进行比较,如果“字符串1”》”字符串2”,返回一个大于0的整数值;如果“字符串1”<“字符串2”,返回一个小于0的整数值;如果”字符串1”=“字符串2”,返回0。函数strcpy(字符串数组名,字符串,[整型表达式])的作用是将“字符串”的前“整型表达式”个字符有入到指定的“字符数组”中,若省略“整型表达式”,则将整个“字符串”存入,字符数组”中.函数f()的功能是利用选择法把一个具有n行的二维数组中按行存放的n个字符串由大到小排序。在主函数中定义了一个二维字符数组p并给它按行赋初值,然后调用f()函数;把它按行从大到小排列。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串。由此可知最大的字符串为“dcdbe”,排序后存放在第一行,其首地址为P[0],在输出语句输出的p[0]指向的字符串长度是5。所以4个选项中C正确。
44.A解析:题中的外循环只执行了2次:
第1次:a[1][0]=3,a[1][1]=4,所以s=7;
第2次:a[2][0]=5,a[2][1]=6,a[2][2]=0,所以s=7+5+6+0=18。
45.A解析:本题主要考查了字符输入输出函数getchar和putchar的使用。getchar函数用来从标准输入设备上读入一个字符,putchar(c)函数是将字符变量c中的字符输出到标准输出设备上,并且字符可以看作整数参与运算。
46.B解析:本题x=10,表达式“x+=x-=x-x;”的求解步骤如下:先进行x-=x-x的运算,相当于)x=x-(x-x)=x=10;再进行x+=x的运算,即x=x+x=20。
47.A
48.C解析:本题考查的是if...else语句的使用。x=2.0,符合第二个IF语句的条件x<10.0,所以执行y=1.0/x语句,即y=1.0/2.0=0.500000。
49.B解析:从工程管理解度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。
50.CC。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
51.A解析:数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共享,具有最小的冗余度和较高的数据与程序的独立性,而且能并发地为多个应用服务,同时具有安全性和完整性。即数据库系统减少了数据冗余,但不能避免一切冗余。所以选项A正确,选项B错误。在数据库管理阶段中,数据是结构化的,面向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存取方式,选项C错误。数据库系统比文件系统能管理更多的数据,并非是数据库系统的特点,选项D错误。本题正确答案是A。
52.C解析:该题稍微难一点。主要要搞清楚以下几点:①定义了一个指针数组char.p[2]后,程序中第一个循环for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指针数组的p[0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,并使指针数组的p11)元素指向了二维数组ch的第二行字符串,这样,就使指针数组p和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式:ch[i][j]或p[i][j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的内容为字符串'8254'。③程序中第二个循环中的循环体s=e*10+p[i][j]-‘0’;的功能是这样的,每执行一次,将s中的值乘以10(也即,将s中的数值整体向左移动一位,并在空出来的个位上添一个0),再将当前p[i][j]中的字符量转换为相应的数字,然后把这个数字加到s的个位上。④注意到内层循环的循环条件p[i][j]>,0,是指p[i][j]中的字符只要不是字符串结束标志,\\0,就继续循环,语句j+=2;是使下标j每次增加2,也即一个隔一个地从p[i]所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从p[0]所指向的字符串'6937'中一个隔一个地取出字符,分别是‘6’和‘3’,然后从p[1]所指向的字符串'8254'中一个隔一个地取出字符,分别是‘8’和‘5’,同时经过转换和相加运算后,结果s中的值应该是6385,所以,正确答案是C)。
53.DD。【解析】面向对象设计方法与面向过程设计方法有本质的不同,其基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:分类性、多态性、封装性、模块独立性、继承和多态性等。模块化是结构化程序设计的特点。
54.A解析:本题考核的知识点是宏与自增运算符的综合运用.在程序中先用表达式将宏替换掉,则输出语句中的表达式为(a++)*(b++),而a++的值为3,b++的值为4。因此最后的值为3*4=12。所以,4个选项中选项A符合题意。
55.B解析:执行“p=f(i,++i):”后i的值为2,所以a和b的值都为2,则c=0,选项B正确。
56.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。
57.D解析:用fseek函数可以实现改变文件的位置指针,从而实现对文件的顺序和随机读写。
58.B解析:在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照先进后出(FILO,FirstInLastOut)或后进先出(LIFO,LastInFirstOut)的原则组织数据的,因此,栈也被称为先进后出表或后进先出表。由此可以看出,栈具有记忆作用。答案B错在带链的栈的结点存储顺序与其逻辑顺序是可以不一致的。
59.D解析:中序遍历的递归算法定义:①遍历左子树;②访问根结点;③遍历右子树。前序遍历的递归算法定义:①访问根结点;②遍历左子树;③遍历右子树。后序遍历的递归算法定义:①遍历左子树;②遍历右子树;③访问根结点。根据前序遍历的结果可知,a是根结点。由中序遍历的结果dgbaechf可知,d、g、b是左子树的结点,e、c、h、f是右子树的结点。再由前序遍历的结果bdg可知,b是a左边子树的根,由cefh可知,c是a右边子树的根。再由中序遍历的结果dgb可知,d、g是b左边子树的结点,b右边子树无结点。再由前序遍历结果dg可知,d为b左子树的根,g是以d为根的子树的右结点。至此,a的左子树已完全弄清楚了。同样的道理,可以弄清楚以c为根的子树的结点位置。所以可知后序遍历的结果是D。
60.D解析:sizeof(float)是c语言内部规定的用于计算单精度型变量(float)在计算机的内存中所占用的字节数量的函数,返回一个整数值。
61.B
62.A
63.A*P的意思是取其指向地址的内容,P是指向x地址的指针,因此输出*p也就是输出x的内容,即0,故选择B选项。
64.C
65.B\nFun函数功能是把数组a的每一行的最大值赋给b,a的第一行的最大值是3,第二行的最大值是6,第三行的最大值是9,所以答案是3,6,9。
\n
66.D解析:中序遍历的递归算法定义:①遍历左子树;②访问根结点;③遍历右子树。前序遍历的递归算法定义:①访问根结点;②遍历左子树;③遍历右子树。后序遍历的递归算法定义:①遍历左子树;②遍历右子树;③访问根结点
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《劳动法律法规与政策》课件
- 工程项目劳务风险评估协议
- 铁路旅客运输服务普速列车设备设施规范课件
- 《建筑预算实务》课件
- 艏艉总段的装焊船体加工与装配课件
- 铁道机车专业教学张琼洁22课件
- 四空车检查南京铁道课件
- 铁路市场营销铁路运输市场分析教学案例课件
- 《GB 17930-2016车用汽油》(2025版)深度解析
- 中国五音课件下载
- (冀教版)二年级美术下册课件-洞的联想
- 学生档案补办申请表1
- 运动医学 教学大纲
- 「红人」旅游小程序产品需求文档
- 高中英语 外研版 B3U6-第6课时-writing
- 尾矿库工程坝体施工方案
- 2022届上海市16区高三语文一模分类汇编三:文学文本阅读 试卷(原卷版+解析版)
- DB37T 3717-2019 电动汽车充电站验收规范
- TK305水喷砂方案
- 先进加工技术--水切割技术PPT
- 危废处置方案完全示范版
评论
0/150
提交评论