




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年黑龙江省七台河市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s;则以下选项中正确的是()。
A.if(s1>s2)S;
B.if(strcmp(s1,s2))S;
C.if(strcmp(s2,sl)>O)S;
D.if(stremp(s1,s2)>O)S;
2.写出a*(b-c*d)+e-f/g*(h+i*j-k)的逆波兰表达式()。
A.a(b-c*d)*+e-(f/g(h+i*j-k)*)
B.a(b-(cd*))*+e-(fg/(h+ij*-k)*)
C.a(bcd*-)*+e-(fg/hij*+k-*)
D.abcd*-*e+fg/hij*+k-*-
3.数据结构在计算机内存中的表示是指()。A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系
4.已知字母A的ASCII码为十进制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的输出是_________。
A.67,DB.B,CC.C,DD.不确定的值
5.有如下形式的函数:intfun(inta[4][5],int*p[10],intn){…}调用函数之前需要对函数进行说明,即所谓的函数向前引用说明,以下对fun函数说明正确的是()。A.intfun(intb[][5],int*r[],intm);
B.intfun(inta[4][],int*p[10],intn);
C.intfun(inta[][],int*p[],intn);
D.intfun(inta[],int*p[],intn);
6.已知有结构体:structsk{inta;floatb;}data,*p;若有p=&data,则对data的成员a的正确引用是()。
A.struct是结构体类型的关键字
B.st是结构体类型名
C.x、y、z都是结构体成员名
D.structstr是结构体类型名
7.下面软件中,属中应用软件的是()
A.UnixB.人事管理系统C.数据库管理理系统D.DOS
8.若f(n)=3n2+2n+1,则f(n)=()。
A.O(n2)B.O(n)C.O(2n)D.O(3n2)
9.若有以下程序段intm=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后输出结果是A.0X0B.0x0C.0D.0XABC
10.
11.已知字符A的ASCII值是65,字符变量c1的值是‘A’,c2的值是‘D’,则执行语句“printf(“%d,%d”,c1,c2-2);”的输出结果是()。
A.65,68B.A,68C.A,BD.65,66
12.设有定义:intx[2][3];,则以下关于二维数组X的叙述错误的是()。
A.x[0]可看做是由3个整型元素组成的一维数组
B.x[0]和x[l]是数组名,分别代表不同的地址常量
C.数组X包含6个元素
D.可以用语句x[o]=0;为数组所有元素赋初值0
13.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A.10B.8C.6D.4
14.软件工程的出现是由于()。A.A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展
15.以下叙述中正确的是_____。A.用C程序实现的算法必须要有输入和输出操作
B.用C程序实现的算法可以没有输出但必须要输入
C.用C程序实现的算法可以没有输入但必须要有输出
D.用C程序实现的算法可以既没有输入也没有输出
16.若有如下形式的函数:intfun(inta[],int*p,intn){…}调用函数之前需要对函数进行声明,则以下选项中错误的是()。
A.intfun(int,int,int);
B.intfun(inta[],int*p,intn);
C.intfun(inta[],int*,int);
D.intfun(int[],int*,int);
17.数据库设计包括两个方面的设计内容,它们是()。
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
18.待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码33被放到第()个位置。
A.3B.5C.7D.9
19.
20.计算机算法指的是()。
A.计算方法B.排序方法C.解决问题的有限运算序列D.调度方法
二、2.填空题(20题)21.下面程序的运行结果是【】。
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
22.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。
23.顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。
24.有以下程序:
#include<stdio.h>
main()
{charc;
while((c=getchar())!='?')putchar(--c);
}
程序运行时,如果从键盘输入Y?N?<回车>,则输出结果为【】。
25.有以下程序
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
执行后输出结果是______。
26.在ER图中,矩形表示【】。
27.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1
11
121
1331
14641
┇
其构成规律是:
(1)第0列元素和主对角线元素均为1
(2)其余元素为其左上方和正上方元素之和
(3)数据的个数每行递增1
请将程序补充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;
x[0][0]=1;
for(i=1;i<N;i++)
{x[i][0]=【】=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
}
28.一棵二叉树第6层(根结点为第一层)的结点最多为______个。
29.若a=10,b=20,则表达式!(a<b)的值是【】。
30.若给fun函数的形参s传送字符串“∪∪6354'abc"(其中∪表示空格字符),则函数的返回值是【】。
longfun(chars[])
{longn;intsign;
for(;isspace(*s);s++);
sign=(*s=='-')?-1:1;
if(*s=='+'||*s=='-')s++;
for(n=0;isdigit(*s);s++)
n=10*n+(*s-'0');
returnsign*n;
}
31.设x、y、z为整型变量,且x=2,y=3,z=4,当执行以下语句后,x的值是______。
x*=(y++)+(--z);
32.下列程序的输出结果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
33.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。
34.当调用函数时,实参是一个数组名,则向函数传递的是【】。
35.下列程序的运行结果是______。
#include<stdio.h>
func(a,B)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main0
{intk=5,m=3,p;
p=func(k,m);
printf("%d",p);
p=func(k,m);
printf("%d\n",p);
}
36.以下程序的输出结果是【】。
voidreverse(inta[],intn)
{inti,t;
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf("%d\n",s);
}
37.若按功能划分,软件测试的方法通常分为______测试方法和黑盒测试方法。
38.设有定义语句:inta[][3]={{0},{1},{2}};,则数组元素a[1][2]的值为()。
39.与十进制数101等值的二进制数为【】。
40.设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为【】。
三、1.选择题(20题)41.有以下程序#include<stringh>main(intargc,char*argv[]){inti,len=0;fot(i=1;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}经编译连接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行exabcdefgh3k44执行后输出结果是
A.14B.12C.8D.6
42.若二维数组a有m列,且设a[0][0]位于数组的第一个位置上,则计算任意元素a[i][j]在数组中位置的公式为______。
A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1
43.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),
A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定
44.以下语句的输出结果是()printf("%d,%d,%u\n",016,16,-16);
A.16,16,65420B.14,16,6542C.16,16,-16D.14,16,-16
45.下列说法正确的是
A.int(**def)[10];----def指向一个指针,该指针指向10个整型变量构成的数组
B.int*(*gh[10]);---gh指向一个指针,该指针指向10个整型变量构成的数组
C.int*(*gh[10]);---gh是一个指针,指向由10个指向整型变量的指针构成的数组
D.A,C均正确
46.对象实现了数据和操作的结合,是指对数据和数据的操作进行______。A.A.结合B.隐藏C.封装D.抽象
47.读程序:#include<stdio.h>f(intb[],intn){inti,r;r=1;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}上面程序的输出结果是()。
A.720B.120C.24D.6
48.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}该程序中的for循环执行的次数是______。
A.5B.6C.7D.8
49.下列程序的输出结果是()。#include<stdio.h>#include<string.h>main(){chara[]="\n123\\";printf("%d,%d\n",strlen(a),sizeof(a));}
A.5,6B.5,5C.6,6D.6,5
50.下列各数据类型不属于构造类型的是()。
A.枚举型B.共用型C.结构型D.数组型
51.有以下程序: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
52.当前在数据库管理系统的研究方面,较活跃的是()
A.关系数据库B.网状数据库C.空间数据库D.层次数据库
53.若有函数内部说明:inta[3][4];则数组a中各元素
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
54.以下选项中,与k=n++完全等价的表达式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
55.可在C程序中用作用户标识符的一组标识符是
A.andB.DateC.HiD.case_2007y-m-dDr.TomBigl
56.以下函数值的类型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不确定C.voidD.float
57.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是()。
A.一个整型变量,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针,是指向的输入数据放在内存中的起始位置
D.一个存储区,存放要读的数据项
58.数据管理技术发展的三个阶段中,()没有专门的软件对数据进行管理。Ⅰ.人工管理阶段Ⅱ.文件系统阶段Ⅲ.数据库阶段()
A.仅ⅠB.仅ⅢC.Ⅰ和ⅡD.Ⅱ和Ⅲ
59.已有定义:charc;,程序前面已在命令行中包含ctype.h文件。不能用于判断c中的字符是否为大写字母的表达式是()。
A.isupper(c)
B.'A'<=c<='Z'
C.'A'<=c&&c<='Z'
D.c<=('z'-32)&&('a'-32)<=c
60.阅读以下程序#include<stdio.h>main(){IntCase;floatprintF;printf("请输入2个数:");scanf("%d%f",&Case,&printF);printf("%d%f\n",Case,printF);}以下说法正确的是()。
A.定义浯句出错,Case是关键字,不能用作用户自定义标识符,printF不能用作用户自定义标识符
B.定义语句出错,Int无法被识别
C.定义语句无错,scanf不能作为输入函数使用
D.定义语句无错,printf不能输出Case的值
四、选择题(20题)61.下列数据结构中,能用二分法进行查找的是()。
A.顺序存储的有序线性表B.结性链表C.二叉链表D.有序线性链表
62.以下选项中不能作为C语言合法常量的是
A.’Fab’B.0.7e+9C."\b"D.’\01211’
63.现有格式化输入语句,
已知在输入数据后,
x,Y,z的值分别是23,56,78,则下列选项中正确的输入格式是()。
A.23,56,78<Enter>
B.x=23,y=56,z=78<Enter>
C.x=23C,sumy=56,z=78<Enter>
D.x=23],sum]y=56,line]z=78<Enter>
64.在数据流图(DFD)中,带有说明的箭头表示
A.模块之间的调用关系B.程序的组成成分C.控制程序的执行顺序D.数据的流向
65.
66.若有说明语句:double*p,a;则通过scanf语句正确给输入项读入数据的程序段是()。A.A.*p=&a;scanf("%1f”,p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%",*p);
D.p=&a;scanf("%1f",p);
67.有三个关系R、S和t如下:由关系R和s通过运算得到关系T,则所使用的运算为()。
A.笛卡儿积B.交C.并D.自然连接
68.有以下程序
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.A.1,2,3,4,5,
B.3,4,5,6,7,
C.2,3,4,5,6,
D.2,3,4,5,1,
69.有下面程序段:
则程序段的输出结果是()。
A.18B.19C.20D.21
70.假定已建立以下链表结构,且指针P和q已指向如图所示的结点:
则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是()。
A.p一>next=q一>next;flee(q);
B.p=q一>next;free(q);
C.p=q;free(q);
D.(*p).next=(幸q).next;ffee(p);
71.以下选项中非法的字符常量是()。
A.\101B.\65C.\xffD.\019
72.下面程序的输出结果是()。
#include"string.h"
fun(char*w,intn)
{chart,*s1,*s2;
s1=w;s2=w+n-1;
while(s1<s2)
{t=*s1++;
*s1=*s2--;
*s2=t;
}
}
main()
{staticcharp[]="1234567";
fun(p,strlen(p));
printf("%s",p);
}
A.7654321B.1717171
C.7171717D.1711717
73.
74.
若变量已正确定义,有以下程序段
i—o;
doprintf("%d,",i);while(i++);
printf("%d",i)
其输出结果是()。
A.0,0B.0,1C.1,1D.程序进入无限循环
75.表示关系M<=N<=P的C语言表达式为()。
A.(M<=N.AND(N<=P.
B.(M<=N.&&(N<=P.
C.(M<=N<=P.
D.(M<=N.&(N<=P.
76.以下定义语句中正确的是()。
A.
B.
C.
D.
77.设有栈S和队列Q,其状态为空,元素a1,a2,a3,a4,a5,a6依次入栈,出栈的元素则进入队列Q,若6个元素出队列的顺序是a2,a3,a4,a6,a5,a1,则栈的容量至少是
A.6B.4C.3D.2
78.
79.
80.
五、程序改错题(1题)81.由N个有序整数组成的数列已放在一维数组中,下列给定程序函数fun()的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(10w%high)。然后用m与中间位置(mid)上元素的值进行比较。如果m的值大于中间位置元素的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中,直到low>;high,查找结束。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.请编写函数proc,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。例如,若字符串数组中的M个字符串为:ABCDBCDEFGCDEFGHI则合并后的字符串内容应该是ABCDBCDEFGCDEFGHl。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#defineM3#defineN20voidproc(chararr[M][N],char*b){}voidmain{charstr[M][N]={"ABCD","BCDEFG","CDEFGHl"),i;chararr[100]={"##################"};printf(”Thestrin9:kn”);for(i=0;i<M;i++)puts(str[i]);printf("\n");proc(str,arr);printf("TheAstring:\n");printf("%S",arr);printf("\n\n");}
参考答案
1.D在C语言中,不能直接比较两个字符串的大小,必须用特定的函数来完成,选项A错误;选项B不管大于还是小于都执行S,不符合题意;选项C正好相反,当s2大于s1时,执行语句S,可知选项D正确。
2.D
3.A数据结构在计算机内存中的表示指的是数据的存储结构。数据的存储结构是指数据的逻辑结构在计算机中的表示。数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。
4.A解析:由于字符“5”和“3”的ASCII码相差为2,所以ch1经过运算后的值应为65+2=67;同理,ch2经过运算后的值应为65+3=68,即是字符“D”。
5.A题干中函数的定义指出了函数名为fun,返回值的数据类型为int。函数包含3个参数,第1个参数是整型的二维数组,第2个参数是整型数组,第3个参数是整型变量。在定义二维数组时,必须指定第二维的长度,所以选项B、C、D错误,选项A正确。本题答案为A选项。
6.B解析:本题主要考查结构类型的定义:struct是结构体类型的关键字;structstr是结构体类型名;x、y、z都是结构体成员名;st是结构变量名。
7.B
8.A
9.C解析:格式字符x或x是以十六进制无符号形式输出整型数(不带前导0x或OX)。对于x用abc输出,X用ABC输出。
10.D
11.D输出时以%d整型格式输出,所以输出字符变量c1的值为65,c2-2的值为68-2,即66。故本题答案为D选项。
12.Dx[0]是不能赋值的。
13.C根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
14.C解析:软件工程的基本概念。软件工程概念的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。
15.C解析:算法的特性中包括“有零个或多个输入”及“有一个或多个输出”这两个特性。一个算法得到的结果就是算法的输出,没有输出的算法是没有意义的,所以一千算法必须至少有一个输出。
16.AC语言中,函数声明的函数名、返回值类型和参数列表必须与函数定义相同。其中参数列表中可以省略参数名。题干中,fun函数返回整型,3个参数分别是:整型指针、整型指针、整型。选项A中,第1个参数应该是整型指针类型,第2个参数也应该是指针类型,错误;其他选项都正确。故本题答案为A选项。
17.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。
18.BB.【解析】快速排序的基本思想是:从表中选取一个元素(如本题中的33),将表中小于此元素的移到前面,大于此元素的移到后面,结果把线性表分割成两部分(两个子表),此元素插入到其分界线的位置处。然后分别对两个子表再次分割……本题中33作为分割的中界线,第一趟排序后排在比它小的18、9、25、12后面。
19.D
20.C
21.1-21,-2解析:题中外层while循环的循环条件是y--!=-1,即y>=0;内层do…while循环的循环条件是y--即y-->0,y>=1。注意:break和continue语句在循体中的作用。
22.完整性控制完整性控制
23.相邻相邻
24.XX解析:程序是从键盘缓冲区循环接收字符,并输出接收到的字符在ASCII码表中的前一个字符,直到接收到‘?’为止。
25.00解析:本题中的for循环共执行了6次,每执行一次将相应i的值相乘,最后当i=-1时停止循环.该for循环执行完后t的值为5*4*3*2*1*0=0,故最后输出I的值为0。
26.实体实体解析:在E-R图中用矩形表示实体;椭圆形表示属性;菱形表示联系。
27.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用两重循环。在第一层循环中将每行的第0列赋值为1,对角线上的元素赋值为1显然在第一个空中应该填入对角线上的元素即x[i][i],在第二重循环中给每行其他元素赋值,而在每行中除了第0列和对角线的元素外其他元素为其对应的上一行中同列和同列的前一列的元素相加,所以在第二个空中应该填入x[i-1][j-1]+x[i-1][j]。
28.3232解析:二叉树第k层上,最多有2k-1(k≥1)个结点。第6层的结点数最多是26-1=32。注意区别“二叉树的结点最多数”和“某一层的结点最多数”。前者的计算是深度为m的二叉树最多有2m-1个结点。
29.00解析:已知a=10,b=20,所以逻辑表达式a<b的值为true,即为1,在这个表达式前面有一个逻辑运算符!,表示反操作,所以整个语句的值应当为false,即为0。
30.63546354解析:函数fun的第一个for循环跳过字符串的前导空白符,接着判断第一个非空白符是否是负号,若是,则置变量sign为-1;否则,置变量sign为1。接着的if语句在第一个非空白字符是负号或正号时,跳过该字符。以后的for循环将后面的数字符当作十进制数的各位数字转换为一个长整数n,当遇字符a时,结束循环。最后,函数返回sign与n的乘积。所以若调用函数时提供的实参是“∪∪6354abc”,则函数的返回值是6354。
31.12。12。解析:表达式x*=(y++)+(--z)相当于先进行z的自减运算,再执行x=x*(y+z),最后y自加。因此,变量x的值为12,y和z的值分别是4和3。
32.3232解析:while(表达式)的功能是:首先计算表达式的值,若为真,则执行循环体语句,执行完毕,再计算表达式的值,若仍为真,则重复执行循环体语句,直到表达式的值为假时,结束while语句的执行,继续执行while语句后面的语句:i=0时满足循环条件,也满足if的条件,执行语句得i=11,a=11,第2次循环不满足if的条件,执行i--,i=10,执行i+=11;a+=i后,得i=21,a=32,不满足i<20,循环结束。
33.线性结构线性结构解析:数据的逻辑结构是指数据元素之间的逻辑关系,分为线性结构和非线性结构。常见的线性结构有线性表、栈和队列等,常见的非线性结构有树、二叉树等。
34.数组的首地址数组的首地址解析:在函数中,可以通过指针变量来引用调用函数中对应的数组元素,此操作是通过传递数组的首地址来实现的。
35.11231123解析:在主函数中第一次调用func子函数时,m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因为在子函数中将m和i定义成了static类型,所以在子函数中对m和i进行的改变,在下一次调用子函数时能进行保存,所以第二次调用子函数时,m=11,i==3,则i=i+m+1=15,m=i+a+b=15+5+3=23。
36.2222解析:在main函数中,调用reverse函数将b数组中的前8个成员进行互置,执行完毕后,b数组中的成员为{8,7,6,5,4,3,2,1,9,10},然后再执行for循环结构,将b[6],b[7]…b[9]的值相加,结果为22。
37.白盒白盒解析:软件测试的方法分为白盒测试方法和黑盒测试方法.
38.00解析:二维数组中当某行一对花括号内的初值个数小于该行中元素的个数时,系统将自动给该行后面的元素补初值0,由此可见数组a[1][2]=0。
39.1100101
40.DEBFCA
41.D解析:主函数的第一个参数argc为整型参数,记下从命令行输入的参数的个数;第二个参数argv是一个字符型的指针数组,它的每一个元素指向命令行输入的参数字符数。在本例中argc的值为5,argv[0]指向字符串“ex”,argv[1]指向参数字符串“abed”,argv[2]指向字符串“efg”,argv[3]指向参数字符串“h3”,argv[4]指向参数字符串“k44”。在main()函数中,for循环执行了2次,当i=1时,len=0+strlen(argv[1]),而其中argv[1]=“abcd”,故此时len的值为4;当i=3时,len=4+strlen(argv[3]),而其中argv[3]=“h3”,故此时len的值为6;当i=5时,退出循环,故最后输出的len的值为6。
42.D解析:a[i][j]的位置应该是第i+1行,第j+1列,那么它的位置是(i+1-1)*m+j+1=i*m+j+1。
43.D解析:在C语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo\u3000C\u30002.0中,int占2个字节,但在VisualC++6.0(VC6可以用做C语言编译器)中占4个字节。故本题应该选择D。
44.B
45.Dint*(*gh[10]);---gh是一个指针,指向由10个指向整型变量的指针构成的数组,int(**def)[10];---def指向一个指针,该指针指向10个整型变量构成的数组。
46.C解析:对象是由数据及可以对这些数据施加的操作组成的统一体。对象的内部,即处理能力的实行和内部状态,对外是看不见的,这一特性称做对象的封装。
47.B解析:本题考查函数的调用。函数f的功能是将b[]小的第1到n+1个数组元素的值进行相乘运算,然后返回其结果。由于实参3传给形参n,所以f的返回值为x=2*3*4=5=120。
48.B解析:该题目测试考生对宏替换的理解。这是一种简单的情况:不带参数的宏。关键要注意在对2*M+1进行宏替换时,要将宏名M原封不动地代进去,得到NUM的形式为2*N+1+1(千万不要随意给N+1加上小括号,使NUM变为2。(N+1)+1,这就是宏名和变量名之间的区别),在将N代进去,得到NUM的值为6。
49.A解析:转义字符'\\n'表示换行,'\\\\'表示反斜杠,函数strlen()是计算字符串的长度,不包括文件结束标志('\\0'),函数sizeof()统计字符串所占的字节数。
50.A本题考查高级语言的数据类型。其中属于构造类型的主要有结构体类型、联合体类型,即共用体类型和数组类型。
51.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符合题意。
52.C
53.C本题主要考查数组的定义及初始化。在对数组进行定义和初始化时,需要注意以下事项。
(1)数组的内存空间在编译时确定,定义数组时的n值只能使用常量,不能使用变量。
(2)定义数组时可以不标明数组元素的个数,而是通过赋初值的方式确定,编译系统将自动计算花括号内的数据数量作为数组的元素个数。
(3)数组初始化时,当初值的个数小于整型常量n时,编译系统会自动补0。一旦给定初值数超过n,编译系统将报错。
(4)初始化数组的元素类型,必须与定义数组时的类型一致。
(5)数组名记录了数组在内存中的首地址,其值不能更改。
(6)除字符数组外,不能直接用数组名对数组进行整体输入或输出。
本题中定义了一个3行4列的数组,但没有对其进行赋初值操作,可能我们会想在系统编译时会自动补0,这只是在初值个数小于数组定义大小的情况下的操作,如果没有进行赋初值操作,数组中的元素值是不能被确定的。因此,本题答案选C。
54.A解析:在本题中k=n++,为后缀运算。根据其运算规则,首先n先加一,但n++表达式的值依然n原来的值,即k的值没有改变。选项A中先给k赋值为n,然后n再加1,k值没有变化,所以这个表达式和本题中表达式等价:选项B中先n加1,然后将n加1后的值赋给k,k变化了比原来的值大1,所以这个表达式和本题中表达式不等价:选项C中先计算表达式左边的表达式++=N的值,执行++n后,左边的表达式的值为n的值加1,然后将n+1后的值赋给k,所以这个表达式和本题中的表达式不等价;选项D中表达式展开为k=k+(n+1),k的值发生了变化,所以这个表达式和本题中的表达式不等价。所以4个选项中A正确。
55.A解析:在C语言中,合法标识符的命名规则是:标识符可以由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。C语言的标识符可以分为关键字、预定义标识符和用户标识符。选项B)和C)中的横线以及点都不合法,选项D)中的case为C语言关键字。
56.A解析:函数定义时如果数据类型默认,则默认为int。函数中如果有“retum(表达式):”语句,表达式的类型可能与函数的类型不一致,但它并不能改变函数的类型,实际情况是把表达式转换为函数值的类型作为返回值,因此本题的函数值类型是int。
57.C解析:数据块输入/输出函数的调用形式为:fread(buffer,size,count,fp)。fread函数参数说明:“buffer”是一个指引,对fread来说,它是读入数据的存放地址;“size”是要读写的字节数;“count”是要进行读写多少个size字节的数据项;“fp”是指文件型指针。
58.A解析:数据管理技术发展的三个阶段中,只有人工管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。
59.B解析:大写字母从'A'~'Z'的ASCII码是连续的,所以如果当—个字符大于等于'A'且小于等于'z'时,那这个字符就一定是一个大写字母,故选项C正确。C语言中的库函数isupper()的作用也正是判断一个字符是否为大写字母的,故选项A正确。在ASCII码中,小写字母的编码也是连续的,对应的小写字符比大写字符的ASCII码值大32,所以选项D经过小写字符-32后,换算成了对应的大写字母'Z'和'A',所得到结果和选项C是一致的,故也是正确的。选项B中,C语言的逻辑表达式不能直接连写,而应该写成选项C那样,故是错误的,应该选择B。
60.B解析:C语亩足一种大小写敏感的语言,因此Int应为int,而CaseprintF则可以使用。
61.A\nA。【解析】二分法查找只适用于顺序存储的有序线性表,对于顺序存储的非有序线性表和线性链表,都只能采用顺序查找。
\n
62.A本题考查C语言中常量的定义。常量是指程序在运行过程中,其值不能被改变的量。C语言中常见的常量主要有整型常量、实型常量、字符型常量。整型常量包括十进制整数,如456;八进制整数,以0开头,如0456;十六进制整数,以0x开头,如0x456。实型变量包括十进制小数形式,如.456;指数形式,如456e0,字母e前面必须有数字,e后面的数字必须为整数,如456e-4。字符型常量是用单撇号括起来的一个字符。如,’a’,’A’等。’a’不等于’A’。字符型常量还包括一种转义字符,以’\\’开头,表示将’\\’后面的字符转换成另外的意义。字符串也可以作为常量,用双撇号括起来,如'abc'。本题A选项中单撇号括起来的不是一个字符,而是三个字符,故不是合法常量。B选项是实型变量的指数表示形式。C选项是字符串常量,用双撇号引起来。D选项是字符’\\0’,因为在碰到’\\0’后,字符串结束,因此只读取到’\\0’,所以D选项是合法常量。
63.D若在scanf的格式化控制串中插人了其他字符,则在输入时要求按一一对应的位置原样输入这些字符。格式化输入函数必须严格按照双引号里面的格式进行输入。所以选择D,也可以输入x=23],sum]Y=56,line]z=78L<Enter>即是否输入最后的L都不影响前面三个变量的赋值。在格式化输出函数中,格式控制串中除了合法的格式说明外,可以包含任意的合法字符。
64.D数据流图的四种基本符号分别是数据的源点或终点、数据流、数据存储和加工,其中带有说明的箭头表示数据流,即数据的流向。
数据流是一组确定的数据在系统内传播的路径。数据流的流向由箭头方向指出,可从加工流向加工,也可以从加工流向数据存储或从数据存储流向加工,还可以从源点流向加工或从加工流向终点。在数据流图中,除了与数据存储之间的数据流不用命名外,数据流应该对应一个唯一的名字。
65.C
66.Ddouble*p,a定义了一个指向双精度型的指针变量P和双精度型变量a,p=&a表示将变量a的地址赋给指针变量p;scanf("%If",p)表示用键盘输入的数赋给指针变量P所指向的地址单元中,scanf函数要求在输入double型数据,格式控制符必须用%1f。否则,数据不能正确输入。所以选项D正确。
67.D自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,因此根据关系T中的有序组可知关系R与s进行的是自然连接操作,故本题答案为D)。
68.C用数组名作为函数实参时,不是把数组的值传递给形参,而是把实参数组的起始地址传递给形参数组,这样两个数组就共同占用同一段内存单元。本题通过“prt(a,5);”将数组a的首地址传递给了指针变量m,使指针变量m指向数组a的首地址,那么,对指针变量所指向的存储单元的内容的改变就是对数组a中的元素的改变。题中函数prt的作用是将指针变量m所指向的存储单元中的元素值各加上1,故数组a中的值也随之变化,所以。输出的数组元素的值为2,3,4,5,6,。
69.B字符串连接函数strcat的调用形式如下:strcat(sl,s2)。此函数将s2所指字符串的内容连接到sl所指的字符串后面,并自动覆盖sl串末尾的尾标,函数返回sl的地址值。本题中首先将二维数组中各行的字符串都复制到了指针P所指向的一维数组k的地址空间,然后用strlen函数求得k数组的长度i,即l9。
70.A本题考查删除链表中的结点操作,其方法是将要删除结点的上个结点的下个结点指向要删除结点的下个结点,然后释放该要删除结点,所以选项A正确。
71.D在选项中,\\019,以0开头的数都为八进制数,而八进制的表示数字是0~7,所以答案选择D。
72.D函数的功能是将数组的元素交换,首先s1=p,即s1指向1,s2=p+7-1,即s2指向7,t=*s1++,将1赋给t,然后s1指向2,*s1=*s2++,将7赋给s1,即原来2的位置,s2指向6,然后*s2=t,将1赋给*s2即原来6的位置,…….
73.A
74.B
\n本题中,变量i的初始值等于0,执行循环体中的语句后,输出i的值为0。while后面括号中表达式i++的值为0,循环结束。此时变量i自加1,所以再次“1”。
\n
75.BM<=N和N<=P是逻辑与的关系,应使用运算符&&。
76.C解析:选项A中两个变量的定义应当以逗号隔开;选项B中a和b应当分开赋值;选项D中变量类型不相匹配,b应当是指针型变量。
77.C本题主要考查栈和队列的基本特性。栈是限定仅在表尾进行插入和删除操作的线性表,而队列则只允许在队尾进行插入操作,在队头进行删除操作。栈对数据元素的操作具有先进后出的特点,而队列对数据元素的操作具有先进先出的特点。
本题要求对栈和队列一起操作,将出栈S的元素进入队列Q,元素出队的顺序是a2,a3,a4,a6,a5,a1,根据队列的特性,那么元素入队的顺序也应该为a2,a3,a4,a6,a5,a1,这也就说明元素出栈的顺序为a2,a3,a4,a6,a5,a1,但元素入栈的顺序是a1,a2,a3,a4,a5,a6,根据这两个序列,我们可以推断出元素入栈出栈的过程为:首先a1入栈,它不马上出栈,而是让a2入栈,然后a2出栈,a3、a4分别入栈后又出栈,接着a5入栈,而不接着出栈,而是让a6入栈,这时,栈S中元素的个数为3个,分别是a1,a5,a6。因此,栈的容量至少为3。
78.B
79.D
80.A
81.(1)错误:voidfun(inta[],intm)
正确:intfun(inta[],intm)或fun(inta[],intm)
(2)错误:elseIf(m>a[mid])
正确:elseif(m>a[mid])
【解析】本题考查的是折半查找算法、函数的定义和if...else语句。首先,函数的定义需要考虑返回值的类型,返回值为int类型。本题需求值,所以函数的返回值不能是void类型。因为如果去函数类型标识符,系统默认为int类型,所以函数定义应为“intfun(inta[],intm)”或“fun(inta[],intm)”;关键词if要区分大小写,写错系统将无法识别。
82.voidproc(chararr[M][N],char*b){inti,j,k=0;for(i=0;i<M;i++)//i表示其行下标for(j=0;arr[i][j]!=\0;j++)//由于每行的个数不等,因此用a[i][j]!=\0来作为循环结束的条件b[k++]=arr[i][j];//把二维数组中的元素放到b的一维数组中,b[k]=\0;//最后把b赋\0作为字符串结束的标志)【解析】字符串数组中每一行都是一个一个完整的字符串,其结束标志为\0。因此通过字符串的结束标志来判断每一个字符串是否结束,将字符串数组中的所有字符串均赋值新的一维数组b来完成字符串的合并。2022-2023年黑龙江省七台河市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s;则以下选项中正确的是()。
A.if(s1>s2)S;
B.if(strcmp(s1,s2))S;
C.if(strcmp(s2,sl)>O)S;
D.if(stremp(s1,s2)>O)S;
2.写出a*(b-c*d)+e-f/g*(h+i*j-k)的逆波兰表达式()。
A.a(b-c*d)*+e-(f/g(h+i*j-k)*)
B.a(b-(cd*))*+e-(fg/(h+ij*-k)*)
C.a(bcd*-)*+e-(fg/hij*+k-*)
D.abcd*-*e+fg/hij*+k-*-
3.数据结构在计算机内存中的表示是指()。A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系
4.已知字母A的ASCII码为十进制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的输出是_________。
A.67,DB.B,CC.C,DD.不确定的值
5.有如下形式的函数:intfun(inta[4][5],int*p[10],intn){…}调用函数之前需要对函数进行说明,即所谓的函数向前引用说明,以下对fun函数说明正确的是()。A.intfun(intb[][5],int*r[],intm);
B.intfun(inta[4][],int*p[10],intn);
C.intfun(inta[][],int*p[],intn);
D.intfun(inta[],int*p[],intn);
6.已知有结构体:structsk{inta;floatb;}data,*p;若有p=&data,则对data的成员a的正确引用是()。
A.struct是结构体类型的关键字
B.st是结构体类型名
C.x、y、z都是结构体成员名
D.structstr是结构体类型名
7.下面软件中,属中应用软件的是()
A.UnixB.人事管理系统C.数据库管理理系统D.DOS
8.若f(n)=3n2+2n+1,则f(n)=()。
A.O(n2)B.O(n)C.O(2n)D.O(3n2)
9.若有以下程序段intm=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后输出结果是A.0X0B.0x0C.0D.0XABC
10.
11.已知字符A的ASCII值是65,字符变量c1的值是‘A’,c2的值是‘D’,则执行语句“printf(“%d,%d”,c1,c2-2);”的输出结果是()。
A.65,68B.A,68C.A,BD.65,66
12.设有定义:intx[2][3];,则以下关于二维数组X的叙述错误的是()。
A.x[0]可看做是由3个整型元素组成的一维数组
B.x[0]和x[l]是数组名,分别代表不同的地址常量
C.数组X包含6个元素
D.可以用语句x[o]=0;为数组所有元素赋初值0
13.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A.10B.8C.6D.4
14.软件工程的出现是由于()。A.A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展
15.以下叙述中正确的是_____。A.用C程序实现的算法必须要有输入和输出操作
B.用C程序实现的算法可以没有输出但必须要输入
C.用C程序实现的算法可以没有输入但必须要有输出
D.用C程序实现的算法可以既没有输入也没有输出
16.若有如下形式的函数:intfun(inta[],int*p,intn){…}调用函数之前需要对函数进行声明,则以下选项中错误的是()。
A.intfun(int,int,int);
B.intfun(inta[],int*p,intn);
C.intfun(inta[],int*,int);
D.intfun(int[],int*,int);
17.数据库设计包括两个方面的设计内容,它们是()。
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
18.待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码33被放到第()个位置。
A.3B.5C.7D.9
19.
20.计算机算法指的是()。
A.计算方法B.排序方法C.解决问题的有限运算序列D.调度方法
二、2.填空题(20题)21.下面程序的运行结果是【】。
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
22.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。
23.顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。
24.有以下程序:
#include<stdio.h>
main()
{charc;
while((c=getchar())!='?')putchar(--c);
}
程序运行时,如果从键盘输入Y?N?<回车>,则输出结果为【】。
25.有以下程序
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
执行后输出结果是______。
26.在ER图中,矩形表示【】。
27.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1
11
121
1331
14641
┇
其构成规律是:
(1)第0列元素和主对角线元素均为1
(2)其余元素为其左上方和正上方元素之和
(3)数据的个数每行递增1
请将程序补充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;
x[0][0]=1;
for(i=1;i<N;i++)
{x[i][0]=【】=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
}
28.一棵二叉树第6层(根结点为第一层)的结点最多为______个。
29.若a=10,b=20,则表达式!(a<b)的值是【】。
30.若给fun函数的形参s传送字符串“∪∪6354'abc"(其中∪表示空格字符),则函数的返回值是【】。
longfun(chars[])
{longn;intsign;
for(;isspace(*s);s++);
sign=(*s=='-')?-1:1;
if(*s=='+'||*s=='-')s++;
for(n=0;isdigit(*s);s++)
n=10*n+(*s-'0');
returnsign*n;
}
31.设x、y、z为整型变量,且x=2,y=3,z=4,当执行以下语句后,x的值是______。
x*=(y++)+(--z);
32.下列程序的输出结果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
33.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。
34.当调用函数时,实参是一个数组名,则向函数传递的是【】。
35.下列程序的运行结果是______。
#include<stdio.h>
func(a,B)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main0
{intk=5,m=3,p;
p=func(k,m);
printf("%d",p);
p=func(k,m);
printf("%d\n",p);
}
36.以下程序的输出结果是【】。
voidreverse(inta[],intn)
{inti,t;
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf("%d\n",s);
}
37.若按功能划分,软件测试的方法通常分为______测试方法和黑盒测试方法。
38.设有定义语句:inta[][3]={{0},{1},{2}};,则数组元素a[1][2]的值为()。
39.与十进制数101等值的二进制数为【】。
40.设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为【】。
三、1.选择题(20题)41.有以下程序#include<stringh>main(intargc,char*argv[]){inti,len=0;fot(i=1;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}经编译连接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行exabcdefgh3k44执行后输出结果是
A.14B.12C.8D.6
42.若二维数组a有m列,且设a[0][0]位于数组的第一个位置上,则计算任意元素a[i][j]在数组中位置的公式为______。
A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1
43.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),
A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定
44.以下语句的输出结果是()printf("%d,%d,%u\n",016,16,-16);
A.16,16,65420B.14,16,6542C.16,16,-16D.14,16,-16
45.下列说法正确的是
A.int(**def)[10];----def指向一个指针,该指针指向10个整型变量构成的数组
B.int*(*gh[10]);---gh指向一个指针,该指针指向10个整型变量构成的数组
C.int*(*gh[10]);---gh是一个指针,指向由10个指向整型变量的指针构成的数组
D.A,C均正确
46.对象实现了数据和操作的结合,是指对数据和数据的操作进行______。A.A.结合B.隐藏C.封装D.抽象
47.读程序:#include<stdio.h>f(intb[],intn){inti,r;r=1;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}上面程序的输出结果是()。
A.720B.120C.24D.6
48.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}该程序中的for循环执行的次数是______。
A.5B.6C.7D.8
49.下列程序的输出结果是()。#include<stdio.h>#include<string.h>main(){chara[]="\n123\\";printf("%d,%d\n",strlen(a),sizeof(a));}
A.5,6B.5,5C.6,6D.6,5
50.下列各数据类型不属于构造类型的是()。
A.枚举型B.共用型C.结构型D.数组型
51.有以下程序: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
52.当前在数据库管理系统的研究方面,较活跃的是()
A.关系数据库B.网状数据库C.空间数据库D.层次数据库
53.若有函数内部说明:inta[3][4];则数组a中各元素
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
54.以下选项中,与k=n++完全等价的表达式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
55.可在C程序中用作用户标识符的一组标识符是
A.andB.DateC.HiD.case_2007y-m-dDr.TomBigl
56.以下函数值的类型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不确定C.voidD.float
57.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是()。
A.一个整型变量,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针,是指向的输入数据放在内存中的起始位置
D.一个存储区,存放要读的数据项
58.数据管理技术发展的三个阶段中,()没有专门的软件对数据进行管理。Ⅰ.人工管理阶段Ⅱ.文件系统阶段Ⅲ.数据库阶段()
A.仅ⅠB.仅ⅢC.Ⅰ和ⅡD.Ⅱ和Ⅲ
59.已有定义:charc;,程序前面已在命令行中包含ctype.h文件。不能用于判断c中的字符是否为大写字母的表达式是()。
A.isupper(c)
B.'A'<=c<='Z'
C.'A'<=c&&c<='Z'
D.c<=('z'-32)&&('a'-32)<=c
60.阅读以下程序#include<stdio.h>main(){IntCase;floatprintF;printf("请输入2个数:");scanf("%d%f",&Case,&printF);printf("%d%f\n",Case,printF);}以下说法正确的是()。
A.定义浯句出错,Case是关键字,不能用作用户自定义标识符,printF不能用作用户自定义标识符
B.定义语句出错,Int无法被识别
C.定义语句无错,scanf不能作为输入函数使用
D.定义语句无错,printf不能输出Case的值
四、选择题(20题)61.下列数据结构中,能用二分法进行查找的是()。
A.顺序存储的有序线性表B.结性链表C.二叉链表D.有序线性链表
62.以下选项中不能作为C语言合法常量的是
A.’Fab’B.0.7e+9C."\b"D.’\01211’
63.现有格式化输入语句,
已知在输入数据后,
x,Y,z的值分别是23,56,78,则下列选项中正确的输入格式是()。
A.23,56,78<Enter>
B.x=23,y=56,z=78<Enter>
C.x=23C,sumy=56,z=78<Enter>
D.x=23],sum]y=56,line]z=78<Enter>
64.在数据流图(DFD)中,带有说明的箭头表示
A.模块之间的调用关系B.程序的组成成分C.控制程序的执行顺序D.数据的流向
65.
66.若有说明语句:double*p,a;则通过scanf语句正确给输入项读入数据的程序段是()。A.A.*p=&a;scanf("%1f”,p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%",*p);
D.p=&a;scanf("%1f",p);
67.有三个关系R、S和t如下:由关系R和s通过运算得到关系T,则所使用的运算为()。
A.笛卡儿积B.交C.并D.自然连接
68.有以下程序
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.A.1,2,3,4,5,
B.3,4,5,6,7,
C.2,3,4,5,6,
D.2,3,4,5,1,
69.有下面程序段:
则程序段的输出结果是()。
A.18B.19C.20D.21
70.假定已建立以下链表结构,且指针P和q已指向如图所示的结点:
则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是()。
A.p一>next=q一>next;flee(q);
B.p=q一>next;free(q);
C.p=q;free(q);
D.(*p).next=(幸q).next;ffee(p);
71.以下选项中非法的字符常量是()。
A.\101B.\65C.\xffD.\019
72.下面程序的输出结果是()。
#include"string.h"
fun(char*w,intn)
{chart,*s1,*s2;
s1=w;s2=w+n-1;
while(s1<s2)
{t=*s1++;
*s1=*s2--;
*s2=t;
}
}
main()
{staticcharp[]="1234567";
fun(p,strlen(p));
printf("%s",p);
}
A.7654321B.1717171
C.7171717D.1711717
73.
74.
若变量已正确定义,有以下程序段
i—o;
doprintf("%d,",i);while(i++);
printf("%d",i)
其输出结果是()。
A.0,0B.0,1C.1,1D.程序进入无限循环
75.表示关系M<=N<=P的C语言表达式为()。
A.(M<=N.AND(N<=P.
B.(M<=N.&&(N<=P.
C.(M<=N<=P.
D.(M<=N.&(N<=P.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广东亚视演艺职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年常州纺织服装职业技术学院高职单招语文2019-2024历年真题考点试卷含答案解析
- 2025年山西运城农业职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 2025年山西老区职业技术学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2025年山西信息职业技术学院高职单招语文2019-2024历年真题考点试卷含答案解析
- 2025年山东医学高等专科学校高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年安徽新闻出版职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年安庆职业技术学院高职单招语文2019-2024历年真题考点试卷含答案解析
- 2025年宁夏职业技术学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 绘画夏日雪糕课件
- 快餐店创业计划书
- 2025年辅警招聘考试试题库及答案(全优)
- 2025-2030全球及中国4,4-二氟二苯甲酮行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 【初中地理】西亚课件-2024-2025学年人教版(2024)七年级地理下册
- 2024年4月27日福建省事业单位《综合基础知识》真题及答案
- 交通运输行业股权分配方案
- 中试平台管理制度
- 入职申请表(完整版)
- 医院太平间管理登记表
- CSB05 1426 漆膜颜色标准样卡
- 标识标牌的制作与安装精编版
评论
0/150
提交评论