版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年广东省清远市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若有以下程序段intm=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后输出结果是A.0X0B.0x0C.0D.0XABC
2.阅读以下程序及对程序功能的描述,其中正确的是#include<stdio.h>main(){FILE*in,*out;charch,infile[10],outfile[10];printf(“Entertheinfilename:\n”);scanf(“%s”,infile);printf(“Entertheoutfilename:\n”);scanf(“%s”,outfile);if((in=foen(infile,“r”))==NULL)printf(“cannotopeninfile\n”);exit(0);if((out=fopen(outfile,“w”))==NULL)printf(“cannotopenoutfile\n”);exit(0);while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);A.程序完成将磁盘文件的信息在屏幕上显示的功能
B.程序完成将两个磁盘文件合二为一的功能
C.程序完成将一个磁盘文件复制到另一个磁盘文件中
D.程序完成将两个磁盘文件合并并在屏幕上输出
3.若已定义inta,则表达式a=10,a+10,a++的值是()。
A.20B.10C.21D.11
4.若已定义:“inta[9],*p=a;”,并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是______。
A.p+1B.a+1C.a++D.++p
5.设有定义:“inta=1,b=2,C=3;”,以下语句中执行效果与其他三个不同的是()。
A.if(a>b)c=a,a=b,b=C;
B.if(a>b){c=a,a=b,b=C;}
C.if(a>b)c=a;a=b;b=C;
D.if(a>b){c=a;a=b.b=C;)
6.在一个源文件中定义的全局变量的作用域为:()
A.本程序的全部范围B.本函数的全部范围C.从定义该变量的位置开始到本文件结束D.以上说法都不正确
7.在一个双向链表中,q的前一个节点为p,q的后一个节点为n,删除q所指向节点,则执行()
A.deleteq;
B.q->prev->next=q->prev;q->next->prev=q->next;deleteq;
C.q->prev=p->next;p->next=p->prev;deleteq;
D.q->next=q->prev->next;q->prev=q->next->prev;deleteq;
E.q->prev->next=q->next;q->next->prev=q->prev;deleteq;
F.p->prev->next=p->next;p->next->prev=p->prev;deleteq->next;
8.以下不正确的定义语句是A.A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5.3]={0,1,3,5,7,9};
C.charc1[]={′1′,′2′,′3′,′4′,′5′};
D.charc2[]={′\x10′,′\xa′,′\x8′};
9.计算机算法指的是()。
A.计算方法B.排序方法C.解决问题的有限运算序列D.调度方法
10.设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是______。
A.'a'&&'b'
B.a<=b
C.a||+c&&b-c
D.!((a<b)&&!c||1)
11.
12.
13.数据库的故障恢复一般是由()来执行恢复
A.电脑用户B.数据库恢复机制C.数据库管理员D.系统普通用户
14.有以下程序
#include<stdio.h>
intf(intx);
main()
{intn=1,m;
m=f(f(f(n)));printf(”%d\n”,m);
}
intf(intx)
{returnx*2;}
程序运行后的输出结果是()。A.1B.2C.4D.8
15.
16.
17.以下选项中能用作数据常量的是()。
A.115LB.0118C.1.5e1.5D.o115
18.可以判断一个有向图中是否含有回路的方法为()。
A.广度优先遍历B.深度优先遍历C.拓扑排序D.求最短路径
19.若在以下定义和赋值语句,则才s数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为ints[2][3]={0},(*p)[3];p=s;
A.*(*(p+i)+j)B.*(p[i]+j)C.(p+i)+jD.(*(p+i))[j]
20.设计一个判别表达式中左、右括号是否配对出现的算法,采用()数据结构最佳。A.线性表的顺序存储结构B.队列C.线性表的链式存储结构D.栈
二、2.填空题(20题)21.结构化程序设计的3种基本结构分别是顺序、选择和______。
22.若fp已下确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:fp=fopen(【】);。
23.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
24.数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性和【】两个含义。
25.软件危机出现于60年代末,为了解决软件危机,人们提出了【】的原理来设计软件,这就是软件工程诞生的基础。
26.设有下列的程序段:
charstr[]="Hello";
char*ptr;
ptr=-str;
执行上面的程序段后,*(ptr+5)的值为______。
27.数据结构分为逻辑结构和存储结构,循环队列属于______结构。
28.以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“ThisisYES.”与“ThisNO.”。空白处需要填入的内容是
#include<stdio.h>
voidYesNo(charch)
{switch(ch)
{case'y':
case'Y':printf("\nThisisYES,\n");
case'n':
case'N':printf("\nThisisNO.\n");}}
main()
{charch;
printf("\nEnterachar'y','Y'or'n','N':");
ch=【】;
printf("ch;%c",ch);
YesNo(ch);}
29.在结构化分析使用的数据流图中,使()解释其中的图形元素。
30.以下程序运行后的输出结果是【】。
structNODE
{intk;
structNODE*link;
};
main()
{structNODEm[5],*p=m,*q=m+4;
inti=0;
while(p!=q){
p->k=++i;p++;
q->k=i++;q--;
}
q->k=i;
for(i=0;i<5;i++)printf("%d",m[i].k);
printf("\n");
}
31.用链表表示线性表的突出优点是______。
32.以下程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。
#defineM2
#defineN4
voidSumColumMin(inta[M][N],int*sum)
{inti,j,k,s=0;
for(i=0:i<N;i++)
{k=0:
for(j=1;j<M;j++)
if(a[k][i]>a[j][i]k=j;
s+=______;
}
______=s:
}
main()
{intx[M][N]={3,2,5,1,4,1,8.3},s;
sumColumMin(______)
printf("%d\n".s):
}
33.以下程序的输出结果是【】。
#include<stdlib.h>
main()
{char*s1,*s2,m;
s1=s2=(char*)malloc(sizeof(char));
*s1=15;*s2=20;m=*s1+*s2;
printf("%d\n",m);
}
34.多媒体计算机所用的CD-ROM是【】。
35.以下程序运行后的输出结果是______。
#defineS(x)4*X*x+1
main()
{inti=6,j=8;
printf("%d\n",S(i+i));
}
36.设x和y均为int型变量,且x=1,y=2,则表达式2.0+y/x的值为【】。
37.表示“整数x的绝对值大于5”时值为“假”的C语言表达式是______。
38.若intx=1,y=2;则计算表达式y+=y-=x*=y后的y值是()。
39.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、______和选择排序。
40.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。
三、1.选择题(20题)41.如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是()
A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意顺序
42.微机显示器一般有两组引线,它们是()
A.电源线与信号线B.电源线与控制线C.电源线与地线D.控制线与地线
43.假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为
A.log2nB.n2C.O(n1.5)D.n(n-1)/2
44.下列条件语句中,功能与其他语句不同的是()。
A.if(a)printf("%d\n",x);elseprintf("%d\n",y);
B.if(a==0)printf("%d\n",y);elseprintf("%d\n",x);
C.if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);,
D.if(a==O)printf("%d\n",x);elseprintf("%d\n",y);
45.不能把字符串"Hello!"赋给数组b的语句是______。
A.charb[10]={'H','e','l','l','o','!'};
B.charb[10]={'h','e','l','l','o','!'};
C.charb[10];strcpy(b,"Hello!"};
D.charb[10]="Hello!";
46.
下列程序的运行结果是()。
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
47.若二维数组a有m列,且设a[0][0]位于数组的第一个位置上,则计算任意元素a[i][j]在数组中位置的公式为______。
A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1
48.下面程序段的执行结果是()。main(){inta[5][5],i,j;for(i=1;i<5;i++)for(j=1;j<5;j++)a[i][j]=(i<j)*(j/i);for(i=1;i<5;i++){for(j=1;j<5;j++)printf("%2d",a[i][j]);printf("\n");}}
A.1111111111111111
B.0001001001001000
C.1000010000100001
D.0000000000000000
49.下述程序文件输出的结果是______。#inelude<stdio.h>voidmain(){FILE*fp=fopen("TEST","wb");fprintf(fp,"%d5.of%c%d",58,76273.0,'-',2278);fclose(fp);}
A.5876273-2278
B.5876273.000000-2278
C.5876273-2278
D.因文件为二进制文件而不可读
50.以下程序的输出结果是______。intf(){staticinti=0;ints=1;s+=i;i++;returns;}main(){inti,a=0;for(i=0;i<5;i++)a+=f():printf("%d\n",a);}
A.20B.24C.25D.15
51.若以下选项中的变量已正确定义,则正确的赋值语句是()。
A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3
52.设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是()
A.10<a<15
B.a==11||a==12||a==13||a==14
C.a>10&&a<15
D.!(a<=10)SL&!(a>=15)
53.以下程序有错,错误原因是main(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;……}
A.p和q的类型不一致,不能执行*p=*q;语句
B.*p中存放的是地址值,因此不能执行*p=40;语句
C.q没有指向具体的存储单元,所以*q没有实际意义
D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果
54.有以下程序:structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序运行后的输出结果是______。
A.SunDan20044580
B.Penghua20045537
C.LiSiGUO20042580
D.SunDan20041703
55.以下程序的输出结果是______。#include<stdio.h>#defineSQR(x)x*xmain(){inta,k=3;a=++SQR(k+1);printf((“%d\n”,a);}A.8B.9C.17D.20
56.以下数组定义中错误的是()。
A.intx[][3]={0};
B.intx[2][3]={{1,2},{3,4},{5,6}};
C.intx[][3]={{1,2,3},{4,5,6}};
D.intx[2][3]=(1,2,3,4,5,6};
57.下面四个选项中,均是不正确的八进制数或十六进制数的选项是
A.0160x8f018
B.0abc0170xa
C.010-0x110x16
D.0a127ff-123
58.下列叙述中正确的是A.数据库系统是一个独立的系统,不需要操作系统的支持
B.数据库设计是指设计数据库管理系统
C.数据库技术的根本目标是要解决数据共享的问题
D.数据库系统中,数据的物理结构必须与逻辑结构一致
59.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
60.以下叙述中正确的是()。
A.构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main()函数必须放在其他函数之前
D.所有被调用的函数一定要在调用之前进行定义
四、选择题(20题)61.
62.有3个关系R、S和T如下.
则由关系R和S得到关系T的操作是()。A.自然连接B.差C.交D.并
63.有以下程序:
main()
{char*p[]={"3697","2584"};
inti,j;longnum=0;
for(i=0;i<2;i++)
{j=0;
while(p[i][j]!=’\0’)
{if((p[i][j]-’0’)%2==0)num=10*num+p[i][j]-’0’;
j+=2;
}
}
printf("%d\n",num);
}
程序执行后的输出结果是()。
A.35B.37
C.39D.28
64.(9)下列叙述中正确的是()
A.数据库是一个独立的系统,不需要操作系统的支持
B.数据库设计是指设计数据库管理系统
C.数据库技术的根本目标是要解决数据共享的问题
D.数据库系统中,数据的物理结构必须与逻辑结构一致
65.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为()。
A.20B.0或35C.15D.16
66.定义结构体数组:structstu{intnum;charnameE20];}X[5]={1,"LI",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU");for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);以上程序段的输出结果为()。A.2A3N4A5UB.112A3H4IC.1A2N3A4UD.2H3A4H5I
67.
68.
69.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为()。
A.p+1B.a+1C.a++D.++p
70.
71.有以下程序程序的运行结果是()。
A.852B.963C.741D.875421
72.下列叙述中正确的是()。
A.软件测试的目的是确定程序中错误的位置
B.软件测试的目的是发现程序中的错误
C.软件调试的目的是发现程序中的错误
D.软件调试后一般不需要再测试
73.在最坏情况下,堆排序的时间复杂度是()。
A.0(1902n)B.O(n1092n)C.o(n2)D.0(n1.5)
74.执行语句X=(a=10,b=a--.后,x、a、b的值依次为()。
A.10,10,9
B.10,9,9
C.9,10,9
D.10,9,10
75.
76.
77.下列标识符不是关键字的是()。
A.breakB.charC.SwithchD.return
78.若有以下定义:intt[3][2];,能正确表示t数组元素地址的表达式是______。
A.&t[3][2]B.t[3]C.t[1]D.*t[2]
79.以下程序运行后的输出结果是()。
#include<stdio.h>
main()
{inti;
for(i=1;i<=5;i++)
switch(i%5)
{case0:printf("*");break;
case1:printf("#");break;
default:printf("\n");
case2:printf("&");
}
}
A.B.#&C.#&D.&
**
&**
80.
五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传人,若k的值为600,则函数的值为5671。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写函数proc(),它的功能是计算:s=(1n(1)4-1n(2)+In(3)4-…+1n(m))0.5在C语言中可调用log(n)函数求1n(n)。例如,若n1的值为30,则proc()函数值为8.640500。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.C解析:格式字符x或x是以十六进制无符号形式输出整型数(不带前导0x或OX)。对于x用abc输出,X用ABC输出。
2.C
3.B
4.C
5.C本题判断结果。选项A中,如果(a>b),则执行“c=a,a=b,b=c”这个语句(注意分号的位置,如果条件成立,将会执行第一个分号前的语句),显然if不成立,则a,b,C原样输出。选项B和选项D是同理,而选项C因为条件不成立,则不执行第一条语句“c=a”,接着执行“a=b”,将b的值赋给a,a的值为2;“b=C”,b的值为3,C的值原样输出,结果为2,3,3。
6.C
7.E
8.B
9.C
10.D解析:选项A:'a'&&'b'是字符a与b的相与,不为0:选项B:a<=b,由题中变量赋值可知,结果为1。选项C:a||+c&&b-c,结果为1;选项D:!((a<B)&&!c||1),运算结果为0。
11.A
12.A
13.CC)【解析】数据库一旦发生故障,需要及时进行故障恢复,并由数据库管理员负责执行故障恢复。
14.D解析:本题考查函数返回值作参数,最初n=1,f(n)=f(1)=2,将f(n)的结果代入第二个f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。
15.B
16.B
17.AA选项中“115L”表示长整型数据。B选项是八进制常量的表示方法,但是在八进制中不能含有数字8,所以B选项错误。C选项中e后面应该是整数,而不能是小数1.5,所以C选项错误。D选项中八进制常量应该是以数字“0”开始,而不是以字母“o”开始。故本题答案为A选项。
18.C
19.A解析:p+i是数组s的第i+1行的首地址,而*(p+i)则是数组第i+1行第1列的元素的地址,*(p+i)+j则是第i+1行的第j+1列的地址,*(*(p+i)+j)引用的是数组元素s[i][j]的值。注意:通过建立一个指针数组来引用二维数组元素。
20.D
21.重复(循环)重复(循环)解析:结构化程序设计包括3种基本的结构:顺序结构、选择结构和重复结构(循环结构),利用这3种结构就足以表达出各种其他形式结构的程序设计方法。其中利用循环结构,可以简化大量的程序执行。
22.“d1.dat”“rb”或“d1.dat”“r+b”或“d1.dat”“rb+”“d1.dat”,“rb”,或“d1.dat”,“r+b”,或“d1.dat”,“rb+”,解析:打开文件的函数为fopen(”文件名”,“mode”),其中“mode”表示文件的打开方式。如果打开的是二进制文件,其mode字符串可以是:“rb”、“wb”、“ab”、“rb+”、“wb+”、“ab+”。“r”表示以只读方式打开。“w”表示以写方式打开,如果已存在该文件名的文件,文件中的内容将被清空。若文件名不存在,则将创建该文件。“a”为追加方式打开。若文件存在时;将打开这个文件并且在文件的末尾进行追加。当文件不存在,将创建新文件。“r+”打开一个已存在文件用于更新(可读可写)。“w+”创建个新文件用于更新,如果文件存在,文件被重写(可读可写)。“a+”打开用于追加,当文件不存在时,创建新文件,并在文件末尾进行追加(可读可写)。根据题意,应该填“d1.dst”,“rb”或其他等价的表达法。
23.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
24.逻辑独立性逻辑独立性解析:数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。数据独立性一般分为物理独立性与逻辑独立性两个含义。注意:在人工管理阶段,文件系统阶段和数据库管理阶段中数据独立性的特点。
25.软件工程学软件工程学
26.'\0''\\0'解析:本题涉及字符数组和指针的两个知识点:①在c语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符'\\0',所以题中数组str有6个元素。②ptr指向数组s仕的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
27.存储或物理或存储结构或物理结构存储或物理或存储结构或物理结构解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。供队列循环使用。可知,循环队列应当是物理结构。
28.getchargetchar解析:题中要求根据输入的字符调用函数YesNo来判断输入的字符是y(Y)还是n(N),字符的输入可用字符输入函数getchar。函数YesNo用来判断一个字符是y(Y)还是n(N),主要用了一个switch多分支结构来比较输入字符与字符'y','Y'、,'n','N'是否相等来实现的。注意:用于字符串处理的函数。
29.数据字典数据字典解析:数据字典的作用是对数据流图中出现的披命名的图形元素进行确切解释。通常数据字典包含的信心有名称、别名、何处使用/如何使用、内容描述、补充信息等。
30.1343113431解析:初始化时,指针p指向m[0]的地址,指针q指向m[4]的地址,p!=q满足循环条件,执行循环语句,得到m[0].k=1,m[4].k=1,此时i=2,指针p指向m[1]的地址,指针q指向m[3]的地址,p!=q满足循环条件,执行循环语句,得到m[1].k=3,k=3,此时i=4,指针q指向m[2]的地址,p==q不满足循环条件,则退出循环,m[2].k=4。所以最后输出为13431。
31.便于插入和删除操作。便于插入和删除操作。解析:为了克服顺序表中插入和删除时需要移动大量数据元素的缺点,引入了链式存储结构。链表表示线性表的突出优点是插入和删除操作方便,不必移动数据元素,执行效率高。
32.a[k][i]*sumx&s
33.4040解析:本题中指针s1和s2都指向同一个内存中的地址。因此语句“*s2=20;”执行后,*\u3000s1=*s2=20。所以m最后的值为40。
34.只读光盘只读光盘
35.8181解析:,解此类题一定要注意宏替换与函数调用的区别。宏替换是字面上的,在编译期间就完成了,它只是将实参字符串替换蚌宏中形参出现的位置,得到的新串来替换掉宏调用.。而函数是将实参先计算好,然后将值赋给形参,再执行函数体,整个过程在程序运行时发生。所以本题的宏调用s(1+1)将被替换成表达式4*i+j*i+j+1等于4*6+8*6+8+1=24+48+8+1=81。所以本题输出81。
36.4.0或44.0或4
37.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本题考查基本逻辑表达,“整数x的绝对值大于5”时值为“假”,即整数x的绝对值小于等于5,也就是整数x要大于等于-5且要小于等于5。这里“且”用“与(&&)”表示,所以C语言表达式为:(x>-5)&&(x<5)。
38.0
39.交换排序交换排序解析:所谓排序是指将一个无序序列整理成按值非递减顺序排列成的有序序列,常用的排序方法有:交换排序、插入排序和选择排序。其中交换排序包括冒泡排序和快速排序,插入排序包括简单插入排序和希尔排序,选择排序包括直接选择排序和堆排序。
40.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。
41.B解析:由栈“后进先出”的特点可知:A中e1不可能比e2先出,C中e3不可能比e4先出,且e1不可能比e2先出,D中栈是先进后出的,所以不可能是任意顺序。所以B是正确的。它执行的顺序是:e1进栈→e2进栈→e2出栈→e3进栈→e4进栈→e4出栈→e3出栈→e1出栈,所以只看出栈序列应为e2,e4,e3,e1。
42.A
43.D解析:假设线性表的长度为n,则在最坏情况下,冒泡排序要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。
44.D解析:选项A)的语句表示若a非0,则输出x的值,否则输出y的值;选项B)的语句表示如果a等于o,则输出y的值,否则输出x的值,与选项A)等价;选项C)的语句表示如果a不等于0,则输出x,否则输出y,与选项A)、B)相同;选项D)的语句表示如果a为0,则输出x,否则输出y,与前三个选项都不同。
45.B解析:在C语言中,大写字母和小写字母被认为是两个不同的字符,因此,“hello!”和“Hello!”是两个不同的字符串。
46.C解析:逗号表达式的求解步骤是先求解表达式1,然后依次求解表达式2,直到表达式N的值。整个逗号表达式的值就是最后一个表达式N的值。
表达式(x=3*y,x+1)中,第一个表达式x=3*y=3*5=15;第二个表达式x+1=16,但没有给x或y赋值,所以x还是等于15;第3个表达式x-1=15-1=14,所以y的值为14。
47.D解析:a[i][j]的位置应该是第i+1行,第j+1列,那么它的位置是(i+1-1)*m+j+1=i*m+j+1。
48.C解析:本题使用一个双重循环对—个二维数组的一部分赋值(下标中含0的元素不赋值),赋值表达式是a[i][j]=(i/j)*(j/i)。因为i和j都是正整数,所以当i大于j时,j/i为0,当i小于j时,i/j为0,而0乘以任何数都为0,故表达式(i/j)*(j/i)在i和j不相等时的值为0。当i和j相等时,i/j和j/i的值都为1,所以表达式(i/j)*(j/i)的值为1。故二维数组中的a[1][1]、a[2][2]、a[3][3]、a[4][4]被赋为1,其余下标不含0的元素被赋为0。故应该选择C。
49.C解析:fprintf函数工作时,多个数据间不会自动加分隔符,选项A错误;浮点数的搞出格式是“%5.0f”表明其小数部分输出0位,即没有输出,所以选项B也是错误的。
50.D解析:函数f中变量i为静态变量,函数f调用结束后变量i所占据的存储单元不会释放,而在主函数中f被调用5次,具体过程如下。
第1次调用f:s=s+i=1+0=1,i=i+1=1,主函数中a=a+f()=O+1=1
第2次调用f:s=s+1=1+1=2,i=i+1=2,丰函数中a=a+f()=1+2=3
第3次调用f:s=s+1=1+2=3,i=i+1=3,主函数中a=a+f()=3+3=6
第4次调用f:s=s+i=1+3=4,i=i+1=4,主函数中a=a+r()=6+4=10
第5次调用f:s=s+i=1+4=5,i=i+4=5,主函数中a=a+f()=10+5=15
所以printf语句的输出结果为15。
51.C解析:赋值的一般形式为:变量名:表达式;,赋值的方向为由右向左,即将:右侧表达式的值赋给:左侧的变量,执行步骤是先计算再赋值。选项A中运算符%的运算对象必须为整数,而选项A中26.8不为整数,故选项A不正确;选项B将一个变量赋值给一个常量,这在C语言中是不允许的,故选项B不正确;选项D中也是将一个常量3赋值给一个常量,故选项D不正确;所以,4个选项中选项C符合题意。
52.A
53.D解析:该程序的执行过程是:首先声明整型指针变量P和整型变量i,字符型指针变量q和字符型变量ch,将i的地址赋给指针变量p,将ch的地址赋给指针变量q,将40赋给*p,此时,q已经指向了一个具体的存储单元,但ch的值不确定,即*p没有确定的值,所以不能执行*p=*q语句。
54.B解析:f函数用了显式传地址的方式,因此主函数中的s值发生了变化。
55.B
56.B解析:选项B的第1维长度为2,而初始化列表外花括号中包含了3个内花括号,所以该选项的定义错误,故应该选择B。
57.D解析:八进制中,不可能包括8以上的数字,它的范围只在07之间,以0开头。同样,十六进制是以0x开头,数字在0~9和A~F之间。
58.C解析:数据库系统需要操作系统的支持,这一点必不可少,故选项A叙述不正确。选项B错误,数据库设计是指设计一个能满足用户要求,性能良好的数据库。选项D也不对,数据库应该具有物理独立性和逻辑独立性,改变其中的一个而不影响另一个。正确答案为选项C。
59.AB选项中运算符“%”的运算对象为整数。C选项中不能将变量赋给表达式“x+n”。D选项中不能将表达式“4+1”赋给常量5。故本题答案为A选项。
60.A解析:本题综合考查C语言的概念部分,关于C语言,我们应该了解以下必须要掌握的基础知识:
①C程序是由函数构成的。
②一个函数由两部分组成:函数的首部和函数体。
③一个C程序总是从main函数开始执行的,而不论main函数的整个程序中的位置如何(main函数可以放在程序最开始,也可以放在程序最后,或写在一些函数之前,在另一些函数之后)。
④C程序在书写上,表现形式比较自由,一行内可以写几个语句,一个语句可以分写在几行上。每个语句和数据定义的最后必须有一个分号。
⑤C程序本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成。
⑥可以用/*……*/对C语言的程序的任何部分作注释。
61.C
62.B关系之间的操作分为自然连接、投影、交、并、差等,由图可知此操作为差操作。
63.Di=0,i<2,j=0,p[i][j]=3,不满足if判断条件,j+2=2,p[i][j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 通信行业技术维护工程师网络优化绩效评定表
- 人力资源部招聘效率KPI绩效考评表
- 数据分析专员数据可视化绩效考核表
- 产品生命周期管理指导手册
- 2026年马鞍山市第二中学公开招聘教师7名模拟试卷含答案详解AB卷
- 河南省南阳市方城县部分校2025-2026学年七年级下学期学情调研(6月)生物试卷(含解析)
- 项目管理任务分解与执行计划手册
- 广西钦州市第十三中学2026春季学期高一年级6月份考试地理试卷(含答案)
- 2026西安咸有孚科技有限公司招聘政务服务工作人员招聘4人备考题库附参考答案详解(模拟题)
- 石油化工企业安全生产规程操作指南
- 煤矿井下喷浆安全培训课件
- 人教版物理九年级第14章第2节《热机的效率》听评课记录
- 神经外科护理小讲课
- 海外属地化员工管理制度
- 地震救援安全培训课件
- TCEC-抽水蓄能电站润滑油在线监测技术导则编制说明
- 敬业合同协议书范本下载
- 图形的平移与旋转(八大题型)原卷版-2024-2025学年北师大版八年级数学下册
- DB3210T 1181-2024高邮咸鸭蛋加工制作规程
- 物业礼貌礼仪培训内容
- 除氧器乏汽回收装置
评论
0/150
提交评论