




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年广东省汕尾市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.以下程序是用来计算两个非负数之间的最大公约数:我们假设x,y中最大的那个数的长度为n,基本运算时间复杂度为O(1),那么该程序的时间复杂度为()A.O(1)B.O(logn)C.O(n)D.O(n^2)
2.设有程序段:intk=12:while(k=1)k=k-1:则下列描述中正确的是()。
A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次
3.在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是A.并B.交C.投影D.笛卡儿乘积
4.栈和队列的共同点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点
5.现有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}则程序的输出结果为
A.21B.78C.23D.28
6.有以下程序
#include<stdio.h>
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是A.A.1267B.1256C.1278D.1245
7.如有inta=11;则表达式(a++*1/3)的值是()。
A.0B.3C.4D.12
8.以下一维数组a正确的定义是()
A.inta(5)B.intn=5,a[n]C.inta[SZ]其中SZ为符号常量D.inta{5}
9.将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是()。
A.nB.2n-1C.2nD.n-1
10.已知shortint类型变量占用两个字节,若有定义:shortintx[10]={0,2,4};,则数组x在内存中所占字节数是()。
A.3B.6C.10D.20
11.求2n个数中的最大值和最小值,最少的比较次数是()
A.4n/3B.2n-2C.3n-2D.3n/2
12.有三个关系R、s和T如下:
由关系R和s通过运算得到关系T,则所使用的运算为()。
A.并B.自然连接C.笛卡尔积D.交
13.设变量已正确定义,则以下能正确计算f=n!的程序是()。A.f=0:for(i=1;i<=n;i++)f*=i:
B.F=1:for(i=1;i<2n;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:
14.有定义语句:inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;
B.if(a<3)x=3;elseif(b<a)x=2;elsex=1;
C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;
D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;
15.链表不具备的特点是()。
A.可随机访问任一结点B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与其长度成正比
16.
17.有以下程序:#include<stdio.h>main(){charb[]=“happynewyear”,k;for(k=0;b[k];k++) printf(“%c”,b[k]-‘a’+‘A’);}程序运行后的输出结果是()。
A.hAppynewyeArB.HappynewyearC.HAPPYNEWYEARD.HaPPYNEWYEaR
18.有以下程序:#includeMain(){Intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;Elsey+=3;print("%d\n",y);}程序运行后的输出结果是()。A.2B.1C.0D.3
19.有以下程序:#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){ case1: switch(y) { case0:a++;break; case1:b++;break; } case2:a++;b++;break; case3:a++;b++;}printf(“a=%d,b=%d\n”,a,b);}程序的运行结果是()。
A.a=2,b=2B.a=2,b=1C.a=1,b=1D.a=1,b=0
20.串的长度是______。A.A.串中不同字符的个数
B.串中不同字母的个数
C.串中所含字符的个数且字符个数大于零
D.串中所含字符的个数
二、2.填空题(20题)21.软件的可移植性是用来衡量软件【】的重要尺度之一。
22.以下程序的功能是将字符串s中的数字字符放人d数组中,最后输出d中的字符串。例如,输入字符串abc123edf456gh,执行程序后输出123456。请填空。
#include<stdio.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;)
d[j]='\0';
puts(D);
}
23.以下程序的运行结果是______。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wbt");
fwtite(a,sizeof(int),5,fp);
fwlite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i
24.源程序文档化要求程序应加注释。注释一般分为序言性注释和【】注释。
25.某二叉树中度为2的节点有18个,则该二叉树中有()个叶子节点。
26.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【】。
27.在两种基本测试方法中,【】测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。
28.问题处理方案的正确而完整的描述称为______。
29.下列循环的循环次数是______。
intk=2;
while(k=0)
printf["%d",k);
k--;
printf("\n");
30.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。
31.下面程序的运行结果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
32.有以下程序:
#definef(x)x*x
main()
{inti;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
执行后的输出结果是【】。
33.常用的黑箱测试有等价类划分法、【】和错误推测法3种。
34.表达式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的数据类型为______。
35.若x和a均是int型变量,则计算完x=(a=4,6*2)后的x值为______。
36.一般来说,算法可以用顺序、选择和______三种基本控制结构组合而成。
37.分析下列程序:
main()
{intx=1,y=0,a=0,b=0;
switch(a)
{case1:switch(b)
{case0:x++;
case1:y++;break;
}
case2:x++;y++;break;
}
printf("x=%d,y=%d\n",x,y);
}
运行程序的输出结果是______。
38.有以下程序:
voidf(inta[],inti,intj)
{intt;
if(i<j)
{t=a[i];a[i]=a[j];a[j]=t;
f(a,i+1,j-1);
}
}
main()
{inti,aa[5]={1,2,3,4,5};
f(aa,0,4);
for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");
}
执行后的输出结果是【】。
39.在深度为7的满二叉树中,度为2的结点个数为【】。
40.数据库设计分为以下六个设计阶段:需求分析阶段、【】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
三、1.选择题(20题)41.下面判断正确的是
A.char*a="china";等价于char*a;*a="china";
B.charstr[5]={"china"};等价于charstr[]={"china"};
C.char*s="china";等价于char*s;s="china";
D.charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc";
42.设有如下定义:intx=1,y=-1;则下列语句的输出结果是______。printf("%d\n",(x--&++y));
A.1B.0C.-1D.2
43.有以下程序main(){inta=3,b=4,c=5,d=2;if(a>B)if(b>C)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",D);}程序运行后的输出结果是
A.2B.3C.43D.44
44.请读程序:#include<stdio.h>f(intb[],intn){inti,r;r=l;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intxa[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}上面程序的输出结果是()
A.720B.120C.24D.6
45.对于长度为n的线性表,在最坏的情况下,下列各排序法所对应的比较次数中三确的是
A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2
46.c语言规定,在一个源程序中,main函数的位置()。
A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后
47.设有下面的程序段:chars[]="china";char*p;p=s;则下列叙述正确的是
A.s和p完全相同
B.数组s中的内容和指针变量p中的内容相同
C.s数组长度和p所指向的字符串长度相等
D.*p与s[0]相等
48.下列程序的运行结果是()。#include<stdio.h>main(){staticchara[]="Languagef",b[]="programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=8;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.angC.programD.有语法错
49.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是()
A.控制流B.加工C.数据存储D.源和潭
50.以下符合C语言语法的实犁常量是
A.1.2E0.5B.3.14159EC.5E-3D.E15
51.有下列二叉树,对此二叉树中序遍历的结果为()。
A.ABCDEFB.BDAECFC.ABDCEFD.ABCDFE
52.以下叙述中正确的是
A.用C程序实现的算法必须要有输入和输出操作
B.用C程序实现的算法可以没有输出但必须要有输入
C.用C程序实现的算法可以没有输入但必须要有输出
D.用C程序实现的算法可以既没有输入也没有输出
53.下列不是合法的C语言语句是()。
A.a=5B.{inti;i++;}C.;D.{;}
54.有以下程序:#include<stdlib.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);ptintf("%s%s\n",p,q);}若从键盘输入abcdef<回车>,则输出的结果是()。
A.defdefB.abcdefC.abcdD.dd
55.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转存到链表的各个结点中,请填空。#include<stdlib.h>stuctnode{chardata;struetnode*next;};stntctnode*CreatList(char*s){struetnode*h,*p,*q;h=(structnode*)malloc(sizeof(structnode));p=q=h;while(*s!='\0'){p=(structnode*)malloc(sizeof(structnode));p->data=()q->next=p;q=p;a++;p->next='\0';returnh;}main(){charstr[]="linklist";struetnode*head;head=CreatList(str);
A.*sB.sC.*s++D.(*s)++
56.下面程序的输出结果是()。main(){inti=1,p;p=f(i,++i);printf("%d",p);}intf(inta,intb){intC;if(a>b)C=1;elseif(a==b)C=0;elseC==-1;return(C);}
A.-1B.0C.1D.2
57.下列说法不正确的是()。
A.一个C语言源程序可以由一个函数组成也可以由多个函数组成
B.main()中的“()”是函数的参数部分,括号内可为空,但括号不能省略
C.C语言程序是以函数为基本单位的
D.在C语言程序中,注释行只能位于一条语句的后面
58.下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是
A.选择B.连接C.投影D.并
59.检查软件产品是否符合需求定义的过程称为()。
A.确认测试B.集成测试C.验证测试D.验收测试
60.函数fseek的正确调用形式是()。
A.fseek(位移量,起始点,文件类型指针);
B.fseek(文件类型指针,位移量,起始点);
C.fseek(文件类型指针,起始点,位移量);
D.fseek(起始点,位移量,文件类型指针);
四、选择题(20题)61.有以下程序程序运行后的输出结果是()
A.1,3,3B.1,3.2C.1,2,3D.3,2,1.
62.下列关于队列的叙述中正确的是()。A.在队列中只能插人数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表
63.设有定义:
64.有以下程序:
#include<stdio.h>
main()
{inta=-2,b=0;
while(a++++b);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是()。
A.1,3B.0,2C.0,3D.1,2
65.下列叙述中正确的是()。A.算法的效率只与问题的规模有关,而与数据的存储结构无关
B.算法的时间复杂度是指执行算法所需要的计算工作量
C.数据的逻辑结构与存储结构是一一对应的
D.算法的时间复杂度与空间复杂度一定相关
66.
67.在HTML页面中哪些部分能够插入JavaScript?
A.<body>部分
B.<head>部分
C.<body>部分和<head>部分均可
D.<title>部分
68.
69.设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是()。
A.n=(n*100+0.5)/100.0
B.m=n*100+0.5,n=m/100.0
C.n=n*100+0.5/100.0
D.n=(n/100+0.5)*100.0
70.有下列程序:
main
{inti,s=0,t[]={1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序执行后的输出结果是()。A.A.45B.20C.25D.36
71.下列程序的输出结果是()。
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
72.有以下程序:
程序运行后的输出结果是()。
A.2,3,3B.2,3,2C.2,3,1D.2,2,1
73.有以下程序(函数fun只对下标为偶数的元素进行操作):
#include<stdio.h>
voidfun(int*n)
{inti,j,k,t;
for(i=0;i<n-1;i+=2)
{k=i;
for(j=i;j<n;j+=2)if(a[j]>a[k])k=j;
t[a[i];a[i]=a[k];a[k]=t;
}
}
main
{intaa[lO]=[1,2,3,4,5,6,7],a;
fun(aa,7);
for(i=0;i<7;i++)printf("%d,",aa[i]);
printf("n");
}
程序运行后的输出结果是()。
A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
74.在一个C源程序文件中所定义的全局变量,其作用域为()。
A.由具体定义位置和extem说明来决定范围B.所在程序的全部范围C.所在函数的全部范围D.所在文件的全部范围
75.若有如下说明和定义
structtest
{intml;charm2;floatm3;
unionuu{charul[5];intu2[2];}ua;
}myaa;
则sizeof(structtest)的值是
A.12B.16
C.14D.9
76.下列关于线性链表的叙述中,正确的是()。
A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C.进行插入与删除时,不需要移动表中的元素
D.以上说法均不正确
77.下列是用户自定义标识符的是
A._w1B.3_xyC.intD.LINE-3
78.以下程序的输出结果是()。
f(intb[],intm,intn)
{inti,s=0;
for(i=m;i<n;i=i+2)s=s+b[i];
returns;
}
voidmain()
{intx,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}A.A.10
B.18
C.8
D.15
79.有以下程序:
程序的运行结果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,f,95,92
D.Zhao,m,85,90
80.以下选项中,能用作数据常量的是()。
A.115LB.0118C.1.5el.5D.0115
五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若nmnl和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输也的最大公约数为27。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或硼行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.规定输入的字符串中只包含字母和奉号。编写函数fun,其功能是:删除字符串中所有的。号。编写函数时,不得使用c语言提供的字符串函数。例如,字符串中的内容为,删除后,字符串中的内容应当是“ABCDEFG”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数缸的花括号中填入你编写的若干语句。试题程序:
参考答案
1.B
2.C本题考查while,while循环表达式k-1是个赋值表达式而不是逻辑表达式,k的初值为l2不符合循环条件,所以循环体语句一次也不执行。
3.B并运算的含义是:假设有一个“在校学生信息表”,它包括这样一些字段:学号、姓名、性别、出生日期、籍贯、联系电话,这个表的关系模式可以表示为:校学生信息表(学号,姓名,性别,出生日期,籍贯,联系电话)。还有一个“新生信息表(学号,姓名,性别,出生日期,籍贯,联系电话)”。若要将9月份进校的新生信息加入到“在校学生信息表”中,这样进行的就是并运算。并运算不会改变表的字段(又叫属性)个数,但是会增加记录(又叫元组)个数。交运算的含义是:两个表(要求结构要一模一样)进行交运算取两个表中相同的记录构成一个新表,交运算不会改变表的字段个数,但是一般会减少记录个数。投影运算的含义是:从在“校学生信息表(学号,姓名,性别,出生日期,籍贯,联系电话)”中选取学生的“姓名”和“联系电话”这两个字段,可以构成一个“学生联系表(姓名,联系电话)”,这就是一个投影运算,所以投影运算一般会减少字段(又叫属性)的个数。笛卡儿乘积又叫称乘运算,设有n元关系R和m元关系s,他们分别有P、q个元组,则关系R和关系s的笛卡儿积表示为R×S,该关系是一个n+m元关系,元组个数是PXq。因此本题的正确答案是B。\r\n
4.C解析:栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”(或“先进后出”)的线性表;而队列只允许在表的一端进行插入操作,在另一端:进行删除操作,是一种“先进先出”(或“后进后出”)的线性表。因此栈和队列的共同点是只允许在端点处插入和删除元素。
5.A解析:通过地址来引用二维数组,若有以下定义:inta[3][4],i,j;且当0≤i≤3,0≤j<4则可以有以下几种方式来引用数组中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表达式&a[0][0]+2*i+j-2相当于是地址&a[0][0]加上多少偏移量。
6.D解析:putchar(c1)输出1,putchar(c2)输出2,printf(“%c%c\\n”,c5,c6)输出45。
7.B
8.C
9.B
10.D
11.A
12.D关系R与s经交运算后所得到的关系是由那些既在R内又在S内的共有元组组成的,记为RnS。
13.D由i"11的数字定义可知n!=n*(n-1)*(n-2)*…*1。在选项A中,由于f的初值为0,在for循环语句中,f依次乘以1,2,3,…,n,最后计算得到f=n!一0,所以选项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的初值为l,在for循环语句中,f依次乘以n,n-1,n-2,…,2,最后计算得到f=n!,所以选项D正确。
14.C解析:选项A),B)考查了多分支结构的用法,选项A)中的程序段执行时,c<a,b<a条件均不成立,故执行else后的语句,x值为3;选项B)中a<3条件成立,执行x=3;而选项C),D)是单分支结构的用法,选项C)中程序段执行时,a<3条件成立,x=3,但条件a<2也成立,此时执行x=2,下一个条件不成立,不再执行其后的语句。
15.A
16.C
17.C程序定义一个字符数组b,并使用字符串“happynewyeai”进行初始化。然后通过for循环,遍历字符数组b中的每个字符,再将b中的字符元素修改为大写字母。程序输出:HAPPYNEWYEAR。故本题答案为C选项。
18.C在ifelse语句中else,总是与离它最近的配对。本题目中x劝1所以!x为0,所以执行else龉句中的内容,判断(x==0)是否成立,因为x为1所以条件不成立,所以else部分的近.else语句不再执行,所以y的值还是初始值0。
19.Bcase常量表达式只是起语句标号作用,并不进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的case语句,就从此case子句执行下去,不再进行判断,直到碰到break或函数结束为止。所以执行内层“switch(y)”时只执行了“a++;”,此时a的值为1,然后执行外层case2语句的“a++;b++;”,a值为2,b值为1。故本题答案为B选项。
20.D解析:串的长度指的是串中字符的个数,且其字符个数可以为零。选项D正确。
21.质量质量
22.s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57解析:根据题意,if语句的条件应当是判断数组元素s[i]是否为数字,故正确答案为:s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57,其中48是字符0的ASCII码值,57是字符9的ASCII码值。
23.解析:本题考查文件读写函数fread和fwrite的用法。fwrite函数将数组a的前5个元素输出到文件fp中两次,共10个字节,再调用fread函数从文件fp中读取这10个字节的数据到数组a中,此时数组a的内容就变为{1,2,3,0,0,1,2,3,0,)},最后的输出结果为“1,2,3,0,0,1,2,3,0,0,”。
24.功能性功能性
25.19
26.33解析:本题考查的是C语言逗号表达式的相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔各表达式的值,整个逗号表达式的值等于其中最后一个表达式的值。本题中,首先i被赋值为2,再自加1,最后i++的值计算为3。
27.白盒或白箱或白盒子或WhiteBox白盒或白箱或白盒子或WhiteBox解析:本题考查软件工程的测试。测试一般有两种方法:黑盒测试和白盒测试。黑盒测试不考虑程序的内部逻辑结构和处理过程,只着眼于程序的外部特性。用黑盒测试来发现程序中的错误,必须用所有可能的输入数据来检查程序能否都能产生正确的输出。白盒测试是在了解程序内部结构和处理过程的基础上,对程序的所有路径进行测试,检查路径是否都能按预定要求正确工作。因此,划线处应填入“白盒(箱)”或“WhiteBox”。
28.算法或程序或流程图算法或程序或流程图解析:算法是问题处理方案正确而完整的描述。
29.00解析:解答本题需要注意表达式“k=0”,它是赋值表达式而不是关系表达式,不论k为何值,表达式k=0总会使k为0,所以不能进入循环。
30.参照完整性参照完整性
31.x=11x=11解析:在对无符号数的右移是高位补0。
32.2828解析:i=f(4+4)/f(2+2)=4+4×4+4/2+2×2+2=4+16+2+4+2=28。
33.边界值分析法边界值分析法解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价类划分、边界值分析法和错误推测法3种。
34.整型整型解析:上面的表达式中,通过强制类型转换把最后参与运算的数据都转换成了int型,所以最后得到的结果也是int类型。
35.1212解析:x=(表达式1,表达式2,…)的形式,结果为最后一个表达式的值:x=(a=4,6*2)=2*6=12。
36.循环循环解析:算法一般由顺序,选择和循环三种基本控制结构组合而成。
37.x=1y=0。x=1,y=0。解析:本题程序的主体部分是switch语句的嵌套结构,当变量a的值为0时,在第一层switch-case语句中,没有匹配的case分支。因此,x和y的值没有变化,仍然是1和0。
38.154321,5,4,3,2解析:第一次调用函数f后aa[0]=5、aa[4]=1;第二次调用函数f后aa[1]=4、aa[4]=2;第三次调用函数f后aa[3]=3。正确答案为1,5,4,3,2。
39.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。
40.概念设计阶段概念设计阶段解析:数据库设计分为以下六个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。
41.C解析:选项A)char*a;*a=“china”应改为a=china;,选项B)应该是charstr[6];D)项表述方法有错误。
42.B
43.A解析:本题考核的知识点是if-else语句的程序分析。我们首先看程序中if-else的匹配,由于C语言中规定else总是与最近的if搭配,因此程序中else与第二个订搭配,即该if-else语句为第一个if语句的执行部分,接着判断第一个if后面括号里的表达式的值“a>b”为假('3>4'为假),因此不执行后面if-else语句,程序将执行下面的输出语句输出d,而d一直未被改变故为原来的值2,所以,4个选项中选项A符合题意。
44.B
45.D解析:冒泡排序法在最坏的情况下需要比较的次数为n(n-1)/2,快速排序法在最坏的情况下需要比较的次数也为n(n-1)/2。
46.C解析:不论main函数在整个过程中的位置如何,一个C程序总是从main函数开始执行的。
47.D解析:考查的是字符指针和字符数组的区别。选项A)中,s为数组名,是一个常量地址,而指针p为一个字符变量,不能说两者完全相同,所以选项A)错误。选项B)和C)的说法都不严谨,只有选项D)的说法正确。
48.A解析:本题考查指针的用法,if(*(p1+k)==*(p2+k))语句的功能是判断两个数组中的字符是否相同,如果相同则输出。
49.A解析:数据流图包括4个方面,即加工(转换)(输入数据经加工变换产生输出)、数据流(沿箭头方向传送数据的通道,一般在旁边标注数据流名)、存储文件(数据源)(表示处理过程中存放各种数据的文件)、源和潭(表示系统和环境的接口,属系统之外的实体)。不包括选项中的控制流。
50.C解析:实型常量只能用十进制形式表示,不能用八进制或十六进制形式表示,实型常量可以用小数形式或指数形式表示,在C语言中,可以用指数形式将实型常量表示为数值和指数两部分,数值部分不能为空,指数部分只能为整数表示。选项A中1.2和0.5都不是整数,故选项A不正确;选项B中3.14159也不是整数,故选项B不正确;选项D中数值部分不能为空,故选项D也不正确;所以,4个选项中选项C符合题意。
51.B解析:对二又树的中序遍历是指:首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左,右子树时,注意依旧按照“左子树—根结点—右于树”的顺序。
52.C算法具有的5个特性是:有穷性、确定性、可行性、有0个或多个输入、有一个或多个输出。所以说,用C程序实现的算法可以没有输入,但必须要有输出。因此本题答案选C。
53.A解析:选项A)是一个表达式,它后面没有分号结尾(C语言中规定语句必须以分号结束),所以它不是语句;选项B)用一个花括号把几条语句括起来了,这是一个复合语句;选项C)中只有一个分号,是一个空语句;选项D)是个复合语句,也是一个空语句。
54.A解析:本题首先定义两个字符型指针变量p和q,通过malloc()函数申请20个字符的存储空间,并把它的首地址赋给p,再把p的值赋给小p和q指向同一个存储区。在scanf()语句中读取字符串到p和q指向的字符串,先把abc读取到p指向的存储区中,第一个空格是结束标记,第二个空格是分隔符,再把def存放到q指向的存储区,把原先的内容覆盖。所以p和q指向的存储区内容是def,故最后输出的def,def。4个选项中A正确。
55.A本题要求建立一个stmctnode类型的数据链表,函数CreatList将字符串"linklist"的首地址传给指针变量s,可以推断建立的链表一定与"linklist",有关,由CreatList(char*s)函数中所定义的变量及其他语句可知,h,p,q用于建立的链表,h表示头指针,p用于记录开辟的新结点,而q用作将新结点与已建立的链表相连的中间变量,所建立链表各个结点的data依次存放的是”linklist",中的各个字符,所以应填空*s。
56.B解析:执行“p=f(i,++i):”后i的值为2,所以a和b的值都为2,则c=0,选项B正确。
57.D解析:本题涉及C语言基本的3个知识点:①C语言是以函数为基本单位的,每一个函数完成相对独立的功能,一个程序可以包括多个函数,但有且仅有一个主函数;②主函数main()的圆括号内是填写参数的,可以没有参数,但括号不可以省略;③程序的注释部分应该在“/*…………*/”之间,它允许出现在程序的任何位置。
58.B解析:本题主要考查关系模型中几种运算的特征。经过选择或投影运算得到的新关系的属性个数最多不会超过原关系中的属性个数。经过连接运算得到的新关系最多不少于原关系中属性的个数。故选项B正确。
59.A本题主要考查软件测试的基本知识。软件测试的步骤可分为单元测试(模块测试)、集成测试、确认测试和系统测试。
(1)单元测试是针对每个模块进行的测试,它可从程序的内部结构出发设计测试用例,多个模块可以平行、对立地测试。单元测试主要用于发现详细设计和编程时犯下的错误。单元测试多采用白盒测试,辅之以黑盒测试。
(2)集成测试是在单元测试的基础上,根据模块结构图将各个模块连接起来,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。主要目标是发现与接口有关的问题。集成测试可以发现概要设计时犯的错误。
(3)确认测试用于验证软件的功能和性能及其他特性是否与用户的要求一致。确认测试主要用于发现需求分析时犯下的错误,一般使用黑盒法测试,以表明软件符合需求说明书的要求,应该仔细设计测试用例和测试过程。确认测试必须有用户参加,或以用户为主,用户应参与设计测试用例,通常情况下,主要使用生产中的实际数据进行测试,测试数据通过用户接口输入。
(4)系统测试是将已经通过确认测试的软件,作为整个计算机系统的元素与计算机硬件、外设和网络等其他因素结合在一起,进行一系列的组装测试和确认测试。系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合的地方。系统测试可以发现问题定义时犯下的错误。
60.B解析:改变文件位置的指针函数fseek()的调用形式为:fseek(fp,offset,position);。fseek函数参数说明:“fp”是指向该文件的文件型指针;“offset'’为位移量,指从起始点position.到要确定的新位置的字节数。也就是以起点为基准,向前移动的字节数。ANSIC要求该参数为长整型量;“position”为起始点,指出以文件的什么位置为基准进行移动,position的值用整型常数表示,“0”表示文件的开头,“1”表示文件的当前位置,“2”表示文件的末尾。
61.A执行(a==1&&b++==2)和b!=2然后输出a、b、CSY别为l、3、3,答案为A)。
62.C队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操作,另一端进行删除操作。其中,允许插入的一端称为队尾(rear),允许删除的一端称为队首(front)。队列具有先进先出的特点,它是按“先进先出”的原则组织数据的。
63.A选项中可以在声明变量的同时为data2赋值,但是“data2=(2,6);”应写作
“d2={2,61;’',因此选择A)。
64.D\n输出的结果是:-1,1
\n0,2
\n1,2
\n
65.B解析:本题考查数据结构中有关算法的基本知识和概念。数据的结构,直接影响算法的选择和效率。而数据结构包括两方面,即数据的逻辑结构和数据的存储结构。因此,数据的逻辑结构和存储结构都影响算法的效率。选项A的说法是错误的。算法的时间复杂度是指算法在计算机内执行时所需时间的度量;与时间复杂度类似,空间复杂度是指算法在计算机内执行时所需存储空间的度量。因此,选项B的说法是正确的。
数据之间的相互关系称为逻辑结构。通常分为四类基本逻辑结构,即集合、线性结构、树型结构、图状结构或网状结构。存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。存储结构在计算机中有两种,即顺序存储结构和链式存储结构。可见,逻辑结构和存储结构不是一一对应的。因此,选项C的说法是错误的。
有时人们为了提高算法的时间复杂度,而以牺牲空间复杂度为代价。但是,这两者之间没有必然的联系。因此,选项D的说法是错误的。
66.B
67.C
68.C
69.B本题要求选项中的表达式能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算。
在选项A中,n=(n*100+0.5)/100.0表示先将n后的前两位小数变成整数,然后对其第三位小数进行加0.5操作,这个操作其实是第三位小数在进行四舍五入运算时只有入,而没有舍运算。因此,本选项不能实现题目的要求。
在选项B中,m=n*100+0.5,n=m/100.0表示先将n后的前两位小数变成整数,然后对第三位小数进行加0.5操作,并将最后的运算结果赋值给一个整型变量m,这是数据的强制转换,它对小数部分的处理是直接舍弃,而在对第三位小数进行加0.5操作时,其实就是对第三位进行四舍五入运算。因此选项能实现题目的要求,是正确的答案。
在选项C中,根据运算符的优先级我们知道,先运算n*100,再运算0.5/100.0,最后将结果相加,与题目要求相差比较远。
在选项D中,n=(n/100+0.5)*100.0表示先除100,这不是对小数部分进行四舍五入运算,而是对整数部分进行四舍五入运算,与题目要求不一致。
70.C在for循环语句中自变量i从0开始,每次自加2,执行s+=*(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,*(t+i)代表数组的第i+1个元素。所以程序运行的结果是1+3+5+7+9=25,即变量S的值等于25。
71.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的使用。
72.Cz=X++,Y++,++y;因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式表示成(Z=x++),(Y++),(++y)。然后从左向右先计算表达式Z=X++,因为x++先使用后自增,所以z的值为1,X的值为2。再计算逗号表达式第二个表达式Y++,此时Y的值为2,最后计算第三个表达式++y,Y的值为3。
73.A\n对下标为偶数的元素进行降序排序,下标为奇数元素保持不变。
\n
74.A全局变量的作用域是从声明处到文件的结束。所以选择A)。
75.A在本题中,首先定义了一个结构体。在该结构体中,定义了一个整型变量成员、一个字符型变量成员和一个浮点型变量成员,并在结构体中定义了一个联合体变量成员,联合体变量成员中又包含两个联合体成员数组。题目最后要求计算该结构体变量所占的存储空间。
在C语言中,联合体变量中的所有成员共享存储空间,联合变量的长度等于各成员中最长的长度,因此,本题的联合体部分所占的长度为5,但是结构体与联合体不一样的是,结构体不能共享空间,一个结构体变量的总长度是各成员长度之和,因此,该结构体所需的存储空间为5+1+2+4=12。本题的正确答案选A。
76.CC【解析】一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。线性链表中数据的插入和删除都不需要移动表中的元素,只需改变结点的指针域即可。
77.A本题主要考查标识符的定义。对标识符的定义是考试中常考的内容之一。标识符主要由数字、下画线和字母组成,其中数字不能放在首位,另外,用户自定义标识符时,不能将标识符定义为C语言中已定义的关键字,如int、while等。
根据上面对标识符的分析,我们不难看出本题的正确答案是A。在选项B中,3_xy以数字开头,不符合标识符定义的规定;在选项C中,int是C语言系统中已经定义了的关键字;在选项D中,LINE-3使用的数字、下画线和字母以外的字符,因此不正确。
78.A函数的功能是对数组某一区域内的元素隔个求和;a[3]=4,所以从4开始进行隔个求和,a[7]=8,即对4到8的元素隔个求和,4+6=10。
79.A本题考查的是函数调用时的参数传递以及结构体变量的引用的问题。程序在调用函数f时,传给函数f的参数只是结构变量c在栈中的一个拷贝,函数f的所有操作只是针对这个数据拷贝进行的修改,这些都不会影响变量c的值。
80.AA选项中l15L表示ll5是长整型数据,合法。B选项是八进制常量的表示方法,但是在八进制中不能含有数字8,所以B错误。c选项中e后面应该是整数不能是小数l.5,所以c错误。D选项中八进制常量应该是数字…0开始,而不是字母…O开始。
81.
82.
2022-2023年广东省汕尾市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.以下程序是用来计算两个非负数之间的最大公约数:我们假设x,y中最大的那个数的长度为n,基本运算时间复杂度为O(1),那么该程序的时间复杂度为()A.O(1)B.O(logn)C.O(n)D.O(n^2)
2.设有程序段:intk=12:while(k=1)k=k-1:则下列描述中正确的是()。
A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次
3.在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是A.并B.交C.投影D.笛卡儿乘积
4.栈和队列的共同点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点
5.现有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}则程序的输出结果为
A.21B.78C.23D.28
6.有以下程序
#include<stdio.h>
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是A.A.1267B.1256C.1278D.1245
7.如有inta=11;则表达式(a++*1/3)的值是()。
A.0B.3C.4D.12
8.以下一维数组a正确的定义是()
A.inta(5)B.intn=5,a[n]C.inta[SZ]其中SZ为符号常量D.inta{5}
9.将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是()。
A.nB.2n-1C.2nD.n-1
10.已知shortint类型变量占用两个字节,若有定义:shortintx[10]={0,2,4};,则数组x在内存中所占字节数是()。
A.3B.6C.10D.20
11.求2n个数中的最大值和最小值,最少的比较次数是()
A.4n/3B.2n-2C.3n-2D.3n/2
12.有三个关系R、s和T如下:
由关系R和s通过运算得到关系T,则所使用的运算为()。
A.并B.自然连接C.笛卡尔积D.交
13.设变量已正确定义,则以下能正确计算f=n!的程序是()。A.f=0:for(i=1;i<=n;i++)f*=i:
B.F=1:for(i=1;i<2n;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:
14.有定义语句:inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;
B.if(a<3)x=3;elseif(b<a)x=2;elsex=1;
C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;
D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;
15.链表不具备的特点是()。
A.可随机访问任一结点B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与其长度成正比
16.
17.有以下程序:#include<stdio.h>main(){charb[]=“happynewyear”,k;for(k=0;b[k];k++) printf(“%c”,b[k]-‘a’+‘A’);}程序运行后的输出结果是()。
A.hAppynewyeArB.HappynewyearC.HAPPYNEWYEARD.HaPPYNEWYEaR
18.有以下程序:#includeMain(){Intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;Elsey+=3;print("%d\n",y);}程序运行后的输出结果是()。A.2B.1C.0D.3
19.有以下程序:#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){ case1: switch(y) { case0:a++;break; case1:b++;break; } case2:a++;b++;break; case3:a++;b++;}printf(“a=%d,b=%d\n”,a,b);}程序的运行结果是()。
A.a=2,b=2B.a=2,b=1C.a=1,b=1D.a=1,b=0
20.串的长度是______。A.A.串中不同字符的个数
B.串中不同字母的个数
C.串中所含字符的个数且字符个数大于零
D.串中所含字符的个数
二、2.填空题(20题)21.软件的可移植性是用来衡量软件【】的重要尺度之一。
22.以下程序的功能是将字符串s中的数字字符放人d数组中,最后输出d中的字符串。例如,输入字符串abc123edf456gh,执行程序后输出123456。请填空。
#include<stdio.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;)
d[j]='\0';
puts(D);
}
23.以下程序的运行结果是______。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wbt");
fwtite(a,sizeof(int),5,fp);
fwlite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i
24.源程序文档化要求程序应加注释。注释一般分为序言性注释和【】注释。
25.某二叉树中度为2的节点有18个,则该二叉树中有()个叶子节点。
26.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【】。
27.在两种基本测试方法中,【】测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。
28.问题处理方案的正确而完整的描述称为______。
29.下列循环的循环次数是______。
intk=2;
while(k=0)
printf["%d",k);
k--;
printf("\n");
30.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。
31.下面程序的运行结果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
32.有以下程序:
#definef(x)x*x
main()
{inti;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
执行后的输出结果是【】。
33.常用的黑箱测试有等价类划分法、【】和错误推测法3种。
34.表达式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的数据类型为______。
35.若x和a均是int型变量,则计算完x=(a=4,6*2)后的x值为______。
36.一般来说,算法可以用顺序、选择和______三种基本控制结构组合而成。
37.分析下列程序:
main()
{intx=1,y=0,a=0,b=0;
switch(a)
{case1:switch(b)
{case0:x++;
case1:y++;break;
}
case2:x++;y++;break;
}
printf("x=%d,y=%d\n",x,y);
}
运行程序的输出结果是______。
38.有以下程序:
voidf(inta[],inti,intj)
{intt;
if(i<j)
{t=a[i];a[i]=a[j];a[j]=t;
f(a,i+1,j-1);
}
}
main()
{inti,aa[5]={1,2,3,4,5};
f(aa,0,4);
for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");
}
执行后的输出结果是【】。
39.在深度为7的满二叉树中,度为2的结点个数为【】。
40.数据库设计分为以下六个设计阶段:需求分析阶段、【】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
三、1.选择题(20题)41.下面判断正确的是
A.char*a="china";等价于char*a;*a="china";
B.charstr[5]={"china"};等价于charstr[]={"china"};
C.char*s="china";等价于char*s;s="china";
D.charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc";
42.设有如下定义:intx=1,y=-1;则下列语句的输出结果是______。printf("%d\n",(x--&++y));
A.1B.0C.-1D.2
43.有以下程序main(){inta=3,b=4,c=5,d=2;if(a>B)if(b>C)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",D);}程序运行后的输出结果是
A.2B.3C.43D.44
44.请读程序:#include<stdio.h>f(intb[],intn){inti,r;r=l;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intxa[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}上面程序的输出结果是()
A.720B.120C.24D.6
45.对于长度为n的线性表,在最坏的情况下,下列各排序法所对应的比较次数中三确的是
A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2
46.c语言规定,在一个源程序中,main函数的位置()。
A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后
47.设有下面的程序段:chars[]="china";char*p;p=s;则下列叙述正确的是
A.s和p完全相同
B.数组s中的内容和指针变量p中的内容相同
C.s数组长度和p所指向的字符串长度相等
D.*p与s[0]相等
48.下列程序的运行结果是()。#include<stdio.h>main(){staticchara[]="Languagef",b[]="programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=8;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.angC.programD.有语法错
49.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是()
A.控制流B.加工C.数据存储D.源和潭
50.以下符合C语言语法的实犁常量是
A.1.2E0.5B.3.14159EC.5E-3D.E15
51.有下列二叉树,对此二叉树中序遍历的结果为()。
A.ABCDEFB.BDAECFC.ABDCEFD.ABCDFE
52.以下叙述中正确的是
A.用C程序实现的算法必须要有输入和输出操作
B.用C程序实现的算法可以没有输出但必须要有输入
C.用C程序实现的算法可以没有输入但必须要有输出
D.用C程序实现的算法可以既没有输入也没有输出
53.下列不是合法的C语言语句是()。
A.a=5B.{inti;i++;}C.;D.{;}
54.有以下程序:#include<stdlib.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);ptintf("%s%s\n",p,q);}若从键盘输入abcdef<回车>,则输出的结果是()。
A.defdefB.abcdefC.abcdD.dd
55.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转存到链表的各个结点中,请填空。#include<stdlib.h>stuctnode{chardata;struetnode*next;};stntctnode*CreatList(char*s){struetnode*h,*p,*q;h=(structnode*)malloc(sizeof(structnode));p=q=h;while(*s!='\0'){p=(structnode*)malloc(sizeof(structnode));p->data=()q->next=p;q=p;a++;p->next='\0';returnh;}main(){charstr[]="linklist";struetnode*head;head=CreatList(str);
A.*sB.sC.*s++D.(*s)++
56.下面程序的输出结果是()。main(){inti=1,p;p=f(i,++i);printf("%d",p);}intf(inta,intb){intC;if(a>b)C=1;elseif(a==b)C=0;elseC==-1;return(C);}
A.-1B.0C.1D.2
57.下列说法不正确的是()。
A.一个C语言源程序可以由一个函数组成也可以由多个函数组成
B.main()中的“()”是函数的参数部分,括号内可为空,但括号不能省略
C.C语言程序是以函数为基本单位的
D.在C语言程序中,注释行只能位于一条语句的后面
58.下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是
A.选择B.连接C.投影D.并
59.检查软件产品是否符合需求定义的过程称为()。
A.确认测试B.集成测试C.验证测试D.验收测试
60.函数fseek的正确调用形式是()。
A.fseek(位移量,起始点,文件类型指针);
B.fseek(文件类型指针,位移量,起始点);
C.fseek(文件类型指针,起始点,位移量);
D.fseek(起始点,位移量,文件类型指针);
四、选择题(20题)61.有以下程序程序运行后的输出结果是()
A.1,3,3B.1,3.2C.1,2,3D.3,2,1.
62.下列关于队列的叙述中正确的是()。A.在队列中只能插人数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表
63.设有定义:
64.有以下程序:
#include<stdio.h>
main()
{inta=-2,b=0;
while(a++++b);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是()。
A.1,3B.0,2C.0,3D.1,2
65.下列叙述中正确的是()。A.算法的效率只与问题的规模有关,而与数据的存储结构无关
B.算法的时间复杂度是指执行算法所需要的计算工作量
C.数据的逻辑结构与存储结构是一一对应的
D.算法的时间复杂度与空间复杂度一定相关
66.
67.在HTML页面中哪些部分能够插入JavaScript?
A.<body>部分
B.<head>部分
C.<body>部分和<head>部分均可
D.<title>部分
68.
69.设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是()。
A.n=(n*100+0.5)/100.0
B.m=n*100+0.5,n=m/100.0
C.n=n*100+0.5/100.0
D.n=(n/100+0.5)*100.0
70.有下列程序:
main
{inti,s=0,t[]={1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序执行后的输出结果是()。A.A.45B.20C.25D.36
71.下列程序的输出结果是()。
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
72.有以下程序:
程序运行后的输出结果是()。
A.2,3,3B.2,3,2C.2,3,1D.2,2,1
73.有以下程序(函数fun只对下标为偶数的元素进行操作):
#include<stdio.h>
voidfun(int*n)
{inti,j,k,t;
for(i=0;i<n-1;i+=2)
{k=i;
for
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三农村合作社合作模式优化方案
- 防撞护栏安装施工方案
- 转换层模板施工方案
- 不锈钢雨棚施工方案
- 綦江酒店铝单板施工方案
- 龙泉塑石假山制作施工方案
- 路面沥青工程施工方案
- 临床急性化脓性扁桃体炎和传染性单核细胞增多症鉴别诊断、相同点及区别
- 杭州扣盘式脚手架施工方案
- 桐梓科学开展松树育苗和病虫害防治工作的实践及成果分析
- 咨询公司项目风险控制方案
- 校园食品安全培训课件
- 开关柜更换改造施工方案
- 《眼科常用眼药及护》课件
- 污水处理厂防水防腐工程施工方案
- 幕墙作业安全技术交底
- TCOSOCC 016-2024 信息技术应用创新 软件测试要求
- 食堂晨午检制度
- 《边缘计算与人工智能应用开发技术》全套教学课件
- 三级安全教育试题及答案(自编完整版)
- 幼儿园大班社会《服装的由来》课件
评论
0/150
提交评论