版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年江苏省盐城市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是()。A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c
2.有下列程序:
程序执行后的输出结果是()。
A.6,5,4,4,5,6,
B.1,2,3,4,5,6,
C.4,5,6,4,5,6,
D.1,2,3,6,5,4,
3.在说明语句:int*f();中,标识符f代表的是
A.一个用于指向整型数据的指针变量
B.一个用于指向一维数组的行指针
C.一个用于指向函数的指针变量
D.一个返回值为指针型的函数名
4.设有如下定义和语句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的数据为58192765190,其中第1个数据代表的是它后面数据的个数。若文件已正确打开,则以下程序段中能将文件的最后5个数据依次正确读入数组data[0]~data[4]中的是()。
A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);
B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}
C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);
D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}
5.在链表中进行操作比在顺序表中进行操作效率高()。
A.顺序查找B.折半查找C.分块查找D.插入
6.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序运行后的输出结果是()。
A.3B.6C.8D.12
7.使用深度优先算法遍历下图,遍历的顺序为()A.ABCDEFGB.ABDCFEGC.ABDECFGD.ABCDFEG
8.设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。
A.5B.6C.7D.8
9.对n个元素的数组进行(),其平均时间复杂度和最坏情况下都为O(nlogn)。
A.希尔排序B.快速排序C.堆排序D.选择排序
10.若有以下的说明和语句,则在执行for语句后,’(*(pt+1)+2)表示的数组元素是()。intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];
A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]
11.排序方法中,从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为()。
A.希尔排序B.冒泡排序C.插入排序D.选择排序
12.一个函数返回值的类型是由()决定的。
A.return语句中表达式的类型B.定义函数时指定的函数类型C.在调用函数时临时指定D.调用函数的主调函数的类型
13.若有以下定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]
14.以下是if语句的基本形式:if
(表达式)语句,其中表达式A.A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式
15.以下关于结构化程序设计的叙述中正确的是()。
A.结构化程序使用goto语句会很便捷
B.在c语言中,程序的模块化是利用函数实现的
C.一个结构化程序必须同时由顺序、分支、循环三种结构组成
D.由三种基本结构构成的程序只能解决小规模的问题
16.以下叙述中正确的是()。
A.循环队列是队列的一种链式存储结构
B.循环队列是队列的一种顺序存储结构
C.循环队列中的队尾指针一定大于队头指针
D.循环队列中的队尾指针一定小于队头指针
17.可以判断一个有向图中是否含有回路的方法为()。
A.广度优先遍历B.深度优先遍历C.拓扑排序D.求最短路径
18.是哈希查找的冲突处理方法()。
A.求余法B.平均取中法C.二分法D.开放地址法
19.有以下函数定义:voidfun(intn,doubx){……}若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()。
A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfum(n,x);
20.现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。structnode{hardata;structnode*next;)*P,*q,*r;现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是()。A.q-:>next=r->next;p--:>next=r;rm:>next=q;
B.q-:>next=r;q->next=r->next;r->next=q;
C.q-:>next=r->next;r->next=q;p->next=r;
D.q-:>next=q;p->next=r;q->next=r->next;
二、2.填空题(20题)21.以下程序段的输出结果是【】。
main()
{inta=2,b=3,c=4;
a*=16+(b++)-(++c);
printf("%d",a);
}
22.与十进制数101等值的二进制数为【】。
23.若有以下程序:
main()
{int,p,a=5;
if(P=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
执行后输出结果是【】。
24.当运行以下程序时,输入abcd,程序的输出结果是()。insert(charstr[]){inti;i=strlen(str);while(i>0){str[2*i]=str[i];str[2*i-1]='*';i--;}printf("%s\n",str);}main(){charstr[40];scanf("%s\n",str);insert(str);}
25.下面程序运行后的输出结果是()。
#include<stdio.h>
main()
{inta[]={1,2,3,4,5,6},*k[3],i=1;
while(i<4)
{k[i-1]=&a[2*i-1];
printf("%d",*k[i-1]);
i++;
}
}
26.执行下列语句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
27.栈和队列通常采用的存储结构是【】。
28.当输入19、2时,下列程序的运行结果为【】;输入254、16时,则程序的运行结果是【】。
main()
{chardata_symbols[17]="0123456789abcdefghijklmnopqrstuvwxyz";
inti=0,t,subscript,data_converted[32];
longnumber;
while(1)
{scanf("%ld,%d",&number,&t);
if(number>=O&&t>=2&&t<=16)break;
}
do
{dataconverted[i++]=number%t;
number=number/t;
}
while(number!=0);
for(--i;i>=0;--i)
{subscript=data_converted[i];
printf("%c",data_symbols[subscript]);
}
printf("\n");
}
29.数据库系统中实现各种数据管理功能的核心软件是______。
30.阅读下面语句,则程序的执行结果是【】。
#include"stdio.h"
main()
{inta=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d,%d\n",a,b);
elseprintf("%d,%d\n",b,a);}
31.数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中,______给出了数据库物理存储结构与物理存取方法。
32.软件危机的核心问题是【】和软件开发效率低。
33.下列程序的运行结果是【】。
#include<stdio.h>
main()
{unionEXAMPLE
{struct
{intx;inty;}in;
inta;
intb;
}e;
e.a=1;e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("%d,%d\n",e.in.x,e.in.y);
}
34.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。
35.数据流图的类型有【】和事务型。
36.以下程序的输出结果是______。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.Of\n",fun((int)fun(a+c,b),a-c));}
37.下列程序段的输出结果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
38.若有定义语句:inta=5;,则表达式:a++的值是【】。
39.以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。
main()
{intx[10],a[9],i;
for(i=0;i<10;i++)scanf("%d",&x[i]);
for([11];i<10;i++)
a[i-1]=x[i]+[12];
for(i=0;i<9;i++)printf("%d",a[i]);
printf("");
}
40.四条语句:x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【】。
三、1.选择题(20题)41.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是()
A.控制流B.加工C.数据存储D.源和潭
42.有以下程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下选项中表达式的值为11的是()。
A.*pt->yB.pt->xC.++pt->xD.(pt++)->x
43.有以下程序main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66<回车>。则输出结果是
A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6
44.在Windows中,启动应用程序的正确方法是()
A.用鼠标双击该应用程序图标B.将该应用程序窗口最小化成图标C.将该应用程序窗口还原D.将鼠标指向该应用程序图标
45.以下与函数fseek(fp,0L,SEEK_SE乃有相同作用的是()。
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
46.设有二元关系R和三元关系S,下列运算中合法的是()。
A.RUSB.RNSC.R-SD.RXS
47.下列程序的输出结果是()。
main
{
doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3B.3.2C.0D.3.07
48.下列程序的输出结果是()。#include<stdio.h>intfun(intx){inta;if(x==0‖x==1)return3;elsea=x-fun(x-2);returna;}voidmain(){printf("%d",fun(7));}
A.2B.8C.9D.5
49.下列叙述中正确的是()。
A.线性链表中的各元素在存储空间中的位置必须是连续的
B.线性链表中的表头元素一定存储在其他元素的前面
C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面
D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的
50.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};printf("%d\n",strlen(p[4]));}执行后的输出结果是______。
A.2B.3C.4D.5
51.以下程序中与语句k=a>b?(b>c?1:0):0;功能等价的是
A.if((a>b)&&(b>c))k=1;elsek=0;
B.if((a>b)‖(b>c))k=1;elsek=0;
C.if(a<=b)k=0;elseif(b<=c)k=1;elsek=0;
D.if(a>b)k=1;elseif(b<c)k=1;
52.若有定义:inla=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为
A.1.4B.1C.2D.2
53.有一个数值152,它与十六进制数6A相等,那么该数值是()
A.二进制数B.八进制C.十进制数D.四进制数
54.常采用的两种存储结构是()。
A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构
55.设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课SC(学号,课号,成绩),则表sc的关键字(键或码)为()。
A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩
56.下列叙述中,错误的一条是______。
A.已知i=3,执行语句k=(++i)+(++i)+(++i)后,k的值为15
B.逻辑表达式!(5>3)&&(2<4)的值为0
C.表达式'c'&&'d'||!(3+4)的值为1
D.整型、实型、字符型数据可以混合运算
57.设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)
58.下列对于软件测试的描述中正确的是()。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能多地发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
59.以下程序的输出结果是()。#include<stdio.h>main(){inta[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)s+=a[i][a[j][j]];printf("%d\n",s);}
A.3B.4C.1D.9
60.若有定义floata=25,b,*p=&b;,则下列对赋值语句*p=a;和p=&a;的正确解释为()。
A.两个语句都是将变量a的值赋予变量p
B.*p=a是使p指向变量a,而p=&a是将变量a的值赋予变量指针p
C.*p=a是将变量a的值赋予变量b,而p=&a是使p指向变量a
D.两个语句都是使p指向变量a
四、选择题(20题)61.以下叙述中错误的是()。
A.c语言是一种结构化程序设计语言
B.使用三种基本结构构成的程序只能解决简单问题
C.结构化程序设计提倡模块化的设计方法
D.结构化程序由顺序、分支、循环三种基本结构组成
62.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。
A.外模式B.内模式C.概念模式D.逻辑模式
63.
64.当执行下面的程序时,如果输入ABC,则输出结果是()。
#include<stdio.h>
#include<string.h>
voidmain()
{charss[10]="12345",
gets(ss);strcat(ss,"6789");
printf("%s\n",ss);
}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
65.下列程序的运行结果是()。
A.6B.7C.8D.9
66.
67.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()
A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程
68.以下程序的输出结果是()。voidprt(int*m.intn){inti;for(i=0;i<n;i++)m[i]++;)main{inta[]={1,2,3,4,5),i;prt(a,5);for(i=0;i<5;i++)printf(“%d,”,a[i]);)A.1,2,3,4,5B.2,3,4,5,6C.3,4,5,6,7D.2,3,4,5,1
69.下列叙述中正确的是()。
A.只能在循环体内和switch语句体内使用break语句
B.eotinue语句的作用是结束整个循环的执行
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用got0语句
70.
71.
72.若有语句:Char*line[5];,以下叙述中正确的是()。
A.定义line是一个数组,每个数组元素是一个基类型为Char的指针变量
B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C.定义line是一个指针数组,语句中的*号称为间址运算符
D.定义line是一个指向字符型函数的指针
73.下列C语言用户标识符中,不属于合法标识符的是
A._1B.d3_7C._a7D.m—n
74.(57)下列叙述中,不属于软件需求规格说明书的作用的是______。
A.便于用户、开发人员进行理解和交流
B.反映出用户问题的结构,可以作为软件开发工作的基础和依据
C.作为确认测试和验收的依据
D.便于开发人员进行需求分析
75.
76.
77.以下程序段中,不能正确给字符串赋值(编译时系统会提示错误)的是:()
78.下列叙述中错误的是()。
A.列表框和组合框都有List属性
B.列表框有Selected属性,而组合框没有
C.列表框和组合框都有Style属性
D.组合框有Text属性,而列表框没有
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.已知一个数列从0项开始的前3项为0,0,1,以后的各项都是其相邻的前3项之和。下列给定的程序中,函数proc的功能是:计算并输出该数列前n项的和sum。n的值通过形参传人。例如,当n=20时,程序的输出结果应为42762.000000。请修改程序中的错误,使它能得到正确结果。注意:不要改动maiil函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doubleproc(intn){doublesum,s0,s1,s2,s;intk;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;//****found****for(k=4;k<n;k++)}{s=s0+s1+s2;sum+=S:s0=s1;s1=s2;//****found****s2=s;returnsum;}voidmain{intn;system("CLS");printf("InputN=");scanf("%d",&nJ;printf("%f\n",proc(n));}
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是根据以下公式求P的值,结果由函数值返回。m与n为两个正整数且要求m>n。例如:m=12,n=8时,运行结果为495.000000。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:
参考答案
1.D
2.D程序定义数组a,使用6个元素对其初始化,接着以写二进制方式打开文件d.dat。调用fwrite函数将a的6个元素逆序(654321)写入文件,接着调用rewind函数,将文件指针移动到文件开始位置。调用fread函数读入3个整数,逐个存放到a开始下标为3的3个位置,即a[3]=6,a[4]=5,a[5]=4,关闭文件。再次调用for循环输出a,结果为:1,2,3,6,5,4,。本题答案为D选项。
3.D解析:带回指针值的函数,其一般定义形式为:
类型标识符*函数名(参数表);
例如;int*f(x,y);
其中,f是函数名,调用它以后能得到一个指向整型数据的指针(地址),x,y是函数f的形参。在f的两侧分别为*运算符和()运算符,而()优先级高于*,因此f先与()结合,显然是函数形式。这个函数前面有一个*,表示此函数是指针型函数(函数值是指针)。前面的int表示返回的指针指向整型变量。
4.A由题意可知,文件abc.txt中存放了6个整数。其中第1个表示后续数据的个数。要将最后5个数据读入数组data中,需要读取数据的个数为5,所以首先调用fscanf函数,将5读入整型变量n中;接着通过for循环,i分别取值0~n-1,调用fscanf函数将n个整数读入data[0]~data[n-1]中。故本题答案为A选项。
5.D
6.Bfun函数的功能是获取2个数的平均值,注意平均值是整型数,小数会被截断。调用函数“fun(2*4,fun(5,6))”相当于调用函数“fun(8,5)”,平均值是6。故本题答案为B选项。
7.C
8.A:在一个无向图G中,若从顶点Vi到顶点Vj有路径相连,则称Vi和Vj是连通的。连通图是指任意两个结点之间都有一个路径相连。6个节点的无向图,至少要5个边才能确保是任意两个节点之间都有路径相连。下图是一种可能的连接方式:故本题选A。
9.C
10.C从for循环可知pt是指向行的首地址的指针变量,因此由指针的表示方法可知:*(*(pt+1)+2)=pt[1][2]=t[1][2]。
11.C
12.B
13.D本题考查如何引用数组元素的地址。选项A)中,p5引用的是af51的地址,而数组a只有5个元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用错误;选项B)中,*a1指的是将数组a的第一个元素加1;选项C)中,这种引用方式错误;选项D)中,&a[0]引用的是数组的首地址。
14.D
15.B滥用90t0语句将使程序的流程毫无规律,可读性差,对于初学者来说尽量不要使用,所以A错误。—个结构化程序可以包含顺序、分支、循环结构中的一种或多种,所以C错误。由三种基本结构构成的程序可以解决任何复杂的问题,所以D错误。
16.B在实际应用中,队列的顺序存储结构一般采用循环队列的形式。当循环队列为满或者为空时,队尾指针=队头指针。本题答案为B选项。
17.C
18.D
19.C解析:选项A中应将y和m前面的函数的类型说明符去掉,故选项A不正确;选项B中函数传了2个参数,其中一个为整型—个为浮点型,而fun()函数在定义时声明的2个参数,一个为整型一个为双精度型,其参数类型不一致,故选项B不正确;选项D在调用函数时,不应该再声明其返回类型,故选项D不正确。所以,4个选项中选项C符合题意.
20.D由题目中线性链表的定义可知,要将q和r所指的结点交换前后位置,只要使q指向r的后一个结点,P指向r结点,r指向q结点即可。而在选项D中,r->next=q,这时r指向的节点为q;p->next=r,这时P指向的节点为r;q->next:r->next,因为r节点已经指向q,所以执行这个语句后q又指向q,所以选项D不正确。
21.2828解析:a*=16+(b++)-(++c)等价于a=a*(16+(b++)-(++c)),b++的值为3;++c的值为5,请注意前缀++和后缀++的用法。
22.1100101
23.11解析:首先计算if语句后面的表达式,根据运算符的优先级可知,先算“a!=0”,该值为1,再把1赋值给p,结果为1(真),执行其后的printf语句,输出的值为1。
24.a*b*c*d*a*b*c*d*解析:本题考查的是函数与一个简单的算法结合在一起的应用。首先定义一个int型变量来存放字符串str的长度,执行while条件语句。通过分析可知,字符串2*i项的值可由第i项的值得到;第2*i-1项直接赋值为*,i递减,如此反复直到不满足i>0的条件时,输出运行后的字符串。
25.246
26.150150解析:本题先给变量x赋初始值100,然后将指针p指向变量x,*p是取指针p所指地址的内容,即100,所以x=100+50=150。
27.链式存储和顺序存储链式存储和顺序存储
28.10011fe
29.数据库管理系统数据库管理系统解析:数据库管理系统是数据库的管理机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。
30.101,0解析:与运算两边的语句必须同时为真时,结果才为真,当执行完if((++a<0)&&!(b--<=0))时,a,b的值已经发生了变化。
31.内模式内模式解析:内模式又称为物理模式,它给出?数据库物理存储结构与物理存取方法。
32.软件质量差软件质量差解析:大约在20世纪60年代末人们在计算机软件的开发和维护过程中,遇到了一系列严重问题,从而认识到软件危机的存在。软件危机的核心问题是软件开发的质量太差和软件系统开发的效率太低。
33.484,8解析:C语言规定,共用体中各个成员变量在内存中占用同一段内存单元,即e.in.x、e.a、e.b占用同一段内存单元。执行语句e.b=2;后,e.in.x=e.a=e.b=2;执行语句e.in.x=e.a*e.b;时,e.a的值为2,e.b的值为2,所以运算得出e.in.x的值为4;执行语句e.in.y=e.a+e.b时,由于e.in.x和e.a、e.b占用的是同一段内存单元,所以此时的e.a、e.b的值为4,因此运算得出e.in.y的值为4+4=8。程序最后的输出结果为4,8。
34.1对多(或1:N)1对多(或1:N)
35.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。
36.本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符,将一个表达式转换成所需类型。如:(double)a是将a转换成double类型;(int)(x+y)是将x+y的值转换成整型。
本题可按部就班地逐步运算:
fun((int)fun(a+c,b),a-c)
fun((int)fun(10,5),2-8)
fun((int)15.000000,-6)
fun(15,-6)
9
37.HelloHello解析:字符串中,数值0或符号'/0'表示字符串的结束。本题中,b[5]被赋了0值,表明字符串b的第六个字符就是结束标志。因此,只输出前五个字符,即Hello。
38.55解析:a++的含义是在使用a值以后,使a值加1,所以a++的值为5。
39.i=1x[i-1]i=1\r\nx[i-1]解析:对于10个数,相邻的两个数相加取和,总共要进行9次加法运算,所以空11处应填入i=1。相邻的两个数相加取和,放在数组a中,x[0]与x[1]的和存放在a[0]中,所以空12处应填入x[i-1]。
40.x+=1;x+=1;解析:题面中的四条语句的作用是使x的值加1,在C中有多种方法可以对变量进行加1操作,这里可以利用C的复合赋值运算符+=实现,本题答案为x+=1;。
41.A解析:数据流图包括4个方面,即加工(转换)(输入数据经加工变换产生输出)、数据流(沿箭头方向传送数据的通道,一般在旁边标注数据流名)、存储文件(数据源)(表示处理过程中存放各种数据的文件)、源和潭(表示系统和环境的接口,属系统之外的实体)。不包括选项中的控制流。
42.C解析:要计算一个复杂的表达式时,首先要弄明白表达式中所有运算符的优先级与结合性,本题中所涉及的运算符中,->的优先级最高,*和++的优先级相同,但其结合性为从右至左。所以选项A等价于*pt->y)也就是pt所指向的结构体的成员指针变量y所指向的内容。从前面的程序段不难看出,pt指向结构体数组c的首地址,也就是指向它的第1个元素,在它的第1个元素中,指针变量y又被初始化为指向控型数组a的首地址,即指向数组a的第1个元素。故选项A中的表达式的值为a[0],也就是1。选项B中表达式的值就是c[0].x,即10。根据优先级和结合性,选项C中的表达式等价于++(pt->x),由于是前缀++,所以整个表达式的值为pt->x的值加1,故为11。而选项D中,++是后缀形式,所以(pt++)的值还是pt的原值,即等于pt->x的值10。故应该选择C。
43.A解析:主函数中首先定义了4个字符变量a、b、cd,然后通过scanf()函数输入a、b、c、d输入中a和b是按字符格式c输入的,c和d是按整型符号d输入的。在看下面的printf()函数中,要求a、b、c、d都按字符输出,故a和b原样输出为6、5,c和d将把与其ASCII码对应的字符输出,65和66的ASCII码对应字符A和B,故最后的输出为6,5,A,B。所以,4个选项中选项A符合愿意。
44.A
45.D解析:题目中fseek(fp,0L,SEEK_SET)的作用将文件指针定位到文件开始。feof(fp)的作用是判断文件指针是否已到文件结尾,因此选项A不对。ftell(fp)的作用是获取当前文件指针的位置,因此选项B不对。fgetc(fp)的作用是从文件中读取一个字节,因此选项C不对。rewind(fp)的作用是将文件指针重定位到文件开头,所以应该选择D。
46.D解析:本题中,关系R与S的表格框架不同,R是二元关系,S是三元关系。而在并∪、交∩、差-运算中,都要求参加运算的两个关系具有相同的属性名表,其运算结果也与它们具有相同的属性名,即表框架相同。两个不同框架的关系可以做笛卡尔积×运算。
47.C解析:本题中,程序先执行语句x=1.2;,根据赋值运算的类型转换规则,先将double型的常量1.2转换为int型,即取整为1,然后将1赋值给变量x。接下来执行语句y=(x+3.8)/5.0;根据运算符的优先级,先计算小括号内,再计算除法,最后执行赋值运算。小括号内的运算过程:先将整型变量x的值1转换为double型1.0,然后与3.8进行加法运算,得到中间结果4.8。接着进行除法运算4.8/5.0,其结果小于1.0,这里没有必要计算出精确值,因为接着进行赋值运算,赋值号左边的变量y的类型为整型,于是对这个小于1.0的中间结果进行取整,结果为0,于是变量y的值为0,d*y的值也为0。注意:格式输出语句printf的使用。
48.A解析:本题考查函数的递归调用。
在函数递归调用时,fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→fun3:a=3-fun(1)→fun(1):a=3,反推回去fun(3):a=3-3=0→fun(5):a=5-0=5→fun(7):a=7-5=2,最后的计算结果为2。
49.D解析:性表的链式存储结构中,各数据结点的存储序号不连续,且各结点在存储空间中的位置关系与逻辑关系也不一致。性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的。所以,选项D正确。
50.A解析:本题中p[4]='cd',所以strlen(p[4])=2。
51.A解析:三目运算表达式的规则为如果“?”前面的表达式的值为真,则取“:”前的表达式的值,否则,取“:”后面表达式的值。分析题目中给出的表达式可知,如果a>b和b>c同时成立,k=1,否则k=0。
52.B解析:在表达式中根据运算的结合性和运算符的优先级,首先计算的是a/b(8/5=1),再将1+0.4赋值给C,由于C为整型变量所以要将1.4转换为整型,即舍弃小数位(c的值变为1)。所以,4个选项中B符合题意。
53.B
54.AA。【解析】线性表的存储通常分为两种存储结构:顺序存储结构和链式存储结构。
\n
55.C学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C项。
56.A
57.A
58.C解析:关于软件测试的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。本题答案为C。
59.B解析:当外层循环为i时,内层循环i只能取j=i,所以s+=a[i][a[j][j]],其实就是s+=a[i][a[i][i]],当i=0时,s=s+a[0][a[01[0]]=s+a[0][0]=1,当i=1时,s=s+a[1][a[1][1]1=s+a[1][1]=1+1=2,当i=2时,s=s+a[2][a[2][2]]=s+a[2][2]=2+2=4。
60.C解析:“p”是指针变量,指向一个地址:“*p”,为p指针所指向地址的内容。
61.BC语言是一种结构化程序设计语言。结构化程序设计是以模块化设计为中心的,有三种基本结构:顺序、选择和循环结构。各模块相互独立,因而可将原来较为复杂的问题化简为一系列简单模块并充分利用现有模块搭建新系统,提高程序的重用性和可维护性。
62.B数据库有三层模式结构,逻辑模式是数据的全局逻辑结构的描述,外模式也称为子模式,是局部数据的逻辑结构描述,而内模式也称为存储模式,是数据库物理存储结构和存取方法的描述。
63.A
64.Astrcat函数,gets函数;首先将输入的字符串赋给ss,然后将字符串“6789”连接到ss得后面
65.Cif…else语句的执行过程如下,首先计算if后面一对圆括号内表达式的值,若表达式的值为非0,执行if子句,然后跳过else子句,去执行if语句后的下一条语句;若表达式的值为0,跳过if子句,去执行else子句,接着去执行if语句后的下一条语句。C语言的语法规定,else子句总是与前面最近的不带else的if匹配,与书写格式无关,本题目的后一个if-else相当于嵌套在第一个if子句里,相当于X<y&&y<0时,z=0;当X<y&&y>=0时,z=z+1。
66.D
67.B软件设计包括软件的结构设计、数据接口设计和过程设计。其中软件结构设计主要包括系统由哪些子系统构成,以及这些子系统之间的关系是怎样的,并将这些内容编写成文档;数据接口设计的任务是为每个子系统设计其与其他子系统间的接口,并编写成文档,这个接口要是一个无二义的接口,不需要子系统的操作知识就可以使用;过程设计是指系统结构部件转换成软件的过程描述。
68.B函数调用时,prt函数的作用是为使m数组中的数自增1,因此数组下标从0开始,每个元素都自加1。
69.A本题考查循环跳出的知识点:①break语句可以出现在switch循环体内及语句体内,它的作用是跳出循环体,不能用于其他的语句;②continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,而接着判定循环条件是否成立,确定下一次循环是否继续执行,执行contiune语句不会使整介循环终止;③循环体内使用break语句会使循环提前终止;④从多层循环嵌套中退出时,可以使用90t0语句或者break语句。
70.B
71.C
72.A解析:理解复杂定义要掌握两点:一、右结合原则.本题中的定义char*line[5];等价于char*(line[5]);;二、自外向内分解成typedef语句。char*(line[5]);等价于typedefchar*A;Aline[5];其中A被typedef定义成字符指针的别名,然后line被定义成A的一维数组,即字符指针的一维数组。再来看看行指针的定义char(*line)[5];它应该被分解成typedefcharB[5];B*line;其中B被定义成包含5个元素的一维字符数组,然后line被定义成指向B的指针,即指向包含5个元素的一维字符数组的指针。所以两者切不可混淆了,后者的括号不能省略。故本题应该选择A。
73.D所谓标识符,是指常量、变量、语句标号以及用户自定义函数的名称。C语言规定标识符只能由字母、数字、下画线组成,并且只能以字母、下画线开头。一些标识符被赋予特定的含义就叫做保留字(或称为关键字)。
选项D“m—n”中含有非法字符“—”。
74.D
75.C
76.B
77.C字符串赋初值对于字符数组只能在定义时进行。因此选项A的赋初值是正确的。因为数组名是一个固定指针,不能再让其指向其他内存单元。选项C的赋初值是错误的。但选项D是用strcpy函数将字符串“abcdefg”复制到S数组的内存中,是正确的。选项B的tel=”abcdefg”,是利用字符串的长度决定数组长度(串长加1)并同时赋初值。对于字符指针,可以在定义时就指向别的内存单元,*s=t,也是正确的。所以只有C项不正确。
78.BB。【解析】组合框和列表框都没有selected属性。
79.Afor循环语句嵌套一个switch语句;i=1,i%5=1,执行case1,遇到break退出switch语句,i=2,i%5=2,执行case2,i=3,i%5=3,执行default语句,然后执行case2……
80.C
81.(1)错误:for(k=4;k<n;k++)正确:for(k=4;k<=11;k++)(2)错误:s2=S;正确:s2=s;)【解析】题目中要求计算数列前n项的和,包括第n项,因此“for(k=4;k<n;k++)”中的“k<n”应改为“k<=n”;根据C语言的语法规则,for循环体中的多条语句必须在大括号“{”和“}”之间,因此,要在语句s2=s;后加上)。
82.1floatfun(intm,fintn){Floatp1=1,p2=1,p3=1;inti;for(i=1;i<=m;i++)pi*=i;for(i=l;i<=n;i++)p2*=i;for(i=l;i<=(m-n);i++)p3*=i;returnpi/(p2*p3);本题考查循环的使用。通过3个for循环分别计算阶乘。其中p1=m!,p2=n!,p3=(m-n)!。2022年江苏省盐城市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是()。A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c
2.有下列程序:
程序执行后的输出结果是()。
A.6,5,4,4,5,6,
B.1,2,3,4,5,6,
C.4,5,6,4,5,6,
D.1,2,3,6,5,4,
3.在说明语句:int*f();中,标识符f代表的是
A.一个用于指向整型数据的指针变量
B.一个用于指向一维数组的行指针
C.一个用于指向函数的指针变量
D.一个返回值为指针型的函数名
4.设有如下定义和语句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的数据为58192765190,其中第1个数据代表的是它后面数据的个数。若文件已正确打开,则以下程序段中能将文件的最后5个数据依次正确读入数组data[0]~data[4]中的是()。
A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);
B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}
C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);
D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}
5.在链表中进行操作比在顺序表中进行操作效率高()。
A.顺序查找B.折半查找C.分块查找D.插入
6.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序运行后的输出结果是()。
A.3B.6C.8D.12
7.使用深度优先算法遍历下图,遍历的顺序为()A.ABCDEFGB.ABDCFEGC.ABDECFGD.ABCDFEG
8.设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。
A.5B.6C.7D.8
9.对n个元素的数组进行(),其平均时间复杂度和最坏情况下都为O(nlogn)。
A.希尔排序B.快速排序C.堆排序D.选择排序
10.若有以下的说明和语句,则在执行for语句后,’(*(pt+1)+2)表示的数组元素是()。intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];
A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]
11.排序方法中,从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为()。
A.希尔排序B.冒泡排序C.插入排序D.选择排序
12.一个函数返回值的类型是由()决定的。
A.return语句中表达式的类型B.定义函数时指定的函数类型C.在调用函数时临时指定D.调用函数的主调函数的类型
13.若有以下定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]
14.以下是if语句的基本形式:if
(表达式)语句,其中表达式A.A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式
15.以下关于结构化程序设计的叙述中正确的是()。
A.结构化程序使用goto语句会很便捷
B.在c语言中,程序的模块化是利用函数实现的
C.一个结构化程序必须同时由顺序、分支、循环三种结构组成
D.由三种基本结构构成的程序只能解决小规模的问题
16.以下叙述中正确的是()。
A.循环队列是队列的一种链式存储结构
B.循环队列是队列的一种顺序存储结构
C.循环队列中的队尾指针一定大于队头指针
D.循环队列中的队尾指针一定小于队头指针
17.可以判断一个有向图中是否含有回路的方法为()。
A.广度优先遍历B.深度优先遍历C.拓扑排序D.求最短路径
18.是哈希查找的冲突处理方法()。
A.求余法B.平均取中法C.二分法D.开放地址法
19.有以下函数定义:voidfun(intn,doubx){……}若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()。
A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfum(n,x);
20.现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。structnode{hardata;structnode*next;)*P,*q,*r;现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是()。A.q-:>next=r->next;p--:>next=r;rm:>next=q;
B.q-:>next=r;q->next=r->next;r->next=q;
C.q-:>next=r->next;r->next=q;p->next=r;
D.q-:>next=q;p->next=r;q->next=r->next;
二、2.填空题(20题)21.以下程序段的输出结果是【】。
main()
{inta=2,b=3,c=4;
a*=16+(b++)-(++c);
printf("%d",a);
}
22.与十进制数101等值的二进制数为【】。
23.若有以下程序:
main()
{int,p,a=5;
if(P=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
执行后输出结果是【】。
24.当运行以下程序时,输入abcd,程序的输出结果是()。insert(charstr[]){inti;i=strlen(str);while(i>0){str[2*i]=str[i];str[2*i-1]='*';i--;}printf("%s\n",str);}main(){charstr[40];scanf("%s\n",str);insert(str);}
25.下面程序运行后的输出结果是()。
#include<stdio.h>
main()
{inta[]={1,2,3,4,5,6},*k[3],i=1;
while(i<4)
{k[i-1]=&a[2*i-1];
printf("%d",*k[i-1]);
i++;
}
}
26.执行下列语句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
27.栈和队列通常采用的存储结构是【】。
28.当输入19、2时,下列程序的运行结果为【】;输入254、16时,则程序的运行结果是【】。
main()
{chardata_symbols[17]="0123456789abcdefghijklmnopqrstuvwxyz";
inti=0,t,subscript,data_converted[32];
longnumber;
while(1)
{scanf("%ld,%d",&number,&t);
if(number>=O&&t>=2&&t<=16)break;
}
do
{dataconverted[i++]=number%t;
number=number/t;
}
while(number!=0);
for(--i;i>=0;--i)
{subscript=data_converted[i];
printf("%c",data_symbols[subscript]);
}
printf("\n");
}
29.数据库系统中实现各种数据管理功能的核心软件是______。
30.阅读下面语句,则程序的执行结果是【】。
#include"stdio.h"
main()
{inta=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d,%d\n",a,b);
elseprintf("%d,%d\n",b,a);}
31.数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中,______给出了数据库物理存储结构与物理存取方法。
32.软件危机的核心问题是【】和软件开发效率低。
33.下列程序的运行结果是【】。
#include<stdio.h>
main()
{unionEXAMPLE
{struct
{intx;inty;}in;
inta;
intb;
}e;
e.a=1;e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("%d,%d\n",e.in.x,e.in.y);
}
34.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。
35.数据流图的类型有【】和事务型。
36.以下程序的输出结果是______。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.Of\n",fun((int)fun(a+c,b),a-c));}
37.下列程序段的输出结果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
38.若有定义语句:inta=5;,则表达式:a++的值是【】。
39.以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。
main()
{intx[10],a[9],i;
for(i=0;i<10;i++)scanf("%d",&x[i]);
for([11];i<10;i++)
a[i-1]=x[i]+[12];
for(i=0;i<9;i++)printf("%d",a[i]);
printf("");
}
40.四条语句:x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【】。
三、1.选择题(20题)41.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是()
A.控制流B.加工C.数据存储D.源和潭
42.有以下程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下选项中表达式的值为11的是()。
A.*pt->yB.pt->xC.++pt->xD.(pt++)->x
43.有以下程序main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66<回车>。则输出结果是
A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6
44.在Windows中,启动应用程序的正确方法是()
A.用鼠标双击该应用程序图标B.将该应用程序窗口最小化成图标C.将该应用程序窗口还原D.将鼠标指向该应用程序图标
45.以下与函数fseek(fp,0L,SEEK_SE乃有相同作用的是()。
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
46.设有二元关系R和三元关系S,下列运算中合法的是()。
A.RUSB.RNSC.R-SD.RXS
47.下列程序的输出结果是()。
main
{
doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3B.3.2C.0D.3.07
48.下列程序的输出结果是()。#include<stdio.h>intfun(intx){inta;if(x==0‖x==1)return3;elsea=x-fun(x-2);returna;}voidmain(){printf("%d",fun(7));}
A.2B.8C.9D.5
49.下列叙述中正确的是()。
A.线性链表中的各元素在存储空间中的位置必须是连续的
B.线性链表中的表头元素一定存储在其他元素的前面
C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面
D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的
50.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};printf("%d\n",strlen(p[4]));}执行后的输出结果是______。
A.2B.3C.4D.5
51.以下程序中与语句k=a>b?(b>c?1:0):0;功能等价的是
A.if((a>b)&&(b>c))k=1;elsek=0;
B.if((a>b)‖(b>c))k=1;elsek=0;
C.if(a<=b)k=0;elseif(b<=c)k=1;elsek=0;
D.if(a>b)k=1;elseif(b<c)k=1;
52.若有定义:inla=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为
A.1.4B.1C.2D.2
53.有一个数值152,它与十六进制数6A相等,那么该数值是()
A.二进制数B.八进制C.十进制数D.四进制数
54.常采用的两种存储结构是()。
A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构
55.设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课SC(学号,课号,成绩),则表sc的关键字(键或码)为()。
A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩
56.下列叙述中,错误的一条是______。
A.已知i=3,执行语句k=(++i)+(++i)+(++i)后,k的值为15
B.逻辑表达式!(5>3)&&(2<4)的值为0
C.表达式'c'&&'d'||!(3+4)的值为1
D.整型、实型、字符型数据可以混合运算
57.设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)
58.下列对于软件测试的描述中正确的是()。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能多地发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
59.以下程序的输出结果是()。#include<stdio.h>main(){inta[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)s+=a[i][a[j][j]];printf("%d\n",s);}
A.3B.4C.1D.9
60.若有定义floata=25,b,*p=&b;,则下列对赋值语句*p=a;和p=&a;的正确解释为()。
A.两个语句都是将变量a的值赋予变量p
B.*p=a是使p指向变量a,而p=&a是将变量a的值赋予变量指针p
C.*p=a是将变量a的值赋予变量b,而p=&a是使p指向变量a
D.两个语句都是使p指向变量a
四、选择题(20题)61.以下叙述中错误的是()。
A.c语言是一种结构化程序设计语言
B.使用三种基本结构构成的程序只能解决简单问题
C.结构化程序设计提倡模块化的设计方法
D.结构化程序由顺序、分支、循环三种基本结构组成
62.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。
A.外模式B.内模式C.概念模式D.逻辑模式
63.
64.当执行下面的程序时,如果输入ABC,则输出结果是()。
#include<stdio.h>
#include<string.h>
voidmain()
{charss[10]="12345",
gets(ss);strcat(ss,"6789");
printf("%s\n",ss);
}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
65.下列程序的运行结果是()。
A.6B.7C.8D.9
66.
67.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()
A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程
68.以下程序的输出结果是()。voidprt(int*m.intn){inti;for(i=0;i<n;i++)m[i]++;)main{inta[]={1,2,3,4,5),i;prt(a,5);for(i=0;i<5;i++)printf(“%d,”,a[i]);)A.1,2,3,4,5B.2,3,4,5,6C.3,4,5,6,7D.2,3,4,5,1
69.下列叙述中正确的是()。
A.只能在循环体内和switch语句体内使用break语句
B.eotinue语句的作用是结束整个循环的执行
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用got0语句
70.
71.
72.若有语句:Char*line[5];,以下叙述中正确的是()。
A.定义line是一个数组,每个数组元素是一个基类型为Char的指针变量
B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C.定义line是一个指针数组,语句中的*号称为间址运算符
D.定义line是一个指向字符型函数的指针
73.下列C语言用户标识符中,不属于合法标识符的是
A._1B.d3_7C._a7D.m—n
74.(57)下列叙述中,不属于软件需求规格说明书的作用的是______。
A.便于用户、开发人员进行理解和交流
B.反映出用户问题的结构,可以作为软件开发工作的基础和依据
C.作为确认测试和验收的依据
D.便于开发人员进行需求分析
75.
76.
77.以下程序段中,不能正确给字符串赋值(编译时系统会提示错误)的是:()
78.下列叙述中错误的是()。
A.列表框和组合框都有List属性
B.列表框有Selected属性,而组合框没有
C.列表框和组合框都有Style属性
D.组合框有Text属性,而列表框没有
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.已知一个数列从0项开始的前3项为0,0,1,以后的各项都是其相邻的前3项之和。下列给定的程序中,函数proc的功能是:计算并输出该数列前n项的和sum。n的值通过形参传人。例如,当n=20时,程序的输出结果应为42762.000000。请修改程序中的错误,使它能得到正确结果。注意:不要改动maiil函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doubleproc(intn){doublesum,s0,s1,s2,s;intk;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;//****found****for(k=4;k<n;k++)}{s=s0+s1+s2;sum+=S:s0=s1;s1=s2;//****found****s2=s;returnsum;}voidmain{intn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年航天建设加盟合作协议
- 2026年地产施工供应链金融协议
- 村委会民兵营工作制度
- 村屯秸秆禁烧工作制度
- 预算业务管理工作制度
- 预防迟到早退工作制度
- 食品原料采购工作制度
- 麻精药品运输工作制度
- 德州市武城县2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- 阿克苏地区阿克苏市2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- 2026年1月浙江省高考(首考)历史试题(含答案)
- 鞋厂介绍教学课件
- 雀斑激光治疗课件
- 铁死亡课件教学课件
- 剑突下纵隔肿瘤切除术
- 补钙补维生素课件
- 老年高血压跌倒风险评估与预防方案
- 青光眼的治疗课件
- 2025年内蒙古行政执法考试试题及答案
- 沙石代理授权合同范本
- 驾驶舱交流障碍对飞行安全的影响
评论
0/150
提交评论