版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年四川省广安市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()
A.a<>0B.!aC.a=0D.a
3.以下是if语句的基本形式:
if(表达式.语句
其中“表达式”()。
A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式
4.需求分析阶段的任务是确定()
A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能
5.
6.以下关于typedef的叙述错误的是A.用typedef可以增加新类型
B.typedef只是将已存在的类型用一个新的名字来代表
C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名
D.用typedef为类型说明一个新名,通常可以增加程序的可读性
7.下列叙述中错误的是()。
A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C语言中,外部变量的隐含类型是自动存储类别
D.在C语言中,函数形参的存储类型是自动(auto)类型的变量
8.一个C语言程序总是从()开始执行:
A.主程序B.子程序C.主函数D.第一个函数
9.若有定义“intw[3][5];”,则以下不能正确表示该数组元素的表达式是()。
A.*(&w[0][0]+1)B.*(*w+3)C.*(*(w+1))D.*(w+1)[4]
10.设x是一个int型的,y的值为10,则表达式x&&y的值为()。
A.1B.0C.与x值相同D.与x值相反
11.算法的时间复杂度是指A.算法的执行时间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的基本运算次数
12.若有宏定义“#defineA_RECT(W,H)W*H”和以下程序段:intx=5,y=6,area1,area2;area1=A_RECT((x-1),(y+1));area2=A_RECT(x+3,y-1);执行上述程序段后,变量area1和area2的值分别是()。
A.022B.2840C.2822D.040
13.检查软件产品是否符合需求定义的过程称为()。
A.确认测试B.集成测试C.验证测试D.验收测试
14.有3个节点的二叉树可能有()种。
A.12B.13C.5D.15
15.有以下程序:#include<stdio.h>#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf("%d\n",S(k+j));}程序运行后的输出结果是()。A.197B.143C.33D.28
16.下面关于数据库系统中叙述正确的是()。
A.数据库系统减少了数据冗余
B.数据库系统避免了一切冗余
C.数据库系统中数据的一致性是指数据类型的一致
D.数据库系统比文件系统能管理更多的数据
17.有以下程序:
程序运行后的输出结果是()。
A.4B.34C.31D.32
18.视图设计一般有3种设计次序,下列不属于视图设计的是______。
A.自顶向下B.由外向内C.由内向外D.自底向上
19.程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系
20.if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A.必须是逻辑值B.必须是整数值C.必须是正数D.可以是任意合法的数值
二、2.填空题(20题)21.最简单的交换排序方法是______。
22.在一个容量为15的循环队列中,若头指针front=6,尾指针Year=9,则该循环队列中共有【】个元素。
23.若有如下结构体说明:
structSIRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。
【】t[20]
24.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。
25.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。
26.软件危机出现于60年代末,为了解决软件危机,人们提出了【】的原理来设计软件,这就是软件工程诞生的基础。
27."printf("%d\n",strlen("\t\"'\023\xABC\n"));"语句的输出结果是______。
28.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
29.以下程序运行后的输出结果是______。
#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);
}
30.以下函数sstrcat的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:,所指字符串为abed,t所指字符串为efgh,调用函数sstrcat后s所指字符串为abcdefgh。请填空。
#inehde<stdio.h>
#include<string.h>
voidsstuat(char*9,char*t)
{intn;
n=strlen(s);
while(*(s+n)=【】){s++;t++;}
31.以下程序的输出结果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
32.有下面的程序:
#include<stdio,h>
main()
{enumteam{my,your=4,his,her=his+10};
prinff("%d%d%d%d\n",my,your,his,her);
此程序的输出结果是【】。
A)0123B)04010C)04515D)14515
33.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。
34.数据结构分为逻辑结构和存储结构,循环队列属于______结构。
35.在一个容量为32的循环队列中,若头指针front=3,尾指针rear=2,则该循环队列中共有______个元素。
36.有以下语句段
intnl=10,n2=20;
printf("______",n1,n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
37.若有如下程序:
main()
{intx=4;y=3,Z=2,t;
t=x<y<z;
printf("%d\n",t);
}
则程序运行后的输出结果是【】。
38.若输入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;
}
}
39.若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句()。
40.以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。
main()
{intx[10],a[9],I;
for(I=0;I<10;I++)scanf("%d",&x[I]);
for(【】;I<10;I++)
a[I-1]=x[I]+【】;.
for(I=0;I<9;I++)printf("%d",a[I]);
printf("");
}
三、1.选择题(20题)41.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。
A.12B.11C.10D.编译出错
42.若有函数内部说明:inta[3][4];则数组a中各元素
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
43.以下叙述中正确的是
A.用C程序实现的算法必须要有输入和输出操作
B.用C程序实现的算法可以没有输出但必须要有输入
C.用C程序实现的算法可以没有输入但必须要有输出
D.用C程序实现的算法可以既没有输入也没有输出
44.下列对于软件测试的描述中正确的是()。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能多地发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
45.以下定义语句中正确的是
A.inta=b=0;
B.charA=65+1,b=′b′;
C.floata=1,*b=&a,*c=&b;
D.doublea=00;b=1.1;
46.有以下程序: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
47.下列程序的输出结果是()。#include<stdio.h>main(){chara[]={'a','b','c','d','e','f,'\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d",i,j);}
A.7,7B.7,6C.6,6D.6,7
48.以下数组定义中错误的是______。
A.intx[][3]={0};
B.intx[2][3]={{1,2},{3,4},{5,6)};
C.intx[][3]={{1,2,3},{4,5,6}};
D.mtx[2][3]={1,2,3,4,5,6};
49.C语言结构体类型变量在程序执行期间,()。
A.所有成员一直驻留在内存中B.没有成员驻留在内存中C.部分成员驻留在内存中D.只有一个成员驻留在内存中
50.在C语言中,函数返回值的类型最终取决于()。
A.函数定义时在函数首部所说明的函数类型
B.return语句中表达式值的类型
C.调用函数时主调函数所传递的实参类型
D.函数定义时形参的类型
51.函数调用:strcat(strcpy(str1,str2,),str3)的功能是()
A.将串str1复制到串str2中后再连接到串str3之后
B.将串str1连接到串str2之后再复制到串str3之后
C.将串str2连接到串str1之后再将串str3连接到串str1之后
D.将串str2连接到串str1之后再将串str1连接到串str3之后
52.有以下程序:main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}程序执行后的输出结果是()。
A.自然数1~9的累加和B.自然数1~10的累加和C.自然数1~9中奇数之和D.自然数1~10中偶数之和
53.若有以下定义:structfink{intdata;structlink*next;}a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:
指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是:
A.a.next;c;c.next=b;
B.p.next=q;q.next=p.next;
C.p->next=&c;q->next=p->next;
D.(*p).next=q;(*q).next=&b;
54.有以下程序
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
55.字符串"\\\"ABCDEF\"\\"的长度是()。
A.15B.10C.7D.8
56.以下程序的输出结果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}
A.11B.12C.13D.15
57.设有以下语句,则c的二进制值是()chara=3,b=6,c;c=ab<<2;
A.11011B.10100C.11100D.11000
58.以下选项中不属于字符常量的是
A.′C′B.′′C′′C.′\xCC′D.′\072′
59.下面程序的输出结果是_______。#defineP1(x)printf(x)main(){chard[]="p";P1(d);P1("d");}
A.pdB.d"d"C.pdD.p"d
60.有以下函数intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下关于aaa函数的功能的叙述正确的是A.求字符串s的长度B.比较两个串的大小C.将串s复制到串tD.求字符串s所占字节数
四、选择题(20题)61.
62.设有定义:
doublea[10],*s=a;
以下能够代表数组元素a[3]的是()。
A.($s)[3]B.}(s+3)C.*s[3]D.}s+3
63.以下能正确定义字符串的语句是(
)。
64.若有说明,double*m,n;则能通过sCanf语句正确给输入项读人数据的程序段是()。
A.*m=&n;scanf("%lf",m);
B.m=(double*)malloc(10);scanf("%f",m);
C.m=&n;scanf("%lf",n);
D.m=&n;scanf("%le",m);
65.
66.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码
67.若有定义语句:
68.有以下程序:
程序运行后的输出结果是()。
A.10,One*Dream!B.9,One*Dream!C.9,One*WorldD.10,One*World
69.
70.对长度为n的线性表排序,在最坏情况下,比较次数是nlog2n的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
71.
72.
73.
74.若程序中有宏定义行:#defineN100则以下叙述中正确的是()。
A.宏定义行中定义了标识符N的值为整数100
B.在编译程序对C源程序进行预处理时用100替换标识符N
C.对C源程序进行编译时用100替换标识符N
D.在运行时用100替换标识符N
75.
程序运行后的输出结果是()。
A.ABCDE\0FG\OUKB.ABCDUKC.UKD.EFGUK
76.
77.下列程序的运行结果是()。
#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.A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5
78.在Internet中,域名服务器的主要功能是实现()的转换。
A.IP地址到域名(主机名字)B.域名到IP地址C.主机IP地址和路由器IP地址之间D.路由器IP地址之问
79.
80.有以下程序:
程序运行后的输出结果是()。
A..3,2,1,B.1,2,3,4,5,6,C.1,1,1,1,1,lD.6,6,6,6,6,6,
五、程序改错题(1题)81.写出下列程序的运行结果。
fun(inta,intb)
{if(a>b)return(a);
Elsereturn(b);}
main
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);printf(“%d\n”,r);}
六、程序设计题(1题)82.请编写函数proc(),它的功能是:求出1~1000中能被5或13整除,但不能同时被5和13整除的所有整数,并将它们放在arr所指的数组中,通过n返回这些数。注意:部分源程序给H{如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.B
2.D
3.D解析:本题主要考查关于if语句的说明,if后面圆括号中的表达式,可是任意合法的C语言表达式(如:逻辑表达式、关系表达式、算术表达式、赋值表达式等),也可以是任意类型的数据(如:整型、实型、字符型、指针型等。)
4.D解析:结构化分析方法,数据流图,数据字典,软件需求规格说明书
评析,需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织,部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能.选项A)软件开发方法是在总体设计阶段完成的任务;选项B)软件开发工具是在实现阶段需完成的任务:选项C)软件开发费用是在可行性研究阶段需完成的任务。
5.B
6.A解析:本题考查的重点是typedef的理解运用。C语言允许通过typedef为数据类型定义新名字,但是,它并非是生成新的数据类型,因此选项A是错误的。
7.C解析:外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。
8.C
9.DA选项中,“*(&w[0][0]+1)”表示“w[0][1]”;B选项中,“*(*w+3)”表示“w[0][3]”;C选项中,“*(*(w+1))”表示“w[1][0]”;D选项中,“*(w+1)[4]”的正确写法是“(*(w+1))[4]”,表示“w[1][4]”。故本题答案为D选项。
10.C
11.DD。【解析】算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模。09函数fin),算法的时间复杂度也因此记做T(n)=O(f(n))。因此,问题的规模n越大,算法执行的时间的增长率与f(n)的增长率正相关,称作渐进时间复杂度(AsymptoticTimeComplexity)。简单来说就是算法在执行过程中所需要的基本运算次数。
12.C带参数的宏定义的替换过程是:用宏调用提供的实参字符串,直接置换宏定义命令行中相应的形参字符串,非形参字符串保持不变。题干中,“area1=A_RECT((x-1),(y+1));”宏替换后为“area1=(x-1)*(y+1);”,“area2=A_RECT(x+3,y-1);”宏替换后为“area2=x+3*y-1;”。所以area1=4*7=28,area2=5+3*6-1=22。故本题答案为C选项。
13.A本题主要考查软件测试的基本知识。软件测试的步骤可分为单元测试(模块测试)、集成测试、确认测试和系统测试。
(1)单元测试是针对每个模块进行的测试,它可从程序的内部结构出发设计测试用例,多个模块可以平行、对立地测试。单元测试主要用于发现详细设计和编程时犯下的错误。单元测试多采用白盒测试,辅之以黑盒测试。
(2)集成测试是在单元测试的基础上,根据模块结构图将各个模块连接起来,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。主要目标是发现与接口有关的问题。集成测试可以发现概要设计时犯的错误。
(3)确认测试用于验证软件的功能和性能及其他特性是否与用户的要求一致。确认测试主要用于发现需求分析时犯下的错误,一般使用黑盒法测试,以表明软件符合需求说明书的要求,应该仔细设计测试用例和测试过程。确认测试必须有用户参加,或以用户为主,用户应参与设计测试用例,通常情况下,主要使用生产中的实际数据进行测试,测试数据通过用户接口输入。
(4)系统测试是将已经通过确认测试的软件,作为整个计算机系统的元素与计算机硬件、外设和网络等其他因素结合在一起,进行一系列的组装测试和确认测试。系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合的地方。系统测试可以发现问题定义时犯下的错误。
14.C
15.B此程序考查带参数的宏定义,S(k+j)展开后即4*(k+j)*k+j+1,所以结果为l43,答案为B。
16.A\n数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。所谓数据的一致性是指在系统中同一数据在不同位置出现时应保持相同的值。
\n
17.C本题重点考察二维数组名作为实参进行参数传递,在主函数中调用了fun函数,实参为二维数组名a和两个整数4.0,这样对应定义fun函数首部有三种形式,这里采用了第一种形式——行指针,这样在fun函数对s[i][j]进行操作实际上就是对主函数中的a[i][j]进行操作,再分析fun函数的作用便可知,是求二维数组第0列中最大的那个元素。因此C选项正确。
18.B解析:视图设汁一般有3种设计次序,它们分别是自顶向下、自底向上和由内
向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以
单独使用也可混合使用。
注意:数据库概念设计的过程:首先选择局部应用,再进行局部视图设计,最后
对局部视图进行集成得到概念模式。
19.C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:→或↓表示控制流;□表示加工步骤;
表示逻辑条件。
20.D
21.冒泡排序冒泡排序解析:交换排序是指借助数据元素之间的互相交换进行排序的一种方法。冒泡排序是一种最简单的交换排序方法,它是通过相邻元素之间的相互交换逐步将线性表变成有序。
22.3
23.structSTRUstructSTRU解析:结构体类型是构造数据类型,是用户自己定义的一种类型。
结构体类型的定义:
struct结构体类型名
{
成员项表;
定义结构休变量的的形式为:
struct结构体类型名变量1,变量2,....
其中变量包括:一般变量、指针变量、数组变量等。
24.测试实例测试实例解析:进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。
25.概念(或概念级)概念(或概念级)
26.软件工程学软件工程学
27.66解析:strlen()函数的作用是计算字符串的长度并作为函数的返回值,这里的长度不包括串尾的结束标志\'\\0\'。
\'\\t\'是转义字符,代表横向跳若干格:\'\\\''是转义字符,代表双引号:\'\\023\'只代表一个字符,而不管转义字符后面有几个字符;\'\\xAB\'是以两位十六进制数AB表示的ASCII码字符,只代表一个字符;\'\\n\'是转义字符,代表回车换行。
5个字符常量各代表一个字符,再加上字母C,所以返回的长度是6。
28.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
29.bcdefghabcdefgha解析:在本题定义的ss()函数中首先定义了一个指针p和一个字符变量t,然后让p指向参数指针s的下一个位置s+1,并让t保存s位置的字符.然后使用一个while循环将p指向的内容赋给它前面一个位置,即将参数s所指的字符串从第2个字符开始整体往前移动一位。循环结束时,p指向原s串的结束标志处,所以让*(p-1)=t;即是将原s串的第1个字符复制到s串的最后一个位置。整个函数实现的是让一个字符串循环左移一位。故主函数中最后输出的字符串是'bcdefgha'。
30.*t*t解析:程序中,(a+n)代表字符串s最后一个字符后的,'\\0',根据题意,'\\0'所在位置应该赋值为字符串t的第一个字符,字符中t的其他字符根据循环,依次赋值到,所指字符串的尾部,所以[14]应填:*t。
31.3131解析:在函数调用时,形参值和改变,不会改变实参的值。
32.CC解析:枚举的语法规定,当枚举元素没有赋值时,如果前面没有其他枚举元素,其值为0;如果前面有其他枚举元素,其值为前一个元素的值加1,所以his的值为5,her的值为15。
33.参照完整性参照完整性
34.存储或物理或存储结构或物理结构存储或物理或存储结构或物理结构解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。供队列循环使用。可知,循环队列应当是物理结构。
35.3131解析:设队列容量为m,如果:rear>front,则队列中元素个数为rear-front;如果rear<front,则队列中元素个数为m+(rear-front)。本题rear<front,则m=32+(2-3)=31。
36.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d×nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d×nn2=%2d解析:printf函数有两种参数:格式控制参数和输出项参数,其中格式控制参数由两种成分组成;格式说明和普通字符,普通字符将被简单地复制显示,格式说明项将引起一个输出参数项的转换与显示,它是由“%”引出并以一个类型描述符结束的字符串。本题中,n1=和n2=就是普通字符,可以直接显示,又因为n1,n2为整数,所以格式说明项为%d,也可以在%与d之间加上域宽,另外还要在每行输出结束时加转义字符\\n进行换行。所以,应填写n1=%d\\nn2=%d\\n,n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d。
37.11解析:因为x=4,y=3,所以表达式x<y的值为假(0),又因为z=2,所以0<z的值为真(1),故最终输出的结果为1。
38.6211342321
39.printf(“a=%db=%d”aB);printf(“a=%d,b=%d”,a,B);解析:printf函数的一般格式为:“printf(格式控制,输出表列)”。
40.I=1x[I-1]I=1,x[I-1]解析:对于10个数,相临的两个数相加取和,总共要进行9次加法运算,所以空14处应填入I=1。相临的两个数相加取和,放在数组a中,x[0]与x[1]的和存放在a[0]中,所以空15处应填入x[I-1]。
41.B解析:执行p=&a;后,p指向整数a,*p即p的目标变量,也就是a;所以a=*p+b等价于a=a+b,可知a的值最终为11。
42.C本题主要考查数组的定义及初始化。在对数组进行定义和初始化时,需要注意以下事项。
(1)数组的内存空间在编译时确定,定义数组时的n值只能使用常量,不能使用变量。
(2)定义数组时可以不标明数组元素的个数,而是通过赋初值的方式确定,编译系统将自动计算花括号内的数据数量作为数组的元素个数。
(3)数组初始化时,当初值的个数小于整型常量n时,编译系统会自动补0。一旦给定初值数超过n,编译系统将报错。
(4)初始化数组的元素类型,必须与定义数组时的类型一致。
(5)数组名记录了数组在内存中的首地址,其值不能更改。
(6)除字符数组外,不能直接用数组名对数组进行整体输入或输出。
本题中定义了一个3行4列的数组,但没有对其进行赋初值操作,可能我们会想在系统编译时会自动补0,这只是在初值个数小于数组定义大小的情况下的操作,如果没有进行赋初值操作,数组中的元素值是不能被确定的。因此,本题答案选C。
43.C算法具有的5个特性是:有穷性、确定性、可行性、有0个或多个输入、有一个或多个输出。所以说,用C程序实现的算法可以没有输入,但必须要有输出。因此本题答案选C。
44.C解析:关于软件测试的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。本题答案为C。
45.B解析:本题考查变量的定义方法。如果要一次进行多个变量的定义,则在它们之间要用逗号隔开,因此选项A)和D)错误。在选项C)中,变量c是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量b,故选项C)错误。
46.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符合题意。
47.B解析:sizeof()函数的功能是返回字符串所占的字节数,strlen()函数的功能是返回字符串的长度,其中'\\0'是一个转义字符,它占存储空间,但不计入串的长度。
48.B解析:二维数组赋初值时,第一个维数即行数可以省略,但是列数不能省略。因此选项A、C正确。选项D是按数据在二维数组中的顺序初始化。在选项B中,列维数的初始化格式跟定义的维数不一致,为错误选项。
49.A解析:C语言结构体类型变量在程序执行期间所有成员一直驻留在内存中。
50.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。
51.C
52.D解析:本题考核的知识点是for循环语句和复合赋值+=运算符的应用。本题中,i赋初值为1,并对其每次进行加2操作,即i每次均为1~10之间的奇数,s+=i+1,即s=s+i+1,相当于s等于原来的s每次加上1~10之间的偶数,直到i<10不成立.当i=1时,s=0+1+1=2;当i=3时,s=2+3+1=2+4;当i=5时,s=2+4+5+1=2+4+6;当i=7时,s=2+4+6+7+1=2+4+6+8;当i=9时,s=2+4+6+8+9+1=2+4+6+8+10;当i=11时,i<10不成立,结束循环。所以,4个选项中选项D符合题意。
53.D解析:本题考查链表的数据结构,必须利用指针变量才能实现,即一个结点中应包含一个指针变量,用它存放下一结点的地址。
54.C解析:内部静态变量是始终存在的,当函数被调用退出后,内部静态变量会保存数据,再次调用该函数时,以前调用时的数值仍然保留着。Fun(a,5)的值是15,再次调用后sum=15,所以Fun(b,4)=45,s=45+15=60。
55.B解析:本题涉及字符串最基本的两个概念:①字符串的长度是指字符串中字符的个数,但不包括字符串结束符;②以反斜杠“\\”开头的特殊字符序列,意思是把反斜杠后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“\\”连同后面的字符为一个长度。
56.B解析:在程序中如果有带实参的宏,则按#define命令行中指定的字符串从左到右进行置换,如果串中包含宏中的形参,则将程序语句中相应的实参代替形参。将实参带入已经定义的宏中,可以得出答案为“12”。
57.A
58.B解析:在C语言程序中,用单引号把一个字符或反斜线后跟一个特定的字符括起来表示一个字符常量。选项A)、C)和D)为正确的字符常量,而选项B)是用双引号括起来的字符,表示一个字符串常量。
59.A解析:带参数的宏定义的一般形式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天津市河西区名校2027届九年级化学第一学期期中学业水平测试试题含解析
- 湖北省广水市城郊街道办事处中学2027届化学九上期末学业水平测试试题含解析
- 重庆市文理院附属中学2027届九年级物理第一学期期末学业水平测试试题含解析
- 湖南省长沙市湘郡培粹实验中学2027届九上化学期中联考模拟试题含解析
- 医院护理部工作总结暨下一步工作计划
- 单纯超滤考题及精准答案
- 广东省惠州市第五中学2027届化学九上期中学业水平测试试题含解析
- 2027届湖南省郴州市名校物理九年级第一学期期末学业质量监测模拟试题含解析
- 幼儿园大班儿童节活动方案模板
- 诙谐产品测试题和答案分享
- 2026年高考贵州化学真题含答案
- 2026年国家电网招聘之电网计算机考试题库及完整答案(历年真题)
- 《建设项目对风景名胜区影响评价报告编制大纲(试行)》
- 金刚砂耐磨地面应用技术规程
- 急性有机磷农药中毒诊疗指南
- 《国有企业领导人员廉洁从业若干规定》试题(附答案)
- 网络经济学 第四版 课件全套 王晔 第1-8章 网络经济学导论 -网络经济下的公共政策
- (2025)新生儿坏死性小肠结肠炎(NEC)诊疗指南与共识解读
- 锑行业深度:供需增速错配或推升行业进入强景气周期
- 痛风抗炎症治疗指南(2026版)
- 混凝土输送泵车安全技术交底
评论
0/150
提交评论