版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年河北省衡水市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.树最适合用来表示()。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据
3.折半查找的时间复杂性为()
A.O(n2)B.O(n)C.O(nlogn)D.O(logn)
4.以下叙述中正确的是A.A.C程序中的注释只能出现在程序的开始位置和语句的后面
B.C程序书写格式严格,要求一行内只能写一个语句
C.C程序书写格式自由,一个语句可以写在多行上
D.用C语言编写的程序只能放在一个程序文件中
5.以下关于注释的叙述中错误的是()。
A.注释的边界符号“/”和“*”之间不允许加入空格
B.C语言允许注释出现在程序中任意合适的地方
C.注释的内容仅用于阅读,对程序的运行不起作用
D.注释的边界符号“/*”和“*/”必须成对出现且可以嵌套
6.若函数调用时的实参为变量,下列关于函数形参和实参的叙述中正确的是()。
A.函数的形参和实参分别占用不同的存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的实参和其对应的形参共占同一存储单元
7.下列程序的输出结果是
#include"stdio.h"
#defineN3
#defineM3
voidfun(inta[M][N])
{printf("%d\n",*(a[1]+2));}
main()
{inta[M][N];
inti,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
a[i][j]=i+j-(i-j);
fun(a);}
A.3B.4C.5D.6
8.下列正确的实型常量是()。
A.E3.4B.-12345C.2.2eO.8D.4
9.有以下程序
#include<stdio.h>
voidfun(intx)
{if(x/2>1)fun(x/2);
printf(”%d”,x);
}
main()
{fun(7);printf(”\n”);}
程序运行后的输出结果是()。A.137B.731C.73D.37
10.下列程序段中完全正确的是()。A.int*p;scanf(“%d”,&p);
B.int*p;scanf(“%d”,p);
C.intk,*p=&k;scanf(“%d”,p);
D.intk,*p;*p=&k;scanf(“%d”,p);
11.某二叉树的前序和后序序列正好相反,则该二叉树一定是_____的二叉树
A.空或者只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子
12.若已知一个栈的入栈序列是1,2,3,......,n,其输出序列为p1,p2,p3,..,pn,若p1=n-1,则pi可能为()
A.nB.n-iC.n-i+1D.不确定
13.若有下面的说明和定义
structtest
{intml;charm2;floatm3;
unionuu{charul[5];intu2[2];}ua;
}myaa;
则sizeof(structtest)的值是A.A.12B.16C.14D.9
14.设串s1='ABCDEFG',s2='PQRST',函数StrCat(x,y)返回x和y串的连接串,StrSub(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,StrLen(s)返回串s长度,则StrCat(StrSub(s1,2,StrLen(s2)),StrSub(s1,StrLen(s2),2))的结果串()。
A.BCDEFB.BCDEFGC.BCPQRSTD.BCDEFEF
15.链栈与顺序栈相比,比较明显的优点是()。
A.插入操作更加方便B.删除操作更加方便C.不会出现下溢的情况D.不会出现上溢的情况
16.有下列程序:程序执行后的输出结果是()。A.2,3,1,2B.9,9,2,9C.8,10,2,8D.9,9,1,9
17.设线性链表中结点的结构为(data,next)。已知指针q所指结点是指针结点p的直接前驱,若在*q与*p之间插入结点*s,则应执行下列()操作。
A.s->next=p->next;p->next=s;
B.q->next=s;s->next=p;
C.p->next=s->next;s->next=p;
D.p->next=s;s->next=q;
18.下列叙述中正确的是()。
A.数据库系统是一个独立的系统,不需要操作系统的支持
B.数据库技术的根本目标是要解决数据的共享问题
C.数据库管理系统就是数据库系统
D.以上三种说法都不对
19.串是一种特殊的线性表,其特殊性体现在()。
A.可以顺序存储B.数据元素是一个字符C.可以链接存储D.数据元素可以是多个字符
20.以下不能将s所指字符串正确复制到t所指存储空间的是()。A.while(*t=*s){t++;s++;}
B.for(i=0;t[i]=s[i];i++);
C.do{*t++:*s++;}while(*s);
D.for(i=0,j=0;t[i++]=s[j++];);
二、2.填空题(20题)21.由25人围坐成圆圈,先由任意一人开始顺时针沿用1~25依次编号,然后从1号开始顺时针报数(1、2、3…),凡报5的倍数者出圈,剩下者继续报数,求出最后出圈者的编号。
#include
main()
{inta[26],j,n,count;
for(j=1;j<=25;j++)a[j]=j;
j=1;count=0;n=【】;
do
{
if(a[j]!=0)
{n++;
if(n%5==0)
{【】;
if(count==24)printf("%d\n",,j);
count++;
}
}
j++;
if(j>25)j=1;
}
while(【】);
}
22.数据模型是用来描述数据库的结构和语义的,数据模型有概念数据模型和结构数据模型两类,E-R模型是【】
23.下面程序的输出是()。
main()
{intarr[8],i,k=0;
for(i=0;i<8;i++)
arr[i]=i;
for(i=1;i<5;i++)
k+=arr[i]+i;
printf("%d\n",k);
}
24.以下程序的输出结果是12.00,请将空白处填写完整。
main()
{inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1*2;
printf("%52f\n",z);
}
25.设有下列宏定义:
#defineA2
#defineB(A+3)
则执行赋值语句"k=B*20;"(k为int型变量)后,k的值是______。
26.下面程序的运行结果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}
27.若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:
fp=fopen(【】);。
28.算法的复杂度主要包括【】复杂度和空间复杂度。
29.若a是int型变量,则表达式(a=2*3,a*2),a+4的值为______。
30.下列程序的输出结果是【】。
#include<stdio.h>
main()
{charb[]="Helloyou";
b[5]=0;
printf("%s\n",b);
}
31.函数delete(s,i,n)是作用是从字符串s中删除从第i个字符开始的n个字符,请填空。
voiddelete(chars[],inti,intn)
{intj,k,length=0;
while(s[length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]\'\0';
}
32.用下面语句调用库函数malloc,使单精度型指针p指向具有40个字节的动态存储空间,请填空。
p=(float*)【】;
33.以下程序运行后输出的结果是【】。
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);
}
34.函数compare的功能是比较两个字符串是否相等,若相等则函数返回值0,否则返回值1,请填空。
compare(chars[],chart[])
{inti=0;
while(s[i]==t[i]||【】)i++;
return(【】?1:0);
}
35.若x,y和z均是int型变量,则执行下面表达式后的x值为【】。
x=(y=4)+(z=2)
36.设有定义“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc【】a。
37.用复合的赋值运算符将变量x中的值增大2的赋值表达式是【】。
38.数据库管理系统是位于用户与______之间的软件系统。
39.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。
40.下列程序的功能是将字符串s中所有的字符c删除。请填空。
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(S);
for(i=j0;s[i]!'\0';i++)
if(s[i]!='c')______;
s[j]='\0;
puts(S);
}
三、1.选择题(20题)41.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是()。
main()
{floata,b,C,t;
scanf("%f,%f,%of",&a,&b,&C);
if(a<B)
{t=a;a=b;b=t;}
if(a<C)
{t=a;a=c;c=t;}
if(b<C)
{t=b;b=c;c=t;}
printf("%f\n%f\n%f\n",a,b,C);
}
A.1.002.003.00
B.1.003.002.00
C.132
D.3.0000002.0000001.000000
42.
若有下列定义和语句:
intu=011,v=0x11,w=11;
printf("%o,%x,%d\n",u,v,w);
则输出结果是()。
A.9,17,11B.9,11,11C.11,11,11D.11,17,11
43.在C语言中,函数的隐含存储类别是()
A.staticB.autoC.externD.register
44.以下叙述中错误的是
A.gets函数用于从终端读入字符串
B.getehar函数用于从磁盘文件读入字符
C.fputs函数用于把字符串输出到文件
D.fwrite函数用于以二进制形式输出数据到文件
45.若t为doudle类型,表达式t=1,t+5,t++的值是()
A.1B.6C.2D.1
46.设有以下说明语句:structex{intx;floaty;charz;}example;在下面的叙述中,不正确的一条是______。
A.struct是结构体类型的关键词
B.example是结构体类型名
C.x,y,2都是结构体成员名
D.structex是结构体类型
47.fwrite函数的一般调用形式是
A.fwrite(buffer,count,size,fp);
B.fwrite(fP,size,count,buffer);
C.fwrite(fp,count,size,buffer);
D.fwrite(buffer,size,count,fp);
48.请读程序:#include<stdio.h>inta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p++;printf("%d\n”,a[2]);}上面程序的输出结果是()
A.6B.8C.4D.2
49.在C语言中,关于函数fseek的说法正确的是()。
A.使位置指针重新返回文件的开头
B.使位置指针到文件的结尾
C.可以改变文件位置指针
D.利用fseek函数只能实现文件顺序读写
50.关系数据库管理系统能实现的专门关系运算包括()。
A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表
51.以下叙述十正确的是
A.全局变量的作用域一定比局部变量的作用域范围大
B.静态(static)类别变量的生存期贯穿于整个程序的运行期间
C.函数的形参都属于全局变量
D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值
52.软件需求分析一般应确定的是用户对软件的______。
A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求
53.有以下程序:main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}执行后输出结果是()。
A.11122B.12C.12020D.120
54.以下程序的输出结果是()。main(){intx=11,y=11;printf("%d,%d\n",X--,--y);}
A.11,11B.10,10C.10,11D.11,10
55.有以下程序#include<stdio.h>sub1(chara,charB){charc;c=a;a=b;b=c;}sub2(char*a,charB){charc;c=*a;*a=b;b=c;}sub3(char*a,char*B){charc;c=*a;*a=*b;*b=c;}main(){cha,a,b;a='A';b='B';sub3(&a,&b)putchar(a);putchar(b);a='A';b='B';sub2(&a,b);putchar(a);putchar(b);a='A';b='B';sub1(a,b);putchar(a);putchar(b);}程序运行后的输出结果是()
A.BABBABB.ABBBBAC.BABABAD.BAABBA
56.电子数字计算机最主要的工作特点是()
A.高速度B.高精度C.存储程序与自动控制D.记忆力强
57.以下选项中可作为C语言合法常量的是
A.-80B.-080C.-8e1.0D.-80.0e
58.与进制数101.01011等值的十六进制数是()
A.A.BB.5.51C.A.51D.5.58
59.数据的存储结构是指______。
A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据
60.有以下程序:#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
四、选择题(20题)61.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。
A.scanfB.getcharC.getsD.getc
62.有以下程序:
程序运行后的输出结果是()。
A.0B.一1C.1D.7
63.在结构化程序设计中,模块划分的原则是()。
A.各模块应包括尽量多的功能
B.各模块的规模应尽量大
C.各模块之间的联系应尽量紧密
D.模块内具有高内聚度,模块间具有低耦合度
64.若程序中有宏定义行:#defineN100则以下叙述中正确的是()。
A.宏定义行中定义了标识符N的值为整数100
B.在编译程序对C源程序进行预处理时用100替换标识符N
C.对C源程序进行编译时用100替换标识符N
D.在运行时用100替换标识符N
65.
66.有以下程序:
程序运行后的输出结果是()。
A.8B.2C.4D.1
67.
68.
69.已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97。以下不能将变量C中的大写字母转换为对应小写字母的语句是()。
A.C=(。A’+C.%26一"a"B.c=c+32C.c=c一"A"+"a"D.c=(c一’A")%26+-a"
70.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。
A.125B.n/2C.nD.n+1
71.
若已包括头文件<string.h>且已有定义charsl[18],s2={"ABCDE")和inti,现要将字符串”ABCDE”赋给sl,下列语句错误的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.sl="ABCDE";
D.for(i=0;i<6;i++)sl[i]=s2[i]
72.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用(双引号)括起时,寻找被包含文件的方式是()。
A.直接按系统设定的标准方式搜索目录
B.先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索
C.仅仅搜索源程序所在目录
D.仅仅搜索当前目录
73.数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为()。
A.CB.BasicC.DDLD.DML
74.
以下程序的输出结果是()。
main
{charw[][10]={"ABCD","EFGH","IJKL","
MNOP"),K;
for(k=1;k<3;k++)printf("%s\n",w[k]);
A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL
75.有以下程序:
程序运行后的输出结果是()。
A.4,5,6,4,5,6,
B.1,2,3,4,5,6,
C.4,5,6,1,2,3,
D.6,5,4,3,2,1,
76.有以下程序:
程序运行后的输出结果是()。
A.9B.7C.5D.3
77.有以下程序
78.数据库的故障恢复一般是由
A.数据流图完成的B.数据字典完成的C.DBA完成的D.PAD图完成
79.下列说法正确的是()。
A.在C语言中,可以使用动态内存分配技术定义元素个数可变的数组
B.在c语言中,数组元素的个数可以不确定,允许随机变动
C.在C语言中,数组元素的数据类型可以不一致
D.在C语言中,定义一个数组后.就确定了它所容纳的元素的个数
80.
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:从字符串str中,删除所有大写字母F。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
voidproc(char*str)
{
inti,j;
//****found****
for(i=j=0;str[i]一0;i++)
if(str[i]!=F)
//****found****
str[i]=str[i];
str[j]=\0;
}
voidmain
{
charstr[80];
printf("\nEnterastring:");
gets(str);
printf("Theoriginalstring:");
puts(str);
proc(str);
printf("Thestringafterdeleted:");
puts(str);
printf("\n\n");}
六、程序设计题(1题)82.编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到pl所指的字符串的后面。
例如,分别输人下面两个字符串:FirstString——SecondString
程序运行后的输出结果是:FirstString————SecondString
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
参考答案
1.D
2.C树最适合用来表示元素之间具有分支层次关系的数据,故本题选C。
3.D
4.C
5.D在编写程序时可以在程序中加入注释。在添加注释时,注释内容必须放在符号“/*”和“*/”之间,“/*”和“*/”必须成对出现,“/*”与“*/”之间不可以有空格,选项A正确;注释可以用英文,可以用中文,可以出现在程序中任意合适的地方,选项B正确;注释部分只适用于阅读,对程序的运行不起作用,选项C正确;使用“/*”和“*/”的注释之间不可再嵌套“/*”和“*/”,选项D错误。故本题答案为D选项。
6.A在定义函数时,函数名后面圆括号中的变量名称为“形式参数”(简称形参)。在主调函数中调用一个函数时,函数名后面圆括号中的参数(可以是一个表达式)称为“实际参数”(简称实参)。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传给实参。在内存中,实参单元与形参单元是不同的单元。故本题答案为A选项。
7.B解析:若有以下定义:inta[3][4],i,j;且当0<=i<3,0<=j<4,则可以有以下几种方式来引用数组中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。
8.B解析:实型常量有两种书写形式:①小数形式,它由符号、整数部分、小数点及小数部分组成;②指数形式,由十进制小数形式加上指数部分组成,其形式为十进制小数e指数或十进制小数E指数。注:e或E后面的指数必须是整数,并且在e或E的前面必须有数字。本题中,选项A)中E的前面没有数字,因此错误。选项C)中0.8不是整数,因此错误。选项D)中4是整型常量而不是实型常量。
9.D解析:本程序主要考查递归函数。fun(7),首先将参数代入函数,因为(7/2)>1,所以执行f(3),以此类推直到f(1.5),(1.5/2)<1,所以执行打印函数,此时x值为3,然后退出f(1.5)返回f(3),打印x值即7。所以选D。
10.CA选项中,没有对指针进行初始化,属于无效指针,并且在“scanf(“%d”,&p);”中无须再进行取地址操作;B选项中,没有对指针进行初始化,属于无效指针;D选项中,语句“*p=&k;”书写错误,应为“P=&k;”。故本题答案为C选项。
11.B
12.D
13.A
14.D
15.D
16.D程序定义了一个整型数组a,它包含5个整型元素,分别是1,2,3,4,5。数组名a代表数组的首地址,另外还定义整型指针P,将a传给函数f。在函数f中,首先将指针s向右移动一个整型变量的长度,此时s指向元素2(a[1])。S[1](a[2]);表示元素3,自增6后s[1](a[2])的值为9。表达式“+=7”;表示将*(s--)指向的元素自增7,即S[0](a[1])的值为9,s向左移动一个整型变量的长度,此时s指向元素1(a[0]),最后将s返回并赋给p。经过函数f的调用可知:P指向数组a的第1个元素,a[1]和a[2]值为9。综上,输出结果为:9,9,1,9。本题答案为D选项。
17.B
18.B解析:本题考查数据库系统的基本概念和知识。
数据库系统除了数据库管理软件之外,还心须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,选项A的说法是错误的。
数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项B的说法是正确的。
通常将引入数据库技术的计算机系统称为数据库系统。一个数据库系统通常由五个部分组成,包括相关计算机的硬件、数据库集合、数据库管理系统、相关软件和人员。
因此,选项C的说法是错误的。
因此,本题的正确答案是选项B。
19.B
20.C解析:C项复制时没有复制结束串“\0”。
21.0a[j]=0count<25
22.概念数据模型概念数据模型
23.20
解析:a/2=9/2=4,1/2=0,于是根据输出结果就有下列等式:z=4+2*x/1.1=12.0,化简后,为x/1.1=4,x=4.4。
25.100100解析:本题考查带参数的宏定义及相关运算。运算过程为:k=B*20=(A+3)*20=(2+3)*20=100。
26.5555解析:分析程序执行过程,第一次循环时,j=3,i=5,因为switch(3),所以执行case3,调用P(a[--i])=P(a[4])=P(5),输出5;第二次循环时,j=2,i=4,因为switch(2),所以执行case2,调用P(a[i++])=P(a[4])=P(5),输出5,之后i自加1等于5。
27.d1.dat"rb"d1.dat,'rb'解析:打开文件的函数为fopen('文件名','mode'),其中'mode'表示文件的打开方式。如果打开的是二进制文件,其mode字符串可以是:'rb'、'wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只读方式打开。'w'表示以写方式打开,如果已存在该文件名的文件,文件中的内容将被清空。若文件名不存在,则将创建该文件。'a'为追加方式打开。若文件存在时,将打开这个文件并且在文件的末尾进行追加。当文件不存在,将创建新文件。'r+'打开一个已存在文件用于更新(可读可写)。\'w+'创建一个新文件用于更新,如果文件存在,文件被重写(可读可写)。'a+'打开用于追加,当文件不存在时,创建新文件,并在文件末尾进行追加(可读可写)。根据题意,应该填'd1.dat','rb'。
28.时间时间解析:算法的复杂度主要指时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
29.此题考查逗号表达式。逗号表达式的值是最后一个表达式的值,所以本题的返回值是a+4。前面已经给a赋值6,所以返回值a+4=6+4=10。
30.HelloHello解析:语句b[5]=0;相当于语句b[5]='\\0';且'\\0'为字符串结束标志,输出时遇到'\\0'就停止输出。
31.length++i<lengthlength++\r\ni<length解析:第一个循环极有可能是计算串的长度,在i<=length时字符才被删除,被删除的是第i个到第i+n或最后一个间的所有字符。删除前,应判断i<=length。由于已经进行了-i运算,故实际应填入i<length。
32.malloc(40)malloc(40)解析:库函数malloc()只有一个参数,就是所需分配内存的字节数,然后返回一个void*指针。本题要求分配40个字节,故直接调用malloc(40)就可以了。
33.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。
34.s[i]!='\0'||t[i]!='\0's[i]=='\0'&&t[i]=='\0's[i]!='\\0'||t[i]!='\\0'\r\ns[i]=='\\0'&&t[i]=='\\0'
35.6
36.->->解析:若结构体变量abc有成员a,并有指针p_abc指向结构变量abc,则引用变量abc成员a的标记形式有abc.a和p_abc->a。
37.x+=2
38.操作系统操作系统解析:数据库管理系统是帮助用户创建和管理数据库的应用程序的集合。因此,数据库管理系统需要操作系统的支持,为用户提供服务。
39.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。
40.s[j++]=s[i]s[j++]=s[i]解析:循环开始后如果数组s中储存值与字符c相同,则i++直接跳过当前值;如果不相同,则将当前值赋予数组指定位置,并通过.j++将下标加1,指向下一元素要存储的位置。
41.D解析:本题考查if语句。第1个if语句,实现如果a<b,则交换a、b值的功能;第2个if语句,实现如果a<c,则交换a、c的值的功能;第3个if语句,实现如果b<c,则交换b、c的值的功能。3个if语句结合起来实现的功能就是将a、b、c按从大到小排序。
42.C解析:在C语言中,“%d”表示输出带符号的十进制整型数;“%x”表示以十六进制无符号型输出整型数据(即不带前导0x或0X);“%o”表示以八进制无符号型输出整型数据(即不带前导0)。
43.C
44.B
45.C
46.B解析:example是结构体类型变量名,因此选项B的说法是不正确的。
47.D解析:fwrite的形式是fwrite(buffer,size,count,fp),buffer表示准备输出的数据块的起始地址,size表示每个数据块的字节数,count用来指定每写一次或输出的数据块,fp为文件指针。
48.A
49.C解析:fseek()函数可以自由的改变文件位置指针的位置,即可以自由读写文件中的任何位置,故选项A、B、D都是错误的,应该选择C。
50.B解析:此题为数据库的基本概念,可以对照办工软件的电子表格进行如下理解:选择:我们根据某条件选择出一行或多行元组(一个元组即为二维表中的一行)。投影:按字段(也称属性,比如学生关系(学号,姓名,出生年月,性别),学号、姓名…都是属性)选取一列或多列(一个二维表中所有元组在某一列或几列上截取出来)。连接:2个或2个以上的表连接组成一张新的表,通常有条件连接。比如学生关系(学号,姓名,系号),又有一张系表(系号,系名,主任),2张表可以合并为一张这样的表(学号,姓名,系号,系名,主任)。
51.B解析:若在函数中定义与全局变量名字相同局部变量,则全局变量在该函数中将不起作用,因此全局变量的作用域并不一定比局部变量的作用域大,故选项A不正确;静态变量一旦定义,将在整个程序的运行期间都存在,故选项B正确:函数的形参只在函数调用的时候分配存储空间,在退出函数时收回存储空间,因此是局部的,故选项C不正确;没有赋值的auto型变量的初值是随机的,没有赋值的static型变量的初值是0,故选项D不正确。所以,B选项为所选。
52.DD。【解析】软件需求分析中需要构造一个完全的系统逻辑模型,理解用户提出的每一功能与性能要求,使用户明确自己的任务。因此,需求分析应确定用户对软件的功能需求和非功能需求。
53.A解析:for循环执行了3次,第一次时i的值为0,执行其后的switch语句,没有匹配的分支,执行default语句后的printf语句,输出为0;第二次循环时i的值为1,执行其后的switch语句,与第一个分支匹配,执行其后的primf语句,输出1,由于没有遇到break语句,所以一直向下执行,又输出了两个1,第三次循环时i值为2,执行其后的switch语句,同理输出两个2。所以,A选项是正确的。
54.D解析:X--是先使用x的值再对x减1,即输出11;--y是先对y减1再使用y的值,输出10。格式控制中的普通字符“,”原样输出。所以选项D符合题意。
55.A
56.B解析:通常所说的计算机应是电子数字计算机的简称。电子数字计算机是一种能快速、自动进行数值计算和信息处理的计算工具。其主要特点是:(1)计算机能快速计算;(2)计算机是具有通用性的计算工具;(3)计算机具有高准确度;(4)计算机具有逻辑判断能力。
57.A解析:C语言的常量分为整型常量、实型常量和字符型常量。本题中包含整型常量和实型常量。选项B)以0打头,应该属于八进制整数,而八进制整数只能用数字0~7表示,所以选项B)不合法;选项C)和D)从形式上看属于实型常量,但对于指数形式的实型常量,e(或E)之前必须有数字,且e后面的指数必须为整数,所以选项C)和D)都不合法;选项A)属于实型常量中正确的十进制小数形式。
58.D
59.B解析:数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般不可能相同。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构。
60.B解析:函数fopen(constchar*filename,constchar*mode)的功能,是以mode指定的模式打开filename指定的磁盘文件;fclose(FILE*fp)的功能是关闭文件指针fp指向的文件;函数fscanf(FILE*fp,constchar*format[,address,--])的功能是根据format中的格式从fP指向的文件中读取数据,并存入到相应的address指向的变量中。函数fprintf(FILE*fp,constchar*format[,argument,--])的功能是把argument列表中的表达式值写到fp所指向的文件中:本题中首先定义了一个文件指针fp,然后通过函数fopen以“w”的方式打开文件“d1.dat”,直接通过一个for循环,每循环一次调用函数fpfintf将i的值写进fP所指的文件中,该循环共循环3次,循环完后fP所指文件的内容为123,然后通过fclose函数关闭fp所指文件。接着通过fscanf函数将fP所指文件的内容读出并赋值给变量k和变量n,由于fp所指文件中只有123没有分隔符,故只给k赋值为123,变量n的值依然为以前的值,故最后输出k和n的值为123。
61.C解析:C语言提供了许多输入函数,其中有:getchar(输入字符)、scanf(格式输入)和gets\u3000(输入字符串)等。题目要求输入的是字符串,所以可以排除getchar,而且要求输入的字符串中包含空格,而scanf函数默认将输入的空格字符作为分割符,所以空格不会被输入,故可排除scanf。getc的作用是从文件中输入一个字符,故也不可取。gets函数可以输入一整行作为一个字符串,其中也包括空格字符,故应该选择C。
62.Ba一一的含义是先用后减l,所以当a的值为0时,跳出循环,但是仍要执行a一一,g的值变为一1。
63.D解析:本题考查软件工程中软件设计的概念和原理。人们在开发计算机软件的长期实践中积累了丰富的经验,总结这些经验得到如下的启发式规则:
(1)改进软件结构,提高模块独立性;通过模块的分解或合并,力求降低耦合提高内聚。低耦合也就是降低不同模块间相互依赖的紧密程度,高内聚是提高一个模块内各元素彼此结合的紧密程度。
(2)模块的规模应适中。一个模块的规模不应过大,过大的模块往往是由于分解不够充分:过小的模块开销大于有益操作,而且模块过多将使系统接口复杂。因此过小的模块有时不值得单独存在。
(3)模块的功能应该可以预测,但也要防止模块功能过分局限。如果模块包含的功能太多,则不能体现模块化设计的特点:如果模块的功能过分的局限,使用范围就过分狭窄。
经过上述分析,本题的正确答案是选项D。
64.B解析:宏定义是预处理命令,即在C源程序进行编译之前,编译程序对源程序进行编译预处理时所进行的一种替换操作。所以选项C和\u3000D可以排除。宏定义是用宏名代替一个字符串,也就是作简单的置换,不做正确性检查。所以选项A的叙述也不正确,宏替换时100被当作一个字符串来替换宏名的,而不是被看作整数值100。故本题的正确答案为B。
65.B
66.A第一次调用m=f(f(f(1))),第二次为m=f(f(2)),第三次为m=f(4),即返回值为8。
67.A
68.B
69.A根据题意可知,小写字母比与之对应的大写字母的ASCⅡ码大32。A选项中字符A加上c表示的大写字符再对字母个数26取余,本身这个表达式没有任何含义,所以选择A选项。
70.CC。【解析】对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。
71.C
\n数组名sl是代表sl数组首地址的地址常量,因为“=”左边不能出现常量,所以s1='ABCDE'的方法是错误的。
\n
72.B#include"文件名",预处理程序首先在引用被包含文件的源文件所在的目录下搜索指定的文件,如没找到,再按系统指定的标准目录搜索。
73.C解析:选项A)、选项B)显然不合题意。数据定义语言(DataDefinitionLanguage,简称DDL)负责数据的模式定义与数据的物理存取构建;数据操纵语言(DataManipulationLanguage,简称DML)负责数据的操纵,包括查询及增、删、改等操作。
74.D
\n当k=1时,循环成立,输出w[l]的数组即EFGH,接着执行k++后k为2;当k=2时,循环成立,输出w[2]的数组即IJKL,接着执行k++后,k为3;当k=3时,循环不成立,退出。
\n
75.A首先利用fwrite函数将数组a中的数据写到文件中,接着fseek函数的功能是读文件的位置,指针从文件头向后移动3个int型数据,这时文件位置指针指向的是文件中的第4个int数据”4”,然后fread函数将文件fp中的后3
个数据4,5,6读到数组a中,这样就覆盖了数组中原来的前3项数据。最后数组中的数据就成了{4,5,6,4,5,6}。
76.D第一次循环时,k=1,在switch语句中,先执行default后面的语句,即c=c+k=1,因为没有break语句,所以不会跳出switch结构,会接着执行case2后面的语句,即c=c+1=2,然后跳出switch;第二次循环时,k=2,直接执行ease2后面的语句,即c=c+1=3,然后跳出switch语句,结束循环,执行输出语句。
77.Af(2)展开后为,2*5+1,值为ll,f(1+1)展开后为,l+1*5+1值为7,所以答案选择A):
78.C数据库的故障恢复是数据库数据保护机制中的一种完整性控制。所有的系统都免不了会发生故障,其原因有可能是硬件失灵,有可能是软件系统崩溃,也有可能是其他外界的原因。在系统发生故障后,要求DBMS要有一套发生故障后的数据恢复机构来保证数据库能够恢复到一致的、正确的状态,这就是数据库的故障恢复。
在本题给出的四个选项中,数据流图用来描绘系统的逻辑模型,它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能。
数据字典是关于数据信息的集合,也就是对数据流图中包含的所有元素定义的集合,是对数据流图进行补充。
DBA即数据库管理员,它的工作主要有数据库安装、数据库配置和管理、权限设置和安全管理、监控和性能调节、备份和恢复等。
PAD图即问题分析图,是一种程序结构可见性好、结构唯一、易于编制、易于检查和易于修改的详细设计表现方法。
根据上面的分析,我们可以知道数据库的故障恢复是由数据库管理员来完成的。因此,本题的正确答案是C。
79.D在C语言中,数组元素的个数是确定的,不允许随机变动,数组定义好后,它所能容纳的元素的个数也就确定了,并且同一个数组中所有元素都是同一类型。
80.D
81.(1)错误:for(i=j=0;str[i]!=0;i++)
\n正确:for(i=j=0;str[i]!=\0;i++)
\n(2)错误:str[j]=str[i];
\n正确:str[i++]=str[i];
\n【解析】根据题目中的要求,从字符串str中删除所有大写字母F,需要检查字符串str中的每一个字符,直到字符串结束,因此,“for(i=j=0;str[i]!=0;i++)”应改为“for(i=J=0;str[i]!=0;i++)”;将每一个不是F的字符放入原来的字符串中,形成新的字符串,因此,“str[j]=str[i];”应改为“str[j++]=str[i];”。
\n
82.
voidfun(charpl[],charp2[])
in“,j;
for(i=0;pl[i]f=。、0’;i++);
for(j=0;p2[j]!=。、0’;j++)p1[i++]=p2[j];
p1[i],_。、0’;}
【考点分析】“
本题考查:不使用字符串函数实现字符串连接操作。通过for循环语句来完成,不要忘了最后需要加上字符串结束标识‘、0’。
【解题思路】
本题用两个循环完成操作,第1个循环的作用是求出第1个字符串的长度,即将i指到第1个字符串的末尾。第2个循环的作用是将第2个字符串的字符连到第l个字符申的末尾。最后在第l个字符串的结尾加上字符串结束标识‘、0’。2021-2022年河北省衡水市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.树最适合用来表示()。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据
3.折半查找的时间复杂性为()
A.O(n2)B.O(n)C.O(nlogn)D.O(logn)
4.以下叙述中正确的是A.A.C程序中的注释只能出现在程序的开始位置和语句的后面
B.C程序书写格式严格,要求一行内只能写一个语句
C.C程序书写格式自由,一个语句可以写在多行上
D.用C语言编写的程序只能放在一个程序文件中
5.以下关于注释的叙述中错误的是()。
A.注释的边界符号“/”和“*”之间不允许加入空格
B.C语言允许注释出现在程序中任意合适的地方
C.注释的内容仅用于阅读,对程序的运行不起作用
D.注释的边界符号“/*”和“*/”必须成对出现且可以嵌套
6.若函数调用时的实参为变量,下列关于函数形参和实参的叙述中正确的是()。
A.函数的形参和实参分别占用不同的存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的实参和其对应的形参共占同一存储单元
7.下列程序的输出结果是
#include"stdio.h"
#defineN3
#defineM3
voidfun(inta[M][N])
{printf("%d\n",*(a[1]+2));}
main()
{inta[M][N];
inti,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
a[i][j]=i+j-(i-j);
fun(a);}
A.3B.4C.5D.6
8.下列正确的实型常量是()。
A.E3.4B.-12345C.2.2eO.8D.4
9.有以下程序
#include<stdio.h>
voidfun(intx)
{if(x/2>1)fun(x/2);
printf(”%d”,x);
}
main()
{fun(7);printf(”\n”);}
程序运行后的输出结果是()。A.137B.731C.73D.37
10.下列程序段中完全正确的是()。A.int*p;scanf(“%d”,&p);
B.int*p;scanf(“%d”,p);
C.intk,*p=&k;scanf(“%d”,p);
D.intk,*p;*p=&k;scanf(“%d”,p);
11.某二叉树的前序和后序序列正好相反,则该二叉树一定是_____的二叉树
A.空或者只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子
12.若已知一个栈的入栈序列是1,2,3,......,n,其输出序列为p1,p2,p3,..,pn,若p1=n-1,则pi可能为()
A.nB.n-iC.n-i+1D.不确定
13.若有下面的说明和定义
structtest
{intml;charm2;floatm3;
unionuu{charul[5];intu2[2];}ua;
}myaa;
则sizeof(structtest)的值是A.A.12B.16C.14D.9
14.设串s1='ABCDEFG',s2='PQRST',函数StrCat(x,y)返回x和y串的连接串,StrSub(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,StrLen(s)返回串s长度,则StrCat(StrSub(s1,2,StrLen(s2)),StrSub(s1,StrLen(s2),2))的结果串()。
A.BCDEFB.BCDEFGC.BCPQRSTD.BCDEFEF
15.链栈与顺序栈相比,比较明显的优点是()。
A.插入操作更加方便B.删除操作更加方便C.不会出现下溢的情况D.不会出现上溢的情况
16.有下列程序:程序执行后的输出结果是()。A.2,3,1,2B.9,9,2,9C.8,10,2,8D.9,9,1,9
17.设线性链表中结点的结构为(data,next)。已知指针q所指结点是指针结点p的直接前驱,若在*q与*p之间插入结点*s,则应执行下列()操作。
A.s->next=p->next;p->next=s;
B.q->next=s;s->next=p;
C.p->next=s->next;s->next=p;
D.p->next=s;s->next=q;
18.下列叙述中正确的是()。
A.数据库系统是一个独立的系统,不需要操作系统的支持
B.数据库技术的根本目标是要解决数据的共享问题
C.数据库管理系统就是数据库系统
D.以上三种说法都不对
19.串是一种特殊的线性表,其特殊性体现在()。
A.可以顺序存储B.数据元素是一个字符C.可以链接存储D.数据元素可以是多个字符
20.以下不能将s所指字符串正确复制到t所指存储空间的是()。A.while(*t=*s){t++;s++;}
B.for(i=0;t[i]=s[i];i++);
C.do{*t++:*s++;}while(*s);
D.for(i=0,j=0;t[i++]=s[j++];);
二、2.填空题(20题)21.由25人围坐成圆圈,先由任意一人开始顺时针沿用1~25依次编号,然后从1号开始顺时针报数(1、2、3…),凡报5的倍数者出圈,剩下者继续报数,求出最后出圈者的编号。
#include
main()
{inta[26],j,n,count;
for(j=1;j<=25;j++)a[j]=j;
j=1;count=0;n=【】;
do
{
if(a[j]!=0)
{n++;
if(n%5==0)
{【】;
if(count==24)printf("%d\n",,j);
count++;
}
}
j++;
if(j>25)j=1;
}
while(【】);
}
22.数据模型是用来描述数据库的结构和语义的,数据模型有概念数据模型和结构数据模型两类,E-R模型是【】
23.下面程序的输出是()。
main()
{intarr[8],i,k=0;
for(i=0;i<8;i++)
arr[i]=i;
for(i=1;i<5;i++)
k+=arr[i]+i;
printf("%d\n",k);
}
24.以下程序的输出结果是12.00,请将空白处填写完整。
main()
{inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1*2;
printf("%52f\n",z);
}
25.设有下列宏定义:
#defineA2
#defineB(A+3)
则执行赋值语句"k=B*20;"(k为int型变量)后,k的值是______。
26.下面程序的运行结果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}
27.若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:
fp=fopen(【】);。
28.算法的复杂度主要包括【】复杂度和空间复杂度。
29.若a是int型变量,则表达式(a=2*3,a*2),a+4的值为______。
30.下列程序的输出结果是【】。
#include<stdio.h>
main()
{charb[]="Helloyou";
b[5]=0;
printf("%s\n",b);
}
31.函数delete(s,i,n)是作用是从字符串s中删除从第i个字符开始的n个字符,请填空。
voiddelete(chars[],inti,intn)
{intj,k,length=0;
while(s[length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]\'\0';
}
32.用下面语句调用库函数malloc,使单精度型指针p指向具有40个字节的动态存储空间,请填空。
p=(float*)【】;
33.以下程序运行后输出的结果是【】。
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);
}
34.函数compare的功能是比较两个字符串是否相等,若相等则函数返回值0,否则返回值1,请填空。
compare(chars[],chart[])
{inti=0;
while(s[i]==t[i]||【】)i++;
return(【】?1:0);
}
35.若x,y和z均是int型变量,则执行下面表达式后的x值为【】。
x=(y=4)+(z=2)
36.设有定义“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc【】a。
37.用复合的赋值运算符将变量x中的值增大2的赋值表达式是【】。
38.数据库管理系统是位于用户与______之间的软件系统。
39.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。
40.下列程序的功能是将字符串s中所有的字符c删除。请填空。
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(S);
for(i=j0;s[i]!'\0';i++)
if(s[i]!='c')______;
s[j]='\0;
puts(S);
}
三、1.选择题(20题)41.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是()。
main()
{floata,b,C,t;
scanf("%f,%f,%of",&a,&b,&C);
if(a<B)
{t=a;a=b;b=t;}
if(a<C)
{t=a;a=c;c=t;}
if(b<C)
{t=b;b=c;c=t;}
printf("%f\n%f\n%f\n",a,b,C);
}
A.1.002.003.00
B.1.003.002.00
C.132
D.3.0000002.0000001.000000
42.
若有下列定义和语句:
intu=011,v=0x11,w=11;
printf("%o,%x,%d\n",u,v,w);
则输出结果是()。
A.9,17,11B.9,11,11C.11,11,11D.11,17,11
43.在C语言中,函数的隐含存储类别是()
A.staticB.autoC.externD.register
44.以下叙述中错误的是
A.gets函数用于从终端读入字符串
B.getehar函数用于从磁盘文件读入字符
C.fputs函数用于把字符串输出到文件
D.fwrite函数用于以二进制形式输出数据到文件
45.若t为doudle类型,表达式t=1,t+5,t++的值是()
A.1B.6C.2D.1
46.设有以下说明语句:structex{intx;floaty;charz;}example;在下面的叙述中,不正确的一条是______。
A.struct是结构体类型的关键词
B.example是结构体类型名
C.x,y,2都是结构体成员名
D.structex是结构体类型
47.fwrite函数的一般调用形式是
A.fwrite(buffer,count,size,fp);
B.fwrite(fP,size,count,buffer);
C.fwrite(fp,count,size,buffer);
D.fwrite(buffer,size,count,fp);
48.请读程序:#include<stdio.h>inta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p++;printf("%d\n”,a[2]);}上面程序的输出结果是()
A.6B.8C.4D.2
49.在C语言中,关于函数fseek的说法正确的是()。
A.使位置指针重新返回文件的开头
B.使位置指针到文件的结尾
C.可以改变文件位置指针
D.利用fseek函数只能实现文件顺序读写
50.关系数据库管理系统能实现的专门关系运算包括()。
A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表
51.以下叙述十正确的是
A.全局变量的作用域一定比局部变量的作用域范围大
B.静态(static)类别变量的生存期贯穿于整个程序的运行期间
C.函数的形参都属于全局变量
D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值
52.软件需求分析一般应确定的是用户对软件的______。
A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求
53.有以下程序:main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}执行后输出结果是()。
A.11122B.12C.12020D.120
54.以下程序的输出结果是()。main(){intx=11,y=11;printf("%d,%d\n",X--,--y);}
A.11,11B.10,10C.10,11D.11,10
55.有以下程序#include<stdio.h>sub1(chara,charB){charc;c=a;a=b;b=c;}sub2(char*a,charB){charc;c=*a;*a=b;b=c;}sub3(char*a,char*B){charc;c=*a;*a=*b;*b=c;}main(){cha,a,b;a='A';b='B';sub3(&a,&b)putchar(a);putchar(b);a='A';b='B';sub2(&a,b);putchar(a);putchar(b);a='A';b='B';sub1(a,b);putchar(a);putchar(b);}程序运行后的输出结果是()
A.BABBABB.ABBBBAC.BABABAD.BAABBA
56.电子数字计算机最主要的工作特点是()
A.高速度B.高精度C.存储程序与自动控制D.记忆力强
57.以下选项中可作为C语言合法常量的是
A.-80B.-080C.-8e1.0D.-80.0e
58.与进制数101.01011等值的十六进制数是()
A.A.BB.5.51C.A.51D.5.58
59.数据的存储结构是指______。
A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据
60.有以下程序:#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
四、选择题(20题)61.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。
A.scanfB.getcharC.getsD.getc
62.有以下程序:
程序运行后的输出结果是()。
A.0B.一1C.1D.7
63.在结构化程序设计中,模块划分的原则是()。
A.各模块应包括尽量多的功能
B.各模块的规模应尽量大
C.各模块之间的联系应尽量紧密
D.模块内具有高内聚度,模块间具有低耦合度
64.若程序中有宏定义行:#defineN100则以下叙述中正确的是()。
A.宏定义行中定义了标识符N的值为整数100
B.在编译程序对C源程序进行预处理时用100替换标识符N
C.对C源程序进行编译时用100替换标识符N
D.在运行时用100替换标识符N
65.
66.有以下程序:
程序运行后的输出结果是()。
A.8B.2C.4D.1
67.
68.
69.已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97。以下不能将变量C中的大写字母转换为对应小写字母的语句是()。
A.C=(。A’+C.%26一"a"B.c=c+32C.c=c一"A"+"a"D.c=(c一’A")%26+-a"
70.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。
A.125B.n/2C.nD.n+1
71.
若已包括头文件<string.h>且已有定义charsl[18],s2={"ABCDE")和inti,现要将字符串”ABCDE”赋给sl,下列语句错误的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.sl="ABCDE";
D.for(i=0;i<6;i++)sl[i]=s2[i]
72.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用(双引号)括起时,寻找被包含文件的方式是()。
A.直接按系统设定的标准方式搜索目录
B.先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索
C.仅仅搜索源程序所在目录
D.仅仅搜索当前目录
73.数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为()。
A.CB.BasicC.DDLD.DML
74.
以下程序的输出结果是()。
main
{charw[][10]={"ABCD","EFGH","IJKL","
MNOP"),K;
for(k=1;k<3;k++)printf("%s\n",w[k]);
A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL
75.有以下程序:
程序运行后的输出结果是()。
A.4,5,6,4,5,6,
B.1,2,3,4,5,6,
C.4,5,6,1,2,3,
D.6,5,4,3,2,1,
76.有以下程序:
程序运行后的输出结果是()。
A.9B.7C.5D.3
77.有以下程序
78.数据库的故障恢复一般是由
A.数据流图完成的B.数据字典完成的C.DBA完成的D.PAD图完成
79.下列说法正确的是()。
A.在C语言中,可以使用动态内存分配技术定义元素个数可变的数组
B.在c语言中,数组元素的个数可以不确定,允许随机变动
C.在C语言中,数组元素的数据类型可以不一致
D.在C语言中,定义一个数组后.就确定了它所容纳的元素的个数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 9.2《永遇乐京口北固亭怀古》课件高中语文必修上册
- 《分层次模式下护士心理健康水平的调查研究》
- 《“双葛解酒方”治疗非昏迷期急性酒精中毒的临床研究》
- 《不同手术方式及手术时机治疗高血压脑出血的研究》
- 《老年人精神受虐影响因素及保障机制研究》
- 《郑州市雾霾治理政策研究》
- 《胶州湾异体住囊虫的生态适应性研究》
- 《保肝消脂颗粒对NAFLD肝郁脾虚痰浊血瘀型患者SCD-1影响的临床研究》
- 《中小型民营企业内部创业动机及其影响因素研究》
- 《改进市场法下CRO企业价值评估研究》
- 数学教材的多模态教学设计与评价
- 《上海奉贤区S村非机动车停放管理的调查报告》4200字
- 常用信纸打印模板
- 基于多模态数据智能分析的非小细胞肺癌识别
- 工笔画教案(上)
- 6.1 模型或原型的特性与作用 课件【知识精研精讲】高中通用技术苏教版(2019)必修《技术与设计1》
- 基于真实情境的小学劳动教育项目化学习 论文
- GJB9001C-2017版内审检查表
- 梗阻性黄疸护理查房课件
- 提高人工气道气囊管理正确率品管圈汇报书ppt模板
- (新平台)国家开放大学《农村社会学》形考任务1-4参考答案
评论
0/150
提交评论