![2021-2022年浙江省杭州市全国计算机等级考试C语言程序设计预测试题(含答案)_第1页](http://file4.renrendoc.com/view/70682a9abc50bac4d6e6c191536d088f/70682a9abc50bac4d6e6c191536d088f1.gif)
![2021-2022年浙江省杭州市全国计算机等级考试C语言程序设计预测试题(含答案)_第2页](http://file4.renrendoc.com/view/70682a9abc50bac4d6e6c191536d088f/70682a9abc50bac4d6e6c191536d088f2.gif)
![2021-2022年浙江省杭州市全国计算机等级考试C语言程序设计预测试题(含答案)_第3页](http://file4.renrendoc.com/view/70682a9abc50bac4d6e6c191536d088f/70682a9abc50bac4d6e6c191536d088f3.gif)
![2021-2022年浙江省杭州市全国计算机等级考试C语言程序设计预测试题(含答案)_第4页](http://file4.renrendoc.com/view/70682a9abc50bac4d6e6c191536d088f/70682a9abc50bac4d6e6c191536d088f4.gif)
![2021-2022年浙江省杭州市全国计算机等级考试C语言程序设计预测试题(含答案)_第5页](http://file4.renrendoc.com/view/70682a9abc50bac4d6e6c191536d088f/70682a9abc50bac4d6e6c191536d088f5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年浙江省杭州市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列定义数组的语句中错误的是()。
A.intx[2][3]={1,2,3,4,5,6};
B.intx[][3]={0};
C.intx[][3]={{1,2,3},{4,5,6}};
D.intx[2][3]={{1,2},{3,4},{5,6}};
2.设有二元关系R和三元关系s,下列运算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
3.下列说法错误的是______。
A.关系中每一个属性对应一个值域
B.关系中不同的属性可对应同一值域
C.对应同一值域的属性为不同的属性
D.DOM(A)表示属性A的取值范围
4.数据结构若采用链式存储结构,要求内存中可用存储单元的地址()。
A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续不连续都可以
5.下列定义数组的语句中,正确的是()。A.#defineN10?intx[N];
B.intN=10;int[N];
C.intx0..10];
D.Intx[];.
6.有以下程序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));}程序运行后的输出结果是
A.编译出错B.9C.21D.9
7.下列选项中不合法的十六进制数是()。
A."0"xffB."0"X11C."0"x1gD.”0”Xabc
8.下列叙述中错误的是()。
A.C语言程序必须由一个或一个以上的函数组成
B.函数调用可以作为一个独立的语句存在
C.若函数有返回值,必须通过return语句返回
D.函数形参的值也可以传回给对应的实参
9.在ASC算法team日常开发中,常常面临一些数据结构的抉择,令人纠结。目前大家在策划一个FBI项目(FastBinaryIndexing),其中用到的词汇有6200条,词汇长度在10-15之间,词汇字符是英文字母,区分大小写。请在下面几个数据结构中选择一个使检索速度最快的()
A.二叉搜索树,比较函数开销:1次运算/每字符
B.哈希表,hash算法开销:10次运算/每字符
C.链表,比较函数开销:1次运算/每字符
D.TRIE树,寻找子节点开销:1次运算/每字符
10.插入和删除只能在一端进行线性表,称为()。
A.队列B.循环队列C.栈D.循环栈
11.
12.设有以下程序段:structbook{floatprice;charlanguage;chartitle[20];}rec,*ptr;ptr=&rec;要求输入字符串给结构体变量rec的title成员,错误的输入语句是()。
A.scanf(“%s”,ptr.title);
B.scanf(“%s”,rec.title);
C.scanf(“%s”,(*ptr).title);
D.scanf(“%s”,ptr->title);
13.有以下程序:main{inti,j;for(j=10;j<11;j++){for(i=9;i<j;i++)if(!(j%i))break;if(i==j-1)printf("%d",j);}}输出结果是()。A.11B.10C.9D.1011
14.有以下程序:main{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,12,},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<i;j++)printf("%4c",);for(j=________;J<4;j++)printf("%4d",num[i][j]);printf("\n");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是()。A.i-1B.iC.i+1D.4一i
15.有以下程序程序执行后的输出结果是()
A.60B.50C.45D.55
16.设已包含头文件<string.h>,下列程序段的运行结果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));
A.3B.4C.6D.5
17.算法的时间复杂度是指()A.执行算法程序所需要的时间B.算法程序的长度C.算法程序中的指令条数D.算法执行过程中所需要的基本运算次数
18.在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是()。
A.O(1)B.O(n)C.O(n2)D.O(nlog2n)
19.在Internet中,域名服务器的主要功能是实现()的转换。
A.IP地址到域名(主机名字)B.域名到IP地址C.主机IP地址和路由器IP地址之间D.路由器IP地址之问
20.若有以下定义和语句
chars1[10]="abcd!",*s2="\n123\\";
printf("%d%d\n",strlen(s1),strlen(s2));
则输出结果是A.A.55B.105C.107D.58
二、2.填空题(20题)21.以下程序的运行结果是()。
main()
(inta=2,b=7,c=5;
switch(a>0)
{case1:switch(b<0)
{case1:switch(");break;
case2:printf("!");break;
}
case0:switch(c==5)
{case0:printf("*");break;
case1:printf("#");break;
case2:printf("$");break;
}
default:printf("&");
}
printf("\n");
}
22.有以下程序:
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i+1;
printf("%d\n",a[1][2]);
}
程序运行后的输出结果是【】。
23.以下程序的输出结果是【】。
main()
{unsignedshorta=65536;intb;
printf("%d\n",b=A);
}
24.输出若干学生3门课程的成绩。
#include<stdio.h>
【】
structstudent
{intnum;
floatscore[3];
}
main()
{inti=0,n;
floata[3];
【】*ptr[200];
printf("请输入学生学号和3门课成绩,学号为0表示数据输入结束\n");
do
{ptr[i]=(structstudent*)malloc(sizeof(structstudent));
scanf("%d%f%f%f",&ptr[i]->num,&a[O],&a[1],&a[2]);
ptr[i]->score[O]=a[O];
ptr[i]->score[1]=a[1];
ptr[i]->score[2]=a[2];
if(【】)break;
i++;
}while(1);
n=i-1;
【】;
for(i=O;i<=n;i++)
printf("%-6d%.1f%.1f%.1f\n",ptr[i]->num,ptr[i]->score[0],
ptr[i]->score[1],ptr[i]->score[2]);}
25.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。
main()
{inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",【】);
for(i=0;i<20;i++)
{if(a[i]>0)
{count++;
sum+=【】;
}
}
printf("sum=%d,count=%d\n",sum,count);
}
26.一个项目具有一个项目主管,一个项目主管叫‘管理多个项目,则实体“主管”与实体“”的联系属于______。
27.在关系运算中,【】运算是在给定关系的某些域上进行的运算。
28.下述函数统计字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=")flag=0;
elseif【】{flag=1;num++}
}
return【】;}
29.在一个容量为15的循环队列中,若头指针front=6,尾指针Year=9,则该循环队列中共有【】个元素。
30.仅依据规格说明书描述的程序功能来设计测试实例的方法称为【】。
31.以下程序运行后的输出结果是【】。
main()
{charm;
m='B'+32;printf("%c\n",m);
}
32.实现算法所需的存储单元多少和算法的工作量大小分别称为算法的【】。
33.当运行以下程序时,从键盘输入abcdabcdef<CR>
cde<CR>
(<CR>表示回车),则下面程序的运行结果是【】。
#include<stdio.h>
main()
{inta;chars[80],t[80];
gets(s);gets(t);
a=fun(s,t);
printf("a=%d\n",a);}
fun(char*p,char*q)
{inti;
char*p1=p;
char*q1;
for(i=0;*p!='\0';p++,i++)
{p=p1+i;
if(*p!=*q)continue;
for(q1=q+1,p=p+1;*p!='\0'&&*q1!='\0';q1++,p++)
if(*p!=*q1)break;
if(*q1=='\0')returni;}
return(-1);}
34.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。
35.若有定义语句chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)
while(s[i]){d[j]=【】;j++;}
d[j]=0;
36.#define命令出现在程序中函数的外面,宏名的有效范围为______。
37.下面程序的输出是【】。
main()
{inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)z=(*(ptr+y)<x)?*(prt+y):x;
printf("%d\n",z);
}
38.以下程序的输出结果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
39.下列程序的输出结果是______。
#include<stdio.h>
sb(ints[],intb)
{staticintn=3;
b=s[n];
n--;
return(b);
}
main()
{ints[]={1,5,6,8};
inti,x=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);
}
printf("\n");
}
40.以下程序用业统计文件十字符个数。请填空。
#include"stdio.h"
main()
{FTLE*fp;longnum=OL;
if((fp=fopen("fname.dat","r"))==NUlL)
{pirntf("Openerror\n");exit(0);}
while()
{fgetc(fp);num++;}
printf("num=%1d\n",num-1);
fclose(fp);
}
三、1.选择题(20题)41.假定所有变量均已正确说明,下列是程序段运行后x的值是()a=b=C=O;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;
A.34B.4C.35D.3
42.以下叙述中正确的是
A.C程序中注释部分可以出现在程序中任意合适的地方
B.花括号“{”和“}”只能作为函数体的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的一部分
43.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是()
A.控制流B.加工C.数据存储D.源和潭
44.有以下程序#include<stdio.h>main(){intk=5,n=0;while(k>0){switch(k){defhult:break;case1:n+=k:case2:case3:n+=k;}k--;}printf("%d\n",n);}程序运行后的输出结果是()
A.0B.4C.6D.7
45.有以下程序#include<string.h>structSTU{charname[10];intnum;};voidf(char*name,intnum){structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};num=s[0].num;strcpy(name,s[0].name);}main(){structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;p=&s[1];f(p->name,p->num);printf("%s%d\n",p->name,p->num);}程序运行后的输出结果是
A.SunDan20042B.SunDan20044C.LiSiGuo20042D.YangSan20041
46.下列叙述中正确的是()。
A.在面向对象的程序设计中,各个对象之间具有密切的联系
B.在面向对象的程序设计中,各个对象都是公用的
C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
D.上述三种说法都不对
47.语句“printf("%d\n",12&012);”的输出结果是______。
A.12B.8C.6D.12
48.下列叙述中,正确的一条是______。
A.putchar函数可以输出一个字符串
B.在printf("%c",c)函数中,两个c是一样的
C.语句printf("%d%%",1)的输出结果为1%
D.用scar函数输入数据时可以规定精度,例如scanf("%7.2f",&a)
49.下列程序的输出结果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}
A.2B.3C.4D.5
50.有以下程序
#include
main()
{intc;
while((c=getchar())!='\n')
{switch(c-'2')
{case0:
case1:putchar(c+4);
case2:putchar(c+4);break;
case3:putchar(c+3);
case4:putchar(c+3);break;}}
printf("\n")}
从第一列开始输入以下数据代表一个回车符。
2743
程序的输出结果是
A.66877B.668966C.6677877D.6688766
51.下面程序main(){inta=-1,b=4,k;k=(a++<=0)&&(!(b--<=0));printf("%d%d%d%d\n",k,a,B);}的输出是_______。
A.003B.012C.103D.112
52.详细设计主要确定每个模块具体执行过程,也称过程设计,下列不属于过程设计工具的是()
A.DFD图B.PAD图C.N-S图D.PDL
53.设有如下程序段:intx=2002,y=2003;printf("%d\n",(x,y));则以下叙述中正确的是()。
A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B.运行时产生出错信息
C.输出值为2002
D.输出值为2003
54.若有以下函数首部intfun(doublex[10],int*n)则下面针对此函数的函数声明语句中正确的是______。A.intfun(doublex,int*n);
B.intfun(double,int);
C.intfun(double*x,intn);
D.intfun(double*,int*);
55.在深度为5的满二叉树中,叶子结点的个数为A.32B.31C.16D.15
56.经下列语句定义后,sizeof(x)、sizeof(y)、sizeof(a)、sizeof(b)在IBM-PC机上的值分别为______。charx=65;floaty=7.3;inta=100;doubleb=4.5;
A.2,2,2,4B.1,2,2,4C.1,4,2,8D.2,4,2,8
57.若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是
A.EOFB.-1C.1D.NULL
58.以下叙述中正确的是()。
A.C语言的源程序不必通过编译就可以直接运行
B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C.C源程序经编译形成的二进制代码可以直接运行
D.C语言中的函数不可以单独进行编译
59.已知a、b、c为整型变量,若从键盘输入5<空格>6<空格>7<回车>,使a的值为5,b的值为6,c的值为7,则下列选项中正确的输入语句是()。
A.scanf("%3d%3d%3d",a,b,C);
B.scanf("%d%d%d",a,b,C);
C.scanf("%d%d%d",&a,&b,&c);
D.scanf("%d%d%d",&a,&b,&c);
60.结构化程序设计的3种基本结构是()。
A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移
四、选择题(20题)61.以下程序的运行结果是()。
#include<stdio.h>
main{inta=1,b=2,c=3,x;
x=(a^b)&c;printf("%d\n",x);}
A.0B.1C.2D.3
62.有以下程序段:
以下选项中表达式的值为11的是()。
A.
B.
C.
D.
63.
64.一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是()。
A.1:1联系B.1:m联系C.m:1联系D.m:n联系
65.有以下程序
main()
{charstr[]="xyz",*ps=str;
while(*ps)ps++;
for(ps--;ps-str>=0;ps--)
puts(ps);
}
程序的运行结果是
A.yzB.zC.zD.x
xyzyzyzxy
xyzxyz
66.有以下程序:
程序运行后的输出结果是()。
A.1,2,3,0,0,0,0,0,0,0,
B.1,2,3,1,2,3,0,0,0,0,
C.123,0,0,0,0,123,0,0,0,0,
D.1,2,3,0,0,1,2,3,0,0,
67.
有下列程序:
intfun(intx[],intn)
{staticintsum=0,i:
for(i0;i<n;i++)sum+=x[i];
returnsum;
}
main
{inta[]={1,2,3,4,5),b[]一{6,7,8,9),s=0:
s=fun(a,5)+fun(b,4);printf("%d\n",s):
}
程序执行后的输出结果是()。
A.45B.50C.60D.55
68.数据库管理系统是()。
A.操作系统的一部分B.在操作系统支持下的系统软件C.一种编译系统D.一种操作系统
69.
70.
71.
72.
73.
74.当执行以下程序段时,()。x=-l:do{x=x*X;)while(!x);A.循环体将执行一次B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误
75.表示关系M<=N<=P的C语言表达式为()。
A.(M<=N.AND(N<=P.
B.(M<=N.&&(N<=P.
C.(M<=N<=P.
D.(M<=N.&(N<=P.
76.若有以下程序:inta=1,b=2:a=a^b:b=b^a:则执行以上语句后a和b的值分别是()。
A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1
77.第
42
题
下面说明不正确的是
A.chara[10]="china";
B.chara[10],*p=a;p="china"
C.char*a;a="china";
D.chara[10],*p;p=a="china"
78.
下列程序的输出结果是()。
char*point(char*pt):
main
{charb[4]={a,c,s,f),*pt=b;
pt=point(pt);
printf("%c\n",*pt);
}
point(char*p)
{p+=3;
returnp;
}
A.sB.cC.fD.a
79.若有定义:charc;doubled;程序运行时输入:12<;回车>;,能把字符1输入给变量c、数值2输入给变量d的输入语句是()。
80.在关系数据库系统中,当关系的模型改变时,用户程序可以不变,这是
A.数据的物理独立性B.数据的逻辑独立性C.数据的位置独立性D.数据的存储独立性
五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为7654321时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!
#include<;stdi0.h>;
六、程序设计题(1题)82.N名学生的成绩已在主函数中放人一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。
例如,若学生的成绩是:8576698591726487,则平均分应当是:78.625。注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填人你编写的若干语句。
参考答案
1.DD选项中“x[2][3]”定义的是一个2行3列的二维数组,而在给数组元素赋值时却赋成了3行,所以错误。故本题答案为D选项。
2.D本题给出的两个关系R与S的表结构是不同的(R是二元关系,S是三元关系),它们不能进行∩、∪、一运算。而两个不同结构的关系是可以进行笛卡儿积(×)运算的。
3.C解析:关系中每一个属性都有一个取值范围,称为属性的值域。每—个属性对应一个值域,不同属性可对应同一个值域。对应同一值域的却不一定是不同的属性。属性的值域用DOM(A)表示,A表示属性的名称。
4.D
5.A数组说明的一般形式为:类型说明符数组名[常量表达式]。B)中N是变量,不能用变量定义数组长度。C)选项中数组长度是非法的一串数字。定义数组时必须为其指明长度,D)选项中数组长度为空,所以非法。
6.B解析:fun()函数是将传进来的两个整型参数相加,把和作为函数值返回,注意返回值为float型。在主函数调用了两次fun()函数,第一次调用时把表达式“a+c”和变量“b”的值求和,得到15转换为15.0作为函数的返回值。第二次调用把第一次调用的返回值通过强制类型转换成int型15,再和表达式“a-c”相加,得到结果9,转换成float型作为函数值返回。由于输出格式符为“%3.of输出时没有小数位,故输出为9。
7.C十六进制是以“0x、0X”开头的字符串,字符串中只能含有0~9这l0个数字和a、b、C、d、e、f这6个字母。
8.D形参是定义函数时由用户定义的。实参是函数调用时,主调函数为被调函数提供的原始数据。在C语言中,实参向形参传送数据的方式是“值传递'是单向传递。故本题答案为D选项。
9.D
10.C
11.C
12.A运算符“->”适用指针访问成员变量,运算符“.”适用普通变量访问成员变量。ptr是指针,只能用“->”,因此选项A错误。选项B中,rec.title代表数组title,选项B正确,同理选项C正确。“*ptr”是结构体变量rec,可以使用运算,因此选项D正确。故本题答案为A选项。
13.B本题考多循环的使用,当j=10,i=9时,循环成立,第一个if条件为假,第二个if条件i==j-1成立,则输出j的值为10,接者执行i++后,i为10;当i为10,for循环不成立,退出内层循环,此时执行j++后,j为11,循环不成立,退出循环。
14.B本题中要求输出右上半角的数,对角线上的数的下标相同,所以j=i。
15.A函数fun的功能是求数组的n个元素之和。fun(a,5)=15。由于s岫是静态局部变量,所以保持l5不变,fun(b,4)=45,所以s=fun(a,5)+fun(b,4)=60。
16.A解析:头文件<string.h>是字符串处理函数对应的头文件,要想调用C语言的库函数时,都要在程序中嵌入该函数对应的头文件,否则无法使用库函数。
strcpy(s1,s2)把s2中的字符串复制到s1中,所以结果就为s2的长度。
17.D解析:算法的时间复杂度实际上就是执行算法程序所需要的计算工作量。为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使用的程序设计语言、执行算法程序时所使用的计算工具以及程序员的水平无关。
选项A错误,因为同一算法程序在运行速度不同的计算机上运行时,其计算时间是不同的。选项B错误。因为算法所编写的程序长度往往与程序设计语言以及程序员的水平有关,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同。
选项C错误,因为根据一个算法所编制出的程序程序中,其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指令条数来度量算法的时间复杂度。
所以,本题的正确答案为D。
18.B
19.B在Internet中,把域名翻译为IP地址的软件称为域名系统DNS,运行域名系统的主机称为域名服务器。域名服务器的主要功能是实现入网主机名字和IP地址的转换。
20.A
21.#&#&解析:刚开始时,switch后面的表达式a>0为真(1),与case1匹配,然后执行case1后面的switch语句,表达式b<0值为0,没有与其匹配的语句,返回外层,因为外层没有break语句,顺序执行case0后面的switch语句,表达式“c==5”值为1,与其后面的case1匹配,因此输出#,遇到break返回外层,又因为外层没有break语句,顺序执行default后的语句,输出&。
22.66解析:本题定义了二维数组a和指针变量p,p指向数组的首地址,for循环语句的功能是给数组元素赋值,结果为a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][1]=5、a[1][2]=6、a[2][0]=7、a[2][1]=8、a[2][2]=9,故printf函数的输出结果为6。
23.00解析:对于一个unsignedshort来说,它能取的最大值是65535。这里给a赋值65536,已经超出了它的取值范围,这样它的高位将被截掉,只把低位赋给它(全零)。所以a的值实际为0。
24.#include<alloc.h>structstudentptr[i]->num==Ofree(ptr[i])#include<alloc.h>\r\nstructstudent\r\nptr[i]->num==O\r\nfree(ptr[i])
25.&a[i]或a+ia[i]或*(a+i)&a[i]或a+i\r\na[i]或*(a+i)解析:主函数中一开始定义了一个长度为20的整型数组,然后通过一个循环,循环20次给它的每个元素赋初值,所以在第一个空格处应填各个元素的地址,即填&a[i]或a+i,然后再通过一个循环执行20次,每循环一次,先判断该循环是否大于0,如果大于0将其累加到变量sum中,所以第二个空格处应该填入数组元素,所以应该填a或*(a+i)。
26.一对多一对多解析:由于一个项目主管可以管理多个项目,而一个项目只能有一个项目主管,“项目主管”这个实体与“项目”这个实体的管理关系嘱于一对多。
27.投影投影解析:在关系运算中,投影运算是在给定关系的某些域上进行的运算。
28.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在统计字符串单词个数的算法中,本题的flag是为了记录一个单词是否结束。第13空应填*s++;如果某个字符不是空格,则必须判断它是否是单词,如是,则使得flag的标志为1,num的值加1。本题判断方法是:先判断s所指向的字符是否为空恪,如果是则使得flag=0,否则判断前一个字符是否是空格,如果是则说明这个字符是—个单词的开始,将flag标志为1,num的值加1,如果不是,则不必记录。故第14空应填flag=0或*(s-1);最后一个空格需填写的是返回的单词的个数,即num。
29.3
30.黑箱法黑箱法
31.BB解析:字符类型的数据在内存中以相应的ASCII码存放,另外,字符数据还可以作为整数参加运算。格式控制参数中的格式字符用以指定输出项的数据类型和输出格式,输出字符与其对应的输出项的类型要一致。本题中,“b”的ASCII码为98,字符类型m的ASCII码为98+32=130,所以最后输出为b。
32.空间复杂度和时间复杂度算法的复杂性是指对一个在有限步骤内终止算法和所需存储空间大小的估计。算法所需存储空间大小是算法的空间复杂性,算法的计算量是算法的时间复杂性。
33.a=6a=6解析:字符指针p++使指针向后移动一个字符的位置,而*p则是取得指针p所在位置的字符元素。
34.完整性控制完整性控制
35.s[i++]s[i++]解析:本题中为了能实现字符串的拷贝,需要使字符数组s从头到尾依次遍历其所有元素。本题应使用i的自增后置来实现。
36.从定义到本源文件结束从定义到本源文件结束解析:C语言规定,宏名的有效范围为从定义宏到本源程序结束。
37.66解析:本题变量z的值应为最后一次给它赋的值,且最后一次for循环使prt指向a[2]
38.3131解析:在函数调用时,形参值和改变,不会改变实参的值。
39.86518651解析:主程序中,第一次循环时,i=0,调用sb(s,x)子函数,此时n=3,x=s[n]=s[3]=8,然后将n减1变为2;第二次循环时,i=1,调用sb(s,x)子函数,因为将n定义为了静态变量,所以此时n=2,返回x=s[n]=s[2]=6;第三次循环时,i=2,调用sb(s,x)子函数,此时n=1,返回x=s[n]=s[1]=5;第四次循环时,i=3,调用sb(s,x)子函数,此时n=0,返回x=s[n]=s[0]=1。此程序实际上是将数组s逆序输出。
40.!feof(fp)!feof(fp)解析:本题中统计文件中字符个数的算法可描述如下:首先判断文件位置指针是否指向了文件尾,如果不是则读出一个字符,同时字符的个数加1,再判断文件位置指针是否位于文件尾,如此循环,直到文件位置指针位于文件尾为止。本题首先以读文件的方式打开了文件“fname.daf”,如果打开成功则把返回的文件型指针赋值给fp,然后通过循环求文件中的字符数。首先判断文件位置指针是否位于文件尾,如果不是则循环读取字符,每次字符数加1。所以下划处应填循环条件,文件位置指针不是指向文件尾,即“!feof(fp)”。
41.B
42.A解析:“/*”与“*/”之间的信息称为注释信息,在C语言中,允许在任何能够插入空格符的位置插入注释,但C语言的注释不能进行嵌套,故选项A正确;在C语言中,函数体是从花括号“{”开始,到花括号“}”结束.但没有规定花括号“{”和“}”只能作为函数体定界符,故选项B错误;选项C中前半句是正确的,在C程序中由有一个或多个函数所组成,但不是所有的函数都由用户自己命名,有些函数比如库函数,主函数main()就不能由用户来命名,故选C不正确;在C语言中明确规定每条语句以分号“;”结束,分号是语句不可缺少的一部分,故选项D不正确。所以,4个选项中选项A符合题意。
43.A解析:数据流图包括4个方面,即加工(转换)(输入数据经加工变换产生输出)、数据流(沿箭头方向传送数据的通道,一般在旁边标注数据流名)、存储文件(数据源)(表示处理过程中存放各种数据的文件)、源和潭(表示系统和环境的接口,属系统之外的实体)。不包括选项中的控制流。
44.D解析:因为没有break语句,当k=2的时候,会顺序执行两条语句,k=1的时候,会顺序执行3条语句。
45.A解析:题目中定义的函数f()包含两个参数,一个字符指针,—个整型变量。当修改参数指针所指向的内容的时候,实参所指的内容也被修改,即传址调用;但只是修改参数变量的内容,则实奉不受影响,即传值调用。因此,主函数调用f()函数后,第1个参数被修改成函数中s[0]的name成员,第2个参数不受影响,还是主函数中s[1]的num成员。故最终输出SunDan20042。应该选择A。
46.C解析:在面向对象的程序设计中,对象是面向对象的软件的基本模块,它是由数据及可以对这些数据施加的操作所组成的统一体,而且对象是以数据为中心的,操作围绕对其数据所需做的处理来设置,没有无关的操作。从模块的独立性考虑,对象内部各种元素彼此结合得很紧密,内聚性强。由于完成对象功能所需要的元素(数据和方法)基本上都被封装在对象内部,它与外界的联系自然就比较少,所以,对象之间的耦合通常比较松。所以,选项A与B错误,选项C正确。
47.B解析:012是八进制数,转换成十进制为10,12&10转换成二进制为00001100&00001010=00001000,00001000转换成十进制为8。
48.C
49.C解析:带参数的宏定义命令行形式如下:
#define宏名(形参表)替换文本
在编译的时候编译预处理程序用“替换文本”来替换宏,即M(n,m)被替换为n%m,之后计算,将计算的结果赋给a。注意,宏替换是在编译时由预处理程序完成的,宏替换不占用运行的时间,而函数调用是在程序运行时进行的,在函数的调用过程中需要占用一系列的处理时间。
50.A解析:本题主要考查了字符输入输出函数getchar和putchar的使用。getchar函数用来从标准输入设备上读入一个字符,putchar(c)函数是将字符变量c中的字符输出到标准输出设备上,并且字符可以看作整数参与运算。
51.C解析:a++是先使用a值再将a的值加1,b-是先使用b的值再将b的值减1,所以题中的逻辑运算表达式的值应当为真,即为1,而经过运算后,a和b的值已经分别变成0和3了。
52.AA)【解析】DFD图(数据流图)是以图形的方式描述数据在系统中流动和处理的过私,只反映系统必须完成的逻辑功能,它是需求分析阶段的图形工具。盒式图(N—S图)、问题分析图
\n(PAD图)和PDL(伪码)是详细设计的常用工具。
53.D解析:本题考查逗号表达式。逗号表达式的形式为:表达式1,表达式2,其求解过程为:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。
54.D解析:函数声明可以照写已定义的函数的首部,再加一个号就成为了对函数的声明,在函数声明中也可以不写形参名,而只写形参的类型,但要保证与函数首部写法上的—致,即函数类型、函数名、参数个数、参数类型和参数顺序相同。字符数组可用指针来表示,所以选顶D正确。
55.C2(n-1)
=2(5-1)=16
56.C
57.C解析:EOF是指向文本文件的结束标志,NULL是打开文件错误时的返回值。feof(fp)用来判断文件是否在文件末尾,文本文件和二进制文件均可以使用此函数,如果遇到文件结束就返回1,否则返回0。
58.B解析:本题考核的知识点是C程序从编写到生成可执行文件的步骤。C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤:编辑;编译,就是将已经编辑好的源程序翻译成二进制的目标代码,经编译后的得到的二进制代码还不能直接执行,因为每一个模块往往是单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模块连接后才能运行;连接,将各模块的二进制目标代码与系统标准模块经连接处理后,得到具有绝对地址的可执行文件,它是计算机能直接执行的文件;执行,执行一个经过编译和连接的可执行的目标文件。由以上定义可知,选项A、C、D均不正确。所以,4个选项中选项B符合题意。
59.C解析:通过scanf()函数从键盘读入数据时,接收参数的使用变量的地址值,所以选项A和B是错误的。选项D要求输入时以逗号间隔,故按题目要求的输入方式不能正确读取到3个数,也是错误的。所以正确答案是C。
60.BB。【解析】程序的三种基本控制结构包括:顺序、选择和重复(循环),这三种结构就足以表达出各种其他形式的结构。
61.D
62.C→的运算优先级比++高,此时,pt→x=10,执行自加运算后为11。
63.D
64.D多对多联系:多对多的联系表现为一个表中的多个记录在相关表中同样有多个记录与其匹配。
一个教师可讲授多门课程,一门课程可由多个教师讲授,所以实体教师和课程间的联系是多对多的联系。
65.B本题主要考查循环结构和字符串的存储结构。在C语言中,为了方便确定字符串的长度,编译系统在字符串后增加了一个结束标识‘\\0’,即ASCII码的0。
在程序中,首先定义了一个字符型数组str,并赋初值,然后定义一个同类型的指针变量ps,并使ps指向字符数组str。
在while循环中,循环结束的条件是*ps的值为0,由于循环开始前,指针变量ps是指向数组的第一个元素,即*ps等价于str[0],值为x,其ASCII码值不为0,循环继续,使ps指向数组的第二个元素,很明显,结果不为0,第三个元素也不为0,而第四个元素才为0,循环结束,此时ps指向数组中的结束标识符。
在for循环中,首先将指针变量ps做自减运算,即使指针变量ps执行数组的最后一个元素值,即第三个元素z,然后用输出函数puts输出,该输出函数的功能是输出字符串或字符数组到终端上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《台阶轴车削加工》课件
- 《悦纳自己欣赏他人》课件
- 《零件测绘方法》课件
- 《飞机疲劳强度计算》课件
- 2025年福建货运从业资格证考试题及答案大全解析
- 探索地球:地貌之奇妙旅程
- 优化购物体验报告模板
- 带着幸福感去做老师等4则
- 2025年电动晾衣机项目合作计划书
- 小议美国卡登幼儿教育对我国幼儿教育的启示
- 关于领导干部报告个人有关事项的规定全文
- 个人借条电子版模板
- 物业公司特色服务、日常增值服务项目供参考
- 创新创业实务PPT全套完整教学课件
- 工业企业电源快速切换装置设计配置导则
- 某有限公司双螺纹偏转型防松防盗螺母商业计划书
- 新版冀教版(冀人版)科学五年级下册全册教案
- 年产3万吨喷气纺、3万吨气流纺生产线项目节能评估报告
- 2022年03月江苏无锡市新吴区新安街道城管队员招考聘用10人笔试题库含答案解析
- 农药经营管理知识培训专家讲座
- 成品仓库管理培训手册成品库人员岗位职责与作业指导书
评论
0/150
提交评论