![2021-2022年湖北省宜昌市全国计算机等级考试C语言程序设计预测试题(含答案)_第1页](http://file4.renrendoc.com/view/f5f478a12e1e0768baffbf6cc31ec4ce/f5f478a12e1e0768baffbf6cc31ec4ce1.gif)
![2021-2022年湖北省宜昌市全国计算机等级考试C语言程序设计预测试题(含答案)_第2页](http://file4.renrendoc.com/view/f5f478a12e1e0768baffbf6cc31ec4ce/f5f478a12e1e0768baffbf6cc31ec4ce2.gif)
![2021-2022年湖北省宜昌市全国计算机等级考试C语言程序设计预测试题(含答案)_第3页](http://file4.renrendoc.com/view/f5f478a12e1e0768baffbf6cc31ec4ce/f5f478a12e1e0768baffbf6cc31ec4ce3.gif)
![2021-2022年湖北省宜昌市全国计算机等级考试C语言程序设计预测试题(含答案)_第4页](http://file4.renrendoc.com/view/f5f478a12e1e0768baffbf6cc31ec4ce/f5f478a12e1e0768baffbf6cc31ec4ce4.gif)
![2021-2022年湖北省宜昌市全国计算机等级考试C语言程序设计预测试题(含答案)_第5页](http://file4.renrendoc.com/view/f5f478a12e1e0768baffbf6cc31ec4ce/f5f478a12e1e0768baffbf6cc31ec4ce5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年湖北省宜昌市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有以下程序:main{chara=a,b;printf("%c,",++a);printf("%c\n",b=a++):)程序运行后的输出结果是()。A.b,bB.b,cC.a,bD.a,c
2.sizeof(float)是()。A.一个双精度型表达式B.一个整型表达式C.一种函数调用D.一个不合法的表达式
3.软件详细设计的主要任务是确定每个模块的()。
A.算法和使用的数据结构B.外部接口C.功能D.编程
4.下列叙述中错误的是()。A.程序可以由多个程序文件组成
B.一个C语言程序只能实现一种算法.
C.程序可以由一个或多个函数组成
D.一个C函数可以单独作为一个C程序文件存在
5.
6.
7.设有定义:charpE]={’1’,‘2’,’3’},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
8.
9.在单链表中,增加头结点的目的是______。
A.方便运算的实现B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性表的链式存储实现
10.
11.下列叙述中错误的是()。
A.可以给指针变量赋一个整数作为地址值
B.函数可以返回地址值
C.改变函数形参的值,不会改变对应实参的值
D.当程序的开头包含头文件stdio.h时,可以给指针变量赋NULL值
12.有以下程序
main()
{intk=5,n=0;
do
{switch(k)
{case1:case3:n+=1;k--;break;
default:n=0;k--;
case2:case4:n+=2;k--;break;
}
printf("%d",n);
}while(k>0&&n<5);
}
程序运行后的输出结果是
A.235B.0235C.02356D.2356
13.使用深度优先算法遍历下图,遍历的顺序为()A.ABCDEFGB.ABDCFEGC.ABDECFGD.ABCDFEG
14.将两个字符串连接起来组成一个字符串时,选用()函数。A.strlen()B.strcpy()C.strcat()D.strcmp()
15.算法的时间复杂度是指()A.执行算法程序所需要的时间B.算法程序的长度C.算法程序中的指令条数D.算法执行过程中所需要的基本运算次数
16.在非线性结构中,每个结点()。
A.无直接前趋
B.只有一个直接前趋和个数不受限制的直接后继
C.只有一个直接前驱和后继
D.有个数不受限制的直接前驱和后继
17.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20]={“One*World”,“One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是()。
A.10,One*Dream!
B.9,One*Dream!
C.9,One*World
D.10,One*World
18.有下列程序:程序执行后的输出结果是()。
A.654321
B.65432
C.65453452
D.654534521
19.字符串"\\"ABCDEF\"\\”的长度是()。
A.11B.10C.5D.3
20.在下面的字符数组定义中,哪一个有语法错误()。A.chara[20]=”abcdefg”;
B.chara[]=”x+y=55.”;
C.chara[15];
D.chara[10]=’5’;
二、2.填空题(20题)21.有以下程序段,且变量已正确定义和赋值。
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k/1));
printf("s=%f\n\",s);
请填空,使下面程序段的功能与之完全相同。
s=1.0;k=1;
while(【】){s=s+1.0/(k*(k+1));【】;}
printf("s-=%f\n\n",s);
22.以下程序运行后的输出结果是【】。
main()
{chara[]="Language",b[]="Pragrame";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
}
23.某二叉树中度为2的结点有n个,则该二叉树中有【】个叶子结点。
24.已有文本文件test.txt,其中的内容为:Hello,everyone!。以下程序中,文件test.txt已正确为“读”而打开,由此文件指针fr指向文件,则程序的输出结果是______。
#include<stdio.h>main(){FILE*fr;charstr[40];
fgets(str,5,fr);
printf("%s\n,,str);
fclose(fr);}
25.下列程序的运行结果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
26.下列程序的运行结果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
27.设有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
charsi10],ti10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序运行后,从键盘上输入(<CR>代表回车符):CDEF<CR>BADEF<CR>QTHRG<CR>,则程序的输出结果是______。
28.下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。
#include<stdio.h>
#include<string.h>
main()
{chara[]="clanguage",t;
inti,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k;【】)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
printf("\n");
}
29.关系代数是关系操作语言的一种传统表示方式,它以集合代数为基础,它的运算对象和运算结果均为()。
30.计算圆的周长、面积和球体积。
#definePI3.1415926
#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R
main()
{floatr,l,s,v;
printf("inputaradus:");
scanf("%f",&r);
CIRCLE(r,l,s,v);
printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);
}
31.以下程序的运行结果是【】。
#include<string.h>
typedefstructstudent{
charname[10];
longsno;
floatscore;
}STU;
main()
STUa={"Zhangsan",2001,95},b={"Shangxian",2002,90},
c={"Anhua",2003,95},d,*p=&d;
d=a;
if(strcmp(,)>0)d=b;
if(strcmp(,)>0)d=c;
printf("%1d%s\n",d.sno,p->name);
}
32.在面向对象方法中,允许作用于某个对象上的操作称为【】。
33.下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组bo请填空。
#include<stdio.h>
main()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
______;
for(i=0;i<9;i++)
{if(i%4==0)printf("\n");
printf("%3d",b[i]);
}
}
34.下面程序把从终端读入的10个整数以二进制的方式写到一个名为bi.dat的新文件中。请填空。
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if((fp=fopen(【】,"wb"));=NULL)exit(0);
for(i=0;i<10;i++)
{scanf("%d",&j);
fwrite(&j,sizeof(int),1,【】);
}
fclose(fp);
}
35.在对文件进行操作的过程中,若要使文件位置的指针回到文件的开头,应使用的函数是【】。
36.实体之间的联系可以归结为一对一联系、一对多(或多对多)的联系与多对多联系。如果一个学校有许多教师,而一个教师只归属于一个学校,则实体集学校与实体集教师之间的联系属于______的联系。
37.若有定义语句:inta=5;,则表达式:a++的值是【】。
38.若a的值为1,则表达式!a‖++a的值是______。
39.若有如下程序:
#include"stdio.h"
main()
{chars[30];
Strcpy(&S[0],"adc");
Strcpy(&S[1],"def");
strcpy(&S[2],"gh");;
printf("%S\n",s);
则程序运行后的输出结果是【】。
40.以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{charm;
m='B'+32;
printf("%c\n",m);
}
三、1.选择题(20题)41.有以下程序:#include<stdio.h>main(){eharstr[][10]={"China","Beijing"},*p=str[o];printf("%s\n",p+10);}程序运行后的输出结果是()。
A.ChinaB.BeijingC.ngD.ing
42.下列关于软件测试的目的和准则的叙述中,正确的是()
A.软件测试是证明软件没有错误
B.主要目的是发现程序中的错误
C.主要目的是确定程序中错误的位置
D.测试最好由程序员自己来检查自己的程序
43.在执行下述程序时,若从键盘输入6和8,则结果为
main()
{inta,b,s;
scanf("%d%d",&a,&b);
s=a
if(a<b)
s=b;
s*=s;
printf("%d",s);}
A.36B.64C.48D.以上都不对
44.有以下程序structs{intx,y;}data[2]={10,100,20,200};main()structs*p=data;printf("%d\n",++(p->x));程序运行后的输出结果是
A.10B.11C.20D.21
45.以下程序的输出结果是______。fun(int**p,inta[2][3]){**p=a[1][2];}main(){inta[2][3]=}1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fun(&p,a);printf("%d\n",*p);}
A.9B.7C.1D.11
46.有以下程序:#include<stdio,h>inta=2;intf(intn){staticinta:3;intt=0;if(n%2){staticinta=4;t+=a++;}else{staticinta=5;t+:a++;}returnt+a++;main(){ints=a,i;for(i=0;i<3;i++)s+=f(i);prinff("%d\n",s);}程序运行后的输出结果是()。
A.26B.28C.29D.24
47.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是
A.c=(c-′A′)%26+′a′B.c=c+32C.c=c-′A′+′a′D.c=(′A′+c)%26-′a′
48.软件开发的结构化生命周期方法将软件生命周期划分成()
A.定义、开发、运行维护
B.设计阶段、编程阶段、测试阶段
C.总体设计、详细设计、编程调试
D.需求分析、功能定义、系统设计
49.以下对C语言中联合类型数据的正确叙述是()。
A.定义了联合变量后,即可引用该变量或该变量中的任意成员
B.一个联合变量中可以同时存放其所有成员
C.联合中的各个成员使用共同的存储区域
D.在向联合中的一个成员进行赋值时,联合中其他成员的值不会改变
50.阅读下面程序段,则执行后的结果为#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
51.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是
A.c=(c-'A')%26+'a'B.c=c+32C.c=c-'A'+'a'D.c=('A'+c)%26-'a'
52.以下4个程序中,完全正确的是()。
A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}
B.#include<stdio.h>main(){/*/programming/*/printf("programming!\n");}
C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}
D.#include<stdio.h>main(){/*programming*/printf("programming!\n");}
53.程序设计的任务包括()。
A.编写程序代码并上机调试B.确定所用数据结构C.确定所用算法D.以上选项均正确
54.在下列选项中,没有构成死循环的是()。
A.inti=100;while(1){i=i%100+1;if(i>100)break;}
B.for(;;);
C.intk=10000;do{k++;}while(k>10000);
D.ints=36;while(s)--s;
55.有以下程序inta=2;intf(intn){staticinta=3;intt=0;if(n%2){staticinta=4;t+=a++;}else{staticinta=5;t+=a++;}returnt+a++;}main(){ints=a,i;for(i=0;i<3;i++)s+=f(i)printf("%d\n",s);}程序运行后的输出结果是
A.26B.28C.29D.24
56.若有以下定义语句:doublea[5],*p=a;inti=0;对a数组元素错误的引用是()
A.a[i]B.a[5]C.p[4]D.p[i]
57.若有如下程序:main(){intx[]={14,32,65,69,78,59},*t;t=x+5;printf("%d\n",*-t);}则程序执行后的输出结果是()。
A.78B.65C.32D.14
58.若运行以下程序时,从键盘输入ADescriptor<CR>(<CR>表示回车),则下面程序的运行结果是
#include<stdio.h>
main()
{charc;
intv0=1,v1=0,v2=0;
do{switch(c=getchar())
{case′a′:case′A′:
case′e′:case′E′:
case′i′:case′I′:
case′o′:case′O′:
case′u′:case′U′:v1+=1;
default:v0+=1;v2+=1;}}while(c!='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}
A.v0=7,v1=4,v2=7
B.v0=8,v1=4,v2=8
C.v0=11,v1=4,v2=11
D.v0=13,v1=4,v2=12
59.若有以下定义和语句()intu=010,v=Ox10,w=10;printf("%d,%d%d\n",u,v,w);则输出结果是
A.8,16,10B.10,10,10C.8,8,10D.8,10,10
60.下列选项中,不属于数据管理员(DBA.职责的是()。
A.数据库维护B.数据库设计C.改善系统性能,提高系统效率D.数据类型转换
四、选择题(20题)61.以下程序段
62.已知字母A的ASCII码为十进制的65,下面程序的输出为()。
voidmain()
{charch1,ch2;
ch1=’A’+’5’-’3’;
ch2=’A’+6-3;
printf("%d,%c\n",ch1,ch2);
}
A.67,DB.B,CC.C,DD.不确定的值
63.
64.有以下程序
65.下列叙述中正确的是()。
A.软件测试应该由程序开发者来完成
B.程序经调试后一般不需要测试
C.软件维护只包括对程序代码的维护
D.以上三种说法都不对
66.
有以下程序:
main
{chara=a,b;
printf("%c,",++a);
printf("%c\n",b=a++):
)
程序运行后的输出结果是()。
A.b,bB.b,cC.a,bD.a,c
67.若i和k都是int类型变量,有以下for语句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面关于语句执行情况的叙述中正确的是()。
A.循环体执行两次B.循环体执行一次C.循环体一次也不执行D.构成无限循环
68.有以下程序:#include<stdio.h>main(){charcl=1,c2=2;cl=getchar();c2=getchar();putchar(c1);putcha:(c2);}当程序运行时输入a<回车>后,下列叙述中正确的是()。A.变量c1被赋予字符a,c2被赋予回车符
B.程序将等待用户输入第2个字符
C.变量c1被赋予字符a,c2中仍是原有字符2
D.变量c1被赋予字符a,c2中将无确定值
69.
70.有以下程序:
程序运行后的输出结果是()。
A.0B.1C.4D.8
71.若有定义语句:doublex,y,*px,*PY;执行了laX=&x;lay=&y;之后,正确的输入语句是()。A.scanf(”%If%le”,px,lay);
B.seanf(”%f%f¨&x,y);
C.seanf(”%f%f",x,y);
D.Scanf(”%If%If"·,x,y):
72.
73.
有下列程序:
main
{inti,s=0,t[]={1,2,3,4,5,6,7,8,9);
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序执行后的输出结果是()。
A.45B.20C.25D.36
74.若有以下程序
#include<stdio.h>
voidf(intn);
main()
{voidf(intn);
f(5);
}
voidf(intn)
{printf("%d\n",n);}
则以下叙述中不正确的是
A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B.若在主函数前对函数f进行说明,则在主函数和其他函数中都可以正确调用函数f
C.对于以上程序,编译时系统会提示出错信息:对f函数重复说明
D.函数f无返回值,所以,可用void将其类型定义为无返回值型
75.
76.若x是int型变量,且有下面的程序片段:
上面程序片段的输出结果是()。
A.
B.
C.
D.
77.有如下程序
voidf(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
main()
{inta[6]={1,2,4,6,8,10},i,*p,*q;
p=a;q=&a[5];
while(p<q)
{f(p,q);p++;q--;}
for(i=0;i<6;i++)
printf("%d,",a[i]);
}
该程序的输出结果是
A.1,2,4,6,8,10B.10,8,4,6,2,1
C.10,8,6,4,2,1D.10,2,4,6,8,1
78.有以下程序
程序运行后的输出结果是()。
A.15B.12C.16D.20
79.软件生命周期中花费时间最多的阶段是
A.详细设计B.软件维护C.软件编码D.软件测试
80.
五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。例如,若输入“Ab,cD”,则输出“AB,CD”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.请编写函数proc,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。例如,若二维数组中的数据为132333431424344415253545则一维数组中的内容应该是132333431424344415253545。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>voidproc(int(*s)[103,int*b,int*n,intrain.intnn){ }voidmain{intarr[10][10]={{33,33,33,33),{44,44,44,44},{55,55,55,55}),i,j;inta[l00]={o),n=o;printf("Thematrix:\n");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",arr[i][j]):printf("\n");}proc(arr,a,&n,3,4):printf("TheAarray:\n");for(i=0;i<n;i++)printf("%3d",a[i]):printf("\n\n");}
参考答案
1.A++a与a++的区别是前者先自加再运算,后者是先运算后自加。
2.B该函数用于数据类型和变量。注意:sizeof操作符不能用于函数、不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、void类型等。
3.A解析:从软件开发的工程化观点来看,在使用程序设计语言编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。详细设计的任务就是要决定各个模块的实现算法,并精确表达出这些算法。本题正确答案为选项A。
4.B在一个C语言程序中可以进行多种算法的实现,对算法的个数没有规定,所以B)错误。
5.D
6.A
7.A根据题目中的定义可以知道sizeof(p),计算的是数组P中所有元素所占用的字节数,而不是ch”型数据所占字节数。
8.C
9.A\nA。【解析】头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点的目的是为了便于运算的实现。
\n
10.A
11.A不能将一个整数直接赋给指针变量作为地址值,A选项错误。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。故本题答案为A选项。
12.A解析:因为变量的初始值分别为“k=5,n=0”,所以程序第一次进入循环时,执行default语句,这时k=4,执行'case4:”这个分支,结果是“n=2,k=3”,打印出2;然后程序进行第二次循环,这时“n=2,k=3”,执行'case3:”这个分支,结果是“n=3,k=2”,打印出3;程序进行第三次循环,这时“n=3,k=2”,执行“case2:case4:”这两个分支,结果是“n=5,k=1”,打印出5,这时因为n=5不满足n<5的循环条件,因此退出循环,程序运行结束,故输出结果为235。
13.C
14.C将两个字符串连接起来组成一个字符串,选用strcat函数来连接。
15.D解析:算法的时间复杂度实际上就是执行算法程序所需要的计算工作量。为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使用的程序设计语言、执行算法程序时所使用的计算工具以及程序员的水平无关。
选项A错误,因为同一算法程序在运行速度不同的计算机上运行时,其计算时间是不同的。选项B错误。因为算法所编写的程序长度往往与程序设计语言以及程序员的水平有关,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同。
选项C错误,因为根据一个算法所编制出的程序程序中,其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指令条数来度量算法的时间复杂度。
所以,本题的正确答案为D。
16.D
17.A函数“strlen(char*s)”;计算字符串s的长度,不包括‘\\0’在内。p指向数组的第2个元素,因此“Strien(P)=10”,并输出“one*Dream!”。故本题答案为A选项。
18.C程序首先定义整型变量a和b,a的初值为123456。接着通过while循环,判断a的值是否为0,若不为0,则执行循环体。每次循环将a当前值的个位数字(a%10)赋给b,a自身除以10。再通过switch语句判断b的值执行对应分支语句。所以对应a的每个个位数,b的取值为6,5,4,3,2,1。当b取值为6时,执行default,输出6,接着继续执行case1,通过break退出switch。执行下一次循环,当b取值为5时,执行case5输出5。执行下一次循环,当b取值为4时,执行case4输出4,继续执行case5输出5。接着执行下一次循环,当b取值为3时,执行case3输出3,执行case4输出4,执行case5输出5;当b取值为2时,执行case2输出2,通过break退出switch;当b取值为1时,执行break,此时a的取值为0,循环终止。综上,程序输出结果为:65453452。本题答案为C选项。
19.B解析:本题涉及字符串的两个最基本的概念。①字符串的长度是指字符串中字符的个数,但不包含字符串结束符;②以反斜线“\\”开头的特殊字符序列,意思是把反斜线后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“\\”连同后面的字符为一个长度。
20.D
21.k<=n或n>=kk++k<=n或n>=k\r\nk++解析:while语句和for语句的作用都是循环控制语句的执行,两者之间是可以互相转换的。将while(EXP)转换为for语句可以写成for(;EXP;);将for(EXP1;EXP2;EXP3)转换为while语句可以写成:EXP1;while(EXP2){...EXP3;}。故本题的两个空分别应填写for语句的第2和第3个表达式。即k<=n或n>=k和k++。当然也可写成与之等价的其他形式。
22.gaegae解析:主函数中定义了字符数组a和b,其初值分别为Language和Programe,然后定义了两个指针变量p1和p2,并让它们指向a和b。通过分析可知下面的for循环中,每循环一次就将p1+k和p2+k所指向的字符进行比较,如果相等,输出该字符,循环共执行8次,显然Language和Programe中只有字符gae相等,所以最后辖出为gae。
23.n+1n+1解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为0的结点多一个。
24.HellHell解析:该函数有3个参数,第三个参数是文件指针指向要读取数据的文件,第二个参数是一个整数(假设为n),表示从文件中读n-1个字符并在其后加一个'\\0',第一个参数为存放读取的字符串的内存区的起始地址,读取得数据保存在其中。可见本题的输出结果为:Hell。
25.111,1解析:POWER(i++)中先引用i的值1,再将i的值加1,POWER(i++)=1*1=1。
26.11<CR>23<CR>5(<CR代表换行)11<CR>23<CR>5(<CR,代表换行)解析:本题通过语句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”将数组中前面两项的和赋值给数组当前元素,得到a的值应为(1,1,2,3,5)。语句if(i%2==0)pfintf('\\n')是要将数组中的元素以每行2个的形式输出。
27.QTHRGQTHRG解析:strcmp(t,s)函数用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0;若t<s,则函数值小于0。strcpy(t,s)函数的功能是把字符数组,所指字符串的内容复制到字符数组t所指的存储空间中。
本题中,t[10]='CDEF'.第一次循环,s[10]='BADEF',if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环,s='QTHRG”,if语句的控制条件strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指的存储空间中,然后输出字符数组t。
28.j=j+2或j+=2a[j]<a[i]或a[i]>a[j]j=j+2或j+=2\r\na[j]<a[i]或a[i]>a[j]
29.关系关系
30.CIRCLE(RLSV)S=PI*R*Rr1sv
31.2002Shangxian2002Shangxian解析:本题中首先定义一个结构体类型STU,该结构体由一个长度为10的字符型数组、一个long型变量和一个float型变量组成。接着在主函数中用STU定义了4个结构体变量a、b、c、d,并且给a、b、c赋初值,然后定义了一个结构体指针p,并让它指向变量do将变量a的值赋给变量d,接着通过两个if语句比较结构体变量a、b、c的成员name大小。第一个if语句将结构体变量和结构体变量中较小的那个赋值给结构体变量d,第二个if语句将结构体变量和结构体变量较大的那个赋给结构体变量do比较通过函数strcmp实现。strcmp()函数有两个参数,分别为被比较的两个字符串。如果第一个字符串大于第二个字符串返回值大于0,若第一个小于第二个返回值小于0,相等时返回值为0。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串,如果遇到某一个字符小,该字符所在的字符串就是较小的字符串。程序中第一个if语句strcmp(,)>0为真,故将b的值赋给d,第二个if语句strcmp(,)>0为假,故不执行后面的语句,最后d的值为b的值,因此输出d.sn0和p->name的值为2002Shangxian。
32.方法方法解析:在面向对象方法中,方法是指允许作用于某个对象上的各种操作。
33.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:将数组a中元素a[i]与a[i+1]值相加后的值赋予数组b中元素b[i],即可实现将一个数组的前项和后项之和存入另一数组。
34."bi.dat"fp
35.rewind或fseekrewind或fseek
36.一对多或1:N。一对多或1:N。
37.55解析:a++的含义是在使用a值以后,使a值加1,所以a++的值为5。
38.11解析:逻辑运算中,非1即0,非0即1,!a=0,++a为逻辑1,所以0和1相或结果为1。
39.adghadgh解析:函数strcpy是字符串复制函数。第一次将'adc'复制到以&s[0]为起始地址的存储空间中,第二次将'def'复制到以&s[1]为起始地址的存储空间中,“dc”将被覆盖,变为“adef”,第三次将“gh”复制到以&s[2]为起始地址的存储空间中,“ef”将被覆盖,变为“adgh”。
40.bb解析:本题实现的功能是把大写字母转换为小写字母。小写字母的ASCII码值比相应的大写字母的ASCII码值大32。
41.BC语言中二维数组是按行存放的,即在内存中先顺序存放第一行的元素,再存放第二行的元素。此题二维数组str[][10]第1行的前5个元素为'C','h','i','n','a',第6个元素为'\\0',后4个元素为空字符。紧接着内存单元存放数组第2行的元素,即从str[1][0]到str[1][9]分别为'B','e','i','j','i','n','g',第8个元素为'\\0',后两个元素为空字符。执行*p=str[0]后,指针p就指向了二维数组str的首地址,p+10指向从首地址依次向后的第11个存储单元即字符,B,的地址,所以输出Beijing,故答案为B。
42.BB)【解析】软件侧试的目的:
\n①软件测试是为了发现错误而执行程序的过程;
\n②一个好的测试用例能够发现至今尚未发现的错误;
\n⑧一个成功的测试是发现了至今尚未发现的错误。
\n软件侧试的准则:
\n①所有测试都应追溯到需求;
\n②严格执行测试计划,排除测试的随意性;
\n③充分注意测试中的群集现象:
\n④程序员应避免检查自己的程序;
\n⑤穷举测试不可能;
\n⑥妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
43.B解析:本题中a的值为6,b的值为8,最后s的值为8,s*=s等价于s=s*s。
44.B解析:本题中定义了一个结构体数组data[2]并初始化,主函数中定义了一个结构体类型指针变量并让它指向data的首地址,由于p指向第一个元素的地址,所以p->x相当于data[0].x即为10,所以++(p->x)后的值为11.所以,4个选项中选项B符合题意。
45.D解析:主函数中指针变量指向两字节的存储空间,这两个字节可以存放int型数据,函数fun是将实参数组a中的元素a[1][2]的值11赋给指针变量p所指的存储空间,程序输出该空间的值。本题函数fun中形参p是二级指针变量,它指向实参指针变量p。
46.C解析:在函数外面定义的变量a是全局变量,其作用范围从定义该变量的位置开始到本文件的结束;在f函数中的if子句(复合语句)和else子句中定义的变量a是局部变量,其作用范围只在其所在的复合语句内;在f函数中定义的第一个变量a是静态局部变量,其作用范围只限于函数f内部,无论被调用多少次都只初始化一次,并且保留上次函数调用结束时的值,该变量不对复合语句产生作用,所以,f函数的返回值是这个a变量和t值相加的结果。
47.D解析:C语言中,字符数据参加运算时,实际上是其ASCII码参与运算。大写字母的ASCII码比其对应的小写字母的ASCII码小32。因此大写字母转化为小写字母只需将其加上32即可。所以选项B)、C)都符合条件,因为变量c中存储的是大写字母,所以'c-\'A\''的值一定小于26,故选项A)与选项C)的含义相同。
48.A解析:通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。它可以分为软件定义、软件开发及软件运行维护3个阶段。
49.C解析:联合体的几个特点:①联合体所占用的内存空间为最长的成员所占用的空间;②各个成员分量全部是从低地址方向开始使用内存单元;③联合体中的空间在某一时刻只能保存某一个成员的数据;④联合体和结构体可以任意嵌套。
50.C解析:如果没有指明函数值类型,则默认函数返回值的类型为int型。注意:顺序程序结构的执行过程。
51.D解析:C语言中,字符数据参加运算时,实际上是其ASCII码参与运算。大写字母的ASCII码比其对应的小写字母的ASCII码小32。因此大写字母转化为小写字母只需将其加上32即可。所以选项B)、C)都符合条件,因为变量c中存储的是大写字母,所以“c-'A'”的值一定小于26,故选项A)与选项C)的含义相同。
52.B解析:选项A在定义main()函数时,函数头后面多了一个分号,故选项A不正确;C语言中的注释是不能嵌套的,故选项C不正确:选项D在使用预编译指令#include时漏掉了#号,所以也是错误的。故应该选择B。
53.D程序设计是一门技术,需要相应的理论、技术、方法和工具来支持。程序设计的任务包括选项A)、B)、c)等方面。
54.D解析:选项A)的循环表达式条件永久为1,由于小于100的数与100取余不超过99,所以在循环体内表达式i%100+1的值永远不大于100,break语句永远不会被执行,所以是死循环;选项B)的括号内没有能使循环终止的条件,是死循环;选项C)中先执行k++,使k=10001,陷入死循环;选项D)中的s从36开始,每循环一次就减小1,直到s为0,循环结束,不会构成死循环。
55.C解析:全局变量的生存期是整个程序的运行期间,作用域是从变量定义的位置开始,到整个源文件结束止。但是,若全局变量和某一函数或语句块中的局部变量同名,则在该函数或语句块中,此全局变量被屏蔽,即在该函数或语句块内,访问的是局部变量,与同名的全局变量不发生任何关系。静态局部变量的生存期与全局变量相同,作用域和局部变量一样都是整个函数成语旬块内有效。程序第一行定义了一个全局变量a,在f()函数开头也定义了一个静态局部变量a,而且在后面if语句的两个子句中都定义了静态局部变量a。这4个变量a虽然名字一样,但却是4个独立的变量,而且在整个程序运行期都存在。在主函数中,在定义变量s时将s初始化为全局变量a的值2,然后使用一个for循环分别调用了3次f(0)、f(1)、f(2),并将得到的值累加到变量s中。第1次调用n=0为偶数,执行else子句,此时t累加的是else子句中的变量a,所以执行后else子句中的a变为6,t变为5,然后return语句中的a是函数f()开头定义的a,执行后函数开头的a变为4,所以返回值是5+3=8。第2次调用n为1是奇数,执行if子句,所以t变为4,if子句中的a变为5,然后返回时函数开头的a变为5,返回值是4+4=8。第3次调用n为2是偶数,又执行else子句,else子句中的a现在还是上次执行后的值6,所以t=6,然后返回时加上函数开头的a的当前值5,最后返回11。所以s最终的值是2+8+8+11=29。故应该选择C。
56.B
57.A解析:执行t=x+5:使指针指向数组元素59,运算符*和--的优先级相同,结合性为自右向左,先计算--t,对t减1,使t指向数组元素78,再计算*t,取该地址单元的值78。
58.D解析:本题考查switch语句的掌握。必须撑握以下内容:首先应该明白switch语句的语法格式:
switch语句的语法格式为:
switch(表达式)
{
case常量表达式1:语句组1;
case常量表达式2:语句组2;
case常量表达式n:语句组n;
default:语句组n+1;
}
另外,以下几点关于switch语句的重点:
①系统在执行时计算开关表达式的值;②根据所得的值在各个case标号表达式中寻找匹配,直到发现与表达式匹配的标号(本例中匹配的是case\'B\':);\ue008③找\ue009到匹配后执行后面相应的语句表,顺序往下执行;④如果无相匹配的标号,若存在default标号,则执行该语句标号后面的语句表n+1;当不存在default标号时,不执行switch中的任何一个语句表。
一般而言,在多分支结构中总会出现'意外'的情况,这时均可归入default程序段,作统一的处理。default标号是可选性的,不必每次都有,视需要而定。switch语句中还可以包含switch语句,形成switch的嵌套。
59.A
60.DD)【解析】数据库管理员(DataBaseAdministrator,DBA)是指对数据库的规划、设计、维护、监视等的人员,其主要工作如下:数据库设计。DBA的主要任务之一是数据库设计,具体地说是进行数据模式的设计;数据库维护。DBA必须对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转储等进行实施与维护;改善系统性能,提高系统效率。DBA必须随时监视数据库的运行状态,不断调整内部结构,使系统保持最佳状态与效率。
61.Aseanf中name得至lJLili,Rum得到l001,所以结果选择A)。
62.A将字符进行运算时,进行运算的是ASCII值,所以ch1=65+2=67(‘5’与’3’的ASCII值差为2),ch2=65+6-3=68.
63.D
64.Af(2)展开后为,2*5+1,值为ll,f(1+1)展开后为,l+1*5+1值为7,所以答案选择A):
65.D程序调试是由程序开发者完成诊断和改正程序中的错误的过程;软件测试是由专门的测试人员完成,是发现错误而执行程序的过程;软件维护是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程,是软件生存周期中非常重要的一个阶段。
66.A
\n++a与a++的区别是前者先自加再运算,后者是先运算后自加。
\n
67.D此题考查的是基本的循环,答案为D。
68.A本题考查getchar函数,从终端读入一个字符作为函数值。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入回车键时,读入才开始执行。所以当输入a<回车>后,变量c1被赋予字符a,而变量c2被赋予回车符。
69.B
70.Cm函数中的X为静态局部变量,占用固定的内存单元,下一次调用时仍可保留上次调用时的值。也就是说,如果多次调用fun函数,x的定义只在第一次调用时有效,从第二次调用开始,x的定义相当于不存在,直接使用X的值。主函数中调用两次fun函数t第一次调用:X=1,X=x}2=2,s=2;第二次调用:(直接用上次X的值)x=X·2=4,s=4。因此C选项正确。
71.A因为X,Y都是double型数据,所以输入时的格式字符应为%If,所以B与C错误。D选项中scanf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- racemic-6-7-Epoxy-cannabichromene-生命科学试剂-MCE-6900
- Gluconapin-生命科学试剂-MCE-5096
- 25B-NB3OMe-hydrochloride-生命科学试剂-MCE-6391
- 施工日志填写样本外墙装饰工程
- 跨代沟通与家庭关系中的文化融合
- DB15T 3843-2025新能源分布式电源并网技术规范
- 云计算建设项目服务合同
- 事业单位与员工停薪留职合同范本
- 个人车位交易合同范例
- 个人企业房屋租赁合同模板
- 苏州2025年江苏苏州太仓市高新区(科教新城娄东街道陆渡街道)招聘司法协理员(编外用工)10人笔试历年参考题库附带答案详解
- 搞笑小品剧本《大城小事》台词完整版
- 物业服务和后勤运输保障服务总体服务方案
- 2025年北京市文化和旅游局系统事业单位招聘101人笔试高频重点提升(共500题)附带答案详解
- 中学学校2024-2025学年第二学期教学工作计划
- 人大代表小组活动计划人大代表活动方案
- 《大模型原理与技术》全套教学课件
- 2023年护理人员分层培训、考核计划表
- 《销售培训实例》课件
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解)
- 【经典文献】《矛盾论》全文
评论
0/150
提交评论