




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年江苏省南京市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有以下结构体说明、变量定义和賦值语句:structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];则下列scanf函数调用语句有错误的是()。
A.scanf(“%s”,s[0].name);
B.scanf(“%d”,&s[0].age);
C.scanf(“%c”,&(ps->sex));
D.scanf(“%d”,ps->age);
2.有以下程序:#include<stdio.h>main(){inty=10;while(y--);printf(“y=%d\n”,y);}程序运行后的输出结果是()。
A.y=0B.y=-1C.y=1D.while构成无限循环
3.算法的有穷性是指A.算法程序的运行时间是有限的
B.算法程序所处理的数据量是有限的
C.算法程序的长度是有限的
D.算法只能被有限的用户使用
4.层次型、网状型和关系型数据库划分原则是()。
A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式
5.要求当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,以下不满足要求的表达式是()。A.A%2==1B.!(A%2==0)C.A%2D.!(A%2)
6.一个队列的入队序列是a,b,c,d,则出队序列是()。
A.a,b,c,dB.a,c,b,dC.d,c,b,aD.a,c,b,d
7.对线性表进行二分法检索,其前提条件是()。
A.线性表以顺序方式存储,并按关键码值排好序
B.线性表以顺序方式存储,并按关键码的检索频率排好序
C.线性表以链式方式存储,并按关键码值排好序
D.线性表以链式方式存储,并按关键码的检索频率排好序
8.以下叙述中错误的是()。
A.线性结构也能采用链式存储结构
B.线性结构一定能采用顺序存储结构
C.有的非线性结构也能采用顺序存储结构
D.非线性结构一定不能采用顺序存储结构
9.若有如下函数定义:doublefun(intx,inty){return(x+y);}return语句中表达式值的类型与说明的类型不一致,则以下叙述中正确的是()。
A.运行时出错B.函数返回的值为int型C.编译出错D.函数返回的值为double型
10.设x和y均为bool量,则x&&y为真的条件是()。
A.它们均为真B.其中一个为真C.它们均为假D.其中一个
11.有以下程序:#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf(“%d”,--y);}程序的运行结果是()。
A.852B.963C.741D.875421
12.设变量已正确定义,则以下能正确计算f=n!的程序是()。A.f=0:for(i=1;i<=n;i++)f*=i:
B.F=1:for(i=1;i<2n;i++)f*=i:
C.f=1:for(i=n;i>1;i++)f*=i:
D.f=1;for(i=n;i>=2;i--)f*=i:
13.每次从无序表中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做()排序。
A.插入B.堆C.快速D.归并排序
14.有以下程序
#include<stdio.h>
intfun(intx,inty)
{if(x==y)return(x);
elsereturn((x+y)/2);
}
main()
{inta=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
程序运行后的输出结果是A.3B.6C.8D.12
15.有以下程序段:intx=3;do{printf("%d",x-=2);)while(!(--x));其输出结果是()。A.1B.30C.1-2D.死循环
16.插入和删除只能在一端进行线性表,称为()。
A.队列B.循环队列C.栈D.循环栈
17.下列对于线性链表的描述中正确的是()
A.存储空间不一定是连续,且各元素的存储顺序是任意的
B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
18.现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。structnode{hardata;structnode*next;)*P,*q,*r;现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是()。A.q-:>next=r->next;p--:>next=r;rm:>next=q;
B.q-:>next=r;q->next=r->next;r->next=q;
C.q-:>next=r->next;r->next=q;p->next=r;
D.q-:>next=q;p->next=r;q->next=r->next;
19.程序中已构成如下不带头节点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表节点,指针变量s总是作为指针指向链表的第1个节点。若有以下程序段:q=s;s=s->next;p=s;while(p->next)p=p->next;p->next=q;q->next=NULL;该程序段实现的功能是()。
A.删除尾节点B.使尾节点成为首节点C.删除首节点D.使首节点成为尾节点
20.下列关于线性链表的描述中正确的是()。
A.存储空间不一定连续,且各元素的存储顺序是任意的
B.存储空间不一定连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且各前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
二、2.填空题(20题)21.若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句()。
22.软件工程研究的内容主要包括:【】技术和软件工程管理。
23.有以下程序
main()
{intx=1,y=1,z=1;
y=y+z;x=x+y;
printf("%d",x<y?y:x);
printf("%d",x<y?x++:y++);
printf("%d",x);
printf("%d",y);
}
运行结果是【】
24.数据的独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,这称为______。
25.算法的复杂度主要包括【】复杂度和空间复杂度。
26.以下程序用来输出结构体变量ex所占存储单元的字节数:
structst
{charname[20];doublescore;};
main()
{structstex;
printf("exsize:%d\n",sizeof(【】));
}
27.以下程序运行后的输出结果是【】。
main()
{charc;intn=100;
floatf=10;doublex;
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
28.汉字系统中,字库中的汉字是以【】码存在。
29.下列程序执行输出的结果是【】。
#include<stdio.h>
f(inta)
{intb=0;
staticc=3;
a=c++,b++;
return(a);}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);}
30.strcat函数的作用是【】。
31.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE*myf;longf1;
myf=【】("test,t","rb");
fseek(myf,(),SEEK_END;f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
32.问题处理方案的正确而完整的描述称为______。
33.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。
34.栈满时,再作入栈操作会产生【】,栈空时,删除操作会产生【】。
35.以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。
structnode
{intinfo;
【】link;};
36.以下程序的运行结果是()。#defineA4#defineB(x)A*x/2main(){floatc,a=8.0;c=B(A;printf("%f\n",C);}
37.函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,当s<t时返回负值。请填空。
my_cmp(char*s,char*t)
{while(*s==*t)
{if(*s=='\0')return0;
++s;++t;
}return【】;
}
38.阅读下面程序段,则执行后输出的结果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara=′A′;
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
39.下列程序的功能是对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
40.以下程序给指针p分配三个double型动态内存单元,请填空。
#include<stdio.h>
#include<stdlib.h>
main()
{double*p;
p=(double*)malloc(【】);
p[0]=1.5;p[1]=2.5;P[2]=3.5;
printf("%f%f%f\n",p[0],p[1],p[2]);
}
三、1.选择题(20题)41.有说明char.*c[]={"European","Asian","American","African"};则下列叙述中正确的是
A.*(c+1)='A'
B.c是—个字符型指针数组,所包含4个元素的初值分别为"European","Asian"、"American"和"African"
C.c[3]表示字符串"American"的首地址
D.c是包含4个元素的字符型指针数组,每个元素都是一个字符串的首地址
42.有以下程序main(){union{unsignedintn;unsignedcharc;}ul;u1.C='A';pfintf("%c\n",u1.n);}执行后输出结果是
A.产生语法错B.随机值C.AD.65
43.有以下程序:#include<stdio.h>main(){inti,n=0;for(i=2;i<5;i++){do{if(i%3)continue;n++;}while(!i);n++;}printf("n=%d\n",n);}程序执行后的输出结果是()。
A.n=5B.n=2C.n=3D.n=4
44.以下选项中不属于字符常量的是
A.′C′B.′′C′′C.′\xCC′D.′\072′
45.下列循环体的执行次数是()。
#include<stdio.h>
main()
{inti,j;
for(i=0,j=1;i<j+1;i+=1,j--)
phntf("%d\n",j);
}
A.3B.2C.1D.0
46.设x=015,则x=x017的值是()。
A.1111B.11111101C.10D.11000000
47.下面程序输出的结果是______。main(){inti=5,j=9,x;x=(i==j?:(j=7));printf("\n%d,%d",i,j);}
A.5,7B.5,5C.语法错误D.7,5
48.下述程序的输出结果是()。#include<stdio.h>voidmain(){chara=3,b=1;charc=a^b<<2;printf("%d",C;}
A.1B.7C.3D.2
49.下列程序执行后的输出结果是()。#include<stdio.h>#include<string.h>main(){chararr[2][4];strcpy(arr[0],"you");strcpy(arr[1],"me");arr[0][3]='&';Printf("%s\n",arr);}
A.you&meB.youC.meD.err
50.下列程序的输出结果是______。main(){inti;for(i=1;i+1;i++){if(i>4){printf("%d",i++);break;}}printf("%d",i++);}
A.55B.56C.程序错误,没有输出D.循环条件永远为真,死循环
51.(49)A.*sB.sC.*s++D.(*s)++
52.设有以下说明语句structex{intX;floaty;charz;}example;则下面的叙述中不正确的是
A.struct结构体类型的关键字
B.example是结构体类型名
C.x,y,z都是结构体成员名
D.structex是结构体类型名
53.有以下程序:main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66<回车>,则输出结果是______。
A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6
54.下列不属于软件调试技术的是______。A.强行排错法B.集成测试法C.回溯法D.原因排除法
55.以下叙述中错误的是A.gets函数用于从终端读入字符串
B.getchar函数用于从磁盘文件读入字符
C.fputs函数用于把字符串输出到文件
D.fwrite函数用于以二进制形式输出数据到文件
56.下列叙述中正确的是()。
A.接口复杂的模块,其耦合程度一定低
B.耦合程度弱的模块,其内聚程度一定低
C.耦合程度弱的模块,其内聚程度一定高
D.上述三种说法都不对
57.若程序执行时的输入数据是"2473",则下述程序的输出结果是#include<stdio.h>voidmain(){intcs;while((cs=getchar())!=,'\n'){switch(cs='2'){case0case1:putchar(cs+4);case2:putchar(cs+4);break;case3:putchar(cs+3);default:putchar(cs+2);}}}
A.668977B.668966C.6677877D.6688766
58.若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以哪种方式打开文件()。
A.wbB.wb+C.rb+D.rb
59.在设计程序时,应采纳的原则之一是______。
A.程序结构应有助于读者理解B.不限制goto语句的使用C.减少或取消注解行D.程序越短越好
60.下列程序的输出结果是______。main(){intn;(n=6*4,n+6),n*2;printf("n=%d\n",n);}
A.22B.23C.24D.25
四、选择题(20题)61.
62.x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是()。
A.INPUTx,y、z;
B.scanf(”%d%d%d”,&x,&y,&z.);
C.sCanf(”%d%d%d”,x,y,z.);
D.read(”%d%d%d”,&x,&y,&z.);
63.在下列选项中,没有构成死循环的是
64.有以下程序:
#include<stdio.h>
voidexch(intt[])
{t[0]=t[s];}
main()
{intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;
while(i<=4){exch(&x[i]);i++;}
for(i=0;i<5;i++)printf("%dl"x[i]);
printf("\n");
}
程序运行后输出的结果是()。
A.246810
B.13579
C.12345
D.678910
65.
66.设变量已正确定义,则以下能正确计算f=n!的程序是()。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++)f*=i;
C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
67.以下合法的十六进制数是()。
A.0x
B.0x4De
C.0xlh
D.oX77
68.
69.
70.程序流程图(PFD.中的菱形代表的是()。
A.数据流B.控制流C.加工步骤D.逻辑条件
71.有以下程序:
main()
{intX,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0)
printf("%d,i)";
}
}
输出结果是()。
A.28
B.27
C.42
D.41
72.视图设计一般有3种设计次序,下列不属于视图设计次序的是()。
A.自顶而下B.由内向外C.由外向内D.自底向上
73.
74.
75.
有以下程序:
main
{inti,j;
for(j=10;j<11;j++)
{for(i=9;i<j;i++)
if(!(j%i))break;
if(i==j-1)
printf("%d",j);
}
}
输出结果是()。
A.11B.10C.9D.1011
76.有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);}
程序运行后的输出结果是
A.4B.3C.2D.1
77.以下选项中正确的语句组是()。
78.若有以下语句
79.
设有以下定义和语句:
charstr[2O]="Program",*P:
p=str:
则以下叙述中正确的是()。
A.*p与stf[0]的值相等
B.str与P的类型完全相同
C.str数组长度和P所指向的字符串长度相等
D.数组str中存放的内容和指针变量P中存放的内容相同
80.有以下程序:
程序执行后的输出结果是()。
A.PrphsbnB.ProhsbnC.ProgsbnD.Program
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:对M名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.请编写函数proc(),该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N).按顺序合并组成一个新的字符串。例如,若字符串数组中的M个字符串为:ABCDBCDEFGCDEFGHI则合并后的字符串内容应该是:ABCDBCDEFGCDEFGH1。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.D题目中需要输入一个变量,scanf要求输入参数为指针,而D选项中“ps->age”为变量,不是指针。故本题答案为D选项。
2.B执行“y--”直到值为0。退出循环。由于“y--”是后缀自减运算,先使用再自减,因此退出循环时,y的值为-1。故本题答案为B选项。
3.A算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。
4.D层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的联系方式。
5.D
6.A
7.A解析:对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。
8.D满二叉树与完全二叉树均为非线性结构,但可以按照层次进行顺序存储。本题答案为D选项。
9.D题干中“x+y”是整型,函数的返回值是double类型,由于整型可以自动转换成double类型,因此函数值返回时自动转换成double类型。故本题答案为D选项。
10.A
11.A第1次for循环,y的值为9,“y%3”的值为0,满足if条件输出“--y”,即先自减后输出,所以输出8;第2次for循环,y的值为7,“y%3”的值为1,不满足if条件,不执行printf语句;第3次for循环,y的值为6,“y%3”的值为0,满足if条件输出“--y”,即先自减后输出,所以输出5;第4次for循环,y的值为4,不满足if条件,不执行printf语句;第5次for循环,y的值为3,满足if条件,输出2;第6次for循环,y的值为1,不满足if条件,不执行printf语句。故本题答案为A选项。
12.D由i"11的数字定义可知n!=n*(n-1)*(n-2)*…*1。在选项A中,由于f的初值为0,在for循环语句中,f依次乘以1,2,3,…,n,最后计算得到f=n!一0,所以选项A不正确。在选项B中,f的初值为1,在for循环语句中,f依次乘以1,2,3,…,(n-1),最后计算得到f=(n-1)!,所以选项B不正确。在选项C中,f的初值为1,在for循环语句中,f依次乘以n,n+1,n+2,……,所以选项c不正确。在选项D中,f的初值为l,在for循环语句中,f依次乘以n,n-1,n-2,…,2,最后计算得到f=n!,所以选项D正确。
13.B
14.B
15.C本题考查do-while循环,先执行d0输出的x的值为1,接着执行while语句,此时--x的值为0,x也为0,而非0为1,循环成立,接着执行do输出X值为-2,执行--x后,表达式为-2,而!(--x)为0,退出循环。
16.C
17.A本题考查的是线性单链表、双向链表与循环链表的结构及其基本运算。\n在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。故本题答案为A。
18.D由题目中线性链表的定义可知,要将q和r所指的结点交换前后位置,只要使q指向r的后一个结点,P指向r结点,r指向q结点即可。而在选项D中,r->next=q,这时r指向的节点为q;p->next=r,这时P指向的节点为r;q->next:r->next,因为r节点已经指向q,所以执行这个语句后q又指向q,所以选项D不正确。
19.D程序中,指针s指向了它的下一个节点。题目中说明了s总是指向链表的第1个节点。然后while循环找到链表的最后一个元素,最后一个元素指向了之前链表的头节点,之前头节点指向了空节点。所以本题实现的是使首节点成为尾节点。故本题答案为D选项。
20.A解析:线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也可能是不连续的。
21.printf(“a=%db=%d”aB);printf(“a=%d,b=%d”,a,B);解析:printf函数的一般格式为:“printf(格式控制,输出表列)”。
22.软件开发
23.3233
24.物理独立性物理独立性解析:数据的独立性是指数据和应用程序相互独立,分为物理独立性和逻辑独立性。其中物理独立性是指数据的物理结构(包括存储结构、存取方式)改变时,不需要修改应用程序。而逻辑独立性是指当逻辑结构改变时,不需要修改应用程序。
25.时间时间解析:算法的复杂度主要指时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
26.ex或structstex或structst解析:求一个变量所占的存储单元数,用sizeof函数,参数为该变量名或其变量类型。
27.220.000000220.000000解析:注意区分运算符的优先级。先是给c赋值,然后计算x=f*=n/=50,得x=f*=2,最后有x=20。x输出是按浮点数的形式输出的,小数点后的0不能少。
28.字形字形
29.44解析:本题考查了静态存储类别的局部变量的特点。静态存储类别的局部变量在程序的整个生存周期内都存在,但作用域却只局限于定义它的函数或局部范围。当i=0时执行第一次for循环,k=f(2),a=c++,b++;因为赋值运算符的优先级高于逗号运算符,所以a=3,c=4;当i=1时执行第二次for循环,k=f(3),a=c++,b++;因为c为静态局部变量所以保留着这一次执行的结果值4,所以a=4,c=5,所以函数f()返回a的值为4。
30.连接两个字符数组中的字符连接两个字符数组中的字符解析:strcat函数的作用是连接两个字符数组中的字符串。
31.fopenfopen解析:C语言中的文件分为:ASCII文件与二进制文件。文件在使用前打开,使用后要关闭。打开文件的函数为:fopen(),调用形式为:fp=fopen(“文件名”,“使用文件方式”);关闭文件的函数为:fclose(),调用形式为:fclose(fp);其中fp为文件指针。
32.算法或程序或流程图算法或程序或流程图解析:算法是问题处理方案正确而完整的描述。
33.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。
34.上溢下溢上溢\r\n下溢
35.structnode*structnode*解析:本题中的结构类型名为structnode,所以空白处应填:structnode*。即定义一个指向自身的结构体指针。
36.16.0
37.*s-*t*s-*t解析:两字符串大小比较必须从它们的首字符开始,在对应字符相等情况下循环,直至不相等结束。相等时,若字符串已到了字符串的结束标记符,则两字符串相同,函数返回0值;如还有后继字符,则准备比较下一对字符。对应字符不相同,循环结束。循环结束时,就以两个当前字符的差返回。所以在空框处应填入*s-*t,保证在e>t时返回正值,当s<t时返回负值。
38.NN解析:函数说明语句中的类型名必须与函数返回值的类型一致。本题实现的是在字符'A'的ASCII码值上加上一个常数,使之变成另一个ASCII码值,从而输出字符。
39.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析题目可知,程序中运用函数c=getchar()从标准输入设备读取下一个字符,而且是一行的字符(即没有换行),所以条件为(c=getchar())!='\\n'。
40.3*sizeof(double)或243*sizeof(double)或24解析:观察程序可知,本题要求用malloc函数分配三个double型的动态内存单元。
41.D解析:本题考查了数组的定义和初始化,c是一个字符型指针数组,每个元素都是一个指向字符串的指针。
42.C解析:在定义共用体的同时,定义了一个共用体型变量u1,共占两个字节,有两个成员n和c,两个成员的首地址是相同的。因此给u1,c赋一个“A”,其实就是给无符号整型成员u1.n的低字节赋一个“A”,输出u1,n的时候是以字符型的形式输出,只输出它的低地址的一个字节,因此为“A”。
43.D解析:for循环中,当i=2时,i%3为真,结束本次while循环,!i为假,执行n++,n为1;当i=3时,i%3=0,执行n++,n为2,!i为假,执行n++,n为3;当i=4时,i%3为真,结束本次while循环,!i为假,执行n++,n为4;当i=5时,for循环结束。这时输出n=4。
44.B解析:在C语言程序中,用单引号把一个字符或反斜线后跟一个特定的字符括起来表示一个字符常量。选项A)、C)和D)为正确的字符常量,而选项B)是用双引号括起来的字符,表示一个字符串常量。
45.C解析:本题考查for循环。第一次循环前先判断循环条件,此时i=0,j=1,i<j+1成立,循环第一次;第二次循环前先判断循环条件,此时i=1,j=0,(j--是先使用i的值再减1),i<j+1不成立,结束循环。
46.C解析:本题主要考查按位异或运算,x=015(二进制00001101),017的二进制为000001111,两者异或结果为00000010。
47.A解析:条件表达式的一般形式为:表达式1?表达式2:表达式3;先求解表达式1,若为真则求解表达式2;若表达式1的值为假,则求解表达式3。本题中先判断i=j,不等,执行j=7;然后执行x=7。故本题为A。
48.B
49.A解析:函数strcpy的功能是字符串拷贝,函数原型为char*strcpy(char*strl,char*str2),作用是将字符串2复制到字符串1中去。二维数组可以看做是一种特殊的一维数组,它的每一个元素又是一个一维数组。本题arr可看做是一个具有两个元素arr[0]和arr[1]的一维数组,每个元素又是一个包含四个元素的一维数组。
50.B解析:本程序中有个for循环,但注意到for循环的条件是“i+1”,也就是只要i+1的值为真(非零值均为真),就执行循环。当i=1的时候,i+1的值为真,判断if条件不成立,执行i++,输出i的值为5。
51.A解析:结构体node的数据成员data的类型为char型,而s为传入的字符串.
52.B解析:本题中,structex是结构体类型名,ex-ample是结构体变量名。
53.A解析:char型数据类型以%d的形式输入时,输入的是ASCII值。65是字符A的ASCII码值,66是字符B的ASCII值。
54.B解析:我们严格区分调试与测试,调试是已知有错误而来找错误,是被动的;测试有很多种,比如未发现错误但不能保证程序没错而来找BUG,还比如我们运行测试程序是否符合用户的要求,是主动的。所以答案是选项B。A、C、D都是具体的程序调试方法,而B是宏观的程序测试方法。测试有单元测试、集成测试、确认测试、系统测试。比如我们在进行单元测试时,发现程序有错误,我们再可以根据A、C、D的方法来找错误。
55.B其中B选项的getchar函数用于从终端读入字符。故本题答案为B选项。
56.C解析:影响模块之间耦合的主要因素有两个:模块之间的连接形式,模块接口的复杂性。一般来说,接口复杂的模块,其耦合程度要比接口简单的模块强,所以选项A的说法错误;耦合程度弱的模块,其内聚程度一定高,选项B错误;选项C正确。
57.A解析:本题主要考查switch语句的使用方法。switch语句的执行过程为:进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时,则执行default后面的语句。
58.B解析:本题考查文件使用方式标识符。方式“wb”为输出打开一个二进制文件;方式“wb+”为读写建立一个新的二进制文件;方式“rb+”为读写打开一个二进制文件:方式“rb”为输入打开一个二进制文件。
59.A解析:程序设计的风格主要强调程序的简单、清晰和可理解性,以便读者理解。因此选项A是正确答案。程序滥用goto语句将使程序流程无规律,可读性差;添加的注解行有利于对程序的理解,不应减少或取消;程序的长短要依照实际需要而定,并不是越短越好。因此选项B、C、D都是错误的。
60.C
61.D
62.B考查格式输入函数scanf的使用。scanf函数的一般格式是:scanf(格式控制,地址表列)该格式中,地址表列中应是变量地址,而不是变量名。
63.D本题是考查死循环的含义。在编程中,一个无法靠自身的控制终止的循环称为“死循环”。选项A给出的函数主体是while语句,该语句的循环结束条件是i>100,初始i=100,执行完i=i%100+1语句后,i的值变为1,由于不满足循环结束条件,循环执行while,执行完第二次i=i%100+1语句后,i的值变为2,一直循环执行下去,i的值最大只能达到100,永远不会达到结束条件,故选项A是死循环。选项B是一个for循环,它的一般形式为:for(<初始化>;<条件表达式>;<增量>)语句;for循环中的“初始化”、“条件表达式”和“增量”都是选择项,即可以缺省,但“;”不能缺省。省略了初始化,表示不对循环控制变量赋初值。省略了条件表达式,则不做其他处理时便成为死循环。省略了增量,则不对循环控制变量进行操作。选项C是一个do-while语句,先执行do语句,然后用while后面的语句进行判断。初始时,k=10000,执行完do语句后,k=10001,满足while里的判断语句k>10000,继续执行do-while,因为k的值一直是增大的,故该循环将一直运行下去。D选项是一个while循环,该循环结束的条件是s<=0,该循环初始时s的值为36,每执行一次while循环,将执行--s操作,当s=0时,循环结束。
64.D本题中exch函数是用数组中的第6个元素对第1个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 律师调解劳动合同协议书范文
- 跨区域购销合同转让正式合同
- 个体经营合作合同模板专业版
- 信息技术服务合同(一)
- 购销合同终止补充协议
- 深圳市龙华区教育系统临时聘用合同书样本
- 厨师招聘合同模板
- 旧货零售业务流程优化考核试卷
- 无机盐的提取与精制考核试卷
- 印刷企业市场调研方法考核试卷
- EPC项目采购管理方案
- 旅游景区旅游安全风险评估报告
- 门窗安装工程投标书范本(二)
- 追觅科技在线测评题
- 智鼎在线测评107题
- 病历书写规范与住院病历质量监控管理制度
- 12诗词四首《渔家傲-秋思》公开课一等奖创新教学设计 初中语文九年级下册
- 金矿承包协议合同2024年
- 解读国有企业管理人员处分条例(2024)课件(全文)
- 创新创业基础-理论、案例与训练(大学生创新创业教育课程)全套教学课件
- TD/T 1072-2022 国土调查坡度分级图制作技术规定(正式版)
评论
0/150
提交评论