版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年贵州省贵阳市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列选项中,能正确定义数组的语句是()。
A.intnum[0..2008];
B.intnum[];
C.intN=2008;intnum[N];
D.#defineN2008;intnum[N];
2.软件详细设计的主要任务是确定每个模块的()。
A.算法和使用的数据结构B.外部接口C.功能D.编程
3.有下列程序段:
intk=0,a=1,b=2,c=3;
k=a<b?b:a;k=k>C?C:k;
执行该程序段后,k的值是()。
A.3B.2C.1D.0
4.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2) if(b!=2||c--!=3) printf(“%d,%d,%d\n”,a,b,c); elseprintf(“%d,%d,%d\n”,a,b,c);elseprintf(“%d,%d,%d\n”,a,b,c);}程序的运行结果是()。
A.1,3,2B.1,3,3C.1,2,3D.3,2,1
5.以下叙述中正确的是()A.当对文件的读(写操作完成之后,必须将它关闭,否则可能导致数据丢失
B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D.语言中的文件是流式文件,因此只能顺序存取数据
6.对称数组A中,每个元素的长度为4个字节,行下标i从1到8,列下标j从1到8。将其下三角中的元素连续存储在从首地址SA开始的存储器内,该数组按行存放是,则元素A[5][8]的起始地址为()。
A.SA+124B.SA+128C.SA+132D.136
7.下列叙述中错误的是()。A.在数据库系统中,数据的物理结构必须与逻辑结构一致,
B.数据库技术的根本目标是要解决数据的共享问题
C.数据库设计是指在已有数据库管理系统的基础上建立数据库
D.数据库系统需要操作系统的支持
8.在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。
A.详细设计B.需求分析C.总体设计D.编程调试
9.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是
abs(intx)
{if(x>=0)returnx;
elsereturn-x;}
main()
{inty,z,(*p)(intx)=abs;
scanf("%d",&y);
z=(*p)(y);
;}
A.printf("%d%d\n",&p,z)
B.printf("%d%d\n",p,z)
C.printf("%d%d\n",*p,z)
D.printf("%d%d\n",p,*z)
10.有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序运行后的输出结果是()。
A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD
11.在C语言中,函数返回值的类型最终取决于()。
A.函数定义时在函数首部所说明的函数类型
B.return语句中表达式值的类型
C.调用函数时主调函数所传递的实参类型
D.函数定义时形参的类型
12.从一个长度为100的顺序表中删除第30个元素时需向前移动()个元素
A.70B.71C.69D.30
13.依次读入数据元素序列{a,b,c,d,e,f,g}进栈,元素进栈或出栈顺序是未知的,下列序列中,不可能成为栈空时弹出的元素构成序列的有()
A.{d,e,c,f,b,g,a}
B.{f,e,g,d,a,c,b}
C.{e,f,d,g,c,b,a}
D.{c,d,b,e,f,a,g}
14.已知10个元素(54,28,16,34,,73,62,95,60,26,43),按照依次插入的方法生成一棵二叉排序树,查找值为62的结点所需比较次数为()
A.4B.3C.2D.5
15.下列正确的实型常量是()。
A.E3.4B.-12345C.2.2eO.8D.4
16.在面向对象设计中,对象有很多基本特点,其中“从外面看只能看到对象的外部特性,而对象的内部对外是不可见的。”这一性质指的是对象的
A.分类性B.标识惟一性C.多态性D.封装性
17.若有如下定义,则__________是对数组元素的正确的引用。.
inta[10],*p;p=a;
A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p
18.若有定义inta=5,b=7;,则表达式a%=(b%2)运算后,a的值为()。
A.0B.1C.11D.3
19.有以下程序
#include<stdio.h>
main()
{intx=1,y=2,z=3;
if(x>y)
if(y<z)printf("%d",++z);
elseprintf("%d",++y);
printf("%d\n",x++);
}
程序的运行结果是
A.A.331
B.41
C.2
D.1
20.下列叙述中正确的是()。
A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式
B.实型变量中允许存放整型数
C.若a和b类型相同,在执行赋值a=b后,b中的值将放入a中,但b中的值不变
D.在C程序中,求余算符“%”两边的类型相同时才能进行运算
二、2.填空题(20题)21.下列程序的输出结果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
22.以下程序的输出结果是【】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\N,*p,*q))
}
23.定义charch="$";inti=1,j;执行j=!ch&&i++以后,i的值为______。
24.下面程序的运行结果是()。
#defineEXCH(a,B){intt;t=a;a=b;b=t;}
main()
{intx=1,y=2;
EXCH(x,y);
printf("x=%d,y=%d\n",x,y);
}
25.以下程序中函数fun的功能是求出能整除x且不是偶数的务正整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。
请按题意,完成填空。
试题程序:
#include<stdio.h>
voidfun(intx,intpp[],int*n)
{inti,j=0;
【】;
if(x%i==0)pp[j++]=i;
【】;
}
main()
{intx,aa[1000],n,i;
printf("\nPleaseenteranintegernumber:\n");
scanf("%d",&x);
fun(x,aa,&n);
for(i=0;i<n;i++)printf("%d",aa[i]);
printf("\n");
}
26.数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于【】。
27.以下程序的输出结果是【】。
voidfun()
{staticinta;
a+=2;
printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<=4;cc++)fun();
printf("\n");
}
28.一个模块直接访问另一个模块的内容,称为【】藕合。
29.以下函数用来求出两整数之和,并通过形参将结果传回,请填空。
voidfunc(intx,inty,【】z)
{*z=x+y;}
30.软件结构是以【】为基础而组成的一种控制层次结构。
31.以下程序运行后的输出结果是______。
main()
{
intp[7]={11,13,14,15,16,17,18);
inti=0,j=0;
while(i<7&&p[i]%2==1)
j+p[i++];
printf(“%d\n”j);
}
32.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。
33.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和,请填空。
#include<stdio,h>
main()
inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",【】);
for(i=0;i<20;i++)
{if(a[i]>0)
{count++;
sum+=【】;
}
prinff("sum=%d,count=%d\n",sum,count);
}
34.一个模块直接调用的其他模块的模块个数称为______。
35.以下程序的输出结果是【】。
#include<stdio.h>
main()
{ints[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);}
printf("\n");}
sb(s1,y)
int*s1,y;
{staticinti1=3;
y=s1[i1];
i1--;
return(y);}
36.函数sub的功能是根据下面近似分式求π的值。
(π*π)/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)
现在请在下面的函数中填空,完成求π值的功能。
#include"math.h"
doublesub(longm)
{doublesum=0.0,t;longn;
for(n=1;n<=m;n++)sum+=【】;
t=sqrt(6*sum);
return(t);
}
37.在数据库的概念结构设计中,常用的描述工具是【】。
38.以下程序运行后输出结果是【】。
#include<stdio,h>
voidswap(y)
{intt;
t=x;x=y;y=t:printf("%d%d",x,y);
}
main()
{ihta=3,b=4:
swap(a,b);prinff("%d%d",a,b);
}
39.以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。
structnode
{intinfo;
【】link;};
40.下列程序的输出结果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
三、1.选择题(20题)41.下列程序段的输出结果为()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}
A.languageB.lnugC.有语法错误D.lang
42.顺序查找一个具有n个元素的线性表,二分查找一个具有n个元素的有序表,其时间复杂性为______。
A.O(n)
B.O(log2n)
C.O(n2)
D.O(nlog2n)
43.下列定义中,不正确的有______。
A.#definePI3.141592
B.#defineS345;
C.intmax(x,y);
D.staticcharc;intx,y;{...}
44.若有如下程序:main(){intn;for(n=0;n<9;n++){if(n<1){printf("%d",n);continue;}if(n==4)break;printf("%d",n);}}则循环体执行的次数是()。
A.1B.5C.9D.死循环
45.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()A.有零个或多个输入B.有零个或多个输出C.有穷性D.可行性
46.若有函数max(a、b),为了让函数指针变量p指向函数max,当调用该函数时,正确的赋值方法是
A.(*p)max(a,b)B.*pmax(a,b)C.p=max(a,b)D.*p=max(a,b)
47.一个关系中属性个数为1时,称此关系为()。
A.对应关系B.单一关系C.一元关系D.二元关系
48.若有定义:"inta[2][3];"则对a数组的第i行第j列无素的正确引用为()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
49.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf("%d,%d\n",m,i);}执行后的输出结果是
A.8,6B.8,3C.6,4D.7,4
50.下列说法正确的是()。
A.在C语言中,可以使用动态内存分配技术,定义元素个数可变的数组
B.在C语言中,数组元素的个数可以不确定,允许随机变动
C.在C语言中,数组元素的数据类型可以不一致
D.在C语言中,定义了一个数组后,就确定了它所容纳的元素的个数
51.对下述程序,正确的判断是()。main(){inta,b;scanf("%d",&a);scanf("%d",&b);if(a>b)a+=b;b++;elseb+=a;a++;printf("%d,%d",a,b);}
A.有语法错误,不能通过编译
B.若输入数据2和5,则输出3和7
C.若输入数据5和2,则输出7和3
D.若输入数据5和5,则输出6和10
52.以下语句的输出结果是()printf("%d,%d,%u\n",016,16,-16);
A.16,16,65420B.14,16,6542C.16,16,-16D.14,16,-16
53.以下非法的赋值语句是
A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;
54.以下程序段的输出结果是chars[]="\\141\141abc\t";printf("%d\n",strlen(s));
A.9B.12C.13D.14
55.以下叙述中正确的是()。
A.局部变量说明为static存储类,其生存期将得到延长
B.全局变量说明为static存储类,其作用域将被扩大
C.任何存储类的变量在未赋初值时,其值都是不确定的
D.形参可以使用的存储类说明符与局部变量完全相同
56.下面程序的输出结果是#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%d\n",*p+9);}
A.0B.1C.10D.9
57.下面程序的输出结果是()main(){inta[10]={l,2,3,4,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}
A.3B.4C.1D.2
58.下列选项可以正确表示字符型常量的是
A.'\r'B.aC.\897D.296
59.有以下函数:mtaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下关于aaa函数的功能的叙述正确的是()。
A.求字符串s的长度B.比较两个串的大小C.将串s复制到串tD.求字符串s所占字节数
60.当变量c的值不为2、4、6时,值也为“真”的表达式是
A.(c==2)||(c==4)||(c==6)
B.(c>=2&&c<=6)||(c!=3)||(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)&&(c%2!=1)
四、选择题(20题)61.若变量X、y已正确定义并赋值,以下符合c语言语法的表达式是()。
A.++x,y=x-一B.x+l=yC.x=x+10--x+yD.double(x)/lO
62.以下叙述中不正确的是()。
A.在不同的函数中可以使用相同名字的变量
B.函数中的形式参数是局部变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效
63.下列选项中不属于结构化程序设计原则的是()。
A.可封装B.自顶向下C.模块化D.逐步求精
64.算法的时间复杂度是指()。
A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程所需要的基本运算次数D.算法程序中的指令条数
65.
以下程序的输出结果是()。
main
{charw[][10]={"ABCD","EFGH","IJKL","
MNOP"),K;
for(k=1;k<3;k++)printf("%s\n",w[k]);
A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL
66.有以下程序:#include〈stdio.h〉voidfun(int*s){staticintj=0;do{s[j]=s[j]+s[j+1];}while(++j<2);}main(){inti.a[10]={1,2,3,4,5};for(i=1;i<3;i++)fun(a);for(i=0;i<5;i++)pfintf(“%d”,a[i]);printf(“\n”);}程序运行后的输出结果是()。A.12345B.23445C.34756D.35745
67.两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是()。
if(x++>5)printf("%d",x);
elseprintf("%d\n",x--);
A.7和5B.6和3C.7和4D.6和4
68.执行下列程序后,变量a,b,C的值分别是()。intx=5,y=4;inta,b,c;a=(--x==y++)?X:++y;b=++x:c=y:A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=6
69.设x=011050,则x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
70.以下程序的输出结果是()。main{inta[3][3]=“l,2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21
71.
72.
73.下列选项中属于结构化程序设计原则的是()。
A.可封装
B.多态性
C.自下而上
D.逐步求精
74.以下程序的输出结果是
#include<stdio.h>
main()
{
inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
A.6,1B.6,0
C.2,1D.2,0
75.
76.
77.以下选项中关于程序模块化的叙述错误的是()。
A.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块
C.把程序分成若干相对独立的模块,可便于编码和调试
D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序
78.
79.有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是()。
A.自然连接B.交C.投影D.并
80.
五、程序改错题(1题)81.写出下列程序的运行结果。
main
{intn;
For(n=3;n<=10;n++)
{if(n%6==0)break;Printf(“%d”,n);}}
六、程序设计题(1题)82.N名学生的成绩已在主函数中放人一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。
例如,若学生的成绩是:8576698591726487,则平均分应当是:78.625。注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填人你编写的若干语句。
参考答案
1.DC语言不允许定义动态数组,定义数组的大小必须为常量表达式。A选项错误,C语言中的数组没有此类型的定义方法;B选项错误,定义数组应指明数组大小,如果不指明数组大小,需要给定元素的个数;C选项错误,N为变量,不能用来定义数组大小。故本题答案为D选项。
2.A解析:从软件开发的工程化观点来看,在使用程序设计语言编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。详细设计的任务就是要决定各个模块的实现算法,并精确表达出这些算法。本题正确答案为选项A。
3.B解析:因为a<b成立,所以条件表达式a<b?b:a的值等于b的值等于2,因此变量k的值等于2。又因为k=2>c=3不成立,所以条件表达式k>c?c:k的值等于k的值等于2。把条件表达式k>c?c:k的值赋给变量k,因而变量k的值等于2。因此,选项B)为正确答案。
4.Belse总是和最近的if配对。进入第1个if语句进行条件判断时,因为是選辑与操作,需要两边运算对象的值均为非零值才为真,所以需要逐个执行判断。结果为1,进入第2个if语句进行条件判断。因为“b!=2”条件成立,所以整个条件表达式的值为真,不再执行逻辑或的第2个运算对象“(c--!=3)”变量c的值不变,也不再执行第1个else语句。输出a的值1,b的值3,c的值3。故本题答案为B选项。
5.AB)选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。C)选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可。D)选项中,C语言中的文件可以进行随机读写。
6.B
7.A解析:本题考查数据库系统的基本概念和知识。数据的逻辑结构,是数据间关系的描述,它只抽象地反映数据元素之间的逻辑关系,而不管其在计算机中的存储方式。数据的存储结构,又叫物理结构,是逻辑结构在计算机存储器里的实现。这两者之间没有必然的联系。因此,选项A的说法是错误的。
数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项B的说法是正确的。
数据库设计是在数据库管理系统的支持下,按照应用的要求,设计一个结构合理、使用方便、效率较高的数据库及其应用系统。数据库设计包含两方面的内容:一是结构设计,也就是设计数据库框架或数据库结构;二是行为设计,即设计基于数据库的各类应用程序、事务等。因此,选项C的说法是错误的。
数据库系统除了数据库管理软件之外,还必须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,选项D的说法是正确的。因此,本题的正确答案是选项A。
8.C解析:软件系统结构的总体设计包括:基于功能层次结构建立系统、按功能划分成模块的层次结构、确定每个模块的功能、建立与已确定的软件需求的对应关系、确定模块间的调用关系和模块间的接口、评估模块划分的质量等方面。详细设计的任务是:在使用程序设计语言编制程序以前,对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求,通常包括:功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求等。编程调试的任务是诊断和改正程序中潜在的错误。综上所述。软件功能分解只能发生在总体设计阶段。
9.B解析:考查函数指针的使用方法。可以使用函数指针来调用函数。调用形式为:(*指针变量)(实参表列)。
10.D解析:本题中首先定义一个字符数组s,并将字符串'ABCD'存到数组s中,定义了一个字符指针变量p,在接下来for循环中,循环体共执行了三次,第一次p指向s[1],所以此时输出的p所指字符串的值为BCD,第二次循环p指向s[2],此时输出p所指的字符串的值为CD,第三次循环p指向s[3],此时输出的p所指的字符串的值为D。所以,4个选项中选项D符合题意。
11.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。
12.A
13.B
14.B
15.B解析:实型常量有两种书写形式:①小数形式,它由符号、整数部分、小数点及小数部分组成;②指数形式,由十进制小数形式加上指数部分组成,其形式为十进制小数e指数或十进制小数E指数。注:e或E后面的指数必须是整数,并且在e或E的前面必须有数字。本题中,选项A)中E的前面没有数字,因此错误。选项C)中0.8不是整数,因此错误。选项D)中4是整型常量而不是实型常量。
16.D解析:从外面看只能看到对象的外部特性,而对象的内部,即处理能力的实行和内部状态,指的是对象的封装性。
17.D
18.A解析:本题考查'%'运算符的使用。运算符'%'要求两个运算对象都为整型,其结果是整数除法的余数。本题中表达式ao%=(b%2)等价于a=a%o(b%2)=5%(7%2)=5%1=0。
19.D本题考查if-else语句的使用。if-else语句可以在条件为“真”或为“假”时执行指定的动作,由if引导条件为“真”时执行的操作;由else引导条件为“假”时执行的操作。else语句要与上面最近的if语句进行匹配,如果要嵌套调用if-else语句,需要将嵌套部分用{}括起来,避免程序报错。题目中给出了一个if语句和一个if-else语句,if-else语句为第一个if语句的子语句。首先执行外层if语句,执行条件为x>y,由于x=1,y=2,故该条件为假,不执行if的子语句,直接执行语句printf("%d\\n",x++);,该语句先输出x的值,然后进行x++操作。x的初始值为1,输出结果为1。
20.D选项A,在赋值表达式中,赋值号的左边只能是变量或者是代表某个存储单元的表达式,不能是任意表达式,右边也不得出现表达式;选项8中,整型变量中只能存放整型数,但实型变量中能存放实型数,也能存放整型数;选项C,表达式a=b的意思是把变量b的值赋给变量a,从而覆盖a中原来值;选项D,要求取余运算符"%"两边的类型均为整型。
21.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,循环结束。
22.3535解析:函数swap(int*a,int*b)的功能是实现*a和*b中两个数据的交换,在主函数中调用swap(p,q)后,形参指针变量a和b分别指向i和j,在swap(int*a,int*b)执行完后,指针变量a和b分别指向j和i,而指针变量p,q所指向变量的值没有发生变化,所以输出结果为35。
23.用“&&”连接两个表达式时,若第1个表达式的值为“假”,则运算结果与第2个表达式无关,此时第2个表达式将不再进行计算。本题中第1个表达式“j=!ch”值为0,所以第2个表达式i++将不再进行计算,i的值为1。\r\n\r\n
24.x=2y=1
25.for(i=1;i<=x;i+=2)*n=jfor(i=1;i<=x;i+=2)*n=j解析:本题题干信息是求能整除x且不是偶数的所有正整数。循环语句中i从1开始且每次增2,所以i始终是奇数,语句,n=j;是记录符合题意的整数的个数。
26.格式化模型格式化模型解析:层次模型与网状模型属于格式化模型。
27.2468
28.内容内容
29.int*int*解析:从题中代码可知:z应该是一个整型指针,因此应填int*。
30.模块模块
31.2424解析:本题考核的知识点是数组的定义和数组元素的引用。主函数中首先定义了一个长度为7的数组,然后用一个while循环引用数组的元素,当i大于7或者p[i]为偶数时,循环结束。显然当i=2时,p12]=14为偶数时,循环结束,此时j的值为j=p[0]+p[1]=24;
32.88解析:fabs函数功能是求x的绝对值,计算结果为double型。pow功能是计算x的y次方的值,计算结果同样为double型。所以本题表达式相当于2.0的3.0次方,结果为8.000000。
33.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式为:scanf(格式控制,地址表列),因此,第一处应该填写地址,由于是循环输入,所以填&a[i]。依据题意第二处应该填写a[i],以实现sum=sum+a[i]的求和。
34.扇出扇出解析:在结构图中,调用一个给定模块的模块个数称为扇入,一个模块直接调用的其他模块个数称为扇出。
35.43214321解析:静态存储类的局部变量其生存期为整个程序的运行期间,作用域却只是定义它的函数或局部范围。注意:局部变量和全局变量的作用域。
36.1.0/(n*n)1.0/(n*n)解析:sam中累加的值是1+1/(2*2)+1/(3*3)+…+1//(n*n),如果写为1/(n*n),则会因为1和n都为整型,结果则为实型,将1变为1.0,结果则为实型。
37.E-R图E-R图解析:E-R图是设计概念模型的有力工具。
38.43344334解析:程序将变量a,b的值传给函数swap的形参x,y,并在函数中对x,y的值进行交换,所以在函数swap中输出x,y的值4,3,由于c程序的函数是僧传递,实参a,b的值不会随形参x,y的改变而改变,所以在主函数中输出的a,b的值为3,4。
39.structnode*structnode*解析:本题中的结构类型名为structnode,所以空白处应填:structnode*。即定义一个指向自身的结构体指针。
40.5656解析:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。
41.B解析:本程序首先定义了静态字符数组a,然后将指针p指向数组a的首地址。
第1次for循环,p=a,p指向数组的第1个元素,*p是取指针p所指地址的内容,输出1;第2次for循环,p=p+2,则p指向数组的第3个元素,*p是取指针p所指地址的内容,输出n;第3次for循环,p=p+2,则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出u;第4次for循环,p=p+2,则p指向数组的第7个元素,*p是取指针p所指地址的内容,输出g,结束循环。
42.B
43.C
44.B解析:因为在循环中存在一条这样的语句“if(n=4)break;”,所以循环变量n递增到4的时候循环会被强行结束。故一共循环了5次,每次n的值分别为0、1、2、3、4。应该选择B。
45.B解析:本题考核的知识点是算法的性质。算法是为解决某个特定问题而采取的确定的且有限的步骤,一个算法应当具有以下5个基本特性:1.有穷性,就是指一个算法应当包含有限个操作步骤。2.确定性,就是说算法中每一条指令必须有确切的含义,不能有二义性,对于相同的输入必能得出相同的执行结果。3.有零个或多个输入。4.可行性,就是说算法中指定的操作,都可以通过已经实现的基本运算执行有限次实现,5.有一个或多个输出。由此可知选项B不正确,所以,4个选项中选项B符合题意。
46.C解析:考查指向函数的指针变量的使用。在本题中,将函数的入口地址赋给指针后就可以用该指针调用函数了。
47.C解析:在关系模型数据库中,基本结构是二维表,这种二维表称为关系。关系的列称为属性,一个具有N个属性的关系称为N元关系。注意:各种关系查询语言与过程性语言和非过程性语言的关系,过程性语言的特点。
48.A解析:本题考查如何通过地址来引用数组元素。通过地址来引用数组元素的方法有下列5种:①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。
49.C解析:本题考查的知识点是运算符的优先级.在复合赋值语句中,应该由右向左依次赋值,在表达式中,右端由i*=k得i=2*2为4,k=k+i,即k值为6,m=k故m=6.所以4个选项中C正确。
50.D解析:本题考查数组的两个知识点:①在C语言中,数组元素的个数是确定的,不允许随机变动,数组定义好之后,它所能容纳的元素的个数也就确定了;②同一个数组中所有元素的类型是一样的。
51.A解析:本题中的else语句和if语句之间有两条语句,并且未用大括号括起来,故编译通不过。所以应该选择A。
52.B
53.C解析:本题考查的知识点是赋值语句的基本知识。在表达式的运算中,双目赋值运算符的格式为“变量二表达式”,单目运算符一般形式为“运算符表达式”或“表达式运算符”。常量和表达式是不能被赋值的。选项A为复合表达式,首先计算(i=2,++i)的值,然后赋值给n,故选项A正确;选项B为简单自加运算,故选项B正确;选项C在表达式++(i+1);中,(i+1)不是变量,该表达式的值为常量,而在++运算中,其运算对象必须为变量,故选项C错误;选项D中为复合赋值表达式,正确.所以应当选择C。
54.A解析:本题考核的知识点是字符串的长度。字符数组中可以存放字符串,但字符数组的长度并不是字符串的长度,字符串的长度是指字符数组中存放的有效字符个数,即,\'\\0\'之前的字符数。字符数组s中依次存放的字符是:\'\\\\'1'4'1'141'a'b'c'\\t\'和最后一个字符串结束标记\'\\0\',故字符串的长度是9。所以,4个选项中A为所选。
55.A解析:局部变量在执行到它所在的程序块时产生,执行完时被摧毁,而静态局部变量的生存期将一直延长到程序运行结束,故选项A正确;全局变量的只有一种静态存储类别,故全局变量说明为static存储类,和没有说明为static存储类其生存期都是一直延长到程序运行结束,故选项B不正确:未赋初值的局部变量的初值是随机的,故选项C不正确;形参只能是一般局部变量,不能使用任何存储类说明符,故选项D不正确。所以,4个选项中选项A符合题意。
56.C解析:此题考查了指针引用一维数组元素的方法。*p+9因为运算符“*”的优先级高于“+”,所以输出结果为p指向的元素1,然后加9,值为10。
57.A
58.A解析:C语言中,一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号括起来作为字符常量,字符常量的范围是0~127。由于字符常量用单引号括起来,所以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江宁波前湾控股集团有限公司第1批次人员招聘笔试备考试题及答案解析
- 2026年陕西⼈⺠艺术剧院有限公司招聘(2人)笔试备考题库及答案解析
- 2026年安阳学院单招综合素质笔试备考试题含详细答案解析
- 2026贵州筑春酒业有限责任公司招聘销售人员笔试备考题库及答案解析
- 2026年江西科技职业学院单招职业技能考试模拟试题含详细答案解析
- 2026山东日照航海工程职业学院招聘52人笔试备考题库及答案解析
- 2026年湖北生态工程职业技术学院单招职业技能考试备考试题含详细答案解析
- 2026丽水松阳华数广电网络有限公司见习生招聘5人笔试备考题库及答案解析
- 2026年青岛港湾职业技术学院高职单招职业适应性测试备考试题及答案详细解析
- 2026年青岛市卫生健康委员会直属事业单位公开招聘卫生类岗位工作人员(383名)笔试备考试题及答案解析
- 《老年人照料设施建筑装饰装修设计规程》上网征求意见稿
- 2026年及未来5年市场数据中国航空复合材料市场运行态势及行业发展前景预测报告
- 人教版七年级数学寒假作业(每日一练)
- 柴油机启动课件
- 动物医学毕业论文
- 2025年全国高校辅导员素质能力大赛基础知识测试卷及答案
- 2026年沈阳职业技术学院单招职业适应性测试必刷测试卷必考题
- 《机车运用与维护》第三章 铁路行车信号
- (2025年标准)预存消费协议书
- 养老院入住合同协议书
- 耐磨钢的应用现状及行业发展分析
评论
0/150
提交评论