版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年江苏省连云港市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.针对简单程序设计,以下叙述的实施步骤顺序正确的是()。
A.确定算法和数据结构、编码、调试、整理文档
B.编码、确定算法和数据结构、调试、整理文档
C.整理文档、确定算法和数据结构、编码、调试
D.确定算法和数据结构、调试、编码、整理文档
2.对线性表进行折半查找最方便的存储结构是()。
A.顺序表B.有序顺序表C.链表D.有序链表
3.下列定义中,不正确的有______。
A.#definePI3.141592
B.#defineS345;
C.intmax(x,y);
D.staticcharc;intx,y;{...}
4.有以下程序:#include<stdio.h>main(){inta=7;while(a--);print[("%d\n",a);}程序运行后的输出结果是()。A.-1B.0C.1D.7
5.函数调用:strcat(strcpy(str1,str2),str3)的功能是______。
A.将串str1复制到串str2中后再连接到串str3之后
B.将串str1连接到串str2之后再复制到串str3之后
C.将串str2复制到串str1中后再将串sir3连接到串str1之后
D.将串str2连接到串str1之后再将串str1复制到串str3中
6.对长度为n的无序线性表进行顺序查找,则查找成功、不成功时的平均数据比较次数分别为()。
A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1
7.下列叙述中正确的是()。
A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对
8.设有定义“doublea[10],*s=a;”,以下能够代表数组元素a[3]的是()。
A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3
9.结构化程序设计方法的3种基本控制结构中不包括
A.循环结构B.递归结构C.顺序结构D.选择结构
10.检查软件产品是否符合需求定义的过程称为()。
A.确认测试B.集成测试C.验证测试D.验收测试
11.下列程序段的时间复杂度为()。A.O(i+j)B.O(n)C.O(n2)D.O(i*j)
12.已知一个长度为32的有序表,若采用二分查找一个不存在的元素,则比较次数最多是()
A.4B.5C.6D.7
13.下列程序的输出结果是()。
intf1(intx,inty){returnx>y?x:y;}
intf2(intx,inty){returnx>y?y:x;}
main()
{inta=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,B),f1(c,D));
f=f1(f2(a,B),f2(c,D));
g=a+b+C+d-e-f;
phntf("%d,%d,%d\n",e,f,g);
}
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
14.用二进制来编码字符串“abcdabaa”,需要能够根据编码,解码回原来的字符串,最少需要()长的二进制字符串
A.12B.14C.18D.24
15.下列叙述中错误的是()。A.在程序中凡是以“#”开始的语句行都是预处理命令行
B.预处理命令行的最后不能以分号表示结束
C.#defineMAX是合法的宏定义命令行
D.C程序对预处理命令行的处理是在程序执行的过程中进行的
16.为了提高软件模块的独立性,模块之间最好是()。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合
17.在计算机中,算法是指()
A.加工方法B.解题方案的准确而完整的描述C.排序方法D.查询方法
18.在E-R图中,用来表示实体的图形是______。A.矩形B.椭圆形C.菱形D.三角形
19.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。
A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表
20.当执行下面的程序时,如果输入ABC,则输出结罘是()。#include<stdio.h>#include<string.h>main(){charss[10]="1,2,3,4,5":gets(ss);strcat(ss,"6789");printf("%s\n",ss);}A.ABC6789B.ABC67C.12345ABC6D.ABC456789
二、2.填空题(20题)21.结构化设计主要分为系统设计和模块设计,【】的任务是决定系统的模块结构。
22.C语言中用______表示逻辑值为“真”,用数字“0”表示逻辑值为“假”。
23.在ER图中,矩形表示【】。
24.以下程序运行后的输出结果是【】。
main()
{intx=15;
while(x>10&&x<50)
{x++;
if(x/3){x++;break;}
elsecontinue;
}
printf(“%d\n”,x);
}
25.以下程序的输出结果是_______。
main()
{char*p[]={"BOOL","OPK","H","SP:,};
for(i=3;i>0;i--,i--)printf("%c",*p[i]);
printf("\n");}
26.数据的独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,这称为______。
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.下面程序的运行结果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}
30.若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句()。
31.下列程序输出的结果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
32.实体联系模型是一种常用的高级概念数据模型,而______是实体联系模型中的核心。
33.若按功能划分,软件测试的方法通常分为白盒测试方法和【】测试方法。
34.若有定义语句chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)
while(s[i]){d[j]=【】;j++;}
d[j]=0;
35.以下程序的输出结果是()。
#include<stdio.h>
voidfun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(3);printf("\n");
}
36.以下程序的运行结果是()。
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}
main()
{inti=4;
fun(i++);printf("i=%dk=%d\n",i,k);
}
37.用高级语言编写的程序称为【】程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。
38.下面程序的输出是【】。
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);}
39.以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next==NULL),请填空。
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
[14]=a;q->next=p;[15]=p;scanf("%d",&a);}
p->next='\0';return(ph);}
main()
{stuctlist*head;head=creatlist();}
40.以下程序运行后的输出结果是()。
main()
{inta,b,c;
a=10;b=20;c=(a%b<1)||(a/b>1);
printf("%d%d%%d\n",a,b,C);
}
三、1.选择题(20题)41.执行下面的程序段后,变量k中的值为()。intk=3,s[2];s[0]=k;k=s[1]*10;
A.不定值B.33C.30D.10
42.下列叙述中正确的是()。
A.数据的逻辑结构与存储结构必定是一一对应的
B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构
D.以上3种说法都不对
43.以下程序执行后x的值是main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==y);printf("%d",x);}
A.252B.1C.0D.运行时出错,x无定值
44.下列不正确的转义字符是()。
A.'\\'B.'\t'C.'\n\D.'088'
45.有以下程序intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf("%d\n",s);}程序执行后的输出结果是
A.45B.50C.60D.55
46.有如下程序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
47.数据库设计包括两个方面的设计内容,它们是()
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
48.有如下定义:structperson{charname[9];intage;};structpersonclass[10]={"Johu",17,"Paul",19,"Mary",18,"Adam",16,};根据上述定义,能输出字母M的语句是______。
A.printf("%c\n",class[3].name);
B.printf("%c\n",class[3].name[1]);
C.printf("%c\n",class[2].name[1]);
D.printf("%c\n",class[2].name[O]);
49.函数rewind的作用是
A.使文件位置指针重新返回文件的开始位置
B.将文件位置指针指向文件中所要求的特定位置
C.使文件位置指针指向文件的末尾
D.使文件位置指针自动移至下一个字符位置
50.有以下函数char*fun(char*p){returnp;}该函数的返回值是______。
A.无确切的值B.形参p中存放的地址值C.一个临时存储单元的地址D.形参p自身的地址值
51.设有以下程序段:intx=0,s=0;whUe(!x!=0)s+=++x;printf("%d",s);则()。
A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次
52.以下不能对二维数组a进行正确初始化的语句是
A.inta[2][3]={0};
B.inta[][3]={{1,2},{0}};
C.inta[2)[3]={{1,2},{3,4},{5,6}};
D.inta[][3]={1,2,3,4,5,6};
53.下列程序的运行结果为#include<stdio.h>voidabc(char*str){inta,b;for(a=b=0;str[a]!='\0';a++)if(str[a]!='c')str[b++]=str[a];str[b]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]=%s",str);}
A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab
54.若有定义血b[8],*p=b;则p+6表示()。
A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[0]的值加上6
55.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序运行后的输出结果是______。
A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5
56.下列程序执行后的输出结果是______。main(){intm[][3]={1,4.7,6,5,8,3,6,9};inti,k=2for(i=0,i<3;i++){printf("%d",m[k][i];}}
A.456B.258C.369D.789
57.下列可用于C语言用户标识符的一组是
A.void,define,WORD
B.a3_b3,_123,Car
C.For,-abc,IFCase
D.2a,DO,sizeof
58.若有下列定义(设int类型变量占2个字节):
inti=8,j=9;
则下列语句:
printf("i=%u,j=%x\n".i,j);
输出的结果是()。
A.i=8,j=9B.8.9C.89D.i=8,i=8
59.下面程序main(){intx=100,a=10,b=20,okl=5,ok2=0;if(a<B)if(b!=15)if(!ik1)x=1;elseif(ok2)x=10;x=-1;printf("%d\n",x);}的输出是______。
A.-1B.0C.1D.不确定的值
60.使用白盒测试法时,确定测试数据应该根据()和指定的覆盖标准。
A.程序的内部逻辑B.程序的复杂结构C.使用说明书D.程序的功能
四、选择题(20题)61.若整型变量a、b、c、d中的值依次为2、2、3、4,则条件表达式a<b?a:c<d?c:d的值是()。A.1B.2C.3D.4
62.
63.以下4个选项中,不能看作一条语句的是()。
A.;B.a=5,b=2.5,c=3.6;C.if(b!=5)x=2;y=6;D.returnj;
64.有以下程序
65.设变量均已正确定义并赋值,以下与其他三组输出结果不同的一组语句是()。
A.x++;printf("%dkn",x);
B.n=++x;printf("%d\n",n);
C.++x;printf("%d\n",x);
D.n=x++;printf("%6d\n",n);
66.
67.
68.
69.有以下程序:
程序执行后的输出结果是()。
A.PrphsbnB.ProhsbnC.ProgsbnD.Program
70.有以下程序:
则以下函数调用语句错误的是()。
A.k:f(a,B.;B.k:add(a,B.;C.k=(*f)(a,B.;D.k=*(a,B.;
71.有以下程序:viodfun(inta,intb,intc){a=456;b=567;c=678;}main{intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}输出的结果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,456
72.
73.
有以下程序:
#include<stdio.h>
main
{intx=4,y;
do
{y=x;
if(!y)printf("x");
else
printf("y"):
x--;
}while(x);
}
程序的输出结果是()。
A.xyyxB.yyyyC.yyxxD.yxyx
74.设计软件结构是软件生命周期的()。
A.软件定义期B.软件开发期C.软件维护期D.以上3个都不是
75.下列哪个不属于DOM元素结点类型?
A.元素结点B.文本结点C.属性结点D.样式结点
76.负责数据库中查询操作的数据库语言是()。
A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言
77.以下叙述中正确的是()。A.A.break语句只能用在循环体内和switch’语句体内
B.continue语句的作用是:使程序的执行流程跳出包含它的所有循环
C.在循环体内使用break语句和continue语句的作用相同
D.break语句只能用于switch语句体中
78.
79.下列关于指针变量赋空值的说法错误的是
A.当赋空值的时候,变量指向地址为0的存储单元B.赋值语句可以表达为变量名=’\0’;
C.赋值语句可以表达为变量名=0;D.一个指针变量可以被赋空值
80.有以下程序
五、程序改错题(1题)81.下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),它的功能是求小于形参n同时能被3与7整除的所有自然数之和的平方根,并将其作为函数值返回。例如,若n为1000时,程序输出应为s=153.909064。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:
参考答案
1.A\nC语言中程序中的步骤实现为:先确定程序中的算法和数据结构,然后进行程序的编码,再进行对程序的调试,最后进行文档的整理和记录。使用这种步骤可以方便程序的编写以及在完成后提高代码的重用性。
\n
2.B
3.C
4.A此题考查a--和--a之间的区别,当while(a--)为真循环执行,a--是执行再减1,所以答案选择A。
5.C解析:题目中所给函数的功能是;先用函数strcpy把参数串str2复制到参数串str1中去,然后用函数strcat把参数串str3连接到经过修改后的参数串str1后,因此选项C正确。
6.C
7.D【答案】:D
【知识点】:栈和队列
【解析】:栈和队列都是线性结构,所以选项C错误;栈是一种先进后出的线性表,故选项A错误;队列是一种先进先出的线性表,故选项B错误,所以选D。
8.B题中,首先定义了double型的数组a,并将数组首地址赋给指针s。“(*s)”表示“a[1]”,“s[3]”不是指针变量,不能使用间址运算符“*”,故选项A、C不能表示“a[3]”;选项D的“*s+3”等于“a[0]+3”。故本题答案为B选项。
9.B解析:本题考查了程序的基本结构。程序由一些基本结构组成。任何一个大型的程序都由3种基本结构组成,由这些基本结构顺序的构成了一个结构化的程序。这3种基本结构为:顺序结构、选择结构和循环结构。
10.A本题主要考查软件测试的基本知识。软件测试的步骤可分为单元测试(模块测试)、集成测试、确认测试和系统测试。
(1)单元测试是针对每个模块进行的测试,它可从程序的内部结构出发设计测试用例,多个模块可以平行、对立地测试。单元测试主要用于发现详细设计和编程时犯下的错误。单元测试多采用白盒测试,辅之以黑盒测试。
(2)集成测试是在单元测试的基础上,根据模块结构图将各个模块连接起来,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。主要目标是发现与接口有关的问题。集成测试可以发现概要设计时犯的错误。
(3)确认测试用于验证软件的功能和性能及其他特性是否与用户的要求一致。确认测试主要用于发现需求分析时犯下的错误,一般使用黑盒法测试,以表明软件符合需求说明书的要求,应该仔细设计测试用例和测试过程。确认测试必须有用户参加,或以用户为主,用户应参与设计测试用例,通常情况下,主要使用生产中的实际数据进行测试,测试数据通过用户接口输入。
(4)系统测试是将已经通过确认测试的软件,作为整个计算机系统的元素与计算机硬件、外设和网络等其他因素结合在一起,进行一系列的组装测试和确认测试。系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合的地方。系统测试可以发现问题定义时犯下的错误。
11.C
12.C
13.A解析:根据函数intf1(intx,inty){returnx>y?x:y;}和int馒(intx,inty){retumx>y?y:x;}的定义可知,如果x>y成立,则函数n返回x的值,函数C返回y的值。所以n(a,B=4,n(c,d)=5,C(a,B=3,f2(c,d)=2,故e=f2(4,5)=4,f=n(3,2)=3,g=4+3+5+2-4-3=7。
14.B
15.C解析:预处理命令行是以“#”开始的语句,预处理命令行的最后不能以分号表示结束,预处理命令行。其中宏定义的字符替换的定义格式为:#define标识符字符串,预处理命令行是在系统对源程序进行编译之前进行处理的,不是在程序执行的过程中。
16.D解析:耦合性与内聚性是模块独立性的两个定性标准,是互相关联的。在程序设计中,各模块间的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚、低耦合,有利于提高模块的独立性。
17.B在计算机中,算法被定义为对一个问题求解步骤的一种描述,是求解问题的方法,它是指令的有限序列,其中每条指令表示一个或者多个操作。算法具有有穷性、确定性、可行性、输入和输出五大特点。
在本题中,选项A、C、D的说法明显偏离了算法的定义,因此正确答案选B。
18.A解析:在E-R图中,用三种图框分别表示实体、属性和实体之间的联系,其规定如下:用矩形框表示实体,框内标明实体名;用椭圆状框表示实体的属性,框内标明属性名;用菱形框表示实体间的联系,框内标明联系名。所以,选项A正确。
19.D
20.A当执行gets(ss)后,ss数组中的元素为ABC,再执行strcat(ss,"6789"),strcat的作用,是把6789连接到了ss数组后面,执行完后SS数组为ABC6789,故选择A选项。
21.系统设计系统设计解析:结构化设计主要分为系统设计和模块设计。系统设计决定系统的模块结构,模块设计具体考虑每个模块内部的算法、模块输入、输出及模块功能。
22.非0非0解析:逻辑运算中,非0表示逻辑“真”,用。表示逻辑“假”。
23.实体实体解析:在E-R图中用矩形表示实体;椭圆形表示属性;菱形表示联系。
24.1717解析:bteak语句只能在循环体和switch语句体内使用,当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。当break出现在循环体中,但不在switch语句体内时,则在执行break后,跳出本层循环体。而continue语句的作用时结束本次循环;即跳过本次循环中余下尚未执行的语句,接着再一次进行循环的条件判定。本题中首先定义了一个变量x并赋初值15,然后判断循环条件“x>5&&x<50”,即“x>5&&x<50”,为真,执行循环体。语句“x++;”执行后,x的值变为16,“x/3”的值为5为真,执行其后的语句“x++;”,x的值变为17,执行语句“break”,退出循环,输出x的值为17。
25.
26.物理独立性物理独立性解析:数据的独立性是指数据和应用程序相互独立,分为物理独立性和逻辑独立性。其中物理独立性是指数据的物理结构(包括存储结构、存取方式)改变时,不需要修改应用程序。而逻辑独立性是指当逻辑结构改变时,不需要修改应用程序。
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.11
30.printf(“a=%db=%d”aB);printf(“a=%d,b=%d”,a,B);解析:printf函数的一般格式为:“printf(格式控制,输出表列)”。
31.11解析:本题考查局部变量和全局变量的区别:局部变量是指作用域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。本程序首先定义了一个全局变量m=17,m=17的作用域在整个程序内。在fun函数内部定义了一个局部变量m=3,m=3的作用域仅在fun函数内部,通过fun函数返回两个形参的积再减m。在主函数中,输出fun(a,b)/m=(5*7-3)/17=1。
32.实体联系图或E-R图实体联系图或E-R图解析:实体联系图(B-R图)是实体联系模型中的核心。由于E-R图描述的是数据流图中数据存储及其之间的关系,因此它是数据库观念设计的最常用的工具。
33.黑盒软件测试的方法有三种:动态测试、静态测试和正确性证明。设计测试实例的方法一般有两类:黑盒测试法和白盒测试法。在使用黑盒法设计测试实例时,测试人员将程序看成一个“黑盒”,即不关心程序内部是如何实现的,只是检查程序是否符合它的“功能说明”,所以使用黑盒法设计的测试用例完全是根据程序的功能说明来设计的。
34.s[i++]s[i++]解析:本题中为了能实现字符串的拷贝,需要使字符数组s从头到尾依次遍历其所有元素。本题应使用i的自增后置来实现。
35.1313解析:函数fun是一个递归函数。执行fun(3);,x=3,x/2=1>0,又调用f(1),此时,x=1,x/2=0,不满足继续递归调用的条件,输出1,返回到fun(3)中,输出3。所以本题的输出结果为13。
36.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函数main()中定义了一个变量i,并赋初值4,调用fun()函数将i的初值传递给形参m,进行fun()函数后的运算,输出结果为m=4,k=4。将k值输出后自行增加1,k=5,此时全局变量k的值变为5。主函数中调用fun()函数后,i再自行增加1,i=5,所以主函数输出的结果为“i=5k=5”。
37.源程序源程序解析:用高级语言编写的程序称为源程序。源程序不能在计算机上直接运行,运行源程序有两种方式:一种是通过解释程序,对源程序逐句解释执行;另一种是先让编译程序将源程序一次翻译产生目标程序(目标程序是计算机可直接执行的机器语言程序,是一种二进制代码程序),然后执行目标程序。
38.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:
39.p->dataqp->data\r\nq解析:本题考查的是链表这一数据结构对结构体变量中数据的引用。链表的特点是结构体变量中有两个域,一个是数据,另一个是指向该结构体变量类型的指针,用以指明链表的下一个结点。
40.1020010200解析:a的初值为10,b的初值为20,因此“a%b”结果为10,“(a%b<1)”为假,“a/b”的结果为0,“(a/b>1)”为假,所以“(a%b<1)||(a/b>1)”的值为0(假),c的值为0。
41.A解析:定义数组时,没有对s[1]进行初始化,因此s[1]的值不确定,所以k=s[1]*10的值也不确定。
42.D解析:本题考查数据结构的基本知识。数据之间的相耳关系称为逻辑结构。通常分为4类基本逻辑结构,即集合、线性结构、树形结构、图状结构或网状结构。存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。存储结构在计算机中有两种,即顺序存储结构和链式存储结构。顺序存储结构是把数据元素存储在一块连续地址空间的内存中;链式存储结构是使用指针把相互直接关联的节点链接起来。因此,这两种存储结构都是线性的。可见,逻辑结构和存储结构不是一一对应的。因此,选项A和选项B的说法都是错误的。无论数据的逻辑结构是线性的还是非线性的,只能选择顺序存储结构或链式存储结构来实现存储。程序设计语言中,数组是内存中一段连续的地址空间,可看作是顺序存储结构。可以用数组来实现树型逻辑结构的存储,比如二叉树。因此,选项C的说法是错误的。
43.C解析:指针变量m和z分别指向整型变量y和i,所以这两个指针变量中存储的地址是不同的。变量x接受的是一个关系运算的结果,因为两个地址是不同的,所以“z=y”的判断结果为0。注意:C语言中,逻辑值的表示方法。
44.D解析:'\\\\'是反斜线转义字符;'\\t'是水平跳格转义字符;'\\n'是换行转义字符;C语言中没有规定'088'为转义字符。
45.C解析:内部静态变量是始终存在的,当函数被调用退出后,内部静态变量会保存数据,再次调用该函数时,以前调用时的数值仍然保留着。fun(a,5)的值是15,再次调用后sum=15,所以Fun(b,4)=45,s=45+15=60。
46.C解析:本题考查的是if...else语句的使用。x=2.0,符合第二个IF语句的条件x<10.0,所以执行y=1.0/x语句,即y=1.0/2.0=0.500000。
47.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。
48.D解析:该题主要考查C语言数组下标的概念,即C语言中数组的下标是从。开始的。
49.A解析:函数rewind的功能是将文件指针重新指向一个流的开头。用法如下:
intrewind(FILE*stream);并且无返值。
50.B解析:p本身就是一个字符型指针变量,返回p也就是返回变量p中存放的地址值。
51.B解析:本题中,逻辑非“!”运算符比不等于“!=”运算符优先级高,因此第一次循环时!x!=0的运算结果为真,s的运算结果为1;第二次循环时!x!=0的运算结果为假,循环结束,输出s的结果为1。
52.C解析:关于二维数组的初始化,我们需要掌握如下方法:①所赋初值个数与数组元素的个数相同;②所赋初值行数少于数组行数时,系统将自动给后面各行的元素补初值0;③在给二维数组赋初值时可以不用行花括号对。选项C)应该是inta[3][2]={{1,2},{3,4},{5,6,}};
53.A解析:本题考查了用字符指针引用字符数组中的字符及对字符的操作。函数abc()的for语句执行过程是:从字符指针str所指向的字符数组的第一个元素开始,逐一判断字符是否为'c',若不是就执行一次数组元素的赋值过程,若字符为'c'就不执行。
54.B解析:指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中将p+6指的是将指针向后移动了6个存储单元,指向b[6],存放的是b[6]的地址。
55.B解析:主函数中先定义了一个整型变量a,一个字符变量c并赋初值10,一个浮点型变量f并赋初值100.00和一个double型x,接着执行a=f/=c*=(x=6.5),该语句从右向左计算,先把6.5赋值给x(该括号表达式的值也为6.5),此时x的值变为6.5,然后执行c*=(x=6.5)相当于执行c=c*(x=6.5),此时c的值为65,接着向左执行f/c*=(x=6.5),语句相当于执行f=f/c,所以f的值为100/65≈1.538。接着向最右边执行“a=f”,由于a是整型变量,所以a最后去f的整数部分为1。程序最后输出的a、c、f和x的值(f和x只保留小数点后面1位)分别为1、65、1.5、6.5。所以,4个选项中选项B符合题意。
56.C解析:根据二维数组的定义得出:m[0][0]=1,m[0][1]=4,m[0][2]=7,m[1][0]=2,m[1][1]=5,m[1][2]=8,m[2][0]=3,m[2][1]=6,m[2][2]=9,所以本题的输出是第3行的值m[2][0],m[2][1],m[2][2],即369。
57.B解析:C语言规定标识符只能由字母、数字和下画线3种字符组成,且第一个字符必须为字母或下画线,排除选项C)和D);C语言中还规定标识符不能为C语言的关键字,而选项A)中void为关键字,故排除选项A)。
58.A解析:本题考查函数printf()的格式。“%x”表示以十六进制输出整型数据;“%u”表示以十进制无符号型输出整型数据。printf函数中格式说明符之前插入的任何字符都原样输出。
59.A解析:第—判断值为真,过渡到下一个判断,第二个判断为真,过渡到第三个判断……如此循环,在打印输出语句的前—行,程序绐变量x赋了值,为-1,所以,无论前期如何变化,最后的x值依然为-1
60.A白盒测试是把测试对象看作是一个打开的盒子,允许测试人员利用程序内部的逻辑结构及相关信息来设计或选择测试用例,对程序所有的逻辑路径进行测试。所以,白盒测试的对象基本上是源程序,以程序的内
【知识拓展】软件测试按照功能划分可以分成白盒(白箱)测试和黑盒(黑箱)测试。其中黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。
61.C本题考查三目运算符a<b?a:c<d?c:d也可写成a<b?a:(c<d?c:d),所以根据优先级,先算括号内的,c小于d为真取C的值,再看a小于b为假,所以取C的值。
62.B
63.Cc语言规定每个语句以;(分号)结束,因此选项c)为两条语句。
64.Afun函数将字符串数组里字符串从大到小排序,所以结果为A)。
65.D本题考查++运算操作符,当++在变量前面时,是先加l再赋值,当++在变量后面时,是先赋值再加l,所以答案选择D。
66.C
67.C
68.C
69.B(*q)++是q所指的字符加l,q++就是指针移到下一个字符。因此B选项正确。
70.DD选项中+f(a,b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,所以不能将其赋值给整形变量k。
71.B本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车间的工作计划
- 2024年度绿色生态牛养殖与买卖合同协议3篇
- 福建省福州市延安中学2024-2025学年高二上学期12月月考语文试题
- 幼儿发展评价分析总结800字(7篇)
- 中国共产党党内监督条例学习解读精讲细读党员培训课件模板
- 《用随机事件的概率》课件
- 市政排水工程管沟施工合同
- 高级网络安全工程师特聘协议
- 科技企业财务会计招聘合同
- 城市绿化养护车辆租赁合同
- 迷你仓租赁合同范本
- DB33-T1174-2019《风景名胜区环境卫生作业管理标准》
- 五年级数学上册试题 -《统计表和条形统计图》习题2-苏教版(含答案)
- 粤教粤科版小学科学四年级上册课时同步练习试题及答案(全册)
- 华为物联网业务布局研究报告
- 医院建筑使用过程中的装饰装修改造设计分析
- 餐饮仓库管理的规章制度(优秀五篇)
- (完整word版)石材铝板幕墙设计说明
- 食品安全法培训课件
- 钳夹实验汇总
- 酒精安全周知卡
评论
0/150
提交评论