




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年浙江省金华市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.以下叙述中正确的是()。
A.C语言函数可以嵌套调用,例如:fim(fun(X))
B.C语言程序是由过程和函数组成的
C.C语言函数不可以单独编译
D.C语言中除了main函数外,其他函数不可作为单独文件形式存在
3.若有如下形式的函数:intfun(inta[],int*p,intn){…}调用函数之前需要对函数进行声明,则以下选项中错误的是()。
A.intfun(int,int,int);
B.intfun(inta[],int*p,intn);
C.intfun(inta[],int*,int);
D.intfun(int[],int*,int);
4.采用邻接表存储的图的深度优先遍历算法类似于二叉树的()。
A.先序遍历B.中序遍历C.后序遍历D.按层遍历
5.若串S=,software,其子串的数目是()。
A.8B.37C.36D.9
6.合法的常量是()。A.‘program’B.–e8C.03xD.0xfl
7.
有以下结构体说明和变量的定义,且指针P指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是()。
structnode
{chardata;
structnode*next:
}a,b,*p=&a,*q=&b;
A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;
8.为了提高软件的独立性,模块之间最好是()。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合
9.有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf(“%d”,y[i]);printf(“\n”);}程序的运行结果是()。
A.-3,-1,1,3,B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,
10.若有定义“inta=1234,b=-5678;”,用语句“printf("%+-6d%+-6d",a,b);”输出,以下正确的输出结果是()。
A.+1234-5678(中间有一个空格,最后有一个空格)
B.+1234-5678(最前面有一个空格,中间有一个空格)
C.+-1234+-5678(最前面和最后均无空格)
D.1234-5678(中间有两个空格,最后有一个空格)
11.以下关于顺序存储结构的叙述中,()是不正确的。
A.存储密度大
B.逻辑上相邻的结点物理上不必邻接
C.可以通过计算机直接确定第i个结点的存储地址
D.插入、删除运算操作不方便
12.已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()
A.ABCDEB.ECABDC.EACDBD.CDEAB
13.以下叙述中正确的是()。
A.a是实型变量,C允许进行赋值a=10,但不可以这样说:实型变量中允许存放整型值
B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式
C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0
D.已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3
14.
15.有以下程序程序运行后的输出结果是()。
A.21B.11C.20D.10
16.下列定义数组的语句中,正确的是()。A.#defineN10?intx[N];
B.intN=10;int[N];
C.intx0..10];
D.Intx[];.
17.有以下程序:#include<stdio.h>int*f(int*s){s[1]+=6;*s=7;s+=2;returns;}main(){inta[5]={1,2,3,4,5},*p=a;P=f(P);printf(“%d,%d,%d\n”,a[0],a[1],*p);}程序运行后的输出结果是()。
A.9,8,9B.7,8,7C.7,8,3D.1,2,1
18.以下说法错误的是:()
A.全局变量就是在函数外定义的变量,因此又叫做外部变量
B.一个函数中既可以使用本函数中的局部变量,也可以使用全局变量
C.局部变量的定义和全局变量的定义的含义不同
D.如果在同一个源文件中,全局变量和局部变量同名,则在局部变量的作用范围内,全局变量通常不起作用
19.
20.对矩阵进行压缩存储是为了()。
A.方便运算B.方便存储C.提高运算速度D.减少存储空间
二、2.填空题(20题)21.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(【】);
}
22.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。
23.在对文件进行操作的过程中,若要求文件的位置指针重新指向文件的开头,应当调用的函数是【】函数。
24.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
intmystden(char*str)
{inti;
fo,(i=0;【】!='\0';i++);
return(i);
25.以下程序运行后的输出结果是______。
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
26.在数据库理论中,数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型、改变数据间联系等,不需要修改相应的应用程序,称为【】。
27.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【】。
for(i=0,j=10;i<=j;i++,j--)k=i+j;
28.软件工程研究的内容主要包括:【】技术和软件工程管理。
29.以下程序运行后的输出结果是【】。
main()
{chars[]="9876",*p;
for(p=s;p<s+2;p++)printf("%s\n",p);
}
30.以下程序的输出结果是【】。
#include<stdlib.h>
main()
{char*s1,*s2,m;
s1=s2=(char*)malloc(sizeof(char));
*s1=15;*s2=20;m=*s1+*s2;
printf("%d\n",m);
}
31.选择程序中的输入输出语句,以满足题目给定的输入输出数据形式。
main()
{inta;floatb;
【】
【】}
输入形式:3.52<空格>6<回车>
输出形式:a*b=21.12
32.有以下定义和语句,则sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdate
{intday;
intmouth;
intyear;
union{intshare1;
floatshare2;
}share;
}a;
33.数据库系统中实现各种数据管理功能的核心软件称为【】。
34.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度。请填空。
FILE*myf;longf1;
myf=【】("test,t","rb");
fseek(myf,0,SEEK_END);f1=ftell(myf);
fclose(myf);
printf("%1d\n",f1);
35.以下程序运行后的输出结果是()。main(){inta=3,b=4,c=5,t=79;if(b<a&&a<C)t=a;a=c;c=t;if(a<c&&b<C)t=b;b=a;a=t;printf("%d%d%d\n",a,b,C);}
36.若有语句:
inti=-19,j=i%4;
printf("%d\n",j);
则输出结果是【】。
37.若有定义floatb[15],*p=b;,且数组b的首地址为200H,则p+13所指向的数组元素的地址为______。
38.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
39.下面程序的运行结果是【】。
#include<stdio.h>
#defineSIZE12
main()
{chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+321;
sub(s,7,SIZE-1);
for(i=0;i<SIZE;i++)printf("%c",s[i]);
printf("\n");}
sub(char*a,inttl,intt2)
{charch;
while(t1<t2)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;}}
40.以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。
intfun(intn)
{intm=0,f=1,i;
for(i=1;i<=n;i++)
m+=i*f;
f=【】;
returnm;
}
main()
{printf("m=%d\n",【】);}
三、1.选择题(20题)41.一个C语言程序是由()
A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成
42.设有以下说明语句:structstu{inta;floatb;}stutype;则下面叙述不正确的是()。
A.struct是结构体类型的关键字
B.structstu是用户定义的结构体类型
C.stutype是用户定义的结构体类型名
D.a和b都是结构体成员名
43.有以下程序:#include<stdio.h>intfun(intx,inty){if(x==y)return(x);elsereturn((x+y)/2);}main(){inta=1,b=2,c=3;printf("%d\n",fun(2*a,fun(b,C)));}程序运行后的输出结果是()。
A.2B.3C.4D.5
44.请读程序:#include<stdio.h>#include<string.h>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的输出结果是______。
A.正数B.负数C.零D.不确定的值
45.以下程序的输出结果是______。#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n"++*x,++*y,*(z++));}inta=10,b=40,c=20main(){prt(&a,&b&C);prt(&a,&b,&C)
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,41
D.11,41,2112,42,22
46.有以下程序:#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t);}main(){charstr[10]="abcdefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf(~%s\n",str);}程序运行后的输出结果是______。
A.abcdefB.gfedcbaC.gbcdefaD.abedcfg
47.若有说明:int*p1,*p2,n=8,m;下列均是正确赋值语句的选项是()。
A.p1=&n;p2=&p1;
B.p1=n;
C.p1=&n;*p2=p1;
D.p1=&n;p2=p1;
48.当3.5in(英寸)软盘的写保护窗口开着时,该软盘()
A.只能写不能读B.既能读又能写C.只能读不能写D.不能使用
49.若有以下定义和语句:ihtw[2][3],(*pw)[3];pw=w;则对w数组元素的非法引用是()
A.*(w[0]+2)B.*(pw+1)[2]C.pw[0][0]D.*(pw[1]+2)
50.下列程序的输出结果是______。main(){staticintnum[5]=}1,3,5,7,9};int*p1,**p2;p1=num;p2=&p1;printf("%d,",*(++p1));printf("%d\n",**p2);}
A.3,1B.3,3C.1,1D.1,3
51.有以下程序:voidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(A);for(i=0;i<5;i++)printf("%d,",a[i]);}程序运行后的输出结果是()。
A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
52.以下程序段的输出为()staticchara[]="language",b[]="progratne";char*ptr1,*ptr2;intk;ptr1=a;ptr2=b;for(k=0;k<7;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));
A.gaeB.gaC.languageD.有语法错误
53.以下函数调用语句中含有_______个实参。func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.4D.5
54.下面程序的输出结果是()。#defineWW(X)X*Xmain(){inta,i;i=3;a=++WW(i+1);printf("%d\n",a);}
A.5B.6C.9D.程序有错误
55.若有以下程序段:intm=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后的输出结果是______。
A.0X0B.0x0C.0D.0XABC
56.下列对于软件测试的描述中正确的是()。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能多地发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
57.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。
A.12B.11C.10D.编译出错
58.软件工程的出现是由于()。A.A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展
59.在C程序中,判逻辑值时,用“非0”表示逻辑值“真”,又用“0”表示逻辑值“假”。在求逻辑值时,逻辑真和逻辑假可分别表示为
A.10B.01C.非0非0D.11
60.十进制数555的十六进制数表示形式为______。
A.220B.22AC.22BD.22C
四、选择题(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.以下程序的输出结果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}
A.19B.17C.15D.12
63.下面结构体的定义语句中,错误的是()。
A.
B.
C.
D.
64.
65.阅读下列程序,则运行结果为()。
A.3B.4C.5D.6
66.有以下程序:
#include<stdio.h>
main()
{FILE*fp;charstr[10];
fp=fopen("myfile,dat","");
{puts("abe",ip);fclose(fp);
fp=fopen("myfile.dat","a*");
fprintf(fp,"%d",28);
rewind(fp);
fscanf(fp,"%S",str);puts(str);
fclose(fp);
}
程序运行后的输出结果是()。
A.abcB.28cC.abc28D.内类型不一致而出错
67.已知大写字母A的ASCII码是65,小写字母a的ACSII码是97。下列能将变量C中的大写字母转换为对应小写字母的语句是()。
A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'
68.关系数据库管理系统能实现的专门关系运算包括()。
A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表
69.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出棱的顺序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA
70.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。
A.-369B.369C.0.369D.整数集合11,2,3,4,51
71.
72.(60)视图设计一般有3种设计次序,下列不属于视图设计的是()
A.自顶向下
B.由外向内
C.由内向外
D.自底向上
73.冒泡排序的时间复杂度为
A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)
74.
75.
76.关于结构化程序设计原则和方法的描述错误的是()。
A.选用的结构只准许有一个入口和一个出口
B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C.不允许使用GOTO语句
D.语言中若没有控制结构,应该采用前后一致的方法来模拟
77.有以下程序:
#include<stdio.h>
main()
{inti,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j--)
{if(i*j>3)break;
m*=i+j;
}
}
printf("m=%d\n",m);
}
程序运行后的输出结果是()。
A.m=6
B.m=2
C.m=4
D.m=3
78.(21)算法的空间复杂度是指______。
A.算法程序的长度
B.算法程序中的指令条数
C.算法程序所占的存储空间
D.算法执行过程中所需要的存储空间
79.结构化程序设计主要强调的是()。
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性
80.
五、程序改错题(1题)81.下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第l项起,斐波拉契数列为:1,1,2,3,5,8,13,21,…
例如,若给n输入7,则该项的斐波拉契数值为l3。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
longfun(intg)
{
//****found****
switch(g);
{
case0:return0;
//****found****
casel:case2:return1;
}
return(fun(g-1)+fun(g-2));
}
voidmain
{
longfib;intn;
printf("Inputn:");
scanf("%d",&n);
printf("n=%d\n",n);
fib=fun(n);
printf("fib=%d\n\n",fib);
}
六、程序设计题(1题)82.编写函数如n,其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n放指定的下标。例:输入一个字符串“world”,然后输入3,则调用该函数后的结果为“word”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数丘m的花括号中填入你编写的若干语句。试题程序:
参考答案
1.D
2.AC语言程序是由函数组成的,所以B选项错误。C语言函数可以单独进行编译,所以C选项错误。每个C语言程序必须包含一个main函数,但不是每个C语言程序文件都必须有一个main函数,用户单独编写的某个函数也可以存储为一个C语言程序文件,所以D选项错误。故本题答案为A选项。
3.AC语言中,函数声明的函数名、返回值类型和参数列表必须与函数定义相同。其中参数列表中可以省略参数名。题干中,fun函数返回整型,3个参数分别是:整型指针、整型指针、整型。选项A中,第1个参数应该是整型指针类型,第2个参数也应该是指针类型,错误;其他选项都正确。故本题答案为A选项。
4.A
5.B
6.D
7.B
\n本题考查结构体指针变量的赋值方法,要把结点b连接到结点;l的后面,必须把b的地址给a的next指针。故8正确。
\n
8.D在程序设计中,各模块间的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚、低耦合,以有利于提高模块的独立性。耦合性与内聚性是模块独立的两个定性标准,是互相关联的。
9.A本题由fun函数可知,执行for循环,当i=0时,b[0]=a[0][0]-a[0][3]=1-4=-3;当i=1时,b[1]=a[1][1]-a[1][2]=6-7=-1;当i=2时,b[2]=a[2][2]-a[2][1]=11-10=1;当i=3时,b[3]=a[3][3]-a[3][0]=16-13=3。主函数中输出y数组元素的值为:-3,-1,1,3。故本题答案为A选项。
10.Aprintf函数参数包括格式控制字符串和输出参数,其中格式控制字符串中除了格式控制字符外,其他字符原样输出。本题中的printf(“%+-6d%+-6d”,a,b);”,在%和格式控制字符d之间,“+”号表示输出的数字带正负号号表示输出数据向左对齐,“6”表示输出宽度,如果输出数据的宽度不够6,那么左对齐,右边补空格。所以本题输出+1234-5678(中间有一个空格,最后有一个空格)。本题答案为A选项。
11.B
12.C由于后序遍历的最后一个儿素为E,所以E为根结点,所以它的前序遍历的首个元素为E,敞排除A)和D)选项。由于中序遍历中,元素B在元素根结点E自:J后面,所以B为二叉树的右子树,并且该二叉树右子树只有一个儿素,所以前序遍历的最后一个元素应为B,故选项C)为正确选项,即该二叉埘的前序遍历序列是EACDB。
13.AC语言中语法上规定实型变量是不能存放整型类型的数据的,整型数据也不能存放实型数据。是为了避免类型转换之间可能会发生的错误。
14.D
15.A声明data是结构S的数组。初始化时data[0].a=10;data[0].b:104);data[1].a=20;data[1].b=200。主函数中p=data[1];即p.a=data[1].a;p.b=data[11.b;执行语句prinff(”%dkn”,++(p.A));打印输出时p.a先增l再打印。即p.a=data[1].a=20,先增1等于21,因此程序运行结果是21。
16.A数组说明的一般形式为:类型说明符数组名[常量表达式]。B)中N是变量,不能用变量定义数组长度。C)选项中数组长度是非法的一串数字。定义数组时必须为其指明长度,D)选项中数组长度为空,所以非法。
17.C在main函数中调用了f函数使形参s指向数组a。执行“S[1]+=6”;语句,则“a[1]=8;”执行“*s=7;”语句,则“a[0]=7”;执行“s+=2;”语句,则s指向数组的第3个元素并返回s。调用后,函数返回值赋给指针P,则*P=3,因此输出的结果为7,8,3。故本题答案为C选项。
18.A
19.B
20.D
21.str[i]或str+iistr[i]或str+i\r\ni
22.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。
23.rewind或fseekrewind或fseek解析:本题考查文件的定位。在对文件进行操作的过程中,若要求文件的位置指针回到文件的开头,可以调用rewind函数或fseek函数来完成。其中,rewind函数的作用是将位置指针重新返回文件的开头;而fseek函数也可以实现文件指针的定位。
24.*(str+i)或str[i]*(str+i)或str[i]解析:str是指针变量,它指向字符型数据,在循环过程中,用*(str+i)或str[i]来访问字符串的第i个元素,判断是否是结束标志,如果不是,i=i+1,继续取下一个元素进行判断,直到*(str+i)的值为'\\0'为止。
25.136136解析:本题考核的知识点是函数递归。主函数调用函数fun(6),由于6/2>0为真递归调用fun(3),接着递归调用fun(1),输出1,返回上一层输出3,在返回上一层输出6。故空格处应该填136。
26.逻辑独立性逻辑独立性解析:数据库总体逻辑结构改变,而不需要相应修改应用程序叫做逻辑独立性。
27.1010解析:该for语句以i为0,j为10作为初始值,循环条件是i<=j,每次循环后i增1、j减1,循环体是将i与j的和赋给k,这样变量k将保存的是最后一次赋给它的值。一次循环后i为1、j为9,二次循环后i为2、j为8,……,五次循环后i为5、j为5,第六次循环,将i与j的和10赋给k后,i为6、j为4,循环结束,k值为10。
28.软件开发
29.98768769876\r\n876解析:指针是一种数据类型,这种数据类型的变量用来存放内存中分配的存储单元的首地址。指针的定义:
类型说明符*指针变量名;
30.4040解析:本题中指针s1和s2都指向同一个内存中的地址。因此语句“*s2=20;”执行后,*\u3000s1=*s2=20。所以m最后的值为40。
31.scanf("%f<空格>%d"&b&a);printf("ab=%5.2f"a*b);scanf('%f<空格>%d',&b,&a);\r\nprintf('a,b=%5.2f',a*b);
32.10410\r\n4解析:结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。int占2个字节,float占4个字节,共用体变量所占的内存长度等于最长的成员的长度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。
33.数据库管理系统数据库管理系统(DBMS)
34.fopen
35.45794579解析:本题考查的是条件判断语句。本题特别需要注意的是“;”的问题,不能把“t=a;a=c;c=t;”误认为是第一个if的语句,实际上,只有“t=a;”才是第一个if的语句。所以判断第一个if语句的表达式不成立后,执行的是“a=c;c=t;”,此时a=5,c=79。然后判断第二个if语句的条件表达式,表达式成立,执行后面的3条语句,让a、b、c分别为4、5和79。
36.-3-3解析:%运算符是求两个数相除的余数,其结果与被除数的符号一致,本题中“-19%4”的值为“-3”。
37.252H252H解析:要解答本题,首先要明白在对指针进行加,减运算时,数字“1”不是十进制数的“1”,而是指“1”个存储单元长度。1个存储单元长度占存储空间的多少,应该视具体情况而定,如果存储单元的基类型是血型,则移动1个存储单元的长度就是位移2个字节;如果存储单元基类型是float型,则移动1个存储单元的长度就是位移4个字节。所以p+13所指向的数组元素的地址为:200H+(13*4)H=252H。
38.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
39.abcdefglkjihabcdefglkjih解析:本题主要考查了字符变量可参与的运算。因为字符在计算机中是以ASCII码的形式存放的,所以字符变量可看作整型变量来处理,如参与算术运算等,某字符的大写字母的ASCII码值比它对应的小写字母ASCII码值小32。
40.-f或f*-1或-1*f或f*(-1)或(-1)*ffun(10)-f或f*-1或-1*f或f*(-1)或(-1)*f\r\nfun(10)解析:调用fun()函数计算m的值,在主函数中的空格处应该填调用fun()函数的语句。fun()函数有一个形参n,为每次参加计算的值的个数,故在主函数中的空格处应该填fun(10),回到fun()函数,函数用到了一个for循环,共循环n次,当循环第i次的时候,m的值等于m=1-2+……+[(-1)的i-1次方]*i,所以在fun()函数的空格处应该填使f改变符号的语句,故应填-f或f*-1或-1*f或f*(-1)或(-1)*f。
41.B解析:C程序是由函数构成的。一个C源程序至少包括一个main函数,也可以包含一个main函数和若干个其他函数。因此,函数是C程序的基本单位,被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编制设计的函数。
42.C解析:定义一个结构的一般形式为:
struct结构体名
{
成员列表
}变量名列表;
本题中的stutype是在声明结构体类型structstu的同时定义的该结构体变量,而不是用户定义的结构体类型名。
43.A
44.A解析:本题考查字符串比较函数strcmp()的应用。strcmp(s1,s2)是中比较函数,当s1>s2时返回值为正数,当s1<s2时返回值为负数,当s1=s2时返回值为零。本题中s1,s2分别表示两个串中第一个字符的地址,s1++和s2++是将指针指向串的第二个字符,指针变量s1指向的是串“bCdEf”的首地址,即字符b的地址,而指针变量s2指向的是字符'B'的地址。而在字符串比较中,宁符串大小的确定是各个字符串相应位置字符的ASCII码值的大小决定的,字符'B'的ASCII码值为66,字符“b”的ASCII码值为98,所以s1>s2,返回值为正数。
45.B解析:由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。
46.B解析:p=str+strlen(str)/2+1=str+4,f(p,p-2)的功能是将p[4]与p[2]互换,p[5]与p[1]互换,p[6]与p[0]互换,最后的结果为gfedcba。
47.D解析:本题考查指针变量的赋值。
选项A)中,p1、p2本身都是地址变量,不能再将p1取地址赋给p2:选项B)中,不能将整型数据直接赋值给指针型数据;选项C)中,*p2代表了一个整型变量,而*p2=p1这个语句试图把一个地址值放入一个整犁变量中是错误的;选项D)中指针问的赋值是正确的。
48.C
49.A
50.B解析:指针p1指向数组num的首地址(同第一个元素的地址),二级指针变量p2指向p1。第一个输出语句中p1先移动一个单位,指向第二个数组元素,再输出元素的值(3),p1的移动不改变p2的指向。因此,第二个输出语句输出的也是3。
51.B解析:题目中定义了一个指针变量作为函数f()的参数。主函数main()中调用f()函数,当i=0时,执行语句“(*q)++;”,此处*q就代表数组a[0]的地址,也即将q进行加1操作;当i=1时,q仍指向数组元素a[0]的地址,因为在函数f()中并未对指针变量q做任何变动,即*q仍代表数组元素a[0]的值,所以此次(*q)++即为2+1,a[0]的值变为3;直到i=4时,执行(*q)++后a[0]的值变为6,最后输出数组a的结果为6、2、3、4、5。
52.B
53.B解析:实参可以是常量、变量或表达式,(exp1,exp2)是逗号表达式,它的值是exp2的值;(exp3,exp4,exp5)是逗号表达式,它的值是exp5的值。所以该函数调用语句含有的实参个数是2,即:(exp1,exp2)和(exp3,exp4,exp5)。
54.C解析:表达式“a++WW(i+1);”,宏展开之后为a=++i+1*i+1,先计算++i,结果为4,i的值也变为4,所以a=4+1*4+1=9。所以正确答案是选项C。
55.C解析:“%X”以十六进制无符号形式输出整数,变量m和n的初始值都是十六进制数,m=m-n=0xabc-oxabc=0x0,所以输出结果为0。
56.C解析:关于软件测试的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。本题答案为C。
57.B解析:执行p=&a;后,p指向整数a,*p即p的目标变量,也就是a;所以a=*p+b等价于a=a+b,可知a的值最终为11。
58.C解析:软件工程的基本概念。软件工程概念的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。
59.A解析:在C程序中,判断逻辑值时,用非0表示真,用0表示假。逻辑表达式计算时,逻辑表达式值为真是用1表示的,若逻辑表达式的值为假,则用0表示。
60.C解析:本题考查不同进制数间的转换,(555)10=(1000101011)2=(22B)16。
61.D
\n在C语言中,不能直接比较两个字符串的大小,必须用特定的函数来完成,选项A错误;选项B不管大于还是小于都执行S,不符合题意;选项C正好相反,当s2大于s1时,执行语句S,可知选项D正确。
\n
62.D解析:C语言的宏定义包括不带参数的宏定义与带参数的宏定义。本题为带参数的宏定义,其形式为:
#define宏名(形参表)字符串
本题的M(a+b,b+c,c+a)被字符串a+b*b+c+c+a代替。
63.B定义结构体变量有三种方式:①先声明结构体类型,再定义变量名,如选项A)所示;②在声明类型的同时定义变量,如选项C)所示;③直接定义结构体类型变量,如选项D)所示。
64.B
65.D在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久的存储单元,即使退出函数以后,下次再进入该函数时,静态局部变量仍使用原来的存储单元,静态局部变量的初值是在编译的时候赋予的,在程序执行期间不再赋予初值。本题由于连续三次调用函数fun,三次对静态变量x进行操作,x的值应依次为4,5,6。
66.C\n本题考查文件的操作,首先打开文件,进行写操作,把“abc”写入“myfile”文件,再打开“myfile.data'文件,输入28,在键盘上接收字符,输出并关闭文件。本题结果为abc28。
\n
67.B根据ASCII码可知大写字符A与小写字符a的ASCIl码相差32,而D中应该是加上'a',选项A和C左侧的表达式都是大写字符C与大写字符A的差与'a'的ASCIl代码的和就是小写字符c的ASCII代码。
68.B解析:此题为数据库的基本概念,可以对照办工软件的电子表格进行如下理解:选择:我们根据某条件选择出一行或多行元组(一个元组即为二维表中的一行)。投影:按字段(也称属性,比如学生关系(学号,姓名,出生年月,性别),学号、姓名…都是属性)选取一列或多列(一个二维表中所有元组在某一列或几列上截取出来)。连接:2个或2个以上的表连接组成一张新的表,通常有条件连接。比如学生关系(学号,姓名,系号),又有一张系表(系号,系名,主任),2张表可以合并为一张这样的表(学号,姓名,系号,系名,主任)。
69.B栈是先进后出的原则组织数据,所以人栈最早的最后出栈,所以选择B。
70.B只有B)选项369可以用无符号整数来表示和存储。A)选项~369有负号。选项c)0.369是qJ、数,它们都不能用无符号整数类存储。选项D)是一个整数集合需要用数组来存储。
71.D
72.B
73.B冒泡排序的基本概念是:以升序为例,依次比较相邻的两个数,将小数放在前面,大数放在后面。第一趟排序过程是这样的,首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。这样一次排序后,最后一个数为所有数中的最大数。第二趟排序重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数。如此下去,直至最终完成排序。
冒泡排序的时间复杂度是指执行冒泡排序算法所需要的时间。冒泡排序算法最好的时间复杂度为所要排序的数列为正序,即在执行排列算法之前就已经达到目标的顺序。这样只需要执行一次排序算法,算法所需要进行数据比较的次数为n-1次。冒泡排序算法最差的时间复杂度为当前所要进行排列的数列顺序与目标数列的顺序相反。算法所需要进行数据比较的次数为n(n-1)/2=O(n2)。算法的平均时间复杂度为O(n2)。
74.D
75.C
76.C结构化程序设计的原则和方法之一是限制使用GOT0语句,但不是绝对不允许使用GOT0语句。其他三项为结构化程序设计的原则。
77.A\n本题考查了多重for循环。当(i*j)>3时,跳出循环,本题中i=1,j=3,i*J后值为3,所以执行下边语句:m*=i+j,也可写成m=m*i+j,这时要注意优先级,所以m的值为6。
\n
78.D
79.D解析:程序不仅是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。
80.B
81.(1)错误:switch(g);
\n正确:switch(g)
\n(2)错误:casel:case2:returnl;
\n正确:casel;case2:returnl;
\n【解析】此题考查C语言的语法规则,switch(表达式)后不应该带有“;”,case语句常量后应该是“:”。
\nswitch语句的一般形式如下:
\nswitch(表达式){
\ncase常量表达式1:语句1;
\ncase常量表达式2:语句2;
\ncase常量表达式n:语句i;
\ndefault:语句n+1;
\n}
\n
82.
2021年浙江省金华市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.以下叙述中正确的是()。
A.C语言函数可以嵌套调用,例如:fim(fun(X))
B.C语言程序是由过程和函数组成的
C.C语言函数不可以单独编译
D.C语言中除了main函数外,其他函数不可作为单独文件形式存在
3.若有如下形式的函数:intfun(inta[],int*p,intn){…}调用函数之前需要对函数进行声明,则以下选项中错误的是()。
A.intfun(int,int,int);
B.intfun(inta[],int*p,intn);
C.intfun(inta[],int*,int);
D.intfun(int[],int*,int);
4.采用邻接表存储的图的深度优先遍历算法类似于二叉树的()。
A.先序遍历B.中序遍历C.后序遍历D.按层遍历
5.若串S=,software,其子串的数目是()。
A.8B.37C.36D.9
6.合法的常量是()。A.‘program’B.–e8C.03xD.0xfl
7.
有以下结构体说明和变量的定义,且指针P指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是()。
structnode
{chardata;
structnode*next:
}a,b,*p=&a,*q=&b;
A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;
8.为了提高软件的独立性,模块之间最好是()。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合
9.有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf(“%d”,y[i]);printf(“\n”);}程序的运行结果是()。
A.-3,-1,1,3,B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,
10.若有定义“inta=1234,b=-5678;”,用语句“printf("%+-6d%+-6d",a,b);”输出,以下正确的输出结果是()。
A.+1234-5678(中间有一个空格,最后有一个空格)
B.+1234-5678(最前面有一个空格,中间有一个空格)
C.+-1234+-5678(最前面和最后均无空格)
D.1234-5678(中间有两个空格,最后有一个空格)
11.以下关于顺序存储结构的叙述中,()是不正确的。
A.存储密度大
B.逻辑上相邻的结点物理上不必邻接
C.可以通过计算机直接确定第i个结点的存储地址
D.插入、删除运算操作不方便
12.已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()
A.ABCDEB.ECABDC.EACDBD.CDEAB
13.以下叙述中正确的是()。
A.a是实型变量,C允许进行赋值a=10,但不可以这样说:实型变量中允许存放整型值
B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式
C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0
D.已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3
14.
15.有以下程序程序运行后的输出结果是()。
A.21B.11C.20D.10
16.下列定义数组的语句中,正确的是()。A.#defineN10?intx[N];
B.intN=10;int[N];
C.intx0..10];
D.Intx[];.
17.有以下程序:#include<stdio.h>int*f(int*s){s[1]+=6;*s=7;s+=2;returns;}main(){inta[5]={1,2,3,4,5},*p=a;P=f(P);printf(“%d,%d,%d\n”,a[0],a[1],*p);}程序运行后的输出结果是()。
A.9,8,9B.7,8,7C.7,8,3D.1,2,1
18.以下说法错误的是:()
A.全局变量就是在函数外定义的变量,因此又叫做外部变量
B.一个函数中既可以使用本函数中的局部变量,也可以使用全局变量
C.局部变量的定义和全局变量的定义的含义不同
D.如果在同一个源文件中,全局变量和局部变量同名,则在局部变量的作用范围内,全局变量通常不起作用
19.
20.对矩阵进行压缩存储是为了()。
A.方便运算B.方便存储C.提高运算速度D.减少存储空间
二、2.填空题(20题)21.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(【】);
}
22.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。
23.在对文件进行操作的过程中,若要求文件的位置指针重新指向文件的开头,应当调用的函数是【】函数。
24.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
intmystden(char*str)
{inti;
fo,(i=0;【】!='\0';i++);
return(i);
25.以下程序运行后的输出结果是______。
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
26.在数据库理论中,数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型、改变数据间联系等,不需要修改相应的应用程序,称为【】。
27.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【】。
for(i=0,j=10;i<=j;i++,j--)k=i+j;
28.软件工程研究的内容主要包括:【】技术和软件工程管理。
29.以下程序运行后的输出结果是【】。
main()
{chars[]="9876",*p;
for(p=s;p<s+2;p++)printf("%s\n",p);
}
30.以下程序的输出结果是【】。
#include<stdlib.h>
main()
{char*s1,*s2,m;
s1=s2=(char*)malloc(sizeof(char));
*s1=15;*s2=20;m=*s1+*s2;
printf("%d\n",m);
}
31.选择程序中的输入输出语句,以满足题目给定的输入输出数据形式。
main()
{inta;floatb;
【】
【】}
输入形式:3.52<空格>6<回车>
输出形式:a*b=21.12
32.有以下定义和语句,则sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdate
{intday;
intmouth;
intyear;
union{intshare1;
floatshare2;
}share;
}a;
33.数据库系统中实现各种数据管理功能的核心软件称为【】。
34.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度。请填空。
FILE*myf;longf1;
myf=【】("test,t","rb");
fseek(myf,0,SEEK_END);f1=ftell(myf);
fclose(myf);
printf("%1d\n",f1);
35.以下程序运行后的输出结果是()。main(){inta=3,b=4,c=5,t=79;if(b<a&&a<C)t=a;a=c;c=t;if(a<c&&b<C)t=b;b=a;a=t;printf("%d%d%d\n",a,b,C);}
36.若有语句:
inti=-19,j=i%4;
printf("%d\n",j);
则输出结果是【】。
37.若有定义floatb[15],*p=b;,且数组b的首地址为200H,则p+13所指向的数组元素的地址为______。
38.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
39.下面程序的运行结果是【】。
#include<stdio.h>
#defineSIZE12
main()
{chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+321;
sub(s,7,SIZE-1);
for(i=0;i<SIZE;i++)printf("%c",s[i]);
printf("\n");}
sub(char*a,inttl,intt2)
{charch;
while(t1<t2)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;}}
40.以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。
intfun(intn)
{intm=0,f=1,i;
for(i=1;i<=n;i++)
m+=i*f;
f=【】;
returnm;
}
main()
{printf("m=%d\n",【】);}
三、1.选择题(20题)41.一个C语言程序是由()
A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成
42.设有以下说明语句:structstu{inta;floatb;}stutype;则下面叙述不正确的是()。
A.struct是结构体类型的关键字
B.structstu是用户定义的结构体类型
C.stutype是用户定义的结构体类型名
D.a和b都是结构体成员名
43.有以下程序:#include<stdio.h>intfun(intx,inty){if(x==y)return(x);elsereturn((x+y)/2);}main(){inta=1,b=2,c=3;printf("%d\n",fun(2*a,fun(b,C)));}程序运行后的输出结果是()。
A.2B.3C.4D.5
44.请读程序:#include<stdio.h>#include<string.h>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的输出结果是______。
A.正数B.负数C.零D.不确定的值
45.以下程序的输出结果是______。#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n"++*x,++*y,*(z++));}inta=10,b=40,c=20main(){prt(&a,&b&C);prt(&a,&b,&C)
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,41
D.11,41,2112,42,22
46.有以下程序:#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t);}main(){charstr[10]="abcdefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf(~%s\n",str);}程序运行后的输出结果是______。
A.abcdefB.gfedcbaC.gbcdefaD.abedcfg
47.若有说明:int*p1,*p2,n=8,m;下列均是正确赋值语句的选项是()。
A.p1=&n;p2=&p1;
B.p1=n;
C.p1=&n;*p2=p1;
D.p1=&n;p2=p1;
48.当3.5in(英寸)软盘的写保护窗口开着时,该软盘()
A.只能写不能读B.既能读又能写C.只能读不能写D.不能使用
49.若有以下定义和语句:ihtw[2][3],(*pw)[3];pw=w;则对w数组元素的非法引用是()
A.*(w[0]+2)B.*(pw+1)[2]C.pw[0][0]D.*(pw[1]+2)
50.下列程序的输出结果是______。main(){staticintnum[5]=}1,3,5,7,9};int*p1,**p2;p1=num;p2=&p1;printf("%d,",*(++p1));printf("%d\n",**p2);}
A.3,1B.3,3C.1,1D.1,3
51.有以下程序:voidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(A);for(i=0;i<5;i++)printf("%d,",a[i]);}程序运行后的输出结果是()。
A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
52.以下程序段的输出为()staticchara[]="language",b[]="progratne";char*ptr1,*ptr2;intk;ptr1=a;ptr2=b;for(k=0;k<7;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));
A.gaeB.gaC.languageD.有语法错误
53.以下函数调用语句中含有_______个实参。func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.4D.5
54.下面程序的输出结果是()。#defineWW(X)X*Xmain(){inta,i;i=3;a=++WW(i+1);printf("%d\n",a);}
A.5B.6C.9D.程序有错误
55.若有以下程序段:intm=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后的输出结果是______。
A.0X0B.0x0C.0D.0XABC
56.下列对于软件测试的描述中正确的是()。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能多地发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
57.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。
A.12B.11C.10D.编译出错
58.软件工程的出现是由于()。A.A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展
59.在C程序中,判逻辑值时,用“非0”表示逻辑值“真”,又用“0”表示逻辑值“假”。在求逻辑值时,逻辑真和逻辑假可分别表示为
A.10B.01C.非0非0D.11
60.十进制数555的十六进制数表示形式为______。
A.220B.22AC.22BD.22C
四、选择题(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.以下程序的输出结果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}
A.19B.17C.15D.12
63.下面结构体的定义语句中,错误的是()。
A.
B.
C.
D.
64.
65.阅读下列程序,则运行结果为()。
A.3B.4C.5D.6
66.有以下程序:
#include<stdio.h>
main()
{FILE*fp;charstr[10];
fp=fopen("myfile,dat","");
{puts("abe",ip);fclose(fp);
fp=fopen("myfile.dat","a*");
fprintf(fp,"%d",28);
rewind(fp);
fscanf(fp,"%S",str);puts(str);
fclose(fp);
}
程序运行后的输出结果是()。
A.abcB.28cC.abc28D.内类型不一致而出错
67.已知大写字母A的ASCII码是65,小写字母a的ACSII码是97。下列能将变量C中的大写字母转换为对应小写字母的语句是()。
A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'
68.关系数据库管理系统能实现的专门关系运算包括()。
A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表
69.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出棱的顺序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA
70.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。
A.-369B.369C.0.369D.整数集合11,2,3,4,51
71.
72.(60)视图设计一般有3种设计次序,下列不属于视图设计的是()
A.自顶向下
B.由外向内
C.由内向外
D.自底向上
73.冒泡排序的时间复杂度为
A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)
74.
75.
76.关于结构化程序设计原则和方法的描述错误的是()。
A.选用的结构只准许有一个入口和一个出口
B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C.不允许使用GOTO语句
D.语言中若没有控制结构,应该采用前后一致的方法来模拟
77.有以下程序:
#include<stdio.h>
main()
{inti,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j--)
{if(i*j>3)break;
m*=i+j;
}
}
printf("m=%d\n",m);
}
程序运行后的输出结果是()。
A.m=6
B.m=2
C.m=4
D.m=3
78.(21)算法的空间复杂度是指______。
A.算法程序的长度
B.算法程序中的指令条数
C.算法程序所占的存储空间
D.算法执行过程中所需要的存储空间
79.结构化程序设计主要强调的是()。
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性
80.
五、程序改错题(1题)81.下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第l项起,斐波拉契数列为:1,1,2,3,5,8,13,21,…
例如,若给n输入7,则该项的斐波拉契数值为l3。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
longfun(intg)
{
//****found****
switch(g);
{
case0:return0;
//****found****
casel:case2:return1;
}
return(fun(g-1)+fun(g-2));
}
voidmain
{
longfib;intn;
printf("Inputn:");
scanf("%d",&n);
printf("n=%d\n",n);
fib=fun(n);
printf("fib=%d\n\n",fib);
}
六、程序设计题(1题)82.编写函数如n,其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n放指定的下标。例:输入一个字符串“world”,然后输入3,则调用该函数后的结果为“word”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数丘m的花括号中填入你编写的若干语句。试题程序:
参考答案
1.D
2.AC语言程序是由函数组成的,所以B选项错误。C语言函数可以单独进行编译,所以C选项错误。每个C语言程序必须包含一个main函数,但不是每个C语言程序文件都必须有一个main函数,用户单独编写的某个函数也可以存储为一个C语言程序文件,所以D选项错误。故本题答案为A选项。
3.AC语言中,函数声明的函数名、返回值类型和参数列表必须与函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电力工程结算补充协议
- 网店债务清偿与权益保障协议范本
- 2025年矿山生态修复项目规划申请报告模板
- 2025年新型高效饲料及添加剂项目立项申请报告
- 2025小学教室设备维护与更新计划
- 2025年财产保险服务项目立项申请报告模板
- 2025年海上风电项目提案报告模板
- 内镜室数字化转型五年发展计划
- 2025年电力计量仪表项目规划申请报告
- 医疗卫生领域担当作为的学习心得体会
- 社区流行病学
- 电厂节能降耗培训课件
- 仪控技术手册-自控专业工程设计用典型条件表
- 2025年牛津译林版英语七年级下册全册单元重点知识点与语法汇编
- 2024-2025年能源管理系统(EMS)行业市场分析报告
- 校园网规划答辩
- 2024上海中考英语试卷及答案
- 财务管理专业就业指导
- 2024年江苏省徐州市中考道德与法治试卷(附真题答案)
- 医学细胞生物学(温州医科大学)知到智慧树章节答案
- 《初级会计实务》(第五版) 第九章 产品成本核算
评论
0/150
提交评论