




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年安徽省铜陵市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若有定义"int(*pt)[3];",则下列说法正确的是()。
A.定义了基类型为int的三个指针变量
B.定义了基类型为int的具有三个元素的指针数组pt
C.定义了一个名为*pt、具有三个元素的整型数组
D.定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组
2.有以下程序:#include<stdio.h>voidf(intb[]){inti;for(i=2;i<6;i++)b[i]*=2;}main(){inta[10]={1,2,3,4,5,6,7,8,9,10},i;f(a);for(i=0;i<10;i++)printf(“%d,”,a[i]);}程序的运行结果是()。A.1,2,3,4,5,6,7,8,9,10,
B.1,2,6,8,10,12,7,8,9,10,
C.1,2,3,4,10,12,14,16,9,10,
D.1,2,6,8,10,12,14,16,9,10,
3.线性表是具有n个()的有限序列。
A.表元素B.字符C.数据元素D.数据项
4.有以下程序:
main()
{intX,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0)
printf("%d,i)";
}
}
输出结果是()。
A.28
B.27
C.42
D.41
5.若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是______。
A.a[p-a]B.*(&a[i])C.p[i]D.a[10]
6.如有inta=11;则表达式(a++*1/3)的值是()。
A.0B.3C.4D.12
7.在软件开发中,需求分析阶段产生的主要文档是()。A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书
8.在具有101个元素的顺序表中查找值为x的元素结点时,平均比较元素的次数为()。
A.50B.51C.100D.101
9.以下不能定义为用户标识符的是()。
A.VoidB.scanfC.intD._3com_
10.下列描述中,不是线性表顺序存储结构特征的是
A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需另外开辟空间来保存元素之间的关系
11.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的运行结果是()。A.*****a*bB.a*bC.a*b****D.ab
12.有以下程序:
程序运行后的输出结果是()。A.4B.2C.3D.1
13.字符串"\\"ABCDEF\"\\”的长度是()。
A.11B.10C.5D.3
14.
15.有下列程序:程序执行后的输出结果是()。A.abcdefghijklmnopq
B.afgebcdhnopqmijklhnopqmijkl
C.efgabcdmnopqhijkl
D.mijklhnopqebcdafg
16.若有语句“typedefstructTT{charc;inta[4];}CIN;”,则下列叙述中正确的是()。
A.CIN是structTT类型的变量
B.TT是struct类型的变量
C.可以用TT定义结构体变量
D.可以用CIN定义结构体变量
17.在决定选取何种存储结构时,一般不考虑()。
A.各结点的值如何B.结点个数的多少C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便
18.数据的逻辑关系是指数据元素的()。
A.关联B.结构C.数据项D.存储方式
19.C程序是由()构成的。
A.主程序与子程序B.主函数与子函数C.一个主函数与若干个其他函数D.主函数与子程序
20.在三级模式之间引入两层映像,其主要功能之一是()。
A.使数据与程序具有较高的独立性B.使系统具有较高的通道能力C.保持数据与程序的一致性D.提高存储空间的利用率
二、2.填空题(20题)21.下面程序用来输出结构体变量a所占存储单元的字节数,请填空。
main()
{structstu
{charx[20];floaty;}a;
printf("asize:%d\n",sizeof(【】));
}
22.以下程序的输出结果是【】。
main()
{chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);}
23.在算法的4个特性中,算法必须能在执行有限个步骤之后终止指的是算法的______特性。
24.下列程序的运行结果为【】。
enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};
main()
{enumweekdayworkday,weekend;
inti,a[8];
workday=tue;
weekend=sun;
printf("\ntueday=%dsunday=%d;",workday,week_end);
workday=sun+tue;
week_end=(enumweekday)3;
printf("tueday=%dsunday=%d;",workday,weekend);
a[sun]=sun;
a[mon]=mon;
a[tue]=rue;
a[wed]=wed;
a[thu]=thu;
a[fri]=fri;
a[sat]=sat;
for(i=l;i<=7;i++)printf("%d",a[i]);
}
25.以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next==NULL),请填空。
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
【】=a;q->next=p;【】=p;scanf("%d",&a);}
p->next=′\0;return(ph);}
main()
{structlist*head;head=creatlist();}
26.若输入tear、test、arj,则下列程序的运行结果为【】。
main()
{char*strl[20],*str2[20],*str3[20];
charswap();
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",str3);
if(strcmp(str1,str2)>0)swap(str1,str2);
if(strcmp(str1,str3)>0)swap(str1,str3);
if(strcmp(str2,str3)>0)swap(str2,str3);
printf("%s%s%s\n",str1,str2,str3);
}
charswap(p1,p2)
char*p1,*p2;
{char*p[20];
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
}
27.有下面的程序:
#include<stdio,h>
main()
{enumteam{my,your=4,his,her=his+10};
prinff("%d%d%d%d\n",my,your,his,her);
此程序的输出结果是【】。
A)0123B)04010C)04515D)14515
28.有以下程序:
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
执行后的输出结果是【】。
29.设某循环队列的容量为50,头指针front=5(指向队头元素的前一位置),尾指针rear=29(指向队尾元素),则该循环队列中共有【】个元素。
30.表达式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的数据类型为______。
31.已有定义:charc=′′;inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。
32.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统一管理与控制。
33.以下程序运行后的输出结果是______。
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
34.以下程序段用于构成一个简单的单向链表。请填空。
struetSTRU
{intx,y;
floatrate;
【】p;
}a,b;
a.x=0;a.y=0;a.rate=0;a.p=&b;
b.x=0;b.y=0;b.rate=0;b.p=NULL;
35.设有以下定义和语句,则*(*(P+2)+1)的值为【】。
int[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
36.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是【】。
37.下面程序的功能是输出数组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);}
38.以下程序段中,错误的行号是【】。①#include<stdio.h>②main()③{charstr[14];str[]={"IloveChina!"};④printf("%s",str);⑤}
39.软件工程的出现是由于【】。
40.软件是程序、数据和【】的集合。
三、1.选择题(20题)41.设有以下定义和语句,输出的结果是(用small模式编译,指针变量占2个字节)______。structdate{long*cat;structdate*next;doubledog;}too;printf("%d",sizeof(too));
A.20B.16C.14D.12
42.以下程序的输出结果是unionmyun{struct{intx,y,z;}u;intk;}a;main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf("%d\n",a.u.x);}
A.4B.5C.6D.0
43.有关return语句说法不正确的是()。
A.系统默认的返回值类型为整型,故当函数的返回值为int型时,在函数定义时,返回值的类型说明可以省略
B.当函数有返回值时,凡是允许表达式出现的地方,都可以调用该函数
C.当函数没有返回值时,函数的返回值类型可以说明为void型,它表示“无类型”或“空类型”
D.函数的返回值类型必须与return语句中的表达式值的类型一致,但C语言也允许不同;这时,系统以函数定义时的返回值类型说明为准,并自动地将return语句中表达式的值转换为函数的返回值类型
44.下面程序的输出结果是()。#include<stdio.h>#include<string.h>main(){charp1[]="WHO",p2[]="who",str[50]="xyz";strcpy(str+1,strcat(p1,p2));printf("%s",str);}
A.xyzWHOwhoB.zWHOwhoC.zWHOwhoD.xWHOwho
45.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}该程序的输出结果是______。
A.12B.13C.14D.15
46.以下程序的输出结果是intf(){stadcinti=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
47.数据结构中,与所使用的计算机无关的是数据的()。A.存储结构B.物理结构C.逻辑结构D.物理和存储结构
48.若以下定义:structlink{intdata;strucklink*next;}a,b,c,*p,*q;且变量a和b之间已有下图所示的链表结构:
指针p指向变量a,q指向变量c,则能够把c插入到a和b之间并形成新的链表的语句组是()。
A.a.next=c;c.next=b;
B.p.next=q;q.next=p.next;
C.p->next=&c;q->next=p>next;
D.(*p).next=q;(*q).next=&b;
49.以下程序输出正确的是_______amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)mallox(100)amovep)p,a,3);printf("%d%d\n",p[2],p[5]);free(p)}
A.56B.25C.34D.程序错误
50.若变量已正确定义并赋值,下面符合C语言的表达式是_____。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
51.不能把字符串"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!";
52.若k是int型变量,且有下面程序片段:k=-3;if(k<=0)printf("####")elseprintf("&&&&")上面程序片段的输出结果是()
A.####
B.&&&&
C.###&&&&
D.有语法错误,无输出结果
53.以下程序段给数组所有的元素输入数据,请选择正确答案填入。()#inelude<stdio.h>main(){inta[10],i=0;while(i<10)scanf("%d",______);┇}
A.a+(i++)B.&a[i+1]C.a+iD.&a[i++]
54.下列描述中正确的是()。
A.程序就是软件
B.软件开发不受计算机系统的限制
C.软件既是逻辑实体,又是物理实体
D.软件是程序、数据与相关文档的集合
55.有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}执行扣输出的结果是
A.11122B.12C.12020D.120
56.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是()。
A.模拟现实世界中不同事物之间的联系
B.强调模拟现实世界中的算法而不强调概念
C.使用现实世界的概念抽象地思考问题从而自然地解决问题
D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考
57.下列程序是将一个十进制正整数转化为一个八进制数,在程序的空白处应填入的语句是_______。#include<stdio.h>main(){inti=9,a,b[10]={0};scanf("%d",&A);sub(a,B);for(;i>=0;i--)printf("%d",b[i]);}sub(intc,intd[]){inte,i=0;while(c!=0){e=c%8;d[i]=e;________.i++;}return;}
A.c=e/8B.c=c%8C.c=c/8D.c=e%8
58.字符串"%%\"ABCDEF\"\\"的长度是()。
A.11B.10C.5D.3
59.有如下程序:longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%ld\n",fib(3));}该程序的输出结果是______。
A.2B.4C.6D.8
60.设有定义:charp[]={′1′,′2′,′3′},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
四、选择题(20题)61.有如下程序:
main
{inta=2,b=-1.c=2;
if(a<b)if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
该程序的输出结果是()。A.A.0B.1C.2D.3
62.
63.执行下列程序时输入:123<空格>456<空格>789<回车>输出结果是main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}
A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456
64.假定已建立以下链表结构,且指针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);
65.
66.下列程序的输出结果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1;case2:a+=2;default:a+=3;}}printf("%d",a);}A.19B.1C.6D.8
67.(31)算法一般都可以用哪几种控制结构组合而成()
A.循环、分支、递归
B.顺序、循环、嵌套
C.循环、递归、选择
D.顺序、选择、循环
68.在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。
A.详细设计B.需求分析C.总体设计D.编程调试
69.若有说明“chars1[30]="abc",s2[]="defghi";",则在使用函数stoat(s1,s2)后,结果是()。
A.s1的内容更新为abcdefghi
B.s1的内容更新为defghi\0
C.s1的内容更新勾defghiabc\0
D.s1的内容更新为abcdefghi\0
70.若有定义:doublea=22;inti=0,k=18;,则不符合c语言规定的赋值语句是()。
A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;
71.若有以下的定义:‘intt[3][2];”,能正确表示t数组元素地址的表达式是()。
A.&t[3][2]B.t[3]C.t[l]D.t[2][2]
72.下列选项中不是字符常量的是()。
A.'\v'B.'\x2a'C.'a'D."\0"
73.
74.C语言中,合法的字符型常数是_________。
A.‘A’B.“A”C.65D.A
75.
76.设有如下说明:
以下说法正确的是()。
A.NEW是一个结构体变量
B.NEW是一个结构体类型
C.ST是一个结构体类型
D.以上说明形式非法
77.有以下程序
#include<stdio.h>
voidfun(ints[])
{staticintj=0;
do
s[j]+=s[j+1];
while(++j<2);
}
main()
{
intk,a[10]={1,2,3,4,5};
for(k=1;k<3;k++)fun(a);
for(k=0;k<5;k++)
printf("%d",a[k]);
}
程序的运行结果是
A.34756B.23445
C.35745D.12345
78.设有以下语句:inta=1,b=2,c;c=a^(b<<2);执行后,c的值为()。A.6B.7C.8D.9
79.(27)程序流程图(PFD)中的箭头代表的是()
A.数据流
B.控制流
C.调用关系
D.组成关系
80.若有以下说明和语句:
sturctst
{intn;char*ch;};
structsta[3]={5,"abc",7,"def",9,"ghk"},*p=a;
则值为6的表达式是()。
A)p++->nB)p->n++
C)(*p).n++D)++p->n
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:求S的值。设例如,当k为20时,函数的值应为1.551759。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写—个函数,用来删除字符串中的所有空格。例如,输入asdafaaz67,则输出为asdafaaz67。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:
参考答案
1.D\n数组指针是指向数组的一个指针,int(*pt)[3]表示一个指向3个int元素的数组的一个指针。
\n
2.B数组名相当于常量,表示的是数组首元素的地址。当执行函数f(a)的时候,因为传递的是首地址,相当于直接对数组a进行操作,所以从数组a的第3个元素a[2]到元素a[5],每个元素值扩大两倍。故本题答案为B选项。
3.A
4.C\n只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择c选巩。
\n
5.D解析:通常,引用一个数组元素可以用下标法,如a[P-a]形式,或指针法,如*(&a[i])的形式。本题中a[9]=9,a[10]显然超出了数组范围,注意,数组的下标是从0开始的。
6.B
7.D需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。所以选择D。
8.B
9.C标识符的命名可以由字母、数字或下划线组成,并且第1个字符必须为字母或下划线,另外用户标识符不能使用关键字。选项A中的Void可以定义为用户标识符,因为C语言对大小写敏感,Void与关键字void属于不同的标识符;选项B中的scanf是库函数名,属于预定义标识符,它也可以作为用户标识符使用,不过通常不建议这么使用;选项C中的int属于关键字,错误;选项D符合标识符的命名规则,也不属于关键字,可以作为标识符使用。本题答案为C选项。
10.D解析:线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此,不需要另外开辟空间来保存元素之间的关系。
11.C解析:主函数main()定义了指向字符串的指针和一个字符数组,接着调用fun(s,t)函数,进行实参向形参传递,函数fun()第一个while语句判断*a中的值为“*”时继续扫描,当遇到不是“*”时结束,接着第二个while循环语句,将*a中从“a”开始的后续所有字符都赋予*b,也就是t[80]中的内容为“a*b****”,所以此题的运行结果为选项C)。
12.D条件表达式形式:表达式1?表达式2:表达式3。当表达式1的值为非零值时,整个表达式的值是表达式2的值;当表达式1的值为零值时,整个表达式的值是表达式3的值。题干中的表达式是嵌套的条件表达式w﹤x?w:z﹤y?z:x,等价于w﹤x?w:(z﹤y?z:x)。由于w取值为4,x取值为3,所以w﹤x的值为零值,整个表达式的值为z﹤y?z:x,z取值为1,y取值为2,所以z﹤y的值为非零值,整个表达式的值为z的值1。本题答案为D选项。
13.B解析:本题涉及字符串的两个最基本的概念。①字符串的长度是指字符串中字符的个数,但不包含字符串结束符;②以反斜线“\\”开头的特殊字符序列,意思是把反斜线后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“\\”连同后面的字符为一个长度。
14.A
15.B程序首先定义二维字符数组v,使用4个字符串初始化,另外定义字符指针数组P。通过第1个for循环,将v的4个字符串的首地址赋给p。第2for循环通过两层内嵌循环将p中元素指向的字符串首字母进行排序交换。规则是将指向的字符串的首字母字符按照字母表中的顺序排序后交换。注意,这里交换的是首字母,而不是整个字符串,所以程序输出:afgebcdhnopqmijkl。本题答案为B选项。
16.DCIN为结构体类型名,而不是结构体变量。故本题答案为D选项。
17.A
18.A
19.B
20.AA.【解析】数据库管理系统在数据库的三级模式之间提供了两层映像,保证了数据库中数据的较高的逻辑独立性和物理独立性。使系统具有较高的通道能力和提高存储空间的利用率是操作系统的职能,而不是数据库管理系统的职能。在数据库系统中没有“数据和程序一致性”这一概念。
21.dd解析:d被定义为一个结构体类型变量,求结构体变量a所占存储单元的字节数即sizeof(d)。
22.BCDCDDBCD\r\nCD\r\nD解析:本题考查指向字符串的指针的运算方法。指针变量p首先指向字符串中的第一个字符A,执行p=s+1后,p指向字符串中的第二个字符B,然后输出值'BCD'并换行,依次执行循环语句。
23.有穷性有穷性解析:算法的4个基本特性包括:可靠性、确定性、有穷性和拥有足够的情报,其中,算法的有穷性指的是算法必须在有限的时间内完成,即算法必须在执行有限个步骤之后终止。
24.tueday=2sunday=7;tueday=9sunday=3;1234567
25.p->dataqp->data,q解析:本题考查的是链表这一数据结构对结构体变量中数据的引用。链表的特点是结构体变量中有两个域,一个是数据,另一个是指向该结构体变量类型的指针,用以指明链表的下一个结点。
26.arjteartest
27.CC解析:枚举的语法规定,当枚举元素没有赋值时,如果前面没有其他枚举元素,其值为0;如果前面有其他枚举元素,其值为前一个元素的值加1,所以his的值为5,her的值为15。
28.00解析:for循环执行完成后t=5×4×3×2×1×0=0。
29.2424解析:在循环队列中因为头指针指向的是队头元素的前一个位置,所以是从第6个位置开始有数据元素,所以队列中的数据元素的个数为29-5=24。
30.整型整型解析:上面的表达式中,通过强制类型转换把最后参与运算的数据都转换成了int型,所以最后得到的结果也是int类型。
31.11解析:字符空格的ASCII码不为0,所以本题中表达式\ue008!c\ue009的值为0,b=0&&1的结果显然为0。
32.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统一管理与控制。
33.136136解析:本题考核的知识点是函数递归。主函数调用函数fun(6),由于6/2>0为真递归调用fun(3),接着递归调用fun(1),输出1,返回上一层输出3,在返回上一层输出6。故空格处应该填136。
34.structSTRU*
35.6060解析:本题定义了一个3行2列的二维数组a,并定义了一个指向两个元素的一维数组指针p,让p指向二维数组a的首行。*(*(p+2)+1)是引用a[2][1],其值是60。
36.数据库系统数据库系统解析:数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。(1)人工管理阶段。这一阶段的计算机主要用于科技计算。外存只有磁带、卡片和纸带等,软件只有汇编语言,尚无数据管理方面的软件。数据处理方式是批处理。(2)文件系统阶段。文件系统是数据库系统发展的初级阶段,它提供了简单的数据共享与数据管理能力,但是它无法提供完整的、统一的管理和数据共享的能力。由于它的功能简单,因此它附属于操作系统而不能成为独立的软件,目前一般将其看成仅是数据库系统的雏形,而不是真正的数据库系统。(3)数据库系统阶段。数据库阶段用数据模型表示复杂的数据模型,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户可使用查询语言或终端命令操作数据库,也可以用程序方式(用COBOL、C一类高级语言和数据库语言编制的程序)操作数据库。数据库管理系统提供了数据控制功能。
37.k=p;k=p;解析:为寻找数组中最大元素的下标,需先预设1个临时最大元素的下标,并顺序逐一考查数组的元素,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标。直至考查了数组的全部元素后,这临时最大元素下标就是数组的最大元素下标。通常预设的最大元素下标是数组的首元素下标,考查通常从首元素开始顺序向后继元素考查。程序中,存储临时最大元素下标的变量是k,变量p控制顺序考查的循环控制变量。当发现当前元素s[p]比临时最大元素s[k]更大时,应该用p更新k,所以在空框处应填入代码'k=p;'。
38.③数组可以在定义时整体赋初值,但不能在赋值语句中整体赋初值。因此,可将第三行改为charstr[14]={"IloveChina!"};
39.软件危机的出现软件危机的出现
40.文档文档解析:计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。
41.D解析:sizeof函数计算已知类型所占的字节数。结构体变量所占内存长度是各成员占的内存长度之和。指针变量占2个字节,所以cat和*next各占2个字节;double型占8个字节,故too共占12个字节。
42.D解析:本题考查共用体变量起作用的范围。共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用,在本题中,当对a.u.y成员赋值时,a.u.x的值就不存在了,当对a.u.2赋值时,a.u.y的值就不存在了。
43.D函数的返回值类型一般与return语句中的表达式值的类型一致,但C语言也允许不同;这时,系统以函数定义时的返回值类型说明为准,并自动地将return语句中表达式的值转换为函数的返回值类型。
44.D
45.D解析:调用函数func(x,y),返回x+y,即7;再调用函数func(7,z),返回7+z,即15。
46.D解析:在C语言中声明为static型的变量,在整个程序运行期间,静态局部变量在内存的静态存储区中占据永久性的存储单元。即使退出函数后,下次再进入该函数时,静态局部变量仍使用原来的存储单元。由于并不释放这些存储单元,因此这些存储单元中的值得以保留;因而可以继续使用存储单元中原来的值。本题中函数f()中定义了一个static型变量i,故每调用一次函数f(),i的值加1,返回s的值等于i,在主函数中用了一个for循环,该循环执行了5次,每次都调用f()函数,将其返回值累加到变量a中,故最后a的值为1+2+3+4+5=15。
47.C数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构(物理结构)及数据上的运算集合。数据的逻辑结构只抽象地反映数据元素之间的逻辑关系,即数据元素之间的前后件关系,而不管它在计算机中的存储表示形式。
48.D解析:在本题,扣指针p指向变量a,q指向变量c。要把c插入到变量a和变量b之间,就应该首先让变量a的指针域指向变量c,即(*p).next=q,然后让变量c的指针域指向变量b,即(*q).next=&b。所以,4个选项中D为所选。
49.A解析:本题main函数中定义了指针p和二维数组a,通过函数amovep将数组的值存入指针p所指向的存储单元中,a的各元素分别:a[0][0]=1,a[0][1]=3,a[0][1]=3,a[0][2]=5,a[1][2]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通过malloc()函数给指针分配内存空间,free()函数用于释放指针变量所用内存空间。在主函数中通过amovep(p,a,3)调用函数amovep,使得实参p与形参P,实参数组a与形参中指向数组的指针变量共用同一存储空间。最后输出p[2],p[5]为56。
50.B解析:选项A和C一望而知其错;对于表达式a=a+7=c+b(答案D),是先执行赋值表达式a+7=c+b,再把这个表达式的值赋给a,显然,表达式a+7=c+b非法,因为赋值表达式的左侧不能为常量或表达式。
51.B解析:在C语言中,大写字母和小写字母被认为是两个不同的字符,因此,“hello!”和“Hello!”是两个不同的字符串。
52.D
53.D
54.D\r\n软件是与计算机操作相关的计算机程序、规程、规则,以及可能有的文件、文档及数据;软件开发要受到计算机系统的限制;软件是一个逻辑实体,不是物理实体,软件具有抽象性。因此选项D正确。
55.A解析:本题考核的知识点是for循环和switch语句的综合运用。for循环执行了3次,第一次时i的值为0,执行其后的switch语句,没有匹配的case,执行default语句后的pdntf语句,输出为0;第二次循环时i的值为1,执行其后的switch语句,与第一个case分支匹配,执行其后的printf语句,输出1,由于没有遇到break语句,所以一直向下执行,又输出了两个1,第三次循环时i值为2,执行其后的switch语句,同理输出两个2。所以,A选项为所选。
56.C解析:面向对象的设计方法与传统的面向过程的方法有本质不同。它的基本原理是,使用现实世界的概念抽象地思考问题从而自然地解决问题。它强调模拟现实世界中的概念而不强调算法,它鼓励开发者在软件开发的绝大部分中都用应用领域的概念去思考。
57.C解析:本题主要考查了进制转换的除余取整法。本算法中,是先对数c除8取余作为转换后的8进制数的第1位,然后对c整除以8的商作同样的操作,直到商为0为止,因此本题应选C。
58.B
59.B解析:函数fib内部有两个递归调用,当n=3时,fib(n-1)返回2,fib(n-2)也返回2,所以fib(n-1)+fib(n-2)的值为4。
60.A解析:在本题中,p和q同为指向字符类型数据的指针。*q和p[0]同为字符型数据。选项B)、C)和D)都符合题目的要求;选项A)计算得出的是指针类型数据所占的内存字节数。
61.Celse与离它最近的if构成if…else语句,而当a为2时,第一个if语句不成立,因此什么也不做,即c的值仍然为2,故选择C选项。
62.D\r\n
63.D解析:根据给定的数据输入格式:123<空格>456<空格>789<回车>,第一个scanf语句中,格式字符为“%c”,只能得到一个字符\'1\',第二个scanf语句中格式字符为“%d”,变量i得到的数值为23,第三个scanf语句中格式字符为“%s”,遇到空格就自动结束,因此字符数组s得到的是'456\\0”。因而正确答案为选项D。
64.A本题考查删除链表中的结点操作,其方法是将要删除结点的上个结点的下个结点指向要删除结点的下个结点,然后释放该要删除结点,所以选项A正确。
65.B
66.A本题考查switch语句。当i一1时,执行case1,因为没有遇到break语句,所以依次往下运行,“a=a+2=2,a=a+3=5”;当
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国矿山磁选设备行业发展趋势及发展前景研究报告
- 2025-2030中国真空退火炉行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国白藜芦醇饮品市场营销渠道与发展前景预测分析研究报告
- 2025-2030中国男用避孕套行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国电子鼓垫行业市场发展趋势与前景展望战略研究报告
- 度技术维护与升级服务合同样本
- 电动车维修服务合同模板
- 农业技术服务与农资采购合同书范文
- 度实习生试用期服务合同
- 儿童抚养权离婚合同模板:一键解决家庭纠纷
- 2024-2025学年人教版数学七下 第七章 相交线与平行线(含答案)
- 英语沪教版小学五年级下册Unit6优质课课件1
- 误吸的护理应急预案
- 法制宣传教育小报
- 上海西郊国际农产品展示直销中心贵州馆入驻方案
- 等离子体水处理技术
- 危重孕产妇救治中心建设与管理指南
- 折纸大全A4纸可打印3D拼图(共36页)
- EBZ200掘进机用户手册
- 《汴京的星河》答案详解
- LED照明国外客户资料法国
评论
0/150
提交评论