




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年江西省萍乡市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。
A.控制流B.加工C.数据存储D.源和潭
2.下列条件语句中,输出结果与其他语句不同的是()。
A.if(a!=0)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)printf(“%d\n”,x);elseprintf(“%d\n”,y);
3.按照“先进先出”组织数据的数据结构是()。
A.队列B.栈C.双向链表D.二叉树
4.以下程序的输出结果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0
5.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),
A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定
6.在下面的一维数组定义中,哪一个有语法错误()。A.inta[]={1,2,3};B.inta[10]={0};C.inta[];D.inta[5];
7.以下关于C语言文件系统的叙述中正确的是()。
A.fprintf与fwrite函数功能相同
B.文件以“r”方式打开后,可以存储文本类型的数据
C.fscanf与fread函数功能相同
D.以“w”或“wb”方式打开的文件,不可以从中读取数据
8.下列程序的输出结果是()。
#include<stdio.h>
intb=2;
intfunc(int*A)
{b+=*a;retumb;}
main()
{inta=1,t=2;
t+=func(&A);
printf("%d\n",t);
}
A.4B.5C.6D.8
9.有下列程序:main{charp[]={a,h,c},q[]="a";printf("%d%d\n".sizeof(P),sizeof(q));}程序运行后的输出结果是()。A.44B.33C.34D.43
10.设"char**s;",以下正确的表达式是()。
A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';
11.设有以下语句,其中不是对a数组元素的正确引用的是:_____(其中0≤i<10)inta[10]={0,1,3,4,5,6,7,8,9,},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
12.有以下程序:#include<stdio.h>main(){inta,b,k,m,*pl,*p2;k=1,m=8;p1=&k,p2=&m;a=/*pl-m;b=*p1+*p2+6;printf("%d",a);printf("%d\n",b);}编译时编译器提示错误信息,你认为出错的语句是()。A.a=/*pl-m;B.b=*p1+*p2+6;C.k=1,m=8;D.pl=&k,p2-&m;
13.以下能正确定义一维数组的选项是______。
A.inta[5]={0,1,2,3,4,5};
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
14.设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。
A.5B.6C.7D.8
15.
16.以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。#defineMIN-2147483647intfindmax(intx[],intn){inti,max;for(i=0;i<n;i++){max=MIN;if(max<x[i])max=x[i];)returnmax;}造成错误的原因是()。A.定义语句“inti,max;”中max未赋初值
B.赋值语句“max=MIN;”中,不应给max赋MIN值
C.语句“if(max<x[i])max=x[i];”中判断条件设置错误
D.赋值语句“max-MIN;”放错了位置
17.
18.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此处do-while循环的结束条件是
A.P的值不等于12345并且n的值小于3
B.P的值等于12345并且n的值大于等于3
C.P的值不等于12345或者n的值小于3
D.P的值等于12345或者n的值大于等于3
19.
20.若有定义语句:“intx=12,y=8,z;”,在其后执行语句“z=0.9+x/y;”,则z的值为()。A.1.9B.1C.2D.2.4
二、2.填空题(20题)21.语句:x++;++x;x=1+x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句______。
22.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。
23.以下程序运行后的输出结果是【】。
main()
{chars[]="9876",*p;
for(p=s;p<s+2;p++)printf("%s\n",p);
}
24.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1
11
121
1331
14641
┇
其构成规律是:
(1)第0列元素和主对角线元素均为1
(2)其余元素为其左上方和正上方元素之和
(3)数据的个数每行递增1
请将程序补充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;
x[0][0]=1;
for(i=1;i<N;i++)
{x[i][0]=【】=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
}
25.在关系模型中,把数据看成一个二维表,每一个二维表称为一个______。
26.下面程序的运行结果是【】。
voidswap(int*a,int*b)
{
int*tp;
t=a;a=b;b=t;
}
main()
{
intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
27.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。
28.在面向对象的方法中,______描述的是具有相似属性与操作的一组对象。
29.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。
30.软件测试按功能划分的方法划分,通常分为【】测试方法和黑盒测试方法。
31.#define命令出现在程序中函数的外面,宏名的有效范围为______。
32.当m=1,n=2,a=3,b=2,c=4时,执行d=(m=a!=B)&&(n=b>C)后,m的值为()。
33.以下程序的输出结果是【】。
#include<stdio.h>
main()
{inti;
for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);
printf("\n");
}
34.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,所以,基于逻辑结构的应用程序不必修改,称为【】。
35.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。
36.在深度为7的满二叉树中,度为2的结点个数为【】。
37.软磁盘最外边的磁道数是【】号磁道。
38.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,其中______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
39.对软件是否能达到用户所期望的要求的测试称为【】。
40.数据库系统的主要特点为数据集成性、数据的高______和低冗余性、数据独立性和数据统一管理和控制。
三、1.选择题(20题)41.设有如下的函数funct(x)floatx;{x*=x;printf("\n%d",x);return(x);}则函数的类型()
A.与参数x的类型相同B.voidC.intD.无法确定
42.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是
A.因变量类型与格式描述符的类型不匹配输出无定值
B.输出项与格式描述符个数不符,输出为零值或不定值
C.a,97,12k=12
D.a,97,k=12
43.在软件测试设计中,软件测试的主要目的是
A.实验性运行软件B.证明软件正确C.找出软件中全部错误D.尽可能多地发现软件中的错误
44.以下程序的输出结果是()main(){intn[3][3],i,j;for(i=0;i<3;i++)for(j=0;i<3;++)n[i][j]=i+j;for(i=0;i<2;i++)for(j=0,j<2;j++)n[i+1][j+1]+=[i][j];printf("%d\n",n[1][j]);}
A.14B.0C.6D.值不确定
45.执行以下程序段后,m的值为______。inta[2][3]={{1,2,3},{4,5,6}};intm,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));
A.15B.14C.13D.12
46.在软件开发中,需求分析阶段产生的主要文档是()。
A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划
47.下列能正确定义一维数组的选项是()。
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
48.有以下程序:#include<stdio.h>main(){FILE*fp;inti,k=0,n=0;fp=fopen("d1.dat","w");for(i=1;i<4;i++)fprintf(fp,"%d",i);fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);{执行后的输出结果是()。
A.12B.1230C.123D.00
49.有以下程序:intf(intb[][4]){inti,j,s=0;for(j=0;i<4;i++){i=j;if(i>2)i=3-j;s+=b[i][j];}returns;}main(){inta[4][4]={{1,2,3,4,},{0,2,4,6},{3,6,9,12},{3,2,1,0}};printf("%d\n",f(a));}执行后的输出结果是()。
A.12B.11C.18D.16
50.对下述程序,正确的判断是()。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
51.以下程序的输出结果是intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staticintx=1;x*=x+1;printf(“%d”,x);}
A.33B.22C.26D.25
52.若w、x、y、z、m均为int型变量,则执行下列的语句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;
A.2B.3C.5D.4
53.下列程序段的输出结果是______。int**pp,*p;inta=10,b=20;p=&a;pp=&p;p=&b;printf("%d,%d\n",*p,**pp);
A.10,20B.10,10C.20,20D.20,10
54.已定义以下函数;intfun(int*p){return*p;}fun函数返回值是()。
A.不确定的值B.一个整数C.形参p中存放的值D.形参p的地址值
55.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。
A.数据库系统B.文件系统C.人工管理D.数据项管理
56.以下程序中,while循环的循环次数是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}
A.1B.10C.6D.死循环,不能确定次数
57.如果需要打开一个已经存在的非空文件"Demo"进行修改,下面选项中正确的是
A.fp=fopen("Demo","r");
B.fp=fopen("Demo","ab+");
C.fp=fopen("Demo","w+");
D.fp=fopen("Demo","r+");
58.请选出可以作为C语言用户标识符的一组标识符号
A.voiddefineWORD
B.a3_b3_1231F
C.for—abccase
D.2aD0sizeof
59.下列叙述中正确的是()。
A.一个算法的空间复杂度大,则其时间复杂度也必定大
B.一个算法的空间复杂度大,则其时间复杂度必定小
C.一个算法的时间复杂度大,则其空间复杂度必定小
D.上述三种说法都不对
60.待排序的关键码序列为15,20,9,30,67,65,45,90,要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第()个位置。
A.2B.3C.4D.5
四、选择题(20题)61.在C语言中,要求运算数必须是整型的运算符是()。
A)%B)/
C)<D)!
62.已知inti=1;执行语句while(i++<4);后,变量i的值为()。
A.3B.4C.5D.6
63.下列叙述中正确的是()。
A.有一个以上根结点的数据结构不一定是非线性结构
B.只有一个根结点的数据结构不一定是线性结构
C.循环链表是非线性结构
D.双向链表是非线性结构
64.有以下程序:
程序运行后的输出结果是()。
A.12
B.15
C.16
D.20
65.以下程序运行后的输出结果是()。
A.2B.4C.6D.3
66.下面的函数调用语句中func函数的实参个数是()。func((f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)))
A.3B.4C.5D.8
67.以下叙述中错误的是()。
A.gets函数用于从终端读人字符串
B.getehar函数用于从磁盘文件读人字符
C.fputs函数用于把字符串输出到文件
D.fwrite函数用于以二进制形式输出数据到文件
68.在计算机中,算法是指()
A.加工方法B.解题方案的准确而完整的描述C.排序方法D.查询方法
69.请选出以下语句的输出结果Printf("%d\n",strlen("\t\"\065\xff\n"));
A.5B.14C.8D.输出项不合法,无正常输出
70.
71.有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是()。
A.自然连接B.交C.投影D.并
72.以下选项中可用作C程序合法实数的是()。A..1eOB.3.0e0.2C.E9D.9.12E
73.设变量已正确定义,则下列能正确计算f=n!的程序段是()。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++)f*=i;
C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
74.
75.以下程序运行后的输出结果是()。
f(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inta=2,i;
for(i=0;i<3;i++)
printf("%4d",f(a));
A.789B.678C.567D.876
76.选出下列标识符中不是合法的标识符的是()。
A.hot_doB.cat1C._priD.2ab
77.
有如下程序:
main
{inta=2,b=-1.c=2;
if(a<0)if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
该程序的输出结果是()。
A.0B.1C.2D.3
78.以下不能定义为用户标识符的是()
A.MainB._0C._intD.sizeof
79.有以下程序:
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
80.为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。
A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if
五、程序改错题(1题)81.下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。
例如,若输入“Ab,cD”,则输出“AB,CD”。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!
六、程序设计题(1题)82.编写函数proc(),它的功能是:根据公式求p的值,结果由函数值带回。m与n为两个正数且要求m>;n。p=m!/(n!(m-n)!),例如,m=20,n=10时,运行结果为184756.000000。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.A解析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。
2.CA、B、D选项的含义均为:a的值如果为0,输出y的值,否则输出x的值。而C选项的含义是:a的值为0时输出x的值,不为0时输出y的值,与其他选项正好相反。故本题答案为C选项。
3.A队列是一种特殊的线性表,只允许在表的一端插八元素,在表的另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”。先插入的元素先被删除,是按“先进先出”的原则组织数据的。
【知识拓展】“队列”和“栈”都是一种特殊的线性表。之所以称之为“队列”,其形式如“排队”。要讲究“先来后到”,先进先出,后进后出。
4.D因为a是结构体变量,最后一次输入的值为结构体中的值,即a中的任何一个值都为0。
5.D解析:在C语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo\u3000C\u30002.0中,int占2个字节,但在VisualC++6.0(VC6可以用做C语言编译器)中占4个字节。故本题应该选择D。
6.C
7.Dfprintf函数和fscanf函数都可以读写文本文件,而fwrite和fread函数可以读写二进制文件,选项A、C错误;文件以“r”方式打开后,只可以读取文本数据,选项B错误。故本题答案为D选项。
8.B解析:本题考查函数调用时的参数传递。在执行函数func时,由于全局定义了一个变量b,所以在函数体中执行时b=2+1=3,最终t=2+3=5。
9.C语句charp[]={a,b,c);定义了一个一维字符数组p[],并用3个字符a,b,c进行了初始化;而语句q[]="abe"表示定义了一个一维字符数组,并用一个字符串常量"abc"进行了初始化。在C语言中,系统在每个字符串常量的最后自动加入一个字符\0作为字符串的结束符。所以函数sizeof(q)=4,而sizeof(p)=3,因而选项C为正确答案。
10.B
11.D解析:观察程序可知,a实际上就是数组a的首地址,所以“*(a+i)”表示的就是数组a中的第i个元素的值,进而,我们可以知道*(*(a+i))必然不是对a数组元素的正确引用。
12.A本题考查指针,pl=&k表示P指向k的地址,则*p=k,依次类推,在对指针进行赋值时没有错误。a=/*p+m赋值,在c语言中"/*"表示的注释,所以答案选择A。
13.B解析:选项A)定义的是长度为5的数组元素,但初值有6个元素,所以错误;选项C)不符合数组定义形式,数组名后应加上“[];选项D)的类型说明符错误,应改为char;选项B)中的0,1,2,3,4,5分别表示对应字符的ASCII码,所以正确。
14.A:在一个无向图G中,若从顶点Vi到顶点Vj有路径相连,则称Vi和Vj是连通的。连通图是指任意两个结点之间都有一个路径相连。6个节点的无向图,至少要5个边才能确保是任意两个节点之间都有路径相连。下图是一种可能的连接方式:故本题选A。
15.C
16.D“max=MIN;”语句应放在for循环之前,否则每次循环时都重新赋值,值没有变化。
17.D
18.D解析:本题考查的知识点是do-while循环结构循环执行条件的判断.使用do-while语句必须注意以下几点:
先执行语句,后判断表达式。所以,无论一开始表达式的值为“真”还是“假”,循环体中的语句至少执行一次,这一点与while不同,
如果do-while语句循环体部分是由多个语句组成,则必须用花括号括起来,使其形成复合语句。
C语言中的do—while语句是在表达式“真”时重复执行循环体。
在本题中,循环执行判断条件为while后面括号里的表达式即p!=12345&&n<3(意思为p不等于12345且n小于3)是否为“真”,由此可得循环结束的条件为:p大于12345或者p小于12345又或者n大于等于3。选项A的意思是:p的值不等于12345并且n的小于3和while后面括号里的表达式等价是循环执行的条件而不是循环结束的条件,所以选项A不正确;选项B的意思是:p的值等于12345并且n的值大于3,不是循环结束的条件一个子集,所以选项B不正确;选项C的意思是:p的值不等于12345或者n的值小于3前一半是结束条件的子集,后一部分不是结束条件,所以选项C不正确;选项D描述的意思是:p的值等于12345或者你的大于等于3是结束条件的子集,所以选项D满足题意。所以4个选项中D正确。
19.B
20.B此题考查除法运算,根据先乘除后加减,有括号先算括号的原则,先计算x/y,即l2/8=1,所以z=0.9+1=1.9。但是Z是整型的,转化一下取整除部分,结果Z=1
21.x+=1x+=1解析:本题考查“++”,“--”运算符。“++”、“--”只能作用于变量,不能用于表达式或常量;前缀形式是在使用变量之前先将其值增1或减1,后缀形式是先使用变量原来的值,使用完后再使其增1或减1。
22.类类解析:在面向对象方法中,类描述的是具有相似属性与操作的一组对象。
23.98768769876\r\n876解析:指针是一种数据类型,这种数据类型的变量用来存放内存中分配的存储单元的首地址。指针的定义:
类型说明符*指针变量名;
24.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用两重循环。在第一层循环中将每行的第0列赋值为1,对角线上的元素赋值为1显然在第一个空中应该填入对角线上的元素即x[i][i],在第二重循环中给每行其他元素赋值,而在每行中除了第0列和对角线的元素外其他元素为其对应的上一行中同列和同列的前一列的元素相加,所以在第二个空中应该填入x[i-1][j-1]+x[i-1][j]。
25.关系关系解析:关系模型用;维表表示,则每个;维表代表一种关系。
26.3535解析:在主函数中通过定义和赋初值使p和q分别指向了x和y,执行函数调用“swap(p,q)”,把p和q中的地址值传给了形参指针.变量a和b,a和b分别指向了实参x和y。在函数swap()中交换了指针变量a和b的值,并没有交换a和b指向的实参的值,所以函数调用返回后x和y依旧是原来的值。
27.1对多(或1:N)1对多(或1:N)
28.类类解析:在面向对象的方法中,把具有相同属性和方法的对象称为类,类是对象的抽象,对象是类的实例。
29.加工加工解析:数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。其中的每一个加工对应一个处理模块。
30.白盒白盒解析:软件测试的方法分为白盒测试方法和黑盒测试方法。
31.从定义到本源文件结束从定义到本源文件结束解析:C语言规定,宏名的有效范围为从定义宏到本源程序结束。
32.11解析:①“sizeof'、“%”、“>”、“<<”、“*=”,运算符的优先级顺序为:“*=”→“>”→“<<”→“%”→“sizeof”;②位运算的优先级顺序为:“~”→“<<”→“>>”→“&”→“^”。(b=2)>(c=4)不成立,逻辑为假,所以n=0;(a=3)!=(b=2)成立,逻辑为真,所以m=1。
33.ACEACE解析:在本题中,for循环体每执行完一次,变量i的值自加两次。i的初值为\'a\',执行一次循环后变为\'c\',之后再变成\'e\',当其变为\'g\'时,循环条件若不满足,循环终止,故本题共输出3个字符。表达式'i-\'a\'+\ue008\'A\'\ue009'即表示输出i对应的大写字母,结果为ACE。
34.物理独立性物理独立性解析:逻辑独立性是指,由于数据的局部逻辑结构与总体逻辑结构之间也由系统提供映像,使得当总体逻辑结构改变时,其局部逻辑结构叮以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。物理独立性是指,由于数据的存储结构与逻辑结构之间山系统提供映像,使得当数据的存储结构改变时,其逻辑结构可以不变,所以,基于逻辑结构的应用程序不必修改。
35.封装封装
36.63或26-163或26-1解析:在满二叉树中,每层结点都是满的,即每层结点都具有最大结点数。深度为k的满二叉树,一共有2k-1个结点,其中包括度为2的结点和叶子结点。因此,深度为7的满二叉树,一共有27-1个结点,即127个结点。根据二叉树的另一条性质,对任意一棵二叉树,若终端结点(即叶子结点)数为n0,而其度数为2的结点数为n2,则n0=n2+1。设深度为7的满二叉树中,度为2的结点个数为x,则改树中叶子结点的个数为x+1。则应满足x+(x+1)=127,解该方程得到,x的值为63。结果上述分析可知,在深度为7的满二叉树中,度为2的结点个数为63。
37.0
38.驱动模块驱动模块解析:由于模块通常不是独立的程序,自己不能运行,而需要其他模块调用或驱动,同时被测试模块还要去调用其他模块,前者称为驱动模块,后者称为承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是代替被测模块,调用其他模块。
39.有效性测试有效性测试
40.共享性共享性解析:数据库系统中的数据能被不同的应用程序使用,实现了数据的高度共享,从而降低了数据的冗余,这也是数据库的主要目的。
41.C
42.D解析:输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。
43.D解析:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。
44.C
45.A
46.BA项错误,可行性分析阶段产生可行性分析报告。C项错误,概要设计说明书是总体设计阶段产生的文档。D项错误,集成测试计划是在概要设计阶段编写的文档。B项正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
47.A解析:根据函数intf1(intx,inty){returnx>y?x:y;}和intf2(intx,inty){returnx)>?y:x;}的定义可知,如果x>y成立,则函数f1返回x的值,函数f2返回y的值。所以f1(a,b)=4,f1(c,d)=5,f2(a,b)=3,f2(c,d)=2,故e=f2(4,5),f=f1(3,2)=3,g=4+3+5+2-4-3=7。
48.B解析:fprintf、fscanf函数与printf、scanf函数作用相仿,都足格式化读写函数,其区别在于:fprintf和fscanf函数的读写对象不是终端而是磁盘文件。这两个函数的一般调用方式为:
fprintf(文件指针,格式字符串,输出表列);
fscanf(文件指针,格式字符串,输入表列);
程序首先将123写入d1.dat文件中,再从该文件中将数据读给变量k和n。由于文件d1.dat中的数据是123,按格式“%d%d”读数据时将123读给k,n没有得到读入的数据,保持初始值0。
49.D解析:在主函数中首先定义了一个4行4列的二维数组a,并用该数组的数组名作为实参调用函数f()。函数f()中的for循环作用,是将数组前3行中的对角线上的元素,即b[0][0]、b[1][1]、b[2][2]和第一行的第四列元素即b[0][3]累加到变量s中,s=a[0][0]+a[1][1]+a[2][2]+a[0][3]=1+2+9+4=16。然后将s的值返回在主函数中输出。
50.A解析:本题中的else语句和if语句之间有两条语句,并且未用大括号括起来,故编译通不过。所以应该选择A。
51.C解析:本题首先定义一个全局变量x并赋初值为3,主函数中使用这个全局变量控制循环次数,循环执行了2次,调用两次incre()函数。第一次调用incre(),定义一个静态变量x并赋初值1,然后执行“x*=x+1”,使x的值变为2;第二次调用incre()函数时,静态变量将保留上一次退出时的值即2,执行语句“x*=x+1”后,x的值变成6,输出x的值为6。
52.A解析:条件表达式“a?b:c”的含义是:当a为真时,其值等于表达式b的值;当a为假时,其值等于表达式c的值。
表达式运算过程:第1个表达式:w=2<x=3为真,所以返回w的值,即m=w=2;第2个表达式:m=2<z=5为真,所以返回m的值,即m=2;第3个表达式:w=2<y=4为真,所以返回m的值,即m=2。
53.C解析:指针变量p先是指向变量a,后指向变量b,但二级指针变量始终指向指针变量p。
54.B解析:题目中fun()函数的返回表达式是*p,所以选项C、D不为所选,而应该是形参p所指内容的值,因为p为int型指针,所以该值是一个整数。故应该选择B。
55.A在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统这一阶段。数据库系统阶段用数据模型来表示复杂的数据,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户既可使用查询语言或终端命令操作数据库,也可以用程序方式来操作。数据库管理系统提供了数据控制功能。
56.D解析:break语句只能在循环体和switch语句体内使用,当break出现在switch语句体内时,其作用只是跳出该switch语句体。当break出现在循环体中,但不在switch语句体内时,则在执行break后,跳出本层循环体.而continue语句的作用是结束本次循环,即跳过本次循环中余下尚未执行的语句,接着再一次进行循环的条件判定。本程序中,变量i的初始值为0,判断while后面括号内表达式的值为真,执行循环体内的if语句,判断if后面括号内表达式的值为真,执行“continue;”语句.因continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判断,所以i的值未发生变化,循环条件仍然为真,if语句也仍然成立,因此循环将无止境地进行下去。所以,4个选项中D为所选。
57.D解析:此题考查文件打开方式对文件操作的影响。由于打开文件进行修改,可见选项A)是错误的,因为此种方式打开时,只能读,不能写,当然无法修改;选项B)是以追加方式'ab+'打开文件读写,以这种方式打开时,新写入的数据只能追加在文件原有内容之后,但可以对以前的数据读出。换言之,'ab+'或'a+'方式打文件后,对于写操作,文件指针只能定位在文件的原有内容之后,但对于读操作,文件指针可以定位在全文件范围内,可见,按此种方式打开文件不能实现文件内容的修改;选项C)以'w+'方式打开文件,此时,原文件中已存在的内容都被清除,但新写入文件的数据可以被再次读出或再次写入,故也不能实现对文件的修改。只有以'r+'方式打开文件时,才允许将文件原来数据读出,也允许在某些位置上再写入,从而实现对文件的修改。
58.B解析:本题考核的知识点是用户标识符的定义。在C语言中,合法的标识符可以由字母、数字和下划线组成,其中关键字不能作为用户的标识符,且开头的第一个字符必须为字母或下划线。选项A中void为关键字,故选项A不正确:选项C中for和case为关键字,故选项C不正确:选项D中sizeof为关键字,故选项D不正确。所以,4个选项中选项B符合题意。
59.D解析:时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。人们都希望选择一个既省存储空间、又省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时间和空间的效率往往是一对矛盾,很难做到两全。但是,这不适用于所有的情况,也就是说时间复杂度和空间复杂度之间虽然经常矛盾,但是二者不存在必然的联系。因此,选项A、B、C的说法都是错误的。故本题的正确答案是D。
60.A解析:选择排序的基本思想是扫描整个线性表,从中选出最小的元素,将它交换到表的最前面,然后对剩下的子表采用同样的方法,直到子表为空。所以第一趟排序后,将选出最小的元素9放在第一个位置,元素15则放在第二个位置。
61.A%为求余运算符,运算对象必须为整型数。
62.C循环语句;i=1,执行i++<4;满足条件,执行循环体,然后i++<4……,当i=3时,先执行i<4,成立,然后i++,循环,i=4,判断i<4不成立,i++,变成5.
63.B解析:如果一个非空的数据结构满足以下两个条件:(l)有且只有一个根结点;(2)每个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。如果一个数据结构不是线性结构,则称之为非线性结构,故A项错误。有一个根结点的数据结构不一定是线性结构,如二叉树,B项说法正确。循环链表和双向链表都属于线性链表。故C、D项错误。
64.A本题的考查点是带参数的宏定义。本题的程序中就定义了一个带参数的宏,对F(a++,b++)进行展开后,宏的返回值为12,注意a++,b++都是先使用变量值,再自增。
65.C函数f的功能是利用冒泡排序方法,将二维字符数组的前n行进行递增排序。
注意,本题目排序时整个字符串都交换。数组P排序后的结果为
66.A解析:本调用语句func中包含了3个实参,一个是对f2函数调用“f2(v1,v2)”的返回值;另一个是逗号表达式“(v3,v4,v5)”的值v5(逗号表达式的一般形式为:表达式1,表达式2,表达式3......表达式n,它的值为表达式n的值);还有—个实参也是逗号表达式“v6,max(v7,v8)”的值,即对max函数调用的返回值。
67.B本题考查字符处理函数和文件操作函数。属于基础知识,其中B选项9etchar函数是用于从终端读人一个字符。
68.B在计算机中,算法被定义为对一个问题求解步骤的一种描述,是求解问题的方法,它是指令的有限序列,其中每条指令表示一个或者多个操作。算法具有有穷性、确定性、可行性、输入和输出五大特点。
在本题中,选项A、C、D的说法明显偏离了算法的定义,因此正确答案选B。
69.A解析:本题考查用strlen函数计算字符串长度的方法。该字符串中包含的字符是:\'\\t\'(跳格符)、\'\\'\'(双引号)、\'\\065\'(ASCII值为八进制065,也即+进制为51的字符)、\'\\xff\'(ASCII值为+六进制ff,也即+进制为255的字符)、\'\\n\'(换行符)。
70.A
71.A解析:结构化程序的概念首先是从以往编程过程中无限制地使用转移语句而提出的。转移语句可以使程序的控制流程强制性地转向程序的任一处,在传统流程图中,就是用上节我们提到的“很随意”的流程线来描述这种转移功能。如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受的,并且容易出错。尤其是在实际软件产品的开发中,更多的追求软件的可读性和可修改性,象这种结构和风格的程序是不允许出现的。
72.Ae前e后有数字,e后数值为整数,所以B)、c)、D)错误。
73.D解析:要正确计算函数f=n!,由n!的数学定义可知n!=n*(n-1)*(n-2)*……*1。在选项A)中,由于f的初值为0,在for循环语句中,f依次乘以1,2,3,……,n。最后计算f=n!=O,所以选项A)不正确。在选项B)中,f的初值为1,在for循环语句中,f依次乘以1,2,3,……,(n-1)。最后计算得到f=(n-1)!,所以选项B)不正确。在选项C)中,f的初值为1,在for循环语句中,f依次乘以n,n+1,n+2,……,所以选项C)不正确。在选项D)中,f的初值为1,在for循环语句中,f依次乘以n,n-1,n-2,……,2。最后计算f=n!,所以选项D)正确。
74.C
75.Ai=0,f(a)=2+1+4=7,i=1,f(a)=2+1+5=8,i=3,f(a)=2+1+5=9;(c为静态变量);
76.D
77.C
\nelse与离它最近的if构成if…else语句,而当a为2时,第一个if语句不成立,因此什么也不做,即c的值仍然为2,故选择C选项。
\n
78.D解析:C语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线,标识符名不能与关键字重名。选项A)中Main与主函数名main不同,所以选项D)是非法的标识符。
79.Di=0,i<2,j=0,p[i][j]=3,不满足if判断条件,j+2=2,p[i][j]=9,不满足条件,j+2=4,不满足while循环条件,i+1=1,j=0,p[1][0]=2,满足if判断条件,num=10*num+p[i][j]-‘0’=2,j+2=2,p[1][2]=8,满足条件,num=10*2+p[i][j]-‘0’=28
80.C81.
(1)if((tt[i]>=’a’)&&(tt[i]<=‘z’))
(2)tt[i]一=32;
【考点分析】
本题考查:if语句条件表达式;小写字母转大写字母的方法。
【解题思路】
(1)分析本题可知,要判断字符是否为小写字母,即判断其是否在a—z之间,所以这里需要进行连续的比较,用&&。(2)从ASCIl码表中可以看出,小写字母的ASCIl码值比对应大写字母的ASCIl值大32。将字符串中的小写字母改为大写字母的方法是:从字符串第一个字符开始,根据ASCIl码值判断该字母是不是小写字母,若是,则ASCIl码值减32即可。
82.
【解析】由题目中所给公式,首先求出整数m的阶乘,然后求出m的阶乘除以n的阶乘,最后再求出整个表达式的值。将整个表达式的值返回到主函数当中。
2021-2022年江西省萍乡市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。
A.控制流B.加工C.数据存储D.源和潭
2.下列条件语句中,输出结果与其他语句不同的是()。
A.if(a!=0)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)printf(“%d\n”,x);elseprintf(“%d\n”,y);
3.按照“先进先出”组织数据的数据结构是()。
A.队列B.栈C.双向链表D.二叉树
4.以下程序的输出结果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0
5.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),
A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定
6.在下面的一维数组定义中,哪一个有语法错误()。A.inta[]={1,2,3};B.inta[10]={0};C.inta[];D.inta[5];
7.以下关于C语言文件系统的叙述中正确的是()。
A.fprintf与fwrite函数功能相同
B.文件以“r”方式打开后,可以存储文本类型的数据
C.fscanf与fread函数功能相同
D.以“w”或“wb”方式打开的文件,不可以从中读取数据
8.下列程序的输出结果是()。
#include<stdio.h>
intb=2;
intfunc(int*A)
{b+=*a;retumb;}
main()
{inta=1,t=2;
t+=func(&A);
printf("%d\n",t);
}
A.4B.5C.6D.8
9.有下列程序:main{charp[]={a,h,c},q[]="a";printf("%d%d\n".sizeof(P),sizeof(q));}程序运行后的输出结果是()。A.44B.33C.34D.43
10.设"char**s;",以下正确的表达式是()。
A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';
11.设有以下语句,其中不是对a数组元素的正确引用的是:_____(其中0≤i<10)inta[10]={0,1,3,4,5,6,7,8,9,},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
12.有以下程序:#include<stdio.h>main(){inta,b,k,m,*pl,*p2;k=1,m=8;p1=&k,p2=&m;a=/*pl-m;b=*p1+*p2+6;printf("%d",a);printf("%d\n",b);}编译时编译器提示错误信息,你认为出错的语句是()。A.a=/*pl-m;B.b=*p1+*p2+6;C.k=1,m=8;D.pl=&k,p2-&m;
13.以下能正确定义一维数组的选项是______。
A.inta[5]={0,1,2,3,4,5};
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
14.设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。
A.5B.6C.7D.8
15.
16.以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。#defineMIN-2147483647intfindmax(intx[],intn){inti,max;for(i=0;i<n;i++){max=MIN;if(max<x[i])max=x[i];)returnmax;}造成错误的原因是()。A.定义语句“inti,max;”中max未赋初值
B.赋值语句“max=MIN;”中,不应给max赋MIN值
C.语句“if(max<x[i])max=x[i];”中判断条件设置错误
D.赋值语句“max-MIN;”放错了位置
17.
18.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此处do-while循环的结束条件是
A.P的值不等于12345并且n的值小于3
B.P的值等于12345并且n的值大于等于3
C.P的值不等于12345或者n的值小于3
D.P的值等于12345或者n的值大于等于3
19.
20.若有定义语句:“intx=12,y=8,z;”,在其后执行语句“z=0.9+x/y;”,则z的值为()。A.1.9B.1C.2D.2.4
二、2.填空题(20题)21.语句:x++;++x;x=1+x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句______。
22.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。
23.以下程序运行后的输出结果是【】。
main()
{chars[]="9876",*p;
for(p=s;p<s+2;p++)printf("%s\n",p);
}
24.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1
11
121
1331
14641
┇
其构成规律是:
(1)第0列元素和主对角线元素均为1
(2)其余元素为其左上方和正上方元素之和
(3)数据的个数每行递增1
请将程序补充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;
x[0][0]=1;
for(i=1;i<N;i++)
{x[i][0]=【】=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
}
25.在关系模型中,把数据看成一个二维表,每一个二维表称为一个______。
26.下面程序的运行结果是【】。
voidswap(int*a,int*b)
{
int*tp;
t=a;a=b;b=t;
}
main()
{
intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
27.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。
28.在面向对象的方法中,______描述的是具有相似属性与操作的一组对象。
29.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。
30.软件测试按功能划分的方法划分,通常分为【】测试方法和黑盒测试方法。
31.#define命令出现在程序中函数的外面,宏名的有效范围为______。
32.当m=1,n=2,a=3,b=2,c=4时,执行d=(m=a!=B)&&(n=b>C)后,m的值为()。
33.以下程序的输出结果是【】。
#include<stdio.h>
main()
{inti;
for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);
printf("\n");
}
34.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,所以,基于逻辑结构的应用程序不必修改,称为【】。
35.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。
36.在深度为7的满二叉树中,度为2的结点个数为【】。
37.软磁盘最外边的磁道数是【】号磁道。
38.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,其中______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
39.对软件是否能达到用户所期望的要求的测试称为【】。
40.数据库系统的主要特点为数据集成性、数据的高______和低冗余性、数据独立性和数据统一管理和控制。
三、1.选择题(20题)41.设有如下的函数funct(x)floatx;{x*=x;printf("\n%d",x);return(x);}则函数的类型()
A.与参数x的类型相同B.voidC.intD.无法确定
42.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是
A.因变量类型与格式描述符的类型不匹配输出无定值
B.输出项与格式描述符个数不符,输出为零值或不定值
C.a,97,12k=12
D.a,97,k=12
43.在软件测试设计中,软件测试的主要目的是
A.实验性运行软件B.证明软件正确C.找出软件中全部错误D.尽可能多地发现软件中的错误
44.以下程序的输出结果是()main(){intn[3][3],i,j;for(i=0;i<3;i++)for(j=0;i<3;++)n[i][j]=i+j;for(i=0;i<2;i++)for(j=0,j<2;j++)n[i+1][j+1]+=[i][j];printf("%d\n",n[1][j]);}
A.14B.0C.6D.值不确定
45.执行以下程序段后,m的值为______。inta[2][3]={{1,2,3},{4,5,6}};intm,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));
A.15B.14C.13D.12
46.在软件开发中,需求分析阶段产生的主要文档是()。
A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划
47.下列能正确定义一维数组的选项是()。
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
48.有以下程序:#include<stdio.h>main(){FILE*fp;inti,k=0,n=0;fp=fopen("d1.dat","w");for(i=1;i<4;i++)fprintf(fp,"%d",i);fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);{执行后的输出结果是()。
A.12B.1230C.123D.00
49.有以下程序:intf(intb[][4]){inti,j,s=0;for(j=0;i<4;i++){i=j;if(i>2)i=3-j;s+=b[i][j];}returns;}main(){inta[4][4]={{1,2,3,4,},{0,2,4,6},{3,6,9,12},{3,2,1,0}};printf("%d\n",f(a));}执行后的输出结果是()。
A.12B.11C.18D.16
50.对下述程序,正确的判断是()。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
51.以下程序的输出结果是intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staticintx=1;x*=x+1;printf(“%d”,x);}
A.33B.22C.26D.25
52.若w、x、y、z、m均为int型变量,则执行下列的语句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;
A.2B.3C.5D.4
53.下列程序段的输出结果是______。int**pp,*p;inta=10,b=20;p=&a;pp=&p;p=&b;printf("%d,%d\n",*p,**pp);
A.10,20B.10,10C.20,20D.20,10
54.已定义以下函数;intfun(int*p){return*p;}fun函数返回值是()。
A.不确定的值B.一个整数C.形参p中存放的值D.形参p的地址值
55.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。
A.数据库系统B.文件系统C.人工管理D.数据项管理
56.以下程序中,while循环的循环次数是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}
A.1B.10C.6D.死循环,不能确定次数
57.如果需要打开一个已经存在的非空文件"Demo"进行修改,下面选项中正确的是
A.fp=fopen("Demo","r");
B.fp=fopen("Demo","ab+");
C.fp=fopen("Demo","w+");
D.fp=fopen("Demo","r+");
58.请选出可以作为C语言用户标识符的一组标识符号
A.voiddefineWORD
B.a3_b3_1231F
C.for—abccase
D.2aD0sizeof
59.下列叙述中正确的是()。
A.一个算法的空间复杂度大,则其时间复杂度也必定大
B.一个算法的空间复杂度大,则其时间复杂度必定小
C.一个算法的时间复杂度大,则其空间复杂度必定小
D.上述三种说法都不对
60.待排序的关键码序列为15,20,9,30,67,65,45,90,要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第()个位置。
A.2B.3C.4D.5
四、选择题(20题)61.在C语言中,要求运算数必须是整型的运算符是()。
A)%B)/
C)<D)!
62.已知inti=1;执行语句while(i++<4);后,变量i的值为()。
A.3B.4C.5D.6
63.下列叙述中正确的是()。
A.有一个以上根结点的数据结构不一定是非线性结构
B.只有一个根结点的数据结构不一定是线性结构
C.循环链表是非线性结构
D.双向链表是非线性结构
64.有以下程序:
程序运行后的输出结果是()。
A.12
B.15
C.16
D.20
65.以下程序运行后的输出结果是()。
A.2B.4C.6D.3
66.下面的函数调用语句中func函数的实参个数是()。func((f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)))
A.3B.4C.5D.8
67.以下叙述中错误的是()。
A.gets函数用于从终端读人字符串
B.getehar函数用于从磁盘文件读人字符
C.fputs函数用于把字符串输出到文件
D.fwrite函数用于以二进制形式输出数据到文件
68.在计算机中,算法是指()
A.加工方法B.解题方案的准确而完整的描述C.排序方法D.查询方法
69.请选出以下语句的输出结果Printf("%d\n",strlen("\t\"\065\xff\n"));
A.5B.14C.8D.输出项不合法,无正常输出
70.
71.有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是()。
A.自然连接B.交C.投影D.并
72.以下选项中可用作C程序合法实数的是()。A..1eOB.3.0e0.2C.E9D.9.12E
73.设变量已正确定义,则下列能正确计算f=n!的程序段是()。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++)f*=i;
C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
74.
75.以下程序运行后的输出结果是()。
f(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inta=2,i;
for(i=0;i<3;i++)
printf("%4d",f(a));
A.789B.678C.567D.876
76.选出下列标识符中不是合法的标识符的是()。
A.hot_doB.cat1C._priD.2ab
77.
有如下程序:
main
{inta=2,b=-1.c=2;
if(a<0)if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
该程序的输出结果是()。
A.0B.1C.2D.3
78.以下不能定义为用户标识符的是()
A.MainB._0C._intD.sizeof
79.有以下程序:
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
80.为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。
A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if
五、程序改错题(1题)81.下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。
例如,若输入“Ab,cD”,则输出“AB,CD”。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!
六、程序设计题(1题)82.编写函数proc(),它的功能是:根据公式求p的值,结果由函数值带回。m与n为两个正数且要求m>;n。p=m!/(n!(m-n)!),例如,m=20,n=10时,运行结果为184756.000000。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.A解析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。
2.CA、B、D选项的含义均为:a的值如果为0,输出y的值,否则输出x的值。而C选项的含义是:a的值为0时输出x的值,不为0时输出y的值,与其他选项正好相反。故本题答案为C选项。
3.A队列是一种特殊的线性表,只允许在表的一端插八元素,在表的另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”。先插入的元素先被删除,是按“先进先出”的原则组织数据的。
【知识拓展】“队列”和“栈”都是一种特殊的线性表。之所以称之为“队列”,其形式如“排队”。要讲究“先来后到”,先进先出,后进后出。
4.D因为a是结构体变量,最后一次输入的值为结构体中的值,即a中的任何一个值都为0。
5.D解析:在C语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo\u3000C\u30002.0中,int占2个字节,但在VisualC++6.0(VC6可以用做C语言编译
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全设施怎样管理制度
- 学校河流养护管理制度
- 安全生产药物管理制度
- 学校员工外出管理制度
- 安全库存流程管理制度
- 定期清洁酒店管理制度
- 外贸行业安全管理制度
- 天津智能停车管理制度
- 场馆舞台装台管理制度
- 一般固体废弃物回填利用项目可行性研究报告(参考模板)
- SCMP练习试卷附答案(一)
- 安保工作的多元化发展
- 中学生体育运动损伤的预防和处理
- 经皮内镜下胃(空肠)造口术临床应用中国专家共识(2024版)解读
- 2025年浙江省高中学业水平考试语文试卷试题(含答案详解)
- 《医疗器械召回管理办法》培训2024
- 围术期肺部超声的应用
- 英语导游服务能力(现场200问+)
- 中小学-珍爱生命 远离毒品-课件
- 2024年四川省广元市中考物理试题(含解析)
- 2023-2024学年江苏省苏州市高二下学期6月期末物理试题(解析版)
评论
0/150
提交评论