![2022年湖北省咸宁市全国计算机等级考试C语言程序设计_第1页](http://file4.renrendoc.com/view/b6e792219c5f4e129e4fd7c6c4079178/b6e792219c5f4e129e4fd7c6c40791781.gif)
![2022年湖北省咸宁市全国计算机等级考试C语言程序设计_第2页](http://file4.renrendoc.com/view/b6e792219c5f4e129e4fd7c6c4079178/b6e792219c5f4e129e4fd7c6c40791782.gif)
![2022年湖北省咸宁市全国计算机等级考试C语言程序设计_第3页](http://file4.renrendoc.com/view/b6e792219c5f4e129e4fd7c6c4079178/b6e792219c5f4e129e4fd7c6c40791783.gif)
![2022年湖北省咸宁市全国计算机等级考试C语言程序设计_第4页](http://file4.renrendoc.com/view/b6e792219c5f4e129e4fd7c6c4079178/b6e792219c5f4e129e4fd7c6c40791784.gif)
![2022年湖北省咸宁市全国计算机等级考试C语言程序设计_第5页](http://file4.renrendoc.com/view/b6e792219c5f4e129e4fd7c6c4079178/b6e792219c5f4e129e4fd7c6c40791785.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年湖北省咸宁市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有以下程序段
#include<stdio.h>
voidfun(char*fname,char*st)
{FILE*myf;
inti;
myf=fopen(fname,"w");
for(i=0;i<strlen(st);i++)fputc(st[i],myf);
fclose(myf);
}
main()
{fun("test.t","newworld");
fun("test.t","hello,");}
程序执行后,文件test.t中的内容是A.A.hello,
B.newworldhello,
C.newworld
D.hello,rld
2.如果某图的邻接矩阵是对角线元素均为零的上三角矩阵,则此图是_______
A.有向完全图B.连通图C.强连通图D.有向无环图
3.有以下程序:#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%d\n”,x,y,z);}程序运行后的输出结果是()。A.2.3.3B.2.3.2C.2.3.1D.2.2.1
4.在关系数据模型中,通常可以把()称为属性,其值称为属性值。
A.记录B.基本表C.模式D.字段
5.下列程序段输出的字符串长度为()。printf("\\aaa\'ccc\bddd\'");
A.11B.12C.13D.17
6.设一组初始记录关键字序列为(Q,H,C,Y,P,A,M,S,R,D,F,X),则按字母升序的第一趟冒泡排序结束后的结果是()
A.F,H,C,D,P,A,M,Q,R,S,Y,X
B.P,A,C,S,Q,D,F,X,R,H,M,Y
C.A,D,C,R,F,Q,M,S,Y,P,H,X
D.H,C,Q,P,A,M,S,R,D,F,X,Y
7.下列描述中正确的是______。A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
8.
9.
10.在位运算中,操作数左移一位,其结果相当于A.A.操作数乘以2
B.操作数除以2
C.操作数除以4
D.操作数乘以4
11.
12.若有说明:inta[][3]={0,0};则不正确的叙述是()。
A.数组a的每个元素的初值都是0
B.数组a的第一维大小为1
C.数组a的行数为1
D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
13.若变量已经定义且正确赋值,则针对程序段“temp=a;a=b;b=temp;”,以下叙述中正确的是()。
A.C语言的顺序结构不允许将多条语句写在一行里
B.程序顺序结构对于此段程序是从左至右依次执行的
C.此程序段的执行顺序是,先执行“b=temp;”,再执行“a=b;”,最后执行“temp=a;”
D.将此段程序的前两个分号改成逗号,后面一个不变,则不能实现a和b值的交换
14.
下列程序的输出结果是()。
#include<stdio.h>
main
{inta=0,i;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=1;
case1;
case2:a+=2;
default:a+=3;
}
}
printf("%d",a);
}
A.19B.1C.6D.8
15.若变量已正确定义,有下列程序段:inta=3,b=5,c=7;if(a>B)a=b;c=a;if(c!=A)c=b;printf("%d,%d,%d\n",a,b,C);其输出结果是()。A.程序段有语法错B.3,5,3C.3,5,5D.3,5,7
16.下面程序的运行结果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
17.设S为一个长度为n的字符串,其中的字符各不相同,则S中的互异的非平凡子串(非空且不同于S本身)的个数为()。
A.2n-1B.n2C.(n2/2)+(n/2)D.(n2/2)+(n/2)-1
18.若d为double型变量,则表达式d=1,d+5,d++的值是()。
A.1B.6.0C.2.0D.1.0
19.以下数据结构中,()是线性结构。
A.有向图B.栈C.线索二叉树D.B树
20.有三个关系R、S和T如下:由关系R和S得到关系T的操作是()。A.自然连接B.交C.除D.并
二、2.填空题(20题)21.下列程序的输出结果是______。
#include<stdio.h>
int(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=1,b=8,c=7,d=9;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
22.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。
23.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
24.下列程序执行输出的结果是______。
#include<stdio.h>
f(intA)
{intb=0;
staticc=7;
a=c++;b++;
return(A);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}
25.问题处理方案的正确而完整的描述称为______。
26.若定义#definePI3.14159,则执行完下列程序后输出结果是______。
#definePI3.14159;printf("PI=%f",PI);
27.下列程序的运行结果为【】。
main()
{inta=5,b=5,y,z;
y=b-->++a?++b:a;
z=++a>b?a:y;
printf("%d,%d,%d,%d",a,b,y,z);
}
28.在关系运算中,查找满足一定条件的元组的运算称之为【】。
29.若有下列定义和语句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
则输出结果为______。
30.以下程序段用以统计链表中元素的个数。其中first指向链表第一个结点,count用来统计结点个数。请填空。
structlink
{chardata;
structlink*next;
}
structlink*p,*first;
|
intcount=0;
p=first;
while(【】)
{
【】;
p=【】;
}
31.数据库系统中实现各种数据管理功能的核心软件称为【】。
32.设顺序输入数列为:24,30,8,5,1,27,24,26,10,21,9,28,7,13,15。假定每个结点的查找概率相同,若用顺序存储方式组织该数列,则查找一个数成功的平均比较次数为【】;若按二叉排序树结构组织该数列,则查找一个数成功的平均比较次数为【】。
33.若有如下结构体说明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。
【】t[20]
34.函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+...+1(n*n)
现在请你在下面的函数中填空,完成求π的功能。
#include"math.h"
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*S));
}
35.下面pi函数的功能是根据以下公式返回满足精度要求的π的值。请根据以下算法要求补足所缺语句。
doublepi(doubleeps)
{doubles=0.0,t=1.0;
intn;
for(【】;t>eps;n++)
{s+=t;
t=n*t/(2*n+1);
}
return(2.0*【】);
}
36.下述程序的输出结果是【】。
#include<stdio.h>
intfun(intx)
{intp;
if(x==0||x==1)
return3;
else
p=x-fun(x-2);
returnp;}
voidmain()
{printf("\n%d",fun(9));}
37.数据流图的类型有【】和事务型。
38.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
2223445666677899101010
删除后,数组中的内容应该是:
2345678910。
请填空。
#include<stdio.h>
#defineN80
intfun(inta[],intn)
{inti,j=1;
for(i=1;i<n;i++)
if(a[j-1]【】a[i])
a[j++]=a[i];
【】;
}
main()
{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
printf("Theoriginaldata:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);
n=fun(a,n);
printf("\nThedataafterdeleted:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");
}
39.下列程序的输出结果是______。
#include<stdio.h>
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++)
printf("%d%d",X--,y);
}
40.表达式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的数据类型为______。
三、1.选择题(20题)41.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为()。
A.log2nB.n/2C.nD.n+1
42.下列叙述中正确的是A.break语句只能用于switch语句
B.在switch语句中必须使用default
C.break语句必须与switch语句中的case配对使用
D.在switch语句中,不一定使用break语句
43.下列程序的输出结果是______。main(){union}inta[2];longk;charc[4];}un,*sp=&un;sp->a[0]=0x39;sp->a[1]=0x38;printf("%1x\n",sp->k);}
A.3938B.3839C.390038D.380039
44.设有以下定义或语句,则输出的结果是(用small模式编译,指针变量占2个字节)()structdate{long*cat;structdate*next;doubledog;}too;printf("%d",sixeof(too));
A.20B.16C.14D.12
45.有下列函数定义:fun(floath){printf("%f,%f\n",h,h*h);}该函数的类型是()。
A.int类型B.float类型C.void类型D.函数无类型说明,定义有错
46.变量a已被定义为整型,下列表达式有错的是
A.a='A'+20B.a-='a'C.a=c+dD.a='c'+'d'
47.线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是()
A.每个元素都有一个直接前件和直接后件
B.线性表中至少要有一个元素
C.表中诸元素的排列顺序必须是由小到大或由大到小
D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件
48.下列不属于软件工程的3个要素的是______。
A.工具B.过程C.方法D.环境
49.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A.63B.64C.6D.7
50.有以下程序
main()
{inti,s=1;
for(i=1;i<50;i++)
if(!(i%5)&&!(i%3))s+=i;
printf("%d\n",s);}
程序的输出结果是
A.409B.277C.1D.91
51.若有说明:int*p,m=5,n;以下正确的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p)
C.scanf("%d",&n);*p=n;
D.p=&n;*p=m;
52.已定义以下函数
fun(int*p)
{return*p;}
该函数的返回值是()
A.不确定的值
B.形参p中存放的值
C.形参p所指存储单元中的值
D.形参p的地址值
53.下列关于栈的描述正确的是()。
A.在栈中只能插入元素而不能删除元素
B.在栈中只能删除元素而不能插入元素
C.栈是特殊的线性表,只能在一端插入或删除元素
D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素
54.阅读下列程序,则执行后的结果为#include"stdio.h"main(){intc[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};printf("%x,%x\n",c[2][2],*(*(c+1)+1));}
A.3e,6B.62,5C.56,5D.3E,6
55.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为______。
A.n-1B.nC.n+1D.2n
56.C语言中最简单的数据类型包括()。
A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型
57.下列程序的输出结果是______。#include<stdio.h>main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf("%d\n",a);}
A.7B.8C.9D.10
58.有以下程序:intfun(intx[],intn){staticihtsum=O,i;for(i=O;i
A.45B.50C.60D.55
59.以下不正确的定义语句是
A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5]={0,1,3,5,7,9};
C.charc1[]={'1','2','3','4','5'};
D.charc2[]={'\x10','\xa','\x8'};
60.在软件开发中,需求分析阶段产生的主要文档是()。
A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划
四、选择题(20题)61.第
34
题
若有如下语句
intx=3;
do{printf("%d\n",x-=2);}
while(!(--x));
则上面程序段
A.输出的是1B.输出的是1和-2C.输出的是3和0D.是死循环
62.
63.
64.
有以下计算公式
若程序前面已在命令中包含math.h文件,不能够正确
计算上述公式的程序段是()。
A.if(x>=0)y=sqrt(x);elsey=sqrt(-x);
B.y=sqrt(x)if(x<0)y=sqrt(0x);
C.if(x>=O)y=sqrt(x);If(x<O)y=sqrt(0x);
D.y=sqrt(x>=0?x:0x);
65.以下关于return语句的叙述中正确的是()。A.一个自定义函数中可以根据不同情况设置多条return语句
B.一个自定义函数中必须有一条return语句
C.定义成void类型的函数中可以有带返回值的retum语句
D.没有return语句的自定义函数在执行结束时不能返回到调用处
66.下面程序的运行结果是()。
main
{
inty=5,x=14;y=((x=3*y,x+6),x-1);
printf("x=%d,y=%d",x,y);
}
A.x=27,y=27
B.x=12,y=13
C.x=15,y=14
D.x=y=27
67.下列程序的运行结果是()。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
68.有以下程序:#include<stdio.h>main(){charc1,c2;c1=’A’+’8’-’4’;c2=’A’+’8’-’5’;printf(“c,%d\n”,c1,c2);}已知字母A的ASCⅡ码为65,程序运行后的输出结果是()。A.E,68B.B,69C.E,DD.输出无定值
69.
70.有以下程序:
#include<stdi0.h>
main()
{inta=1,b=2;
for(;a<8;a++){b+=a;a+=2;)
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是()。
A.9,18
B.8,11
C.7,11
D.10,14
71.有以下程序程序运行后的输出结果是()
A.一20B.一l2C.0D.10
72.
73.
有以下程序
#include<stdi0.h>
main
{FILE*fp;inta[0]一{1,2,3,0,0},i;
fp=fopen("d2.dat,"wb");
fwrite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a.sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printft("%d",a[i]);
}
程序的运行结果是()。
A.1,2,3,0,0,o,0,0,0,0,
B.1,2,3,1,2,3,0,0,0,0,
C.123,0,0,0,0,123,0,0,0,0,
D.1,2,3,0,0,1,2,3,0,0,
74.以下叙述中错误的是()。
A.函数的返回值类型不能是结构体类型,只能是简单类型
B.函数可以返回指向结构体变量的指针
C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员
D.只要类型相同,结构体变量之间可以整体赋值
75.下列选项中,不属于模块间耦合的是()。A.数据耦合B.标记耦合C.异构耦合D.公共耦合
76.设有关系R和S,关系代数表达式为R一(R—S)表示的是()。
A.R∩SB.R—SC.RUSD.R÷S
77.有以下程序段以下关于程序段执行情况的叙述,正确的是()。
A.当产生的随机数n为0时,结束程序运行
B.当产生的随机数n为4时,结束循环操作
C.当产生的随机数n为l和2时,不做任何操作
D.细循环语句固定执行8次
78.在结构化方法中,软件功能分别属于下列软件开发中的(
)阶段。A.详细设计B.需求分析C.总体设计D.编程调试
79.要求通过while循环不断读人字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是
()。
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:计算str所指字符串中含有t所指字符串的数目,并作为函数值返回。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.请编写函数proc(),该函数的功能是:实现B=A+A',即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main()函数中输出。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
参考答案
1.D本题主要考查文件的操作。在本题的程序中,首先定义了一个无返回值的函数fun,该函数带有两个指针类型的形参,其中第一个形参指向需要被操作文件的文件名,而第二个形参指向被操作的字符串。在函数体中,首先定义一个文件指针,然后以只写的方式打开第一个形参所指向的文件,接着执行for循环,循环结束的条件是循环变量小于被操作字符串的长度,循环体中的程序fputc(st[i],myf);的功能是将字符串中的当前字符输入到文件中。由这些分析我们可以知道,函数fun的作用是将字符串的内容写入到文件中。
在主函数中,两次调用函数fun,当第一次调用时,写入文件的内容为newworld,然后第二次调用函数,此时打开文件,文件的指针重新回到开始,然后往文件中写内容“hello,”,由于此时文件中已经有内容“newworld”,则需要覆盖前面一部分的内容,因此,程序的最终输出结果是hello,rld,本题的正确答案选D。
2.D
3.C整型变量x、y的初值都为1,“x++,y++,++y”是一个逗号表达式,程序执行“z=x++,y++,++y”之后,x的值为2,y的值为3,z取逗号表达式中的第二个表达式的值,为1。因此本题的答案为选项C。
4.D解析:数据库表中字段转化为属性,把记录的类型转化为关系模式。
5.C解析:转义字符有1个\\\\、2个\\'、1个\\b,普通字符有3个a、3个c、3个d,共13个字符。
6.D
7.C\r\n软件工程是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。软件工程的主要思想是强调在软件开发工程中需要应用工程化的原则。软件工程用来解决以下问题:软件需求的增长得不到满足、软件开发成本和进度无法控制、软件质量难以保证、软件不可维护或维护程度低、软件得成本不断提高、软件开发生产率的提高赶不上硬件的发展和应用需求的增长。软件项目的管理、软件产品的生产率、软件开发中的技术都是软件工程需要解决的部分问题。因此选项C正确。
8.A
9.B
10.A左移运算符“<<”是双目运算符,其功能是把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。例如,a<<4是把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。
11.B
12.D解析:本题考查给二维数组元素赋值。给二维数组元素赋值时应注意下列两点:①在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0。②二维数组第一维的大小由下列规则确定;当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小;当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小等于所得商数加1。
13.BC语言允许将多条语句写在一行,选项A错误;题干中的语句是从左至右依次执行的,选项B正确,选项C错误。题干中的程序前两个分号改成逗号,就构成了逗号表达式。逗号表达式会依次从左到右计算各个表达式,整个表达式的值是最后一个表达式的值,所以此例也可以实现a和b值的交换,选项D错误。故本题答案为B选项。
14.A
\n本题考查switch语句。当i一1时,执行case1,因为没有遇到break语句,所以依次往下运行,“a=a+2=2,a=a+3=5”;当i=2时,执行case2,因为没有遇到break语句,所以依次往下执行,“a=a+2=7,a=a+3=10”;当i=3时,执行case3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a—a+2—13,a—a+3一l6:当i=4时,执行default,a=a+3=19,结束循环。
15.B解析:本题考查的是程序结构设计中if语句的应用,当if判断条件成立时就执行其后的相关语句,否则不执行,本题中第一个if条件不成立,故不执行“a=b”,接着执行“c=a”,此时第二个if条件也不成立,故不执行其后语句,最终c的值为3。
16.B解析:考查用指针引用字符串元素的方法。指针a通过数组元素下标来从头逐个地引用字符串item中的字符,判断不是0~9之间的数字时,就去掉这个字符,所以程序结束后,字符串item中就只剩下和两个字符了。
17.D
18.D
19.B
20.C由图所知,其中,C中只有一个属性,是除操作。
21.7979解析:因为在调用子函数时进行的是数值传递,调用于函数并不能改变实参的值,所以经过调用子函数,c、d的值并没有发生变化还是原来的值。
22.概念(或概念级)概念(或概念级)
23.调试调试
24.88解析:第1次for循环,i=0,调用函数f(2),然后将a的值加1,在f()函数中,变量c为static类型,所以c=8:第2次for循环,i=1,调用函数f(3),然后将a的值加1,调用函数f(3)时,a=c++=8,所以k=8。
25.算法或程序或流程图算法或程序或流程图解析:算法是问题处理方案正确而完整的描述。
26.PI=3.14159PI=3.14159解析:本题先定义了一个宏名PI,以后在程序中出现PI都用3.14159替代,但是C语言规定:双引号中的宏名是不进行替换的。
27.7467
28.选择选择解析:在关系数据库中,选择运算也是一个元运算,关系R通过选择运算(并由该运算给出所选择的逻辑条件)后仍为一个关系。这个关系是由R中的那些满足逻辑条件的元组所组成。
29.44解析:strcpy(s1,s2)函数的作用是将字符串s2中的内容拷贝到字符串s1中的内容覆盖。strlen()函数是求字符串的长度。本题实际上是要求s2字符串的长度,即是4。
30.p!=NULLcount++(*p).next
31.数据库管理系统数据库管理系统(DBMS)
32.857/15
33.strudctSTRUstrudctSTRU解析:结构件类型是构造数据类型,是用户自己定义的一种类型。
结构体类型的定义:
struct结构体类型名
{
成员项表;
};
定义结构体变量的的形式为:
struct结构体类型名变量1,变量2,...?
其中变量包括;一般变量、指针变量、数组变量等。
34.0/(i*i)或(double)1/(i*i)0/(i*i)或(double)1/(i*i)解析:表达式1+1/(2*2)+1/(3*3)+...+1(n*n)可写为1/(1*1)+1/(2*2)+1/(3*3)+...+1(n*n)
n
即:∑1÷(i×i)
i=1
对应的C语言的表达式s=s+1.0/(i*i)。注:必须要写成1.0的形式,否则1/(i,i)返回值为其值截尾取整,即恒为0。
35.n=1s
36.77解析:本题考查的是函数的递归调用。x=0或x=1是递归的终止条件,然后用回代的方法从一个已知值推出下一个值,直到计算出最终结果。
37.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。
38.!=returnj!=,returnj解析:本题程序的流程是:让i,j都从1开始,其中j用于控制删除后剩下的数中的下标,i用于搜索原数组中的元素。j始终是新数组已有元素中最后一个元素的下一个元素的下标,所以if()中的条件是a[j-1]!=a[i],其中a[j-1]就是新数组中的最后一个元素,若条件成立则表示出现了不同的值,所以a[i]要留到新数组中。注本题中i、j的初值都要从1开始,该算法只能用于数组已排序的题目中。
39.101091101091解析:for(表达式1;表达式2;表达式3)语句的功能是:首先计算表达式1的值,然后检测表达式2的值,若其值为真,则执行循环体语句,执行完毕后,再计算表达式3的值。然后再检测表达式2的值是否为真,若为真,继续执行循环体语句,若为假,则退出循环;第1次循环x>8成立,输出x=10,y=10后,x的值减1,i=1,执行y=++i操作,y的值变为1;判断条件还成立,输出x=9,y=1,然后x的值减1,循环条件不成立,则退出循环。
40.整型整型解析:上面的表达式中,通过强制类型转换把最后参与运算的数据都转换成了int型,所以最后得到的结果也是int类型。
41.C本题考查的是顺序查找。在进行顺序查找过程中,如果线性表中的第一个元素就是被查找元素,则只需做一次比较就查找成功,查找效率最高;但如果被查找的元素是线性表中的最后一个元素,或者被查找的元素根本就不在线性表中,则为了查找这个元素需要与线性表中所有的元素进行比较,这是顺序查找的最坏情况。所以对长度为n的线性表进行顺序查找,在最坏情况下需要比较n次。故本题答案为C。
42.D解析:break语句除了能用于switch语句外,还可以用于循环语句中,因此选项A不正确。在switch语句中,可以使用default来执行所有case均失配时的分支,也可以不使用default,此时若所有case均失配则跳出switch,因此选项B不正确。在switch语句中,每个case的作用就是标出一个执行的起点,当符合某个case时,程序就从该case所标出的起点处开始执行,若没有break语句中断执行的话,程序会一直执行到switch的最后一条语句,而不是碰到下一个case就跳出switch。虽然break与case的配对使用会让所有case分支互不重叠条理明确,但不配对使用在C语言中也是允许的。因此选项C不正确,应该选择D。
43.D解析:结构体变量un的存储情况如图18-3所示,第一列表示地址,第二列为每个字节的值,可用两位的十六进制数表示,当把这4个字节的内容作为long型数据时,高地址字节的值表示高位,低地址字节的值表示低位。
44.D
45.A解析:本题考查默认函数的函数值的类型。在函数定义时,由于函数没有说明其类型,系统默认一律自动按整型处理,因此,函数的类型为int类型。
46.C
47.D解析:线性表可以为空表,排除选项B。第一个元素没有直接前件,最后一个元素没有直接后件,故排除选项A。线性表的定义中,元素的排列没有规定大小顺序,故选项C也有误,只有D项是正确的。
48.D解析:本题考查了软件工程的基本概念。软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制和管理。
49.B解析:在长度为64的有序线性表中,其中的64个数据元素是按照从大到小或从小到大的顺序排列有序的。在这样的线性表中进行顺序查找,最坏的情况就是查找的数据元素不性表中或位于线性表的最后。按照线性表的顺序查找算法,首先用被查找的数据和线性表的第一个数据元素进行比较,若相等,则查找成功,否则,继续进行比较,即和线性表的第二个数据元素进行比较。同样,若相等,则查找成功,否则,继续进行比较。依次类推,直到性表中查找到该数据或查找到线性表的最后一个元素,算法才结束。因此,在长度为64的有序线性表十进行顺序查找,最坏的情况下需要比较64次。因此,本题的正确答案为选项B。
50.D解析:本题是计算50之内的自然数相加之和,题中if语句括号中的条件表达式!(i%5)&&!(i%3)表明只有能同时被5和3整除的数才符合相加的条件,1~49之间满足这个条件的只有,15、30和45,因为s的初始值为1,所以s=1+15+30+45=91。
51.D解析:“&”是求址运算符,“*”是指变量说明符。选项A)、B)应改为scanf('%d',p);选项C)中指针变量p未指向一确定的内存单元,不能为其赋值,并且这样做很危险,建议不使用。
52.C解析:本题考核的知识点是函数的返回值.函数的返回值应该为return后面的表达式的值,在本题中的表达式为*p,*p指的是形参p所指存储单元中的值,所以,4个选项中选项C符合题意。
53.C解析:根据数据结构对栈的定义及其特点可知:栈是限定只在表尾进行插入或删除操作的线性表,因此栈是先进后出的线性表,对栈的插入与删除操作,不需要改变栈底元素。栈是限定只在表尾进行插入或删除操作的线性表。
54.A解析:数组a[5][5],0<=i<5,0<=j<5,则可以用5种表达式来引用,a[i][j],*a(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+5*i+j)。数组的下限为0,%后面为小写的x,所以输出的结果为小写字母表示的十六进制。
55.C解析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。
56.B
57.B
58.C解析:本题中fun()函数通过一个for循环来累计形参数组x的前n个元素之和。在主函数中,第1次调用fun(a,5)时,返回的值应该是数组a的前5个元素的和,而第2次调用fun(b,4)时,返回的值除了本次累计的数组b前4个元素的和外,还要加上上次累计的值。所以,最后输的s的值为数组a所有元素之和的两倍加上数组b所有元素之和,结果是60。故应该选择C。
59.B解析:在一维数组中要注意的是作为下标表达式的常量表达式的值必须是大于等于0,选项B)中定义有5个元素,但赋值时有6个元素,所以是错误的。
60.BA项错误,可行性分析阶段产生可行性分析报告。C项错误,概要设计说明书是总体设计阶段产生的文档。D项错误,集成测试计划是在概要设计阶段编写的文档。B项正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
61.Bdo-while语句的一般格式为:do循环体语句while(表达式);先执行循环体语句一次,再判断表达式的值,若为真,则继续执行循环,否则终止循环。本题中,先执行printf('%d\n',x=-2)后,值为x=x-2,即为1。判断表达式的值,!(--x)为真,x=0,继续循环。再次执行循环体语句后,x=-2,此时表达式!(--x)的值为0,结束循环。
62.C
63.B
64.B
\n选项A、C、D分别用一个ifelse语句、两个if语句和条件表达式表达了计算公式的含义。
\n
65.A一个函数可以有多个return语句,所以选择A)。
66.C本题考查的是逗号表达式。逗号表达式的求解步骤是先求解表达式1,然后依次求解表达式2,直到表达式N的值。整个逗号表达式的值就是最后一个表达式N的值。表达式(x=3*y,x+6)中,x=15。表达式y=x—1=14。
67.D本题考查"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。
68.A本题目中字符变量cl是字符‘A’的ASCIl码加上4,即69所对应的字符‘E’。字符变量c2是字符‘A’的ASCIl码加上3,即68所对应的字符‘D’。但是打印输出时,cl以%C的格式输出,所以是E,c2以%d的格式输出,所以是68。
69.D
70.D\n第一次执行循环前,a=1,满足a<8,执行循环后,b=3,a=3。执行完a++操作后,a=4。由于a<8,执行第二次循环后,b=7,a=6,执行完a++操作后,a=7。由于a<8,执行第三次循环后,b=14,a=9,执行完a++操作后a=10。此时不满足a<8,跳出循环。
\n
71.AsuB(a+b)*c展开后,(2+3)一(2+3)*5值为一20,所以答案选择A)。
72.D
73.D
\n本题程序首先用函数fopen以“wb”的方式开打文件“d2.dat”,然后调用两次fwrite函数将数组a的5个元素,依次输出到文件fp中,共10个字节,关闭文件。再次打开文件,使用文件指针指向文件的开头,调用head函数从文件印中读取这10个字节的数据到数组a中。型数组bb中,因此,【2】处填“str[i]-0”;由函数proc可知,变量n中存放整型数组bb中的元素个数,最后要返回到主函数当中,因此,【3】处填“n”。\n
74.A函数返回值类型可以是简单类型和结构体类型。
75.C解析:模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。注意:评价模块独立性的主要标准,以及对它们的定义和分类。
76.AR—s表示属于R但不属于s,R—(R—S)表示属于R但不属于(R—s),即相当于Rns。
77.Acase常量表达式只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的case语句,就从该case子句执行下去,不再进行判断,直到碰到bleak或函数结束为止。简单地说,break是结束整个循环体,而continue是结束单次循环。B)选项中当产生的随机数n为4时要执行打印操作。C)选项中当产生的随机数为1和2时分别执行case3与case4后面语句的内容。由于存在break语句,因此for循环不是固定执行8次,执行次数与产生的随机数n有关系。故本题答案为A)。
78.C总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件结构。为确定软件结构,首先需要从实现角度把复杂的功能进~步分解。分析员结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。
79.A本题考查的知识点是:9etCharl函数和逻辑表达式的判定。题目要求“当读人字母N时结束循环”,所WE)、D)选项不对;选项B)中,作为条件的表达式的值恒成立,不符合题目要求,故本题选A)。
80.B
81.(1)错误:r=P;
正确:r=t;
(2)错误:if(*r==0)
正确:if(*r==ˊ\0ˊ)
【解析】由于后面的语句控制变量r是指向字符串t的指针,而不是指向字符串str的指针,因此,“r=p;”应改为“r=t;”。while循环结束后,如果r指向字符串t的结束符,证
明字符串str中包含一个t字符串,因此,“if(*r=0)”应改为“if(*r==ˊ\0ˊ)”。
82.
【解析】矩阵与其逆置矩阵的关系为:逆置矩阵中某一位置上的元素值为原矩阵中,行下标与列下标互换后的位置上的元素。根据这个特点求出各个位置上逆置矩阵中对应的值,进行相加并放在该位置上。
2022年湖北省咸宁市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有以下程序段
#include<stdio.h>
voidfun(char*fname,char*st)
{FILE*myf;
inti;
myf=fopen(fname,"w");
for(i=0;i<strlen(st);i++)fputc(st[i],myf);
fclose(myf);
}
main()
{fun("test.t","newworld");
fun("test.t","hello,");}
程序执行后,文件test.t中的内容是A.A.hello,
B.newworldhello,
C.newworld
D.hello,rld
2.如果某图的邻接矩阵是对角线元素均为零的上三角矩阵,则此图是_______
A.有向完全图B.连通图C.强连通图D.有向无环图
3.有以下程序:#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%d\n”,x,y,z);}程序运行后的输出结果是()。A.2.3.3B.2.3.2C.2.3.1D.2.2.1
4.在关系数据模型中,通常可以把()称为属性,其值称为属性值。
A.记录B.基本表C.模式D.字段
5.下列程序段输出的字符串长度为()。printf("\\aaa\'ccc\bddd\'");
A.11B.12C.13D.17
6.设一组初始记录关键字序列为(Q,H,C,Y,P,A,M,S,R,D,F,X),则按字母升序的第一趟冒泡排序结束后的结果是()
A.F,H,C,D,P,A,M,Q,R,S,Y,X
B.P,A,C,S,Q,D,F,X,R,H,M,Y
C.A,D,C,R,F,Q,M,S,Y,P,H,X
D.H,C,Q,P,A,M,S,R,D,F,X,Y
7.下列描述中正确的是______。A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
8.
9.
10.在位运算中,操作数左移一位,其结果相当于A.A.操作数乘以2
B.操作数除以2
C.操作数除以4
D.操作数乘以4
11.
12.若有说明:inta[][3]={0,0};则不正确的叙述是()。
A.数组a的每个元素的初值都是0
B.数组a的第一维大小为1
C.数组a的行数为1
D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
13.若变量已经定义且正确赋值,则针对程序段“temp=a;a=b;b=temp;”,以下叙述中正确的是()。
A.C语言的顺序结构不允许将多条语句写在一行里
B.程序顺序结构对于此段程序是从左至右依次执行的
C.此程序段的执行顺序是,先执行“b=temp;”,再执行“a=b;”,最后执行“temp=a;”
D.将此段程序的前两个分号改成逗号,后面一个不变,则不能实现a和b值的交换
14.
下列程序的输出结果是()。
#include<stdio.h>
main
{inta=0,i;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=1;
case1;
case2:a+=2;
default:a+=3;
}
}
printf("%d",a);
}
A.19B.1C.6D.8
15.若变量已正确定义,有下列程序段:inta=3,b=5,c=7;if(a>B)a=b;c=a;if(c!=A)c=b;printf("%d,%d,%d\n",a,b,C);其输出结果是()。A.程序段有语法错B.3,5,3C.3,5,5D.3,5,7
16.下面程序的运行结果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
17.设S为一个长度为n的字符串,其中的字符各不相同,则S中的互异的非平凡子串(非空且不同于S本身)的个数为()。
A.2n-1B.n2C.(n2/2)+(n/2)D.(n2/2)+(n/2)-1
18.若d为double型变量,则表达式d=1,d+5,d++的值是()。
A.1B.6.0C.2.0D.1.0
19.以下数据结构中,()是线性结构。
A.有向图B.栈C.线索二叉树D.B树
20.有三个关系R、S和T如下:由关系R和S得到关系T的操作是()。A.自然连接B.交C.除D.并
二、2.填空题(20题)21.下列程序的输出结果是______。
#include<stdio.h>
int(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=1,b=8,c=7,d=9;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
22.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。
23.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
24.下列程序执行输出的结果是______。
#include<stdio.h>
f(intA)
{intb=0;
staticc=7;
a=c++;b++;
return(A);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}
25.问题处理方案的正确而完整的描述称为______。
26.若定义#definePI3.14159,则执行完下列程序后输出结果是______。
#definePI3.14159;printf("PI=%f",PI);
27.下列程序的运行结果为【】。
main()
{inta=5,b=5,y,z;
y=b-->++a?++b:a;
z=++a>b?a:y;
printf("%d,%d,%d,%d",a,b,y,z);
}
28.在关系运算中,查找满足一定条件的元组的运算称之为【】。
29.若有下列定义和语句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
则输出结果为______。
30.以下程序段用以统计链表中元素的个数。其中first指向链表第一个结点,count用来统计结点个数。请填空。
structlink
{chardata;
structlink*next;
}
structlink*p,*first;
|
intcount=0;
p=first;
while(【】)
{
【】;
p=【】;
}
31.数据库系统中实现各种数据管理功能的核心软件称为【】。
32.设顺序输入数列为:24,30,8,5,1,27,24,26,10,21,9,28,7,13,15。假定每个结点的查找概率相同,若用顺序存储方式组织该数列,则查找一个数成功的平均比较次数为【】;若按二叉排序树结构组织该数列,则查找一个数成功的平均比较次数为【】。
33.若有如下结构体说明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。
【】t[20]
34.函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+...+1(n*n)
现在请你在下面的函数中填空,完成求π的功能。
#include"math.h"
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*S));
}
35.下面pi函数的功能是根据以下公式返回满足精度要求的π的值。请根据以下算法要求补足所缺语句。
doublepi(doubleeps)
{doubles=0.0,t=1.0;
intn;
for(【】;t>eps;n++)
{s+=t;
t=n*t/(2*n+1);
}
return(2.0*【】);
}
36.下述程序的输出结果是【】。
#include<stdio.h>
intfun(intx)
{intp;
if(x==0||x==1)
return3;
else
p=x-fun(x-2);
returnp;}
voidmain()
{printf("\n%d",fun(9));}
37.数据流图的类型有【】和事务型。
38.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
2223445666677899101010
删除后,数组中的内容应该是:
2345678910。
请填空。
#include<stdio.h>
#defineN80
intfun(inta[],intn)
{inti,j=1;
for(i=1;i<n;i++)
if(a[j-1]【】a[i])
a[j++]=a[i];
【】;
}
main()
{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
printf("Theoriginaldata:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);
n=fun(a,n);
printf("\nThedataafterdeleted:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");
}
39.下列程序的输出结果是______。
#include<stdio.h>
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++)
printf("%d%d",X--,y);
}
40.表达式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的数据类型为______。
三、1.选择题(20题)41.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为()。
A.log2nB.n/2C.nD.n+1
42.下列叙述中正确的是A.break语句只能用于switch语句
B.在switch语句中必须使用default
C.break语句必须与switch语句中的case配对使用
D.在switch语句中,不一定使用break语句
43.下列程序的输出结果是______。main(){union}inta[2];longk;charc[4];}un,*sp=&un;sp->a[0]=0x39;sp->a[1]=0x38;printf("%1x\n",sp->k);}
A.3938B.3839C.390038D.380039
44.设有以下定义或语句,则输出的结果是(用small模式编译,指针变量占2个字节)()structdate{long*cat;structdate*next;doubledog;}too;printf("%d",sixeof(too));
A.20B.16C.14D.12
45.有下列函数定义:fun(floath){printf("%f,%f\n",h,h*h);}该函数的类型是()。
A.int类型B.float类型C.void类型D.函数无类型说明,定义有错
46.变量a已被定义为整型,下列表达式有错的是
A.a='A'+20B.a-='a'C.a=c+dD.a='c'+'d'
47.线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是()
A.每个元素都有一个直接前件和直接后件
B.线性表中至少要有一个元素
C.表中诸元素的排列顺序必须是由小到大或由大到小
D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件
48.下列不属于软件工程的3个要素的是______。
A.工具B.过程C.方法D.环境
49.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A.63B.64C.6D.7
50.有以下程序
main()
{inti,s=1;
for(i=1;i<50;i++)
if(!(i%5)&&!(i%3))s+=i;
printf("%d\n",s);}
程序的输出结果是
A.409B.277C.1D.91
51.若有说明:int*p,m=5,n;以下正确的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p)
C.scanf("%d",&n);*p=n;
D.p=&n;*p=m;
52.已定义以下函数
fun(int*p)
{return*p;}
该函数的返回值是()
A.不确定的值
B.形参p中存放的值
C.形参p所指存储单元中的值
D.形参p的地址值
53.下列关于栈的描述正确的是()。
A.在栈中只能插入元素而不能删除元素
B.在栈中只能删除元素而不能插入元素
C.栈是特殊的线性表,只能在一端插入或删除元素
D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素
54.阅读下列程序,则执行后的结果为#include"stdio.h"main(){intc[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};printf("%x,%x\n",c[2][2],*(*(c+1)+1));}
A.3e,6B.62,5C.56,5D.3E,6
55.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为______。
A.n-1B.nC.n+1D.2n
56.C语言中最简单的数据类型包括()。
A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型
57.下列程序的输出结果是______。#include<stdio.h>main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf("%d\n",a);}
A.7B.8C.9D.10
58.有以下程序:intfun(intx[],intn){staticihtsum=O,i;for(i=O;i
A.45B.50C.60D.55
59.以下不正确的定义语句是
A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5]={0,1,3,5,7,9};
C.charc1[]={'1','2','3','4','5'};
D.charc2[]={'\x10','\xa','\x8'};
60.在软件开发中,需求分析阶段产生的主要文档是()。
A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划
四、选择题(20题)61.第
34
题
若有如下语句
intx=3;
do{printf("%d\n",x-=2);}
while(!(--x));
则上面程序段
A.输出的是1B.输出的是1和-2C.输出的是3和0D.是死循环
62.
63.
64.
有以下计算公式
若程序前面已在命令中包含math.h文件,不能够正确
计算上述公式的程序段是()。
A.if(x>=0)y=sqrt(x);elsey=sqrt(-x);
B.y=sqrt(x)if(x<0)y=sqrt(0x);
C.if(x>=O)y=sqrt(x);If(x<O)y=sqrt(0x);
D.y=sqrt(x>=0?x:0x);
65.以下关于return语句的叙述中正确的是()。A.一个自定义函数中可以根据不同情况设置多条return语句
B.一个自定义函数中必须有一条return语句
C.定义成void类型的函数中可以有带返回值的retum语句
D.没有return语句的自定义函数在执行结束时不能返回到调用处
66.下面程序的运行结果是()。
main
{
inty=5,x=14;y=((x=3*y,x+6),x-1);
printf("x=%d,y=%d",x,y);
}
A.x=27,y=27
B.x=12,y=13
C.x=15,y=14
D.x=y=27
67.下列程序的运行结果是()。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
68.有以下程序:#include<stdio.h>main(){charc1,c2;c1=’A’+’8’-’4’;c2=’A’+’8’-’5’;printf(“c,%d\n”,c1,c2);}已知字母A的ASCⅡ码为65,程序运行后的输出结果是()。A.E,68B.B,69C.E,DD.输出无定值
69.
70.有以下程序:
#include<stdi0.h>
main()
{inta=1,b=2;
for(;a<8;a++){b+=a;a+=2;)
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是()。
A.9,18
B.8,11
C.7,11
D.10,14
71.有以下程序程序运行后的输出结果是()
A.一20B.一l2C.0D.10
72.
73.
有以下程序
#include<stdi0.h>
main
{FILE*fp;inta[0]一{1,2,3,0,0},i;
fp=fopen("d2.dat,"wb");
fwrite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a.sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printft("%d",a[i]);
}
程序的运行结果是()。
A.1,2,3,0,0,o,0,0,0,0,
B.1,2,3,1,2,3,0,0,0,0,
C.123,0,0,0,0,123,0,0,0,0,
D.1,2,3,0,0,1,2,3,0,0,
74.以下叙述中错误的是()。
A.函数的返回值类型不能是结构体类型,只能是简单类型
B.函数可以返回指向结构体变量的指针
C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员
D.只要类型相同,结构体变量之间可以整体赋值
75.下列选项中,不属于模块间耦合的是()。A.数据耦合B.标记耦合C.异构耦合D.公共耦合
76.设有关系R和S,关系代数表达式为R一(R—S)表示的是()。
A.R∩SB.R—SC.RUSD.R÷S
77.有以下程序段以下关于程序段执行情况的叙述,正确的是()。
A.当产生的随机数n为0时,结束程序运行
B.当产生的随机数n为4时,结束循环操作
C.当产生的随机数n为l和2时,不做任何操作
D.细循环语句固定执行8次
78.在结构化方法中,软件功能分别属于下列软件开发中的(
)阶段。A.详细设计B.需求分析C.总体设计D.编程调试
79.要求通过while循环不断读人字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是
()。
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:计算str所指字符串中含有t所指字符串的数目,并作为函数值返回。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.请编写函数proc(),该函数的功能是:实现B=A+A',即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main()函数中输出。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
参考答案
1.D本题主要考查文件的操作。在本题的程序中,首先定义了一个无返回值的函数fun,该函数带有两个指针类型的形参,其中第一个形参指向需要被操作文件的文件名,而第二个形参指向被操作的字符串。在函数体中,首先定义一个文件指针,然后以只写的方式打开第一个形参所指向的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 木工支模内排架工程劳务分包合同-4
- 二零二五年度办事处影视作品推广合同
- 二零二五年度办事处设计、施工、品牌授权合同
- 装修合同清单模板(茶楼)
- 二零二五年度宝宝日间托管与营养膳食合同
- 建筑工程施工合同终止协议年
- 数据分析与决策实战指南
- 信息科技安全保障体系构建
- 企业融资流程详解和步骤说明
- 酒店行业智能化客房智能控制系统方案
- 2024年安徽省高校分类考试对口招生语文试卷真题(含答案)
- 2024年安徽省省情知识竞赛题库及答案
- 2025年伊春职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025版林木砍伐与生态修复工程承包合同2篇
- 2025-2030年中国硫酸钾行业深度调研及投资战略研究报告
- 课题申报参考:社会网络视角下村改居社区公共空间优化与“土客关系”重构研究
- 《山东胶州秧歌》课件
- 乡镇卫生院2025年工作计划
- 《仓库安全管理培训》课件
- 2024年山东省泰安市初中学业水平生物试题含答案
- 定密培训课件
评论
0/150
提交评论