版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年安徽省六安市全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。
A.详细设计B.需求分析C.总体设计D.编程调试
2.
3.函数调用:strcat(strcpy(str1,str2),str3)的功能是______。
A.将串str1复制到串str2中后再连接到串str3之后
B.将串str1连接到串str2之后再复制到串str3之后
C.将串str2复制到串str1中后再将串sir3连接到串str1之后
D.将串str2连接到串str1之后再将串str1复制到串str3中
4.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是
A.10,A,10B.10,a,10C.1O,a,0D.10,A,0
5.
6.
7.顺序查找法适合于存储结构为()的线性表。
A.散列存储B.顺序存储或链式存储C.压缩存储D.索引存储
8.信息隐蔽的概念与下述哪一种概念直接相关?
A.软件结构定义B.模块独立性C.模块类型的划分D.模块耦合度
9.以下程序的运行结果是______。#include<stdio.h>main(){inta[]:{1,2,3,4,5,6,7,8,9,10,11,12):int*p=a+5,*q=NULL:*q=*(p+5):printf("%d%d\n",*p,*q);}
A.运行后报错B.66C.612D.55
10.下列不正确的转义字符是()。
A.'\\'B.'\t'C.'\n'D.'088'
11.有以下程序:#include<stdio.h>#include<stdlib.h>main{int*a,*b,*C;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b:printf("%d,%d,%d\n",*a,*b,*c);}程序运行后的输出结果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3
12.若执行以下程序时从键盘上输入9,则输出结果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8
13.
14.设有100个元素,用折半查找法进行查找时,最大比较次数是_____。
A.25B.50C.10D.7
15.顺序结构的本质特点是()。
A.数据元素存储在地址连续的内存空间
B.数据元素紧邻
C.数据元素在内存中的相对位置表示数据之间的逻辑关系
D.不使用指针
16.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出结果是()。
A.10,01B.02,12C.102,10D.02,10
17.若有运算符:>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列次序为()。
A.*=<<>%sizeof
B.<<*=>%sizeof
C.%=><<sizeof%
D.*=><<%sizeof
18.有以下程序:#include<stdio.h>main(){inta=10,b=11;if(++a==b++) printf(“T”);else printf(“F”);printf(“a=%d,b=%d\n”,a,b);}程序运行后的输出结果是()。
A.Fa=11,b=11B.Fa=10,b=12C.Ta=10,b=11D.Ta=11,b=12
19.设x=011050,则x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
20.有下列程序:程序执行后的输出结果是()。A.Zhao,m,85,Zhao,m,85
B.Sun,f,90,Zhao,m,85
C.Zhao,m,85,Sun,f,90
D.Sun,f,90,Sun,f,90
二、2.填空题(20题)21.以下程序的运行结果是【】。
#include<stdio.h>
main()
{intfun();fun();}
fun()
{staticinta[3]={0,1,2};
inti;
for(i=0;i<3;i++)a[i]+=a[i];
for(i=0;i<3;i++)printf("%d,",a[i]);
printf("\n");}
22.下面程序中函数creat用于建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾,单向链表的头指针作为函数值返回。将程序补充完整。
#include<stdiao.h>
structlist
{chardata;structlist*next;};
structlist*creat()
{
structlist*h,*p,*q;charch;
h=【】malloc(sizeof(structlist));
p=q=h;ch=getchar();
while(ch!='?')
{
p=【】malloc(sizeof(structlist));
p->data=ch;q->next=p;q=p;ch=getchar();
}
p->next='\0';
【】;
}
23.数据结构分为线性结构和非线性结构,带链的队列属于[]。
24.若x为int类型,请写出与!x等价的C语言表达式______。
25.一棵二叉树第6层(根结点为第一层)的结点最多为______个。
26.条件“20<x<30或x<-100”的C语言表达式是【】。
27.以下程序运行后的输出结果是【】。
#defineS(x)4*x*x+1
mah()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
28.有以下程序段:
inta[l0]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是【】。
29.以下程序运行后的输出结果是______。
main()
{
inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n",a,b,C);
}
30.下列程序的输出结果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
31.结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。
32.以下程序的输出结果是【】。
#include<string.h>
main()
{printf("%d\n",strlen("IBM\n012\1\\"));}
33.下列程序执行后输出的结果是【】。
f(intA)
{staticc=0;
c=a+c++;
return(c);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}
34.若有以下程序段:
intc1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是【】。
35.下面程序的运行结果是【】。
#include<stdio.h>
fun(intt[],intn)
{inti,m;
if(n==1)returnt[0];
else
if(n>=2)|m:fun(t,n-1);returnm;}
}
main()
{inta[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
36.下列程序的运行结果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%b);
printf("%d,",(a-b,a+b));
printf("%d\n",a-b?a-b:a+b);
}
37.已有定义;charc='';inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。
38.以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志,请填空。
#include<stdio.h>
main()
{FILE*fp;
charch,fname[10];
printf("Inputthenam\n");
gets(fname);
if((fp=【】==NULL)
{printf("Cannotopen\n");exit(0);}
printf("Enterdata\n");
while(ch=getchar()!='#')
fputc(【】,fp);
fclose(fp);
}
39.下列程序的输出结果是______。
10ngfun5(intn)
{longs;
if((n==1)‖(n==2))
s=2;
else
s=n+fun5(n-1);
return(s);
}
main()
{longx;
x=fun5(4);
printf("%1d\n",x);}
40.以下程序的运行结果为【】。
#defineFORMAT"%u,%u"
main()
{inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
printf("\n");
printf(FORMAT,**a,*a[0]);
printf(FORMAT,*(a[0]+1),*&a[0][1]);
printf(FORMAT,a[1][0],*(*(a+1)+0));
}
三、1.选择题(20题)41.设x和y均为int型变量,且x=10,y=3,则以下语句的输出结果是()printf("%d,%d\n",x--,--y);
A.10,3B.9,3C.9,2D.10,2
42.关系代数运算是以______为基础的运算。
A.关系运算B.谓词运算C.集合运算D.代数运算
43.设R是一个二元关系,S是一个三元关系,则下列运算中正确的是()。
A.R-SB.R×SC.R∩SD.R∪S
44.数据库设计包括两个方面的设计内容,它们是()
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
45.执行下列程序时输入:123<空格>456<空格>789<回车>输出结果是main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}
A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456
46.假定在一棵二叉树中,双分支结点数为15个,单分支结点数为32个,则叶结点数为______个。
A.15B.16C.17D.47
47.有以下程序:#include<string.h>main(){charp[]={'a','b','c'},q[10]={'a','b','c'};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是()。
A.在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B.由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3
C.由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3
D.由于p和q数组中都没有字符串结束符,故长度都不能确定
48.判断char型变量cl是否为大写字母的正确表达式是
A.′A′<=cl<=′Z′
B.(cl>=A)&&(cl<=Z)
C.(′A′>=cl)||(′Z′<=cl)
D.(cl>=′A′)&&(cl<=′Z′)
49.若有如下程序:main(){inta,b,C,m,n,k;m=n=k=0;a=-1;b=2;C=3;if(c>0)m=a+b;if(a<=0){if(b>0)if(c<=0)n=a=b;}elseif(c>0)n=a-b;elsek/=c;printf("%d,%d,%d,",m,n,k);}则程序运行后的输出结果是()。
A.1,0,0B.2,-3,3C.1,-3,3D.1,0,3
50.下列选项中,不是关于栈的基本运算的叙述是______。
A.从栈顶删除一个元素B.判断一个栈是否为空C.在栈中的第i个元素之前插入一个新元素D.读取栈顶元素的值
51.有以下程序:#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
52.以下程序段的输出结果是______。char*p="abodefgh";p+=3;printf("%d\n",strlen(strcpy(p,"12345")));
A.8B.12C.5D.7
53.结构化程序设计主要强调的是
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性
54.有下列二叉树,对此二叉树中序遍历的结果为()。
A.ABCDEFB.BDAECFC.ABDCEFD.ABCDFE
55.已有定义int(*q)(),指针q可以()。
A.指向函数的入口地址B.代表函数的返回值C.表示函数的类型D.表示函数返回值的类型
56.设计准则要求,模块的作用域和控制域的关系是()
A.作用域和控制域无关B.作用域在控制域之外C.控制域在作用域之内D.作用域在控制域之内
57.已知小写字母a的ASCII码为97,大写字母A的ASCII码为65,以下程序的结果是______。main(){unsignedinta=32,b=66;printf("%c\n",a|b);}
A.66B.98C.bD.B
58.若有定义inta=5,b=7;,则表达式a%=(b%2)运算后,a的值为()。
A.0B.1C.11D.3
59.若ch为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后输出的结果为()。ch='b';k=10;printf("%x,%o,",ch,ch,k);printf("k=%%d\n",k);
A.因变量类型与格式描述符的类型不匹配,输出无定值
B.输出项与格式描述符个数不符,输出为0值或不定值
C.62,142,k=%d
D.62,142,k=%10
60.下列关于栈的描述中,正确的是()
A.在栈中只能插入元素B.在栈中只能删除元素C.只能在一端插入或删除元素D.只能在一端插入元素,而在另一端删除元素
四、选择题(20题)61.
62.
63.
64.有以下程序:
程序运行后的输出结果是()。
A.33B.197C.143D.28
65.
66.
67.
68.(45)信息隐蔽的概念与下述哪一种概念直接相关()
A.软件结构定义
B.模块独立性
C.模块类型划分
D.模拟耦合度
69.下列程序的输出结果是()。
#include<stdio.h>
main
{inti;
for(i=1;i<=10,i++)
{if((i*i>=20)&&(i*i<=100))
break;
}
printf("%d\n",i*i;
}A.A.49B.36C.25D.64
70.
71.若有以下程序: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
72.
若变量均已正确赋初值,则以下语句中
错误的是()。
A.tl=t2;
B.t2.numl=tl.numl;
C.t2.mark=tl.Mark
D.t2.num2=tl.hum2;
73.有以下程序:
程序运行后的输出结果是()。
A.321B.12300C.1D.123
74.下面叙述正确的是______。A.算法的执行效率与数据的存储结构无关
B.算法的空间复杂度是指算法程序中指令(或语句)的条数
C.算法的有穷性是指算法必须能在执行有限个步骤之后终止
D.以上三种描述都不对
75.以下只有在使用时才为该类型变量分配内存的存储类型说明是()。
A.auto和static
B.auto和register
C.register和static
D.extern和register
76.
77.以下选项中,能用做用户标识符的是()。
A.voidB.8_8C._0_D.unsigned
78.在软件开发中,需求分析阶段可以使用的工具是()。A.N—s图B.DFD图C.PAD图D.程序流程图
79.以下定义语句中正确的是()。
A.
B.
C.
D.
80.有以下程序
structs
{intx,y;}data[2]={10,100,20,200};
main()
{structs*p=data;
printf("%d\n",++(p->x));
}
程序运行后的输出结果是()
A.10B.11C.20D.21
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:根据形参m(2≤m≤9)的值,在m行m列的二维数组中存放如下所示的数据,由main()函数输出。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。此程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数该函数的功能是使数组下三角元素中的值乘以n。注意:部分源程序给出如下。请勿改动函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineN5voidfun(inta[][N],intn){}main(){inta[N][N],n,i,j;printf(“*****Thearray*****\n”);for(i=0;i<n;i++)<p=""></n;i++)<>{for(j=0;j<=""p="">{a[i][j]=rand()%10;printf(“%4d”,a[i][j]);}printf(“\n”);}n=rand()%4;printf(“n=%4d\n”,n);fun(a,n);printf(“*****TheResult*****\n”);for(i=0;i<=""p="">{for(j=0;j<=""p="">printf(“%4d”,a[i][j]);printf(“\n”);}}
参考答案
1.C解析:软件系统结构的总体设计包括:基于功能层次结构建立系统、按功能划分成模块的层次结构、确定每个模块的功能、建立与已确定的软件需求的对应关系、确定模块间的调用关系和模块间的接口、评估模块划分的质量等方面。详细设计的任务是:在使用程序设计语言编制程序以前,对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求,通常包括:功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求等。编程调试的任务是诊断和改正程序中潜在的错误。综上所述。软件功能分解只能发生在总体设计阶段。
2.C
3.C解析:题目中所给函数的功能是;先用函数strcpy把参数串str2复制到参数串str1中去,然后用函数strcat把参数串str3连接到经过修改后的参数串str1后,因此选项C正确。
4.A解析:本题考核的知识点是scallf()函数输入格式。格式字符“%d”用于输入整数,“%C”用来输入字符。在输入时,系统把第一个10作为整数10赋给m,把随后的A作为字符赋值给c,后面的10作为整数赋给n,最后输出的结果为10,A,10所以,A选项为所选。
5.B
6.C
7.B
8.B解析:采用信息隐蔽的目的就是为了确保每个模块的独立性。
9.A
10.D解析:'\\\\'是反斜线转义字符:'\\t'是水平跳格转义字符:'\\n'是换行转义字符;C语言中没有规定'088'为转义字符。
11.A本题中,首先创建一个动态内存,然后将地址分别存入指针a、b、c中,即a、b、c都指向相同.的变量。分别给a、b、c所指的变量赋值,最终a、b、c所指的变量中的值为3,最后打印a、b、c所指的变量
12.B当n为9时,此时if语句成立,执行n++后,n为10,因此输出n的值为10,故选择B选项。
13.C
14.D
15.C
16.C解析:本题中,“printf('%2d,%2d\\n',x,y)”表示以逗号隔开输出两个十进制整数,每个整数域宽是2。而在C语言中规定:当域宽小于实际宽度时域宽不起作用,按实际宽度输出,因此最后的输出值为102和10(y的初值012表示八进制整数12,等于十进制的10)。所以,4个选项中选项C符合题意。
17.D解析:本题主要考查算术运算的优先级。顺序如下:
[*]
注:*=、>、<<、%、sizeof的优先级依次递增。
18.D自增运算符是将运算对象的值增1,它有前缀形式“++a”和后缀形式“b++”。其中“++a”表示首先将a的值自增1,然后表达式“++a”的值就是自增后a的值;而“b++”表示首先将b的值作为表达式的值,然后再将b的值自增1。本题中,a的初值为10,b的初值为11,则表达式“++a==b++”,等价于“11==11”,条件为真,所以输出“T”。if语句执行完后,a的值为11,b的值为12,输出“a=11,b=12”。故本题答案为D选项。
19.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。
20.D程序定义结构体类型STU,main函数定义结构体STU变量b,并将b的地址赋给指针变量a。调用函数f,传入a。在函数f中,定义了STU变量c,并将c的地址赋给d,再用d指向的值赋给a指向的地址,接着输出a指向的值,也就是c的值:Sun,f,90。由于函数f的调用通过指针参数a修改了变量b的值,因此a指向的值也就是b的值等价于c:Sun,f,90。本题答案为D选项。
21.0240480,2,4\r\n0,4,8解析:本题主要考查for循环语句的使用以及静态局部变量的特点。
22.(structlist*)(structlist*)return(h)
23.线性结构线性结构解析:与栈类似,队列也是线性表,也町以采用链式存储结构。
24.x==0x==0解析:!x的逻辑意思就是x为非,即x==0。
25.3232解析:二叉树第k层上,最多有2k-1(k≥1)个结点。第6层的结点数最多是26-1=32。注意区别“二叉树的结点最多数”和“某一层的结点最多数”。前者的计算是深度为m的二叉树最多有2m-1个结点。
26.(20<x)&&(x<30)||(x<-100)或20<x&&x<30||x<-100(20<x)&&(x<30)||(x<-100)或20<x&&x<30||x<-100
27.8181解析:本题的宏调用S(i+j)将被替换成表达式4*i+j*i+j+l等于4*6+8*6+8+1=24+48+8+1=81。所以本题输出81。
28.99解析:p是一个指针变量,指向数组a的元素a[3],所以b=p[5]=a[5+3]=a[8]=9。
29.252137252137解析:本题中先定义了整型变量a、b和c,然后分别给赋值a为25,b为八进制的025,c为十六进制0x25。然后调用pruntf()函数将a、b和c分别用十进制输出,且中间用空格隔开,八进制025转换为十进制的值为21,十六进制的0x25转换为十进制的值为37,故最后的输出结果为252137。
30.5656解析:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。
31.模块化模块化
32.99解析:本题要输出的结果是字符串'IBM\\n012\\1\\\\'的长度,'IBM'是3个字符,\'\\n\'是1个字符,'012'又是3个字符,最后的\'\\1\'和\'\\\\\'都是1个字符。所以最终字符串的长度应该是3+1+3+1+1=9。故本题应该填9。
33.77解析:在程序执行时,static变量仅初始化一次,下次使用时将使用上次保存的值。
34.00解析:在赋值运算中。如果表达式中变量和常量的数据类型不一致就会自动进行类型转换。系统会计算1.0/c2,由于1.0是实型,所以均先转化为双精度型0.500000,再和c1转化后的双精度数相乘得0.500000。但其要赋值给整型变量c3,故要进行强制转换,c3的值为0。
35.1111解析:main函数调用fun函数时,将10赋给n,形参数组t与实参数组a共用一段内存空间。执行if-else语句时,n=10,所以执行else子句。由于n>=2成立,执行m=fun(t[0],9),递归调用fun函数,m=fun(t[0],8),m=fun(t[0],7),…,m=fun(t[0],2),m=fun(t[0],1),当n=1时满足if(n=1)的条件,执行return语句,返回数组首地址指向的值t[0],所以答案为11。
36.11371,13,7解析:本题考查3个知识点:①余数的计算,题中的a=10,b=3,a%b=1;②(表达式1,表达式2)形式的结果为最后一个表达式的值,题中的a=10,b=3,(a-b,a+b)=a+b=13;③条件运算符的使用,题中的a-b?a-b:a+b,判断语句a-b=7不为0,所以执行a-b,结果为7。
37.00解析:本题考查数据类型及其运算的逻辑运算,c为空格字符但其ASCII码不为0,所以!c=0,在逻辑与运算中,只要有一项为假,其值为0,所以b的值为0。
38.fopen(fname"w")chfopen(fname,'w')\r\nch解析:数组fname用来存放终端输入的一个文件的文件名;文件使用方式'w'是为写而打开文本文件。若文件不存在,系统将用在fopen调用中以指定的文件名建立一个新文件;若存在,则覆盖原有内容;fputs(ch,fp)的功能是将字符ch写到文件指针fp所指的文件中去。
39.99解析:考查ifelse语句,n==4不满足条件,所以fun5(4)=4+fun5(3),n==3也不满足条件,fun5(3)=3+fun5(2),n==2满足条件fun5(2)=2,故x=4+3+2=9。
40.113399
41.D
42.C解析:关系代数是以集合代数为基础女发展起来的,它是以关系代数作为运算对象的一组高级运算的集合。它的基本操作是并、交、差、笛卡尔积,另外还包括针对数据库环境专门设计的操作,包括对关系进行垂直分割(投影)、水平分割(选择)、关系的结合(连接)等。
43.BB。【解析】关系的交(∩)、并(∪)和差(-)运算要求两个关系是同元的,显然作为二元的R和三元的S只能做笛卡儿积运算。
44.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。
45.D解析:根据给定的数据输入格式:123<空格>456<空格>789<回车>,第一个scanf语句中,格式字符为“%c”,只能得到一个字符\'1\',第二个scanf语句中格式字符为“%d”,变量i得到的数值为23,第三个scanf语句中格式字符为“%s”,遇到空格就自动结束,因此字符数组s得到的是'456\\0”。因而正确答案为选项D。
46.B
47.A解析:在给p和q数组赋初值时,系统会自动添加字符串结束符,从题目中可以看出数组p和q都有3个字符,所以长度均为3。
48.D解析:本题考查字母大小写的判断。字符型数据在计算机内部是以ASCII码存储的,英文大写字母和小写字母在ASCII码表中都是连续的。大写字母A到Z是从65到90,所以只要变量c1大于A并且小于Z就能保证其为大写字母。
49.A解析:本题首先声明了6个int型变量,然后分别让m、n、k为0,a为-1,b为2,c为3。接下来因为c>O为真,故执行子句“m=a=b;”,结果使m的值变为1;然后判断a是否<=0,结果也为真,进入大括号里面;由于b>O为真,再判断c<=0,为假。所以子句“n=a=b;”没有执行,跳出大括号。而后面的elseif语句和else语句因为大括号的原因,使其对应第二个if语句,而第二个if语句的条件已满足(进入大括号之前),所以这两条else语句的子句不被执行,故最后输出结果为1,0,0,所以应该选择A。
50.C
51.B解析:本程序为二重循环,外循环控制输出数据的行数,内循环控制输出数据的列数。本题需要输出4行4列,外层循环语句for(i=0;i<4;i++)控制输出4行,内层的第一条for循环控制每行输出的空格数,第二条for循环用于控制每行的数字输出,由于每一行的数字个数比前一行少1个,所以内层的第二条for循环每次循环的次数需要递减1,那么j的初始值应该递增,因为第一行输出的是4个数,所以空格中应填i。
52.C解析:本题主要考查strcpy()函数,char*strcpy(char*s1,char*s2)是把指针s2指向的串复制到指针s1指向的存储空间。
53.D结构化程序设计由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主张“清晰第一,效率第二”,以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,为设计一些较大的软件打下了良好的基础。
由于模块相互独立,因此,在设计其中一个模块时,不会受到其他模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为可以充分利用现有的模块作为积木式的扩展。
结构化程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。自顶向下、逐步求精的程序设计方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图;“单入口单出口”的思想认为一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一定是一个单入口单出口的程序。据此就很容易编写出结构良好、易于调试的程序。
54.B解析:对二又树的中序遍历是指:首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左,右子树时,注意依旧按照“左子树—根结点—右于树”的顺序。
55.A解析:本题考查的是指向函数的指针。函数指针的定义方式是:类型标识符(*指针变量名)()。其中,“类型标识符”为函数返回值的类型;“指针”指向函数的入口地址。
56.D
57.C解析:位运算符“|”的作用是按位或,即两个二进制数的相应位中只要有一个为1,该位的结果值为1。最后以字符型输出,98对应的字符“b”。
58.A解析:本题考查'%'运算符的使用。运算符'%'要求两个运算对象都为整型,其结果是整数除法的余数。本题中表达式ao%=(b%2)等价于a=a%o(b%2)=5%(7%2)=5%1=0。
59.C解析:第1个printf函数,格式说明的个数是2,而输出项的个数是3,所以对于多余的输出项k不予输出;第2个pfintf函数,有两个%说明,第1个%后面的字符要原样输出。注意:本题考查printf函数的格式。①“%x”和“%o”分别表示以十六进制和八进制无符号型输出整型数据(不带前导Ox或O):②printf函数中格式说明符之前插入的任何字符都原样输出:⑧格式说明与输出项的个数也要相等,如果格式说明的个数少于输出项的个数,则对于多余的输出项不予输出。
60.C\nC)【解析】栈实际也是线性表,只不过是一种特殊的线性表。栈是只能在表的~端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶另一端为栈底。当表中没有元素时称为空栈。栈顶元素总是最
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版房地产尾款支付及产权过户协议3篇
- 二零二五年车辆抵押维修保养合同3篇
- 二零二五版贸促会棉花期货交易专区棉花现货买卖合同3篇
- 二零二五年度企业法律风险防控培训合同3篇
- 主体架构工程分包合同(2024年度)一
- 专属分店管理承包协议模板版A版
- 二零二五年度多人合伙经营酒吧合作协议范本3篇
- 二零二五年度矿山车辆运输安全责任合同范本3篇
- 2025年度劳动者工伤赔偿协议标准版4篇
- 专属会员卡转让条款合同版B版
- 《健康体检知识》课件
- 生产计划主管述职报告
- 名表买卖合同协议书
- JTG-T-F20-2015公路路面基层施工技术细则
- 2024年辽宁石化职业技术学院单招职业适应性测试题库附答案
- 中西方校服文化差异研究
- 《子宫肉瘤》课件
- 《准妈妈衣食住行》课件
- 给男友的道歉信10000字(十二篇)
- 客人在酒店受伤免责承诺书范本
- 练字本方格模板
评论
0/150
提交评论