版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年河南省焦作市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。
A.数据库系统B.文件系统C.人工管理D.数据项管理
2.软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程
B.软件从需求分析、设计、实现到测试完成的过程
C.软件的开发过程
D.软件的运行维护过程
3.若有定义“doublea=22;inti=0,k=18;”,则不符合C语言规定的赋值语句是()。
A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;
4.有以下程序
#include<stdio.h>
voidfun(intP)
{intd=2;
P=d++;printf(“%d”,P);}
main()
{inta=1;
fun(A);prinff(“%.d\n”,A);}
程序运行后的输出结果是A.32B.12C.21D.22
5.有以下语句:intb;charc[10];,则正确的输入语句是______。
A.scanf("%d%s",&b,&c);
B.scanf("%d%s",&b,c);
C.scanf("%d%s",b,c);
D.scanf("%d%s",b,&c);
6.下列描述中正确的是______。
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件新产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
7.快速排序在_____情况下最易发挥其长处。
A.被排序数据中含有多个相同排序码
B.被排序数据已基本有序
C.被排序数据完全无序
D.被排序数据中最大值和最小值相差悬殊
8.下列关于逻辑运算符两侧运算对象的叙述中正确的是()。
A.只能是整数0或1B.只能是整数0或非0整数C.可以是结构体类型的数据D.可以是任意合法的表达式
9.若有定义“intx[10],*pt=x;”,则对x数组元素的引用正确的是()。
A.pt+3B.*&x[10]C.*(pt+10)D.*(x+3)
10.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“TEXT”,*b=“++”,c[3]=“1”;printf(“%d,%d,”,strlen(a),sizeof(a));printf(“%d,%d,”,strlen(b),sizeof(b));printf(“%d,%d,\n”,strlen(c),sizeof(c));}程序运行后的输出结果是()。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3
11.若有定义:Typedefint*T[10];T*a;则以下与上述定义中a类型完全相同的是()。
A.int*a[10];
B.int**a[10];
C.int*(*a)[10];
D.int*a[][10];
12.下列标识符不是关键字的是()。
A.breakB.charC.SwithchD.return
13.以下关于链式存储结构的叙述中,()是不正确的。
A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构
B.逻辑上相邻的结点物理上不必邻接
C.可以通过计算直接确定第i个结点的存储地址
D.插入、删除运算操作方便,不必移动结点
14.在关系数据库中,用来表示实体间联系的是()。
A.网状结构B.树状结构C.属性D.二维表
15.下列叙述中正确的是()。
A.软件测试应该由程序开发者来完成
B.程序经调试后一般不需要测试
C.软件维护只包括对程序代码的维护
D.以上三种说法都不对
16.
若输入“abcdef”“abdef”,下述程序的输出结果为()。
#include<stdio.h>
#include<string.h>
main
{intn;
chars1[20],s2[20],*p1,*p2;
scanf("%s",s1);
scanf("%S",s2);
p1=s1;
p2=s2;
n=strcmp(p1,p2);
printf("Vood\n",n);
}
A.-1B.0C."abcdef"D."abdef"
17.已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()
A.ABCDEB.ECABDC.EACDBD.CDEAB
18.有以下程序:#include<stdio.h>voidfun(doublex,double*y,double*z){*y=*y-1.0;*z=*z+x;}main(){doublea=2.5,b=9.0,*pa,*pb;pa=&a;pb=&b;fun(b-a,pa,pb);printf(“%f\n”,a);}程序运行后的输出结果是()。
A.8.000000B.9.000000C.1.500000D.10.500000
19.设有定义:“inta;floatb;”,执行“scanf("%2d%f",&a,&b);”语句时,若从键盘输入876543.0<回车>,a和b的值分别是()。
A.876和543.000000
B.87和6.000000
C.87和543.000000
D.76和543.000000
20.
二、2.填空题(20题)21.以下程序运行后的输出结果是()。
main()
{inta=3,b=4,c=5,t=99;
if(b<a&&a<C)t=a;a=c;c=t;
if(a<c&&b<C)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,A);
}
22.以下程序运行后的输出结果是【】。
main()
{charm;
m='B'+32;printf("%c\n",m);
}
23.若有语句
inti=-19,j=i%4;
printf("%d\n",j),
则输出的结果是______。
24.若有定义inta[4][4]={1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[1][1]得到的初值是______。
25.算法的复杂度主要包括空间复杂度和______复杂度。
26.有以下语句段
intnl=10,n2=20;
printf("______",n1,n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
27.最简单的交换排序方法是______。
28.下列程序的输出结果是______。
#defineP(A)printf("%d,",(int)(A))
#definePRINT(A)P(A);printf("theend")
main()
{inti,a=0;
for(i=1;i<5.i++)
PRINT(a+i);
printf("\n");
}
29.下列程序的输出结果是______。
#include<stdio.h>
main()
{intx=3,y=2,z=1;
if(x<y)
if(y<0)z=0;
elsez+=1;
printf("%d\n",z);
}
30.下列程序的输出结果是______。
#include<stdio.h>
main()
{inta=2,b=-1,C=2;
if(a<B)
if(b<O)c=0;
elsec++;
printf("%d\n",C);
}
31.软件的【】设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。
32.在使用putchar和getchar函数处理字符时,必须在程序的开头出现包含头文件的命令行是【】。
33.结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。
34.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。
word_num(str)
for(i=0;str[i]!=【】;i++)
if(【】='')word=0;
【】;
}
return(num);
}
35.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。
36.若有如下程序:
main()
{inta[][2]={1,2,6,9,11},(*t)[2];
t=a;
printf("%d,%d\n",*(t[1]+1),(*t)[1]);
}
则程序运行后输出的结果是【】。
37.下列程序段的输出结果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
38.阅读下面程序,则执行后的输出结果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
39.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于【】。
40.设有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298,则输出结果为
三、1.选择题(20题)41.下列程序的输出结果是()。#include<stdio.h>main(){charch[2][5]={"1234","5678"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2){s=p[i][j]-'0';printf("%d",s);}}
A.6357B.6135C.1357D.691357
42.下列有关数据库的描述,正确的是______。
A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件
43.设有数组定义:chararray[]="China";则数组array所占的空间为()个字节。
A.4B.5C.6D.7
44.函数ftell(fp)的作用是()。
A.得到fp所指向文件的当前读写位置B.初始化流式文件的位置指针C.移动流式文件的位置指针D.以上答案均正确
45.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为______。A.EOFB.非0值C.0D.NULL
46.有以下程序main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}如果从键盘上输入6514<回车>,则输出结果为()
A.m=3B.m=2C.m=1D.m=0
47.以下不合法的字符常量是()。
A.'\018'B.'\"'C.'\\'D.'\xcc'
48.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}
A.*p表示的是指针变量p的地址
B.*p表示的是变量a的值,而不是变量a的地址
C.*p表示的是指针变量p的值
D.*p只能用来说明p是一个指针变量
49.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则
A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次
50.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表
51.下列叙述中,不属于软件需求规格说明书的作用的是()
A.便于用户,开发人员进行理解和交流
B.反映出用户问题的结构,可以作为软件开发工作的基础和依据
C.作为确认测试和验收的依据
D.便于开发人员进行需求分析
52.若有以下的定义和语句:main(){inta[4][3]*p[4],j;for(j=0;j<4;j++)p[j]=a[j];}则能表示数组元素的表达式是______。
A.*(p[1])B.a[4][3]C.a[1]D.*(p+4)[1]
53.以下叙述不正确的是
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
54.在嵌套使用if语句时,C语言规定else总是A.和之前与其具有相同缩进位置的if配对
B.和之前与其最近的if配对
C.和之前与其最近的且不带else的if配对
D.和之前的第一个if配对
55.有以下程序:main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}程序运行后的输出结果是______。
A.42B.45C.56D.60
56.有以下程序:#include<stdio.h>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",hum[i][j]);printf("\n");}}若要按以下形式输出数组右上半三角;1234678111216则在程序下划线处应填入的是()。
A.i-1B.iC.i+1D.4-i
57.下列语句中,正确的是______。
A.staticcharstr[]="China";
B.staticcharstr[];str="China";
C.staticcharstr1[5],str2[]={"China"};strl=str2;
D.staticcharstr1[],str2[];str2={"China"};strcpy(str1,str2);
58.以下定义语句中正确的是
A.inta=b=0;
B.charA=65+1,b='b';
C.floata=1,*b=&a,*c=&b;
D.doublea=0.0;b=1.1;
59.以下叙述正确的是()。
A.C语言中的文件是流式文件,因此只能顺序存取数据
B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第一个数据
D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
60.若有说明语句"inta;floatb;”,以下输入语句正确的是()
A.scanf("%f%f",&a,&b);
B.scanf("%f%d",&a;&b);
C.scanf("%d,%f",&a,&b);
D.scanf("%6.2f%6.2f",&a,&b);
四、选择题(20题)61.设有如下定义:
若要使P指向data中的n域,正确的赋值语句是()。
A.
B.
C.
D.
62.用树形结构来表示实体之间联系的模型称为()。
A.关系模型B.层次模型C.网状模型D.数据模型
63.若程序中定义了以下函数doublemyadd(doublea,doubleb){return(a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()A.doublemyadd(doublea,b);
B.doublemyadd(double,double);
C.doublemyadd(doubleb,doublea);
D.doublemyadd(doublex,doubley);
64.有以下程序:
#include<stdio.h>
main()
{inta,b,k,m,*pl,*p2;
k=1,m=8;
p1=&k,p2=&m;
a=/*pl-m;b=*p1+*p2+6;
printf("%d",a);printf("%d\n",b);
}
编译时编译器提示错误信息,你认为出错的语句是()。
A.a=/*pl-m;
B.b=*p1+*p2+6;
C.k=1,m=8;
D.pl=&k,p2-&m;
65.有以下程序:
当运行时输入:a<回车>后,以下叙述正确的是()。
A.变量c1被赋予字符a,c2被赋予回车符
B.程序将等待用户输入第2个字符
C.变量c1被赋予字符a,c2中仍是原有字符2
D.变量c1被赋予字符a,c2中将无确定值
66.
当c的值不为0时,在下列选项中不能正确将c的值赋给变量a、b的是()。
A.c=b=a;B.(a=c)C.D.(b=c);E.(a=c)&&(b=c);F.a=c=b;
67.有以下程序:
程序运行后的输出结果是()。
A.1,2B.1,0C.3,2D.0,0
68.
已知有如下结构体:
structsk
{inta;
floatb;
}data,*p;
若有P=&data,则对data的成员a引用正确的是()。
A.(*p).data.aB.(*p).a;C.p->data.aD.p.data.a
69.下面函数的功能是()。
intfunc(char*x)
{char*y=x;
while(*y++);
return(y-x-1);
}
A.求字符串的长度
B.比较两个字符串的大小
C.将字符串x复制到字符串y
D.将字符串x连接到字符串y后面
70.语句“printf("akbre"\'hi\'y\\\bou\n")”;的输出结果是()。
A.akbre\'hi\'y'\\\bou
B.a\bre\'hi\\y\bou
C.re'hi'you
D.abre'hi'y\bou
71.有以下程序程序运托舌的输出结果是()。
A.1,2B.1,0C.3,2D.0,0
72.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图内容的是
A.控制流B.加工C.数据存储D.数据流
73.数据库的故障恢复一般是由
A.数据流图完成的B.数据字典完成的C.DBA完成的D.PAD图完成
74.在满足实体完整性约束的条件下()。
A.一个关系中廊该有一个或多个候选关键字
B.一个关系中只能有一个候选关键字
C.一个关系中必须有多个候选关键字
D.一个关系中可以没有候选关键字
75.HTML是一种标记语言,它是由()解释执行的。
A.不需要解释B.WindowsC.浏览器D.标记语言处理软件
76.
77.以下程序的输出结果是______。#definef(x)x*xmain(){inta=6,b=2,c;c=f(a)/f(b);printf("%d\n",c);}
A.9B.6C.36D.18
78.有以下函数:
函数的功能是()。
A.将Y所指字符串赋给x所指存储空间
B.查找x和y所指字符串中是否有
C.统计x和y所指字符串中最前面连续相同的字符个数
D.统计x和Y所指字符串中相同的字符个数
79.以下关于retllm语句的叙述中正确的是()。
A.一个自定义函数中必须有一条return语句
B.一个自定义函数中可以根据不同情况设置多条retum语句
C.定义成void类型的函数中可以有带返回值的return语句
D.没有return语句的自定义函数在执行结束时不能返回到调用处
80.
五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传人,若k的值为600,则函数的值为5671。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放人结构体数组stu中,请编写函数proc,它的功能是:把指定分数范围之外的学生数据放在b所指的数组中,分数范围之外的学生人数由函数值返回。
例如,输入的分数是70和79,则应当把分数低于70和高于79的学生数据输出,不包含70分和79分的学生数据。主函数中把70放在low中,把79放在heigh中。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。
试题程序:
#include<stdio.h>
#defineM16
typedefstruct
{
charnum[10];
ints:
}
STREC;
intproc(STREC*a,STREC*b,int1,inth)
{}
voidmain
{
STRECstu[M]={{"GA005",55),{"GA003",96},
{"GA002",80),{"GA004",68),
{"GA001",88},{"GA007",74},
{"GA008",85),{"GA006",89},
{"GA015",90),{"GA013”,53),
{"GA012",66},{"GA014”,82),
{"GA011",73},{"GA017",69),
{"GA018",64),{"GA016",86}};
STRECh[M];
inti,n,low,heigh,t;
printf("Enter2integernumberlow&
heigh:");
scanf("%d%d",&low,&heigh);
if(heigh<low)’
{
t=heigh:
heigh=low;
low=t;
}
n=proc(stu,h,low,heigh);
printf("Thestudent’Sdataout
%d--%d:\n",low,heigh);
for(i=0;i<n;i++)
printf("%S%4d\n",h[i].num,h[i].s);
//输出指定分数范围内的学生记录
printf("\n");
}
参考答案
1.A在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统这一阶段。数据库系统阶段用数据模型来表示复杂的数据,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户既可使用查询语言或终端命令操作数据库,也可以用程序方式来操作。数据库管理系统提供了数据控制功能。
2.A通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
3.B运算符“%”为二元运算符,具有左结合性,参与运算的量均为整型。B选项中的变量a是double型,不符合规定。故本题答案为B选项。
4.C程序运行后,首先输出的是p的值,然后再输出a的值。p=d++,得到p的值为d的初始值2;a的值不变,仍为1。
5.B解析:b是整型数,在输人语句中要加取地址符,而c是数组名,本身就是数组的首地址,因此不用加取地址符。
6.C解析:软件工程是解决软件项目的管理、软件开发过程中的技术、软件产品的生产率等问题,它的主要思想是强调在软件开发过程中需要应用工程化原则。
7.C
8.D解析:逻辑运算符两侧的运算对象可以是任意合法的表达式。逻辑表达式的运算结果或者为1(“真”),或者为0(“假”)。
9.D选项A中,“pt+3”使指针变量Pt移动3个单元,指向第4个元素,不能正确引用。运算符“*”与“&”放在一起,其作用相互抵消,且下标10超出了数组下标范围,所以B选项错误。“*(pt+i)”表示引用指针pt所指元素后的第i个元素,引用数组第11个元素,C选项错误。故本题答案为D选项。
10.Asizeof是运算符,计算数组、指针、类型、对象、函数等所占的字节大小。strlen(*char)是函数,参数必须是字符型指针(char*)。该函数的功能是:返回字符串的长度,不包括字符串结束标识。“sizeof(a)”是求数组a所占空间的大小,包括字符串最后的‘\\0’。所以“sizeof(a)”=5,strlen遇到‘\\0’就结束,“strlen(a)”=4。“strier(b)”是指针指向的字符串长度,“sizeof(b)”是指针的大小。“strlen(c)”是字符串的长度,“sizeof(c)”是数组的长度。因此,输出结果是4,5,2,4,1,3,。故本题答案为A选项。
11.B由题意可知,T是一个数组指针,即int*[],所以使用T*a定义,可知a属于int**[\n]类型。本题答案为B选项。
12.C在C语言中,字母区分大小,所以break、char、return、switch都是C语言中的关键字,而Swithch不是。
13.C
14.D单一的数据结构——关系,现实世界的实体以及实体间的各种联系均用关系来表示。数据的逻辑结构——二维表,从用户角度,关系模型中数据的逻辑结构是一张二维表。但是关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种关系。
15.D程序调试是由程序开发者完成诊断和改正程序中的错误的过程;软件测试是由专门的测试人员完成,是发现错误而执行程序的过程;软件维护是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程,是软件生存周期中非常重要的一个阶段。
16.D
\n本题考查字符串比较函数strcmp(s1,s2),若s1>s2,则返回1;若s1=s2,则返回0;若s1<s2,则返回-1。字符串依次比较的是它们字符的ASCIl码值。
\n
17.C由于后序遍历的最后一个儿素为E,所以E为根结点,所以它的前序遍历的首个元素为E,敞排除A)和D)选项。由于中序遍历中,元素B在元素根结点E自:J后面,所以B为二叉树的右子树,并且该二叉树右子树只有一个儿素,所以前序遍历的最后一个元素应为B,故选项C)为正确选项,即该二叉埘的前序遍历序列是EACDB。
18.Cmain函数定义两个double类型的变量a、b,分别赋初值为2.5、9.0。另外定义两个double类型的指针变量pa、pb,其中pa指向a,pb指向b。然后将b-a、pa、pb传给函数fun,此时x的值为6.5,y指向a,z指向b。“*y=*y-1.0;”是将变量a的值减去1.0赋给a,a的值为1.5;“*z=*z+x;”是将变量b的值加上6.5赋给b,b的值为15.5。fun函数执行完毕后,输出a的值为1.5。故本题答案为C选项。
19.B本题考查scanf函数,输入格式符%2d%f表示只接收了字符,其中a输入的值为2位的十进制整数,即87,然后将紧接着的6赋给b,因为b的值为单精度数在,即6.000000,故选择B选项。
20.D
21.45994599解析:a、b、c的初值为3、4、5,t的初值为99,if语句的条件“b<a&&b<c”为假,不执行“t=a;”,但紧随其后的“a=c;c=t;”与此if语句无关,仍被执行。此时a的值为5,b的值仍是4,c的值为99。再执行第二个if语句,由于此时“a<c&&b<c”为真,执行“t=b;”,紧随其后的“b=a;a=t;”与此if语句无关,也被执行。此时a的值为4,b的值是5,c的值为99。因此输出结果是:4599。
22.BB解析:字符类型的数据在内存中以相应的ASCII码存放,另外,字符数据还可以作为整数参加运算。格式控制参数中的格式字符用以指定输出项的数据类型和输出格式,输出字符与其对应的输出项的类型要一致。本题中,“b”的ASCII码为98,字符类型m的ASCII码为98+32=130,所以最后输出为b。
23.-3-3解析:本题考核的知识点是运算符“%’的应用。该运算符是求两个数相除的余数,其结果与被除数的符号一致,本题中“-19%4”的值为“-3”,所以说空格处应该填-3。
24.二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的,a[4][4]可以分解为4个一维数组,其数组名分别为a[O]、a[1]、a[2]、a[3],这4个一维数组都有4个元素,a[0]的元素为a[0][0]、a[0][1]、a[0][2]、a[0][3]。\r\n\r\n
25.时间时间解析:算法的复杂度主要指时间复杂度和空间复杂度。
26.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d×nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d×nn2=%2d解析:printf函数有两种参数:格式控制参数和输出项参数,其中格式控制参数由两种成分组成;格式说明和普通字符,普通字符将被简单地复制显示,格式说明项将引起一个输出参数项的转换与显示,它是由“%”引出并以一个类型描述符结束的字符串。本题中,n1=和n2=就是普通字符,可以直接显示,又因为n1,n2为整数,所以格式说明项为%d,也可以在%与d之间加上域宽,另外还要在每行输出结束时加转义字符\\n进行换行。所以,应填写n1=%d\\nn2=%d\\n,n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d。
27.冒泡排序冒泡排序解析:交换排序是指借助数据元素之间的互相交换进行排序的一种方法。冒泡排序是一种最简单的交换排序方法,它是通过相邻元素之间的相互交换逐步将线性表变成有序。
28.1234theend1,2,3,4,theend解析:本题考查带参数的宏的定义。第1次循环,i=1时,调用PRINT(1),P(1)输出1;第2次循环,i=2时,调用PRINT(2),P(2)输出2:第3次循环,i=3时,调用PRINT(3),P(3)输出3:第4次循环,i=4时,调用PRINT(4),P(4)输出4,theend。
29.11解析:ifelse语句的功能是:若表达式的值为真,执行语句1,并跳过其他语句,执行ifelse语句的下一条语句,若表达式的值为假,跳过语句1,执行语句2,依次往下判断。题中,x=3,y=2,第一个if语句的控制条件x<y就不满足,又没有与之配对的else语句,所以直接执行printf语句,在整个过程中变量z的值都没发生变化。
30.22解析:分析程序,a=2,b=-1,c=2时,if语句的表达式a<b不成立,不再往下判断,直接退出if语句,执行后面的输出语句,程序结束。在这个程序中a、b、c的值没做任何改变。
31.概要概要
32.#include"stdio.h"#include'stdio.h'解析:使用putchar和getchar函数时,必须在程序的开头出现包含头文件#include'stdio.h'的命令行。putchar的函数调用形式为:putchar(字符变量或字符常量);getchar函数的调用形式为:变量=getchar();getchar后的一对圆括号内没有参数,但这一对圆括号不可少。
33.模块化模块化
34.\O'或0或NULLstr[i]num++或num=num+1或num+=1\\O'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:观察题目要求,可以知道以下几点:
①for循环的结束条件应当是:str[i]已是字符串的最后一个字符;
②str[i]代表字符串str中的第i+1个字符;
③整形变量num的值是要记录的单词的个数。
C语言中规定字符串的最后一个字符是一个隐含的字符串结束符“\\0”,所以在题中第一个空中应填写“\\0”;题中第二个空应填写“str[i]”,以判断当前位置的字符是否为空格;题中第三个空中应当填写“num++”,通过变量num的加1累加得到字符串中的单词个数。
35.参照完整性参照完整性
36.929,2解析:本题开始定义了一个int型二维数组a,并赋以5个初值,系统使数组的最高维为3,并让a[0][0]=1,a[0][1]=2,a[1][0]=6,a[1][1]=9,a[2][0]=11,a[2][1]因为初值不够而初始化为0。然后定义一个行指针t指向数组a的首地址,因为表达式t[1]表示指向元素a[1][0]的int型指针,t[1]+1表示指向a[1][1]的int型指针,故*(t[1]+1)返回的是a[1][1]的值9。而*t表示指向元素a[0][0]的int型指针,故(*t)[1]返回的是a[0][1]的值2。所以正确答案应该为9,2。
37.HelloHello解析:字符串中,数值0或符号'/0'表示字符串的结束。本题中,b[5]被赋了0值,表明字符串b的第六个字符就是结束标志。因此,只输出前五个字符,即Hello。
38.33解析:C语言的语法规定:else子句总是与前面最近的不带else的if相结合。因为x不大于y,所以执行printf('%d\\n',z);语句。
39.一对多一对多解析:由于一个项目主管可以管理多个项目,而一个项目只能有一个项目主管,“项目主管”这个实体与“项目”这个实体的管理关系属于一对多。
40.89218921
41.C解析:本题先将指针P指向二维数组ch[2][5],相当于p[0]='1234',p[1]='5678',通过双重for循环,是要将p中的字符隔一个输出一个,通过s=p[i][j]-\'0\'这条语句是将所要输出的字符转换成相应的十进制数。
42.C解析:数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共事”之特点。
43.C解析:在定义字符数组用字符串常量进行初始化时,系统会自动在结尾加'\\0'做结束标志,所以数组array所占的空间为6个字节。
44.A解析:位置指针当前值函数ftell()的基本调用格式为:ftell(fp)。
ftell()函数的参数说明:“fp”是指向文件的文件型指针。
ftell函数的功能:得到fp所指向文件的当前读写位置,即位置指针的当前值,如果函数的返回值为-1L,表示出错。
45.B(27)B)解析:函数feof的功能是:测试fp所指的文件的位置是否已达到文件尾,如果达到文件尾,则函数返回非0值,否则返回0,表示文件尚未结束。
46.C
47.A解析:C语言的字符常量是用单引号括起来的一个字符,如'a','A','?','S'等都是字符常量。除此之外,还允许用一个“\\”开头的字符序列,如'\\ddd'表示1到3位八进制数所代表的字符,而八进制是由0~7这几个数字组成的,所以选项A)是不合法的字符常量。
48.B在本题中,题目告诉我们程序中调用scanf函数给变量a输入数值的方法是错误的,要求我们找出其错误的原因,这是一类错误原因分析题。
在本题程序中,首先定义两个整型指针变量p和q,然后定义两个整型变量a和b,让指针变量p执行变量a,接着输出提示语句“请输入a”,执行格式输入语句scanf,由于输入语句的输入列表中给出的应该是输入的地址,即存放输入数据的存储地址,但在本题的输入语句中给出的是*p,这表示一个数值,而非地址。因此,无法完成数据的输入,若要完成输入,可以将*p改为p。
根据上面的分析,我们可以知道本题程序出错的原因是*p表示的是变量a的值,而不是变量a的地址。因此本题正确答案选B。
49.B解析:本题考查while语句的使用。本题考查逻辑非运算符和不等于运算符的区别,逻辑非运算符'!'的优先级大于不等于运算符'!='的优先级。
50.C队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项A和选项B错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。所以,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则,选项C正确,选项D错误。
51.D解析:软件需求规格说明书SRS,SoftwareRequirementSpecification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用,①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据。
52.A解析:B项错在越界,下标最大的元素只到a[3][2];C项错在a[1]只表示第2行;*(p+4)[1]的错误也在于越界,p+4相当于a[4],实际上是不存在的。
53.D解析:本题考查C语言的基本基础知识。在C程序中,注释用符号“/*”开始,而以符号“*/”结束。程序的注释可以放在程序的任何位置。通常将注释放在程序的开始,以说明本程序的功能;或者放在程序的某个语句后面,以对此语句的功能进行描述。无论将注释放有何处,在程序进行编译时,编译程序不会处理注释的内容;且注释内容也不会出现在目标程序中。
54.C解析:C语言的语法规定:else子句总是与前面最近的不带else的if相结合,与书写格式无关。所以选项C)为正确答案。
55.A解析:本题考查while语句和if语句的嵌套,程序段实现的功能是将p[1]至p[7]中的奇数相加求和并输出,j=13+15+17=45。
56.B解析:本程序为二重循环,外循环控制输出数据的行数,内循环控制输出数据的列数。本题需要输出4行4列,外层循环语句for(i=0;i<4;i++)控制输出4行,内层的第一条for循环控制每行输出的空格数,第二条for循环用于控制每行的数字输出,由于每一行的数字个数比前一行少1个,所以内层的第二条for循环每次循环的次数需要递减1,那么j的初始值应该递增,因为第一行输出的是4个数,所以空格中应填i。
57.A
58.B解析:本题考查变量的定义方法。如果要一次进行多个变量的定义,则在它们之间要用逗号隔开,因此选项A)和D)错误。在选项C)中,变量c是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量b,故选项C)错误。
59.D解析:C语言中的文件有两种存取方式:顺序存取和直接存取。文件打开之后,就可以进行读写操作。读写操作函数可以指定文件使用方式。在使用完一个文件后应关闭它,以防误操作。
60.C解析:说明语句中变量a为整型,变量b为实型。选项A、B和D的格式控制中变量a的格式描述符为f,与定义的变量类型不符,故选项A、B和D错误。
61.C本题主要考查了结构体变量引用成员数据的方法,主要有以下两种:结构体变量名.成员名或结构体指针_>成员名。
62.B解析:在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有3种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。所以,本题的正确答案是B。
63.A解析:本题考核的知识点是函数声明的应用。函数声明是对所用到的函数的特征进行必要的声明,编译系统以函数声明中给出的信息为依据,对调用表达式进行检测,以保证调用表达式与函数之间的参数正确传递。函数声明的一般格式为:
类型标识符函数名(类型标识符形参…);
这些信息就是函数定义中的第一行的内容。这里形参的名字是不重要的,重要的是类型标识符,函数声明中也可以不写形参名只写该形参的声明类型,但不能只写形参名而不写该形参的类型。本题中,选项A中doublemyadd(doublea,b),没写出形参b的类型,故选项A不正确。所以,4个选项中选项A符合题意。
64.A\n本题考查指针,pl=&k表示P指向k的地址,则*p=k,依次类推,在对指针进行赋值时没有错误。a=/*p+m赋值,在c语言中'/*'表示的注释,所以答案选择A。
\n
65.A本题考查的是输入输出函数。函数get.char的作用是从终端(或系统隐含指定的输入设备)输入一个字符,且只能接受一个字符(回车符也算是一个字符)。故本题中变量cl被赋予字符a,c2被赋予回车符。
66.C
\n选项A是先将a的值赋给变量b,再将变量b的值赋给变量c,不合题意;B选项中由于c的值不为0,在将c的值赋给变量a后,表达式a=c的值为1,不再对表达式b=c计算;对于c选项,表达式a=c的值为1,再求表达式b=c的值为1,然后进行逻辑与运算;D选项将b的值赋给c后再赋给e,故选择C选项。
\n
67.A首先打印b=a+b=1+0=1的值l,此时已给b赋值为1。然后打印a=2}b=2{1=2的值2。所以结果是1,2。
68.B
\n本题主要考查结构指针:P=&data,访问结构体的成员。它可以通过结构变量访问,即data,可以用等价的指针形式:(*p).a和P->a来访问结构体变量中的成员。
\n
69.A首先将x指向的字符串的首地址赋给y,然后进行扫描,知道遇到结束标志0,y-x-1的意思就是求字符串的长度,因为y指向字符串的最后一个字符的下一位,而x指向字符的首地址。
70.C先输出a、b表示退一格,当执行到:\b后,光标往后退,接着输出re'hi'y\(反斜杠后又加一个反斜杠的意思是要输出一个反斜杠),此时又执行:\b后,\就被ou覆盖。
71.A首先打印b=a+b=1+0--1的值l,此时已给b赋值为l。然后打印a:2*b:2"1:2的值2。因此结果是1,2。
72.A数据流图(DFD)是用来描绘系统的逻辑模型的,它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能。
数据流图的4种基本符号分别是数据的源点或终点、数据流、数据存储和加工。
73.C数据库的故障恢复是数据库数据保护机制中的一种完整性控制。所有的系统都免不了会发生故障,其原因有可能是硬件失灵,有可能是软件系统崩溃,也有可能是其他外界的原因。在系统发生故障后,要求DBMS要有一套发生故障后的数据恢复机构来保证数据库能够恢复到一致的、正确的状态,这就是数据库的故障恢复。
在本题给出的四个选项中,数据流图用来描绘系统的逻辑模型,它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能。
数据字典是关于数据信息的集合,也就是对数据流图中包含的所有元素定义的集合,是对数据流图进行补充。
DBA即数据库管理员,它的工作主要有数据库安装、数据库配置和管理、权限设置和安全管理、监控和性能调节、备份和恢复等。
PAD图即问题分析图,是一种程序结构可见性好、结构唯一、易于编制、易于检查和易于修改的详细设计表现方法。
根据上面的分析,我们可以知道数据库的故障恢复是由数据库管理员来完成的。因此,本题的正确答案是C。
74.A实体完整性约束要求关系的主键中属性值不能为空值,因此本题答案为A)。
75.C
76.A
77.C解析:观察程序段可知,对带参数的宏的展开只是将语句中的宏名后面括号内的实参字符串代替#define命令行中的形参。本题中c=f(a)/f(b)用#definef(x)x*x代替得c=f(6)/f(2),即c=6*6/2*2,结果为36。
78.C本题中由循环条件可知遇到‘\0’或x与y所指的字符的值不等中的一个条件时就结束,所以功能是统计x和Y所指字符串中最前面连续相同的字符个数。
79.B在函数中允许有多个IettLrll语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。定义成void类型的函数,不允许从该函数取得返回值,也不允许使用return语句,c选项描述错误。没有return语句的函数在执行到函数的最后一条语句后会自动返回到调用处,A、D选项描述错误。因此B选项正确。
80.B
81.(1)错误:if((k%13=0)||(k%17=0))
正确:if((k%13==0)||(k%17==0))
(2)错误:缺少大括号
正确:在“k-=;”后加}
【解析】题目中要求能被13或17整除的自然数,判断整除条件是取余恒等于0,判断相等的符号应该用“==”,符号“=”是赋值符号,因此“=”应改为“==”;在C语言中,括号一定是成对出现的,因此,在语句“k——;”后要加上符号“}”。
82.\n\tintproc(STREC*a,STREC*b,intl,inth)\n\n\n\t{\n\n\n\tinti,j=0;\n\n\n\tfor(i=0;i<M;i++)\n\n\n\tif((a[i].s>=0&&a[i].s<1)||(a[i].s>h&&a\n\n\n\t[i].s<=l00))
//通过if语句,来判断指定范围\n\n\n\t之外的数\n\n\n\tb[j++]=a[i];//放到b数组中\n\n\n\treturnj;//最后把其个数返回到主函数中\n\n\n\t}\n\n\n\t【解析】题目要求把指定范围之外的数放到b中,将每一个学生的成绩与指定的成绩相比较,将符合条件的学生成绩放在数组b中,并将符合要求的学生个数返回给主函数。\n2021-2022年河南省焦作市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。
A.数据库系统B.文件系统C.人工管理D.数据项管理
2.软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程
B.软件从需求分析、设计、实现到测试完成的过程
C.软件的开发过程
D.软件的运行维护过程
3.若有定义“doublea=22;inti=0,k=18;”,则不符合C语言规定的赋值语句是()。
A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;
4.有以下程序
#include<stdio.h>
voidfun(intP)
{intd=2;
P=d++;printf(“%d”,P);}
main()
{inta=1;
fun(A);prinff(“%.d\n”,A);}
程序运行后的输出结果是A.32B.12C.21D.22
5.有以下语句:intb;charc[10];,则正确的输入语句是______。
A.scanf("%d%s",&b,&c);
B.scanf("%d%s",&b,c);
C.scanf("%d%s",b,c);
D.scanf("%d%s",b,&c);
6.下列描述中正确的是______。
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件新产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
7.快速排序在_____情况下最易发挥其长处。
A.被排序数据中含有多个相同排序码
B.被排序数据已基本有序
C.被排序数据完全无序
D.被排序数据中最大值和最小值相差悬殊
8.下列关于逻辑运算符两侧运算对象的叙述中正确的是()。
A.只能是整数0或1B.只能是整数0或非0整数C.可以是结构体类型的数据D.可以是任意合法的表达式
9.若有定义“intx[10],*pt=x;”,则对x数组元素的引用正确的是()。
A.pt+3B.*&x[10]C.*(pt+10)D.*(x+3)
10.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“TEXT”,*b=“++”,c[3]=“1”;printf(“%d,%d,”,strlen(a),sizeof(a));printf(“%d,%d,”,strlen(b),sizeof(b));printf(“%d,%d,\n”,strlen(c),sizeof(c));}程序运行后的输出结果是()。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3
11.若有定义:Typedefint*T[10];T*a;则以下与上述定义中a类型完全相同的是()。
A.int*a[10];
B.int**a[10];
C.int*(*a)[10];
D.int*a[][10];
12.下列标识符不是关键字的是()。
A.breakB.charC.SwithchD.return
13.以下关于链式存储结构的叙述中,()是不正确的。
A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构
B.逻辑上相邻的结点物理上不必邻接
C.可以通过计算直接确定第i个结点的存储地址
D.插入、删除运算操作方便,不必移动结点
14.在关系数据库中,用来表示实体间联系的是()。
A.网状结构B.树状结构C.属性D.二维表
15.下列叙述中正确的是()。
A.软件测试应该由程序开发者来完成
B.程序经调试后一般不需要测试
C.软件维护只包括对程序代码的维护
D.以上三种说法都不对
16.
若输入“abcdef”“abdef”,下述程序的输出结果为()。
#include<stdio.h>
#include<string.h>
main
{intn;
chars1[20],s2[20],*p1,*p2;
scanf("%s",s1);
scanf("%S",s2);
p1=s1;
p2=s2;
n=strcmp(p1,p2);
printf("Vood\n",n);
}
A.-1B.0C."abcdef"D."abdef"
17.已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()
A.ABCDEB.ECABDC.EACDBD.CDEAB
18.有以下程序:#include<stdio.h>voidfun(doublex,double*y,double*z){*y=*y-1.0;*z=*z+x;}main(){doublea=2.5,b=9.0,*pa,*pb;pa=&a;pb=&b;fun(b-a,pa,pb);printf(“%f\n”,a);}程序运行后的输出结果是()。
A.8.000000B.9.000000C.1.500000D.10.500000
19.设有定义:“inta;floatb;”,执行“scanf("%2d%f",&a,&b);”语句时,若从键盘输入876543.0<回车>,a和b的值分别是()。
A.876和543.000000
B.87和6.000000
C.87和543.000000
D.76和543.000000
20.
二、2.填空题(20题)21.以下程序运行后的输出结果是()。
main()
{inta=3,b=4,c=5,t=99;
if(b<a&&a<C)t=a;a=c;c=t;
if(a<c&&b<C)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,A);
}
22.以下程序运行后的输出结果是【】。
main()
{charm;
m='B'+32;printf("%c\n",m);
}
23.若有语句
inti=-19,j=i%4;
printf("%d\n",j),
则输出的结果是______。
24.若有定义inta[4][4]={1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[1][1]得到的初值是______。
25.算法的复杂度主要包括空间复杂度和______复杂度。
26.有以下语句段
intnl=10,n2=20;
printf("______",n1,n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
27.最简单的交换排序方法是______。
28.下列程序的输出结果是______。
#defineP(A)printf("%d,",(int)(A))
#definePRINT(A)P(A);printf("theend")
main()
{inti,a=0;
for(i=1;i<5.i++)
PRINT(a+i);
printf("\n");
}
29.下列程序的输出结果是______。
#include<stdio.h>
main()
{intx=3,y=2,z=1;
if(x<y)
if(y<0)z=0;
elsez+=1;
printf("%d\n",z);
}
30.下列程序的输出结果是______。
#include<stdio.h>
main()
{inta=2,b=-1,C=2;
if(a<B)
if(b<O)c=0;
elsec++;
printf("%d\n",C);
}
31.软件的【】设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。
32.在使用putchar和getchar函数处理字符时,必须在程序的开头出现包含头文件的命令行是【】。
33.结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。
34.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。
word_num(str)
for(i=0;str[i]!=【】;i++)
if(【】='')word=0;
【】;
}
return(num);
}
35.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。
36.若有如下程序:
main()
{inta[][2]={1,2,6,9,11},(*t)[2];
t=a;
printf("%d,%d\n",*(t[1]+1),(*t)[1]);
}
则程序运行后输出的结果是【】。
37.下列程序段的输出结果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
38.阅读下面程序,则执行后的输出结果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
39.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于【】。
40.设有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298,则输出结果为
三、1.选择题(20题)41.下列程序的输出结果是()。#include<stdio.h>main(){charch[2][5]={"1234","5678"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2){s=p[i][j]-'0';printf("%d",s);}}
A.6357B.6135C.1357D.691357
42.下列有关数据库的描述,正确的是______。
A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件
43.设有数组定义:chararray[]="China";则数组array所占的空间为()个字节。
A.4B.5C.6D.7
44.函数ftell(fp)的作用是()。
A.得到fp所指向文件的当前读写位置B.初始化流式文件的位置指针C.移动流式文件的位置指针D.以上答案均正确
45.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为______。A.EOFB.非0值C.0D.NULL
46.有以下程序main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}如果从键盘上输入6514<回车>,则输出结果为()
A.m=3B.m=2C.m=1D.m=0
47.以下不合法的字符常量是()。
A.'\018'B.'\"'C.'\\'D.'\xcc'
48.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}
A.*p表示的是指针变量p的地址
B.*p表示的是变量a的值,而不是变量a的地址
C.*p表示的是指针变量p的值
D.*p只能用来说明p是一个指针变量
49.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则
A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次
50.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表
51.下列叙述中,不属于软件需求规格说明书的作用的是()
A.便于用户,开发人员进行理解和交流
B.反映出用户问题的结构,可以作为软件开发工作的基础和依据
C.作为确认测试和验收的依据
D.便于开发人员进行需求分析
52.若有以下的定义和语句:main(){inta[4][3]*p[4],j;for(j=0;j<4;j++)p[j]=a[j];}则能表示数组元素的表达式是______。
A.*(p[1])B.a[4][3]C.a[1]D.*(p+4)[1]
53.以下叙述不正确的是
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
54.在嵌套使用if语句时,C语言规定else总是A.和之前与其具有相同缩进位置的if配对
B.和之前与其最近的if配对
C.和之前与其最近的且不带else的if配对
D.和之前的第一个if配对
55.有以下程序:main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}程序运行后的输出结果是______。
A.42B.45C.56D.60
56.有以下程序:#include<stdio.h>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",hum[i][j]);printf("\n");}}若要按以下形式输出数组右上半三角;1234678111216则在程序下划线处应填入的是()。
A.i-1B.iC.i+1D.4-i
57.下列语句中,正确的是______。
A.staticcharstr[]="China";
B.staticcharstr[];str="China";
C.staticcharstr1[5],str2[]={"China"};strl=str2;
D.staticcharstr1[],str2[];str2={"China"};strcpy(str1,str2);
58.以下定义语句中正确的是
A.inta=b=0;
B.charA=65+1,b='b';
C.floata=1,*b=&a,*c=&b;
D.doublea=0.0;b=1.1;
59.以下叙述正确的是()。
A.C语言中的文件是流式文件,因此只能顺序存取数据
B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第一个数据
D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
60.若有说明语句"inta;floatb;”,以下输入语句正确的是()
A.scanf("%f%f",&a,&b);
B.scanf("%f%d",&a;&b);
C.scanf("%d,%f",&a,&b);
D.scanf("%6.2f%6.2f",&a,&b);
四、选择题
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天津市河西区名校2027届九年级化学第一学期期中学业水平测试试题含解析
- 湖北省广水市城郊街道办事处中学2027届化学九上期末学业水平测试试题含解析
- 重庆市文理院附属中学2027届九年级物理第一学期期末学业水平测试试题含解析
- 湖南省长沙市湘郡培粹实验中学2027届九上化学期中联考模拟试题含解析
- 医院护理部工作总结暨下一步工作计划
- 单纯超滤考题及精准答案
- 广东省惠州市第五中学2027届化学九上期中学业水平测试试题含解析
- 2027届湖南省郴州市名校物理九年级第一学期期末学业质量监测模拟试题含解析
- 幼儿园大班儿童节活动方案模板
- 诙谐产品测试题和答案分享
- 2026年高考贵州化学真题含答案
- 2026年国家电网招聘之电网计算机考试题库及完整答案(历年真题)
- 《建设项目对风景名胜区影响评价报告编制大纲(试行)》
- 金刚砂耐磨地面应用技术规程
- 急性有机磷农药中毒诊疗指南
- 《国有企业领导人员廉洁从业若干规定》试题(附答案)
- 网络经济学 第四版 课件全套 王晔 第1-8章 网络经济学导论 -网络经济下的公共政策
- (2025)新生儿坏死性小肠结肠炎(NEC)诊疗指南与共识解读
- 锑行业深度:供需增速错配或推升行业进入强景气周期
- 痛风抗炎症治疗指南(2026版)
- 混凝土输送泵车安全技术交底
评论
0/150
提交评论