版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年江西省南昌市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.以下不正确的定义语句是A.A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5.3]={0,1,3,5,7,9};
C.charc1[]={′1′,′2′,′3′,′4′,′5′};
D.charc2[]={′\x10′,′\xa′,′\x8′};
2.以下选项中与“(!a==0)”的逻辑值不等价的表达式是()。
A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)
3.
4.有以下程序:#includeMain(){Int?x=1.y=0;if(!x)y++;elsef(x==0)if(x)y+=2;else?y+=3;printf("%d\n",y);\}程序运行后的输出结果是()。A.3B.2C.1D.0
5.字符(char)型数据在微内存中的存储形式是______。
A.反码B.补码C.EBCDIC码D.ASCII码
6.
7.若有定义"int(*pt)[3];",则下列说法正确的是()。
A.定义了基类型为int的三个指针变量
B.定义了基类型为int的具有三个元素的指针数组pt
C.定义了一个名为*pt、具有三个元素的整型数组
D.定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组
8.快速排序在_____情况下最易发挥其长处。
A.被排序数据中含有多个相同排序码
B.被排序数据已基本有序
C.被排序数据完全无序
D.被排序数据中最大值和最小值相差悬殊
9.数据的存储结构是指______。
A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据
10.
11.在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的()
A.连接码B.关系码C.外码D.候选码
12.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
13.若有如下程序:main(){inta=0,t=0;while(!a!=0)t+=a++;printf("%d,%d\n",t,A);}则程序运行后的输出结果是()
A.0,1B.1,0C.0,0D.1,1
14.
15.设有说明:charw;intx;f1oaty;doublez;则表达式w*x+z-y值的数据类型为()。
A.floatB.charC.intD.double
16.能在O(1)时间内访问线性表的第i个元素的结构是()
A.顺序表B.单链表C.单向循环链表D.双向链表
17.以下正确的叙述是()。
A.在C程序中,每行中只能写一条语句
B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C.在C程序中,无论是整数还是实数,都能被准确无误地表示
D.在C程序中,%是只能用于整数运算的运算符
18.对包含N个元素散列表进行查找,平均查找长度()。
A.为OB.为O(N)C.不直接依赖ND.上述三者都不是
19.有以下程序:voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main{char*s1="abe",*s2="123":swap(s1,s2);printf("%s,%s\n",s1,s2);}程序执行后的输出结果是()。A.123,abeB.abc.123C.1bc,a23D.321,cba
20.设有定义:charpE]={’1’,‘2’,’3’},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
二、2.填空题(20题)21.面向对象的模型中,最基本的概念是对象和______。
22.Jackson方法是一种面向【】的结构化方法。
23.以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{inta[4][4]={{1,2,3,4},{5'6'7'8},{11'12'13'14},{15'16'17'18}};
inti=0,j=0,s=0;
while(i++<4)
if(i==2[[i==4)continue;
j=0;
do{s+=a[i][j];j++;}while(j<4);
}
pdnff("%d'\n",s);
}
24.执行下列程序的输出结果是【】。
main()
{
floata=1,b;
b=++a*++a;
printf("%f\n",b);
}
25.近年来形成了软件开发的多种模式,大致有3种类型:基于瀑布模型的结构化生命周期方法、基于动态定义需求的【】方法和基于结构的面向对象的软件开发方法。
26.下列程序的输出结果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
27.在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是【】函数。
28.已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有链结点数据域的和值,作为函数值返回。请在横线处填入正确内容。
structlink
{intdata;structlink*next;}
main()
{structlink*head;
......
sum(head);
......
}
sum(【】);
{structlink*p;ints=0;
p=head->next;
while(p){s+=p->data;p=p->next;}
return(s);}
29.以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。
#defineN4
voidrotate(inta[][N],intb[][N])
{inti,j;
for(i=0;i<N;i++)
{b[i][N-1]=a[0][i];【】=a[N-1][i];}
}
30.语句:x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【】。
31.设有以下定义和语句,则*(*(p+2)+1)的值为【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
32.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。
33.阅读下面语句,则程序的执行结果是【】。
#include"stdio.h"
main()
{inta=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d,%d\",a,b);
elseprintf("%d,%d\n",b,a);}
34.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,其中______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
35.以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{charm;
m='B'+32;
printf("%c\n",m);
}
36.设a、b、c为整数,且a=2、b=3、c=4,则执行完以下语句后,a的值是【】。
a*=18+(b++)-(++c);
37.下列程序段的输出结果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
38.按“先进后出”原则组织数据的数据结构是[]。
39.有以下程序:
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i+1;
printf("%d\n",a[1][2]);
}
程序运行后的输出结果是【】。
40.以下程序中函数fun()的功能是构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单向链表中所有结点中的字符串。请填空完成函数disp。
#include<atdio.h>
typedefstructnode/*链表结点结构*/
{charsub[3];
structnode*next;
}Node
Node~un(chars)/*建立链表*/
{......}
voiddisp(Node*h)
{Node*Ps
p=h->next;
while(【】)
{printf("%s\n",p->suh);p=【】;}
}
main()
{Node*hd;
hd=fun();disp(hd);prinff("\n");
三、1.选择题(20题)41.以下选项中与if(a==1)a++;elsea=b;语句功能不同的语句是()。
A.switch(A){ease0:a=b;break;default:a++;}
B.switch(a==1){case0:a++:default:a=b;}
C.switch(A){default:a=b;break;case1:a++;}
D.a=(a==1)?(a++):b
42.有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}执行后输出结果是()。
A.赋初值的字符串有错B.6,7C.5,6D.6,6
43.请选出可用作C语言用户标识符的是
A.void,define,WORD
B.a3_3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
44.在数据库设计中,将E-R图转换成关系数据模型的过程属于()。A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段
45.有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向此链表中的3个连续结点。structnode{intdata;structnode*next;}*p,*q,*r;
现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是
A.p->next=q->next;
B.p-next=p->next->next;
C.p->next=r;
D.p=q->enxt;
46.要求以下程序的功能是计算main(){intn;floats;s=1.0;for(n=10;n>1;n--)s=s+1/n;pfintf("%6.4f\n",s);}程序运行后输出结果错误,导致错误结果的程序行是
A.s=1.0;
B.for(n=10;n>1;n--)
C.s=s+1/n;
D.printf("%6.4f\n",8);
47.若有说明语句:charch='\x41';,则ch中______。
A.包含4个字符B.包含2个字符C.包含1个字符D.字符个数不确定,说明不正确
48.有以下程序:voidfun(char*a,char*B);{a=b;(*A)++;}main(){charc1='A',c2='a',*p1,*p2;p1=&cl;p2=&c2:fun(p1,p2);printf("%c%c\n",c1,c2);}程序运行后的输出结果是
A.AbB.aaC.AaD.Bb
49.下面程序main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1;elseif(ok2)x=10;x=1;printf("%d\n",x);}的输出是______。
A.-1B.0C.1D.不确定的值
50.下列叙述中不正确的是()。
A.在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B.在C的函数中,最好使用全局变量
C.外部变量可以在函数之间传递数据
D.自动变量实质上是一个函数内部的局部变量
51.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,下列选项中不能表示a[1]地址的表达式是()。
A.p+1B.a+1C.a++D.#NAME?
52.现有如下程序段#include"stdio.h"#include"string.h"main(){chara[]="acfijk";/*这里是有序的字符序列*/charb[]="befijklqswz";/*这里是有序的字符序列*/charc[80],*p;inti=0,j=0,k=0;while(a[i]!二'\0'&&b[j]!='\0'){if(a[i]<b[j])c[k++]=a[i++];elsei
A.acfijkbefijklqswz
B.abceffiijjkklqswz
C.befijklqswzacfijk
D.abcefijklqswz
53.下列叙述中正确的是()。
A.算法的执行效率与数据的存储结构无关
B.算法的空间复杂度是指算法程序中指令(或语句)的条数
C.算法的有穷性是指算法必须能在执行有限个步骤之后终止
D.以上3种描述都不对
54.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()A.有零个或多个输入B.有零个或多个输出C.有穷性D.可行性
55.用C语言编写的代码程序A.可立即执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行
56.有以下程序
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3},i,n;
fp=fopen("d1.dat","w");
for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);
fprintf(fp,"\n");
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d",&n);
fclose(fp);
printf("%d\n",n);
}
程序的运行结果是
A.12300B.123C.1D.321
57.有以下程序:#include<stdio.h>voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}执行后的输出结果是()。
A.4B.3C.2D.1
58.若函数调用时,参数为基本数据类型的变量,下列叙述中正确的是()。
A.实参与其对应的形参共占存储单元
B.只有当实参与其对应的形参同名时才共占存储单元
C.实参与其对应的形参分别占用不同的存储单元
D.实参将数据传递给形参后,立即释放原先占用的存储单元
59.为了使模块尽可能独立,要求()。
A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
60.有以下程序
#include
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
四、选择题(20题)61.
62.有以下程序程序的运行结果是()。
63.设有定义下列:inta=1,b=2,c=3,d=4,m=2,n=2;则表达式(m=a>b)&&(n=c>d)运算后,n的值是()。
A.4B.3C.2D.0
64.(24)对建立良好的程序设计风格,下面描述正确的是()
A.程序应简单、清晰、可读性好
B.符号名的命名要符合语法
C.充分考虑程序的执行效率
D.程序的注释可有可无
65.下面程序的输出结果是()。
main()
{inta,b;
scanf("%2d%3d",&a,&b);
printf("a=%db=%d\n",a,b);
}
A.a=12b=34
B.a=123b=45
C.a=12b=345
D.语句有错误
66.有下列程序:
fun(intx,inty)
{staticintm=0,i=2;
i+=++rn;m=ixy;returnm;
}
main
{intj=l,m=1,k;
k=fun(j,m);printf("%d,",k);
k=fun(j.m);printf(”%d\n”,k);
}
执行后的输出结果是()。
A.5.5B.5,11C.11,11D.11,5
67.
68.第
42
题
下面说明不正确的是
A.chara[10]="china";
B.chara[10],*p=a;p="china"
C.char*a;a="china";
D.chara[10],*p;p=a="china"
69.
70.有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母:
程序运行后的输出结果是()。
A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!
71.
72.
73.以下叙述不正确的是()。
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算赋值表达式a=b后,b的值将放入a中,而b的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
74.
75.现有格式化输入语句,
已知在输入数据后,
x,Y,z的值分别是23,56,78,则下列选项中正确的输入格式是()。
A.23,56,78<Enter>
B.x=23,y=56,z=78<Enter>
C.x=23C,sumy=56,z=78<Enter>
D.x=23],sum]y=56,line]z=78<Enter>
76.
77.下列关于算法复杂度描述正确的是()。
A.算法的时间复杂度是指算法执行的时间
B.算法的空间复杂度是指执行这个算法所需的内存空间
C.一个算法的空间复杂度大,则其时间复杂度必定大
D.一个算法的空间复杂度大,则其时间复杂度必定小
78.
79.有以下程序程序运行后的输出结果是()。
A.143B.197C.33D.28
80.要求以下程序的功能是计算:s=1+1/2+1/3+…+1/100。
程序运行后输出结果错误,导致错误结果的程序行是()。
A.s=1.0;
B.
C.S=S+1/n;
D.
五、程序改错题(1题)81.下列给定的程序中,函数proc的功能是:判断字符ch是,与str所指字符串中的某个字符相同;若相同,则什么也不做,若不同,则将其插在串的最后。请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
//****found****
voidproc(charstr,charch)
{
while(*str&&*str!=ch)str++;
//****found****
if(*str==ch)
{str[0]=ch;
//****found****
str[1]=0:
}
}
voidmain
{
charstr[81],ch;
system("CLS");
printf("\nPleaseenterastring:");
gets(str);
printf("\nPleaseenterthecharacterto
search:");
ch=getchar;
proc(str,ch);
printf("\nTheresultis%s\n",str);
}
六、程序设计题(1题)82.假定输入的字符串中只包含字母和*号。请编写函数proc,它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则应当是a*bc*def*g****。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}
参考答案
1.B
2.A运算符逻辑非“!”和“==”,逻辑非“!”的优先级高于“==”,选项A等价于“(!a)==0”。如果a不等于0,则表达式为真,否则表达式为假。故本题答案为A选项。
3.B
4.D[解析]在ifelse语句中else,总是与离它最近的配对。本题目中x为1所以!劝0.所以执行elsei语句中的内容,判断(x==0)是否成立,因为劝1所以条件不成立,所以else内部的if..else语句不再执行,所以y的值还是初始值0.
5.D解析:将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的ASCII码值放到存储单元中。
6.D
7.D\n数组指针是指向数组的一个指针,int(*pt)[3]表示一个指向3个int元素的数组的一个指针。
\n
8.C
9.B解析:数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般不可能相同。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构。
10.C
11.DD)【解析】在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的候选码或候选键。从二维表的所有候选键中选取一个作为用户使用的键称为主键或主码。
12.D各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、快速排序n(n-1)/2、简单插入排序n(n-1)/2、希尔排序0(n1.5)、简单选择排序n(n-1)/2、堆排序O(nlog2n)
13.A
14.C
15.D
16.A
17.D
18.C
19.C本题考查swap函数,它的作用是把x、Y所指的内容互换,其他的不变,因此当执行完调用函数后,仅仅a与1互换,其他的没有变。
20.A根据题目中的定义可以知道sizeof(p),计算的是数组P中所有元素所占用的字节数,而不是ch”型数据所占字节数。
21.类类
22.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。
23.9292解析:本题考查循环的嵌套。
①当i=0时执行while语句,i++<4成立,这时i=1,不执行continue语句,继续执行j=0;然后执行do-while语句,共循环4次:
a)j=0时,s=0+a[1][0]=5,j=j+1=1。
b)j=1时,s=5+a[1][1]=5+6=11,j=j+1=2。
c)j=2时,s=11+a[1][2]=11+7=18,j=j+1=3。
d)j=3时,s=18+a[1][3]=18+8=26,j=j+1=4。终止循环。
②当i=1时执行while语句,i++<4成立,这时i=2,执行continue语句,结束本次循环。
③当i=2时执行while语句,i++<4成立,这时i=3,不执行continue语句,继续执行j=0;然后执行do-while语句,共循环4次:
a)s=26+a[3][0]=26+15=41,j+1=1。
b)s=41+a[3][1]=41+16=57,j+1=2。
c)s=57+a[3][2]=57+17=74,j+1=3。
d)s=74+a[3][3]=74+18=92,j+1=4。终止循环。
④i=3时,执行while语句,i++<4成立,这时i=4,执行continue语句,结束本次循环。
⑤当i=4时,执行while语句,i++<4不成立,结束while循环。输出s的结果92。
24.66解析:++的优先级高于*,先作自加运算,b=++a*++a=2.0*3.0=6.0。b按实型输出6.000000。
25.原型化原型化
26.66解析:条件运算符的优先级高于赋值运算符,因此本题先计算关系表达式(*ptr+y)<x)?*(ptr+y):x的值,再赋给变量z。当y=0时,*(ptr+y)=2,而x=8,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=2,所以z=2;当y-1时,*(ptr+y)=4,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=4,所以z=4;当y=2时,*(ptr+y)=6,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=6,所以z=6;循环结束。因此输出z的结果为6。
27.rewind()或fseek()rewind()或fseek()
28.structlink*headstructlink*head解析:考查用指针引用结构体变量成员数据的方法。因为本题中是用结构体变量构成了链表,所以要从链表头节点,逐个节点的引用结构体的数据域,需要有指向结构体变量的指针,依次指向各个节点,即p=p->next,而用指针引用结构体成员数据的方法为:p->data。
29.b[i][0]b[i][0]解析:因为要将a的最后一行放在b的第0列中,【】应填b的第0列的元素。
30.x+=1;
31.6060解析:程序中定义a是一个3行2列的二维数组,p是指向两个元素的一维数组指针,并让p指向二维数组a的首行。则代码*(*(p+2)+1)中的p+2指向二维数组a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。
32.可重用性继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。
33.101,0解析:与运算两边的语句必须同时为真时,结果才为真。当执行完if((++a<0)&&!(b--<=0))时,a,b的值已经发生了变化。
34.驱动模块驱动模块解析:由于模块通常不是独立的程序,自己不能运行,而需要其他模块调用或驱动,同时被测试模块还要去调用其他模块,前者称为驱动模块,后者称为承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是代替被测模块,调用其他模块。
35.bb解析:本题实现的功能是把大写字母转换为小写字母。小写字母的ASCII码值比相应的大写字母的ASCII码值大32。
36.3232解析:a*=18+(b++)-(++c)即a=a*(18+(b++)-(++c)),++c的值为5,a=2*(18+3-5)=32。b++是先使用b的值在对b加1,++c是先对c加1再使用c的值。
37.HelloHello解析:字符串中,数值0或符号'/0'表示字符串的结束。本题中,b[5]被赋了0值,表明字符串b的第六个字符就是结束标志。因此,只输出前五个字符,即Hello。
38.栈栈解析:栈和队列都是—种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的—端进行插入或删除操作,是—种“先进后出”的线性表;而队列只允许在表的—端进行插入操作,在另—端进行删除操作,是—种“先进先出”的线性表。
39.66解析:本题定义了二维数组a和指针变量p,p指向数组的首地址,for循环语句的功能是给数组元素赋值,结果为a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][1]=5、a[1][2]=6、a[2][0]=7、a[2][1]=8、a[2][2]=9,故printf函数的输出结果为6。
40.p!=NULL或P或p!=0或p!='0'p->next或(*p).nextp!=NULL或P或p!=0或p!='0'\r\np->next或(*p).next解析:程序中定义了一个结构体类型名Node,其中定义了一个指向结点类型的指针next。接下来用Node定义了头结点指针变量h和指向第一个结点的指针变量p,在满足p未指向最后一个结点的空指针时(即为NULL),输出p所指向结点的字符串,所以第一处应填p!=NULL,然后将p指向下一个非空结点,所以第二处应填P->next或与其等效的形式,反复执行直到所有的结点都输出。
41.B
42.C解析:本题在定义字符数组时没有定义数组长度,但用字符常量给数组赋了初值,这时初值的个数即为数组的长度,故数组长度为6(包括'\\0')。字符串的长度为有效字符的个数5。strlen(s)返回值为串中字符的个数(不计最后的'\\0'),则输出值为5。sizeof(s)计算数组所占的字节数,包含'\\0',则输出值为6。因此,C选项正确。
43.B解析:C语言规定用户标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线,可见选项C),D)是错误的;此外,C语言不允许用户将关键字作为标识符,而选项A)中的void正是C语言的关键字。
44.CE-R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。
45.D解析:本题考查链表结点的删除。q->next中存放的是r所指结点的首地址,将r所指结点的首地址存于p->next中,则实现删除q所指结点的功能,并保持链表连续,p所指结点与r所指结点相连。
46.C解析:程序中由于n为整型,所以1/n的结果始终为0,故程序最后输出的结果为0,其结果错误,原因为在表达式1/n中1和n均为整型,所以应该将1改为1.0,这样表达式1.0/n的值不为0,为该数学表达式的值,因此我们可以知道导致程序运行后输出结果错误的行为s=s+1/n。
47.C解析:'\\x41'是转义字符,x表示41是十六进制数,41是字母a的ASCII码值。
48.A解析:经过分析得知fun()函数的功能:将形参9指向形参b所指的存储空间,然后使形参a指向变量的值加1。在主函数中定义了字符型指针变量p1和p2,并让它们分另别指向c1和c2.然后将p1、p2作为实参传递给形参a、b.在fun()函数中,首先让指针变量p1向p2,然后p1指向的存储空间的值加1,即让变量c2加1为“b”,而c1的值没有被改变,仍然是“A”。所以,4个选项中选项A符合题意。
49.A解析:第一个判断值为真,过渡到下一个判断,第二个判断为真,过度到第三个判断......如此循环,在打印输出语句的前一行,程序给变量x赋了值,为-1,所以,无论前期如伺变化,最后的x值依然为-1。
50.B解析:编译时,编译系统不为局部变量分配内存单元,而是在程序运行中,当局部变量所在的函数被调用时,编译系统根据需要要临时分配内存,调用结束空间释放;全局变量一经定义,编译系统为其分配固定的内存单元,在程序运行的自始至终都占用固定的单元。在考虑内存不定的情况下,最好使用全局变量。
51.C解析:本题考查数组地址的表示。选项C)中,数组名所表示的数组地址不能被重新赋值。
52.D解析:这个题目的功能是实现两个有序字符串,合并成一个新的有序的字符串。
53.C解析:算法的执行效率与数据的存储结构密切相关。算法的空间复杂度是指算法执行过程中所需的存储空间。
54.B解析:本题考核的知识点是算法的性质。算法是为解决某个特定问题而采取的确定的且有限的步骤,一个算法应当具有以下5个基本特性:1.有穷性,就是指一个算法应当包含有限个操作步骤。2.确定性,就是说算法中每一条指令必须有确切的含义,不能有二义性,对于相同的输入必能得出相同的执行结果。3.有零个或多个输入。4.可行性,就是说算法中指定的操作,都可以通过已经实现的基本运算执行有限次实现,5.有一个或多个输出。由此可知选项B不正确,所以,4个选项中选项B符合题意。
55.B解析:C语言是一种高级语言,C语言源程序经过C语言编译程序编译之后,生成一个后缀为.OBJ的二进制文件(称为目标文件),最后还要由称为“连接程序”(Link)的软件,把此.OBJ文件与c语言提供的各种库函数连接在一起,生成一个后缀.EXE的可执行文件。显然C语言不能立即执行。
56.B解析:在函数中首先把整型数组a[10]中的每个元素写入文件d1.dat中,然后再次打开这个文件,把文件d1.dat中的内容读入到整型变量n中,最后输出变量n的值。
57.A解析:该程序通过main函数循环凋用sum函数。
当i=2时,将实参aa[2]的地址传递给形参,此时a[0]=a[1]=aa[3]=4,即aa[2]=4;
当i=1时,将实参aa[1]的地址传递给形参,此时a[0]=a[1]=aa[2]=4,即aa[1]=4;
当i=0时,将实参aa[0]的地址传递给形参,此时a[0]=a[1]=aa[1]=4,即aa[0]=4;
当i=-1时,不满足条件i>=0,跳出循环,程序执行后数组aa中的值为4,4,4,4,5,6,7,8,9,10,所以aa[0]=4。
58.C解析:本题考查函数调用时的参数传递。函数的形参是函数定义时由用户定义的形式上的变量,实参是函数调用时,主调函数为被调函数提供的原始数据。在函数调用时,实参和其所对应的形参分别占用不同的存储单元,彼此之间不影响。
59.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。
60.A解析:本题中,最主要的是掌握几个有关文件函数的应用。
函数名:fopen
功能:打开一个文件
调用方式FILE*fp;
fp=fopen(文件名,使用文件方式);
函数名:fprintf
功能:传送格式化输出到一个文件中
调用方式:fprintf(文件指针,格式字符串,输出表列);
函数名:fclose
功能:关闭一个文件
调用方式:fclose(文件指针);
函数名:fscanf
功能:从磁盘文件执行格式化输入
调用方式:fscanf(文件指针,格式字符串,输入列表)。
61.C
62.A本题主要考查的是函数。在fun函数中,首先将形参nl和n2分别赋给局部变量i和j,然后使用]while循环,交换s[i]和s[j]的内容,并使i增1、j减1,直到i不小于j为止。所以该函数实现的功能是:对形参指针s所指的一系列元素,从第nl位到第n2位进行逆序。主函数中,连续调用T3次fun函数依次对数组a的第0-3位、第4~9位和第0~9位进行了逆序。对0~3位逆序后,数组。的内容是{4,3,2,1,5,6,7,8,9,0};再对4~9位逆序后是I4,3,2,l,0,9,8.7,6,5};最后对0~9位逆序后是I5,6。’7,8,9,0,l,2。3,4}。
63.C解析:在逻辑与&&运算中,如果第一个操作数为假,则结果是假,后面的操作数不参与运算,本题中因为第一个操作数(m=a>b)为假,所以第二个操作数(n=c>d)不参加运算,因此n的值不变。
64.A
65.C严格按照格式进行输入和输出。%2d%3d,a是两位输入,b是三位,输出时亦是这个格式。
66.B
\n变量m和i声明为局部静态变量,因此第1次调用fun函数后,局部静态变量m和i的值为5和3,第l次调用结束时,它
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 24284-2026大型焰火燃放安全技术规程
- 江苏省南京市2027届高三上学期9月学情调研化学试卷(含答案)
- 2026-2027学年人教版四年级数学上册第六单元条形统计图培优验收综合卷(含答案)
- 2026九年一贯制学校名班主任工作室专题培训课件:班主任的情绪管理与自我调节
- 尖锐湿疣的护理与预防
- 2026新学期小学生心理健康教育课件
- 2026新学期社区居民加强灾害预警守护生命安全课件
- 2025-2026年生物多样性保护与生态保护法律法规模拟试卷
- 2025-2026年计算机网络基础与安全知识巩固习题
- 2026年浙江省部编版初中数学下册第3单元同步练习题
- 保山电力股份有限公司招聘笔试题库
- 风电场施工材料采购与管理方案
- 医学计算机应用
- 童年第九章题目和答案
- 中风偏瘫中医护理查房
- 供货计划安排方案(3篇)
- 2024年贵州省粮食储备集团有限公司招聘真题
- 航天器轨道课件
- 新12S8室外给水管道附属构筑物标准图集
- 部编高教版2023·职业模块 中职语文 2.《宁夏闽宁镇:昔日干沙滩今日金沙滩》 课件
- 2025届高三化学一轮复习策略讲座
评论
0/150
提交评论