版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年广东省汕头市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列程序的输出结果是()。#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
2.C语言可执行程序的开始执行点是()。
A.包含文件中的第一个函数B.程序中第一个函数C.程序中的main()函数D.程序中第一条语句
3.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当折半查找值为82的结点时,()次比较后查找成功。
A.11B.5C.4D.8
4.已知i,j,k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是A.scanf("%2d%2d%2d",&i,&j,&k);
B.scanf("%d%d%d",&i,&j,&k);
C.scanf("%d,%d,%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
5.某完全二叉树有256个节点,则该二叉树的深度为()。
A.7B.8C.9D.10
6.有以下程序:#include<stdio.h>structtt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf(“%d,”,p->x);p=p->y;}}程序的运行结果是()。
A.20,30,B.30,17,C.15,30,D.20,15,
7.当c的值不为0时,在下列选项中不能正确将c的值赋给变量a、b的是()。
A.c=b=a;B.(a=c)||(b=c)C.(a=c)&&(b=c);D.a=c=b;
8.以下程序的输出结果是()。#include<stdio.h>main(){intn=4;while(n--)printf("%d",--n);}
A.20B.31C.321D.210
9.程序设计的任务包括()。
A.编写程序代码并上机调试B.确定所用数据结构C.确定所用算法D.以上选项均正确
10.以下说法正确的是()。
A.C程序总是从第一个函数开始执行
B.在C程序中,被调用的函数必须在main函数中定义
C.C程序总是从main函数开始执行
D.C程序中的main函数必须放在程序的开始部分
11.下面说法正确的是()。A.A.一个C程序可以有多个主函数
B.一个C语言的函数中只允许有一对花括号
C.C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内
D.在对C程序进行编译时,可以发现注释行中的拼写错误
12.广义表((a))的表头是(a),表尾是()。A.aB.()C.(a)D.((a))
13.设初始输入序列为1,2,3,4,5,利用一个栈产生输出序列,下列()序列是不可能通过栈产生的。
A.1,2,3,4,5B.5,3,4,l,2C.4,3,2,1,5D.3,4,5,2,l
14.下述程序执行的输出结果是()。#include<stdio.h>main(){chara[2][4];strcpy(a。"are");strcpy(a[1],"you");a[o][3]=&;printf("%s\n",a);}A.are&youB.youC.areD.&
15.表达式a+=a-=a=9的值是()。
A.9B.-9C.18D.0
16.以下叙述中错误的是
A.在程序中凡是以“#”开始的语句行都是预处理命令行
B.预处理命令行的最后不能以分号表示结束
C.#defineMAX是合法的宏定义命令行
D.C程序对预处理命令行的处理是在程序执行的过程中进行的
17.若有定义:Typedefint*T[10];T*a;则以下与上述定义中a类型完全相同的是()。
A.int*a[10];
B.int**a[10];
C.int*(*a)[10];
D.int*a[][10];
18.给出发下定义:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};则正确的叙述为______。
A.数组x和数组y等价B.数组x和数组y的长度相同C.数组x的长度大于数组y的长度D.数组x的长度小于数组y的长度
19.下面哪个不是用来解决哈希表冲突的开放地址法()
A.线性探测法B.线性补偿探测法C.拉链探测法D.随机探测法
20.下列程序的输出结果是()
main()
{inta,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
二、2.填空题(20题)21.为建立如下图所示的存储结构(即每个结点两个域,p是指向结点的指针域,data用以存放整型数),请将定义补充完整。
pdata
a
structlist
{【】;intdata;}a;
22.以下程序段的输出结果是【】。
inti=9;
printf("%o\n",i);
23.如果两个8位二进制数00010101与01000111相加,其结果用十进制表示为【】。
24.软件测试中路径覆盖测试是整个测试的基础,它是对软件【】进行测试。
25.有以下程序:
#include<stdio.h>
main()
{inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;
*q=*(p+5);
printf("%d%d\n",*p,*q);
}
程序运行后的输出结果是【】。
26.有以下定义和语句,则sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdate
{intday;
intmouth;
intyear;
union{intshare1;
floatshare2;
}share;
}a;
27.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
28.以下函数creat用来建立一个带头结点的单向链表,新产生的结点是插在链表头的
末尾。单向链表的头指针作为函数值返回。请填空。
#include<stdio.h>
structlist
{chardata;
structlist*next;
};
structlist*creat;
{structlist*h,*p,*q;
charch;
h=(【】)malloc(sizeof(structlist));
p=q=h;
ch=getchar();
while(ch!='?')
{p=(【】)mallco(sizeof(structlist));
p->data=ch;
q->next=p;
q=p;
ch=getchar();
}
p->next='\0';
【】;
}
29.下面rotate函数的功能是:将n行n列的矩阵A转置未AT,例如:
请填空
#defineN4
voidrotate(inta[][])
{inti,j,t;
for(i=0;i<N;i++)
for(j=0;【】;j++)
{t=a[i][j];【】;a[j][i]=t;}
}
30.Jackson方法是一种面向【】的结构化方法。
31.在scanf()函数调用语句中,可以在格式字符和%号之间加上一个星号,它的作用是跳过对应的输入数据;当输入以下数据时,100200300400500<回车>,下面语句的执行结果为【】。
main()
{inta,b,C;
scanf("%d%*d%d%d",&a,&b,&c);
printf("%d%d%d",a,b,c);}
32.以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。
structnode
{intinfo;
【】link;};
33.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
34.设有以下定义:
structss
{intinfo;structss*link;}x,y,z;
且已建立如下图所示链表结构,
请写出删除点y的赋值语句【】。
35.下列循环的循环次数是______。
intk=2;
while(k=0)
printf["%d",k);
k--;
printf("\n");
36.下列程序的输出结果是______。
#include<stdio.h>
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d%d",x--,y);
}
37.下面程序的输出是【】。
main()
{enumem{em1=3,em2=1,em3};
char*aa[]={"AA"m,"BB","CC:,"DD"};
printf("%s%s%s\n,aa[em1],aa[em2],aa[em3]);
}
38.按“先进后出”原则组织数据的数据结构是[]。
39.以下程序运行后的输出结果是【】。
main()
{charCl,c2;
for(c1='0''c2='9';c1<c2;c1++,c2--)printf("%c%c",c1,c2);
printf("\n");
}
40.数据结构分为逻辑结构与存储结构,线性链表属于【】。
三、1.选择题(20题)41.源程序中应包含一些内部文档,以帮助阅读和理解程序,源程序的内部文档通常包括选择合适的标识符、注释和
A.程序的视觉组织B.尽量不用或少用GOTO语句C.检查输入数据的有效性D.设计良好的输出报表
42.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填______。structlink{chardata;______,}node;
A.structlinknext
B.link*next
C.stuctnextlink
D.structlink*next
43.设有定义:charp[]={‘1’,‘2’,‘3’,},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是______。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
44.下列说法正确的是()。
A.在C程序中,main()函数必须位于程序的最前面
B.在C程序中,一条语句只能写一行而不能写多行
C.C程序是以行为基本单位的
D.C语言本身没有输入输出语句
45.下列叙述中正确的是()。
A.一个算法的空间复杂度大,则其时间复杂度也必定大
B.一个算法的空间复杂度大,则其时间复杂度必定小
C.一个算法的时间复杂度大,则其空间复杂度必定小
D.上述三种说法都不对
46.C语言源程序的最小单位是()。
A.程序行B.语句C.函数D.字符
47.以下数组定义中错误的是A.intx[][3]={0};
B.intx[2][3]={{l,2},{3,4},{5,6}};
C.intx[][3]={{l,2,3},{4,5,6}};
D.intx[2][3]={l,2,3,4,5,6};
48.下列程序的输出结果是()。main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}
A.42B.45C.56D.60
49.以下程序(程序左边的数字为附加的行号)______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}
A.没有错B.第1行有错C.第6行有错D.第7行有错
50.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}该程序中的for循环执行的次数是______。
A.5B.6C.7D.8
51.有以下程序:#include<stdio.h>prt(int*m,intn)inti;for(i=0;i<n;i++)m[i]++;main()}inta[]={1,2,3,4,5},i;prt(a,5);for(i=0;i<5;i++)printf("%d,",a[i]);}程序运行后的输出结果是()。
A.1,2,3,4,5,B.2,3,4,5,6,C.3,4,5,6,7,D.2,3,4,5,1
52.下述关于C语言文件的操作的结论中,正确的是______。
A.对文件操作必须先关闭文件
B.对文件操作必须先打开文件
C.对文件操作顺序无要求
D.对文件操作前必须先测文件是否存在,然后再打开文件
53.有以下程序段
charch;intk;
ch=′a′;k=12;
printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);
已知字符a的ASCII码值为97,则执行上述程序段后输出结果是
A.因变量类型与格式描述符的类型不匹配输出无定值
B.输出项与格式描述符个数不符,输出为零值或不定值
C.a,97,12k=12
D.a,97,k=12
54.若指针ps已正确定义,要使ps指向能够存储8个字符的动态存储单元,以下不正确的语句是()
A.ps=(char*)malloc(8);
B.ps=(char*)malloc(sizeof(char)*8);
C.ps=(char*)calloc(8,sizeof(char))
D.ps=8*(char*)malloc(sizeof(char))
55.线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是()
A.每个元素都有一个直接前件和直接后件
B.线性表中至少要有一个元素
C.表中诸元素的排列顺序必须是由小到大或由大到小
D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件
56.下列程序的输出结果是______。#include<stdio.h>main(){inta,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}
A.2,1B.3,2C.4,3D.2,-1
57.下列数据结构中,按先进后出原则组织数据的是
A.线性链表B.栈C.循环链表D.顺序表
58.以下4组用户定义标识符中,全部合法的一组是()A._mainencludesin
B.If-maxturbo
C.txtREAL3COM
D.intk_2_001
59.有以下程序main(){intp[7]={11,13,14,15,16,17,18},i=0,k=0;while(i<7&&p[i]%2){k=k+p[i]];i++;}printf("%d\n",k);}执行后输出的结果足
A.58B.56C.45D.24
60.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。A.概要设计B.详细设计C.可行性分析D.需求分析
四、选择题(20题)61.
有以下程序:
main
{intx=0,y=5,z=3;
while(z-->0&&++x<5)y=y-l;
printf("%d,%d,%d\n",x,y,z);
}
程序执行后的输出结果是()。
A.3,2,0B.3。2.1C.4,3,-1D.5,2.-5
62.有以下程序:
A.xyyxB.yyyyC.yyxxD.yxyx
63.结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法
A.对象B.数据结构C.数据流D.目标
64.设有如图所示二叉树,对此二叉树后序遍历的结果为()。
A.ZBTYCPXAB.ATBZXCYPC.TZBACYXPD.ATBZXCPY
65.
66.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是()。A.A.把软件划分成模块B.确定模块之间的调用关系C.确定各个模块的功能D.设计每个模块的伪代码
67.
68.
69.
有如下程序:
#include<stdio.h>
main
{FILE*fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1,"abe");
fclose(fp1);
}
若文本文件f1.txt中原有内容为:good。则运行以上程序后文件f1.txt中的内容为()。
A.goodabcB.abcdC.abcD.abcgood
70.有定义如下:
structsk
{inta;
floatb;
}data,*p;
如果p=&data;则对于结构变量data的成员a的正确引用时()
A)(*).data.aB)(*p).a
C)p->data.aD)p.data.a
71.有以下函数该函数的功能是()。
A.计算s所指字符串占用内存字节的个数
B.比较两个字符串的大小
C.计算s所指字符串的长度
D.将s所指字符串复制到字符串t中
72.
73.下列关于栈的描述错误的是()。
A.栈按“先进后出”组织数据B.栈是特殊的线性表,只能在一端插入或删除数据C.栈具有记忆功能D.栈只能顺序存储
74.
75.在下列选项中,哪个不是一个算法一般应该具有的基本特征()。
A.无穷性B.可行性C.确定性D.有穷性
76.
77.设有定义:intX=2;,以下表达式中,值不为6的是()。
A.2*x.x+=2B.x++,2*xC.x*=(1+x)D.x*!x+1
78.
下列程序的运行结果是()。
inty=5,x=14;
y=((x=3*Y,x+1),x-1);
printf("x=%d,y=%d",x,y);
A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27
79.下列描述中正确的是
A.软件指的就是程序B.软件开发不受任何计算机系统的限制
C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:将字符串str中的所有字符复制到字符串b中,要求在每复制3个字符之后插入1个空格。例如,在调用proc()函数之前给字符
串str输入abcdefghijk,调用函数之后,字符串b中的内容则为abcdefghijk。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.规定输入的字符串中只包含字母和。号。请编写函数fun,其功能是:将字符串尾部的。号全部删除,前面和中间的*号不动。
参考答案
1.C本题考查for循环及if语句。当执行到第一个满足(i*i>一20)&&(i*i<=100)这个条件的i出现时,break跳出循环,执行下列的printf语句。
2.C解析:每个C程序有且只有一个主函数main(),且程序必须从main函数开始执行,并在main()函数中结束。
3.C
4.C
5.C
6.D结构体指针变量p指向a数组的第1个元素,所以“p->x”为20。执行“p=p->y”后,p指向数组a的第2个元素,所以输出15。故本题答案为D选项。
7.C选项A是先将a的值赋给变量b,再将变量b的值赋给变量c,不合题意;B选项中由于c的值不为0,在将c的值赋给变量a后,表达式a=c的值为1,不再对表达式b=c计算;对于c选项,表达式a=c的值为1,再求表达式b=c的值为1,然后进行逻辑与运算;D选项将b的值赋给c后再赋给e,故选择C选项。
8.A解析:n--是先使用后自减,--n是先自减后使用。n=4时,执行n--后,n变为3,执行--n后,n变为2,所以,第一次输出时,n为2;同上过程,第二次输出时,n为0。
9.D程序设计是一门技术,需要相应的理论、技术、方法和工具来支持。程序设计的任务包括选项A)、B)、c)等方面。
10.C解析:C程序是由main函数开始运行,通过main函数调用其他函数,所以,选项A)错误;在C程序中,函数不能嵌套定义,即不能在一个函数中定义另一个函数,选项B)错;C程序总是从main函数开始执行,但main函数不必放在最前面,故选项D)错。
11.C解析:本题涉及C语言基本的3个知识点:①C语言规定一个程序只允许有一个主函数,一个函数内可以允许有多个花括号;②C程序的注释部分仅仅是方便程序员阅读,提高程序的可读性和可移植性,它并不参与程序的编译,所以编译器也就不会发现注释中的错误。
12.B
13.B
14.Astrcpy实现的功能是复制,该操作把are复制到a中,aE03E33一’&’,且strcpy(aEl],"you")把you复制到a[l]中,故输出a为“are&you”。
15.D解析:+=、-=、=等符号优先级相同结合性是由右至左,所以选D。
16.D解析:在C语言中,凡是以“#”开头的行都称为编译预处理命令行,如#include、#define、#if等,每行的末尾不得用“;”结束,以区别于C语句、定义和说明语句。选项C中的宏定义为不带参数的宏命令行,宏名之后可以有替换文本,也可以没有。编译预处理是在编译程序对C源程序进行编译前执行的.当然也在程序执行之前执行,因此选项D是错误的。
17.B由题意可知,T是一个数组指针,即int*[],所以使用T*a定义,可知a属于int**[\n]类型。本题答案为B选项。
18.C
19.C
20.B解析:算术运行符“/”、“%”的优先级处于同一级,并且两者的结合性都是从左到右。所以算术表达式运算过程为:a=25/10%9=2%9=2:当逻辑运算符“&&”两边的值都是非零时,逻辑表达式的值才为真(即为1)。所以b=2&&(-1)=1。
21.structlist*nextstructlist*next解析:定义的指针类型变量next也应该是结构体类型的。
22.1111解析:本题考核的知识点是printf()函数的输出格式。本题中定义了一个整型变量i并赋初值为9,然后要求以八进制输出i的值,9的八进制数的表示为11。
23.92
24.结构结构解析:路径测试是白盒测试方法中的—种,它要求对程序中的每条路径最少检查一次,目的是对软件的结构进行测试。
25.运行后报错运行后报错解析:指针q没有指向确定的存储单元,故不能赋值。
26.10410\r\n4解析:结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。int占2个字节,float占4个字节,共用体变量所占的内存长度等于最长的成员的长度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。
27.概念设计阶段(数据库概念设计阶段)概念设计阶段(数据库概念设计阶段)
28.strcurlist*strucrlist*return(h)
29.j<=ia[i][j]=a[j][i]j<=i\r\na[i][j]=a[j][i]解析:将矩阵转置就是将行列互换,所以第一处应填j<=i,第二处应填a[i][j]=a[j][i]。
30.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。
31.100300400100300400解析:scanf的格式控制字符串中,“*”表示跳过对应的输入数据,所以第二个输入数200被跳过去了,只有100,300,400三个数被从键盘输入了进来。
32.structnode*structnode*解析:本题中的结构类型名为structnode,所以空白处应填:structnode*。即定义一个指向自身的结构体指针。
33.c>='a'&&c<='z'c>='a'&&c<='z'解析:小写字母在内存中以ASCII的形式存入,且从a到z依次递增,所以可以直接用c>='a'&&c<='z'判断是不是小写字母;c!='\\n'判断是用换行符结束循环。
34.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:要删除结点y,只需让结点x的指针域指向y结点的指针域所指向的后续结点就可,因此把结点z的地址赋给x的指针域就可以了,即让结点x的指针域指向结点z。而结点z的地址保存在结点y的指针域中,因此只需把结点y的指针域赋值给结点x的指针域即可。
35.00解析:解答本题需要注意表达式“k=0”,它是赋值表达式而不是关系表达式,不论k为何值,表达式k=0总会使k为0,所以不能进入循环。
36.101091101091解析:for(表达式1;表达式2:表达式3)语句的功能是:首先计算表达式1的值,然后检测表达式2的值,若其值为真,则执行循环体语句,执行完毕后,再计算表达式3的值。然后再检测表达式2的值是否为真,若为真,继续执行循环体语句,若为假,则退出循环:第1次循环x>8成立,输出x=10,y=10后,x的值减1,i=1,执行y=++i操作,y的值变为1;判断条件还成立,输出x=9,y=1,然后x的值减1,循环条件不成立,则退出循环。
37.DDBBCCDDBBCC解析:C语言对枚举的定义规定:在枚举中声明的各个枚举元素,如果没有明确指出某个枚举元素的值,它的上一个元素存在并有明确值的情况下,这个枚举元素的值为其上一个元素的值+1。在本题中,没有明确说明枚举元素em3的值,则em3=em2+1=1+1=2,进而可知,在printf()打印函数中,要打印的数组元素是aa[3]、aa[1]、aa[2],因此最后的打印结果应当为“DDBBCC”。
38.栈栈解析:栈和队列都是—种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的—端进行插入或删除操作,是—种“先进后出”的线性表;而队列只允许在表的—端进行插入操作,在另—端进行删除操作,是—种“先进先出”的线性表。
39.9.18274e+0089.18274e+008解析:本题考查的循环条件是c1<c2,当c1>=c2时,退出循环。所以,第一次循环输出09,第二次循环输出18,如此循环直到输出45,之后c1=5,c2=4,不满足循环条件,退出循环。
40.存储结构
41.A解析:源程序文档化主要包括三个方面的内容:标识符的命名、程序中添加注释以及程序的视觉组织。
42.D解析:在单向链表中,由于每个结点需要存储下一个结点的地址,且下—个结点的数据类型与前—个结点的数据类型完全相同,故应为structlink*next。
43.A解析:本题考查的重点是sizeof()的运用。sizeof用于返回其操作数(变量、类型)相对应数据类型的字节数。因此,选项A是错误的,因为p是一个地址,它既不是一个数据类型,也不是数据变量。
44.D解析:本题涉及C语言最基本的4个知识点:①C语言程序是由函数构成的,C程序的基本单位是函数;②每个C程序有且只有一个主函数main(),且程序必须从main()函数开始执行,但是main()函数可以放在程序中的任意位置;③C语言的书写格式是自由的,一行可以写多条语句,一条语句也可以写在不同的行上;④C语言本身不提供输入输出语句,可以通过函数来实现输入和输出操作。
45.D解析:时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。人们都希望选择一个既省存储空间、又省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时间和空间的效率往往是一对矛盾,很难做到两全。但是,这不适用于所有的情况,也就是说时间复杂度和空间复杂度之间虽然经常矛盾,但是二者不存在必然的联系。因此,选项A、B、C的说法都是错误的。故本题的正确答案是D。
46.C解析:C语言源程序的最小单位是函数,所以本题选C。
47.B(16)B)解析:二维数组的初始化有以下几种形式:①分行进行初始化。②不分行的初始化。③部分数组元素初始化。④省略第一维的定义,不省略第二维的定义。选项B)等号右边分了3行,大于等号左边数组的行数2。
48.B解析:在C语言中,数组的下标默认为0,因此数组p的下标范围为:0~7。程序循环过程为:第1次循环i=0,执行循环,并且i自加,得i=1,因此p[i]为p[1]=12,12%2=0,不执行后面的语句;接着进行第2次循环,此时i=1,小于7执行循环,并且i自加,得i=2,因此p[i]为p[2]=13,13%2=1,执行后面的语句;这样一直到退出循环。最后j的值为j=13+15+17=45。
49.B解析:字符串复制函数strcpy包含在头文件string.h中,因此,程序中的第1行文件包含命令是错误的。
50.B解析:该题目测试考生对宏替换的理解。这是一种简单的情况:不带参数的宏。关键要注意在对2*M+1进行宏替换时,要将宏名M原封不动地代进去,得到NUM的形式为2*N+1+1(千万不要随意给N+1加上小括号,使NUM变为2。(N+1)+1,这就是宏名和变量名之间的区别),在将N代进去,得到NUM的值为6。
51.B解析:prt(a,5);用数组名a作函数实参,不是把a数组的值传递给形参m,而是将数组a的首地址传递给指针变量m,使指针变量m指向数组a的首地址,这样他们就占用同一段内存单元。当改变了指针变量所指向的存储单元中的内容,也就改变了数组a中的元素。函数pit的作用是将指针变量m所指向的存储单元中的各元素值加1,也就是数组a中各元素的值加l,所以输出结果为:2,3,4,5,6,
52.B解析:在C中对文件操作必须先打开文件,待文件操作完毕后要关闭文件。对文件以读的方式进行打开操作时,同时会执行文件的检查文件是否存在,不存在将会返回空的文件指针,如果对文件以写的方式打开时,文件不存在,将会自动创建文件,因此在C中打开文件前不必对其检查文件是否存在,故答案为B。
53.D解析:考查printf函数的相关知识。如果要一次进行多个变量的定义,则在它们之间要用逗号隔开,因此选项A)和C)错误。在选项C)中,变量c是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量b,所以正确答案为B)。输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。所以选项D)为正确答案。
54.D
55.D解析:线性表可以为空表,排除选项B。第一个元素没有直接前件,最后一个元素没有直接后件,故排除选项A。线性表的定义中,元素的排列没有规定大小顺序,故选项C也有误,只有D项是正确的。
56.A
57.B解析:栈是限定在二端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按照“先进后出”或“后进先出”的原则组织数据的。注意:队列组织数据的原则是“先进先出”或“后进后出”。注意:数据结构中,栈和队列组织数据的原则。
58.A解析:标识符是以字母或下划线开头,由字母、数字或下划线组成的字符序列(例如,-max含非法字符-),并且用户标识符不能与C语言中的32个关键字同名(例如,int是关键字,不是合法的用户标识符)。选项B中-max不是字母、数字或下划线组成的字符序列,故选项B不正确;选项C中3COM不是由字母或下划线开头,故选项C不正确;选项D中int为C语言中的关键字,故选项D不正确;选项A中全部为合法的标识符,所以,4个选项中选项A符合题意。
59.D解析:本题考核的知识点是while循环语句的程序分析。在主函数中首先定义了一个数组p并初始化,在while后面括号里的表达式中,i初值为0,当p[i]为偶数时,p[i]%2等于0,根据“&&”运算符的规则,其表达式为假退出循环,显然当i=2时,p[i]=14为偶数,此时while后面括号里的毒达式的值为假,退出循环,此时K=p[0]+p[1],即k=11+13。所以最后输出k为24。所以,D选项为所选。
60.D通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说:软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
软件生命周期的主要活动阶段为:
①可行性研究和计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成开发任务的实施计划。
②需求分析。对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件,规格说明书及初步的用户手册,提交评审。
③软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。
④软件实现。把软件设计转换成计算机可以接受的程序代码。即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。
⑤软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。
⑥运行和维护。将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。
61.B
\nwhile语句执行如下:
\n当z=3,x=0时,表达式Z-->0&&++x<5为真,z的值变为2,x的值变为1,执行语句“y=y-1;”,y的值变为4;
\n当z=2,x=1时,表达式z-->O&&++x<5为真,z的值变为1,x的值变为2,执行语句“y=y-1;”,y的值变为3;
\n当z=1,x=2时,表达式z-->0&&++x<5为真,z的值变为0,X的值变为3,执行语句“y=y-1;”,y的值变为2;
\n当z=0,x=3时,表达式z-->0为假,表达式(Z-->O&&++x<5)为假,z的值为-1,不进行++x<5的判断,不执行语句y=y-1;;
\n所以x的值为3,y的值为2,z的值为-1。答案为B。
\n
62.B本题考查do-while语句和if…else语句。do-while语句的功能是先执行循环体再判断条件,所以先判断if语句的条件,y=-4,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=3,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=2,满足while循环条件,继续循环。第三次循环:先判断if语句的条件,y=2,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=1,满足while循环条件,继续循环。第四次循环:先判断if语句的条件,y=-1,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=0,不满足while循环条件,结束循环。所以选项B正确。
63.CC。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《黑衣“超人”》课件
- 分包合同范本(2篇)
- 2025合同自由原则的辩析
- 2025转移财产使用权的合同
- 2025茨威格电气《母线销售合同范本》V
- 2025执业药师合同范本
- 2024年度四川省公共营养师之三级营养师考前冲刺模拟试卷B卷含答案
- 2025关于水果采购合同
- 年产500吨机械零部件可行性研究报告申请建议书
- 中国节育环行业发展监测及市场发展潜力预测报告
- 高中英语外刊-小猫钓鱼50篇
- 【打油诗】72则创意期末评语模板-每页8张
- 传承传统文化教育教案(3篇模板)
- QBT 2460-1999 聚碳酸酯(PC)饮用水罐
- 2024新《公司法》修订重点解读课件
- 《电子吊秤校准规范》公示件
- 《跟上兔子》绘本四年级第1季Can-I-Play-with-You教学课件
- 手术室敏感指标构建
- 书法创作设计方案
- MOOC 软件工程概论-北京联合大学 中国大学慕课答案
- 2023年铁路工务安全规则正文
评论
0/150
提交评论