版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年山东省德州市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若有定义floata[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为()。
A.334HB.30DHC.352HD.31AH
2.
3.为了使模块尽可能独立,要求()。
A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
4.若有以下定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]
5.若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
6.对于循环队列()。
A.无法判断队列是否为空B.无法判断队列是否为满C.队列不可能满D.以上说法都不对
7.在定义inta[5][6];后,数组a中的第10个元素是()。(设a[0][0]为第一个元素)
A.a[2][5]B.a[2][4]C.a[1][3]D.a[1][5]
8.下列程序的输出结果是()。#include<stdio.h>main{structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un))}A.6,2B.6,4C.8,4D.8,6
9.设变量n为f1oat类型,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
10.下面程序的输出结果是______。main(){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4;printf("%d\n",p[3]);}
A.6B.7C.3D.5
11.在含有n个项点有e条边的无向图的邻接矩阵中,零元素的个数为________。
A.eB.2e9C.n2-eD.n2-2e
12.以下叙述中正确的是()
A.C程序由函数和过程组成B.C程序由主函数组成C.C程序由函数组成D.C程序中,主函数必须放在其他函数之前
13.设有定义“inta;floatb;”,执行“scanf(“%2d%f”,&a,&b);”语句时,若从键盘输入876543.0并按<Enter>键,则a和b的值分别是()。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
14.以下选项中与“if(a==l)a=b;elsea++;”语句功能不同的switch语句是()。
A.switch(a){casel:a=b;break;default:a++;}
B.switch(a==l){case0:a=b;break;casel:a++;}
C.switch(a){default:a++;break;casel:a=b;}
D.switch(a==l){casel:a=b;break;case0:a++;}
15.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;则与上述程序段功能等价的赋值语句是()。
A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;
16.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为()。
A.20B.0或35C.15D.16
17.线性结构是数据元素之间存在一种()。
A.一对多关系B.多对多关系C.多对一关系D.一对一关系
18.有下列程序:
程序执行后的输出结果是()。
A.30B.35C.40D.32
19.
20.对于如图所示二叉树采用中根遍历,正确的遍历序列应为()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF
二、2.填空题(20题)21.“printf("%d\n",strlen("\t\"\023\xAB\nC"));”语句的输出结果是()。
22.数据结构分为线性结构和非线性结构,线性表、栈和队列都属于【】。
23.要求使下列程序输出5个整数,请填空。
for(i=0;i<=______;printf("%d\n",i+=2));
24.下列程序的输出结果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
25.以下程序的功能是:处理由学号和成绩组成的学生记录,N名学生的数据已在主函数中放入结构体数组s中,它的功能是:把分数最高的学生数据放在h所指的数组中,注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。请填空。
#include<stdio.h>
#defineN16
typedefstruct
{charnum[10];
ints;
}STREC;
intfun(STREC*a,STREC*b)
{inti,j=0,max=a[0].s;
for(i=0;i<N;i++)
if(max<a[i].s)max=a[i].s;
for(i=0;i<N;i++)
if(【】)b[j++]=a[i];
returnj;
}
main()
{STRECs[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},
{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},
{"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}
};
STRECh[N];
inti,n;FILE*out;
n=fun(s,h);
printf("The%dhighestscore;\n",n);
for(i=0;i<n;i++)
printf("%s%4d\n",h[i].num,h[i].s);
printf("\n");
out=fopen("out15.dat","w");
fprintf(out,"%d\n",n);
for(i=0;i<n;i++);
fprintf(out,"%4d\n",h[i].s);
fclose(out);
}
26.以下程序的功能是将字符串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);
}
27.性结构中,队列的操作顺序是先进先出,而栈的操作顺序是______。
28.以下程序运行后输出的结果是【】。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{
case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
29.已有定义:double*p;,请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元______。
30.下面程序的输出是【】。
main()
{enumem{em1=3,em2=1,em3};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);
}
31.函数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;j<N;i++)
{x[i][0]=______=1;
for(j=1;j<i;j++)
x[i][j]=______;
}
}
32.设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=______;
scanf("%d%d%d",&x,&y,&z}:
big=(*f)(x,y,Z);
printf("big=%d\n",big);
}
33.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。
34.软件的【】设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。
35.下面程序执行后输出的结果是【】。
intm=13;
intfun(intx,inty)
{intm+3;
return(x*y-m);
}
main()
{inta=7,b,5;
prntf("%d\n",fun(a,B)/m);
}
36.在面向对象方法中,类的实例称为______。
37.以下程序中,for循环体执行的次数是【】。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{
inti;
for(i=1;i<K;i++)
{…}
…
}
38.下列程序的运行结果是______。
#include<stdio.h>
main()
{intfun();
fun();
}
fun()
{staticinta[4]={1,2,3,4};
inti;
for(i=0;i<4;i++)a[i]+=a[i];
for(i=0;i<4;i++)printf("%d,",a[i]);
printf"\n");
}
39.在面向对象方法中,允许作用于某个对象上的操作称为【】。
40.下面的程序用来统计文件中字符的个数。请填空。
#include<stdio.h>
main()
{FILE*fP;
longnum=0;
if((fp=fopen("fname.dat","r"))==NULL)
{printf("Can'topenfile!\n");sxit(0);}
while【】
{fgetc(fp);num++;}
printr("num=%d\n",num);
fclose(fp);
}
三、1.选择题(20题)41.有以下函数intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下关于aaa函数的功能的叙述正确的是A.求字符串s的长度B.比较两个串的大小C.将串s复制到串tD.求字符串s所占字节数
42.在C语言程序中,下列说法正确的是()。
A.函数的定义和函数的调用均可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义可以嵌套,但函数的调用不可以嵌套
D.函数的定义和函数的调用均不可以嵌套
43.若x为int类型变量,则执行以下程序段后的x值是______。x=6;x+=x-=x*x;
A.36B.-60C.60D.-24
44.下列程序的输出结果是_____。main(){intn=4;while(n--)printf("%d",--n);}
A.20B.31C.321D.210
45.下列关于栈的叙述中正确的是
A.在栈中只能插入数据B.在栈中只能删除数据C.栈足先进先出的线性表D.栈是先进后出的线性表
46.下列对于线性链表的描述中正确的是()
A.存储空间不一定是连续,且各元素的存储顺序是任意的
B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
47.阅读下面程序段,则执行后的结果为#inclide"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
48.以下函数findmin拟实现存数组中查找最小值作为函数值返回,但程序中有错导致不能实现预定功能。#defineMAX2147483647intfindmin(intx[],intn){inti,min;min=MAX;for(i=0;i<n;i++){if(min<x[i])min=x[i];}}造成错误的原因是()。
A.定义语句inti,min;中min未赋初值
B.赋值语句min=MAN;中,不应给min赋MAX值
C.语句if(min<X[i])min=X[i];中判断条件设置错误
D.赋值语句min=MAX;放错了位置
49.以下不能定义为用户标识符的是()。
A.scanfB.VoidC.3comD.int
50.已定义下列函数:intfun(int*p){return*p;)fun函数返回值是()。
A.不确定的值B.一个整数C.形参p中存放的值D.形参p的地址值
51.以下程序的输出结果是()。#include<stdio.h>main(){inta=8,b=6,m=1;switch(a%4){case0:m++;break;case1:m++;switch(b%3){default:m++;case0:m++;break;}}printf("%d\n",m);}
A.1B.2C.3D.4
52.若有定义语句:intk[2][3],*pk[3];,则以下语句中正确的是A.pk=k;B.pk[0]=&k[1][2];C.pk=k[0];D.pk[1]=k;
53.下面对对象概念描述错误的是()
A.任何对象都必须有继承性B.对象是属性和方法的封装体C.对象间的通讯靠消息传递D.操作是对象的动态属性
54.结构化程序设计主要强调的是()。
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性
55.按条件f对关系R进行选择,其关系代数表达式为
A.
B.
C.
D.
56.有以下程序main(){union{unsignedintn;unsignedcharc;}ul;u1.C='A';pfintf("%c\n",u1.n);}执行后输出结果是
A.产生语法错B.随机值C.AD.65
57.有以下程序:#include<stdio.h>#defineX5+6main(){inta=2,c;C=X*2:printf("%d",C);}程序运行后的输出结果是()。
A.17B.22C.16D.11
58.设整型数i=5,则printf("%d",i+++++i);的输出为______。
A.10B.11C.12D.语法错误
59.以下关于函数的叙述中正确的是______。A.每个函数都可以被其他函数调用(包括main函数)
B.每个函数都可以被单独编译
C.每个函数都可以单独运行
D.在一个函数内部可以定义另一个函数
60.在C语言中引用数组元素时,其数组下标的数据类型只能是()。
A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式
四、选择题(20题)61.在数据管理技术的发展过程中,先后经历了人工管理阶段、文件系统阶段和数据库系统管理阶段。其中数据独立性最高的阶段是
A.数据库系统B.文件系统C.人工管理D.数据项管理
62.
63.若x是int型变量,且有下面的程序片段:
上面程序片段的输出结果是()。
A.
B.
C.
D.
64.(52)栈和队列的共同点是()
A.都是先进后出B.都是先进先出
C.只允许在端点处插入和删除元素
D.没有共同点
65.
下列程序的输出结果是()。
#include<stdio.h>
main
{inti;
for(i=1;i<=10,i++)
{if((i*i>=20)&&(i*i<=100))
break;
}
printf("%d\n",i*i;
}
A.49B.36C.25D.64
66.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。
A.seanf
B.getchar
C.gets
D.getc
67.数据库系统的核心是()。
A.数据模型B.数据库管理系统C.数据库D.数据库管理员
68.fscanf函数的正确调用形式是
A.fscanf(文件指针,格式字符串,输出表列);B.fscanf(格式字符串,输出表列,文件指针);
C.fscanf(格式字符串,文件指针,输出表列);D.fscanf(文件指针,格式字符串,输入表列);
69.以下选项中正确的语句组是()。
A.char*s;8={1.BOOK!”}i
B.char*s;8=”BOOK!”;
C.charS[10];S=”BOOK!”;
D.charS[];S=”BOOK!”;
70.下列叙述中正确的是()。
A.循环队列是队列的一种链式存储结构
B.循环队列是队列的一种顺序存储结构
C.循环队列是非线性结构
D.循环队列是一种逻辑结构
71.以下程序运行后,输出结果是()。
#include<stdio.h>
#definePT5.5
#defineS(x)PT*x*X
main
{inta=1,b=2:
printf("%4.1f\n",s(a+b));
}
A.49.5B.9.5C.22.0D.45.0
72.一个栈的初始状态为空。现将元素l、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,恻元素出栈的顺序是()。A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.5432lEDCBA
73.有以下程序:
#include<stdi0.h>
#include<string.h>
structA
{inta;charb[10];doubleC;);
voidf(structAt);
main()
{structAa={"1001,"ZhangDa",l098,0};
f(a);printf("%d,%S,%6.1f\n",a.a,a.b,a.c);}
voidf(structAt)
{t.a=1002;strcpy(t.b,"ChangRon9");t.c=1202.0;}
程序运行后的输出结果是()。
A.1001,ZhangDa,1098.0
B.1002,ChangRong,1202.0
C.1001,ChangRong,1098.0
D.1002,ZhangDa,1202.0
74.在数据管理技术发展的三个阶段中,数据共享最好的是()。
A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.三个阶段相同
75.
76.
77.
78.
79.
有以下程序.
#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);
}
程序运行后,若从键盘输入(从第l列开始)
123<回车>
45678<回车>
则输出结果是()。
A.1267B.1256C.1278D.1245
80.
五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.请编写一个函数proc,它的功能是:求出1~m(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传给m的值为70,则程序输出:7111421222833354244495556636670注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineN100voidproc(intm,int*a,int*n){ }voidmain{intarr[N],n,k;system("CLS");proc(70,arr,&n);for(k=0;k<n;k++)if((k+1)%20==0)//每行输出20个数{printf("%4d",arr[k]);printf("\n");}elseprintf("%4d",arr[k]);printf("\n");}
参考答案
1.C解析:解答本题,首先要明白在对指针进行加、减运算的时候,数字“1”不是十进制的数“1”,而是指'1'个存储单元长度,而1个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是int型,移动1个存储单元的长度就是位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个字节。所以p+13所指向的数组元素的地址:300H+(13*上标)4)H=352H。
2.A
3.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。
4.D本题考查如何引用数组元素的地址。选项A)中,p5引用的是af51的地址,而数组a只有5个元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用错误;选项B)中,*a1指的是将数组a的第一个元素加1;选项C)中,这种引用方式错误;选项D)中,&a[0]引用的是数组的首地址。
5.C解析:栈是一种后进先出表,选项C中,先出栈的是3,说明此时栈内必然有1,2,由于1先于2进浅,所以1不可能在2之前出栈,故选项C这种出栈序列是不可能的。
6.D
7.C
8.B本题主要考查结构和联合内存使用的一些区别:结构中每个成员相互独立,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和;联合所占用内存空间是指最长的成员占用的空间。
9.B
10.B解析:指针变量p指向数组a的第5个元素,p[3]在原指向基础上移3个单位,指针变量p将指向第8个元素(下标为7的元素),值为7。
11.D
12.C
13.Ascanf函数中,在格式字符前加入一个整数可以指定输入数据所占的宽度,所以赋值时会将87赋给变量a,把6.0赋给float型变量b。故本题答案为A选项。
14.B题中当a的值为l时,关系表达式a==l的值为真,即1,因此程序将跳转到easel执行a++操作,与题干程序刚好相反。
15.B解析:本题考核的知识点是for循环次数的计算.本程序中for循环的次数为c-1+1共循环了c次,而每循环一次s的值加1,所以s的值为s+c.而最开始s的值为a,故4个选项中选项B符合题意.
16.BQ(1:35)则队列的存储空间为35;对空条件:front=rear(初始化时:front=rear),队满时:(rear+1)%n==front,n为队列长度(所用数组大小),因此当执行一系列的出队与入队操作,front=rear.则队列要么为空,要么为满。
17.D
18.A程序定义一个整型变量y和整型二维数组x,并对x赋初值。接着调用函数fun,在函数fun中,第1个for循环将数组a的第0列和第N-1列的所有元素累加到y中;第2个for循环将数组a的第0行的2、3和第N-1行的3、2累加到y中,再将y返回。所以fun函数的功能是将数组a的行列下标为0、N-1的所有元素累加起来,即将1,2,3,4,2,3,3,2,4,3,2,1累加,输出30。本题答案为A选项。
19.B
20.D
21.66解析:strlen()函数的作用是计算字符串的长度并作为函数的返回值,这里的长度不包括串尾的结束标志\'\\0\'。\'\\t\'是转义字符,代表横向跳若干格;\'\\'\'是转义字符,代表双引号:\'\\023\'也只代表一个字符,而不管转义字符后面有几个符;\'\\xAB\'是以两位十六进制数AB表示的ASCII码字符,只代表一个字符;\'\\n\'是转义字符,代表回车换行。题中语句中的字符串有5个字符常量各代表一个字符,再加上字母C,所以返回的长度是6。
22.线性结构线性结构解析:本题考查了数据结构的基本概念。与栈类似,队列也是线性表,可以采用链式存储结构,所以带链的队列属于线性结构。
23.88解析:本题考查基本的for循环条件,i+=2表示i每次递增2,从0开始,输出5个整数则需要的条件是i<=8。
24.21
25.max==a[i].smax==a[i].s解析:该程序使用循环嵌套,第1个for语句的作用是找出最大值。第2个循环的作用是找出与max相等的成绩,也即最高成绩的学生,并存入b中。
26.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:根据题意和程序可知要填空的内容是:将字符申s中的数字字符放入d数组的条件。
27.先进后出先进后出解析:队列和栈都是线性结构,但是不同之处在于队列的操作顺序是先进先出,而栈的操作顺序是先进后出。
28.2121解析:外层switch语句后面括号里的x的值为1,所以执行从casel:后面的语句开始执行,而cascl:后面语句也为switch语句,这个switch语句后面括号里的y的值为0,所以从该switch语句里的case0:开始执行即执行a++,这时a的值变为1,执行完毕,遇到break语句,退出内层switch语句,又回到外层switch语句,继续执行casel:下面的语句即case2:执行完毕后,a自加1变为2,b自加1变为1。所以最后输出的a和b的值为21。
29.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函数只有一个参数,该参数指定了需要分配多少字节的内存。然后将分配好的内存块的首地址作为void*(未知类型指针)返回.故标准的调用形式应该写成:
p(double*)malloc(sizeof(double));
30.DDBBCCDDBBCC解析:C语言对枚举的定义规定:在枚举中声明的各个枚举元素,如果没有明确指出某个枚举元素的值,它的上一个元素存在并有明确值的情况下,这个枚举元素的值为其上一个元素的值+1。在本题中,没有明确说明枚举元素em3的值,则em3=em2+1=1+1=2,进而可知,在printf()打印函数中,要打印的数组元素是aa[3]、aa[1]、aa[2],因此最后的打印结果应当为“DDBBCC”。
31.x[i][i]x[i-1][j-1]+x[i-1]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1]或x[i-1][j]+x[i-1][j-1]解析:本题考核的知识点是函数与算法结合在一起的应用。在程序中用两重循环。在第一层循环中将每行的第0列赋值为1,对角线上的元素赋值为1显然在第一个空中应该填入对角线上的元素即x[i][i]在第2重循环中给每行其他元素赋值,而在每行中除了第0列和对角线的元素外其他元素为其对应的上一行中同列和同列的前一列的元素相加,所以在第二个空中应该填入x[i-1][j-1]+x[i-1][j]。
32.findbigfindbig解析:本题考核的知识点是指向函数的指针变量的使用。本题首先定义了一个指向函数的指针变量f,如果希望让它指向某个函数,只需把函数名赋给该指针变量即可。所以说本题的空格处应该填入函数名findbig。
33.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。
34.概要概要
35.22解析:本题变量m既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,fun(a,b)/m中的m应取外部变量的值13,因此输出2。
36.对象对象解析:类描述的是具有相似性质的一组对象。例如,每本具体的书是一个对象,而这些具体的书都有共同的性质,它们都属于更一般的概念“书”这一类对象。一个具体对象称为类的实例。
37.44解析:将程序中所有的宏替换掉可得:M=2+1,K=2+1*2+1/2=4,所以for循环共循环了K-1+1次,即4-1+1共4次。
38.24682,4,6,8解析:子函数fun()的功能是将数组a中的元素都自加一遍,然后仍然将结果存在原数组中,其实就是将数组a的每个元素都变为原来的2倍,然后输出。在主程序中首先通过intfun()定义了子函数fun(),然后再调用fun()。
39.方法方法解析:在面向对象方法中,方法是指允许作用于某个对象上的各种操作。
40.(!feof(fp))或feof(fp):=0(!feof(fp))或feof(fp):=0
41.A解析:aaa()函数中,首先定义了一个字符指针t指向形参s,然后通过一个while循环让指针\u3000t不断递增,直到t指向字符串结束标志处。当t指向结束标志处时,由于后缀++运算符的原因,它还会被再递增1,所以接卜来的t--;语句让它回到结束标志处。最后返回t-s,因此s还是指向字符串第1个字符处,而t指向了字符串结尾,故返回值为字符串的长度值。
42.B解析:本题考查函数调用的基本概念。因为函数的结果是个未知量,而函数定义时不能使用未知量,所以函数定义不可以嵌套,但函数的调用可以嵌套。
43.B
44.A
45.D解析:对栈可进行插入和删除数据的操作,但必须牢记插入和删除数据都只能在栈顶,是一种特殊的线性表.所以栈是先进后出的线性表。
46.A本题考查的是线性单链表、双向链表与循环链表的结构及其基本运算。\n在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。故本题答案为A。
47.C
48.D解析:在C语言中,一个整型变量占用4个字节的内存单元,并按整型数的存储方式存放数据,允许存放的数值范围是:-2147483648~2147483647。所以在这个题目中定义的宏变量MAX的值就是整数范围内最大的数值,因而对于任意一个整数来说,其值都比MAX小,而判断最小值,是当找到的数比min小时,才交换。
49.D解析:标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符由1~32个字符组成,第一个字符必须是字母或下划线,后面的字符可以是字母、数字或下划线。标识符不能与C关键字相同,并区分大小写。选项D)错误,因为int是C语言中的关键字。
50.B解析:由函数intfun(int*p){return*p;}的定义可知,返回值为整型指针变量p所指向的数据。
51.B解析:本题考查switch语句。因为a=8,a%4=0,所以执行case0后面的语句,将m加1,遇到break语句跳出switch。
52.B答案B
解析:*pk[3]表示的是一个共有3个元素的一维指针数组。pk[0]=&k=[1][2]表示把二维数组中下标为k[1][2]的值赋予pk[0],也就是pk[0]指向k[1][2]这个元素。
53.A解析:继承是面向对象的方法的一个主要特征。继承是使用已有的类定义做为基础建立新类的定义技术。已有的类可当做基类来引用,则新类相应地可当做派生类来引用。但并不是所有的对象都必须有继承性。因此,选项A中的说法是错误的,应为所选。
54.D解析:程序不仅是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。
55.C解析:选择运算是一个一元运算,关系R通过选择运算(并由该运算给出所选择的逻辑条件)后仍为一个关系。这个关系是由R中那些满足逻辑条件的元组所组成。如果关系的逻辑条件为f,则R满足f的选择运算可以写成;бf(R)。
56.C解析:在定义共用体的同时,定义了一个共用体型变量u1,共占两个字节,有两个成员n和c,两个成员的首地址是相同的。因此给u1,c赋一个“A”,其实就是给无符号整型成员u1.n的低字节赋一个“A”,输出u1,n的时候是以字符型的形式输出,只输出它的低地址的一个字节,因此为“A”。
57.A
58.D解析:C语言中有基本的算术运算符(+、-、*、/)还包括自增自减运算符(++、-),在C语言解析表达式时,它总是进行贪婪咀嚼,这佯,该表达式就被解析为i+++++i,显然该表达式不合C语言语法。
59.B解析:本题考查函数的一些概念.main()函数是一个程序的主函数,它由系统调用,所以选项A不正确。一个C语言源程序文件可以只包含一个函数,每个源文件都可以被单独编译成。obj文件,最后链接成可执行文件。因此每个函数都可以被单独编译,选项B正确。一个C程序必须从主函数main()开始运行,其他函数只能是直接或间接被main()函数调用才能得以运行,因此选项C错误。C语言不支持函数的嵌套定义,所有函数只能是全局函数,所以选项D错误。故应该选择B。
60.C解析:在C语言中,数组元素的下标只能是整型常量或整型表达式。
61.A本题考查数据库中的数据管理技术相关知识。
数据管理技术的发展大体可以归为三个阶段:人工管理、文件系统和数据库管理系统。
人工管理阶段:计算机主要用于科学计算。外部存储器只有磁带、卡片和纸带等还没有磁盘等直接存取存储设备。软件只有汇编语言,尚无数据管理方面的软件。数据处理方式基本是批处理。这个阶段有几个特点:数据不保存;应用程序中包含自己要用到的全部数据;数据不共享;数据不具有独立性。
文件系统阶段:计算机不仅用于科学计算,还用在信息管理方面。随着数据量的增加,数据的存储、检索和维护问题成为紧迫的需要,数据结构和数据管理技术迅速发展起来。此时,外部存储器已有磁盘、磁鼓等直接存取的存储设备。软件领域出现了操作系统和高级软件。操作系统中的文件系统是专门管理外存的数据管理软件,文件是操作系统管理的重要资源之一。数据处理方式有批处理,也有联机实时处理。在文件系统支持下,数据开始从程序中逐步独立出来,数据文件可以独立、长期地存储,数据的逻辑结构和物理结构有了一定的区别。数据的逻辑结构是指呈现在用户面前的数据结构形式。数据的物理结构是指数据在计算机存储设备上的实际存储结构。文件系统对计算机数据管理能力的提高虽然起了很大的作用,但是仍然存在许多根本性问题。主要表现在:数据文件是为满足特定业务领域某一部门的专门需要而设计,数据和程序相互依赖,数据缺乏足够的独立性;数据没有集中管理的机制,其安全性和完整性无法保障,数据维护业务仍然由应用程序来承担;数据冗余度大;对现有数据文件不易扩充,不易移植,难以通过增、删数据项来适应新的应用要求;各数据文件之间缺乏联系,互相独立,不能反映现实世界中事物之间的联系。文件系统管理数据有如下特点:数据可以长期保存;由文件系统管理数据;数据共享性差,冗余度大;数据独立性差。
数据库管理系统阶段:数据管理技术进入数据库系统阶段。数据库系统克服了文件系统的缺陷,提供了对数据更高级、更有效的管理。这个阶段的程序和数据的联系通过数据库管理系统来实现(DBMS)。数据库系统阶段的数据管理具有以下特点:
采用数据模型表示复杂的数据结构。数据模型不仅描述数据本身的特征,还要描述数据之间的联系,这种联系通过存取路径实现。通过所有的存取路径表示自然的数据联系是数据库与传统文件的根本区别。这样,数据不再面向特定的某个或多个应用,而是面向整个应用系统。数据冗余明显减少,实现了数据共享。
有较高的数据独立性。数据的逻辑结构与物理结构之间的差别可以很大。用户以简单的逻辑结构操作数据而无须考虑数据的物理结构。数据库的结构分成用户的局部逻辑结构、数据库的整体逻辑结构和物理结构三级。用户(应用程序或终端用户)的数据和外存中的数据之间转换由数据库管理系统实现。
数据库系统为用户提供了方便的用户接口。用户可以使用查询语言或终端命令操作数据库,也可以用程序方式(如用C语言和数据库语言联合编制的程序)操作数据库。
数据库系统提供了数据控制功能,增加了系统的灵活性。对数据的操作不一定以记录为单位,可以以数据项为单位。
62.B
63.D
64.C注:这一共同点和线性表不一样
65.C
\n本题考查for循环及if语句。当执行到第一个满足(i*i>一20)&&(i*i<=100)这个条件的i出现时,break跳出循环,执行下列的printf语句。
\n
66.C本题综合考查了输入函数的使用。scanf函数会将空格视为分隔符,getchar函数只能输入单个字符,getc函数是文件操作函数,显然都不符合题意。通过gets函数输入字符串时,输入的空格被认为是字符串的一个字符。
67.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。
68.D本题主要考查fscanf函数的调用形式。fscanf函数与scanf函数类似,都是格式化输入函数,它们不同的地方是:fscanf函数输入的对象不是终端,而是磁盘文件,函数的调用格式为:
fscanf(文件指针,格式字符串,输入表列)
其中文件指针指向待操作的磁盘文件,而格式字符串描述的是输入内容的格式,输入列表描述的是与输入格式对应的输入元素,输入列表中可以有多个输入元素。
69.BA选项去掉大括号就正确了;c选项和D选项应在定义时赋初值。因此B选项正确。
70.B本题主要考查循环队列的概念,循环队列作为队列的一种也应该是线性结构。队列是一种逻辑结构,而循环队列是一种顺序存储结构的队列。
71.B本题考查函数调用,由于a+b没有被括起来,所以s(a+b)=PT*a+b*a+b=5.5*1+2*1+2=9.5,故选择B。
72.B栈按后进先出的原则组织数据,因此入栈最晚的最先出栈,因此本题答案为B)。
73.A\n将结构变量作为形参,通过函数间形参与实参相结合的方式将整个结构传递给函数,这种传递方式是值传递。在被调用函数中,对结构形参变量值进行的任何修改都不会影啊到调凋函数中的结构变量。
\n
74.C数据管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。其中最后一个阶段结构简单,使用方便逻辑性强物理性少,在各方面的表现都最好,一直占据数据库领域的主导地位,所以选择C)。
75.A
76.B
77.C
78.B
79.D
\nscanf函数读取的是char型数据,所以回车时输入的换行符也是有效字符。于是cl,c2,c3,c4的内容分别是1,2,3,\n。
\n
80.C
81.(1)错误:t=0;
正确:*t=0;
(2)错误:if(d%2==0)
正确:if(d%2!=O)或if(d%2==1)
【解析】变量t定义为指针型变量,所以不能对t赋初值,不应该是t=0,而是*t=0;题目要求将长整型数中各位上为奇数的数依次取出,因此if语句里应该是d%2!=0。此题较简单,考查的是指针变量作为函数参数和奇偶的判断。
82.voidproc(intm,int*a,int*n){inti,j=0;for(i=1;i<=m;i++)//进行m次循环if(i%7==0||i%11==0)//能被7或11整除的所有整数a[j++]=i;//符合条件的数放在数组a中*n=j;//返回这些数的个数}【解析】本题需要先判断1~m每一个整数能否被7或11整除,然后将符合条件的整数放在数组a中,最后将符合条件的数的个数通过形参n返回主函数。2021年山东省德州市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若有定义floata[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为()。
A.334HB.30DHC.352HD.31AH
2.
3.为了使模块尽可能独立,要求()。
A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
4.若有以下定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]
5.若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
6.对于循环队列()。
A.无法判断队列是否为空B.无法判断队列是否为满C.队列不可能满D.以上说法都不对
7.在定义inta[5][6];后,数组a中的第10个元素是()。(设a[0][0]为第一个元素)
A.a[2][5]B.a[2][4]C.a[1][3]D.a[1][5]
8.下列程序的输出结果是()。#include<stdio.h>main{structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un))}A.6,2B.6,4C.8,4D.8,6
9.设变量n为f1oat类型,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
10.下面程序的输出结果是______。main(){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4;printf("%d\n",p[3]);}
A.6B.7C.3D.5
11.在含有n个项点有e条边的无向图的邻接矩阵中,零元素的个数为________。
A.eB.2e9C.n2-eD.n2-2e
12.以下叙述中正确的是()
A.C程序由函数和过程组成B.C程序由主函数组成C.C程序由函数组成D.C程序中,主函数必须放在其他函数之前
13.设有定义“inta;floatb;”,执行“scanf(“%2d%f”,&a,&b);”语句时,若从键盘输入876543.0并按<Enter>键,则a和b的值分别是()。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
14.以下选项中与“if(a==l)a=b;elsea++;”语句功能不同的switch语句是()。
A.switch(a){casel:a=b;break;default:a++;}
B.switch(a==l){case0:a=b;break;casel:a++;}
C.switch(a){default:a++;break;casel:a=b;}
D.switch(a==l){casel:a=b;break;case0:a++;}
15.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;则与上述程序段功能等价的赋值语句是()。
A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;
16.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为()。
A.20B.0或35C.15D.16
17.线性结构是数据元素之间存在一种()。
A.一对多关系B.多对多关系C.多对一关系D.一对一关系
18.有下列程序:
程序执行后的输出结果是()。
A.30B.35C.40D.32
19.
20.对于如图所示二叉树采用中根遍历,正确的遍历序列应为()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF
二、2.填空题(20题)21.“printf("%d\n",strlen("\t\"\023\xAB\nC"));”语句的输出结果是()。
22.数据结构分为线性结构和非线性结构,线性表、栈和队列都属于【】。
23.要求使下列程序输出5个整数,请填空。
for(i=0;i<=______;printf("%d\n",i+=2));
24.下列程序的输出结果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
25.以下程序的功能是:处理由学号和成绩组成的学生记录,N名学生的数据已在主函数中放入结构体数组s中,它的功能是:把分数最高的学生数据放在h所指的数组中,注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。请填空。
#include<stdio.h>
#defineN16
typedefstruct
{charnum[10];
ints;
}STREC;
intfun(STREC*a,STREC*b)
{inti,j=0,max=a[0].s;
for(i=0;i<N;i++)
if(max<a[i].s)max=a[i].s;
for(i=0;i<N;i++)
if(【】)b[j++]=a[i];
returnj;
}
main()
{STRECs[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},
{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},
{"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}
};
STRECh[N];
inti,n;FILE*out;
n=fun(s,h);
printf("The%dhighestscore;\n",n);
for(i=0;i<n;i++)
printf("%s%4d\n",h[i].num,h[i].s);
printf("\n");
out=fopen("out15.dat","w");
fprintf(out,"%d\n",n);
for(i=0;i<n;i++);
fprintf(out,"%4d\n",h[i].s);
fclose(out);
}
26.以下程序的功能是将字符串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);
}
27.性结构中,队列的操作顺序是先进先出,而栈的操作顺序是______。
28.以下程序运行后输出的结果是【】。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{
case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
29.已有定义:double*p;,请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元______。
30.下面程序的输出是【】。
main()
{enumem{em1=3,em2=1,em3};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);
}
31.函数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;j<N;i++)
{x[i][0]=______=1;
for(j=1;j<i;j++)
x[i][j]=______;
}
}
32.设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=______;
scanf("%d%d%d",&x,&y,&z}:
big=(*f)(x,y,Z);
printf("big=%d\n",big);
}
33.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。
34.软件的【】设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。
35.下面程序执行后输出的结果是【】。
intm=13;
intfun(intx,inty)
{intm+3;
return(x*y-m);
}
main()
{inta=7,b,5;
prntf("%d\n",fun(a,B)/m);
}
36.在面向对象方法中,类的实例称为______。
37.以下程序中,for循环体执行的次数是【】。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{
inti;
for(i=1;i<K;i++)
{…}
…
}
38.下列程序的运行结果是______。
#include<stdio.h>
main()
{intfun();
fun();
}
fun()
{staticinta[4]={1,2,3,4};
inti;
for(i=0;i<4;i++)a[i]+=a[i];
for(i=0;i<4;i++)printf("%d,",a[i]);
printf"\n");
}
39.在面向对象方法中,允许作用于某个对象上的操作称为【】。
40.下面的程序用来统计文件中字符的个数。请填空。
#include<stdio.h>
main()
{FILE*fP;
longnum=0;
if((fp=fopen("fname.dat","r"))==NULL)
{printf("Can'topenfile!\n");sxit(0);}
while【】
{fgetc(fp);num++;}
printr("num=%d\n",num);
fclose(fp);
}
三、1.选择题(20题)41.有以下函数intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下关于aaa函数的功能的叙述正确的是A.求字符串s的长度B.比较两个串的大小C.将串s复制到串tD.求字符串s所占字节数
42.在C语言程序中,下列说法正确的是()。
A.函数的定义和函数的调用均可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义可以嵌套,但函数的调用不可以嵌套
D.函数的定义和函数的调用均不可以嵌套
43.若x为int类型变量,则执行以下程序段后的x值是______。x=6;x+=x-=x*x;
A.36B.-60C.60D.-24
44.下列程序的输出结果是_____。main(){intn=4;while(n--)printf("%d",--n);}
A.20B.31C.321D.210
45.下列关于栈的叙述中正确的是
A.在栈中只能插入数据B.在栈中只能删除数据C.栈足先进先出的线性表D.栈是先进后出的线性表
46.下列对于线性链表的描述中正确的是()
A.存储空间不一定是连续,且各元素的存储顺序是任意的
B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
47.阅读下面程序段,则执行后的结果为#inclide"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
48.以下函数findmin拟实现存数组中查找最小值作为函数值返回,但程序中有错导致不能实现预定功能。#defineMAX2147483647intfindmin(intx[],intn){inti,min;min=MAX;for(i=0;i<n;i++){if(min<x[i])min=x[i];}}造成错误的原因是()。
A.定义语句inti,min;中min未赋初值
B.赋值语句min=MAN;中,不应给min赋MAX值
C.语句if(min<X[i])min=X[i];中判断条件设置错误
D.赋值语句min=MAX;放错了位置
49.以下不能定义为用户标识符的是()。
A.scanfB.VoidC.3comD.int
50.已定义下列函数:intfun(int*p){return*p;)fun函数返回值是()。
A.不确定的值B.一个整数C.形参p中存放的值D.形参p的地址值
51.以下程序的输出结果是()。#include<stdio.h>main(){inta=8,b=6,m=1;switch(a%4){case0:m++;break;case1:m++;switch(b%3){default:m++;case0:m++;break;}}printf("%d\n",m);}
A.1B.2C.3D.4
52.若有定义语句:intk[2][3],*pk[3];,则以下语句中正确的是A.pk=k;B.pk[0]=&k[1][2];C.pk=k[0];D.pk[1]=k;
53.下面对对象概念描述错误的是()
A.任何对象都必须有继承性B.对象是属性和方法的封装体C.对象间的通讯靠消息传递D.操作是对象的动态属性
54.结构化程序设计主要强调的是()。
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性
55.按条件f对关系R进行选择,其关系代数表达式为
A.
B.
C.
D.
56.有以下程序main(){union{unsignedintn;unsignedcharc;}ul;u1.C='A';pfintf("%c\n",u1.n);}执行后输出结果是
A.产生语法错B.随机值C.AD.65
57.有以下程序:#include<stdio.h>#defineX5+6main(){inta=2,c;C=X*2:printf("%d",C);}程序运行后的输出结果是()。
A.17B.22C.16D.11
58.设整型数i=5,则printf("%d",i+++++i);的输出为______。
A.10B.11C.12D.语法错误
59.以下关于函数的叙述中正确的是______。A.每个函数都可以被其他函数调用(包括main函数)
B.每个函数都可以被单独编译
C.每个函数都可以单独运行
D.在一个函数内部可以定义另一个函数
60.在C语言中引用数组元素时,其数组下标的数据类型只能是()。
A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式
四、选择题(20题)61.在数据管理技术的发展过程中,先后经历了人工管理阶段、文件系统阶段和数据库系统管理阶段。其中数据独立性最高的阶段是
A.数据库系统B.文件系统C.人工管理D.数据项管理
62.
63.若x是int型变量,且有下面的程序片段:
上面程序片段的输出结果是()。
A.
B.
C.
D.
64.(52)栈和队列的共同点是()
A.都是先进后出B.都是先进先出
C.只允许在端点处插入和删除元素
D.没有共同点
65.
下列程序的输出结果是()。
#include<stdio.h>
main
{inti;
for(i=1;i<=10,i++)
{if((i*i>=20)&&(i*i<=100))
break;
}
printf("%d\n",i*i;
}
A.49B.36C.25D.64
66.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。
A.seanf
B.getchar
C.gets
D.getc
67.数据库系统的核心是()。
A.数据模型B.数据库管理系统C.数据库D.数据库管理员
68.fscanf函数的正确调用形式是
A.fscanf(文件指针,格式字符串,输出表列);B.fscanf(格式字符串,输出表列,文件指针);
C.fscanf(格式字符串,文件指针,输出表列);D.fscanf(文件指针,格式字符串,输入表列);
69.以下选项中正确的语句组是()。
A.char*s;8={1.BOOK!”}i
B.char*s;8=”BOOK!”;
C.charS[10];S=”BOOK!”;
D.charS[];S=”BOOK!”;
70.下列叙述中正确的是()。
A.循环队列是队列的一种链式存储结构
B.循环队列是队列的一种顺序存储结构
C.循环队列是非线性结构
D.循环队列是一种逻辑结构
71.以下程序运行后,输出结果是()。
#include<stdio.h>
#definePT5.5
#defineS(x)PT*x*X
main
{inta=1,b=2:
printf("%4.1f\n",s(a+b));
}
A.49.5B.9.5C.22.0D.45.0
72.一个栈的初始状态为空。现将元素l、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,恻元素出栈的顺序是()。A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.5432lEDCBA
73.有以下程序:
#include<stdi0.h>
#include<string.h>
structA
{inta;charb[10];doubleC;);
voidf(structAt);
main()
{structAa={"1001,"ZhangDa",l098,0};
f(a);printf("%d,%S,%6.1f\n",a.a,a.b,a.c);}
voidf(structAt)
{t.a=1002;strcpy(t.b,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 户外冰雪世界运营方案
- diy蛋糕店运营方案
- 键鼠品牌运营思路及方案
- 江西mom管理运营方案
- 抖音速配厅运营方案
- 大跨度模块化厂房预制安装方案
- 商城运营规划整改方案
- 核电站核辅助设施施工方案
- 抖音站内流量运营方案
- 5G通信市场竞争地位分析2025年可行性分析报告
- 电商平台食品安全管理制度
- T-CECS120-2021套接紧定式钢导管施工及验收规程
- 输油管道初步设计-本科毕业论文
- 突发环境事件应急预案评审会汇报课件-(模板)
- JTS-T-116-2019水运建设工程概算预算编制规定
- 《公路桥涵养护规范》(JTG5120-2021)
- 饲料质量培训课件
- 高考英语高频词组+短语+固定搭配
- 王慧文清华大学《互联网产品管理课》
- 3206回撤作业规程
- 循证医学课件:临床实践指南的评价与应用
评论
0/150
提交评论