版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年河南省信阳市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.
3.设有以下语句,其中不是对a数组元素的正确引用的是:_____(其中0≤i<10)inta[10]={0,1,3,4,5,6,7,8,9,},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
4.有下列程序:程序执行后的输出结果是()。
A.15,12,9,B.15,13,11,C.15,11,7,D.15,15,15,
5.
6.用树形结构表示实体之间联系的模型的是
A.关系模型B.网状模型C.层次模型D.以上三个都是
7.对于哈希函数H(key)=key%13,被称为同义词的关键字是_______
A.35和41B.23和39C.15和44D.25和51
8.执行下列程序中的输出语句后,a的值是()。main{inta;printf(“%d\n”,(a=2*3,a*5,a+7));}A.17B.37C.6D.13
9.以下关于C语言的叙述中正确的是()。
A.C语言的数值常量中夹带空格不影响常量值的正确表示
B.C语言中的变量可以在使用之前的任何位置进行定义
C.在C语言算术表达式的书写中,运算符两侧的运算数据类型必须一致
D.C语言中的注释不可以夹在变量名或关键字的中间
10.下列关于线性链表的叙述中,正确的是()A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C.进行出入与删除时,不需要移动表中的元素
D.以上三种说法都不催
11.有以下程序:main{inti,n=0:for(i=2;i<5;i++){do{if(i%3)continue:n++:}while(!i);n++:}printf("n=%d\n",n);}程序执行后输出结果是()。A.n=5B.n=2C.n=3D.n=4
12.执行下列程序后的输出结果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
13.有两个关系R和T如下:
则由关系R得到关系T的操作是()。A.选择B.投影C.交D.并
14.下列叙述中正确的是()。
A.对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为n/2
C.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为log2n
D.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为nlog2n
15.C语言提供的合法的数据类型关键字是()。
A.DoubleB.shortC.integerD.Char
16.用链表表示线性表的优点是()。
A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序和逻辑顺序相同
17.一个递归算法必须包括()。
A.递归部分B.终止条件和递归部分C.迭代部分D.终止条件和迭代部分
18.设有以下定义uniondata{intd1;floatd2;)demo;则下面叙述中错误的是()。A.变量demo与成员d2所占的内存字节数相同
B.变量demo中各成员的地址相同
C.变量demo和各成员的地址相同
D.若给demo.d1赋99后,demo.d2中的值是99.0
19.图的深度优先遍历类似于二叉树的_______。
A.先序遍历B.中序遍历C.后序遍历D.层次遍历
20.当调用函数时,实参是一个数组名,则向函数传送的是______。
A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值
二、2.填空题(20题)21.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。(注:try_me()函数在a:\myfile.txt中有定义。)
______
main()
{printf("\n");
try_me();
printf("\n");}
22.若有下列定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,则值为3的表达式为:______。
23.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中______的作用是将测试数据传送给被测试的模块,并品示被测试模块所产生的结果。
24.以下程序调用invert函数按逆序重新放置a数组元素的值。a数组中的值在main函数中读入。
#include<stdio.h>
#defineN10
invert(s,i,j)
int*s,i,j;
{intt;
if(i<j)
{t=*(s+i);
*(s+i)=(s+j);
*(s+j)=t;
invert(s,【】,j-1);
}
}
main()
{
inta[N],i;
for(i=0;i<N;i++)scanf("%d",a+【】);
invert(a,0,N-1);
for(i=0,i<N;i++)printf("%d",a[i]);
printf("\n")
}
25.有以下程序:
fun(inta,intb)
{if(a>b)return(a);
elsereturn(b);
}
main()
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
printf("%\d\n",r);
}
程序运行后的输出的结果是【】。
26.下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符1,则输出3,请填空。#include<conio.h>#include<stdio.h>#defineM81intfun(char*ss,charC){inti=0;for(;();ss++)if(*ss==C)i++;returni;}main(){chara[M],ch;printf("\nPleaseenterastring:");gets(A);printf("\nPleaseenterachar:");ch=getchar();printf("\nThenumberofthecharis:%d\n",fun(a,ch));}
27.以下函数的功能是求x的y次方,请填空。
doublefun(doublex,inty)
{inti;
doublez;
for(i=1,z=x;i<y;i++)z=z*【】;
returnz;
}
28.软件测试分为白箱(盒)测试和黑箱(盒)测试。基本路径测试方法属于()测试。
29.若运行时给变量x输入12,则以下程序的运行结果是【】;
main(){
intx,y;
scanf(""%d"",&x);
y=x>12?x+10:x-12;
printf(""%d\n"",y);
}
30.下面程序的运行结果是【】。
#inelude<stdio.h>
intf(inta[],intn)
{if(n>1)returna[0]+f(&a[1],n-1);
elsereturna[0];
}
main()
{intaa[3]={1,2,3},s;
s=f(&aa[0],3);printf("%d\n",s);
}
31.有以下程序片段,请问执行后的输出结果是【】。
intn=10;
while(n>7)
{printf("%d",n--);
}
32.以下主程序运行后的输出结果是【】。
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=ii;i++)
switch(i/10)
{case0:m++;n++;break;
case10:n++;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
33.有以下程序段,且变量已正确定义和赋值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
请填空,使下面程序段的功能与之完全相同
s=1.0;k=1;
while(【】){s=s+1.0/(k*(k+1));【】;}
printf("s=%f\n\n",s);
34.在具有n个单元、顺序存储的循环队列中,队满时,共有【】个元素。
35.一个项目具有一个项目主管,一个项目主管叫‘管理多个项目,则实体“主管”与实体“”的联系属于______。
36.以下程序运行后的输出结果是______。
fun(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inti,a=5;
for(i=0;i<3;i++)printf("%d%d",i,fun(a));
printf("\n");
}
37.下面程序的运行结果是【】。
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
38.以下程序的功能是计算:s=1+12+123+1234+12345。请填空。
main()
{intt=0,s=0,i;
for(i=1;i<=5;i++)
{t=i+______;s=s+t;}
printf("s=%d\n",s);
}
39.常用的黑箱测试有等价分类法、【】、因果图法和错误推测法4种。
40.函数voidfun(float*sn,intn)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请补全程序。
S=1-1/3+1/5-1/7+…+1/(2n+1)
voidfun(float*sn,intn)
{floats=0.0,w,f=-1.0;
inti=0;
for(i=0;i<=n;i++)
{f=【】*f;
w=f/(2*i+1);
s+=w;
}
【】=s;
}
三、1.选择题(20题)41.请选出以下程序的输出结果()。#include<stdio.h>#defineMIN(x,y)(x<y)?x:ymain(){inti,j,k;i=10;j=15;k=10*MIN(i,j);printf("%d\n",k);}
A.15B.100C.10D.150
42.若有以下定义和语句structa{intn,m;};structast[3]={{1,20},{2,19},{3,21}};structa*p=st;则以下错误的引用是
A.(p++)->n;B.st[0].n;C.(*p).n;D.p=&st.m;
43.下列叙述中正确的是A.软件测试的主要目的是发现程序中的错误
B.软件测试的主要目的是确定程序中错误的位置
C.为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作
D.软件测试是证明软件没有错误
44.若有以下结构体定义,则______是正确的引用或定义。structexample{intx;inty;}v1;
A.example.x=10
B.examplev2.x=10
C.structv2;v2.x=10
D.structexamplev2={10};
45.以下程序的输出结果是()。#include<stdio.h>intfan(int);main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d",k);}
A.54321B.012345C.12345D.543210
46.在C语言中,引用数组元素时,其数组下标的数据类型允许是()。
A.整型表达式B.整型常量C.整型常量或整型表达式D.任何类型的表达式
47.已知i、j、k为int型变量,若要从键盘输入2、3、4<CR>,使i、j、k的值分别为2、3、4,下列正确的输入语句是()。
A.scanf("%3d,%3d,%3d",&i,&j,&k);
B.scanf("%d,%d,%d",&i,&j,&k);
C.scanf("%d%d%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
48.若有运算符:>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列次序为()。
A.*=<<>%sizeof
B.<<*=>%sizeof
C.%=><<sizeof%
D.*=><<%sizeof
49.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}rintf("%d\n",m);}程序运行后的输出结果是()。
A.1B.2C.3D.4
50.按照“先进后出”原则组织数据的数据结构是()。
A.队列B.栈C.双向链表D.二叉树
51.设char型变量x中的值为10100111,则表达(2+x)∧(~3)的值是
A.10101001B.10101000C.11111101D.1010101
52.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。
A.sanf("%2d%2d%2d",&i,&j,&k);
B.scanf("%d%d%d",&i,&j,&k);
C.scanf("%d,%d,%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k)
53.下列叙述中正确的是()。
A.算法的执行效率与数据的存储结构无关
B.算法的空间复杂度是指算法程序中指令(或语句)的条数
C.算法的有穷性是指算法必须能在执行有限个步骤之后终止
D.以上3种描述都不对
54.设intx=1,y=1;表达式(!x||--y)的值是()。
A.0B.1C.2D.-1
55.有以下程序#include<string.h>structSTU{inthum;floatTotalScore;};voidf(structSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore-s[1].TotalScore;}main(){structSTUs[2]-{{20041,703},{20042,580}};f(s[0]);printf("%d%3.0f\n",s[0].num,s[0].TotalScore);}程序运行后的输出结果是
A.20045537B.20044550C.20042580D.20041703
56.下列叙述中正确的是()。
A.一个逻辑数据结构只能有一种存储结构
B.数据的逻辑结构属于线性结构,存储结构属于非线性结构
C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
57.以下程序(程序左边的数字为附加的行号)______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}
A.没有错B.第1行有错C.第6行有错D.第7行有错
58.下面对对象概念描述错误的是()。
A.任何对象都必须有继承性B.对象是属性和方法的封装体C.对象间的通信靠消息传递D.操作是对象的动态属性
59.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为______。
A.n-1B.nC.n+1D.2n
60.有如下程序main(){charch[2][5]={"6937","8254"},*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=10*s+p[i][j]-'0';printf("%d\n",s);}该程序的输出结果是
A.69825B.63825C.6385D.693825
四、选择题(20题)61.
62.有以下程序:
程序运行后的输出结果是()。
A.0,0B.1,0C.3,2D.1,2
63.
64.
65.下列排序方法中,最坏情况下比较次数最少的是()。
A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序
66.
67.
68.下列定义数组的语句中,正确的是()。
69.有以下程序
structs
{intx,y;}data[2]={10,100,20,200};
main()
{structs*p=data;
printf("%d\n",++(p->x));
}
程序运行后的输出结果是()
A.10B.11C.20D.21
70.若有定义语句:intx=10;,则表沃式㈣的值为()。A.一10B.-20C.0D.10
71.(65)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()
A.模块间的关系
B.系统结构部件转换成软件的过程描述
C.软件层次结构
D.软件开发过程
72.以下程序的输出结果是()。
main()
{inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)s+=a[i][j];
printf("%d\n",s);
}
A.18
B.19
C.20
D.21
73.设有定义"doublea[10],*s=a;",以下能够代表数组元素a[3]的是()。
A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3
74.以下选项中,合法的一组c语言数值常量是()。
A.12.0Xtl234.5e0
B.028.5e-3-0xf
C.1774el.50abe
D.0x8A10,0003.e5
75.有以下程序
76.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp),的返回值为()。
A.0B.\0C.非0值D.NULL
77.有以下程序:
#include<stdio.h>
main()
{intb[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;
for(i=0;i<3;i++)
for(j=1;j<=i;j++)t+=b[i][b[j][i]];
printf("%d\n",t);
}
程序运行后的输出结果是()。
A.1B.3C.4D.0
78.
79.
80.下列关于信息系统的叙述中,错误的是()。
A.广播电视是一种双向的、点到多点的信息交互系自
B.网络聊天是一种双向的,以信息交互为主要目的系统
C.电话是一种双向的、点对点的、以信息交互为主要的的系统
D.雷达是一种以感测和识别为主要目的的系统
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:根据整型参数m,计算如下公式的值:y=1/(100100)+1/(200200)+1/(300300)+…+1/(mm)例如,若m=4000,则应输出0.000162。请修改程序中的错误,使它能得出正确的结果。注意:不要改动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.A
2.B
3.D解析:观察程序可知,a实际上就是数组a的首地址,所以“*(a+i)”表示的就是数组a中的第i个元素的值,进而,我们可以知道*(*(a+i))必然不是对a数组元素的正确引用。
4.A程序定义整型的全局变量a,初值为5,main函数定义整型局部变量a,初值为4。所以在main函数中,局部变量a屏蔽全局变量a。func函数中定义局部变量b,初值为5,定义静态变量c,初值为5,并且在func函数中变量a引用的是全局变量a。综上,我们使用a_a代表全局变量a,使用m_a代表main函数中局部变量a。main函数中,当k=0时,a_a=5,m_a=4,调用函数func(4),函数func中d的值为4,b的值为5,c的值为5,执行表达式“a_a--;b--;--c;--d;”后,a_a的值为4,b的值为4,c的值为4,d的值为3,a+b+c+d的值为15,程序输出15。当k=1时,a_a=4,m_a=3,调用函数func(3),函数func中d的值为3,b的值为5,c的值为4(静态变量使用上一次调用结束时的值),执行表达式“a_a--;b--;--c;--d;”后,a_a的值为3,b的值为4,c的值为3,d的值为2,a+b+c+d的值为12,程序输出12。当k=2时,a_a=3,m_a=2,调用函数func(2),函数func中cl的值为2,b的值为5,c的值为3,执行表达式“a_a--;b--;--c;--d;”后,a_a的值为2,b的值为4,c的值为2,d的值为1,a+b+c+d的值为9,程序输出9。本题答案为A选项。
5.A
6.C解析:在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有三种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。因此,本题的正确答案是C。
7.D
8.C本题考查逗号表达式。程序输出时输出一个%d,所以输出第一个a的值与后续无关。本题考查逗号表达式。本题的返回值是a+7,a=2*3=6,a+7=13(注意:本题问的是a的值,而不是程序的输出值)。
9.DC语言的数值常量中不能夹带空格,所以A选项错误。C语言中的变量都必须先定义再使用,变量的定义通常放在函数体的前部,也可以放在函数外部或复合语句的开头,不能随便放置,所以B选项错误。在C语言中,运算符两侧的运算数据类型可以不一致,且结果与精度较高的数据类型保持一致,所以C选项错误。故本题答案为D选项。
10.C
试题2分析
结点的存储顺序和逻辑顺序不一定一致,存储空间也不一定连续。插入和删除元素的时候,不需要移动表中的元素。
试题2答案
C
11.Dcontinue语句的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。
12.D
13.A
14.C\n\tC。【解析】二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次。
15.Bdouble,char,int,第一个字母都是小写。
16.C【解析】在链表中因为除了存放数据元素之外,还要存放指针,所以链表花费的存储空间要比顺序表还要多,在插入和删除数据元素时,只需要移动相应的记录指针即可,在链表中,数据的物理结构与逻辑结构不一定相同,因为是靠指针来实现对数据的指定的,所以不能进行随机存取。
17.B
18.D共用体变量中的所有成员共享一段公共存储区,所有成员的首地址相同。在每一个时刻所有的成员中只有一个有效,即只有最后一个被赋值的成员有效,其余的成员无效。
19.A
20.B解析:当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址,函数中的形参可定义成以下三种形式:
①形参定义成数组;
②形参定义成可变长数组:
③形参定义为指针变量。
21.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本题考查了函数的存储分类的概念。如果没有特别说明,函数的存储范围是从定义函数的位置到文件的结尾,如果其他文件想使用这个函数,需要用ginclude文件包含命令将定义函数的文件包含进来。
22.p+=2*(p++)p+=2,*(p++)解析:由题可知a[2]=3,因此只要使指针p指向a[3],然后再引用指针的值就可以了。
23.驱动模块驱动模块解析:由于模块不是一个独立的程序;不能单独运行,因此,在进行模块测试时,还应为每个被测试的模块另外设计两类模块:驱动模块和承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是模拟被测试模块的下层模块。通常,承接模块有多个。
24.i+1i
25.1212解析:函数fun的功能是求两个数当中的最大值。语句r=fun(fun(x,y),2*z)的执行过程为:首先计算fun(x,y),因x=3、y=8,所以结果为8;然后计算fun(8,2,*z),即计算fun(8,12),所以r=12。
26.*ss!='\0'*ss!='\\0'解析:本题考查的是指针的应用。题目要求求出字符串ss中指定字符的个数。分析整个程序,空缺处是检验指针ss是否指向了字符串的末尾,如没有,即执行下面语句,判断指针ss指向的字符是否字符c,若是,i自加1;所以空缺处填入*ss!='\\0',作为循环终止的条件。
27.xx解析:函数的定义形式为;
函数类型函数名(形参表)
{
类型说明语句;
执行语句;
}
本题中函数的功能是:累积变量以求得变量的Y次方。
28.自盒自盒解析:自盒测试法即结构测试,它与程序内部结构相关,要利用程序结构的实现细节设计测试实例。白盒测试法主要有逻辑覆盖、基本路径测试等。
29.00解析:三目运算符的形式为(表达式1)?(表达式2):(表达式3)。当(表达式1)值为真时,返回(表达式2)的值;为假时,返回(表达式3)的值。题中因为x>12为假,所以结果为x-12,即为0。
30.66解析:已知aa[3]={1,2,3},n=3,调用函数f,n>1成立,执行a[0]+f(&a[1],n-1);即1+f(&a[1],2),递归调用函数f,将a[1]的地址作为参数传给数组a,使数组a的首地址变为&a[1],数组中的元素只有2,3;2传给n,这时n=2,n>1仍然成立,继续调用a[0]+f(&a[1],n-1);即执行1+2+f(&a[1],1),因为上次递归调用函数f后数组中的元素为2,3,所以此次的a[1]为3,调用后的a[0]为3。所以最后结果为1+2+3=6。
31.1098
32.132132解析:本题for循环语句的执行过程为:
第一次循环:i=9,9/10=0,执行m++、n++得m=1、n=1、k=0;
第二次循环:i=10,10/10=1,执行k++、n++得m=1、n=2、k=1;
第三次循环:i=11,11/10=1,执行k++、n++得m=1、n=3、k=2;
即执行完for循环后m=1、n=3、k=2。
33.k<=nk++k<=n,k++解析:本题要求将一个for循环改成while循环。首先要保证循环条件相同,在for循环中,每次执行循环之后,循环控制变量k都会加1,而while循环则没有,故需在循环体中增加改变k数值的语句'k++;'\ue009。
34.n-1
35.一对多一对多解析:由于一个项目主管可以管理多个项目,而一个项目只能有一个项目主管,“项目主管”这个实体与“项目”这个实体的管理关系嘱于一对多。
36.010111212010111212解析:本题考查的是静态局部变量的运用。静态局部变量的作用域与普通局部变量一样,但它的生存期将延长到程序运行结束。本题的主函数中使用一个for循环输出循环变量i和fun(a)的值,由于a的值一直没被修改过,所以三次调用的都是fun(5)。第1次调用,b=0,c=3,所以返回值为5+1+4=10;第2次调用,因为c是静态局部变量,它仍然保存着上次调用结束时的值4,而b重新被创建和初始化为0,所以返回值为5+1+5=11;同理,第3次调用返回的是12。所以,程序最终输出为:010111212。
37.3030解析:题目中for(;;)表示:for循环的初始化表达式,条件表达式和修正表达式都省略了,表示进行for循环和for循环的终止都没有限制。注意:while循环的执行原理。
38.t*10或10*tt*10或10*t解析:本题要求累加一系列有规律的数,从输出结果来看,s保存的是最终结果,而s在循环体中,每次累加一个t,则说明t在5次循环中分别等于1.12、123、1234、12345;而t每次循环等于“填空内容”加上循环变量i,又因为i在5次循环中分别等于1、2、3、4,5,所以t每次循环要加的“填空内容”应分别为0、10、120,1230,12340,这一系列值正好是前一次t的值的10倍.所以“填空内容”应是t*10。
39.边值分析法边值分析法解析:本题考查了黑箱测试的方法。黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价分类法、边值分析法、因果图法和错误推测法。
40.-1或-1.0*sn-1或-1.0\r\n*sn解析:由于在对S求和时,相邻两项的符号刚好相反,而在函数fun中没有对数据进行取反的操作,故第—空的目的是对数据进行取反,以保证序列中相邻两项的符号不同。故第—个应填-1或-1.0。在执行完循环体后,要将求和结果通过指针参数的形式传递绐调用fun的函数,故第二空应填*sn。
41.C解析:本题考查宏定义。在C语言中,宏是直接替换的,所以表达式k=10*MIN(i,j)被直接替换为k=10*(i<j)?i:j,在这个表达式中,10*(i<j)的值为非零,所以整个表达式的值应为i的值,即为10。
42.D解析:可以用以下三种形式来引用结构体变量中的成员:结构体变量名.成员名、指针变量名->成员名和(*指针变量名).成员名。选项D)中“&st.m”取的是结构体中成员的地址而不是结构的地址。
43.A解析:本题考查软件工程中测试的目的和方法。仅就软件测试而言,它的目的是发现软件的中的错误,但是,发现错误并不是最终目的,最终目的是通过测试发现错误之后还必须诊断并改正错误,这就是调试的目的。
由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自己进行测试是不恰当的。因此,在软件测试阶段通常由其他人员组成测试小组来完成测试工作。因此,经过上述分析可知选项A的说法是正确的,而选项B、C、D的说法是错误的。
44.D解析:在定义结构体变量时,不能只用结构体名example或关键字struct进行定义,必需要用结构钵类型名structexample定义,在引用结构体成员变量时,需要用结构体变量名进行引用,所以选D。
45.B解析:本题考查函数的递归调用。fun函数共被调用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(0),其中fun(5)是main函数调用的,其余是在fun函数中调用的。
46.C解析:在C语言中,引用数组元素时,其数组下标的数据类型可以是整型常量,也可以是整型表达式。
47.B解析:函数scanf()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符:“输入项地址表”是要输入的变量的地址。若在格式符中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符,其中的逗号也必须输入。
48.D解析:本题主要考查算术运算的优先级。顺序如下:
[*]
注:*=、>、<<、%、sizeof的优先级依次递增。
49.A解析:本题中首先计算switch后面括号里的表达式a%3,即15%3为0;执行case0:后面的语句m++:m自加1,即m为1遇到break语句;然后跳出switch语句,所以最后输出的m的值为1。所以选项A正确。
50.BB.【解析】栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元索是最后被插入的元素,也是最后被删除的元素。栈是按先进后出的原则组织数据的。
【知识拓展】“栈”的形式如手枪的弹匣,最后压入的子弹总是最先被弹出,而最先压人的子弹最后才被弹出,也就是“先进后出”。
51.D解析:本题考核的知识点是位运算符的基本使用.表达式(2+x)二进制表示为“10101001”,(-3)即把3按位取反得到二进制值为“11111100”,再把这两个;进制按位加(异或),得到结果位“01010101”。所以,D选项为所选。
52.C解析:scanf函数的格式控制部分中的非格式字符按原样输入,本题指出键盘输入为:1,2,3<回车>,各个数据之间用“,”分隔,所以scanf函数中应包含“,”,选项D中虽然包括“,”号,但是还包含非格式字符i=、j=和k=,正确答案为选项C。
53.C解析:算法的执行效率与数据的存储结构密切相关。算法的空间复杂度是指算法执行过程中所需的存储空间。
54.A解析:当逻辑或运算符两边的运算对象至少有一个为1时,整个逻辑表达式的值是1;如果两边的运算对象都为0,则整个逻辑表达式的值为0。题中!x=0,--y=0,所以整个表达式的值是0。
55.D解析:把结构体变量作为一个参数传递给函数时,传递的是实参结构体变量的值,系统将为结构体类型的形参开辟相应的存储单元,并将实参中各成员的值赋给对应的形参成员。因此,改变形参变量的内容不会影响实参,即传值调用。所以本题的函数f()没有对传递的结构体s[0]作任何改动,结果还是20041703。应该选择D。
56.D解析:数据的逻辑结构是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和在此集合中定义的若干关系来表示。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接等存储结构。但是不同的存储结构的数据的处理效率不同。
57.B解析:字符串复制函数strcpy包含在头文件string.h中,因此,程序中的第1行文件包含命令是错误的。
58.A解析:对象是面向对象方法中最基本的概念,对象可以用来表示客观世界中的任何实体,因此需要很清楚的理解对象的概念。因为客观世界的实体通常都具有静态跟动态的属性,所以对象也具有有静态和动态的属性,操作是对象的动态属性,属性是对象的静态属性。对象是属性和方法的封装体。面向对象是通过对象与对象间彼此的相互合作来推动的,对象间的相互合作需要传递消息。对象可以有继承性,但并不是任何对象都必须有继承性。
59.C解析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。
60.C解析:该题稍微难一点。主要要搞清楚以下几点:①定义了一个指针数组char.p[2]后,程序中第一个循环for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指针数组的p[0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,并使指针数组的p11)元素指向了二维数组ch的第二行字符串,这样,就使指针数组p和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式:ch[i][j]或p[i][j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的内容为字符串'8254'。③程序中第二个循环中的循环体s=e*10+p[i][j]-‘0’;的功能是这样的,每执行一次,将s中的值乘以10(也即,将s中的数值整体向左移动一位,并在空出来的个位上添一个0),再将当前p[i][j]中的字符量转换为相应的数字,然后把这个数字加到s的个位上。④注意到内层循环的循环条件p[i][j]>,0,是指p[i][j]中的字符只要不是字符串结束标志,\\0,就继续循环,语句j+=2;是使下标j每次增加2,也即一个隔一个地从p[i]所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从p[0]所指向的字符串'6937'中一个隔一个地取出字符,分别是‘6’和‘3’,然后从p[1]所指向的字符串'8254'中一个隔一个地取出字符,分别是‘8’和‘5’,同时经过转换和相加运算后,结果s中的值应该是6385,所以,正确答案是C)。
61.A
62.D执行第一个prinff语句时,b=a+b=1,所以输出l,执行第二个printf语句时,a=2*b=2*l=2,所以输出结果为2。
63.C
64.B
65.D冒泡排序、简单插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是nlog2n。故答案为D选项。
66.A\r\n
67.C
68.A数组说明的一般形式为:类型说明符
数组名[常量表达式]。B选项中N是变量,不能用变量定义数组长度。c选项中数组长度是非法的一串数字。定义数组时必须为其指明长度,D选项中数组长度为空,所以非法。
69.C结构体;structs*p=data;使p指向data的首地址,而++p->x,先使p指向下一位即20,然后输出其值。
70.A算术运算符+的优先级高于一=,且一=的结合方向为自右向左,因此表达式x-----X+X可以表示成X----'X一(x+x)=10一(10+lo)=一10,所以选择A)。
71.B
72.A\n循环的作用是求行下标从l到2列下标从0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][o]+a[2][1]+a[2][2]=3+4+5+6+0一18。
\n
73.B\n用带下标的指针变量引用一维数组元素若有以下定义和语句:“int*P,s[10],i;P=s}”,且o≤i<10,可以用&.s[i]、s+i和p+i三种表达式来表示s[i]的地址。同时可以用s[i]、*(s+i)和*(p+i)三种表达式来表示数组元素s[i]。
\n
74.Ac语言中八进制整型常量的开头是数字0,十六进制整型常量的开头是数字c语言中的实型常量有两种表示形式:小数形式,小数形式表示的实型常量必须要有小数点;指数形式,以“e”或“E”后跟一个整数来表示以10为底数的幂数,且规定字母e或E之前必须要有数字,且e或E后面的指数必须为整数。B)选项中028错误,八进制中没有数字8。C)选项中4el.5中e后面的指数不是整数。D)选项中e5小数点后面缺少数字。因此本题答案为A)。
75.A第一次循环i值为3,j值分别为l和2,所以输出为4和5;第二次循环i值为2,j值分别为l和2,所以输出为3和4;第三次循环i值为l,j值分别为l和2,所以输出为2和3,答案选择A)。
76.C本题考查文件的定位,feof函数的用法是从输入流读取数据,如果到达文件末尾(遇文件结束符),eof函数值为非零值,否则为0,所以选项C正确。
77.C\n本题考查了两层for循环。外层循环增量i的值作为内层循环执行次数的值使用。
\n
78.C
79.B
80.A广播/电视是一种单向的、点对多点(面)的以信息传递为主要目的的系统。
81.(1)错误:proc(intm)
正确:doubleproc(intm)
(2)错误:for(i=100,i<=m,i+=100)
正确:for(i=100;i<=m;i+=100)
【解析】由主函数中的函数调用和函数proc()的返回值可知,函数proc()的返回值类型为double型数据。因此,“proc(intm)”应改为“doubleproc(iram)”;根据C语言的语法规则,for循环的3个条件之间为分号间隔,因此,“for(i=100。i<=m,i+=100)”应改为“for(i=100;i<=m;i+=100)”。
82.voidfun(inta[][n],intn){inti,j;for(i=0;i<=""p="">for(j=0;j<=i;j++)/*矩形的下三角时,积相乘*/a[i][j]=a[i][j]*n;}首先从数组中找出要乘以n的元素。这其实就是找出将被挑出的元素在原数组中的分布规律的过程。通过观察得出,要被处理的元素下标的范围是从每行中第1个元素开始,直到列数等于该行行数为止。即数组下三角元素的列下标(j)小于等于(<=)行下标(j)。找到这个规律后,依次从数组中取得符合要求的元素,然后乘以n。2021年河南省信阳市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.
3.设有以下语句,其中不是对a数组元素的正确引用的是:_____(其中0≤i<10)inta[10]={0,1,3,4,5,6,7,8,9,},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
4.有下列程序:程序执行后的输出结果是()。
A.15,12,9,B.15,13,11,C.15,11,7,D.15,15,15,
5.
6.用树形结构表示实体之间联系的模型的是
A.关系模型B.网状模型C.层次模型D.以上三个都是
7.对于哈希函数H(key)=key%13,被称为同义词的关键字是_______
A.35和41B.23和39C.15和44D.25和51
8.执行下列程序中的输出语句后,a的值是()。main{inta;printf(“%d\n”,(a=2*3,a*5,a+7));}A.17B.37C.6D.13
9.以下关于C语言的叙述中正确的是()。
A.C语言的数值常量中夹带空格不影响常量值的正确表示
B.C语言中的变量可以在使用之前的任何位置进行定义
C.在C语言算术表达式的书写中,运算符两侧的运算数据类型必须一致
D.C语言中的注释不可以夹在变量名或关键字的中间
10.下列关于线性链表的叙述中,正确的是()A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C.进行出入与删除时,不需要移动表中的元素
D.以上三种说法都不催
11.有以下程序:main{inti,n=0:for(i=2;i<5;i++){do{if(i%3)continue:n++:}while(!i);n++:}printf("n=%d\n",n);}程序执行后输出结果是()。A.n=5B.n=2C.n=3D.n=4
12.执行下列程序后的输出结果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
13.有两个关系R和T如下:
则由关系R得到关系T的操作是()。A.选择B.投影C.交D.并
14.下列叙述中正确的是()。
A.对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为n/2
C.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为log2n
D.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为nlog2n
15.C语言提供的合法的数据类型关键字是()。
A.DoubleB.shortC.integerD.Char
16.用链表表示线性表的优点是()。
A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序和逻辑顺序相同
17.一个递归算法必须包括()。
A.递归部分B.终止条件和递归部分C.迭代部分D.终止条件和迭代部分
18.设有以下定义uniondata{intd1;floatd2;)demo;则下面叙述中错误的是()。A.变量demo与成员d2所占的内存字节数相同
B.变量demo中各成员的地址相同
C.变量demo和各成员的地址相同
D.若给demo.d1赋99后,demo.d2中的值是99.0
19.图的深度优先遍历类似于二叉树的_______。
A.先序遍历B.中序遍历C.后序遍历D.层次遍历
20.当调用函数时,实参是一个数组名,则向函数传送的是______。
A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值
二、2.填空题(20题)21.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。(注:try_me()函数在a:\myfile.txt中有定义。)
______
main()
{printf("\n");
try_me();
printf("\n");}
22.若有下列定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,则值为3的表达式为:______。
23.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中______的作用是将测试数据传送给被测试的模块,并品示被测试模块所产生的结果。
24.以下程序调用invert函数按逆序重新放置a数组元素的值。a数组中的值在main函数中读入。
#include<stdio.h>
#defineN10
invert(s,i,j)
int*s,i,j;
{intt;
if(i<j)
{t=*(s+i);
*(s+i)=(s+j);
*(s+j)=t;
invert(s,【】,j-1);
}
}
main()
{
inta[N],i;
for(i=0;i<N;i++)scanf("%d",a+【】);
invert(a,0,N-1);
for(i=0,i<N;i++)printf("%d",a[i]);
printf("\n")
}
25.有以下程序:
fun(inta,intb)
{if(a>b)return(a);
elsereturn(b);
}
main()
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
printf("%\d\n",r);
}
程序运行后的输出的结果是【】。
26.下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符1,则输出3,请填空。#include<conio.h>#include<stdio.h>#defineM81intfun(char*ss,charC){inti=0;for(;();ss++)if(*ss==C)i++;returni;}main(){chara[M],ch;printf("\nPleaseenterastring:");gets(A);printf("\nPleaseenterachar:");ch=getchar();printf("\nThenumberofthecharis:%d\n",fun(a,ch));}
27.以下函数的功能是求x的y次方,请填空。
doublefun(doublex,inty)
{inti;
doublez;
for(i=1,z=x;i<y;i++)z=z*【】;
returnz;
}
28.软件测试分为白箱(盒)测试和黑箱(盒)测试。基本路径测试方法属于()测试。
29.若运行时给变量x输入12,则以下程序的运行结果是【】;
main(){
intx,y;
scanf(""%d"",&x);
y=x>12?x+10:x-12;
printf(""%d\n"",y);
}
30.下面程序的运行结果是【】。
#inelude<stdio.h>
intf(inta[],intn)
{if(n>1)returna[0]+f(&a[1],n-1);
elsereturna[0];
}
main()
{intaa[3]={1,2,3},s;
s=f(&aa[0],3);printf("%d\n",s);
}
31.有以下程序片段,请问执行后的输出结果是【】。
intn=10;
while(n>7)
{printf("%d",n--);
}
32.以下主程序运行后的输出结果是【】。
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=ii;i++)
switch(i/10)
{case0:m++;n++;break;
case10:n++;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
33.有以下程序段,且变量已正确定义和赋值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
请填空,使下面程序段的功能与之完全相同
s=1.0;k=1;
while(【】){s=s+1.0/(k*(k+1));【】;}
printf("s=%f\n\n",s);
34.在具有n个单元、顺序存储的循环队列中,队满时,共有【】个元素。
35.一个项目具有一个项目主管,一个项目主管叫‘管理多个项目,则实体“主管”与实体“”的联系属于______。
36.以下程序运行后的输出结果是______。
fun(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inti,a=5;
for(i=0;i<3;i++)printf("%d%d",i,fun(a));
printf("\n");
}
37.下面程序的运行结果是【】。
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
38.以下程序的功能是计算:s=1+12+123+1234+12345。请填空。
main()
{intt=0,s=0,i;
for(i=1;i<=5;i++)
{t=i+______;s=s+t;}
printf("s=%d\n",s);
}
39.常用的黑箱测试有等价分类法、【】、因果图法和错误推测法4种。
40.函数voidfun(float*sn,intn)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请补全程序。
S=1-1/3+1/5-1/7+…+1/(2n+1)
voidfun(float*sn,intn)
{floats=0.0,w,f=-1.0;
inti=0;
for(i=0;i<=n;i++)
{f=【】*f;
w=f/(2*i+1);
s+=w;
}
【】=s;
}
三、1.选择题(20题)41.请选出以下程序的输出结果()。#include<stdio.h>#defineMIN(x,y)(x<y)?x:ymain(){inti,j,k;i=10;j=15;k=10*MIN(i,j);printf("%d\n",k);}
A.15B.100C.10D.150
42.若有以下定义和语句structa{intn,m;};structast[3]={{1,20},{2,19},{3,21}};structa*p=st;则以下错误的引用是
A.(p++)->n;B.st[0].n;C.(*p).n;D.p=&st.m;
43.下列叙述中正确的是A.软件测试的主要目的是发现程序中的错误
B.软件测试的主要目的是确定程序中错误的位置
C.为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作
D.软件测试是证明软件没有错误
44.若有以下结构体定义,则______是正确的引用或定义。structexample{intx;inty;}v1;
A.example.x=10
B.examplev2.x=10
C.structv2;v2.x=10
D.structexamplev2={10};
45.以下程序的输出结果是()。#include<stdio.h>intfan(int);main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d",k);}
A.54321B.012345C.12345D.543210
46.在C语言中,引用数组元素时,其数组下标的数据类型允许是()。
A.整型表达式B.整型常量C.整型常量或整型表达式D.任何类型的表达式
47.已知i、j、k为int型变量,若要从键盘输入2、3、4<CR>,使i、j、k的值分别为2、3、4,下列正确的输入语句是()。
A.scanf("%3d,%3d,%3d",&i,&j,&k);
B.scanf("%d,%d,%d",&i,&j,&k);
C.scanf("%d%d%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
48.若有运算符:>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列次序为()。
A.*=<<>%sizeof
B.<<*=>%sizeof
C.%=><<sizeof%
D.*=><<%sizeof
49.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}rintf("%d\n",m);}程序运行后的输出结果是()。
A.1B.2C.3D.4
50.按照“先进后出”原则组织数据的数据结构是()。
A.队列B.栈C.双向链表D.二叉树
51.设char型变量x中的值为10100111,则表达(2+x)∧(~3)的值是
A.10101001B.10101000C.11111101D.1010101
52.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。
A.sanf("%2d%2d%2d",&i,&j,&k);
B.scanf("%d%d%d",&i,&j,&k);
C.scanf("%d,%d,%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k)
53.下列叙述中正确的是()。
A.算法的执行效率与数据的存储结构无关
B.算法的空间复杂度是指算法程序中指令(或语句)的条数
C.算法的有穷性是指算法必须能在执行有限个步骤之后终止
D.以上3种描述都不对
54.设intx=1,y=1;表达式(!x||--y)的值是()。
A.0B.1C.2D.-1
55.有以下程序#include<string.h>structSTU{inthum;floatTotalScore;};voidf(structSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore-s[1].TotalScore;}main(){structSTUs[2]-{{20041,703},{20042,580}};f(s[0]);printf("%d%3.0f\n",s[0].num,s[0].TotalScore);}程序运行后的输出结果是
A.20045537B.20044550C.20042580D.20041703
56.下列叙述中正确的是()。
A.一个逻辑数据结构只能有一种存储结构
B.数据的逻辑结构属于线性结构,存储结构属于非线性结构
C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
57.以下程序(程序左边的数字为附加的行号)______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}
A.没有错B.第1行有错C.第6行有错D.第7行有错
58.下面对对象概念描述错误的是()。
A.任何对象都必须有继承性B.对象是属性和方法的封装体C.对象间的通信靠消息传递D.操作是对象的动态属性
59.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为______。
A.n-1B.nC.n+1D.2n
60.有如下程序main(){charch[2][5]={"6937","8254"},*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=10*s+p[i][j]-'0';printf("%d\n",s);}该程序的输出结果是
A.69825B.63825C.6385D.693825
四、选择题(20题)61.
62.有以下程序:
程序运行后的输出结果是()。
A.0,0B.1,0C.3,2D.1,2
63.
64.
65.下列排序方法中,最坏情况下比较次数最少的是()。
A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序
66.
67.
68.下列定义数组的语句中,正确的是()。
69.有以下程序
structs
{intx,y;}data[2]={10,100,20,200};
main()
{structs*p=data;
printf("%d\n",++(p->x));
}
程序运行后的输出结果是()
A.10B.11C.20D.21
70.若有定义语句:intx=10;,则表沃式㈣的值为()。A.一10B.-20C.0D.10
71.(65)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()
A.模块间的关系
B.系统结构部件转换成软件的过程描述
C.软件层次结构
D.软件开发过程
72.以下程序的输出结果是()。
main()
{inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)s+=a[i][j];
printf("%d\n",s);
}
A.18
B.19
C.20
D.21
73.设有定义"doublea[10],*s=a;",以下能够代表数组元素a[3]的是()。
A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3
74.以下选项中,合法的一组c语言数值常量是()。
A.12.0Xtl234.5e0
B.028.5e-3-0xf
C.1774el.50abe
D.0x8A10,0003.e5
75.有以下程序
76.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp),的返回值为()。
A.0B.\0C.非0值D.NULL
77.有以下程序:
#include<stdio.h>
main()
{intb[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;
for(i=0;i<3;i++)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年食堂食品安全事件应急演练方案
- 2026年食堂燃气泄漏应急演练方案
- 2026年监理工程师继续教育考试题及答案
- 高校基孔肯雅热防治试题及答案
- 2026年生活餐饮企业激励员工绩效考核奖惩制度
- 2026年律师执业申请书
- 2026年自考03285药用植物学试题及答案
- 2026年关于高温热浪灾害应急预案
- 物业管理小区服务规范制度
- 建筑设计项目审批流程制度
- 诬告陷害警示教育心得体会(16篇)
- 剪映使用详细教程书
- JTT329-2010 公路桥梁预应力钢绞线用锚具、夹具和连接器
- 平高集团、平高电气2024年校园招聘笔试参考题库附带答案详解
- 人工智能的应用领域与案例分析
- 《学会自主选择》课件
- 保密要害部门部位管理制度范文(四篇)
- 全国气象台站经纬度海拔信息
- 液压与气动技术fluidsim36中文版
- 环境水中湿法氧化法测量水中的C
- 社区工作者经典备考题库(必背300题)
评论
0/150
提交评论