版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年黑龙江省哈尔滨市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.在长度为n的顺序存储的线性表中,删除第i个元素(1≤i≤n)时,需要从前向后依次前移____个元素。
A.n-iB.n-i+1C.n-i-1D.i
2.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。
A.概要设计B.详细设计C.可行性分析D.需求分析
3.有以下程序:
A.1,5,9,B.1,4,7,C.3,5,7,D.3,6,9,
4.以下说法错误的是:()
A.全局变量就是在函数外定义的变量,因此又叫做外部变量
B.一个函数中既可以使用本函数中的局部变量,也可以使用全局变量
C.局部变量的定义和全局变量的定义的含义不同
D.如果在同一个源文件中,全局变量和局部变量同名,则在局部变量的作用范围内,全局变量通常不起作用
5.合法的数组定义是()
A.inta[]="string";
B.inta[5]={0,1,2,3,4,5};
C.chara="string";
D.chara={0,1,2,3,4,5};
6.写出a*(b-c*d)+e-f/g*(h+i*j-k)的逆波兰表达式()。
A.a(b-c*d)*+e-(f/g(h+i*j-k)*)
B.a(b-(cd*))*+e-(fg/(h+ij*-k)*)
C.a(bcd*-)*+e-(fg/hij*+k-*)
D.abcd*-*e+fg/hij*+k-*-
7.以下不能定义为用户标识符的是()。
A.scanfB.VoidC.3comD.int
8.下列不属于软件工程的3个要素的是
A.工具B.过程C.方法D.环境
9.有以下程序#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf(“%d\n”,i);}执行后输出结果是()A.28B.22C.16D.4
10.有以下程序:#include<stdio.h>main(){charch=‘D’;while(ch>‘A’){ch--;putchar(ch);if(ch==‘A’)break;putchar(ch+1);}}程序运行后的输出结果是()。
A.CBB.BCAC.CCBBD.CDBCA
11.在软件开发过程中,软件结构设计是描述______。
A.数据存储结构B.软件体系结构C.软件结构测试D.软件控制过程
12.有以下程序:#include<stdio.h>voidexch(intt[]){t[0]=t[s];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;while(i<=4){exch(&x[i]);i++;}for(i=0;i<5;i++)printf("%dl"x[i]);printf("\n");}程序运行后输出的结果是()。A.246810B.13579C.12345D.678910
13.第
11
题
若有定义:char*st="howareyou";下列程序段中正确的是
A.chara[11],*p;strcpy(p=a+1,&st[4]);
B.chara[11];strcpy(++a,st);
C.chara[11];strcpy(a,st);
D.chara[],*p;strcpy(p=&a[1],st+2);
14.有以下程序:#include<stdio.h>main(){intx=1,y=2,z=3;if(x>y)if(y<z) printf(“%d”,++z);else printf(“%d”,++y);printf(“%d\n”,x++);}程序的运行结果是()。
A.1B.41C.2D.331
15.某二叉树的前序和后序序列正好相反,则该二叉树一定是_____的二叉树
A.空或者只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子
16.无向图中一个顶点的度是指图中与该顶点相邻接的顶点数。若无向图G中的顶点数为n,边数为e,则所有顶点的度数之和为()
A.n*eB.n+eC.2nD.2e
17.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。
A.7B.8C.6D.2
18.设有以下语句
typedefstructS
{intg;charh;}T;
则下面叙述中正确的是()A.可用S定义结构体变量B.可以用T定义结构体变量C.S是struct类型的变量D.T是structS类型的变量
19.设有以下宏定义:#defineN3#defineY(n)((N+1)*n)则执行以下语句后,z的值为______。z=2*(N+Y(5+1));A.出错B.42C.48D.54
20.设x=011050,则x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
二、2.填空题(20题)21.下面程序执行后输出的结果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
22.以下程序运行后的输出结果是______。
main()
charc;intn=100;
floatf=10;doublex;
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
23.设x和y均为int型变量,且x=1,y=2,则表达式2.0+x/y的值为_______。
24.以下程序的运行结果是______。
structexmp{charname[10];
intnumber;
};
structexmptest[3]={{"WangXi",1},{"QiYu",2},{"HuHua",3}};
main()
{printf("%c,%s\n",test[0].name[1],test[2].name+3);
}
25.对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【】。
26.数据管理技术的发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【】。
27.若有以下定义,则使指针p指向值为35的数组元素的语句是______。
inta[10]={14,27,47,29,35,21,49,71},*p;
28.以下程序运行后的输出结果是【】。
#defineS(x)4*x*x+1
main()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
29.下列程序的运行结果是【】。
#include<stdio.h>
main()
{unionEXAMPLE
{struct
{intx;inty;}in;
inta;
intb;
}e;
e.a=1;e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("%d,%d\n",e.in.x,e.in.y);
}
30.若x和a均是血型变量,则计算完x=(a=4,6*2)后的x值为______。
31.数据结构分为逻辑结构和存储结构,循环队列属于______结构。
32.在树形结构中,树根结点没有______。
33.若变量n中的值为24,则prnt函数共输出【】行。
voidprnt(intn,intaa[])
{inti;
for(i=1;i<=n;i++)
{printf("%6d",aa[i]);
if!(i%5))printf("\n");
}
printf("\n");
}
34.以下程序运行后的输出结果是【】。
#include<stdio.h>
intf(ihta[],intn)
{if(n>=1)returnf(a,n-1)+a[n-1];
elsereturn0;
main()
intaa[5]={1,2,3,4,5},s;
s=f(aa,5);prinff("%d\n",s);
}
35.下列程序执行输出的结果是【】。
#include<stdio.h>
f(inta)
{intb=0;
staticc=3;
a=c++,b++;
return(a);}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);}
36.软件开发环境是全面支持软件开发全过程的【】集合。
37.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。
38.设有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序运行后,从键盘上输入(<CR>代表回车符):DEF<CR>BADEF<CR>QTHRG<CR>,则程
序的输出结果是______。
39.数据的______结构在计算机存储空问中的存放形式称为数据的存储结构或物理结构。
40.下面程序是计算100以内能被4整除且个位数为4的所有整数,请填空。
main()
{intm,n;
for(m=0;【】;m++)
{n=m*10+4;
If(【】)continue;
printf("%d\n",n);}}
三、1.选择题(20题)41.在以下一组运算中,优先级最高的运符算是()
A.<=B.=C.%D.&&
42.以下数据结构中不属于线性数据结构的是______。
A.队列B.线性表C.二叉树D.栈
43.有以下程序:main(){intn=0;do{n++;printf("%d\n",n);}while(n<=3);}程序的输出结果是()。
A.12B.123C.1234D.1
44.以下叙述中正确的是A.A.C程序中的注释只能出现在程序的开始位置和语句的后面
B.C程序书写格式严格,要求一行内只能写一个语句
C.C程序书写格式自由,一个语句可以写在多行上
D.用C语言编写的程序只能放在一个程序文件中
45.下列选项中不是结构化程序基本结构的是
A.顺序结构B.跳转分支结构C.选择结构D.循环结构
46.已有定义int(*q)(),指针q可以()。
A.指向函数的入口地址B.代表函数的返回值C.表示函数的类型D.表示函数返回值的类型
47.有以下程序main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序运行后的输出结果是()
A.11B.19C.13D.20
48.有以下程序,其中%u表示按无符号整数输出:
main
{
unsignedintx=0xFFFF;/*x的初值为十六进制数*/
printf("%u\n",x);
}
程序运行后的输出结果是()。
A.-1B.65535C.32767D.0xFFFF
49.在设计程序时,应采纳的原则之一是()。
A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解
50.执行下面的程序后,a的值是()#defineSQR(X)X*Xmain(){inta=10,k=2,m=l;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}
A.10B.1C.9D.0
51.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}该程序中的for循环执行的次数是______。
A.5B.6C.7D.8
52.字符(char)型数据在微机内存中的存储形式是______。
A.反码B.补码C.EBCDIC码D.ASCⅡ码
53.有以下定义语句
doublea,b;intw;longc;
若各变量已正确赋值,则下列选项中正确的表达式是A.a=a+b=b++B.w%(int)a+b)C.(c+w)%(int)aD.w=a==b;
54.若有如下说明,则______的叙述是正确的。structst{inta;intb[2];}a;
A.结构体变量a与结构体成员a同名,定义是非法的
B.程序只在执行到该定义时才为结构体st分配存储单元
C.程序运行时为结构体st分配6个字节存储单元
D.类型名structst可以通过extern关键字提前引用(即引用在前,说明在后)
55.以下程序的输出结果是()#include<stdio.h>main(){inta,b,d=241;a=d/100%9b=(-1)&&(+1);printf("%d,%d,a,d");}
A.6,1B.2,1C.6,0D.2,0
56.算法中,对需要执行的每一步操作,必须给出清楚、严格的规定。这属于算法的A.正当性B.可行性C.确定性D.有穷性
57.若有说明语句:charc=′\72′;则变量c
A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法,c的值不确定
58.下列叙述中正确的是()。
A.在面向对象的程序设计中,各个对象之间具有密切的联系
B.在面向对象的程序设计中,各个对象都是公用的
C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
D.上述三种说法都不对
59.有以下程序:main(){intx=0,y=5,z=31while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序执行后的输出结果是______。
A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
60.在E-R图中,用来表示实体之间联系的图形是()
A.矩形B.椭圆形C.菱形D.平行四边形
四、选择题(20题)61.
s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s;则以下选项中正确的是()。
A.if(s1>s2)S;
B.if(strcmp(s1,s2))S;
C.if(strcmp(s2,sl)>O)S;
D.if(stremp(s1,s2)>O)S;
62.以下关于return语句的叙述中正确的是()。A.一个自定义函数中可以根据不同情况设置多条return语句
B.一个自定义函数中必须有一条return语句
C.定义成void类型的函数中可以有带返回值的retum语句
D.没有return语句的自定义函数在执行结束时不能返回到调用处
63.下面函数的功能是()。
intfunc(char*x)
{char*y=x;
while(*y++);
return(y-x-1);
}
A.求字符串的长度
B.比较两个字符串的大小
C.将字符串x复制到字符串y
D.将字符串x连接到字符串y后面
64.
65.
66.下列叙述中正确的是()。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空问不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
67.在软件开发中,需求分析阶段产生的主要文档是()。A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书
68.
69.有以下程序:
程序执行后的输出结果是()。
A.y=一1B.Y=0C.y=1D.while构成无限循环
70.有以下程序:
程序执行后的输出结果是()。
A.5,11B.5,5C.11,11D.11,5
71.
72.已知大写字母A的ASCIl码的值是65,小写字母a的ASCIl码的值是97,以下不能将变量。中的大写字母转换为对应小写字母的语句是()。
A.
B.
C.
D.
73.有以下程序若想通过键盘输入,使得al的值为12,a2的值为34,el的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b则正确的输入格式是()。
74.下列关于栈的叙述中,正确的是()。
A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对
75.
执行下述程序后,输出的结果是()。
#include<stdio.h>
#defineS(X)X*X
voidmain
{inta=9,k=3,m=2;
a/=S(k+m)/s(k+m);
printf("%d",a);
}
A.1B.4C.9D.0
76.
下列程序的运行结果是()。
main
{intx=1,y=3,a=0;
while(x++!=(y-=l))
{a+=1;
if(y<x)break;
}
printf("%d,%d,%d\n",x,y,a);
}
A.2,3,2B.2,3,1C.1,3,3D.3,1,2
77.
78.
79.有以下程序:
程序的运行结果是()。
A.0B.10C.20D.出错
80.
五、程序改错题(1题)81.下列给定程序中,fun()函数的功能是:求3个数的最小公倍数,例如,给变量a、b、c、分别输入15、11、2,则输出结果应当是330。请修改函数中的错误,得出正确的结果。注意:不要改动main()函数,不能增行或减行,也不能更改程序的结构。试题程序:
六、程序设计题(1题)82.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(),它的功能是:把分数最低的学生数据放在h所指的数组中。注意:分数低的学生可能不止一个。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.A
2.D解析:在需求分析阶段中,根据可行性研究阶段所提交的文档,特别是从数据流图出发,对目标系统提出清晰、准确和具体的要求,即要明确系统必须做什么的问题。本题的正确答案为D。
3.C即输出x[0][2]x[l][1]x[2][0]分别为357。
4.A
5.D
6.D
7.D解析:标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符由1~32个字符组成,第一个字符必须是字母或下划线,后面的字符可以是字母、数字或下划线。标识符不能与C关键字相同,并区分大小写。选项D)错误,因为int是C语言中的关键字。
8.D解析:本题考查了软件工程的基本概念。软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制和管理。
9.A解析:f(4+4)/f(2+2)=4+4*4+4/2+2*2+2=28。
10.Dputchar函数的功能是输出一个字符,由whlie判断条件和ch初始值可知,只要“ch≠‘A’”,执行两次putchar函数,否则跳出循环。第1次输出“CD”,第2次输出“BC”,第3次输出“A”后跳出循环。故本题答案为D选项。
11.B解析:从工程管理解度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。
12.D本题中exch函数是用数组中的第6个元素对第1个元素进行赋值,所以数组的值应该为678910。
13.A本题综合考查字符数组的赋值和strcpy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:str1='China',如果想把“China”这5个字符放到数组str1中,除了逐个输入外,还能使用strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给str1):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
strcpy函数的结构是:strcpy(字符数组1,字符串2)
其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,“字符数组1”必须写成数组名形式,如(str1),“字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
14.Aelse总是与离它最近的if配对,所以当第1个if语句的判断条件不成立时,不再执行第2个if语句以及与第2个if语句配对的else语句,而是直接执行“x++”,输出1。故本题答案为A选项。
15.B
16.D
17.B
18.B解析:结构体类型的定义格式为:
strcut结构体名
{成员说明列表};
结构体变量的定义有3种形式:第一种:定义结构体型的同时定义结构体变量如:strcut结构体名{成员说明列表}变量;第二种先定义一个结构体类型,然后使用该类型来定义结构体变量,如:strcutstudent{成员说明列表):student变量;第三种:定义一个无名称的结构体类型的同时定义结构体变量,如:Strctstudent{成员说明列表}变量。和上面三种情况比较我们不难得知只有选项B是正确的。所以,4个选项中选项B符合题意。
19.D
20.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。
21.22解析:本题变量m既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,fun(a,b)/m中的m应取外部变量的值13,因此输出2。
22.220.0或220或220.或220.000000220.0或220或220.或220.000000解析:所有的赋值运算符的优先级都相同,它们的结合性为从右至左,它们返回的表达式值为赋给变量的值.所以,语句x=f*=n/=(c=50):→x=f*=n/=50;→x=f*=2;(n的值变成2)→x=20;。故最终输出的结果应该是:220.000000
23.2.0。2.0。解析:x和y为整数,运算符“/”在这里是整型除,整除后值为0。
24.aua。a,ua。解析:test是结构体数组,每个元素均可看作是一个结构体变量,主函数将结构体数组元素test[0]中的name域下标为1的元素以字符形式输出,将结构体数组元素test[2]中的name域从地址name+3开始以字符串的形式输出。
25.4545解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过遍的从前往后扫描和遍的从后往前扫描,需要比较次数为。
26.数据库系统阶段数据库系统阶段解析:在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段,其中数据独立性最高的阶段是数据库系统阶段。
27.p=a+4或p=&a[4]。p=a+4或p=&a[4]。解析:可以直接将数组元素a[4]的地址(即&a[4])赋给指针变量p,也可以用数组名加偏移量的形式(即a+4)表示数组元素a[4]的地址,并赋给指针变量p。
28.8181解析:将S(i+j)展开来有:S(i+j)=S(6+8)=4×6+8×6+8+1=81。
29.484,8解析:C语言规定,共用体中各个成员变量在内存中占用同一段内存单元,即e.in.x、e.a、e.b占用同一段内存单元。执行语句e.b=2;后,e.in.x=e.a=e.b=2;执行语句e.in.x=e.a*e.b;时,e.a的值为2,e.b的值为2,所以运算得出e.in.x的值为4;执行语句e.in.y=e.a+e.b时,由于e.in.x和e.a、e.b占用的是同一段内存单元,所以此时的e.a、e.b的值为4,因此运算得出e.in.y的值为4+4=8。程序最后的输出结果为4,8。
30.1212解析:x=(表达式1,表达式2,…)的形式,结果为最后一个表达式的值:x=(a=4,6*2)=2*6=12。
31.存储或物理或存储结构或物理结构存储或物理或存储结构或物理结构解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。供队列循环使用。可知,循环队列应当是物理结构。
32.前件前件
33.55解析:本题的关键在于if(!(i%5))printf('\\n),这句,即如果i可被5整除时,则换行。i值为24,可以被5整除4次,并余4,因此,prnt函数共输出5行,最后一行有4个数。
34.1515解析:程序通过递归调用实现求数组aa各元素之和,即a[4]+a[3]+a[2]+a[1]+a[0]=15。
35.44解析:本题考查了静态存储类别的局部变量的特点。静态存储类别的局部变量在程序的整个生存周期内都存在,但作用域却只局限于定义它的函数或局部范围。当i=0时执行第一次for循环,k=f(2),a=c++,b++;因为赋值运算符的优先级高于逗号运算符,所以a=3,c=4;当i=1时执行第二次for循环,k=f(3),a=c++,b++;因为c为静态局部变量所以保留着这一次执行的结果值4,所以a=4,c=5,所以函数f()返回a的值为4。
36.软件工具软件工具
37.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。
38.QTHRGQTHRG解析:函数strcmp(t,s)用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0:若t<s,则函数值小于0。函数strcpy(t,s)的功能是,把字符数组s所指字符串的内容复制到字符数组t所指存储空间中。本题中,t[10]='CDEF'。第一次循环,s[10]='BADEF',if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环,s='QTHRG',if语句的控制条件strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指存储空间中,然后输出字符数组t。
39.逻辑逻辑解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构或物理结构。
40.m<10n%4!=0
41.C
42.C解析:线性表、栈和队列所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,它只能在固定的一端进行插入和删除操作,又称后进先出表(LastInFirstOut);队列是插入在一端进行,删除在另一端进行的线性表,又称先进先出表(FirstInFirstOut)。
43.C解析:本题考查do…while循环。在do…while构成的循环体中,总是先执行一次循环体,然后再求表达式的值。当执行完第三次循环时,得到n=3,while循环表达式仍然成立,接着执行直到n=4,表达式不成立,跳出循环,结束程序。
44.C
45.B解析:结构化程序由顺序结构、选择结构和循环结构组成。
46.A解析:本题考查的是指向函数的指针。函数指针的定义方式是:类型标识符(*指针变量名)()。其中,“类型标识符”为函数返回值的类型;“指针”指向函数的入口地址。
47.B解析:C语言规定,数组元素的下标是从零开始的.本题首先定义了一个二维数组aa并按行赋初值,定义了一个变量s用于求和。for循环执行4次分别把数组元素aa[0][1]、aa[1)[1)、oa[2][1]和aa[2][1]的值(2,6,9,2)加到变量s中,s的值为19,所以最后输出的s的值为19.所以4个选项中B正确。
48.B解析:整型常量有十进制、八进制和十六进制3种表示:十进制整数以正号(+)或负号(-)开头,由首位非0的一串十进制数字组成,正负号也可省略,表示正整数;八进制整数以数字0开头,后面接着干个八进制数字(0~7):十六进制整数以数字。和字母x(大、小写均可)开头,后面接若干个十六进制数字(数字0~9和字母A~F,大、小写均可)。故本题是以无符号整数形式输出一个十六进制整数FFFF,将其转换为十进制就是65535,故本题应该选择B。
49.D解析:滥用goto语句将使程序流程无规律,可读性差,因此选项A)不选;注解行有利于对程序的理解,不应减少或取消,选项B)也不选;程序的长短要依照实际情况而论,而不是越短越好,选项C)也不选。
50.B
51.B解析:该题目测试考生对宏替换的理解。这是一种简单的情况:不带参数的宏。关键要注意在对2*M+1进行宏替换时,要将宏名M原封不动地代进去,得到NUM的形式为2*N+1+1(千万不要随意给N+1加上小括号,使NUM变为2。(N+1)+1,这就是宏名和变量名之间的区别),在将N代进去,得到NUM的值为6。
52.D解析:将—个字符常量放到—个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的ASCII码值放到存储单元中。
53.C解析:选项A不是合法的赋值语句,将最右边的第一个赋值表达式加括号即为a=a+(b=b++)才正确,故选项A不正确。选项B中运算符%的对象必须是整型,而在选项B中(int)a+b为double型,故选项B不正确。a,b都为double型,应当避免使用a==b这样的关系表达式,因为通常存放在内存中的实型数据是有误差的,因此不可能精确相等,这将导致关系表达式a==b总为0。所以,4个选项中选项C符合题意。
54.D解析:结构体变量a与结构体成员a同名是合法的定义,引用成员a的方法是a.a,变量a处于不同的“层次”上,系统完全能够分情。st是—个结构体名,不会为结构体名分配存储空间,应该是在运行时为结构体变量a分配6个字节的存储单元,故选项B和选项C错误。
55.B
56.C解析:本题考查一个算法应当具有5个特性,即有穷性、确定性、可行性、有零个或多个输入以及有一个或多个输出。算法的确定性是指:算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。并且在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只能得出相同的执行结果。
57.A解析:C语言的字符型常量中,允许用一种特殊形式的字符常量,就是以一个'\\'开头的字符。其中,'\\ddd'表示用ASCII码(八进制数)表示一个字符,本题中的charc=\'\\72\'即表示占一个字符的变量c的ASCII码值。
58.C解析:在面向对象的程序设计中,对象是面向对象的软件的基本模块,它是由数据及可以对这些数据施加的操作所组成的统一体,而且对象是以数据为中心的,操作围绕对其数据所需做的处理来设置,没有无关的操作。从模块的独立性考虑,对象内部各种元素彼此结合得很紧密,内聚性强。由于完成对象功能所需要的元素(数据和方法)基本上都被封装在对象内部,它与外界的联系自然就比较少,所以,对象之间的耦合通常比较松。所以,选项A与B错误,选项C正确。
59.B解析:第一次执行while语句时,z=3>0,然后执行z--得z=2,执行++x得x=1<5,条件成立,执行y=y-1=5
-1=4;第二次执行while语句时,z=2>0,然后执行z--得z=1,执行++x得x=2<5,条件成立,执行y=y-1=4-1=3;第三次执行while语句时,z=1>0,然后执行z--得x=0,执行++x得x=3<5,条件成立,执行y=y-1=3-1=2;第四次执行while语句时因z=0,z<0条件不成立,同时执行c--得z=-1。即执行完while循环后x=3、y=2、z=-1。
60.C解析:E-R模型可用E-R图来表示,它具有3个要素:①实体(型)用矩形框表示,框内为实体名称。②属性用椭圆型来表示,并用线与实体连接。属性较多时也可以将实体及其属性单独列表。③实体间的联系用菱形框表示。用线将菱形框与实体相连,并上标注联系的类型。
61.D
\n在C语言中,不能直接比较两个字符串的大小,必须用特定的函数来完成,选项A错误;选项B不管大于还是小于都执行S,不符合题意;选项C正好相反,当s2大于s1时,执行语句S,可知选项D正确。
\n
62.A一个函数可以有多个return语句,所以选择A)。
63.A首先将x指向的字符串的首地址赋给y,然后进行扫描,知道遇到结束标志0,y-x-1的意思就是求字符串的长度,因为y指向字符串的最后一个字符的下一位,而x指向字符的首地址。
64.D
65.C\r\n
66.A\n顺序存储方式是把逻辑上相邻的结点存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。其优点是占用最少的存储空间,所以选项D)错误。顺序存储结构可以存储如二叉树这样的非线性结构,所以选项B)错误。链式存储结构也可以存储线性表,所以选项c)错误。
\n
67.D需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。所以选择D。
68.D
69.Ay一一表示Y使用后再自减l。所以最后一次Y的值为0,条件不成立但仍要执行自减操作,Y的值为一1,跳出循环。打印Y的值一1。
70.A声明静态局部变量:函数调用结束后,其占用的存储单元不释放,在下次该函数调用时,该变量保留上一次函数调用结束时的值。本题子函数tim中的变量i和m均为静态局部变量。所以第一次调用fun函数,返回m的值为5,第二次再调用fun函数时,i的值为3,nl的值已经是5了,所以执行i+=m+1,i的值变为9,nl=i+x+Y=9+1+l=11。
71.C\r\n
72.D无论大小写,字母问的间隔都相等,所以
73.A在输入多个数据时,如果格式控制串中没有非格式字符,则认为所有输入的字符均为有效字符。因此应按选项A)的顺序输人数据。
74.B栈是先进后出,因此,栈底元素是先入栈的元素,栈顶元素是后入栈的元素。
75.D
\n本题j=要是考查带参数的宏的定义,过程如下:inta=a/S(k+m)/S(k+m)=a/(k+m*k+m/k+m)=9/(3十2*3十2/3十2*3十2)=0。
\n
76.D
\n本题考查'drhile循环。第一次循环,y=y-1,y=2,循环条件成立,x=1,X++后值为1,x自加变成2,进入循环,a=a+1=1,判断if语句条件是否成立,y<x不成立,接着执行下一次循环。第二次循环,x=2,y-1=1,循环条件成立,进入循环,a=a+1=2,判断if语句的控制条件是否成立,y<X成立,执行break语句,退出循环。结果为D。
\n
77.C
78.C
79.C分配内存空间函数malloe的调用形式:类型说明符*)malloe(size)。其功能是在内存的动态存储区中分配一块长度为”size”字节的连续区域,函数的返回值为该区域的首地址。”类型说明符”表示把该区域用于何种数据类型。
80.B
81.(1)错误:j=1;
正确:i=0;
(2)错误:while(temp!=0&&m!=0&&n!=0)
正确:while(temp!=0||m!=0I{n!=0)
【解析】其中while循环是判断能否除尽x、y、z,循环中“i=i+1;”进行了加1操作,i应该从1开始进行循环,所以i的初始值应该是0,这样第一个错误标识下的“i=1;”就改为“i=0;”。
第二个标识下while循环逻辑关系应该是或的关系,因为最小公倍数成立的条件是同时除尽,所以只要不是同时除尽,循环就继续,这样“while(temp!=0&&m!=0&&n!=0)”应该是“while(temp!=0||m!=0||n!=0)”。
82.
【解析】要返回分数最低的学生个数,首先要找出学生中的最低分数。然后将各个学生的成绩与最低分数相比较,最后将分数最低的学生个数返回给主函数。
2022年黑龙江省哈尔滨市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.在长度为n的顺序存储的线性表中,删除第i个元素(1≤i≤n)时,需要从前向后依次前移____个元素。
A.n-iB.n-i+1C.n-i-1D.i
2.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。
A.概要设计B.详细设计C.可行性分析D.需求分析
3.有以下程序:
A.1,5,9,B.1,4,7,C.3,5,7,D.3,6,9,
4.以下说法错误的是:()
A.全局变量就是在函数外定义的变量,因此又叫做外部变量
B.一个函数中既可以使用本函数中的局部变量,也可以使用全局变量
C.局部变量的定义和全局变量的定义的含义不同
D.如果在同一个源文件中,全局变量和局部变量同名,则在局部变量的作用范围内,全局变量通常不起作用
5.合法的数组定义是()
A.inta[]="string";
B.inta[5]={0,1,2,3,4,5};
C.chara="string";
D.chara={0,1,2,3,4,5};
6.写出a*(b-c*d)+e-f/g*(h+i*j-k)的逆波兰表达式()。
A.a(b-c*d)*+e-(f/g(h+i*j-k)*)
B.a(b-(cd*))*+e-(fg/(h+ij*-k)*)
C.a(bcd*-)*+e-(fg/hij*+k-*)
D.abcd*-*e+fg/hij*+k-*-
7.以下不能定义为用户标识符的是()。
A.scanfB.VoidC.3comD.int
8.下列不属于软件工程的3个要素的是
A.工具B.过程C.方法D.环境
9.有以下程序#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf(“%d\n”,i);}执行后输出结果是()A.28B.22C.16D.4
10.有以下程序:#include<stdio.h>main(){charch=‘D’;while(ch>‘A’){ch--;putchar(ch);if(ch==‘A’)break;putchar(ch+1);}}程序运行后的输出结果是()。
A.CBB.BCAC.CCBBD.CDBCA
11.在软件开发过程中,软件结构设计是描述______。
A.数据存储结构B.软件体系结构C.软件结构测试D.软件控制过程
12.有以下程序:#include<stdio.h>voidexch(intt[]){t[0]=t[s];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;while(i<=4){exch(&x[i]);i++;}for(i=0;i<5;i++)printf("%dl"x[i]);printf("\n");}程序运行后输出的结果是()。A.246810B.13579C.12345D.678910
13.第
11
题
若有定义:char*st="howareyou";下列程序段中正确的是
A.chara[11],*p;strcpy(p=a+1,&st[4]);
B.chara[11];strcpy(++a,st);
C.chara[11];strcpy(a,st);
D.chara[],*p;strcpy(p=&a[1],st+2);
14.有以下程序:#include<stdio.h>main(){intx=1,y=2,z=3;if(x>y)if(y<z) printf(“%d”,++z);else printf(“%d”,++y);printf(“%d\n”,x++);}程序的运行结果是()。
A.1B.41C.2D.331
15.某二叉树的前序和后序序列正好相反,则该二叉树一定是_____的二叉树
A.空或者只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子
16.无向图中一个顶点的度是指图中与该顶点相邻接的顶点数。若无向图G中的顶点数为n,边数为e,则所有顶点的度数之和为()
A.n*eB.n+eC.2nD.2e
17.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。
A.7B.8C.6D.2
18.设有以下语句
typedefstructS
{intg;charh;}T;
则下面叙述中正确的是()A.可用S定义结构体变量B.可以用T定义结构体变量C.S是struct类型的变量D.T是structS类型的变量
19.设有以下宏定义:#defineN3#defineY(n)((N+1)*n)则执行以下语句后,z的值为______。z=2*(N+Y(5+1));A.出错B.42C.48D.54
20.设x=011050,则x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
二、2.填空题(20题)21.下面程序执行后输出的结果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
22.以下程序运行后的输出结果是______。
main()
charc;intn=100;
floatf=10;doublex;
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
23.设x和y均为int型变量,且x=1,y=2,则表达式2.0+x/y的值为_______。
24.以下程序的运行结果是______。
structexmp{charname[10];
intnumber;
};
structexmptest[3]={{"WangXi",1},{"QiYu",2},{"HuHua",3}};
main()
{printf("%c,%s\n",test[0].name[1],test[2].name+3);
}
25.对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【】。
26.数据管理技术的发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【】。
27.若有以下定义,则使指针p指向值为35的数组元素的语句是______。
inta[10]={14,27,47,29,35,21,49,71},*p;
28.以下程序运行后的输出结果是【】。
#defineS(x)4*x*x+1
main()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
29.下列程序的运行结果是【】。
#include<stdio.h>
main()
{unionEXAMPLE
{struct
{intx;inty;}in;
inta;
intb;
}e;
e.a=1;e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("%d,%d\n",e.in.x,e.in.y);
}
30.若x和a均是血型变量,则计算完x=(a=4,6*2)后的x值为______。
31.数据结构分为逻辑结构和存储结构,循环队列属于______结构。
32.在树形结构中,树根结点没有______。
33.若变量n中的值为24,则prnt函数共输出【】行。
voidprnt(intn,intaa[])
{inti;
for(i=1;i<=n;i++)
{printf("%6d",aa[i]);
if!(i%5))printf("\n");
}
printf("\n");
}
34.以下程序运行后的输出结果是【】。
#include<stdio.h>
intf(ihta[],intn)
{if(n>=1)returnf(a,n-1)+a[n-1];
elsereturn0;
main()
intaa[5]={1,2,3,4,5},s;
s=f(aa,5);prinff("%d\n",s);
}
35.下列程序执行输出的结果是【】。
#include<stdio.h>
f(inta)
{intb=0;
staticc=3;
a=c++,b++;
return(a);}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);}
36.软件开发环境是全面支持软件开发全过程的【】集合。
37.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。
38.设有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序运行后,从键盘上输入(<CR>代表回车符):DEF<CR>BADEF<CR>QTHRG<CR>,则程
序的输出结果是______。
39.数据的______结构在计算机存储空问中的存放形式称为数据的存储结构或物理结构。
40.下面程序是计算100以内能被4整除且个位数为4的所有整数,请填空。
main()
{intm,n;
for(m=0;【】;m++)
{n=m*10+4;
If(【】)continue;
printf("%d\n",n);}}
三、1.选择题(20题)41.在以下一组运算中,优先级最高的运符算是()
A.<=B.=C.%D.&&
42.以下数据结构中不属于线性数据结构的是______。
A.队列B.线性表C.二叉树D.栈
43.有以下程序:main(){intn=0;do{n++;printf("%d\n",n);}while(n<=3);}程序的输出结果是()。
A.12B.123C.1234D.1
44.以下叙述中正确的是A.A.C程序中的注释只能出现在程序的开始位置和语句的后面
B.C程序书写格式严格,要求一行内只能写一个语句
C.C程序书写格式自由,一个语句可以写在多行上
D.用C语言编写的程序只能放在一个程序文件中
45.下列选项中不是结构化程序基本结构的是
A.顺序结构B.跳转分支结构C.选择结构D.循环结构
46.已有定义int(*q)(),指针q可以()。
A.指向函数的入口地址B.代表函数的返回值C.表示函数的类型D.表示函数返回值的类型
47.有以下程序main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序运行后的输出结果是()
A.11B.19C.13D.20
48.有以下程序,其中%u表示按无符号整数输出:
main
{
unsignedintx=0xFFFF;/*x的初值为十六进制数*/
printf("%u\n",x);
}
程序运行后的输出结果是()。
A.-1B.65535C.32767D.0xFFFF
49.在设计程序时,应采纳的原则之一是()。
A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解
50.执行下面的程序后,a的值是()#defineSQR(X)X*Xmain(){inta=10,k=2,m=l;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}
A.10B.1C.9D.0
51.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}该程序中的for循环执行的次数是______。
A.5B.6C.7D.8
52.字符(char)型数据在微机内存中的存储形式是______。
A.反码B.补码C.EBCDIC码D.ASCⅡ码
53.有以下定义语句
doublea,b;intw;longc;
若各变量已正确赋值,则下列选项中正确的表达式是A.a=a+b=b++B.w%(int)a+b)C.(c+w)%(int)aD.w=a==b;
54.若有如下说明,则______的叙述是正确的。structst{inta;intb[2];}a;
A.结构体变量a与结构体成员a同名,定义是非法的
B.程序只在执行到该定义时才为结构体st分配存储单元
C.程序运行时为结构体st分配6个字节存储单元
D.类型名structst可以通过extern关键字提前引用(即引用在前,说明在后)
55.以下程序的输出结果是()#include<stdio.h>main(){inta,b,d=241;a=d/100%9b=(-1)&&(+1);printf("%d,%d,a,d");}
A.6,1B.2,1C.6,0D.2,0
56.算法中,对需要执行的每一步操作,必须给出清楚、严格的规定。这属于算法的A.正当性B.可行性C.确定性D.有穷性
57.若有说明语句:charc=′\72′;则变量c
A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法,c的值不确定
58.下列叙述中正确的是()。
A.在面向对象的程序设计中,各个对象之间具有密切的联系
B.在面向对象的程序设计中,各个对象都是公用的
C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
D.上述三种说法都不对
59.有以下程序:main(){intx=0,y=5,z=31while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序执行后的输出结果是______。
A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
60.在E-R图中,用来表示实体之间联系的图形是()
A.矩形B.椭圆形C.菱形D.平行四边形
四、选择题(20题)61.
s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s;则以下选项中正确的是()。
A.if(s1>s2)S;
B.if(strcmp(s1,s2))S;
C.if(strcmp(s2,sl)>O)S;
D.if(stremp(s1,s2)>O)S;
62.以下关于return语句的叙述中正确的是()。A.一个自定义函数中可以根据不同情况设置多条return语句
B.一个自定义函数中必须有一条return语句
C.定义成void类型的函数中可以有带返回值的retum语句
D.没有return语句的自定义函数在执行结束时不能返回到调用处
63.下面函数的功能是()。
intfunc(char*x)
{char*y=x;
while(*y++);
return(y-x-1);
}
A.求字符串的长度
B.比较两个字符串的大小
C.将字符串x复制到字符串y
D.将字符串x连接到字符串y后面
64.
65.
66.下列叙述中正确的是()。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空问不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
67.在软件开发中,需求分析阶段产生的主要文档是()。A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书
68.
69.有以下程序:
程序执行后的输出结果是()。
A.y=一1B.Y=0C.y=1D.while构成无限循环
70.有以下程序:
程序执行后的输出结果是()。
A.5,11B.5,5C.11,11D.11,5
71.
72.已知大写字母A的ASCIl码的值是65,小写字母a的ASCIl码的值是97,以下不能将变量。中的大写字母转换为对应小写字母的语句是()。
A.
B.
C.
D.
73.有以下程序若想通过键盘输入,使得al的值为12,a2的值为34,el的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b则正确的输入格式是()。
74.下列关于栈的叙述中,正确的是()。
A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对
75.
执行下述程序后,输出的结果是()。
#include<stdio.h>
#defineS(X)X*X
voidmain
{inta=9,k=3,m=2;
a/=S(k+m)/s(k+m);
printf("%d",a);
}
A.1B.4C.9D.0
76.
下列程序的运行结果是()。
main
{intx=1,y=3,a=0;
while(x++!=(y-=l))
{a+=1;
if(y<x)break;
}
printf("%d,%d,%d\n",x,y,a);
}
A.2,3,2B.2,3,1C.1,3,3D.3,1,2
77.
78.
79.有以下程序:
程序的运行结果是()。
A.0B.10C.20D.出错
80.
五、程序改错题(1题)81.下列给定程序中,fun()函数的功能是:求3个数的最小公倍数,例如,给变量a、b、c、分别输入15、11、2,则输出结果应当是330。请修改函数中的错误,得出正确的结果。注意:不要改动main()函数,不能增行或减行,也不能更改程序的结构。试题程序:
六、程序设计题(1题)82.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(),它的功能是:把分数最低的学生数据放在h所指的数组中。注意:分数低的学生可能不止一个。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.A
2.D解析:在需求分析阶段中,根据可行性研究阶段所提交的文档,特别是从数据流图出发,对目标系统提出清晰、准确和具体的要求,即要明确系统必须做什么的问题。本题的正确答案为D。
3.C即输出x[0][2]x[l][1]x[2][0]分别为357。
4.A
5.D
6.D
7.D解析:标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符由1~32个字符组成,第一个字符必须是字母或下划线,后面的字符可以是字母、数字或下划线。标识符不能与C关键字相同,并区分大小写。选项D)错误,因为int是C语言中的关键字。
8.D解析:本题考查了软件工程的基本概念。软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制和管理。
9.A解析:f(4+4)/f(2+2)=4+4*4+4/2+2*2+2=28。
10.Dputchar函数的功能是输出一个字符,由whlie判断条件和ch初始值可知,只要“ch≠‘A’”,执行两次putchar函数,否则跳出循环。第1次输出“CD”,第2次输出“BC”,第3次输出“A”后跳出循环。故本题答案为D选项。
11.B解析:从工程管理解度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。
12.D本题中exch函数是用数组中的第6个元素对第1个元素进行赋值,所以数组的值应该为678910。
13.A本题综合考查字符数组的赋值和strcpy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:str1='China',如果想把“China”这5个字符放到数组str1中,除了逐个输入外,还能使用strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给str1):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
strcpy函数的结构是:strcpy(字符数组1,字符串2)
其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,“字符数组1”必须写成数组名形式,如(str1),“字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
14.Aelse总是与离它最近的if配对,所以当第1个if语句的判断条件不成立时,不再执行第2个if语句以及与第2个if语句配对的else语句,而是直接执行“x++”,输出1。故本题答案为A选项。
15.B
16.D
17.B
18.B解析:结构体类型的定义格式为:
strcut结构体名
{成员说明列表};
结构体变量的定义有3种形式:第一种:定义结构体型的同时定义结构体变量如:strcut结构体名{成员说明列表}变量;第二种先定义一个结构体类型,然后使用该类型来定义结构体变量,如:strcutstudent{成员说明列表):student变量;第三种:定义一个无名称的结构体类型的同时定义结构体变量,如:Strctstudent{成员说明列表}变量。和上面三种情况比较我们不难得知只有选项B是正确的。所以,4个选项中选项B符合题意。
19.D
20.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。
21.22解析:本题变量m既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,fun(a,b)/m中的m应取外部变量的值13,因此输出2。
22.220.0或220或220.或220.000000220.0或220或220.或220.000000解析:所有的赋值运算符的优先级都相同,它们的结合性为从右至左,它们返回的表达式值为赋给变量的值.所以,语句x=f*=n/=(c=50):→x=f*=n/=50;→x=f*=2;(n的值变成2)→x=20;。故最终输出的结果应该是:220.000000
23.2.0。2.0。解析:x和y为整数,运算符“/”在这里是整型除,整除后值为0。
24.aua。a,ua。解析:test是结构体数组,每个元素均可看作是一个结构体变量,主函数将结构体数组元素test[0]中的name域下标为1的元素以字符形式输出,将结构体数组元素test[2]中的name域从地址name+3开始以字符串的形式输出。
25.4545解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过遍的从前往后扫描和遍的从后往前扫描,需要比较次数为。
26.数据库系统阶段数据库系统阶段解析:在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段,其中数据独立性最高的阶段是数据库系统阶段。
27.p=a+4或p=&a[4]。p=a+4或p=&a[4]。解析:可以直接将数组元素a[4]的地址(即&a[4])赋给指针变量p,也可以用数组名加偏移量的形式(即a+4)表示数组元素a[4]的地址,并赋给指针变量p。
28.8181解析:将S(i+j)展开来有:S(i+j)=S(6+8)=4×6+8×6+8+1=81。
29.484,8解析:C语言规定,共用体中各个成员变量在内存中占用同一段内存单元,即e.in.x、e.a、e.b占用同一段内存单元。执行语句e.b=2;后,e.in.x=e.a=e.b=2;执行语句e.in.x=e.a*e.b;时,e.a的值为2,e.b的值为2,所以运算得出e.in.x的值为4;执行语句e.in.y=e.a+e.b时,由于e.in.x和e.a、e.b占用的是同一段内存单元,所以此时的e.a、e.b的值为4,因此运算得出e.in.y的值为4+4=8。程序最后的输出结果为4,8。
30.1212解析:x=(表达式1,表达式2,…)的形式,结果为最后一个表达式的值:x=(a=4,6*2)=2*6=12。
31.存储或物理或存储结构或物理结构存储或物理或存储结构或物理结构解析:数据的逻辑结构在计算机存储空间中的存放形式称为数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国葛洲坝集团股份限公司纪检岗位招聘2人高频重点提升(共500题)附带答案详解
- 2025中国移动广西公司招聘高频重点提升(共500题)附带答案详解
- 2025中国电信集团限公司政企信息服务事业群招聘高频重点提升(共500题)附带答案详解
- 2025中国电信山东聊城分公司校园招聘高频重点提升(共500题)附带答案详解
- 2025中国农业科学院植物保护研究所农药应用风险控制团队科研助理公开招聘3人高频重点提升(共500题)附带答案详解
- 2025下半年四川广安华蓥市招聘卫生事业单位工作人员20人历年高频重点提升(共500题)附带答案详解
- 2025上半年贵州安顺经济技术开发区事业单位招聘34人历年高频重点提升(共500题)附带答案详解
- 2025上半年江苏省镇江事业单位招聘历年高频重点提升(共500题)附带答案详解
- 销售合同模板个性化定制
- 酿酒厂采暖设施安装协议
- 全广东江门市蓬江区2022年九年级数学上学期期末试题含答案
- 国家文化安全战略研究论文
- 中国传统文化英语(课堂PPT)
- 二十五项反措检查表优质资料
- GS020汽车发动机底盖冲压模具的设计与制造
- 《组织行为学》个案例及参考答案
- 山东省建筑消耗量定额
- 华西麻醉科麻醉记录单填写规范
- 教学案例 英语教学案例 市赛一等奖
- 四川省2023职教高考英语试题
- 2020年贵州专升本高等数学真题及答案
评论
0/150
提交评论