




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年贵州省安顺市全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列定义数组的语句中,正确的是()。A.#defineN10;intx[N];
B.intN=10;intx[N];
C.int:x[0.10];
D.intx[];.
2.若要求从键盘读入含有空格字符的字符串,应该使用函数______。A.getc()B.gets()C.getchar()D.scanf()
3.以下叙述中正确的是()。A.A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D.c语言中的文件是流式文件,因此只能顺序存取数据
4.下列程序的运行结果为()。
#deflneMAX(x,y)(x)>(y)(x):(y)
main()
{inta=2,b=3,c=1,d=3,t;
printf("%d\n",(MAX(a+b,c+D))*100);
}A.A.500B.5C.4D.400
5.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则
A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次
6.
7.
8.以下程序的输出结果是()。main{intx=0.5;charz=‘a’;printf(“d\n”,(x&1)&&(z<‘z’));}A.0B.1C.2D.3
9.二叉树中第5层上的结点个数最多为________
A.8B.15C.16D.32
10.有以下程序:#include<stdio.h>main(){inti,data;scanf(“%d”,&data);for(i=0;i<8;i++){if(i<=data)continue;printf(“%d,”,i);}}程序运行时输入5并按〈Enter〉键,则程序输出结果为()。
A.5,6,7,B.0,1,2,3,4,C.6,7,D.6,7,8,
11.下列描述中正确的是()。
A.程序就是软件
B.软件开发不受计算机系统的限制
C.软件既是逻辑实体,又是物理实体
D.软件是程序、数据与相关文档的集合
12.有如下程序段
#include"stdio.h"
#include"string.h"
#defineN10
#defineM10
char*find(char(*a)[M],intn)
{char*q;inti;
q=a[0];
for(i=0;i<n;i++)
if(strcmp(a[i],q)<0)q=a[i];
returnq;}
main()
{chars[N][M]={"tomeetme","you","and","he","china"};
char*p;
intn=5;
p=find(s,n);
puts(p);}
则执行后输出的结果为A.A.heB.andC.youD.tomeetme
13.设有定义语句
则以下叙述正确的是().
A.f是指向函数的指针变量,该函数具有_个int类型的形参
B.f是基类型为int的指针变量
C.f是指向int类型一维数组的指针变量
D.f是函数名,该函数的返回值是基类型为int类型的地址
14.若文件指针fp已正确指向文件,ch为字符型变量,以下不能把字符输出到文件中的语句是()。
A.fget(f0,ch);
B.foutc(ch,fo);
C.fprinff(fp,”%c”,ch);
D.fwrite(&ch,sizeof(ch),1,fp);
15.设char型变量x中的值为10100111,则表达式(2+x)(-3)的值为______。
A.10101001B.10101000C.11111101D.1010101
16.以下不属于C语言整数的是()。
A.12fB.25uC.-32D.+20L
17.对称数组A中,每个元素的长度为4个字节,行下标i从1到8,列下标j从1到8。将其下三角中的元素连续存储在从首地址SA开始的存储器内,该数组按行存放是,则元素A[5][8]的起始地址为()。
A.SA+124B.SA+128C.SA+132D.136
18.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少()。
A.1和5B.2和4C.4和2D.5和1
19.栈和队列的共同特点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点
20.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。
A.数据库系统B.文件系统C.人工管理D.数据项管理
二、2.填空题(20题)21.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于copy命令),假定文件在当前目录下。请补全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
n=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
22.结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。
23.以下程序运行后的输出结果是【】。
main()
{intX==1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
24.数据结构分为线性结构和非线性结构,带链的队列属于[]。
25.在面向对象方法中,()是具有相似性质的对象的集合。
26.一个模块直接访问另一个模块的内容,称为【】藕合。
27.以下程序的功能是计算。补足所缺语句。
longf(intn)
{inti;longs;
s=【】;
for(i=1;i<=n;i++)s=【】;
returns;
}
main()
{longs;intk,n;
scanf("%d",&n);
s=【】;
for(k=0;k<=n,k++)s=s+【】;
printf("%1d\n",s);
}
28.如果输入'1'、'2'、'3'、'4',则以下程序的运行结果为【】。
#include<stdio.h>
main()
{charc;
inti,k;
k=0;
for(i=0;i<4;i++)
{while(1)
{c=getchar();
if(c>='0'&&c<='9')break;
}
k=k*10+c-'0';
}
printf("k=%d\n",k);
}
29.数据库系统在三级模式之间提供了两层映像,这两层映像是外模式/模式映像和【】。
30.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
31.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于copy命令),假定文件在当前目录下。请补全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
32.设x、y、z均为int型变量,请写出描述“x或y中至少有一个小于z”的表达式______。
33.下面程序是把从终端读入的20个字符作为字符串放在字符数组中,然后利用指针变量输出上述字符串,请填空。
#include<stdio.h>
main()
{inti;chars[21],*p;
for(i=0;i<20;i++)
s[i]=getchar();
s[i]=【】;
p=【】;
while(*p)putchar(【】);
}
34.下面的程序实现的是从指针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;}
35.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。
36.由计算机、操作系统、DBMS、数据库、应用程序及用户组成的一个整体叫做【】。
37.软件工程的出现是由于【】。
38.若有定义语句chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)
while(s[i]){d[j]=【】;j++;}
d[j]=0;
39.下面程序的功能是两个整数进行交换,请填空。
sub(int*x,int*y)
{【】
z=*x;*x=*y;*y=z;
return;}
main()
{intm,n,*t1,*t2;
scanf("%d,%d",&m,&n);
t1=&m;t2=&n;
【】
printf("%d,%d\n",m,n);}
40.以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。请填空。
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&C);
if(())printf("YES\n");/*a、b、c能构成三角形*/
elseprintf("NO\n");/*a、b、c不能构成三角形*/
}
三、1.选择题(20题)41.以下程序的输出结果是______。fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf("%d",a);}
A.0B.29C.31D.无定值
42.若有说明:intn=2,*p=&n,*q=p;,则以下非法的赋值语句是
A.p=q;B.*p=*q;C.n=*q;D.p=n;
43.设有以下定义:inta[3][3]={1,2,3,4,5,6,7,8,9};int(*Ptr)[3]=a,*p=a[0];则下列能够正确表示数组元素a[1][2]的表达式是_______。
A.*((*ptr+1)[2])B.*(*(p+5))C.(*ptr+1)+2D.*(*(a+1)+2)
44.设有以下声明语句structex{intx;floaty;charz;}example;则下面的叙述中不正确的是______。
A.struct是结构体类型的关键字
B.example是结构体类型名
C.x,y,z都是结构体成员名
D.structex是结构体类型
45.下列程序的运行结果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}
A.sum=18B.sum=10C.sum=9D.sum=25
46.现有格式化输入语句,scanf("x=%d],sum]y=%d,line]z=%dL",&x,&y,&z);,已知在输入数据后,x,y,z的值分别是12,34,45,则下列选项中是正确的输入格式的是
[注]:"]"表示空格,<Enter>表示回车
A.12,34,45<Enter>
B.x=12,y=34,z=45<Enter>
C.x=12C,sumy=34,z=45<Enter>
D.x=12],sum]y=34,line]z=45<Enter>
47.指出下面不了确的赋值语句()。
A.a++;B.a==b;C.a+=b;D.a=1,b=1;
48.下列工具中为需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
49.下列程序的输出结果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}
A.-8B.14C.0D.-24
50.若有如下程序;main(){intm=-i;printf("%d,%u,%o,%X",m,m,m,m);}则程序运行后的输出结果是()。
A.-1,65535,177777,ffff
B.-1,-1,177777,fffe
C.-1,1,177777,ffff
D.-1,65535,177776,fffe
51.若有以下定义和语句()intu=010,v=Ox10,w=10;printf("%d,%d%d\n",u,v,w);则输出结果是
A.8,16,10B.10,10,10C.8,8,10D.8,10,10
52.下列选项中不属于软件生命周期开发阶段任务的是()。
A.软件测试B.概要设计C.软件维护D.详细设计
53.若有如下程序:#include"stdio.h"voidmain(){FILE*fp;fp=fopen("test","wb")fprintf(fp,"%d%.1f,%c%c",5,238.41,'B','h');fclose(fp);}则程序运行后向文件输出的结果是()
A.5238.41BhB.5238.4,BhC.5,238.4,B,hD.5238.41Bh
54.在下列字符序列中,合法的标识符是()
A.P12&.aB.stud_100C.$water.12D.88sum
55.C语言中,能识别处理的文件是()。
A.文本文件和数据块文件B.文本文件和二进制文件C.流文件和文本文件D.数据文件和二进制文件
56.计算机的存储器完整的应包括______。
A.内存储器与外存储器B.磁盘、磁带与光盘C.RAM与ROMD.软盘与硬盘
57.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为______。
A.n-1B.nC.n+1D.2n
58.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是______。
A.if(a>B)&&(b>C))k=1;elsek=0;
B.if((a>B)||(b>C))k=1;elsek=0;
C.if(a<=B)k=0;elseif(b<=C)k=1;
D.if(a>B)k=1;elseif(b>C)k=1;elsek=0;
59.阅读下列程序段,则程序的输出结果为
#include"stdio.h"
#defineM(X,Y)(X)*(Y)
#defineN(X,Y)(X)/(Y)
main()
{inta=5,b=6,c=8,k;
k=N(M(a,b),c);
printf("%d\n",k);
A.3B.5C.6D.8
60.在下列字符序列中,合法的标识符是()
A.P12&.aB.stud_100C.$water.12D.88sum
四、选择题(20题)61.
62.有以下程序(注:字符a的ASCIl码值为97)}程序运行后的输出结果是()。
A.789B.abcC.7890D.979899
63.
64.层次型、网状型和关系型数据库划分原则是()。
A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式
65.有下列程序:
main()
{inti,j,x=0;
for(i=0,i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++:
}
x++:
}
printf("x=%d\n"x);
}
程序执行后的输出结果是()。
A.x=4B.x=8C.x=6D.x=12
66.有以下程序:
程序运行后的输出结果是()。.
A.3,3B.1,1C.2,3D.1,2
67.下列数据模型中,具有坚实理论基础的是()。A.层次模型B.网状模型C.关系模型D.以上三个都是
68.下列关于C语言文件的叙述中正确的是()。
A.文件由一系列数据依次排列组成,只能构成二进制文件
B.文件由结构序列组成,可以构成二进制文件或文本文件
C.文件由数据序列组成,可以构成二进制文件或文本文件
D.文件由字符序列组成,其类型只能是文本文件
69.
70.
71.有以下程序:
若要按以下形式输出数组右上半三角:
则在程序下划线处应填人的语句是()。
A.i-1B.i+1C.iD.4-i
72.分布式数据库系统不具有的特点是
A.数据的物理分布性和逻辑整体性B.位置透明性和复制透明性
C.事物管理的集中性D.数据冗余
73.
74.
75.以下程序爱中,与语句:
76.下面描述中错误的是()。
A.系统总体结构图支持软件系统的详细设计
B.软件设计是将软件需求转换为软件表示的过程
C.数据结构与数据库设计是软件设计的任务之一
D.PAD图是软件详细设计的表示工具
77.
78.
79.C语言中用于结构化程序设计的三种基本结构是A.顺序结构、选择结构、循环结构
B.if、switch、break
C.for、while、do-while
D.if、for、continue
80.若x=5,y=3则y*=x+5;y的值为___________.
A.10B.20C.15D.30
五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:计算并输出m以内最大的6个能被7或11整除的自然数之和。m的值由主函数传人。例如,若m的值为600,则函数的值为3515。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写一个函数proc(),它的功能是:比较2个字符串的长度(不得调用C语言中求字符串长度的函数),函数返回较长的字符串。若2个字符串长度相等,则返回第1个字符串。例如,若输入jiangxi<;Enter>;beijing<;Enter>;则函数返回jiangxi。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.A[解析]数组说明的一般形式为:类型说明符数组名[常量表达式]。B)中N是变量,不能用变量定义数组长度。C)选项中数组长度是非法的一串数字。定义数组时必须为其指明长度,D)选项中数组长度为空,所以非法。\u3000\u3000
2.B解析:函数getchar()的作用是从终端(或系统隐含指定的输入设备)输入一个字符,且只能接受—个字符(回车符也算是—个字符),所以getchar()不能用宋读入字符串。scanf()函数要求按—定的格式来输入,若同时输入多个字符串,则以空格或回车分割,所以空格不能被识别为—个字符,也就无法读入空格字符。函数gets()的作用是从终端输入—个字符串\u3000(包括空格)至字符数组,直到遇到换行符为止,所以可以用来键盘读入空格字符。
3.AB)选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。c)选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可。D)选项中,C语言中的文件可以进行随机读写。故本题答案为A)。
4.A解析:本题考查带参数的宏的定义及相关运算:(x)>(y)(x):(y)是x>y时输出x,否则输出y,调用(MAX(a+b,c+d))*100时,(a+b=5)>(c+d=4),所以输出a+b=5,所以x=5*100。
5.B解析:本题考查while语句的使用。本题考查逻辑非运算符和不等于运算符的区别,逻辑非运算符'!'的优先级大于不等于运算符'!='的优先级。
6.A
7.C
8.B(x&1)&&(z<‘z’)=(0.5&1)&&(‘a’<‘z’)=1&&1=1,故选择B选项。
9.C
10.Cmain函数首先定义一个整型变量data,使用scanf函数输入一个整数赋给data。接着执行for循环,i的值为0~7。当i的值不大于data的值时,使用continue语句跳过当前循环,进入下一轮循环。若从键盘输入5,data的值为5,i取值为0~5时,都不执行printf语句。当i取值为6、7时,执行printf语句,输出6,7。故本题答案为C选项。
11.D\r\n软件是与计算机操作相关的计算机程序、规程、规则,以及可能有的文件、文档及数据;软件开发要受到计算机系统的限制;软件是一个逻辑实体,不是物理实体,软件具有抽象性。因此选项D正确。
12.B在本题中,首先定义了两个宏N和M,大小都为10,然后定义了一个返回指针的函数find,该函数带有两个形参,第一个为字符型的指针数组,第二个为整型变量,在函数体中,首先定义了一个指针变量q,并将形参中指针数组的第一个元素赋值给q,然后执行for循环,在循环体中,首先执行条件判断语句,其条件为strcmp(a[i],q)<0(strcmp函数的作用是比较两字符串的大小,如果相等,则返回0值,如果参数中的第一个字符串大,则返回正值,否则返回负值),如果结果为真,说明指针数组当前元素所指向的字符串比q所指向的字符串小,此时,程序执行将当前指针数组元素赋值给p,最后返回p,通过上面的分析我们可以看出,find函数的作用是找出指针数组中各元素所指向字符串的最小字符串。
在主函数中,定义了一个二维数组s,并赋了初值,然后定义一个指针变量p,用来存放函数find的返回值。调用函数find的参数分别为s和5,结合形参看find函数,不难知道调用find函数就是找出二维数组s中各字符串中最小的字符串,那么应该为and。此时,指针变量p指向字符串“and”的首地址,然后执行puts(p),完成该字符串的输出。因此,本题正确的答案是B。
13.A
14.A函数fgete()从文件读入一个字符到指定变量。函数fputc()将指定字符写入审文件中,函数fprinff(),fwrite()均是写入文件操作函数。因此选项B,c。D错误。答案为A选项。
15.D解析:异或运算符(^)的运算规则是:参加运算的两个相应位同号,则结果为0(假);异号则为1(真)。取反运算符(-)的运算规则是:对一个二进制数按位取反,即将0变为1,1变为0。本题(-3)是对3(二进制形式为00000011)按位取反即11111100。表达式(2+x)(-3)的值就等价于(00000010+10100111)^11111100,结果为01010101。
16.AC语言中整型常量,从表示形式来看,有十进制、八进制或十六进制;从符号位来看,有有符号整数和无符号整数两类。选项A的“12f”是float类型的实数,不是整数;选项B的“25u”属于无符号整数;选项C的“-32”是十进制形式的有符号整数;选项D的“+20L”是十进制形式的长整数。故本题答案为A选项。
17.B
18.B
19.C解析:考查栈和队列概念的掌握。栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种'后进先出'的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种'先进先出'的线性表。模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。
20.A在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统这一阶段。数据库系统阶段用数据模型来表示复杂的数据,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户既可使用查询语言或终端命令操作数据库,也可以用程序方式来操作。数据库管理系统提供了数据控制功能。
21.3!feof(f1)3\r\n!feof(f1)解析:要实现文件复制,需要指定源文件及目的文件,因此在命令行下执行程序时至少要指定两个参数,加上程序名本身,故argc的值至少为3,因此第一空应填3。while循环中语句fputc(fgetc(f1),(f2);的目的是将f1中的字符依次读出并写入到f2对应的文件中去,直至文件f1结束为止,因此第二空为!feof(f1)。
22.模块化模块化
23.2121解析:外层switch语句后面括号里的x的值为1,所以执行从case1:后面的语句开始执行,而case1:后面语句也为switch语句,这个switch语句后面括号里的y的值为0,所以从该switch语句里的case0:开始执行即执行a++,这时a的值变为1,执行完毕,遇到break语句,退出内层switch语句,又回到外层switch语句,继续执行case1:下面的语句即case2:执行完毕后,a自加1变为2,b自加1变1。所以最后输出的a和b的值为21。
24.线性结构线性结构解析:与栈类似,队列也是线性表,也町以采用链式存储结构。
25.类类解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同操作性质的对象的集合,是已经定义了的关于对象的特征、外观和行为的模板。所以类是对象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是其划应类的一个实例。
26.内容内容
27.1s*i0f(k)
28.k=1234
29.模式/内模式映像模式/内模式映像解析:映像即一种对应规则,指出映像双方如何进行转换。数据库系统在三级模式之间提供了两层映像,这两层映像是外模式/模式映像与模式/内模式映像。
30.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
31.3!feof(f1)3\r\n!feof(f1)解析:要实现文件复制,需要指定源文件及目的文件,因此在命令行下执行程序时至少要指定两个参数,加上程序名本身,故argc的值至少为3,因此第一空应填3。while循环中语句fputc(fgetc(f1),f2);的目的是将f1中的字符依次读出并写入到f2对应的文件中去,直至文件f1结束为止,因此第二空为!feof(f1)。
32.x<z‖y<zx<z‖y<z解析:本题考查逻辑运算符和逻辑表达式。x或y中至少有一个小于z,即x<z或y<z,是“或”的关系。
33.\0's*p++\\0'\r\ns\r\n*p++解析:本题先通过for循环从键盘接收20个字符,然后在串尾赋一空值'\\0'作为串结束标志。再使指针p指向串的首地址。最后通过while循环对字符串进行扫描并输出。
34.
35.顺序存储(顺序方式存储)顺序存储(顺序方式存储)解析:二分法查找对表的要求是有序的顺序表,即第一要求是数据元素有序,第二要求是按顺序方式存储。
36.数据库系统数据库系统
37.软件危机的出现软件危机的出现
38.s[i++]s[i++]解析:本题中为了能实现字符串的拷贝,需要使字符数组s从头到尾依次遍历其所有元素。本题应使用i的自增后置来实现。
39.intz;sub(t1t2);
40.(a+b>C)&&(a+c>B)&&(b+c>A)(a+b>C)&&(a+c>B)&&(b+c>A)解析:本题主要考查运算符逻辑与“&&”的用法。
41.C解析:函数fun的形参是简单变量,main函数中调用fun时只是把实参的值传递给形参,形参的改变不影响实参,所以调用完函数fun后a的值不发生变化,即a=31。
42.D解析:本题中首先定义了一整型变量n并赋初值为2,接着定义了一个整型指针变量p并让它指向n,接着又定义了一指向指针的指针变量q。选项A中给指针变量p赋值q,故这个赋值语句正确。选项B中*p=*q就是将*q的值赋给指针变量p所指向的变量n,故这个赋值语句不是非法的赋值语句。选项C中是将*q的值赋给变量n,故这个表达式不是非法的赋值语句。选项D中p为一指针变量,应该将一地址赋给它,而在此选项的表达式中将变量n而不是n的地址赋给它,故这个表达式不合法。
43.D解析:*(p+5)所指向的数组元素是a[1][2],所以B不对;ptr所指向的是—个含有三个元素的一维数组,所以A和C是错误的。
44.B解析:example是结构体变量名。
45.B解析:本题考查带参数的宏的定义及相关运算:S=m+n+m+n*k=1+2+1+2*3=10。
46.D解析:若在scanf的格式化控制串中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符。格式化输入函数必须严格按照双引号里面的格式进行输入。在格式化输出函数中,格式控制串中除了合法的格式说明外,可以包含任意的合法字符。
47.B解析:选项A中a++相当于a+1,是赋值语句;选项C和选项D也是赋值语句。只有选项B不是,因为选项B中“==”符号是等于的意思,并不是赋值运算符,所以,4个选项中B符合题意。
48.D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。
49.D解析:表达式a+=a-=a*a看起来复杂,其实将它分成两个表达式来计算就简单了:①第一个表达式(a-=a*a)=(a=a-a*a=-12);②第二个表达式(a+=a-=a*a)=(a=a+a=-24)。
50.A解析:-1为带符号的整型数,在内存中的存放形式为1111111111111111。按带爷号的整型格式输出仍为-1;按无带符号的整数输出为65535(将1111111111111111转换为十进制数);按八进制数输出为177777(将1111111111111111转换为八进制数,方法为由低位到高位,每三位一组,用一个八进制数代替);按八进制数输出为ffff(将1111111111111111转换为十六进制数,方法为由低位到高位,每四位一组,用一个十六进制数代替)。
51.A
52.C解析:软件生命周期由软件定义、软件开发和软件维护三个时期组成,每个时期又进一步划分为若干个阶段。软件定义时期的基本任务是确定软件系统的工程需求。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发时期是具体设计和实现在前一时期定义的软件,它通常由下面五个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久地满足用户的需要。即当软件在使用过程中发现错误时应加以改正;当环境改变时应该修改软件,以适应新的环境;当用户有新要求时应该及时改进软件,以满足用户的新要求。根据上述对软件生命周期的介绍,可知选项C中的软件维护不是软件生命周期开发阶段的任务。因此,本题的正确答案是C。
53.B解析:本题对文件test输出4个数据,第一个5原样输出,第二个238.41只保留小数点后1位,然后输出一个‘,’,再连续输出两个字符‘B’和‘h’。所以最终的输出结果是5238.4,Bh。应该选择B。
54.B
55.B解析:在计算机中,对于输入输出均采用数据流的形式。文件按照存取方式分为顺序存取文件和随机存取文件;按照存储形式分为二进制文件和文本文件。文本文件存储的是字符的ASCII码,文件的内容可以直接进行输入输出;二进制文件直接将字符存储,不能将二进制文件的内容直接输出到屏幕上。所以,C语言能够处理的文件是文本文件和二进制文件。
56.A解析:存储器包括内部存储器和外部存储器,而选项B、D只能统称为外部存储器,选项C属于内部存储器。
57.C解析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。
58.A解析:“a>b?(b>c?1:0):0”的求解顺序是:先判断a>b是否为真,如果为真,则执行b>c?1:0,如果b>c为真,则(b>c?1:0)的值为1,从而整个表达式返回1,否则整个表达式返回0;如果a仁b,则表达式返回0。因此功能等价的语句应为if((a>b)&&(b>c)k=1;elsek=0;。
59.A解析:带参数的宏定义命令行形式如下:#define宏名(形参表)替换文本。首先进行M的宏替换,之后再进行N的宏替换,替换后的表达式为(a)*(b)/(c)。
60.B
61.B
62.A因为小写字符a,b,c的ASCIl码的值分别为97,98,99,而在d0…while循环语句中,每次对字符的ASCIl码的值取余数并输出,所以分别输出7,8,9,选项A)正确。
63.A
64.D层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的联系方式。
65.B\n在第1次
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度建筑工人劳动合同(附创新技术培训内容)
- 二零二五年度国际酒店餐饮业劳务供应协议
- 二零二五年度生活垃圾清运与环保技术研发应用合同
- 电子商务平台代运营服务协议
- 采购合同辣椒采购合同
- 音乐课本中的歌曲背后的故事征文
- 专业保洁服务合作协议
- 简爱人物形象塑造分析:世界名著导读课程教案
- 人力资源招聘与培训流程说明
- 企业绿色信用修复服务协议
- 心理健康教育课《在变化中成长》课件
- JJF 1341-2012 钢筋锈蚀测量仪校准规范-(高清现行)
- 人教版数学五年级下册 全册各单元教材解析
- 给水排水管道工程质量通病以及防治
- 偏瘫临床路径流程
- 计算机视觉全套课件
- GB-T 9251-2022 气瓶水压试验方法(高清版)
- 基于单片机的电子广告牌设计毕业设计论文
- 中国联通IMS接口规范 第三分册:Sh接口 V1.0
- 判断抽样(课堂PPT)
- 通用横版企业报价单模板
评论
0/150
提交评论