版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年山西省晋城市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.数据流图用于抽象地描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是()。
A.控制流B.加工C.数据存储D.源和潭
2.已知一算术表达式的中缀形式为A+B*C–D/E,后缀形式为ABC*+DE/–,其前缀形式为()。
A.–A+B*C/DEB.–A+B*CD/EC.–+*ABC/DED.–+A*BC/DE
3.线性表是具有n个()的有限序列。
A.表元素B.字符C.数据元素D.数据项
4.
5.以下符号中不能作为标识符的是()。
A._256B.r32C.intD.e231
6.用树形结构表示实体之间联系的模型的是
A.关系模型B.网状模型C.层次模型D.以上三个都是
7.以下叙述中正确的是()。A.A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D.c语言中的文件是流式文件,因此只能顺序存取数据
8.下列程序的输出结果是()main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf(“%d,%d,%d\n”,x,y,z);}A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
9.有以下程序:#include<stdio.h>main(){FILE*pf;char*s1=“China”,*s2=“Beijing”;pf=fopen(“abc.dat”,“wb+”);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指针回到文件开头*/fwrite(s1,5,1,pf);fclose(pf);}程序执行后,abc.dat文件的内容是()。
A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina
10.
11.
12.有嵌套的if语句:if(a<b) if(a<c)k=a; elsek=c;elseif(b<c)k=b;elsek=c;以下选项中与上述if语句等价的语句是()。
A.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
B.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
C.k=(a<b)?a:b;k=(b<c)?b:c;
D.k=(a<b)?a:b;k=(a<c)?a:c;
13.若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是()。
A.switch(a+9){casecl:y=a-b;casec2:y=a+b;}
B.switcha*b{casel0:x=a+b;default:y=a-b;}
C.switch(a+b){casel:case3:y=a+b;break;case0:case4:y=a-b;}
D.switch(a*a+b*b){default:break;case3:y=a+b;break;case2:y=a-b;break;}
14.在一个被调用函数中,关于return语句使用的描述,()是错误的。
A.被调用函数中可以不用return语句
B.被调用函数中可以使用多个return语句
C.被调用函数中,如果有返回值,就一定要有return语句
D.被调用函数中,一个return语句可以返回多个值给调用函数
15.用单链表方式存储的线性表,存储每个结点需要两个域,一个数据域,另一个是()。
A.当前结点的所在地址B.后继结点的所在地址C.空指针域D.空闲域
16.
17.设有定义inta=2,b=3,c=4;,则以下选项中值为0的表达式是______。A.(!a==1&&(!b==0)
B.(a<b)&&!c||1
C.a&&b
D.a||(b+b)&&(c-a)
18.以下叙述中错误的是()。
A.c语言是一种结构化程序设计语言
B.使用三种基本结构构成的程序只能解决简单问题
C.结构化程序设计提倡模块化的设计方法
D.结构化程序由顺序、分支、循环三种基本结构组成
19.程序中已构成如下不带头节点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表节点,指针变量s总是作为指针指向链表的第1个节点。若有以下程序段:q=s;s=s->next;p=s;while(p->next)p=p->next;p->next=q;q->next=NULL;该程序段实现的功能是()。
A.删除尾节点B.使尾节点成为首节点C.删除首节点D.使首节点成为尾节点
20.程序运行后的输出结果是()。A.3B.4C.5D.6
二、2.填空题(20题)21.下列程序的输出结果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
22.以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(______);
ch=fSetc(fp);
while(!feof(fp)){putchar(ch);ch=fSetc(fp);}
putchar('\n');fclose(fp);
}
23.函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,s<t时返回负值。请填空。
My_cmp(char*s,char*t)
{while(*s==*t)
{if(*s==′\0)return0;
++s;++t;
}return【】;
}
24.有以下程序:
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]);
}
程序运行后的输出结果是【】。
25.下面程序段的输出结果是【】。
intx=5;
do{printf("%d",x-=4);
}while(!(--x));
26.在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【】。
27.以下程序运行后的输出结果是______。
main()
{
intx=10,y=20,t=0
if(x==y)t=x;x=y;y=t;
printf("%d,%d/n",x,y);
}
28.下列程序的功能是将字符串s中所有的字符c删除。请填空。
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='c')______;
s[j]='\O';
puts(s);
}
29.以下程序的运行结果是【】。
#defineMAX(a,b)(a>b?a:b)+1
main()
{inti=6,j=8,k;
printf("%d\n",MAX(i,j));
}
30.下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
31.有以下程序
intfa(intx){returnx*x;}
intfb(intx){returnx*x*x;}
intf(int(*fl)(),int(*f2)(),intx}
{returnf2(x)-f1(x);}
main()
{inti;i=f(fa,fb,2);printf("%d\n",i);}
程序运行后,输出结果是【】。
32.下列程序的功能是计算1~100的整数的累加和。
main()
{inti,sum=【】;
i=1;
for(【】)
{sum+=i;
i++;
}
printf("sum=%d\n",【】);
}
33.设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=______;
scanf("%d%d%d",&x,&y,&z}:
big=(*f)(x,y,Z);
printf("big=%d\n",big);
}
34.问题处理方案的正确而完整的描述称为______。
35.以下程序的功能是从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。
majn()
{FILE*fp;charch;
fp=fopen(______);
ch=fgetc(fp);
whle(!feof(fp)){putchar(ch);ch=f8etc(fp);}
putchar('\n');fclose(fp);
}
36.以下程序调用invert函数按逆序重新放置a数组元素的值。a数组中的值在main函数中读入。
#include<stdio.h>
#defineN10
invert(s,i,j)
int*s,i,j;
{intt;
if(i<j)
{t=*(s+i);
*(s+i)=(s+j);
*(s+j)=t;
invert(s,【】,j-1);
}
}
main()
{
inta[N],i;
for(i=0;i<N;i++)scanf("%d",a+【】);
invert(a,0,N-1);
for(i=0,i<N;i++)printf("%d",a[i]);
printf("\n")
}
37.下面程序是计算100以内能被4整除且个位数为4的所有整数,请填空。
main()
{intm,n;
for(m=0;【】;m++)
{n=m*10+4;
If(【】)continue;
printf("%d\n",n);}}
38.设a、b、c为int型变量,且a=10、b=5、c=1,则执行完以下语句,a的值变为【】。
a/=10-(++b)-(c--);
39.以下程序通过函数SunFun求。这里f(x)=x2+l,由F函数实现。请填空。
main()
{
printf("Thesum=%d\n",SunFun(10));
}
SunFun(intn)
{
intx,s=0;
for(x=0;x<=n;x++)
S+=F(______);
returns;
}
F(intx)
{
return(______);
}
40.strcmp函数的功能是【】。
三、1.选择题(20题)41.在说明语句:int*f();中,标识符f代表的是
A.一个用于指向整型数据的指针变量
B.一个用于指向一维数组的行指针
C.一个用于指向函数的指针变量
D.一个返回值为指针型的函数名
42.下列有关数据库的描述,正确的是______。
A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件
43.请选出可用作C语言用户标识符的是
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
44.有下列函数定义:
fun(floath)
{printf("%f,%f\n”,h,h*h);}
该函数的类型是()。
A.int类型B.float类型C.void类型D.函数无类型说明,定义有错
45.设计数据库的存储结构属于()。
A.需求分析B.概念设计C.逻辑设计D.物理设计
46.以下数据库除______外,均为严格意义上的DBMS系统。
A.OracleB.AccessC.Sybase的PowerBuilderD.SQLServer
47.有以下程序:#include<stdio.h>unionpw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}程序的输出结果是(注意:ch[0]在低字节,ch[1]在高字节)()。
A.13B.14C.208D.209
48.有如下定义:structperson{charname[9];intage;}structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};能输出字母M的是()
A.printf("%c\n",class[3].name);
B.printf("%c\n",class[3].name[1]);
C.printf("%c\n",class[2].name[1]);
D.printf("%c\n",class[2].name[0]);
49.下面程序段的输出为()。
#include"stdio.h"
main
{
printf("%d\n",12<<2);
}
A.0B.47C.48D.24
50.以下数据结构中不属于线性数据结构的是______。
A.队列B.线性表C.二叉树D.栈
51.以下程序段十,不能正确赋字符串(编译时系统会提示错误)的是()。
A.chars[10]="abedefg";
B.chart[]="abcdefS",*s=t;
C.chars[10];s="abcdefg";
D.chars[10];strcpy(s,"abcdefg");
52.以下对结构体类型变量的定义中,不正确的是()。
A.typedefstruetaa{intn;floatm;}AA;AAtdl;
B.#defineAAstructaaAA{intn;floatm;}tdl;
C.struct{intn;floatm;}aa;structaatdl;
D.struct{intn;floatm;}tdl;
53.在微机系统中,对输入输出设备进行管理的基本程序模块(BIOS)存放在()
A.RAM中B.ROM中C.硬盘中D.寄存器中
54.若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以哪种方式打开文件()。
A.wbB.wb+C.rb+D.rb
55.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表
56.设有数组定义:chararray[]="China";则数组array所占的空间为()
A.4个字节B.5个字节C.6个字节D.7个字节
57.以下选项中不能正确把cl定义成结构体变量的是A.typedefstruct{intred;intgreen;intblue;}COLOR;COLORcl;
B.structcolorcl{intred;intgreen;intblue;}
C.structcolor{intred;intgreen;intblue;}cl;
D.struct{intred;intgreen;intblue;}cl;
58.若有定义intb[8],*p=b;则p+6表示()。
A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[0]的值加上6
59.定义int*swap()指的是______。
A.—个返回整型值的函数swap()
B.一个返回指向整型值指针的函swap()
C.一个指向函数swap()的指针,函数返回一个整型值
D.以上说法均错
60.若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元int*pp=______malloc(sizeof(int));则应填入______。
A.intB.int*C.(*int)D.(int*)
四、选择题(20题)61.设有以下定义:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*ptr)[3]=a,*p=a[0];
则下列能够正确表示数组元素a【1】【2】的表达式是()。
A.*((*ptr+1)[2])
B.*(*(p+5))
C.(*ptr+1)+2
D.*(*(a+1)+2)
62.下列叙述中正确的是()。
A.栈是“先进先出”的线性表
B.队列是“先进后出”的线性表
C.循环队列中元素的个数是由队头指针和队尾指针共同决定的
D.循环队列中队头指针是固定不变的
63.
64.对如下二叉树进行后序遍历的结果为()。
A.A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
65.
66.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。
A.大写字母B.连接符C.数字字符D.下划线
67.
68.
69.
70.有以下程序:
程序运行后的输出结果是()。
71.
72.有以下程序:
程序运行后的输出结果是()。
A.1002,ZhangDa,1202.0
B.1002,ChangRon9,1202.0
C.1001,ChangRon9,1098.0
D.1001,ZhangDa,1098.0
73.
74.C语言可执行程序的开始执行点是()。
A.包含文件中的第一个函数B.程序中第一个函数C.程序中的main()函数D.程序中第一条语句
75.有以下语句:Charb[B];intC;,则正确的输入语句是()。
A.
B.
C.
D.
76.有以下程序:
main()
{intx=0,y=5,z=3;
while(z-->0&&++x<5?x:y--)y=y-1
Printf("%d,%d,%d\n",x,y,z);
}
程序执行后的输出结果是()。
A.3,2,0B.3,2,-1C.4,3,-1D.3,-1,-2
77.下列叙述中不正确的是()。
A.在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B.在C的函数中,最好使用全局变量
C.外部变量可以在函数之间传递数据
D.自动变量实质上是一个函数内部的局部变量
78.
79.以下程序的输出结果是()。main{inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7
80.下面四个选项中,均是不合法的用户标识符的选项是()。
A.
B.
C.
D.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:传人一个整数n,计算如下公式的值。t=1/2-1/3-…-1/n例如,若输入3,则应输出0.166667。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写一个函数proc(),它的功能是:求出一个4×N整型二维数组中最大元素的值,并将此值返回调用函数。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:
参考答案
1.A解析:数据流图包括四个方面,即加工(输入数据经加工变换产生输出)、数据流(沿箭头方向传送数据的通道,一般在旁边标注数据流名)、存储文件(数据源)(表示处理过程中存放各种数据的文件)、源和潭(表示系统和环境的接口,属系统之外的实体),不包括选项中的控制流。
2.D
3.A
4.C
5.C
6.C解析:在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有三种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。因此,本题的正确答案是C。
7.AB)选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。c)选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可。D)选项中,C语言中的文件可以进行随机读写。故本题答案为A)。
8.B解析:本题的执行过程是:
在While循环中,
比较xyz
第—次:3>0&&1<5142
第二次:2>0&&2<5231
第三次:1>0&&3<5320
判断条件“z-->0”不成立,也不执行“i+=2”语句,循环结束,因此,输出结果为3,2,-1。
9.B题目中先是将s2字符串写入adc.dat中,然后执行rewind函数将写指针放置于文件开头,写入s1字符串。s1字符串将前5个字符覆盖,所以最终结果为Chinang。故本题答案为B选项。
10.B
11.A
12.B题目中嵌套语句的含义是当“a<b”且“a<c”成立时,将a的值赋给k。如果“a<b”成立而“a<c”不成立,则将c的值赋给k。如果“a<b”不成立而“b<c”成立,则将b的值赋给k。如果“a<b”不成立且“b<c”也不成立,则将c的值赋给k。判断条件表达式,只有B选项可以表示这个含义。故本题答案为B选项。
13.D选项A,当cl和c2相等时,不成立;选项B,a*b要用括号括起来;选项C,case与后面的数字用空格隔开。
14.D
15.B
16.B
17.A解析:选项A中(!a==1)&&(!b==0)→(!2==1)&&(!b==0)→(0==1)&&(!b==0)→0&&(!b==0)→0(&&右边表达式(!b==0)被“短路”):选项B中(a<b)&&!c||1→(2<3)&&!4||1→1&&0||1→0||1→1;选项C中a&&b→2&&3→1;选项Da||b+b)&&(c-a)→2||(b+b)&&(c-a)→1(||右边表达式(b+b)&&(c-a)被“短路”)。所以本题选A。
18.BC语言是一种结构化程序设计语言。结构化程序设计是以模块化设计为中心的,有三种基本结构:顺序、选择和循环结构。各模块相互独立,因而可将原来较为复杂的问题化简为一系列简单模块并充分利用现有模块搭建新系统,提高程序的重用性和可维护性。
19.D程序中,指针s指向了它的下一个节点。题目中说明了s总是指向链表的第1个节点。然后while循环找到链表的最后一个元素,最后一个元素指向了之前链表的头节点,之前头节点指向了空节点。所以本题实现的是使首节点成为尾节点。故本题答案为D选项。
20.B[解析]&按位与,如果两个相应的二进制位都为1.则该位的结果值为1.否则为0.按位或两个相应的二进制位中只要有一个为1.该位的结果值为1.2的二进制为0000010.4的二进制为000000所以做或运算结果为0000110.该数与5即00000101做与操作结果为0000100.即4.
21.66解析:条件运算符的优先级高于赋值运算符,因此本题先计算关系表达式(*ptr+y)<x)?*(ptr+y):x的值,再赋给变量z。当y=0时,*(ptr+y)=2,而x=8,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=2,所以z=2;当y-1时,*(ptr+y)=4,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=4,所以z=4;当y=2时,*(ptr+y)=6,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=6,所以z=6;循环结束。因此输出z的结果为6。
22.解析:fopen函数的调用方式通常为fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入'filea.dat','r'。
23.*s-*t*s-*t解析:两字符串大小比较必须从它们的首字符开始,在对应字符相等情况下循环,直至不相等结束。相等时,若字符串已到了字符串的结束标记符,则两字符串相同,函数返回0值;如还有后继字符,则准备比较下一对字符。对应字符不相同,循环结束。循环结束时,就以两个当前字符的差返回,所以在空框处应填入*s-*t,保证在s>t时,返回正值,当s<t时,返回负值。
24.876543218,7,6,5,4,3,2,1解析:函数f是将x、y指针的内容互换,整个while循环是将a[0]与a[7]互换,a[2]与a[5]互换,a[3]与a[4]互换。
25.1-41-4解析:题目中首先让x=5,然后进入do-while循环体,输出x-4的值1,此时x为1,表达式!(--x)的值为!(0)为真(此时x变为0),所以再次执行循环体,输出x-4的值-4,此时x为-4,表达式!(--x)的值为!(—5)为假,退出循环。故输出结果是1-4。
26.log2n
27.20020,0解析:本题考查的知识点是if语句的基本概念。在主函数中首先定义了三个整型变量x、y,t,并分别给它们赋初值为10,20,0,接着执行if语句,在if后面括号内的条件表达式中,条件“x==y”即“10==20”不成立,则不执行其后的语句“t=x”,然后退出if语句,顺序执行语句X=y;y=t;。执行完这两条语句后x的值变为20,y的值变为0,所以最后输出x,y的值为20和0。
28.s[j++]=s[i]s[j++]=s[i]解析:循环开始后如果数组s中储存值与字符c相同,则i++直接跳过当前值;如果不相同,则将当前值赋予数组指定位置,并通过j++将下标加1,指向下一元素要存储的位置。
29.99解析:本题考查宏定义与三目运算符的综合用法,宏定义是原样替换,本题中,如果a>b成立,则a+1的值为整个表达式的值,否则为b+1的值为整个表达式的值,(应注意后面的加1)。
30.k=p;k=p;解析:为要寻找数组中的最大元素的下标,需先预设1个临时最大元素的下标,并顺序逐一考查数组的元素,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标。直至考查了数组的全部元素后,这临时最大元素下标就是数组的最大元素下标。通常预设的最大元素下标是数组的首元素下标,考查是从首元素开始顺序向后继元素考查。程序中,存储临时最大元素下标的变量是k,变量p控制顺序考查的循环控制变量。当发现当前元素s[p]比临时最大元素s[k)更大时,应该用p更新k。所以在空框处应填入代码“k=p;”。
31.44解析:在主函数中调用函数f,函数f有三个参数,形参f1与f2分别是两个指向函数的指针。在f中执行f2(x)-f1(x),实际上是执行了fb(2)-fa(2),故执行i=(fa,fb,2)后i的龇23-22=4。
32.0;sum<=100;sum
33.findbigfindbig解析:本题考核的知识点是指向函数的指针变量的使用。本题首先定义了一个指向函数的指针变量f,如果希望让它指向某个函数,只需把函数名赋给该指针变量即可。所以说本题的空格处应该填入函数名findbig。
34.算法或程序或流程图算法或程序或流程图解析:算法是问题处理方案正确而完整的描述。
35.
36.i+1i
37.m<10n%4!=0
38.3
39.xX*X+1或1+x*xx\r\nX*X+1或1+x*x解析:题目中要求从x=0开始将f(x)的值累加起来,直到x=10。在SunFun()函数中用了一个for循环,每循环一次将f(x)累加到s中,所以在本题的第一个空格处我们应该填x,,然后x+1,共循环10次。F()函数的功能应该是求数学表达式f(x)得值,所以其返回值应该为x*x+1。
40.字符串的比较strcmp函数的原型是intstrcmp(char*s1,char*s2);功能是对s1和s2所指字符串进行比较,若s1<s2返回负数,若s1==s2返回0,若s1>s2返回正数。
41.D解析:带回指针值的函数,其一般定义形式为:
类型标识符*函数名(参数表);
例如;int*f(x,y);
其中,f是函数名,调用它以后能得到一个指向整型数据的指针(地址),x,y是函数f的形参。在f的两侧分别为*运算符和()运算符,而()优先级高于*,因此f先与()结合,显然是函数形式。这个函数前面有一个*,表示此函数是指针型函数(函数值是指针)。前面的int表示返回的指针指向整型变量。
42.C解析:数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共事”之特点。
43.B解析:C语言规定用户标识符由字母、数字和下画线组成,且第一个字符必须是字母或下画线,可见选项C),D)是错误的;此外,C语言不允许用户将关键字作为标识符,而选项A)中的void正是C语言的关键字。
44.A解析:本题考查默认函数的函数值的类型。在函数定义时,由于函数没有说明其类型,系统默认一律自动按整型处理,因此,函数的类型为int类型。
45.DD。【解析】物理设计阶段主要解决选择文件存储结构和确定文件存取方法的问题。物理设计阶段包括:选择存储结构、确定存取方法、选择存取路径、确定数据的存放位置。
46.B解析:目前流行的DBMS均为关系数据库系统,如ORACLE、Sybase的PowerBuilder及IBM的DB2、微软的SQLServer等,它们均为严格意义上的DBMS系统。另外有一些小型的数据库,如微软的VisualFoxPro和Access等,它们只具备数据库管理系统的一些简单功能,不是严格意义上的DBMS系统。
47.A解析:根据共用体的定义可知:共用体a的成员i和成员ch[2]共用同一段内存空间,所以,当程序给a.ch[0]和a.ch[1]赋值后,实际上,共用体成员i的值就确定为13了,所以打印输出的结果应当为13。
48.D
49.C解析:考查位运算的运算原理。<<为左移运算符,运算符的左边是移位对象;右边是整型表达式,代表左移的位数,左移时,右端(低位)补0;左端(高位)移出的部分舍弃。
50.C解析:线性表、栈和队列所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,它只能在固定的一端进行插入和删除操作,又称后进先出表(LastInFirstOut);队列是插入在一端进行,删除在另一端进行的线性表,又称先进先出表(FirstInFirstOut)。
51.C解析:选项A中定义了一个字符型数组并赋初值,故选项A正确;选项B定义了一个字符型数组t并初始化,然后定义了一个指针变量s并让它指向t,故选项B正确;选项C先定义了一个长度为10的字符型数组,然后在给它赋值,这时应该分别给数组中的每个元素赋值,故选项c不正确:选项D中先定义了一个长度为10的字符型数组s,然后通过字符串拷贝函数将字符串“abcdefs”赋值给它,选项D正确。所以,4个选项中选项C符合题意。
52.C解析:定义结构体类型的变量有如下几种方法:
①定义结构体类型的同时,定义结构体类型的变量,如:
stractaa
{…}tdl;
选项B)中将宏名AA用宏体structaa替换后,与该定义形式一样,因此是正确的。在这一定义形式中,结构体类型名aa是可以省略的,因此,D)项也是正确的。
②先定义结构体类型,然后再定义结构体类型的变量,形式如下:
structaa
{…};
strnctaatdl;
这种定义形式也可演变为:先用类型定义语句typedef将该结构体类型定义成一个类型名AA,然后直接用该类型名AA定义一个结构体变量(这时不再需要使用关键字struct)。因此选项A)正确。
53.B
54.B解析:本题考查文件使用方式标识符。方式“wb”为输出打开一个二进制文件;方式“wb+”为读写建立一个新的二进制文件;方式“rb+”为读写打开一个二进制文件:方式“rb”为输入打开一个二进制文件。
55.C队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项A和选项B错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。所以,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则,选项C正确,选项D错误。
56.C解析:在给数组赋值时,可以用一个字符串作为初值,这种方法直观、方便,而且符合人们的习惯。数组array的长度不是5,而是6,这点必须要注意。因为字符串常量的最后由系统加上一个'\\0',因此,上面的初始化与下面的等价:
Chararray[]={'C','h','i','n','a','\\0'};
57.B解析:选项A)是把结构体类型改名后定义为变量cl。选项C),D)则是在定义结构体类型时定义变量,而选项B)不符合结构体类型定义的语法规则。
58.B解析:指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中将p+6指的是将指针向后移动了6个存储单元,指向b[6],存放的是b[6]的地址。
59.B解析:—个函数可以带回—个整型值、字符值、实型值等,但也可以带回指针型数据,即地址。本题的定义中,包括括号和*号,由于()优先级高于*。故它是—个返回整型指针的函数。
60.D解析:不论p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型*)。
61.Da[1][2]的值为6.*ptr的值为1,*ptr+1=2是一个数组,所以(*ptr+1)[2]表示不正确。P=a,指向1,p+5是指针向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度建筑设计合同标的及属性带眉脚
- 2024专属停车位买卖法律合同一
- 江苏省江阴市成化高级中学高中地理 5.1海岸带的开发说课稿 新人教版选修2
- 2024年度标准运输安全服务协议模板版
- 2024年定制版新能源停车位租赁合同版B版
- 2024年度艺人经纪合同标的3篇
- 二零二四年度区块链技术应用平台设计合同2篇
- 2024年专业医疗耗材居间交易协议样本版B版
- 二零二四年度借款合同协议书3篇
- 8 匆匆 说课稿-2023-2024学年统编版语文六年级下册
- 《结构化学》课件第三章
- 护士业务水平能力提升总结报告5篇
- 皮肤生物学知识
- 安全用电知识培训PPT通用通用课件
- 地下车库交通标志标线及地坪漆工程施工组织设计
- (完整word版)40篇短文及其练习(搞定高考3500个单词)
- 企业目标规划
- 配电箱设备供货方案
- 三一重工拖泵技术参数(中文)
- 课程设计甲醇
- 伯牙鼓琴说课稿教案
评论
0/150
提交评论