版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年河南省鹤壁市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若有说明语句:charc='\72'则变量c()。
A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法,c的值不确定
2.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。
A.scanfB.getcharC.getsD.getc
3.
4.
5.若k是int类型变量,且有以下for语句:for(k=-1;k<O;k++)printf("****\n");下面关于语句执行情况的叙述中正确的是()。、A.循环体执行一次B.循环体执行两次C.循环体一次也不执行D.构成无限循环
6.程序中若有如下说明和定义语句charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;.....}以下选项中对函数Fun的正确调用语句是______。A.(*f1)(a);B.*f1(*s);C.fun(&a);D.ch=*f1(s);
7.数据结构通常研究数据的()及运算。
A.物理结构和逻辑结构B.存储和抽象C.理想和抽象D.理想与逻辑
8.
下列程序的输出结果是()。
main
{inta,b,d=25;
a=d/10%9;
b=a&&(一1);
printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
9.判断一个循环队列cq(最多元素为m)为空的条件是()。A.cq->rear-cq-front=m;
B.(cq->rear+1)%m=cq->front;
C.cq->front=cq->rear;
D.cq->rear=m-1;
10.A[N][N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是()。
A.i(i-1)/2+jB.j(j-1)/2+iC.i(j-i)/2+1D.j(i-1)/2+1
11.
12.设变量P是指针变量,语句P=NULL;是给指针变量赋NULL值,它等价于()。A.A.p="";
B.p="0";
C.p=0;
D.p="";
13.以下程序的运行结果是#defineMAX(A,B)(A)>(B)?(A):(B)#definePRINT(Y)printf("Y=%d\t",Y)main(){inta=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);PRINT(t);}
A.Y=3B.存在语法错误C.Y=7D.Y=0
14.设intx=7,则~x的值是()。
A.-8B.7C.-1D.1
15.有以下程序段intj;floaty;charname[50]:scanf("%2d%f%s",&i,&.y,name):当执行上述程序段,从键盘上输入555667777abc后,y的值为()。A.55566.0B.566.0C.7777.0D.566777.0
16.设有条件表达式:(EXP)?i++:j--,则以下表达式中与(E)(P)完全等价的是A.(EXP==0)B.(EXP!=0)C.(EXP=-1)D.(EXP!=1)
17.以下叙述中错误的是()。
A.改变函数形参的值,不会改变对应实参的值
B.函数可以返回地址值
C.可以给指针变量赋一个整数作为地址值
D.当在程序的开头包含文件stdi0.h时,可以给指针变量赋NULL
18.选出任何情况下都不引起二义性的宏定义()。
A.#definePOWER(x)x*x
B.#definePOWER(x)((x)*(x))
C.#definePOWER(x)(x*x)
D.#definePOWER(x)(x)*(x)
19.若希望下列的程序运行后输出25,程序空白处的正确选项是()。main{intid=50,a[]=(7,4,10,5,8};for()j+=a[i];printf("%d",j-40);}A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i
20.
二、2.填空题(20题)21.数据库系统其内部分为三级模式,即概念模式、内模式和外模式。其中,______是用户的数据视图,也就是用户所见到的数据模式。
22.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。
23.“printf("%d\n",strlen("\t\"\023\xABC\n"));”语句的输出结果是______。
24.数据结构分为逻辑结构与存储结构,线性链表属于【】。
25.以下程序运行后的输出结果是______。
main()
{
charm;
m='B'+32;
printf("%e\n",m);
}
26.下面程序的功能是:计算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);}
27.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。
28.按数据流的类型,结构化设计方法有两种设计策略,它们是变换分析设计和______。
29.下面程序的运行结果是【】。
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
30.下面程序是把从终端读入的20个字符作为字符串放在字符数组中,然后利用指针变量输出上述字符串,请填空。
#include<stdio.h>
main()
{inti;chars[21],*p;
for(i=0;i<20;i++)
s[i]=getchar();
s[i]=【】;
p=【】;
while(*p)putchar(【】);
}
31.以下程序的输出结果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
32.函数调用语句:“fgets(buf,n,fp);”从中指向的文件中读入n个字符放到buf字符数组中,函数返回值为______。
33.当数据的物理结构(存储结构)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的【】。
34.在面向对象方法中,类的实例称为______。
35.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。
36.队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许插入的一端称作______。
37.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统—管理与控制。
38.设y为int型变量,请写出描述“y是偶数”的表达式______。
39.若有以下程序:
main()
{int,p,a=5;
if(P=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
执行后输出结果是【】。
40.下列程序的输出结果是______。
#include<stdio.h>
main()
{intx=3,y=2,z=1;
if(x<y)
if(y<0)z=0;
elsez+=1;
printf("%d\n",z);
}
三、1.选择题(20题)41.以下不属于对象的基本特点的是()
A.分类性B.多态性C.继承性D.封装性
42.可以在C语言中用做用户标识符的是______。
A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG
43.有以下程序
intadd(inta,intb){return(a+b);}
main()
{intk,(*f)(),a=5,b=10;
f=add;
…
}
则以下函数调用语句错误的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);
44.设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值是
A.1B.2C.3D.4
45.若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10,0,b赋予22.0,c赋予33.0,下列不正确的输入形式是
A.10<回车>22<回车>33<回车>
B.10.0,22.0,33.0<回车>
C.10.0<回车>22.033.0<回车>
D.1022<回车>33<回车>
46.若希望下列的程序运行后输出25,程序空白处的正确选项是()。
main()
{inti,j=50,a[]={7,4,10,5,8};
for()
j+=a[i];
primf("%d,j-40);
}
A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i
47.有以下程序:#include<stdio.h>#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>:n;i--)a[i+1]=a[i];}main(){inti,a[N.]=11,2.3,4,5,6,7,8,9,10[;fun(a,2,9)for(i=0;i<5;i++)printf("%d",a[i]);程序运行后的输出结果是()。
A.10234B.12344C.12334D.12234
48.有以下程序;charfun(charx,chary){if(x<y)returnx;returny;}main(){inta='9',b='8',c='7';printf("%c\n",fun(fun(a,B),fun(b,C)));}程序的执行结果是
A.函数调用出错B.8C.9D.7
49.下列关于C语言数据文件的叙述中正确的是A.文件由ASCII码字符序列组成,C语言只能读写文本文件
B.文件由二进制数据序列组成,C语言只能读写二进制文件
C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
50.以下程序的输出结果是()。main()charc1='6',c1='0'printf("%d,%d,%d\n",c1,c2,c1-c2);}
A.因输出格式不合法,输出出错信息B.54,48,6C.6,0,7D.6,0,6
51.请读程序:#include<stdio.h>inta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p++;printf("%d\n”,a[2]);}上面程序的输出结果是()
A.6B.8C.4D.2
52.有以下程序:#include<string.h>main(intargc,char*argv[]){inti,len-0;for(i=l;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行exabcdefgh3k44执行后输出的结果是
A.14B.12C.8D.6
53.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填______。structlink{chardata;______;}node;
A.Structlinknext
B.link*next
C.structnextlink
D.Structlink*next
54.以下程序中函数reverse的功能是将a所指数组中的内容进行逆置:voidreverse(inta[],intn){inti,t;for(i=0;i<n/2l;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}程序运行后的输出结果是()。
A.22B.10C.34D.30
55.若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是()。
A.++i;B.n1=(n2/(n3=2));C.k=i=j;D.a=b+c=2;
56.若有以下定义,则正确的switch语句是______。floatx;inta,b;
A.switch(x){case1.0:printf("*\n");csse2.0:printf("**\n");}
B.switch(x){case1,2:printf("*\n");case3:printf("**\n");}
C.switch(a+b){case1:printf("\n");case1+2:printf("**\n");}
D.switch(a+b);{case1:printf("*\n");case2:printf("**\n");}
57.详细设计主要确定每个模块具体执行过程,也称过程设计,下列不属于过程设计工具的是()
A.DFD图B.PAD图C.N-S图D.PDL
58.有以下程序main(){inta[]={1,2,3,4,5,6,7,8,9,0},*P;for(p=a;p<a+10;p++)printf("%d,",*p);}程序运行后的输出结果是
A.1,2,3,4,5,6,7,8,9,0,
B.2,3,4,5,6,7,8,9,10,1,
C.0,1,2,3,4,5,6,7,8,9,
D.1,1,1,1,1,1,1,1,1,1,
59.若要对a进行++运算,则a应具有下面说明
A.inta[3][2];
B.char*a[]{"12","ab"};
C.char(*a)[3];
D.intb[10],*a=b;
60.下述程序向文件输出的结果是_______。#include<stdio.h>voidmain(){FILE*fp=fopen("TEST","wb");fprintf(fp,"%d%5.of%c%d",58,76273.0,'-'2278);fclose(fp);}
A.5876273-2278
B.5876273.000000-2278
C.5876273-2278
D.因文件为二进制文件而不可读
四、选择题(20题)61.
62.有以下程序:
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
63.有以下程序程序运行后的输出结果是()。
A.3B.0C.7D.8
64.
下述程序的输出结果是()。
#defineN20
voidfun(inta[],intn,intm)
{inti,j;
for(i=m;i>n;i--)a[i+1]=a[i];
}
main()
{inti,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i<5;i++)printf("%d",a[i]);
}
A.10234B.12344C.12334D.12234
65.有以下程序:
#include<stdio.h>
main()
{inta;
scanf("%d",&a);
if(a++<9)printf("%d\n",a);
clscprintf("%d\n",a--);
}
程序运行时从键盘输入9<回车>,则输出结果是()。
A.10B.11C.9D.8
66.有以下程序执行程序时,给变量X输入l0,程序的输出结果是()。
A.55B.54C.65D.45
67.
68.有两个关系R和S如下:
则由关系R得到S的操作是()。
A.投影B.交C.选择D.并
69.
70.若有定义:doublea=22;inti=0,k=18;,则不符合c语言规定的赋值语句是()。A.i=a%ll;B.i=(a+k)《=(i+k);C.a=a++,i++;D.i=!a;
71.在c语言中,变量的隐含存储类别是()。
A.autoB.staticC.externD.无存储类别
72.已知一棵二叉树前序遍历和中序遍历分别为ABDEFGCHI和DBFEGACIH,则该二叉树的后序遍历为
A.DFGEBHICAB.DGEBHFCAIC.DFGEBIHCAD.DGEBFIHCA
73.设有定义:“inta;floatb;”,执行“scanf("%2d%f",&a,&b);”语句时,若从键盘输入876543.0<回车>,a和b的值分别是()。A.A.876和543.000000B.87和6.000000
C.87和6543.000000
D.76和543.000000
74.若函数中有定义语句:inta;,则()。
A.系统将自动给a赋初值为0B.系统将自动给a赋初值一lC.这时a中的值无意义D.这时a中无任何值
75.有以下计算公式
76.若有定义语句:inta[4][10],*P,*q[4];且0<=i<4,则错误的赋值是()。
A.P=aB.q[i]=a[i]C.p=a[i]D.p=&a[2][1]
77.
78.
79.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是()。
A.模拟现实世界中不同事物之间的联系
B.强调模拟现实世界中的算法而不强调概念
C.使用现实世界的概念抽象地思考问题从而自然地解决问题
D.不强调模拟现实世界中的算法而强调概念
80.
五、程序改错题(1题)81.下列给定程序中,proc()函数的功能是:根据形参n。计算下列公式的值:t=1-1/2+1/3-1/4+…+(-1)(n+1)/n例如,若输入6,则应输出0.616667。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写fun函数,其功能是:计算并输出3~m所有素数的平方根之和。
例如,若主函数从键盘给m输入50后,则输出为s=68.665791。
请勿改动main函数与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
注意:m的值要大于2但不大于100。部分源程序给出如下。
试题程序:
#include<math.h>
#include<stdio.h>
doublefun(intm)
{}
voidmain
{
intm;
doubles;
FILE*out:
printf("\n\nInputm:");
scanf("%d",&m);
s=fun(m);
printf("\n\ns=%f\n\n",s);
ut=fopen("outfile.dat","w");
for(m=0;m<10;m++)
fprintf(out,"%f\n",fun(m+80));
felose(out);
}
参考答案
1.A解析:C语言的字符型常量中,允许用一种特殊形式的字符常量,就是以一个“\\”开头的字符。其中,“\\ddd”表示用ASCII码(八进制数)表示一个字符,本题中的charc='\\72'H口表示占一个字符的变量c的ASCII码值。
2.C解析:C语言提供了许多输入函数,其中有:getchar(输入字符)、scanf(格式输入)和gets\u3000(输入字符串)等。题目要求输入的是字符串,所以可以排除getchar,而且要求输入的字符串中包含空格,而scanf函数默认将输入的空格字符作为分割符,所以空格不会被输入,故可排除scanf。getc的作用是从文件中输入一个字符,故也不可取。gets函数可以输入一整行作为一个字符串,其中也包括空格字符,故应该选择C。
3.D
4.D
5.A本题考查简单的for语句,程序中当k<0时循环才执行,所以答案选择A。
6.A解析:题中将函数fun的入口地址赋给了指针变量f1,这时f1和fun都指向函数的开头,调用*f1就是调用函数fun。
7.A
8.B
\n当逻辑运算符“&&”两边的值是非零时,逻辑表达式的值为真(即为1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。
\n
9.C
10.B
11.D
12.C在C语言中null等价于数字0。
13.C解析:宏替换不像函数调用要进行参数值的计算、传递等,而只是简单按照原格式进行字符串的替换。注意:宏定义的命令格式。
14.A本题主要考查按位求反运算和C语言正负数的表示,“O”代表正数,“1”代表负数;x=7的二进制为00111,第一个0代表正数,~x为11000,第一个l代表负数,值为8。
15.B变量J只接收输入数据的前两位,从第三位开始直到空格之间的输入整数都会被保存到浮点型变量Y中。
16.B解析:在C语言中,逻辑表达式的结果只有两种情况“tree”和“false”。如果要把一个逻辑值看成一个整数的话,true等于1;false等于0。如果要把一个整数看成一个逻辑值的话,非0等于true:0等于false。由此可见,如果EXP表达式的结果为0的话;(EXP)为假:(EXP==0)为真;(EXP!=O)为假;(EXP==1)为假;(EXP!=1)为真。如果EXP表达式的结果为非0的话:(EXP)为真:(EXP=0)为假;(EXP!=0)为真;(EXP=1)结果不定;(EXP!=1)结果不定。综上所述,只有(EXP!=0)完全等价于表达式(EXP)。故应该选择B。
17.C指针变量的值只能是存储单元地址,而不能是一个整数,故选项C错误。
18.B解析:引起带参数宏的二义性主要有两个方面:一是,参数之间因运算符优先级不确定而带来的二义性。例如本题的选项A),若程序中使用POWER(a+b),会展开为a+b*a+b,这样就会先计算b*a的值,然后再加一个a和一个b,产生二义性。杜绝这种二义性的方法是在宏定义的每个参数外加上圆括号以保证总是先计算每个参数的值,就好像本题的选项D)那样。另一个是,整个宏所代表的表达式因运算符优先级不确定而带来的二义性。例如本题的选项D),若程序中使用a/POWER(b),会展开为a/(b)*(b),这样就会先计算a/b的值,然后再乘以b,产生二义性。杜绝这种二义性的方法是对整个宏定义加一个圆括号,就好像本题的选项B)那样。故选项B)在任何情况下都不会引起二义性,应该选B。
19.D要想使程序输出25,则j-40=25,j=65,而j初值是50,所以填入for循环的语句,使引用的数组元素累加65-50=15即可,D选项中,i下标从0开始,i=2指向第3个数50+a[2]=50+10=60,继续循环60+a[3]=60+5=65,此时i=4跳出,循环结束。
20.B
21.外模式外模式解析:数据库系统的三级模式分别是内模式、概念模式和外模式。其中,物理模式给出了数据库的物理存储结构和存取方法;概念模式是数据库系统中全局数据逻辑结构的描述;外模式是用户的数据视图,也就是用户所见到的数据模式。
22.测试实例测试实例解析:进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。
23.66解析:strlen()函数的作用是计算字符串的长度并作为函数的返回值,这里的长度不包括串尾的结束标志\'\\0\'。
\'\\t\'是转义字符,代表横向跳若干格:\'\\\''是转义字符,代表双引号:\'\\023\'只代表一个字符,而不管转义字符后面有几个字符;\'\\xAB\'是以两位+六进制数AB表示的ASCII码字符,只代表一个字符;\'\\n\'是转义字符,代表回车换行。
5个字符常量各代表一个字符,再加上字母C,所以返回的长度是6。
24.存储结构
25.bb解析:字符类型的数据在内存中以相应的ASCII码存放,另外,字符数据还可以作为整数参加运算。格式控制参数中的格式字符用以指定输出项的数据类型和输出格式,输出字符与其对应的输出项的类型要一致。本题中,“B”的ASCII码为98,字符类型m的ASCII为(98+32=130),所以最后输出为b。
26.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之间的奇数之和。
27.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。
28.事务分析设计事务分析设计解析:典型的数据流图有两种,即变换型和事务型。按照这两种类型把设计方法分为两类,即变换分析设计和事务分析设计。
29.3030解析:考查for循环的使用。题目中for(;;)表示:for循环的初始化表达式,条件表达式和修正表达式都省略了,表示进行for循环和for循环的终止都没有限制。
30.\0's*p++\\0'\r\ns\r\n*p++解析:本题先通过for循环从键盘接收20个字符,然后在串尾赋一空值'\\0'作为串结束标志。再使指针p指向串的首地址。最后通过while循环对字符串进行扫描并输出。
31.1010解析:整型指针最初被赋的值是数组arr的头指针,即指向数组的第一个元素30,p++后,指针指向数组的下一个元素,即*p=arr[1]=25,在执行*(p+3)时,则相当于a[1+3],即10。因此,输出应为100。
32.buf的首地址buf的首地址解析:考查fsets()函数的功能,f8ets()函数用来从文件中读入字符串。调用格式为:f8ets(buf,n,fp)。此处,fp是文件指针,buf是存放字符串的起始地址,n是一个int型变量。调用函数fsets()时,最多能读入n-1个字符,系统自动在最后加字符串结束标志,并以buf作为函数值返回。
33.物理独立性数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。数据独立性一般分为物理独立性与逻辑独立性两级。
34.对象对象解析:类描述的是具有相似性质的一组对象。例如,每本具体的书是一个对象,而这些具体的书都有共同的性质,它们都属于更一般的概念“书”这一类对象。一个具体对象称为类的实例。
35.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。
36.队尾队尾解析:在队列中,允许插入的一端叫做“队尾”,允许删除的一端叫做“队头”。
37.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统—管理与控制。
38.(y%2)==0(y%2)==0解析:因符合偶数的条件是对2取余为0,所以要描述y是偶数的表达式是(y%2)==0。
39.11解析:首先计算if语句后面的表达式,根据运算符的优先级可知,先算“a!=0”,该值为1,再把1赋值给p,结果为1(真),执行其后的printf语句,输出的值为1。
40.11解析:ifelse语句的功能是:若表达式的值为真,执行语句1,并跳过其他语句,执行ifelse语句的下一条语句,若表达式的值为假,跳过语句1,执行语句2,依次往下判断。题中,x=3,y=2,第一个if语句的控制条件x<y就不满足,又没有与之配对的else语句,所以直接执行printf语句,在整个过程中变量z的值都没发生变化。
41.C解析:对象的基本特点包括;标识惟一性、分类性、多态性、封装性和独立性等。继承性不属于对象的基本特点。
42.B解析:C语言规定,标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。另外还需要注意的是关键字不能作标识符。选项A中void,C中for都为关键字,D中2c以字母开头。
43.C答案C
解析:在语句“k=*f(a,b)”中,由于“()”的优先级高于“*”,所以“*f(a,b);”表示其返回类型为指针的带有两个整型参数的函数。
44.B解析:本题考查逻辑与运算的运算规则。其规则是:当运算符前后两个条件表达式都满足时,其最终结果才为真。当发现第一个表达式的值为假后,计算机将不再执行后面表达式的运算。
本题中,由于前一个表达式的值为“假”,所以,后面的表达式不再进行运算,因而n的值保持不变,仍为2。
45.B解析:在C语言中,当一次输入多个数据的时候,数据之间要用间隔符,合法的间隔符可以是空格、制表符和回车符。逗号不是合法的间隔符。
46.D解析:要想使程序输出是25,则j-40=25,j=65,而j初值是50,所以填入for循环中的语句,使引用的数组元素累加为65-50=15即可。
47.C解析:本题函数fun的作用是将指定的数组元素(下标从n~m)向后移一位。调用函数fun(a,2,9)将a[2]到a[9]的各元素依次向后移一位,最后a数组中各元素的值分别为1,2,3,3,4,5,6,7,8,9,10,程序输出数组的前5个元素:12334。
48.D解析:本题考核的知识点是函数的返回值以及返回值作为函数的参数。经过分析得出函数fun()的功能是比较形参x和形参y的大小,返回较小的一个.函数fun()有两个参数.本题中,首先定义了三个整型变量a、b和c,分别赋初值为9、8和7.然后执行函数fun(fun(a,b),fun(b,c))。在该函数中分别将fun(a,b)和fun(b,C)函数的返回值作为该函数的两个实参。在函数fun(a,b)中,由于a>b,故返回较小值b即8,在函数fun(b,C)中,由于b<c,故返回较小值c即为7,因此调用函数fun(fun(a,b),fun(b,C))相当于执行函数fun(8,7),返回较小值即7。所以,4个选项中选项D符合题意。
49.D解析:C语言把文件看成是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。根据数据的组织形式,可分为ASCII文件和二进制文件。ASCII文件又称文本文件,它的每一个字节放一个ASCII代码,代表一个字符。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。
50.A解析:因为main()函数缺少左大括号,所以编译无法通过。应该选择A。
51.A
52.D解析:本题考核的知识点是带寥数的主函数的应用。主函数的第一个参数argc为整形参数,记下从命令行输入的参数的个数;第二个参数argv是一个字符型的指针数组,它的每一个元素指向命令行输入的参数字符数。在本例中argc的值为5,argv[0]指向字符串'ex',argv[1]指向参数字符串“abed”,argv[2]指向字符串“efg”,argv[3]指向参数字符串“h3”,argv[4]指向参数字符串“K44”。在main()函数中,for循环执行了2次,当i-1时,len=0+strlen(argv[1]),而其中argv[1]=“abcd”,故此时len的值为4;当i=3时,len=4+strlen(argv[3]),而其中argv[3]=“h3”,故此时len的值为6;当i=5时,退出循环,故最后输出的len的住为6。所以,4个选项中选项D符合题意。
53.D解析:在单向链表中,由于每个结点需要存储下一个结点的地址,且下一个结点的数据类型与前一个结点的数据类型完全相同,故应为structlink*next。
54.A解析:题目中reverse()函数的功能是将具有n个元素的数组a反序存放。在主函数中调用语句是“reverse(b,8);”,实现的功能是把b数组的前8个元素逆置,所以b数组中依次存放的值为“8,7,6,5,4,3,2,1,9,10”。for循环了4次,分别把b[6]、b[7]、b[8]和b[9]的值(分别是2、1、9、10)加到了s中,s的结果是22,所以最后输出的s值为22。故4个选项中A正确。
55.D解析:本题考查赋值表达式。赋值表达式的一般形式是:变量名=表达式。C语言规定,不能给变量表达式赋值。
56.C
57.AA)【解析】DFD图(数据流图)是以图形的方式描述数据在系统中流动和处理的过私,只反映系统必须完成的逻辑功能,它是需求分析阶段的图形工具。盒式图(N—S图)、问题分析图
\n(PAD图)和PDL(伪码)是详细设计的常用工具。
58.A解析:本指针访问数组元素,在for循环中,首先指针p指向a[0]的地址,输出语句即输出a[0]的值,然后指针p依次后移一位,依次指向数组a中各元素的地址,所以程序依次输出数组a的各元素值。
59.A解析:左移1位,相当于乘以2,题中的x的值是一个八进制,转换为+进制数是32,再乘以2,x的值为64,以%。八进制形式输出,显示为100。
60.C解析:fprintf函数工作时,多个数据间不会自动加分隔符,选项A错误;浮点数的输出格式是“%5.of”表明其小数部分输出0位,即没有输出,所以选项B也是错误的。
61.B
62.C\n只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择c选巩。
\n
63.A本题中遇到‘\\’字符循环结束,因此只统计‘\\’之前的数字字符,结果为3。
64.B
\n函数fun的功能是从数组a中依次将当前值赋给一个元素,所以当函数fun(a,2,9)执行后,数组a[]={1,2,3,4,4,5,6,7,8,9,10)。
\n
65.A\n本题考查简单的运算符操作.当输入9时,(a++<9)为假,所以执行else语句中的printf('%d\n',a--),在执行时此时a经过a++操作a=10,所以答案为A。
\n
66.A本题考查的是递归算法的分析。一个直接或间接地调用自身的算法称为递归算法。在一个递归算法中,至少要包含一个初始值和一个递归关系。本题的fun()函数在n等于l时返回1,而在其余情况下返[fi]n+fun(n一1),所以本题的递归算法可以这样来表示:fun(n)=1(n=1)(初始值)fun(n)=n+fun(n一1)(n≠1)(递归关系)此时不难看出,该递归算法实现的是计算l+2+3+…+n,而且n必须大于0,否则会陷入死循环。故题目输出的结果是l+2+3+..+10=55.应该选择A)。
67.D
68.C四个选项中选择和投影都是对单个表进行运算,其结果都是一个关系。但只有选择运算是选取满足条件的元组,由题图可知,由关系R得到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度专业演出场地租赁及活动策划服务协议3篇
- 2025年度码头货物短途运输及环保处理服务合同4篇
- 2024-2025学年高中历史第五单元近现代中国的先进思想第20课西学东渐课后习题含解析岳麓版必修3
- 二零二五版生态修复工程承揽合同模板-施工与生态保护2篇
- 2025年度门卫人员安全教育与聘用合同
- 2024版派遣员工合同样本2篇
- 2025版高端商务办公空间租赁合同4篇
- 2024码头场地租赁合同
- 2024版天然气安全运输合同
- 2024铁路旅客运输服务质量监督合同3篇
- 运输供应商年度评价表
- 机械点检员职业技能知识考试题库与答案(900题)
- 成熙高级英语听力脚本
- 北京语言大学保卫处管理岗位工作人员招考聘用【共500题附答案解析】模拟试卷
- 肺癌的诊治指南课件
- 人教版七年级下册数学全册完整版课件
- 商场装修改造施工组织设计
- (中职)Dreamweaver-CC网页设计与制作(3版)电子课件(完整版)
- 统编版一年级语文上册 第5单元教材解读 PPT
- 加减乘除混合运算600题直接打印
- ASCO7000系列GROUP5控制盘使用手册
评论
0/150
提交评论