![2021-2022年浙江省杭州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第1页](http://file4.renrendoc.com/view/21285d194943d41d2f3b175c0d28e96e/21285d194943d41d2f3b175c0d28e96e1.gif)
![2021-2022年浙江省杭州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第2页](http://file4.renrendoc.com/view/21285d194943d41d2f3b175c0d28e96e/21285d194943d41d2f3b175c0d28e96e2.gif)
![2021-2022年浙江省杭州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第3页](http://file4.renrendoc.com/view/21285d194943d41d2f3b175c0d28e96e/21285d194943d41d2f3b175c0d28e96e3.gif)
![2021-2022年浙江省杭州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第4页](http://file4.renrendoc.com/view/21285d194943d41d2f3b175c0d28e96e/21285d194943d41d2f3b175c0d28e96e4.gif)
![2021-2022年浙江省杭州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第5页](http://file4.renrendoc.com/view/21285d194943d41d2f3b175c0d28e96e/21285d194943d41d2f3b175c0d28e96e5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年浙江省杭州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf("%5.of\n",a);}doublef(doublex){returnx*x+1;}程序运行后的输出结果是()。A.503B.401C.500D.1404
2.有以下程序:#include<stdio.h>structstu{intnum;charname[l0];intage;};voidfun(structstu*p){printf("%s\n",p->name);}main(){structstux[3]={{01,"Zhang",20),{02,"Wang",l9},{03,"Zha0",l8}};fun(x+2);}程序运行后的输出结果是()。A.ZhangB.ZhaoC.WangD.19
3.算法分析的两个主要方面是()。
A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性
4.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)执行后的输出结果是()。A.5,5B.5,11C.11,11D.11,5
5.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序的运行结果是()。
A.6B.3C.8D.12
6.将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是()。
A.nB.2n-1C.2nD.n-1
7.下列程序段的时间复杂度为()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)
8.以下选项中,非法的字符常量是______。
A.'\t'B.'\17'C.\nD.'\xaa'
9.数据处理的最小单位是()。
A.数据B.数据元素C.数据项D.数据结构
10.设a、b和、c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式为()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
11.以下对于C语言的描述中,正确的是:()
A.C语言调用函数时,值传递方式只能将实参的值传给形参,形参的值不能传递给实参
B.C语言中函数既可以嵌套定义,也可以递归调用
C.函数必须有返回值
D.C程序中有调用关系的所有函数必须放在同一源程序文件中
12.以下说法错误的是()。
A.由3种基本结构组成的结构化程序不能解决过于复杂的问题
B.由3种基本结构组成的结构化程序能解决一些简单的问题
C.由3种基本结构组成的结构化程序能解决递归问题
D.由3种基本结构组成的结构化程序能解决数学上有解析解的问题
13.
14.若有定义语句:“intyear=2009,*p=&year;”,以下不能使变量year中的值增至2010的语句是()。
A.*p+=1;B.(*p)++;C.++(*p);D.*++P
15.是哈希查找的冲突处理方法()。
A.求余法B.平均取中法C.二分法D.开放地址法
16.数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放的存储器内,该数组按行存放,元素A[5][8]的起始地址为()。
A.SA+141B.SA+180C.SA+222D.SA+225
17.
18.下列叙述中正确的是A.C语言中既有逻辑类型也有集合类型
B.C语言中没有逻辑类型但有集合类型
C.C语言中有逻辑类型但没有集合类型
D.C语言中既没有逻辑类型也没有集合类型
19.运行下列程序,若从键盘输入字符“a”,则输出结果是()。
charc;
c=getchar;
if(c>=a&&c<=g)c=c+4:
elseif(c>=9&&c<=2)c=c-21:
elseprintf("inputerror!\n");
putchar(c);
A.fB.tC.eD.d
20.设有定义:int?x=2,以下表达式中,值不为6的是()。
A.2*<.x+=2B.x++.2*xC.x=x*(1+x)D.x*=x+1
二、2.填空题(20题)21.若有下列定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,则值为3的表达式为:______。
22.设有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
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>,则程序的输出结果是______。
23.已知字符'A'的ASCII码值为65,以下语句的输出结果是【】。
charch='B';
printf("%c%d\n",ch,ch);
24.在对文件操作的过程中,若要求文件的位置指针回到文件的开始处,应当调用的函数是【】。
25.以下程序的输出是【】。
main()
{
charstr1[]=Howdoyoudo",*p=strl;
strcpy(str1+strlen(str1)\2"esshe");
pfinff("%s\n",p1);
}
26.有以下程序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);}程序执行后的输出结果是
27.为建立如下图所示的存储结构(即每个结点两个域,p是指向结点的指针域,data用以存放整型数),请将定义补充完整。
pdata
a
structlist
{【】;intdata;}a;
28.解题方案的准确而完整的描述称为______。
29.有如图所示的双链表结构,请根据图示完成结构体的定义:
structaa
{intdata;
【】}node;
30.目前实际存在和使用的广域网基本上都是采用______拓扑结构类型。
有以下程序:
#include<string.h>
structSTU
{intnum;
floatTotalScore;};
voidf(structSTUp)
{structSTUs[2]={{20041,703},{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);
}
程序运行后的输出结果是【】。
31.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
32.下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行4个元素输出数组b,请填空。main(){inta[10],b[10],i;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=1;i<10;i++)();for(i=0;i<9;i++){printf("%d",b[i]);if(i%4==0)printf("\n");}}
33.若有定义:inta=4,b=5,c=6;然后顺序执行下列语句后,变量b中的值是()。c=(a-=(b-5));c=(a%3)+(b=1);
34.若a是血型变量,则表达式(a=2*3,a*2),a+6的值为______。
35.函数delete(s,i,n)是作用是从字符串s中删除从第i个字符开始的n个字符,请填空。
voiddelete(chars[],inti,intn)
{intj,k,length=0;
while(s[length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]\'\0';
}
36.在面向对象方法中,类之间共享属性和操作的机制称为______。
37.以下程序的输出是【】。
main()
{
charstr1[]="Howdoyoudo",*pl=str1;
strcpy(str1+strlen(str1)/2,"esshe");
intf("%s\n",p1);
38.买来一张新盘后,在存入文件前,必须进行【】处理。
39.结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。
40.函数rewind的作用是
三、1.选择题(20题)41.#define能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为()。
A.#definef(x)5*x*x+5*x+5
B.#definef5*X*x+5*x+5
C.#definef(a)(5*a*a+5*a+5)
D.#define(5*x*x+5*x+5)f(x)
42.以下说法中正确的是_______。
A.C语言程序总是从第一个函数开始执行
B.在C语言程序中,要调用函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
43.假定x和y为double型,则表达式x=2,y=x+3/2的值是
A.3.5B.3C.2D.3
44.以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j]<0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,”cd”};inti;f(p,5);printf(“%d\n”,strlen(P[0]));}程序运行后的输出结果是
A.6B.4C.5D.3
45.设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。
A.x&&y
B.x<=y
C.x||y+z&&y-z
D.!((x<y)&&!z||1)
46.下列程序的输出结果是______。main(){inti;for(i=1;i+1;i++){if(i>4){printf("%d",i++);break;}}printf("%d",i++);}
A.55B.56C.程序错误,没有输出D.循环条件永远为真,死循环
47.详细设计中,可用于描述详细设计的工具有()
A.程序流程图,SC图、PAD图和PDL
B.程序流程图、N-S图、PAD图和PDL
C.数据流程图、N-S图、PAD图和PDL
D.程序流程图、BS图、PAD图和PDL
48.模块本身的内聚是模块独立性的重要性度量因素之一。在7类内聚中,具有最强内聚的一类是__________。
A.顺序性内聚B.过程性内聚C.逻辑性内聚D.功能性内聚
49.若有说明intm[3][4]={3,9,7,8.5},(*q)[4];和赋值语句q=m;,则对数组元素m[i][j](其中0<=i<3,0<=j<4)值的正确引用为()。
A.(q+i)[j]B.*q[i][j]C.*(*q[i]+j)D.*(*(q+i)+j)
50.在下列定义中的共用体所占内存字节数是()Union{chark[6];struct{intm;floatf;}a;doubled;}b;
A.8B.14C.18D.10
51.下列程序的输出结果是()。#include<stdio.h>main(){inta=3,b=2,c=1;if(a<b)if(b<O)c=0;elsec++;printf("%d\n",c);}
A.0B.2C.1D.3
52.有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen(“d1.dat”,“w”);fprintf(fp,“%d\n”,i);fprintf(fp,“%d\n”,j);fclose(fp);fp=fopen(“d1.dat”,“r”);fscanf(fp,“%d%d”,&k,&n);printf(“%d%d\n”,k,n);fclose(fp);}程序运行后的输出结果是
A.2030B.2050C.3050D.3020
53.下列叙述中正确的是()。
A.一个算法的空间复杂度大,则其时间复杂度也必定大
B.一个算法的空间复杂度大,则其时间复杂度必定小
C.一个算法的时间复杂度大,则其空间复杂度必定小
D.上述三种说法都不对
54.算法的空间复杂度是指()。
A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间
55.下面程序的功能是输出以下形式的金字塔图案:****************main(){inti,j;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf("");for(j=1;j<=();j++)printf("*");printf("\n");}}在下划线处应填入的是()。
A.iB.2*-1C.2*i+1D.i+2
56.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
57.在设计程序时,应采纳的原则之一是()。
A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解
58.以下程序的输出结果是______。#include<stdio.h>main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}func(a,b)inta,b;{staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}
A.8,17B.8,16C.8,20D.8,8
59.函数调用:strcat(strcpy(str1,str2,),str3)的功能是()
A.将串str1复制到串str2中后再连接到串str3之后
B.将串str1连接到串str2之后再复制到串str3之后
C.将串str2连接到串str1之后再将串str3连接到串str1之后
D.将串str2连接到串str1之后再将串str1连接到串str3之后
60.以下叙述中正确的是()。
A.C语言的源程序不必通过编译就可以直接运行
B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C.C源程序经编译形成的二进制代码可以直接运行
D.C语言中的函数不可以单独进行编译
四、选择题(20题)61.以下叙述中错误的是()。
A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B.数组名代表的是数组所占存储区的首地址,其值不可改变
C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D.可以通过赋初值的方式确定数组元素的个数
62.在软件设计中不使用的工具是()。A.系统结构图B.PAD图C.数据流图D.程序流程图
63.
64.有以下程序程序的运行结果是()。
A.20B.10C.0D.出错
65.假定X和Y为double型,则表达式x=2,y=x+3/2的值是()。
A.3.500000B.3C.2.000000D.3.000000
66.
67.有以下程序:
main()
{intk=5,n=0;
do
{switch(k)
{case1:
case3:n+=l;k--;break;
defalut:n=0;k--;
case2:
case4:n+=2;k--;break:
}
printf("%d",n);
}while(k>0&&n<5);
}
程序运行后的输出结果是()。A.A.235B.0235C.02356D.2356
68.以下叙述中正确的是()。A.A.break语句只能用在循环体内和switch’语句体内
B.continue语句的作用是:使程序的执行流程跳出包含它的所有循环
C.在循环体内使用break语句和continue语句的作用相同
D.break语句只能用于switch语句体中
69.
70.
71.
下列程序的输出结果是()。
intfl(intx,inty){returnx>y?x:y;)
intf2(intx,inty){returnx>y?y:x;}
main
{inta=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);}
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
72.第
42
题
若有说明语句
chara[]="Itismine";
char*p="Itismine";
则以下不正确的叙述是
A.a+1表示的是字符t的地址
B.p指向另外的字符串时,字符串的长度不受限制
C.p变量中存放的地址值可以改变
D.a中只能存放10个字符
73.设有如下三个关系表:
74.
75.若有下列定义,则对a数组元素地址的正确引用是()。inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
76.以下程序的输出结果是______。intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staticintx=1;x*=x+1;printf("%d",x);}
A.33B.22C.26D.25
77.
78.
79.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A.10B.8C.6D.4
80.
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。
例如,输入opdye,则应输出deopy。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
//****found****
intproc(charstr[])
{
charc;
unsignedi,j;
for(i=0;i<strlen(str)-1;i++)
for(j=i+1;j<strlen(str);j++)
if(str[i]>str[j])
{
c=str[j]:
//****found****
str[j]=str[i++];
str[i]=c;
}
}
voidmain
{
charstr[81];
system("CLS");
printf("\nPleaseenteracharacter
string:");
gets(str);
printf("\n\nBeforesorting:\n%s",str);
proc(str);
printf("\nAftersortingdecendingly:\n
%s",str);
}
六、程序设计题(1题)82.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(),该函数的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.A此题是一个简单的函数调用,当i=0并且i<30,执行i+=10,并且调用函数f,所以当i=0时,结果为1,当i=10时,结果为101,当i=20时,结果为401,所以a=1+101+401=503。
2.Bfun(x+2)表示的是结构体数组中的第3个元素即{03,"Zhao",l8),而输出的是name元素,所以答案为B。
3.A
4.B子函数fun(intx,inty),将变量m和i声明为局部静态变量,因此第l次调用主函数后,局部静态变量m和i的值为5和3,第l次函数调用结束时,它们的值不释放保持不变,所以第2次调用时,局部静态变量m和i的初始值分别为5和3,即在执行“i+=m+1”时,i的值为9,因此最终m的值为11。
5.A本题中,fun函数第1次调用为fun(8,fun(5,6))。因为fun(5,6)的返回值为5,所以第2次调用为fun(8,5),即返回值为6。故本题答案为A选项。
6.B
7.C
8.C解析:C语言中字符常量是以单引号括起来的单个字符,或为以“\\”与三位八进制数值或两位十六进制数值代替单个字符。
9.C解析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项C)。
10.D
11.A
12.A顺序结构、选择结构、循环结构是3种基本结构,由3种基本结构构成的程序称为结构化程序,由3种基本结构组成的算法可以解决任何复杂的问题,选项A错误。本题答案为A选项。
13.D
14.D
15.D
16.C
17.B
18.D解析:在C语言中没有逻辑类型,逻辑类型用整型来表示,故选项A和选项C不正确,C语言中没有集合类型,故选项B不正确。所以,D选项为所选。
19.C
\ngetchar函数是读取键盘的输入函数,本题中输入字母“a”,则c=a,判断if条件,发现a>=a&&a<=g成立,则执行下列语句:C=C+4,C得到的字符的ASCII码值,退出if语句,通过putchar函数输出字符。
20.A?A)选项中逗号表达式先计算第一表达式2*x,然后计算表达式x+=2的值,即x=x+2即4,整个逗号表达式为第二个表达式的值4,所以选A)。B)选项中首先计算逗号表达式中第一一个表达式x++,此时x为3,再执行第二个表达式2*x=2*3=6,所以逗号表达式为第二个表达式的值6。C)选项的赋值表达式可以表示为x=x*(1+x)=2*(1+2)=6。D)选项中的表达式可以表示为x=x*(x+1)=2*3=6。
21.p+=2*(p++)p+=2,*(p++)解析:由题可知a[2]=3,因此只要使指针p指向a[3],然后再引用指针的值就可以了。
22.QTHRGQTHRG解析:strcmp(t,s)函数用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0:若t<s,则函数值小于0。strcpy(t,s)函数的功能是把字符数组s所指字符串的内容复制到字符数组t所指的存储空间中。本题中,t[10]='CDEF'。第一次循环,s[10]='BADEF',if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环.s='QTHRG',if语句的控制条件strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指的存储空间中,然后输出字符数组t。
23.B66B66解析:字符B的ASCII码值为66,因此,按%c形式输出B,按%d形式输出66,输出结果为:B66。
24.rewind()或fseek()rewind()或fseek()
25.HowdoessheHowdoesshe解析:strcpy(strl,sl):字符串拷贝函数,作用是将字符串sl拷贝到字符数组strl中去。strlen(str):测试字符串str的长度,函数的值为字符串中实际长度,不包括‘\\0’在内。本题中strlen(strl)的值为13,则strcpy(strl+strlen(strl)/2'esshe')相当于strcpy(strl+6'esshe');,因此可得答案为Howdoesshe。
26.C
27.structlist*nextstructlist*next解析:定义的指针类型变量next也应该是结构体类型的。
28.算法算法解析:算法是指对解题方案的准确而完整的描述。
29.structaa*lhead*rchild;structaa*lhead,*rchild;解析:结构体对链表的定义。
30.2004170320041703解析:由于参数传递只是将实参的值复制到形参中,形参与实参拥有各自的存储空间,因此形参的改变并不影响实参,所以并不改变s的情况。
31.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
32.b[i-1]=a[i]-a[i-1]
33.11解析:本题考查的是基本赋值运算符和赋值表达式。a-=(b-5)等价于a=a-(b-5)=4,c=a=4;a%3=1,c=(a%3)+(b=1)=2,其中b的值被b=1确定为1。
34.1212解析:本题考查逗号表达式的运算规则。逗号表达式的基本格式为:“表达式1,表达式2,…”,其整个表达式的结果取最后一个子表达式的值。本题中首先计算逗号表达式中的第1个表达式a=2*3=6,然后计算第2个表达式a*2,这时整个表达式的值为12,但要注意,因为第2个表达式并没有给a赋值,因此a的值不变;接下来执行最后一个表达式a+6=12,所以整个表达式最后的值为12。
35.length++i<lengthlength++\r\ni<length解析:第一个循环极有可能是计算串的长度,在i<=length时字符才被删除,被删除的是第i个到第i+n或最后一个间的所有字符。删除前,应判断i<=length。由于已经进行了-i运算,故实际应填入i<length。
36.继承继承
37.HowdoessheHowdoesshe解析:strcpy(str1,s1):字符串拷贝函数,作用是将字符串s1拷贝到字符数组str1中去。strlen(str):测试字符串str的长度,函数的值为字符串中实际长度,不包括‘\\0’在内。本题中strlen(strl)的值为13,则strcpy(strl+strlen(strl)/2,'esshe');相当于strqoy(strl+6,'esshe');因此可得答案为Howdoesshe。
38.格式化(或初始化、FORMAT)格式化(或初始化、FORMAT)
39.模块化模块化
40.A
41.C解析:带参数宏的格式为:#define标识符(形参表)形参表达式。其功能是:在预处理程序中将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。
42.C解析:C语言的程序是由主函数main()开始运行,由主函数来调用其他函数,函数必须是并列的,定义后使用,不能在一个函数中定义其他函数,main()函数不一定要放在程序的开始部分,故选C。
43.D解析:本题需要掌握的知识点是:逗号表达式的求解步骤,另外,注意一下两个整数相除的结果仍为整数。了解了知识点后,本题就可以逐步求解了:
x=2
y=x+3/2
y=2.000000+1
y=3.000000
44.C解析:函数stremp(字符串1,字符串2)作用是将“字符串1”和“字符串2”进行比较,如果“字符串1”>“字符串2”,返回一个大于0的整数值;如果“字符串1”<“字符串2”,返回一个小于0的整数值;如果“字符串1”=“字符串2”,返回0。函数strepy(字符串数组名,字符串,[整型表达式]),整型表达式的作用是将“字符串”的前“整型表达式”个字符存入到指定的“字符数组”中,若省略“整型表达式”,则将整个“字符串”存入“字符数组”中。函数f()的功能是利用选择法把一个具有n行的二维数组中按行存放的n个字符串由大到小排序。在主函数中定义了一个二维字符数组p并给它按行赋初值,然后调用f()函数,把它按行从大到小排列。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串。由此可知最大的字符串为“dcdbe”,排序后存放在第一行,其首地址为P[0],在输出语句输出的P[0]指向的字符串长度是5。
45.D解析:本题考查逻辑运算符的使用。当“&&”的两个运算对象都足逻辑1时,表达式才返回值是1;当“||”的两个运算对象至少有一个是逻辑1时,表达式返回值是1。选项A)中,x和y都是逻辑1,所以返回值是1;选项B)中,x=4<=y=6为逻辑1,所以返回值是1;选项C)中,y+z的值等于14,非0,y-z的值为-2,非0,所以逻辑表达式4||14&&-2的值不为0;选项D)中,x<y为1,!z为0,1&&0为1,0||为1,因此,!1为0。
46.B解析:本程序中有个for循环,但注意到for循环的条件是“i+1”,也就是只要i+1的值为真(非零值均为真),就执行循环。当i=1的时候,i+1的值为真,判断if条件不成立,执行i++,输出i的值为5。
47.B
48.D解析:内聚性是一个模块内部各元素间彼此结合的紧密程度的度量。内聚是从功能角度来度量模块内的联系。内聚共有7类,它们之㈨的内聚性由弱到强排列顺序为:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚。
49.D解析:*(q+i)指向第i行首地址,*(*(q+i)+j)代表第i行第j个元素。
50.A
51.C解析:本题考查if语句。第一个if语句,先判断条件,发现a<b不成立,不再执行下列的语句,直接执行最后的printf输出语句,然后结束程序,整个过程c的值没有发生变化。
52.A解析:本题首先以创建方式打开文件“d1.dar”,两次调用fprintf()把i和j的值写到文件“d1.dat”中,文件“d1.dar的内容为20〈回车〉30〈回车〉后把该文件关闭再以读的方式打开,文件位置指针指向文件头,在通过fscard()函数从中读取两个整数到k和n中,由于格式符无间隔,因此输入数据可以用回车隔开,故输入的k值为20,n的值为30。
53.D解析:时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。人们都希望选择一个既省存储空间、又省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时间和空间的效率往往是一对矛盾,很难做到两全。但是,这不适用于所有的情况,也就是说时间复杂度和空间复杂度之间虽然经常矛盾,但是二者不存在必然的联系。因此,选项A、B、C的说法都是错误的。故本题的正确答案是D。
54.D【解析】算法的空间复杂度是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。
55.B解析:观察可知图形共4行,主函数中通过一个for5循环循环4次,输出4行。第1行输出3个空格和1个*,第2行输出2个空格和3个*,第3行输出1个空格和5个*,第4行输出7个*,主函数中通过第2个循环控制每行的输出空格数,第3个for循环控制输出*的个数,总结规律:每行输出*的个数,总比前一行的多2个,且第1行的个数为1,可以断定每行输出*的个数组成了一个公差为2的等差数列,所以每行输出。的个数即该等差数列的通项,故该空白处应该填写2*i-1,所以,4个选项中选项B符合题意。
56.D各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、快速排序n(n-1)/2、简单插入排序n(n-1)/2、希尔排序0(n1.5)、简单选择排序n(n-1)/2、堆排序O(nlog2n)
57.D解析:滥用goto语句将使程序流程无规律,可读性差,因此选项A)不选;注解行有利于对程序的理解,不应减少或取消,选项B)也不选;程序的长短要依照实际情况而论,而不是越短越好,选项C)也不选。
58.A
59.C
60.B解析:本题考核的知识点是C程序从编写到生成可执行文件的步骤。C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤:编辑;编译,就是将已经编辑好的源程序翻译成二进制的目标代码,经编译后的得到的二进制代码还不能直接执行,因为每一个模块往往是单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模块连接后才能运行;连接,将各模块的二进制目标代码与系统标准模块经连接处理后,得到具有绝对地址的可执行文件,它是计算机能直接执行的文件;执行,执行一个经过编译和连接的可执行的目标文件。由以上定义可知,选项A、C、D均不正确。所以,4个选项中选项B符合题意。
61.C解析:在C语言中,除字符数组外,一个数组不能通过数组名对数姐进行整体引用,因此选项A是对的。数组名中存放的是一个地址常量,它代表整个数组的首地址,因此选项B是对的。C语言程序在运行过程中,系统不自动检验数组元素的下标是否越界,因此选项C是错误的。C语官规定可以通过赋初值来定义数组的大小,这时数组说明符的一对方括号中可以不指定数组的大小,因此选项D也是正确的。所以,4个选项中选项C符合题意。
62.C系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段。已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图(DFD图)是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,因此它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以本题答案为C)。
63.B\r\n
64.Amalloc(sizeof(int))的作用是开辟一个长度为sizeofl:int)的存储空间,并通过强制类型转换(int*)将此存储空间的地址赋给了一个整型的指针变量P。然后执行语句*p=n,使得*p的值为10,并通过ieturn返回此值,ePa的值为l0。然后在主函数中输出a+fun(10)=10+10=20。故本题答案为A)。
65.D本题考查C语言中变量类型的转换。
C语言中若参与运算的变量的数据类型不同,则先转换成同一类型,然后进行运算。转换数据始终往长度增加的方向进行,以确保精确度,如int和long运算,则将int转换为long再运算,所有的浮点运算都是以双精度(double)进行的。
题目中x、y都为double型数据,而表达式3/2为两个整型变量之间的计算,计算结果只保留整数部分,小数部分省略掉。3/2的结果为1。后面变为计算y=x+1,这时都需要变为double型数据,结果为3.000000。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年媒体经营合作协议书
- 2025年度物流车辆维修配件供应合同
- 2025年度新型建筑材料应用示范工程售后服务保障书
- 2025年激光影像输出胶片项目合作计划书
- 2025年度国际物流公司项目总监聘用合同模板3篇
- 优化幼儿园教研学期工作计划的管理与执行
- 客户化需求对仓库的影响计划
- 建立规范的接待标准与流程计划
- 社区养老服务体系的完善计划
- 班主任我们永远的信仰计划
- 工厂安全事故预防知识
- 2024年中考语文试题分类汇编:散文、小说阅读(第03期)含答案及解析
- 《宫颈癌筛查》课件
- 2024年江西应用工程职业学院高职单招职业适应性测试历年参考题库含答案解析
- 2024年中储粮油脂有限公司招聘笔试真题
- 消化科护理疑难病例讨论
- (正式版)JBT 14449-2024 起重机械焊接工艺评定
- 骆驼祥子选择题100道及答案
- 四川电网水电厂一次调频试验的探讨
- 工装检具验收报告
- 解除(终止)劳动合同证明书(新版)
评论
0/150
提交评论