版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年湖南省娄底市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.以下能正确定义一维数组的选项是
A.inta[5]={0,1,2,3,4,5}
B.chara[]={'0','1','2','3','4','5','\0'};
C.chara={'A','B','C'};
D.inta[5]="0123";
2.数据库是______的集合,它具有统一的结构形式并存放于统一的存储介质内,可被各个应用程序所共享。
A.视图B.消息C.数据D.关系
3.若有定义:typedefint*INTEGER;INTEGERp,*q;则以下叙述正确的是()。
A.q是基类型为int的指针变量
B.p是int型变量
C.p是基类型为int的指针变量
D.程序中可用INTEGER代替类型名int
4.
5.
6.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()
A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程
7.以下选项中叙述错误的是()。
A.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值
B.在同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内
C.C程序函数中定义的自动变量,系统不自动赋确定的初值
D.C程序函数的性能不可以说明为static型变量
8.有以下定义语句,编译时会出现编译错误的是()。
A.chara=a;B.chara=\nC.chara=aa;D.chara=\x2d;
9.设有定义:“char*c;”,以下选项中能够使字符型指针c正确指向一个字符串的()。
A.charstr[]="string";c=str;
B.scanf(%s,c):
C.c=getchar();
D.*c="strin9";
10.若变量已正确定义,有以下程序段
A.0,0B.0,1C.1,1D.程序进入无限循环
11.
12.将发送端数字脉冲信号转换成模拟信号的过程称为
A.链路传输B.调制C.解调D.数字信道传输
13.若有定义语句:“intx=12,y=8,z;”,在其后执行语句“z=0.9+x/y;”,则z的值为()。A.1.9B.1C.2D.2.4
14.函数调用:strcat(strcpy(str1,str2),str3)的功能是______。
A.将串str1复制到串str2中后再连接到串str3之后
B.将串str1连接到串str2之后再复制到串str3之后
C.将串str2复制到串str1中后再将串sir3连接到串str1之后
D.将串str2连接到串str1之后再将串str1复制到串str3中
15.有下列程序:程序执行后的输出结果是()。
A.654321
B.65432
C.65453452
D.654534521
16.以下叙述中正确的是()A.当对文件的读(写操作完成之后,必须将它关闭,否则可能导致数据丢失
B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D.语言中的文件是流式文件,因此只能顺序存取数据
17.下列程序的输出结果是______。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
18.执行下面程序中的输出语句后,输出结果是()。A.65B.20C.15D.10
19.一个算法应当具有5个特性,以下叙述中正确的是()。
A.有穷性、确定性、复杂性、有零个或多个输入、有一个或多个输出
B.有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出
C.有穷性、确定性、可行性、必须要有一个以上的输入、有一个或多个输出
D.有穷性、确定性、复杂性、有零个或多个输入、必须要有多个输出
20.有以下程序#include<stdio.h>main(){char*s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII码值为65。程序运行后的输出结果是A.5670B.656667C.567D.ABC
二、2.填空题(20题)21.下列程序执行后输出的结果是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
22.若有如下程序:
main()
{intx=4,y=1;
printf("%d\n",sub(x,sub(x,y)));}
sub(inti,intj)
{staticinta=0;
intb=2;
a+=i+b;
b+=j+a;}
则程序运行后的输出结果是【】。
23.设inta=5,b=6,表达式(++a==b--)?++a:--b的值是【】。
24.#define命令出现在程序中函数的外面,宏名的有效范围为______。
25.测试用例包括输入值集和【】值集。
26.下面程序的输出结果是【】。
#defineMAX3
inta[MAX];
main()
{fun1();{un2(A);printf("\n");}
funl()
{intk,t=0;
for(k=0;k<MAX;k++,t++)a[k]=t+t;
}
fun2(intb[])
{intk;
for(k=0;k<MAX;k++)printf("%d",*(b+k));
}
27.若已定义inta[10],i;以下fun函数的功能是,在第一个循环中给前10个数组元素依次赋1,2,3,4,5,6,7,8,9,10;在第二个循环中使a数组前10个元素中的值对称拆叠,变成1,2,3,4,5,5,4,3,2,1。请填空。
fun(inta[])
{inti;
for(i=1;i<=10;i++)【】=i;
for(i=0;i<5;i++)【】=a[i];
}
28.设有宏定义:
#defineWIDTH80
#defineLENGTHWIDTH+40
则执行赋值语句“v=LENGTH*20;"(v为int型变量)后,v的值是【】。
29.若a=10,b=20,则表达式!(a<b)的值是【】。
30.与表达式a+=b等价的另一书写形式是______。
31.注释说明了程序的功能,它分为【】注释和功能性注释。
32.以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
请填空。
#include"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
printf("Enterx:");scanf("%lf",&x);
y1=fun(【】);
y2=fun(【】);
printf("y1=%lf,y2=%lf\n",y1,y2);
}
33.有一个已排好序的数组,今输入一个数,要求按原来的顺序规律将它插入到数组中。算法是:假设排序顺序是从小到大,对输入的数,检查它在数组中哪个数之后,然后将比这个数大的数顺序后移一个位置,在空出的位置上将该数插入。请在程序中的空白处填上一条语句或一个表达式。
#defineN100
main()
{floata[N+1],x;
inti,p;
for(i=0;i<N;i++)
scanf("%f"&a[i]);
scanf("%f",&x);
for(i=0,p=N;i<N;i++)
if(x<a[i])
{【】;
break;}
for(i=N-1;【】;i-)
a[i+1]=a[i];
a[p]=x;
for(i=0;【】;i++)
{printf("%8.2f",a[i]);
if(i%5=0)
printf("\n");
}
}
34.以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。
请填空。
#defineN3
#defineM4
voidLineMax(intx[N][M])
{inti,j,P;
for(i=0;i<N;i++)
{p=0;
for(j=1;j<M;j++)
if(x[i][p]<x[i][j])【】;
printf("Themaxvalueinline%dis%d\n",i,【】);
}
main()
{intx[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};
【】;
}
35.设有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
执行上面的程序段后,*(ptr+5)的值为______。
36.已知字符'A'的ASCII码值为65,以下语句的输出结果是【】。
charch='B';
printf("%c%d\n",ch,ch);
37.下面程序运行后的输出结果是()。
#include<stdio.h>
main()
{inta[]={1,2,3,4,5,6},*k[3],i=1;
while(i<4)
{k[i-1]=&a[2*i-1];
printf("%d",*k[i-1]);
i++;
}
}
38.软件工程研究的内容主要包括:【】技术和软件工程管理。
39.解题方案的准确而完整的描述称为______。
40.下面程序的功能是:计算1~10之间的奇数之和与偶数之和,请填空。
#include<stdio.h>
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
【】;
c+=b;}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);}
三、1.选择题(20题)41.下列选项中,不是一个算法的基本特征的是()。
A.完整性B.可行性C.有穷性D.拥有足够的情报
42.下述程序的输出结果是()。#include<stdio.h>voidmain(){inta[20],*p[4];inti,k=0;for(i=0;i<20;i++)a[i]=i;for(i=0;i<4;i++)p[i]=&a[i*i+1];for(i=0;i<4;i++){k=k+*p[i];}printf("%d",k);}
A.10B.18C.6D.数组元素引用不合法,输出结果不定
43.若执行下列的程序时,从键盘上输入1和2,则输出结果是()。#include<stdio.h>main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;S=S*S,printf("%d\n",s);}
A.1B.4C.2D.9
44.有以下程序
#include<stdio.h>
voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/
{intt,i,j;
for(i=0;i<n-1;j++)
for(j=i+1;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{intc[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序的运行结果是
A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
45.标准库函数fgets(s,n,f)的功能是()
A.从文件f中读取长度为n的字符串存入指针s所指的内存
B.从文件f中读取长度不超过n-1的字符串存入指针s所指的内存
C.从文件f中读取n个字符串存入指针s所指的内存
D.从文件f中读取长度为n-1的字符串存入指针s所指的内存
46.有以下程序:main(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;}while(i<7);.printf("%d\n",s);}执行后输出的结果是()。
A.16B.12C.28D.21
47.有以下程序fun(intx){intp;if(x==0‖x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}执行后的输出结果是
A.7B.3C.2D.0
48.下列程序段执行后,c3中的值是______。intc1=1,c2=2,c3;c3=1.0/c2*c1;
A.0B.0.5C.1D.2
49.下述程序的输出结果是
#include<stdio.h>
voidmain()
{inta[5]={2,4,6,8,10};
int*p=a,**q=&p;
printf("%d,",*(p++));
printf("%d",**q);}
A.4,4B.2,2C.4,5D.2,4
50.数据处理的最小单位是()。
A.数据B.数据元素C.数据项D.数据结构
51.有以下程序段
intj;floaty;charname[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入555667777abc后,y的值为
A.55566.0B.566.0C.7777.0D.566777.0
52.若有定义inta=5,b=7;,则表达式a%=(b%2)运算后,a的值为()。
A.0B.1C.11D.3
53.在计算机中,算法是指()。
A.查询方法B.加工方法C.解题方案的准确而完整的描述D.排序方法
54.设有定义:inta=2,b=3,c=4;,则以下选项中值为0的表达式是()。
A.(!a==1)&&(!b==0)B.(a<B)&&!c||1C.a&&bD.a||(b+B)&&(c-A)
55.为了合理组织数据,应遵循的设计原则是()
A.“一事一地”的原则,即一个表描述一个实体或实体之间的一种联系
B.用外部关键字保证有关联的表之间的联系
C.表中的字段必须是原始数据和基本数据元素,并避免在表之间出现重复字段
D.以上各原则都包括
56.为了使模块尽可能独立,要求()。
A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
57.执行以下程序后,a,b的值分别为main(){ina,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}
A.-1,5B.1,6C.0,7D.4,10
58.有如下程序段inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');执行该程序段后,x的值为______。
A.真B.假C.0D.1
59.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______。
A.地址传递B.单向值传递C.由实参传绐形,再由形参传回实参D.传递方式由用户指定
60.一个采用顺序存储方式的线性表中,若线性表的第一个元素的存储地址是200,每一个元素的长度是2,则第6个元素的地址是______。
A.208B.210C.211D.212
四、选择题(20题)61.当执行以下程序段时,()。x=-l:do{x=x*X;)while(!x);A.循环体将执行一次B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误
62.
63.设有宏定义:
64.
65.有以下定义语句,编译时会出现编译错误的是()。
A.chara=’\x2d’;B.chara=。\n。;C.chara=…a;D.chara=”aa”:
66.
67.
68.有以下程序:
当执行程序时,按下列方式输入数据(从第l列开始,<;CR>;代表回车,注意:回车也是一个字符]12<;CR>;34<;CR>;则输出结果是()。
A.12B.123C.1234D.12343
69.
以下程序执行后sum的值是()。
main
{inti,sum;
for(i=1;i<6;i++)sum+=i:
printf("1%d\n",sum):
}
A.15B.14C.不确定D.0
70.有以下程序程序执行后的输出结果是()。
A.abe,a23B.abe,123C.123,abeD.321,cba
71.有以下程序:
#include<stdio.h>
structord
{intX,y;)dt[2]={1,2,3,4};
main()
{
structord*p=dt;
printf("%d,",++(p->x));printf("%d\n",++(p->y));
}
程序运行后的输出结果是()。
A.1,2
B.4,1
C.3,4
D.2,3
72.有以下程序:
程序运行后的输出结果是()。
A.16B.1C.32D.0
73.以下叙述中正确的是______。A.预处理命令行必须位于源文件的开头
B.在源文件的一行上可以有多条预处理命令
C.宏名必须用大写字母表示
D.宏替换不占用程序的运行时间
74.下列叙述中正确的是()。
A.一个算法的空间复杂度大,则其时间复杂度也必定大
B.一个算法的空间复杂度大,则其时间复杂度必定小
C.一个算法的时间复杂度大,则其空间复杂度必定小
D.上述三种说法都不对
75.以下叙述中错误的是()。
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界的出错信息”
D)可以通过赋初值的方式确定数组元素的个数
76.若二维数组a有m列,则在a[i][j]前的元素个数为()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
77.
78.下列叙述中正确的是()。
A.用E—R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系
B.用E—R图只能表示实体集之间一对一的联系
C.用E—R图只能表示实体集之间一对多的联系
D.用E—R图表示的概念数据模型只能转换为关系数据模型
79.(51)在计算机中,算法是指()
A.查询方法
B.加工方法
C.解题方案的准确而完整的描述
D.排序方法
80.有以下计算公式:
若程序前面已在命令行中包含math.h文件,不能够正确计算上述公式的程序段是
([answer]
五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不相等,2和Y的值不相等。例如,当x的值为1,y的值为2,z的值为3时,函数值为2.O0。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),该函数的功能是统计一行字符串中单词的个数,并将其作为函数值返回。字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。注意:部分源程序在文件prog1.c中。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:1#include<string.h>2#include<stdio.h>3#defineN804intfun(char*s)5{67}8voidmain()9{10FILE*wf;11charline[N];12intnum=0;13printf("Enterastring:\n");14gets(line);15num=fun(line);16printf("Thenumberofwordsis:%d\n\n",num);17/*********found*********/18wf=fopen("out.dat","w");19fprintf(wf,"%d",fun("abigcar"));20fclose(wf);21/*********found*********/22}
参考答案
1.B解析:选项A)中,定义的初值个数大于数组的长度;选项C)中,数组名后少了中括号;选项D)中,整型数组不能赋予字符串。
2.C解析:数据库是数据的集合,其中的数据是按数据所提供的数据模式存放的,它能构造复杂的数据结构,以建立数据之间的内在联系与复杂的关系-故答案为C。
3.C题干中使用typedef定义新类型名INTEGER,它代表int*类型。使用INTEGER定义p,相当于int*p。使用INTEGER定义*q,相当于int**q。所以p是基类型为int的指针变量,q是基类型为int*的指针变量,选项A、B、D错误。故本题答案为C选项。
4.D
5.D
6.B软件设计包括软件的结构设计、数据接口设计和过程设计。其中软件结构设计主要包括系统由哪些子系统构成,以及这些子系统之间的关系是怎样的,并将这些内容编写成文档;数据接口设计的任务是为每个子系统设计其与其他子系统间的接口,并编写成文档,这个接口要是一个无二义的接口,不需要子系统的操作知识就可以使用;过程设计是指系统结构部件转换成软件的过程描述。
7.A静态变量不是每调用一次就赋一次初值,而是将需要定义许多相同的具有相同属性的值时,使用静态变量来节省空间,所以A选项错误。
8.Cchar类型用于存储单个字符的简单变量类型,它可以被指定为一个字符常量或一个整数。
9.A选项B是从键盘上输入字符串,选项C是接收字符,选项D不正确。
10.Bdo…while循环的执行过程如下:①执行do后面的循环体中的语句。②计算while后一对圆括号中表达式的值。当值为非0时,转去执行步骤①;当值为0时,执行步骤③。③退出do…while循环。对于本题变量i的初始值等于“0”,接着执行do后面的循环体中的语句,输出变量i的值0。再判断while后面括号中表达式i十的值,其值为0,所以循环结束。.此时变量i的值经过自加已经变为1,所以再次输出i的值“1”。
11.B
12.B
13.B此题考查除法运算,根据先乘除后加减,有括号先算括号的原则,先计算x/y,即l2/8=1,所以z=0.9+1=1.9。但是Z是整型的,转化一下取整除部分,结果Z=1
14.C解析:题目中所给函数的功能是;先用函数strcpy把参数串str2复制到参数串str1中去,然后用函数strcat把参数串str3连接到经过修改后的参数串str1后,因此选项C正确。
15.C程序首先定义整型变量a和b,a的初值为123456。接着通过while循环,判断a的值是否为0,若不为0,则执行循环体。每次循环将a当前值的个位数字(a%10)赋给b,a自身除以10。再通过switch语句判断b的值执行对应分支语句。所以对应a的每个个位数,b的取值为6,5,4,3,2,1。当b取值为6时,执行default,输出6,接着继续执行case1,通过break退出switch。执行下一次循环,当b取值为5时,执行case5输出5。执行下一次循环,当b取值为4时,执行case4输出4,继续执行case5输出5。接着执行下一次循环,当b取值为3时,执行case3输出3,执行case4输出4,执行case5输出5;当b取值为2时,执行case2输出2,通过break退出switch;当b取值为1时,执行break,此时a的取值为0,循环终止。综上,程序输出结果为:65453452。本题答案为C选项。
16.AB)选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。C)选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可。D)选项中,C语言中的文件可以进行随机读写。
17.C
18.B
19.B算法是指为解决某个特定问题而采取的确定且有限的步骤,一个算法应当具有5个特征:有穷性、确定性、可行性、有雩个或多个输入、有一个或多个输出。本题答案为B选项。
20.C
21.1212解析:本题的第一个for循环用于给数组arr赋初值,第二个for循环用于求和运算。由于第二个for循环初始值为1,而循环条件为i<4,所以求的是arr[1]到arr[3]及i的和,所以输出结果为12。
22.19
23.77解析:此表达式为三目运算符,++a的值为6,b--的值为6,则整个表达式的值为++a的值,++a的值为7。请注意前缀++,--和后缀++,--的区别。
24.从定义到本源文件结束从定义到本源文件结束解析:C语言规定,宏名的有效范围为从定义宏到本源程序结束。
25.输出输出解析:测试用例曲测试输入数据(输入值集)和与之对应的预期输出结果(输出值集)两部分组成。
26.24
27.a[i-1]或a[-1+i]a[9-i]或a[-i+9]a[i-1]或a[-1+i]\r\na[9-i]或a[-i+9]
28.880
29.00解析:已知a=10,b=20,所以逻辑表达式a<b的值为true,即为1,在这个表达式前面有一个逻辑运算符!,表示反操作,所以整个语句的值应当为false,即为0。
30.a=a+ba=a+b解析:a+=b与a=a+b等价,作用是把变量a的值加b后再赋给变量a。
31.序言性序言性解析:注释一般分为序言性注释和功能性注释。
32.x+8sin(x)x+8,sin(x)解析:考查考生对函数调用相关知识的了解。用x+8代替函数fun(doublex)中形式参数x;用sin(x)代替函数fun(doublex)中形式参数x。
33.p=i;i>=pi<=Np=i;\r\ni>=p\r\ni<=N解析:本题主要考查了插入排序。由于程序中的数组在开始己经按从小到大顺序排序排好。在插入时,首先要查到第一个大于恃插入数的数组下标,即当待插入元素小于数组中当前元素时,记下数组的当前下标p,并结束循环,故第一空目的是为了记下数组下标,应填p=i;插入排序的第二部是将大于待插入元素的所有元素都向后移动—位,故在循环时,要从最后一个元素到第p个元素都要后移一位,因此第二空应填>i=p。最后一个循环是将N+1个元素都输出,故最后一空应为i<=N。(注:本题有多种答案,以上仅提供一种)
34.p=jx[i][p]LineMax(x)
35.'\0''\\0'解析:本题涉及字符数组和指针的两个知识点:①在C语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符'\\0'所以题中数组str有6个元素。②ptr指向数组str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
36.B66B66解析:字符B的ASCII码值为66,因此,按%c形式输出B,按%d形式输出66,输出结果为:B66。
37.246
38.软件开发
39.算法算法解析:算法是指对解题方案的准确而完整的描述。
40.b=i+1b=i+1解析:本题考查了for循环语句的执行过程。i+=2是修正表达式,执行一次循环体后i的值就增加2,i的初始值为0,每次加2之后和累加至a,所以a的值就是1~10之间的偶数之后;b的值是1~11之间的奇数和,但在输出b值时c去掉多加的11,即为1~10之间的奇数之和。
41.A解析:作为一个算法,一般应该具有下列4个特征:(1)可行性,即考虑到实际的条件能够达到一个满意的结果;(2)确定性,算法中的每一个步骤都必须是有明确定义的,(3)有穷性,一个算法必须在有限的时间内做完;(4)拥有足够的情报。
42.B解析:第一个for循环,给数组a的20个元素分别赋值0~19;第二个for循环,给数组p赋值,p[0]=a[1]=1,p[1]=a[2]=2,p[2]=a[5]=5,p[3]=a[10]=10;第三个for循环,将数组p中元素的值进行累加,k=1+2+5+10=18。
43.B解析:本题考查if语句。scanf函数通过键盘读入a、b的值,a=1,b=2。第一个if语句,先判断条件,发现a<b条件成立,则s=b=2,s=s*s=4。
44.D解析:在本题中,主函数在调用fun()函数进行排序时,传递的参数是c+4和6,fun()函数实现的功能是将数组c的第5个元素开始的6个元素依次进行从大到小的顺序排列。排序之后,数组c的内容变为{1,2,3,4,9,8,7,6,5,0}。
45.B
46.A
47.C解析:因为fun(intx)是一个递归函数,所以主函数中fun(7)经过三次递归调用,其过程可以描述为'fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1)))=7-(5-(3-3))=7-5=2”,所以最后的输出结果为2。
48.A
49.D解析:考查一维数组的指针和指向指针的指针两个知识点。通过赋值,指针p和q都指向了数组a的首地址,*(p++)先引用数组元素,然后p++,所以输出结果为2,**q指向的数组元素为4。
50.C解析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项C)。
51.B解析:本题考查通过scanf函数输入数据时的格式控制问题。变量j的格式控制为“%2d”,即只接收输入数据的前两位,从第三位开始直到空格之间的输入都会被保存到变量y中,因为y为浮点型数据,所以输出结果为选项B)。
52.A解析:本题考查'%'运算符的使用。运算符'%'要求两个运算对象都为整型,其结果是整数除法的余数。本题中表达式ao%=(b%2)等价于a=a%o(b%2)=5%(7%2)=5%1=0。
53.CC。【解析】计算机算法是指解题方案的准确而完整的描述,它的基本特征分别是:可行性、确定性、有穷性和拥有足够的情报。
54.A解析:本题考查逻辑运算。根据运算符的优先级顺序,选项A的值为“(!2==1)&&(!3==0)=0&&(!3==0)=0”,选项B的值为“(2>3)&&!4||1=0&&!4||1=0&&0||1=0||1=1”。选项C的值为“2&&3=1”。选项D的值为“2||(6)&&(2)=2||1=1”。所以只有选项A的值为0。注意:在进行逻辑与运算时,若“&&”的左边运算结果已经为0,则“&&”右边的表达式将不再进行计算,结果总为0;在进行逻辑或运算时,若“||”的左边运算结果已经为1,则“||”右边的表达式也将不再进行计算,结果总为1。
55.D解析:为了合理的组织数据,应遵循的设计原则有:“一事一地”的原则,即一个表描述一个实体或实体之间的一种联系;用外部关键字保证有关联的表之间的联系;表中的字段必须是原始数据和基本数据元素,并避免在表之间出现重复字段。所以选择D。
56.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。
57.C解析:inta,b,k=4,m=6,*p1=&k,*p2=&m;声明整型变量a,b,k,m和指针p1,p2,并分别将4和6赋给k和m,将k和m的地址赋给P1和p2;a=p1==&m;等价于a=(p1==&m);将p1是否等于地址m的值(0)赋给变量a,b=(*p1)/(*p2)+7;该句的含义是将后面表达式的的值7赋给变量b。
58.D解析:a&&b的值为true,c<'B'的值也为true,所以(a&&b)&&(c<'B')的值为true。但x是int型变量,所以(a&&b)&&(c<'B')的值最后要从bool型转换为int型赋给x。这样x的值应为1。
59.B解析:C语言函数中的参数传递方式有传值与传址两种方式,传值方式是指将实参的值复制一份传递给形参,而传址方式是指将实参的变量地址传递给形参,也就是实参的引用。
60.B解析:顺序结构中,第n个元素的地址为An=A0+(n-1)*L(A为地址,L为元素长度)。
61.Ado-wlfile的功能是先执行一次循环体,再判断条件是否成立,当x=-1时,执行do语句,x=x*x=1,接着执行while后的表达式,其值为0,退出循环,因此循环体只执行了一次。
62.A
63.AIsDIV(k,n)判断k被n整除是否余l,所以IsDIV(m,5)&&IsDIV(m,7)就是判断m被5和7整除是否都余l。
64.B
65.DD选项中将字符串常量…aa赋给字符变量a是错误的。
66.C
67.C
68.D按照从键盘输入的数据可以_判断字符l给了变量a,字符2给了变量b,字符<CR>即回车给了变量c,字符3给了变量d。所以打印输出的结果为D选项。
69.C
\nsum+=i等价于sun+i,在本题中sum没有赋初值,而题中只输出sum的值,因此整个结果为不确定值。
\n
70.A字符串是一个特殊的数组,按照数组的规则,sl应该指向的是数组的首地址,即“abc”的第一个字符的地址,s2指向的是“123”的第一个字符的地址。调用swap函数之后交换的是两个字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学生检讨书15篇
- 神经解剖学名词解释
- 表面张力与马拉高尼效应的比较-Comsol
- 2024-2025学年高中物理 第五章 曲线运动 2 平抛运动(3)教学实录 新人教版必修2
- 2024九年级化学下册 第十单元 酸和碱课题2 酸和碱的中和反应第1课时 酸和碱的中和反应教学实录(新版)新人教版
- 寒假工实习报告【五篇】
- 乒乓球比赛作文600字集合7篇
- 2024年秋八年级历史上册 第1课 鸦片战争同步教学实录 新人教版
- 北师大版八年级上册数学期末考试试题附答案
- 简爱读后感300字十篇
- 常州大学《数据采集与清洗》2021-2022学年期末试卷
- 餐饮服务电子教案 学习任务4 鸡尾酒调制
- 定金协议书范文范本简单一点
- 幼儿园教育活动设计与指导学习通超星期末考试答案章节答案2024年
- 2024秋期国家开放大学《政治学原理》一平台在线形考(形考任务四)试题及答案
- TSG51-2023起重机械安全技术规程
- 生活垃圾焚烧厂运行维护与安全技术标准 CJJ 128-2017
- 智慧物流第4套理论题附有答案
- GB/T 44325-2024工业循环冷却水零排污技术规范
- Web安全与防护 (微课版)教案全套 武春岭 01-1 项目一 Web安全基础-08-4 项目八 安全的应用发布
- 餐饮管理招聘面试题与参考回答(某大型央企)
评论
0/150
提交评论