![2022-2023年江西省抚州市全国计算机等级考试C语言程序设计_第1页](http://file4.renrendoc.com/view/c0b36338bf0e59b3514e29d7f47ad3fb/c0b36338bf0e59b3514e29d7f47ad3fb1.gif)
![2022-2023年江西省抚州市全国计算机等级考试C语言程序设计_第2页](http://file4.renrendoc.com/view/c0b36338bf0e59b3514e29d7f47ad3fb/c0b36338bf0e59b3514e29d7f47ad3fb2.gif)
![2022-2023年江西省抚州市全国计算机等级考试C语言程序设计_第3页](http://file4.renrendoc.com/view/c0b36338bf0e59b3514e29d7f47ad3fb/c0b36338bf0e59b3514e29d7f47ad3fb3.gif)
![2022-2023年江西省抚州市全国计算机等级考试C语言程序设计_第4页](http://file4.renrendoc.com/view/c0b36338bf0e59b3514e29d7f47ad3fb/c0b36338bf0e59b3514e29d7f47ad3fb4.gif)
![2022-2023年江西省抚州市全国计算机等级考试C语言程序设计_第5页](http://file4.renrendoc.com/view/c0b36338bf0e59b3514e29d7f47ad3fb/c0b36338bf0e59b3514e29d7f47ad3fb5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年江西省抚州市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.一个有n个顶点的连通无向图至少有()条边。
A.n-1B.nC.n+1D.n+2
2.以下说法不正确的是
A.C程序中必须有一个main()函数,C程序是从main()函数的第1条语句开始执行的。
B.非主函数都是在执行主函数时,通过函数调用或嵌套调用而得以执行的。
C.C程序中的main()函数必须放在程序的开始位置。
D.C程序中的main()函数位置可以任意指定。
3.
4.
5.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20][{"One*World","One*Dream!"},*p=str[1];prinft("%d,",strlen(p));printf("%s\n",p);}程序运行后的输出结果是()。A.9,0ne*WorldB.9,0ne*Dream!C.10,One*Dream!D.10,Ome*World
6.深度为5的二叉树至多有C个结点。
A.16B.32C.31D.10
7.以下是if语句的基本形式:if
(表达式)语句,其中表达式A.A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式
8.在一个链式队列中,假设f和r分别为队头和队尾指针,则删除结点的运算是()。
A.r=f->nextB.r=r->nextC.f=f->nextD.f=r->next
9.当执行下面的程序时,如果输入ABC,则输出结果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
10.下列程序的执行结果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]==1;printf("\n%d",x.i);}
A.266B.11C.265D.138
11.数据结构通常研究数据的()及运算。
A.物理结构和逻辑结构B.存储和抽象C.理想和抽象D.理想与逻辑
12.最小堆[0,3,2,5,7,4,6,8],在删除堆顶元素0之后,其结果是()
A.[3,2,5,7,4,6,8]
B.[2,3,5,7,4,6,8]
C.[2,3,4,5,7,8,6]
D.[2,3,4,5,6,7,8]
13.下列叙述中正确的是()
A.C语言程序必须要有return语句
B.C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序中,只有int类型的函数可以未经声明而出现在调用之后
D.C语言程序中,main()函数必须放在程序开始的部分
14.假定a为一个整型数组名,则元素a[4]的字节地址为()。
A.a+4B.a+8C.a+16D.a+32
15.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
16.下列叙述中正确的是()。
A.一个逻辑数据结构只能有一种存储结构
B.逻辑结构属于线性结构,存储结构属于非线性结构
C.一个逻辑数据结构可以有多种存储结构,且各种存诸结构不影响数据处理的效率
D.一个逻辑数据结构可以有多种存储结构,且各种存诸结构影响数据处理的效率
17.若有定义语句“char*s1=“OK”,*s2=“ok”;”,以下选项中,能够输出“OK”的语句是()。
A.if(strcmp(s1,s2)!=0)puts(s2);
B.if(strcmp(s1,s2)!=0)puts(s1);
C.if(strcmp(s1,s2)==1)puts(s1);
D.if(strcmp(s1,s2)==0)puts(s1);
18.下列选项中,能够满足“只要字符串s1等于字符串S2,则执行ST”要求的是()。
A.if(s1-s2==0)ST;
B.if(s1==s2)ST;
C.if(strcpy(s1,s2)==1)ST;
D.if(strcmp(s2,s1)==0)ST;
19.
20.某二叉树的先序序列和后序序列正好相同,则该二叉树可能是______的二叉树。
A.高度大于1的左单支B.高度大于1的右单支C.最多只有一个结点D.既有左孩子又有右孩子
二、2.填空题(20题)21.当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的【】。
22.
doublefun(intn)
{doubles=0.0,fac=1.0;inti;
for(i=1;i<=n;i++)
{fac=fac【】;
s=s+fac;
}
returns;
}
23.以下程序的运行结果是【】。
#include<stdio.h>
#defineMAX(a,b)(a>b?a:b)+1
main()
{inti=6,j=8,k;
printf("%d\n",MAX(i,j));
}
24.表达式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的数据类型为______。
25.在printf格式字符中,以带符号的十进制形式输出整数的格式字符是【】;以八进制无符号形式输出整数的格式字符是【】;以十六进制无符号形式输出整数的格式字符是【】;以十进制无符号形式输出整数的格式字符是【】。
26.下面程序的运行结果是:【】。
fun(intt[],intn)
{inti,m;
if(n==1)returnt[0];
elseif(n>=2){m=fun(t,n-1);returnm;}
}
main()
{inta[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
}
27.以下程序把从终端读入的20个整数以二进制方式写到一个名为d.dat的新文件中,请填空。
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if((fp=fopen(【】,"wb"))==NULL)exit(0);
for(i=0;i<20;i++)
{scanf("%d",&j);fwrite(&j,sizeof(int),1,【】);}
fclose(fp);
}
28.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为【】。
29.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度。请填空。
FILE*myf;longf1;
myf=【】("test.t","rb");
fseek(myf,0,SEEKEND);
f1=ftell(myf);
fclose(myf);
printf("%d\n",f1)
30.栈满时,再作入栈操作会产生【】,栈空时,删除操作会产生【】。
31.有以下程序:
voidf(int*x,iht*y)
{intt;
t=*x;*x;=*y;*y=t;
}
main()
{inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
while(p)
{f(p,q);p++;q--;}
for(i=0;i<8;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是【】。
32.以下程序运行后的输出结果是______。
voidfun(intx,inty)
{
x=x+y;y=x-y;x=x-y;
printf("%d,%d,",x,y);
}
main()
{
intx=2,y=3;
fun(x,y);
printf("%d,%d\n",x,y);
}
33.以下程序的输出结果是【】。
#include<stdio.h>
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
34.若有如下结构体说明:
structSTRU
{inta,b;charc:doubled;
stmctSTRU*p1,*p2;
};
请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。【】t[20]
35.设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为【】。
36.表达式pow(2.8,sqrt(float(x)))值的数据类型为______型。
37.若有如下结构体说明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。
【】t[20]
38.下列的for语句的循环次数为______。
for(x=1,y=0;(y!=19)&&(x<7);x++);
39.数据的逻辑结构在计算机存储空间中的存放形式称为数据的【】。
40.下列语句使指针p指向一个double类型的动态存储单元。
p=【】malloc(sizeof(double));
三、1.选择题(20题)41.下述函数功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}
A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面
42.如下程序的输出结果是______。main(){staticinta[4]={1,2,3,4};int**k,*j;j=a+1;k=&j;printf("%d\n",*(*k+2));}
A.运行错误B.4C.3D.2
43.有以下程序main(){chara,b,c,*d;a='\';b='\xbc';c='\0xab';d="\0127";pfintf("%c%c%c%c\n",a,b,c,*d);}编译时出现错误,以下叙述中正确的是
A.程序中只有a='\';语句不正确
B.b='\xbc';语句不正确
C.d="\0127";语句不正确
D.a='\';和c=,'0xab';语句都不正确
44.有以下程序
voidf(int*q)
{inti=0;
for(;i<5;i++)(*q)++;
}
main()
{inta[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是
A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
45.在位运算中,操作数每右移两位,其结果相当于()。
A.操作数乘以2B.操作数除以2C.操作数除以4D.操作数乘以4
46.有以下计算公式:若程序前面已在命令行中包含math.h文件,不能够正确计算上述公式的程序段是()。
A.if(x>=0)y=sqrt(x);elsey=sqrt(-x);
B.y=sqrt(x);if(x<0)y=sqrt(-x);
C.if(x>=0)y=sqrt(x);if(x<0)=sqdrt(-x);
D.y=sqrt(x>=0?x:-x);
47.一个采用顺序存储方式的线性表中,若线性表的第一个元素的存储地址是200,每一个元素的长度是2,则第6个元素的地址是______。
A.208B.210C.211D.212
48.有如下程序#include<stdio.h>main(){FILE*fpl;fpl=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为
A.goodabcB.abcdC.abcD.abcgood
49.下列选项中,不是一个算法的基本特征的是()。
A.完整性B.可行性C.有穷性D.拥有足够的情报
50.不能与do…while(exp)语句中的(exp)等价的表达式是()。
A.(!exp==0)B.(exp>0‖exp<0)C.(exp==0)D.(exp!=0)
51.若有定义语句:inta[2][3],*p[3],则以下语句中正确的是A.p=a;B.p[0]=a;C.p[0]=&a[1][2];D.p[1]=&a;
52.若有说明:int*p,m=5,n;以下正确的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p)
C.scanf("%d",&n);*p=n;
D.p=&n;*p=m;
53.以下程序的输出结果是______。main(){charch[3][4]={"123","456","78"},*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}
A.123456780B.123456780C.12345678D.147
54.下列叙述中正确的是()。
A.线性链表中的各元素在存储空间中的位置必须是连续的
B.线性链表中的表头元素一定存储在其他元素的前面
C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面
D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的
55.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
56.有下列二叉树,对此二叉树前序遍历的结果为()。
A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH
57.以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是
A.main(){int*p;fun(p);…}intfun(int*p){ints;p=&s;}
B.main{int*p;fun(&p);…}intfun(int**p){ints;*p=&s;}
C.#include<stdlib.h>main(){int*p;fun(&p);…}intfun(int**p){*p=(int*)malloc(2);}
D.#include<stdlib.h>main(){int*p;fun(p);…}intfun(int*p){p=(int*)malloc(sizeof(int));}
58.若定义inta=10,则表达式a+=a-=a*=a的值是()。
A.0B.-180C.-100D.-90
59.能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是
A.a>=10ora<=0
B.a>=0|a<=10
C.a>=10&&a<=0
D.a>=10||a<=0
60.假定int类型变量占用两个字节,若有定义:intx[10]={0,2,4);,则数组x在内存中所占字节数是______。
A.3B.6C.10D.20
四、选择题(20题)61.
62.数据库设计包括两个方面的设计内容,它们是()
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
63.
64.若有函数voidfun(doublea[]。int*n){…}以下叙述中正确的是()。A.调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送
B.形参a和n都是指针变量
C.形参a是一个数组名,n是指针变量
D.调用fun函数时将把double型参数组元素一一对应地传送给形参a数组
65.
66.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。
A.一对一B.一对多C.多对一D.多对多
67.
68.
有以下程序
#include<stdio.h>
voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/
{intt,i,j;
for(i=0;i<n-1;j++)
for(j=i+l;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main
{intc[10]={1,2,3,4,5,6,7,8,9,0),i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序运行的结果是()。
A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
69.
下列程序的运行结果是()。
#include<stdio.h>
#defineADD(x)x+x
main
{intm=1,n=2,k=3;
intS=ADD(m+n)*k;
printf("s=%d",s);
}
A.sum=18B.sum=10C.sum=9D.sum=25
70.28.以下叙述中错误的是
A.对于float类型数组,不可以直接用数组名完成对数组进行整体输入或输出
B.数组名代表的是数组所占存储区的首地址,其值是常量,是不可改变的
C.当执行程序时,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D.可以通过赋初值的方式确定数组元素的个数
71.以下选项中有语法错误的是()。A.char*str[]={"guest"};
B.charstr[][lO]={"guest"};
C.char*str[3];str[t]={"9uest"};
D.charstr[3][lO];str[1]={"guest"};
72.若二维数组a有m列,则在a[i][j]前的元素个数为()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
73.
74.有以下程序程序运行后的输出结果是()。
A.abc28B.28cC.abcD.因类型不一致而出错
75.
76.
77.
78.
79.已知二叉树后序遍历序列是dabeC,中序遍历序列是debaC,它的前序遍历序列是()。
A.aChedB.deCabC.deabeD.Cedba
80.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是
main()
{chars[100];intc,i;
scanf("%c",&c);scanf("%d",&i);scanf("%s",s);
prinnf("%c,%d,%s\n",c,i,s);}
A.123,456,789B.1,456,789
C.1,23,456,789D.1,23,456
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:输出M行M列整数方阵,然后求两条对角线上的各元素之和并将其返回。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.假定输入的字符串只包含字母和“#”号,请编写函数fun(),它的功能是:删除字符串中所有的“#”号。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为“##w#e1##come###”,删除后,字符串中的内容则应当是“welcome”。请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.A
2.C解析:本题考核的知识点是main()函数的作用,以及main()函数在程序中出现的位置。一个完整的C语言程序有且仅有一个主函数(main()函数)。程序总从main()函数的第一条语句开始执行,到main()函数的最后一条语句结束,其他函数都是在执行main()函数时,通过函数调用或嵌套调用而得以执行的。C语言规定,main()函数在程序中的位置是任意的,故选项c不正确。所以,4个选项中C符合题意。
3.B
4.C
5.C本题输出两个结果,第一个是求字符串的长度。第二个是输出的字符串,数组的下标是从0开始的,所以当str取1的时候,应为“One*Dream!”。
6.C
7.D
8.C
9.A
10.A解析:由于本题定义的是共用体,所以成员表列中的整型变景x与字符数组c共占用同—个存储单元,且此存储单元为2个字节,通常c[0]位于低字节,c[1]位于高字节,所以x.i的值为266。
11.A
12.C
13.C
14.C
15.D解析:文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,以此为基础的数据处理存在3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。注意:文件系统和数据库系统各自的特点,人工管理阶段及数据库系统三代的特点。
16.D数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,用的存储结构有顺序和链式结构。用不同的存储结构,其处理的效率是不同的。
17.B“strcmp(S1,S2)”是字符串比较函数,比较规则是两个字符串自左向右逐个字符相比较(按照ASCII值大小)。因为“OK”<“ok”,所以“strcmp(S1,S2)”为负值。故本题答案为B选项。
18.D在C语言中,对两个字符串进行比较,使用字符串比较函数strcmp。如果这个函数的返回值等于0,说明两个字符串相等。故本题答案为D选项。
19.A
20.C
21.物理独立性物理独立性
22./i或*1.O/i或*1或*(1.O/i)或/(double)i/i或*1.O/i或*1或*(1.O/i)或/(double)i解析:主函数中首先定义了两个double型的变量s和fac,并给它们赋初值为0.0和1.0,在函数中s和fac的作用是存放和以及要加到的那一项的值。通过分析可知,第i项的值可以由第i-1项的值得到,即第i项是第i-1项的值除以i。可见横线处应添/i或与它等价的表达式。
23.99解析:本题考查宏定义与三目运算符的综合应用。宏定义是原样替换,本题中,如果a>b成立,则a+1的值为整个表达式的值,否则b+1的值为整个表达式的值(应注意后面的加1)。
24.整型整型解析:上面的表达式中,通过强制类型转换把最后参与运算的数据都转换成了int型,所以最后得到的结果也是int类型。
25.d0xu
26.1111解析:此题涉及函数的调用和if语句。程序先执行第二个if语句,然后再执行第一个if语句,最后用return返回数值。
27."bi.dat"fp'bi.dat'\r\nfp解析:要向文件bi.dat中写数据,所以要打开文件bi.dat。fp是指向文件bi.dat的指针,是将数据写入fp指向的文件中去。
28.物理独立性物理独立性解析:数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为物理独立性。
29.fopenfopen解析:函数fopen的原型为FILE*fopen(char*filename,char*mode),功能为以mode指定的方式打开名为filename的文件;函数fseek的原型为intfseek(FILE*fp,longoffset,intbase),功能为将fp所指向的文件的位置指针移到以base所指出的位置为基准,offset为位移量的位置;函数ftell的原型为longftell(FILE*fp),功能为返回fp所指向的文件中当前的读写位置;函数fclose的原型为intfclose(FILE*fp),功能为关闭fp所指的文件,释放文件缓冲区。
30.上溢下溢上溢\r\n下溢
31.876543218,7,6,5,4,3,2,1解析:函数f是将x、y指针的内容互换,整个while循环是将a[0]与a[7]互换,a[2]与a[5]互换,a[3]与a[4]互换。
32.32233,2,2,3解析:主函数中首先定义了整型变量x和y,并分别给它们赋初值为2和3,接着调用fun()函数,fun()函数把实参x和y的值传给形式参数x和y,实参和形参不再有联系.在fun()函数中通过运算使x和y的值交换过来,所以fun()函数中的输出结果是“3,2”。fun()函数调用返回输出x和y依旧是原来的x和y,为“2,3”原因是变量作为形参传值的,对形参的修改并不影响对应的实参。所以最后输出为3,2,2,3。
33.246246解析:本题考查静态(static)局部变量的使用。fun函数中的静态局部变量a所占用的存储单元在程序运行过程中始终不释放,即当下一次调用该函数时,该变量仍然保留上一次函数调用结束时已有的值,3次调用fun函数分别得到2,4,6。
34.structSTRUstructSTRU解析:结构体类型是构造数据类型,是用户自己定义的一种类型。
结构体类型的定义:
struct结构体类型名
{
成员项表;
};
定义结构体变量的的形式为:
struct结构体类型名变量1,变量2,……
其中变量包括:一般变量、指针变量、数组变量等。
35.DEBFCA
36.floatfloat解析:在此表达式中x是float类型的变量,经过开方所得到的结果仍是float类型,再和2.8进行运算时,应该先将2.8转换成float类型再运算,最后结果仍是float型。
37.strudctSTRUstrudctSTRU解析:结构件类型是构造数据类型,是用户自己定义的一种类型。
结构体类型的定义:
struct结构体类型名
{
成员项表;
};
定义结构体变量的的形式为:
struct结构体类型名变量1,变量2,...?
其中变量包括;一般变量、指针变量、数组变量等。
38.66解析:分析程序可知,每循环一次,x的值加1,然后检测循环控制条件(y!=19)&&(x<7),因y的值不变,故满足x<7时循环6次。
39.模式或逻辑模式或概念模式模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等。
40.(double*)
41.A解析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。
42.B解析:k为指向指针变量j的二级指针变量,输出项*(*k+2)等价于*(j+2),i的值是元素a[1]的地址,j+2则是a[3]的地址,*(j+2)则是取a[3]的值。
43.D解析:给字符变量赋值只能赋一个字符,包括转义字符,语句“a='\\'”是错误的,因为“\\”是转义字符,应该用“\\\\”来表示,语句“B='\\xbe';”是正确的,它是将一个用十六进制表示的转义字符赋给一个字符型变量;语句“c=\\0xab;”是正确的,反斜线后的十六进制只可由小写x开头,不能用0x。语句“d=”\\0127“;”是正确的,可以给字符型指针变量赋一个字符串,其作用是让该指针变量指向该字符串。
44.B解析:调用函数f()时,将数组a的地址传递给了指针q,此时q指向的就是数组a的第一个元素a[0]。在5次循环过程中,q始终指向a[0],因此a[0]的值增加了5。最后的输出结果为'6,2,3,4,5'。
45.C解析:在位运算中,操作数每右移两位,相当于在操作数的左侧添0,最右面的两位被移出,即操作数除以4。
46.B解析:选项B一开始就调用了sqrt(x)而没有判断x的正负,所以是错误的。故应该选B。
47.B解析:顺序结构中,第n个元素的地址为An=A0+(n-1)*L(A为地址,L为元素长度)。
48.C解析:主函数中定义了一个文件指针fp1,然后通过fopen()函数,以写的方式打开文件“fl.txt”,并让指针fp1指向它,接着调用fpfintf()函数将“abc”写到文件fp1所指的文件里,由于开始fp1指向文件的“fl.txt”的开始位置,因此“abc”将把文件“fl.txt”里原来的内容“good”覆盖掉,故文件“fl.txt”里最后的内容为“abc”。
49.A解析:作为一个算法,一般应该具有下列4个特征:(1)可行性,即考虑到实际的条件能够达到一个满意的结果;(2)确定性,算法中的每一个步骤都必须是有明确定义的,(3)有穷性,一个算法必须在有限的时间内做完;(4)拥有足够的情报。
50.C解析:本题考查.do…while循环。在do…while循环中,当表达式的值为非零(真)时,执行循环,不能与其等价的是为零的表达式,即(exp==0)。
51.C解析:选项A中,p为数组名,其值是不能被改变的,故非法;选项B中,p[0]的类型是int*,而a是二维数组名(类型为int[][3]),两者无法赋值,故非法:选项C中,p[0]为int型指针,&a[1][2]是int型变量的地址,可以合法赋值;选项D中,p[1]是int型指针,而&a是二维数组的地址(类型为int(*)[2][3]),两者无法赋值,故非法。所以本题应该选择C。
52.D解析:“&”是求址运算符,“*”是指变量说明符。选项A)、B)应改为scanf('%d',p);选项C)中指针变量p未指向一确定的内存单元,不能为其赋值,并且这样做很危险,建议不使用。
53.C解析:p是指针数组,通过第1个循环的赋值,p[0]、p[1]、p[2]分别指向二维数组ch的第1行、第2行、第3行,因此输出字符串“12345678”。
54.D解析:性表的链式存储结构中,各数据结点的存储序号不连续,且各结点在存储空间中的位置关系与逻辑关系也不一致。性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的。所以,选项D正确。
55.D解析:文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,以此为基础的数据处理存在3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。注意:文件系统和数据库系统各自的特点,人工管理阶段及数据库系统三代的特点。
56.B解析:对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左,右子树。
57.C解析:选项A和B中p指向局部变量s的地址,退出函数fun后,该局部变量也被释放,不能使p指向一个整型单元地址;选项D中通过malloc函数分配一个整型地址,但不能被返回到main函数中,因为指针参数指向的地址不能被改变;选项C中,p是指向指针的指针,函数fun改变的是其指向的内容,而不是其地址。
58.B解析:算术运算符的运算规则是:从右到左的原则。所以表达式中先计算a=a-a*(上标)a的值是-90,再计算a=a+a的值是-180。
59.B解析:条件表达式本题考查C语言的逻辑表达式及逻辑或('||')运算符的用法。''表示或的意思,'|'是按位或的意思,'&&'是并且的意思,C语言中没有'or'。
60.D解析:当数组定义后,系统就为其分配内存空间,而不论其中有没有内容。因此,本题中数组x[10]不论是否为其元素初始化,它所分配的存储空间仍为2*10=20个字节。
61.D
62.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。
63.B
64.B\n本题考查函数中数组和指针的传值,数组a[]在参数传递时,是传递的数组a的首地址,所以形参a和n都是指针变量。。
\n
65.B
66.B解析:两个实体间的联系可以归纳为3种类型:一对一联系:一对一的联系表现为主表中的每一条记录只与相关表中的一条记录相关联。一对多联系或多对一:一对多的联系表现为主表中的每一条记录与相关表中的多条记录相关联。多对多联系:多对多的联系表现为一个表中的多个记录在相关表中同样有多个记录与其匹配。一间宿舍可以住多个学生,但每个学生只能住一个宿舍,所以实体宿舍和学生之间的联系为一对多的联系。
67.C
68.D
\nfun函数的功能是对数组a[]的元素从大到小进行排序。
\n
69.B
\n本题考查带参数的宏的定义:“#defineADD(x)x+x”中X代表m+n,故s写成s=m+n+m+n*k=1+2+1+2*3=10。
\n
70.C选项A“对于float类型数组,不可以直接用数组名完成对数组进行整体输入或输出”,是正确的。C语言中规定,只有字符型的数组才可以用数组名完成对数组进行整体输入或输出,主要是因为没有字符串型的变量,通常用一个字符数组来存放字符串。采用字符串方式后,便可用数组名对数组进行整体输入和输出。
选项B“数组名代表的是数组所占存储区的首地址,其值是常量,是不可改变的”,是正确的。数组名本身是没有方括号和下标的,它实际上是表示数组起始的地址,该地址在数组初始化时由系统分配。
选项C“当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出‘下标越界’的出错信息”,是错误的。在某些编程语言中,下标的取值是不允许超出数组定义中所设的界限的。但是在C和C++中,编译器不对下标的范围进行检查。不检查下标范围的目的有两个,一个是提高运行效率,不检查下标,程序编译耗费时间少。另一个是能够方便指针的使用,数组名并没有包含该数组长度的信息,只包含地址信息,可以看成是一个指针,若检查下标,将限制数组名的使用功能。
选项D“可以通过赋初值的方式确定数组元素的个数”是正确的。C语言规定,如果对数组中所有的元素赋初值,可以省略定义元素的个数。
71.D在D选项中,首先定义了一个二维数组str,str[1]="9uest,在赋值时"使用一个字符串进行赋值是错误的,所以答案选择D。
72.B解析:二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。数组第一维的下标是i,说明它前面还有i行,有i*m个元素,数组第二维的下标是j,说明它前面还有j列,有j个元素,所以共有i*m+j个元素。
73.A
74.A第一次写入abC,第二次写入28,用字符串形式取出,值为abC28,所以答案选择A)。
75.A
76.B
77.B
78.C
79.D二叉树的遍历有3种:前序、中序和后序。①前序遍历访问根结点,然后按左右顺序遍历子结点;②中序首先遍历左子树,然后访问根结点,最后遍历右子树;③后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点。本题根据后序和中序遍历的结果可以得出二叉树的结构,然后再对其进行前序遍历,正确答案选项为D。
80.D本题考查格式输入。程序中定义了一个字符数组s,两个整型变量i和c。随后调用了三次格式输入函数scanf。第一个scanf函数只能输入一个字符型的数据,第二个函数是输入一个整型数据,第三个函数是输入一个字符串。执行代码时,输入123<空格>456<空格>789<回车>,将1作为一个字符用第一个scanf函数输入,23作为一个整型数据由第二个函数输入,而字符串的输入则是以非空白字符开始到第一个空白字符结束,将456作为字符串由第三个scanf函数输入到数组中,该函数在第二个空格处结束。
81.(1)错误:intproc(intn,intxx[][])
正确:intproc(intn,intxx[][M])
(2)错误:printf(″%4f″,xx[i][j]);
正确:printf(″%4d″,xx[i][j]);
【解析】从主函数中的调用语句可知,实参中的一个为二维数组,因此其形参类型也应该一样,而二维时,其列下标必须是常量,因此把“intproc(intn,intxx[][])”改为“intproe(intn,intxx[][M])”。从形参中可知xx数组是整型数组,因此其输出的控制应为整型,故把printf中的”%4f”改为″%4d″。
82.
【解析】在while循环中,利用if判断表达式中每一个字符是否为“#”,如果不是,将其复制到字符串,否则跳过,这就实现了函数的功能。
(1)首先利用工作指针指向字符串,当指针不指向串尾时,就对字符串进行循环判断。
(2)在循环中利用if判断表达式字符是否为“#”,如果不是,将其复制到字符串,否则跳过。
(3)所有字符处理完后,记得在新串s的末尾加上结束符“ˊ\0ˊ”。
2022-2023年江西省抚州市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.一个有n个顶点的连通无向图至少有()条边。
A.n-1B.nC.n+1D.n+2
2.以下说法不正确的是
A.C程序中必须有一个main()函数,C程序是从main()函数的第1条语句开始执行的。
B.非主函数都是在执行主函数时,通过函数调用或嵌套调用而得以执行的。
C.C程序中的main()函数必须放在程序的开始位置。
D.C程序中的main()函数位置可以任意指定。
3.
4.
5.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20][{"One*World","One*Dream!"},*p=str[1];prinft("%d,",strlen(p));printf("%s\n",p);}程序运行后的输出结果是()。A.9,0ne*WorldB.9,0ne*Dream!C.10,One*Dream!D.10,Ome*World
6.深度为5的二叉树至多有C个结点。
A.16B.32C.31D.10
7.以下是if语句的基本形式:if
(表达式)语句,其中表达式A.A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式
8.在一个链式队列中,假设f和r分别为队头和队尾指针,则删除结点的运算是()。
A.r=f->nextB.r=r->nextC.f=f->nextD.f=r->next
9.当执行下面的程序时,如果输入ABC,则输出结果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
10.下列程序的执行结果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]==1;printf("\n%d",x.i);}
A.266B.11C.265D.138
11.数据结构通常研究数据的()及运算。
A.物理结构和逻辑结构B.存储和抽象C.理想和抽象D.理想与逻辑
12.最小堆[0,3,2,5,7,4,6,8],在删除堆顶元素0之后,其结果是()
A.[3,2,5,7,4,6,8]
B.[2,3,5,7,4,6,8]
C.[2,3,4,5,7,8,6]
D.[2,3,4,5,6,7,8]
13.下列叙述中正确的是()
A.C语言程序必须要有return语句
B.C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序中,只有int类型的函数可以未经声明而出现在调用之后
D.C语言程序中,main()函数必须放在程序开始的部分
14.假定a为一个整型数组名,则元素a[4]的字节地址为()。
A.a+4B.a+8C.a+16D.a+32
15.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
16.下列叙述中正确的是()。
A.一个逻辑数据结构只能有一种存储结构
B.逻辑结构属于线性结构,存储结构属于非线性结构
C.一个逻辑数据结构可以有多种存储结构,且各种存诸结构不影响数据处理的效率
D.一个逻辑数据结构可以有多种存储结构,且各种存诸结构影响数据处理的效率
17.若有定义语句“char*s1=“OK”,*s2=“ok”;”,以下选项中,能够输出“OK”的语句是()。
A.if(strcmp(s1,s2)!=0)puts(s2);
B.if(strcmp(s1,s2)!=0)puts(s1);
C.if(strcmp(s1,s2)==1)puts(s1);
D.if(strcmp(s1,s2)==0)puts(s1);
18.下列选项中,能够满足“只要字符串s1等于字符串S2,则执行ST”要求的是()。
A.if(s1-s2==0)ST;
B.if(s1==s2)ST;
C.if(strcpy(s1,s2)==1)ST;
D.if(strcmp(s2,s1)==0)ST;
19.
20.某二叉树的先序序列和后序序列正好相同,则该二叉树可能是______的二叉树。
A.高度大于1的左单支B.高度大于1的右单支C.最多只有一个结点D.既有左孩子又有右孩子
二、2.填空题(20题)21.当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的【】。
22.
doublefun(intn)
{doubles=0.0,fac=1.0;inti;
for(i=1;i<=n;i++)
{fac=fac【】;
s=s+fac;
}
returns;
}
23.以下程序的运行结果是【】。
#include<stdio.h>
#defineMAX(a,b)(a>b?a:b)+1
main()
{inti=6,j=8,k;
printf("%d\n",MAX(i,j));
}
24.表达式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的数据类型为______。
25.在printf格式字符中,以带符号的十进制形式输出整数的格式字符是【】;以八进制无符号形式输出整数的格式字符是【】;以十六进制无符号形式输出整数的格式字符是【】;以十进制无符号形式输出整数的格式字符是【】。
26.下面程序的运行结果是:【】。
fun(intt[],intn)
{inti,m;
if(n==1)returnt[0];
elseif(n>=2){m=fun(t,n-1);returnm;}
}
main()
{inta[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
}
27.以下程序把从终端读入的20个整数以二进制方式写到一个名为d.dat的新文件中,请填空。
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if((fp=fopen(【】,"wb"))==NULL)exit(0);
for(i=0;i<20;i++)
{scanf("%d",&j);fwrite(&j,sizeof(int),1,【】);}
fclose(fp);
}
28.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为【】。
29.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度。请填空。
FILE*myf;longf1;
myf=【】("test.t","rb");
fseek(myf,0,SEEKEND);
f1=ftell(myf);
fclose(myf);
printf("%d\n",f1)
30.栈满时,再作入栈操作会产生【】,栈空时,删除操作会产生【】。
31.有以下程序:
voidf(int*x,iht*y)
{intt;
t=*x;*x;=*y;*y=t;
}
main()
{inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
while(p)
{f(p,q);p++;q--;}
for(i=0;i<8;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是【】。
32.以下程序运行后的输出结果是______。
voidfun(intx,inty)
{
x=x+y;y=x-y;x=x-y;
printf("%d,%d,",x,y);
}
main()
{
intx=2,y=3;
fun(x,y);
printf("%d,%d\n",x,y);
}
33.以下程序的输出结果是【】。
#include<stdio.h>
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
34.若有如下结构体说明:
structSTRU
{inta,b;charc:doubled;
stmctSTRU*p1,*p2;
};
请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。【】t[20]
35.设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为【】。
36.表达式pow(2.8,sqrt(float(x)))值的数据类型为______型。
37.若有如下结构体说明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。
【】t[20]
38.下列的for语句的循环次数为______。
for(x=1,y=0;(y!=19)&&(x<7);x++);
39.数据的逻辑结构在计算机存储空间中的存放形式称为数据的【】。
40.下列语句使指针p指向一个double类型的动态存储单元。
p=【】malloc(sizeof(double));
三、1.选择题(20题)41.下述函数功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}
A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面
42.如下程序的输出结果是______。main(){staticinta[4]={1,2,3,4};int**k,*j;j=a+1;k=&j;printf("%d\n",*(*k+2));}
A.运行错误B.4C.3D.2
43.有以下程序main(){chara,b,c,*d;a='\';b='\xbc';c='\0xab';d="\0127";pfintf("%c%c%c%c\n",a,b,c,*d);}编译时出现错误,以下叙述中正确的是
A.程序中只有a='\';语句不正确
B.b='\xbc';语句不正确
C.d="\0127";语句不正确
D.a='\';和c=,'0xab';语句都不正确
44.有以下程序
voidf(int*q)
{inti=0;
for(;i<5;i++)(*q)++;
}
main()
{inta[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是
A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
45.在位运算中,操作数每右移两位,其结果相当于()。
A.操作数乘以2B.操作数除以2C.操作数除以4D.操作数乘以4
46.有以下计算公式:若程序前面已在命令行中包含math.h文件,不能够正确计算上述公式的程序段是()。
A.if(x>=0)y=sqrt(x);elsey=sqrt(-x);
B.y=sqrt(x);if(x<0)y=sqrt(-x);
C.if(x>=0)y=sqrt(x);if(x<0)=sqdrt(-x);
D.y=sqrt(x>=0?x:-x);
47.一个采用顺序存储方式的线性表中,若线性表的第一个元素的存储地址是200,每一个元素的长度是2,则第6个元素的地址是______。
A.208B.210C.211D.212
48.有如下程序#include<stdio.h>main(){FILE*fpl;fpl=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为
A.goodabcB.abcdC.abcD.abcgood
49.下列选项中,不是一个算法的基本特征的是()。
A.完整性B.可行性C.有穷性D.拥有足够的情报
50.不能与do…while(exp)语句中的(exp)等价的表达式是()。
A.(!exp==0)B.(exp>0‖exp<0)C.(exp==0)D.(exp!=0)
51.若有定义语句:inta[2][3],*p[3],则以下语句中正确的是A.p=a;B.p[0]=a;C.p[0]=&a[1][2];D.p[1]=&a;
52.若有说明:int*p,m=5,n;以下正确的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p)
C.scanf("%d",&n);*p=n;
D.p=&n;*p=m;
53.以下程序的输出结果是______。main(){charch[3][4]={"123","456","78"},*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}
A.123456780B.123456780C.12345678D.147
54.下列叙述中正确的是()。
A.线性链表中的各元素在存储空间中的位置必须是连续的
B.线性链表中的表头元素一定存储在其他元素的前面
C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面
D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的
55.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
56.有下列二叉树,对此二叉树前序遍历的结果为()。
A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH
57.以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是
A.main(){int*p;fun(p);…}intfun(int*p){ints;p=&s;}
B.main{int*p;fun(&p);…}intfun(int**p){ints;*p=&s;}
C.#include<stdlib.h>main(){int*p;fun(&p);…}intfun(int**p){*p=(int*)malloc(2);}
D.#include<stdlib.h>main(){int*p;fun(p);…}intfun(int*p){p=(int*)malloc(sizeof(int));}
58.若定义inta=10,则表达式a+=a-=a*=a的值是()。
A.0B.-180C.-100D.-90
59.能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是
A.a>=10ora<=0
B.a>=0|a<=10
C.a>=10&&a<=0
D.a>=10||a<=0
60.假定int类型变量占用两个字节,若有定义:intx[10]={0,2,4);,则数组x在内存中所占字节数是______。
A.3B.6C.10D.20
四、选择题(20题)61.
62.数据库设计包括两个方面的设计内容,它们是()
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
63.
64.若有函数voidfun(doublea[]。int*n){…}以下叙述中正确的是()。A.调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送
B.形参a和n都是指针变量
C.形参a是一个数组名,n是指针变量
D.调用fun函数时将把double型参数组元素一一对应地传送给形参a数组
65.
66.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。
A.一对一B.一对多C.多对一D.多对多
67.
68.
有以下程序
#include<stdio.h>
voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/
{intt,i,j;
for(i=0;i<n-1;j++)
for(j=i+l;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main
{intc[10]={1,2,3,4,5,6,7,8,9,0),i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序运行的结果是()。
A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
69.
下列程序的运行结果是()。
#include<stdio.h>
#defineADD(x)x+x
main
{intm=1,n=2,k=3;
intS=ADD(m+n)*k;
printf("s=%d",s);
}
A.sum=18B.sum=10C.sum=9D.sum=25
70.28.以下叙述中错误的是
A.对于float类型数组,不可以直接用数组名完成对数组进行整体输入或输出
B.数组名代表的是数组所占存储区的首地址,其值是常量,是不可改变的
C.当执行程序时,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D.可以通过赋初值的方式确定数组元素的个数
71.以下选项中有语法错误的是()。A.char*str[]={"guest"};
B.charstr[][lO]={"guest"};
C.char*str[3];str[t]={"9uest"};
D.charstr[3][lO];str[1]={"guest"};
72.若二维数组a有m列,则在a[i][j]前的元素个数为()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
73.
74.有以下程序程序运行后的输出结果是()。
A.abc28B.28cC.abcD.因类型不一致而出错
75.
76.
77.
78.
79.已知二叉树后序遍历序列是dabeC,中序遍历序列是debaC,它的前序遍历序列是()。
A.aChedB.deCabC.deabeD.Cedba
80.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是
main()
{chars[100];intc,i;
scanf("%c",&c);scanf("%d",&i);scanf("%s",s);
prinnf("%c,%d,%s\n",c,i,s);}
A.123,456,789B.1,456,789
C.1,23,456,789D.1,23,456
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:输出M行M列整数方阵,然后求两条对角线上的各元素之和并将其返回。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.假定输入的字符串只包含字母和“#”号,请编写函数fun(),它的功能是:删除字符串中所有的“#”号。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为“##w#e1##come###”,删除后,字符串中的内容则应当是“welcome”。请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.A
2.C解析:本题考核的知识点是main()函数的作用,以及main()函数在程序中出现的位置。一个完整的C语言程序有且仅有一个主函数(main()函数)。程序总从main()函数的第一条语句开始执行,到main()函数的最后一条语句结束,其他函数都是在执行main()函数时,通过函数调用或嵌套调用而得以执行的。C语言规定,main()函数在程序中的位置是任意的,故选项c不正确。所以,4个选项中C符合题意。
3.B
4.C
5.C本题输出两个结果,第一个是求字符串的长度。第二个是输出的字符串,数组的下标是从0开始的,所以当str取1的时候,应为“One*Dream!”。
6.C
7.D
8.C
9.A
10.A解析:由于本题定义的是共用体,所以成员表列中的整型变景x与字符数组c共占用同—个存储单元,且此存储单元为2个字节,通常c[0]位于低字节,c[1]位于高字节,所以x.i的值为266。
11.A
12.C
13.C
14.C
15.D解析:文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,以此为基础的数据处理存在3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。注意:文件系统和数据库系统各自的特点,人工管理阶段及数据库系统三代的特点。
16.D数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,用的存储结构有顺序和链式结构。用不同的存储结构,其处理的效率是不同的。
17.B“strcmp(S1,S2)”是字符串比较函数,比较规则是两个字符串自左向右逐个字符相比较(按照ASCII值大小)。因为“OK”<“ok”,所以“strcmp(S1,S2)”为负值。故本题答案为B选项。
18.D在C语言中,对两个字符串进行比较,使用字符串比较函数strcmp。如果这个函数的返回值等于0,说明两个字符串相等。故本题答案为D选项。
19.A
20.C
21.物理独立性物理独立性
22./i或*1.O/i或*1或*(1.O/i)或/(double)i/i或*1.O/i或*1或*(1.O/i)或/(double)i解析:主函数中首先定义了两个double型的变量s和fac,并给它们赋初值为0.0和1.0,在函数中s和fac的作用是存放和以及要加到的那一项的值。通过分析可知,第i项的值可以由第i-1项的值得到,即第i项是第i-1项的值除以i。可见横线处应添/i或与它等价的表达式。
23.99解析:本题考查宏定义与三目运算符的综合应用。宏定义是原样替换,本题中,如果a>b成立,则a+1的值为整个表达式的值,否则b+1的值为整个表达式的值(应注意后面的加1)。
24.整型整型解析:上面的表达式中,通过强制类型转换把最后参与运算的数据都转换成了int型,所以最后得到的结果也是int类型。
25.d0xu
26.1111解析:此题涉及函数的调用和if语句。程序先执行第二个if语句,然后再执行第一个if语句,最后用return返回数值。
27."bi.dat"fp'bi.dat'\r\nfp解析:要向文件bi.dat中写数据,所以要打开文件bi.dat。fp是指向文件bi.dat的指针,是将数据写入fp指向的文件中去。
28.物理独立性物理独立性解析:数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为物理独立性。
29.fopenfopen解析:函数fopen的原型为FILE*fopen(char*filename,char*mode),功能为以mode指定的方式打开名为filename的文件;函数fseek的原型为intfseek(FILE*fp,longoffset,intbase),功能为将fp所指向的文件的位置指针移到以base所指出的位置为基准,offset为位移量的位置;函数ftell的原型为longftell
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学生创业项目经管类有哪些
- 五千以内加减混合两步运算过关监控例题带答案
- 在校大学生适合创业的项目
- 四川大学生在家创业项目
- 小学三年级数学五千以内加减混合两步运算综合监控题
- 冬季施工方案编写技巧
- 冬季施工方案外架拆除
- 全国大学生创业网项目概述怎么写
- 伊宁市冬季施工工地施工方案
- 11.2功率 同步练习(含解析)-八年级物理下册(人教版)
- 2025版大学食堂冷链食材配送服务合同模板3篇
- 广西壮族自治区公路发展中心2025年面向社会公开招聘657名工作人员高频重点提升(共500题)附带答案详解
- 《中国的宗教》课件
- 2025年山东鲁商集团有限公司招聘笔试参考题库含答案解析
- 大型活动中的风险管理与安全保障
- 课题申报书:个体衰老差异视角下社区交往空间特征识别与优化
- 江苏省招标中心有限公司招聘笔试冲刺题2025
- 2024年防盗门销售合同范本
- 综采工作面过空巷安全技术措施
- 云南省丽江市2025届高三上学期复习统一检测试题 物理 含解析
- 建材材料合作合同范例
评论
0/150
提交评论