版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年海南省三亚市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.设有定义语句“int(*f)(int);”,则下列叙述中正确的是()。
A.f是基类型为int的指针变量
B.f是指向函数的指针变量,该函数具有一个int类型的形参
C.f是指向int类型一维数组的指针变量
D.f是函数名,该函数的返回值是基类型为int类型的地址
2.以下选项中合法的实型常数是()。
A.5E2.0B.E-3C.2E0D.1.3E
3.设以下变量均为int类型,则值不等于7的表达式是()。
A.(x=y=6,x+y,x+1)
B.(x=y=6,x+y,y+1)
C.(x=6,x+1,y=6,x+y)
D.(y=6,y+l,x=y,x+1)
4.下面程序的运行结果是
#include<stdio.h>
main()
{inta=28,b;
chars[10],*p;
p=s;
do{b=a%16;
if(b<10)*p=b+48;
else*p=b+55;
p++;a=a/5;}while(a>0);
*p=′\0′;puts(s);}
A.10B.C2C.C51D.\0
5.以下叙述正确的是
A.continue语句的作用是结束整个循环的执行
B.只能在循环体内和switch语句体内使用break语句
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用goto语句
6.若有代数式“”(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是()。
A.sqrt(fabs(pow(n,x)+exp(x)))
B.sqrt(fabs(pow(n,x)+pow(x,e)))
C.sqrt(abs(nx+ex))
D.sqrt(fabs(pow(x,n)+exp(x)))
7.对于下述说明,不能使变量p->b的值增1的表达式是______。structexm{inta;intb;floatc}*p;
A.++p->bB.++(p++)->bC.p->b++D.(++p)->b++
8.设在C语言中,float类型数据占4个字节,则double类型数据占()个字节。
A.1B.2C.8D.4
9.若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x一y)(x++):(y++)中的条件表达式(x-y)等价的是()A.(x-y<0|x-y>0)B.x-y<0).C.(x-y>0)D.(x-y==)
10.结构化程序由三种基本结构组成,三种基本结构组成的算法A.可以完成任何复杂的任务B.只能完成部分复杂的任务C.只能完成符合结构化的任务D.只能完成一些简单的任务
11.若有定义:“inta,b;”,通过语句“scan[("%d;%d".,&a,&b);”,能把整数3赋给变量a,5赋给变量b的输入数据是()。
A.35B.3,5C.3;5D.35
12.在定义inta[3][2]以后,对a的引用正确的是()
A.a[0,0]B.a[3][0]C.a[2][2]D.a[0][0]
13.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。
A.scanfB.getcharC.getsD.getc
14.有以下程序#include<stdio.h>structst{intx,y;}data[2]={1,10,2,20};main(){structst*p=data;printf("%d,",p->y);printf("%d\n",(++p)->x);}程序的运行结果是______。A.10,1B.20,1C.10,2D.20,2
15.语句int(*ptr)的含义是()。A.A.ptr是一个返回值为int的函数
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是一个函数名,该函数的返回值是指向int型数据的指针
16.
下列程序执行后的输出结果是()。
voidfunc(int*a,intb[])
{b[0]=*a+b;}main
{inta,b[5];
a=0.b[0]=3;
func(&a,b);printf("%d\n",b[0]);
}
A.6B.7C.8D.9
17.
18.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序执行后变量w中的值是()。A.5.21B.5C.5.0D.0.0
19.
20.在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。
A.详细设计B.需求分析C.总体设计D.编程调试
二、2.填空题(20题)21.下面程序的输出结果是()。#include<stdio.h>main(){staticchara[]="china";char*ptr=a;while(*ptr){printf("%c",*ptr-32);ptr++;}}
22.以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。
#include<stdio.h>
voidf(intx[],intn)
{intp0,p1,i,j,t,m;
i=j=x[0];p0=p1=0;
for(m=0;m<n;m++)
{if(x[m]>i{i=x[m];p0=m;}
elseif(x[m]<j{j=x[m];p1:m;}
}
t=x[p0];x[p0]=x
23.以下程序运行后的输出结果是【】。
main()
{
intp=30;
printf("%d\n",(p/3>0?p/10:p%3));
}
24.若从键盘输入58,则以下程序输出的结果是【】。
main()
{inta;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);}
25.多媒体计算机所用的CD-ROM是【】。
26.以下函数用来在w数组中插入x。n所指向的存储单元中存放w数组中字符个数。数组w中的字符已按从小到大的顺序排列,插入后数组w中的字符仍有序。请填空。
voidfun(char*w,charx,int*n)
{inti,p;
p=0;
w[*n]=x;
while(x>w[p])p++;
for(i=*n;i>p;i--)w[i]=【】;
w[p]=x;
++*n;}
27.下列循环的循环次数是______。
ihtk=2;
while(k=0)
printf("%d",k);
k--;
printf("\n");
28.在索引查找或分块查找中,首先查找【】,然后再查找相应的【】,整个索引查找的平均查找长度等于查找索引表的平均查找长度与查找相应子表的平均查找长度之和。
29.软件产品从提出、实现、使用维护到停止使用退役的过程称为()。
30.下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在数组中返回,二进制数的最低位放在下标为0的元素中,其他依此类推。请填空。
Fun(intx,intb[])
{intk=0,r;
do
{r=x%2;
()=r;
x/=2;
}while(x);
}
31.下面程序的输出结果是【】。
charb[]="ABCD";
main()
{
charb[30];
strcpy(&b[0],"GH");
strcpy(&b[1],"GH");
strcpy(&b[2],"GH");
printf("%s\n",b);
}
32.以下程序运行后的输出结果是【】。
main()
{charc;intn=100;
floatf=10;doublex;
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
33.十六进制数100转换成十进制数为【】。
34.以下程序的输出结果是()。#include<stdio.h>voidswap(int*a,int*B){int*t;t=a;a=b;b=c;}main(){inti=3,j=5,*p=&i,*q=&j;swap(p,q);printf("%d%d\n",*p,*q);}
35.以下程序运行时若从键盘输入:102030<回车>。输出结果是【】。
#include<stdio.h>
main()
{
inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
36.下列程序的输出结果是【】。
voidfun(int*n)
{
while((*n)--);
printf("%d",++(*n));
}
main()
{inta=100;
fun(&a);
}
37.下列语句能循环______次。
ints=12;
while(s);
--s;
38.以下程序运行后的输出结果是【】。
#include<stdio,h>
main()
{chara[]="Language",b[]:"Programe";
char*pl,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(pi+k));
}
39.下面程序的输出结果是【】。
main()
{inti=3,j=2;
char*a="DCBA";
printf("%c%c\n",a[i],a[j])
}
40.以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)小找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。
#include<stdio.h>
voidf(intx[],intn)
{intp0,p1,i,j,t,m;
i=j=x[0];p0=p1=0;
for(m=O;m<n;m++)
{if(x[m]>i){i=x[m];p0=m;}
elseif(x[m]<j){j=x[m];p1=m;)
}
t=x[p0];x[p0]=x[n-1];x[n-1]=t;
t=x[pl];x[p1]=【】;【】=t
}
main()
{inta[10],u;
for(u=0;u<10;u++)scamp("%d",&a[u]);
f(a,10);
for(u=0;u<10;u++)printf("%d",a[u]);
ptintf("\n");
}
三、1.选择题(20题)41.下列循环体的执行次数是()。#include<stdio.h>main(){inti,j;for(i=0j=1;i<j+1;i+=1,j--)printf("%d\n",j);}
A.3B.2C.1D.0
42.栈和队列的共同特点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点
43.可以在C语言程序中用做用户标识符的一组标识符是()。
A.voidB.aa123_abcBBNcasC.as+b3D.6f-123DoIfSIG
44.有以下程序#defineN20fun(inta[],intn,:Intm){inti,i;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};fuu(a,2,9);for(i=0;i<5;i++)printf("%d",a[i]);}程序运行后的输出结果是
A.10234B.12344C.12334D.12234
45.下列关于switch语句和break语句的结论中,正确的是
A.break语句是switch语句中的一部分
B.在switch语句中可以根据需要使用或不使用break句
C.在switch语句中必须使用break语句
D.以上三个结论中有两个是正确的
46.以下程序的输出结果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}
A.1B.2C.3D.4
47.以下程序的输出结果是______。#defineSQR(X)X*Xmain(){inta=16,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}
A.16B.2C.9D.1
48.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的输出是______。
A.23B.26C.33D.36
49.以下程序运行后,输出结果是______。
main()
{
char*d[]={"ab","cde"};
printf("%x",d[1]);
}
A.cdeB.字符c的ASCⅡ的值C.字符c的地址D.出错
50.若有代数式
(其中P仅代表自然对数的底数,不是变量),则下列能够正确表示该代数式的C语言表达式是()。
A.sqrt(abs(n^x+e^x))
B.sqrt(fabs(pow(n,x)+pow(x,e)))
C.sqrt(fabs(pow(n,x)+exp(x)))
D.sqrt(fabs(pow(x,n)+exp(x)))
51.变量a所占的内存字节数是______。
A.4
B.5
C.6
D.8unionU{charst[4];inti;longl;};StructA{intc;unionUu;}a;
52.运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为______。main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}
A.m=3B.m=2C.m=1D.m=0
53.设有下列二叉树:
对此二叉树中序遍历的结果为______。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
54.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A.63B.64C.6D.7
55.在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为______。
A.2B.3C.4D.5
56.下列方法中,不属于软件调试方法的是()
A.回溯法B.强行排错法C.集成测试法D.原因排除法
57.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为()。
A.log2nB.n/2C.nD.n+1
58.阅读下列程序段,则程序的输出结果为#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){finta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}
A.3B.5C.6D.8
59.下面程序运行后的输出结果是()。#include<stdio.h>main(){inta[5]={1,0,4,2,0},b[5]={1,2,3,4,5},i,s=0;for(i=0;i<5;i++)s=s+b[a[i]];printf("%d\n”,s);}
A.12B.15C.11D.8
60.结构化分析方法是一种面向______的需求分析方法。
A.对象B.数据结构C.控制流D.数据流
四、选择题(20题)61.
有以下程序
#include<stdio.h>
intfun(chars[])
{intn=0;
while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)
return(n);
}
main
{chars[10]={6,1,*,4,*,9,*,0,*);
printf("%d",fun(s));
}
程序运行的结果是()。
A.9B.61490C.61D.5
62.
有以下程序:
fun(intx)
{intP;
if(x==0||x==l)return(3);
p=x-fun(x-2);
returnp;
}
main
{printf("%d\n",fun(7));}
程序执行后的输出结果是()。
A.7B.3C.2D.0
63.
64.以下能定义为用户标识符的是()。
A.printfB.charC._8abcD.Void
65.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。
A.编译程序B.操作系统C.教务管理系统D.汇编程序
66.
67.以下不合法的字符常量是()。
A."、、"B.’\”’C.’\018’D.\xcc"
68.有以下程序:
程序运行后的输出结果是()。
A.1,6,2,1,B.8,7,3,1,C.4,7,5,2,D.1,6,5,7,
69.
70.#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)
71.
下列程序的输出结果是()。
#include<stdio.h>
main
{structst
{inty,x,z;
};
union
{longi;
intj;
chark;
}un;
printf("%d,%d\n",sizeof(structst),sizeof(un))
}
A.6,2B.6,4C.8,4D.8,6
72.(63)线性表的顺序存储结构和线性表的链式存储结构分别是______。
A.顺序存取的存储结构、顺序存取的存储结
B.随机存取的存储结构、顺序存取的存储结构
C.随机存取的存储结构、随机存取的存储结
D.任意存取的存储结构、任意存取的存储结构
73.有以下程序:
则以下函数调用语句错误的是()。
A.k:f(a,B.;B.k:add(a,B.;C.k=(*f)(a,B.;D.k=*(a,B.;
74.要求通过while循环不断读入字符,当读人字母N时结束循环,若变量已正确定义,下列正确的程序段是()。A.B.C.D.A.A.AB.BC.CD.D
75.C源程序中不能表示的数制是()。
A.十六进制B.八进制C.十进制D.二进制
76.若a是数值类型,则逻辑表达式(a==1)II(a!=1)的值是()。
A.1B.0C.2D.不知道a的值,不能确定
77.
78.有以下程序:
程序运行后的输出结果是()。
A.7B.8C.9D.10
79.信息隐蔽的概念与下述哪一种概念直接相关()。
A.软件结构定义B.模块独立性C.模块类型划分D.模块耦合度
80.
五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:将s所指字符串的正序和反序进行连接,形成的新串放在t所指的数组中。例如,当S所指字符串为“ABCD”时,t所指字符串中的内容应为“ABCDDCBA”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.请编写函数proc(),其功能是:计算并输出下列多项式的值。
S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+m)
例如,若主函数从键盘给m输入20后,则输出为s=1.904762。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
参考答案
1.B此定义语句“int(*f)(int);”为指向函数的指针变量的定义方法,其中f为指向函数的指针变量,第1个int为函数返回值类型,第2个int为函数的形参类型。故本题答案为B选项。
2.C解析:在C语言中,实数有两种表示形式:十进制数形式与指数形式。
一般形式的实数:小数形式的实数由整数部分、小数点和小数部分组成(必须要有小数点),
指数形式的小数;指数形式的实数由尾数部分、e(E)和指数部分组成(字母e或E的前后必须要有数字,且其后面的指数必须为整数)。
选项A中,5E2.0中E后面的2.0不是整数;选项B中,E前面没有数字:选项D中,E后面没有数字。最终可以判断选项C正确。
3.C
4.C解析:考查用字符指针处理字符串的方法。语句'p=s;'是使指针p指向字符数组s。*p则引用了p所指位置的数组元素。通过指针来引用一维数组元素。
5.B解析:continue是结束本次循环,直接进入到下次循环中,break用于循环语句中的作用是直接跳出本层循环,能从多层循环中退出的语句除了goto语句,exit,return等语句也能直接跳出多层循环。注意:continue和break语句在while语句中的作用。
6.AB选项中函数“pow(x,e)”错误,应该直接使用“exp(x)”函数。C选项中函数“abs(nx+ex)”错误,应该使用fabs返回浮点数的绝对值。D选项中“pow(x,n)”参数顺序错误。故本题答案为A选项。
7.D解析:p->b应作为一个整体看待,++p->b和p->b++都使变量b增1,++(p++)->b先使b增1,再使p后移,D中表达式的含义是使p+1所指结构体变量中的成员b的值增1。
8.C
\n在C语言中各种数据类型在内存中所占的字节数与机器的位数有关,16位机中(也就是在标准c中),若int类型数据占2个字节,则float类型数据占4个字节,double类型数据占8个字节。
\n
9.A条件表达式:x=表达式1,表达式2:表达式3的含义是:先求解表达式1,若为非0(真),则求解表达式2,将表达式2的值赋给x。若表达式1的值为0(假),则求解表达式3,将表达式3的值赋给x。在本题中与表达式1:(x-y等价的是(x-y>0)。
10.A解析:C程序由顺序结构、选择结构和循环结构三种基本的结构组成,这三种结构可以组成任何复杂的C程序,即可以完成任何复杂的任务。
11.C\n在输入时必须遵守scanf函数中的格式才能正确地赋值给相应的变量,由于scanf函数为“%d;%d”,所以在输入时要输入3;5,答案为C。
\n
12.D
13.C解析:C语言提供了许多输入函数,其中有:getchar(输入字符)、scanf(格式输入)和gets\u3000(输入字符串)等。题目要求输入的是字符串,所以可以排除getchar,而且要求输入的字符串中包含空格,而scanf函数默认将输入的空格字符作为分割符,所以空格不会被输入,故可排除scanf。getc的作用是从文件中输入一个字符,故也不可取。gets函数可以输入一整行作为一个字符串,其中也包括空格字符,故应该选择C。
14.C解析:本题定义了一个包含两个元素(data[0]、data[1])的结构体数组data,其中data[0].x=1;data[0].y=10;data[1].x=2;\u3000data[1].y=20。在主函数中,定义了一个指向结构体数组的结构体指针变量p,使得p指向结构体数组的首地址,所以p->y访问的是第一个鲒构体数组元素的第二个值,即data[0].y;(++p)->x访问的是第二个结构体数组元素的第一个值,即\u3000data[1].x,所以程序输出结果为10,2。
15.C本题考查的是指向函数的指针。函数指针定义的基本格式为:类型标识符(*指针变量名)()。“类型标识符”为函数返回值的类型。
16.A
\n本题考查函数的调用,从主函数传递到调用函数中,*a的值为0,因此当执行完调用函数后,b[0]的值为6。
\n
17.D
18.C子函数fun1(doublea)的功能是返回a的平方值的整数部分。子函数fun2(doublex,doubley)的功能是返回X的平方值的整数部分与Y的平方值的整数部分的和。又因为题中变量w的定义为double型,函数fun(2)的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。所以双精度型变量w的值为5.0。
19.B
20.C解析:软件系统结构的总体设计包括:基于功能层次结构建立系统、按功能划分成模块的层次结构、确定每个模块的功能、建立与已确定的软件需求的对应关系、确定模块间的调用关系和模块间的接口、评估模块划分的质量等方面。详细设计的任务是:在使用程序设计语言编制程序以前,对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求,通常包括:功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求等。编程调试的任务是诊断和改正程序中潜在的错误。综上所述。软件功能分解只能发生在总体设计阶段。
21.CHINA
22.函数f()通过for循环逐个比较数组x中的元素,循环结束后,p0和p1分别表示最大值和最小值在数组中的下标位置,然后按照题意将最大值x[p0]和数组的最后一个元素x[n-1)交换位置,再将最小值x[p1]和第一个元素(x[0])进行交换,所以空白处应该填入x[0]。\r\n\r\n
23.33解析:条件表达式的一般形式为;表达式1?表达式2:表达式3条件运算符的执行顺序:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值;若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。30/3=10>0,所以执行p/10,结果为3。
24.585858585858解析:本题考查对if语句的掌握,当输入58以后,程序中的3个if语句都成立,所以分别输出58。
25.只读光盘只读光盘
26.w[i-1]w[i-1]解析:在用数组实现的有序序列中插入内容,必须先寻找插入位置。插入位置找到后,需将插入位置之后的元素向后移动一个位置,留出插入点。最后,将元素插入,并增加序列的元素个数。函数为了简化寻找插入位置循环的循环条件,预先在序列的最后置入插入值。插入位置之后的元素向后移动一个位置必须从最后一个元素开始往前逆序移动,是将前一个元素向后移,所以在空框处应填入w[i-1]。
27.00解析:解答本题需要注意表达式“k=0”,它是赋值表达式而不是关系表达式,不论k为何值,表达式k=0总会使k为0,所以不能进入循环。
28.索引表块索引表\r\n块
29.软件生命周期软件生命周期解析:软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。在国家标准“计算机软件开发规范”中,把软件生命周期划分为8个阶段,即可行性研究与计划、需求分析、概要设计、详细设计、实现、综合测试、确认测试、使用与维护,对每个阶段,都明确规定了该阶段的任务、实施方法、实施步骤和完成标志,其中特别规定了每个阶段需要产生的文档。
30.b[k++]b[k++]解析:本题的考查点是do-while语句。形参x默认为十进制,要想将一个十进制的数转换成二进制,可以使用整除求余法,题中的程序段也表明了将使用这种方法,将一个十进制的数转换成二进制要用这个十进制数不断的整除2,将每次的余数记录下来,直至无法再除,此时,整除得到的第一个元素即为二进制数的最低位,其余依次类推,所以在程序段中的横线处,应当填写“b[k++]”。
31.GGGHGGGH解析:由于在函数main中定义了数组变量b,其将屏蔽全局变量b。对于一维数纽变量,其值为一常数,等于数组首元素地址。strcpy(&b[0],'GH'),是将字符串'GH'复制到数组b中从首元数开始的空间中,此是b中的字符串为”叫”:strcpy(&b[1],'GH'),是将字符串'GH'复制到数组b中从第二个元素开始的空间中,此是b中的字符串为“GH”。执行第三次strcpy函数后,b中的字符串为'GGGH'。
32.220.000000220.000000解析:注意区分运算符的优先级。先是给c赋值,然后计算x=f*=n/=50,得x=f*=2,最后有x=20。x输出是按浮点数的形式输出的,小数点后的0不能少。
33.256
34.3535解析:本题考查函数中形参和实参的传递。在C语言函数中实参和形参传递具有不可逆性,参数只能由实参传向形参,而不能由形参传向实参,虽然swap函数的功能是实现两个数的交换,但由于没有返回值,故最终的输出结果为35。
35.1030010300解析:本题的scanf()函数要求用户输入三个十进制整数,但只接受第一和第三个到函数的第二和第三个参数所指的内存地址中。所以本题的输出为:10300。
36.00解析:在函数fun()中,while((*n)-)是先引用*n的值,再做(*n)--运算,所以循环结束时*n的值为0,再做(*n)--运算后,*n的值为-1;执行++(*n)后,*n的值是0。
37.无限无限解析:分析程序“while(s)”语句后面有一个“;”不能执行后面的语句,只是执行空语句,所以s=12保持不变,因此,没有条件限制的能循环无限次(即死循环)。
38.gaegae解析:本题考查字符指针变量与字符数组。for循环语句共循环8次:
①当k=0时,*(Pl+0)='L',*(p2+0)='P',L!=P,没有输出。
②当k=1时,*(p1+1)='a',*(p2+1)='r',a!=r,没有输出。
③当k=2时,*(p1+2)='n',*(p2+2)='o',n!=o,没有输出。
④当k=3时,*(P1+3)='g',*(p2+3)='g',g==g,所以输出g。
⑤当k=4时,*(p1+4)='u',*(P2+4)='r',u!=r,没有输出。
⑥当k=5时,*(p1+5)='a',*(p2+5)='a',a==a,所以输出a。
⑦当k=6时,*(p1+6)='g',*(p2+6)='m',g!=m,没有输出。
⑧当k=7时,*(p1+7)='e',*(p2+7)='e',e==e,输出e。
⑨当k=8时结束循环,输出结果为:gae。
39.AB
40.x[O]x[O]x[O]\r\nx[O]解析:根据题意,f()函数要“将其中最小的数与第一个数对换,把最大的数与最后一个数对换”,而填空处的上一行语句正是使用交换算法,将下标为p0的元素与数组x的最后一个元素(n个元素的数组,其最后一个元素的下标为n-1)交换。所以不难得知,填空所在行的语句是要将下标为p1的元素与数组x的第1个元素交换。故两个空都应该填x[0]。
41.C解析:本题考查for循环。第一次循环前先判断循环条件,此时i=0,j=1,i<j+1成立,循环第一次;第二次循环前先判断循环条件,此时i=1,j=0,(j--是先使用j的值再减1),i<j+1不成立,结束循环。
42.C解析:考查栈和队列概念的掌握。栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种'后进先出'的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种'先进先出'的线性表。模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。
43.B解析:C语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。
44.C解析:数组名可以作为实参传送,由于数组名本身是一个地址值,因此,在函数中对形参数组元素的修改也会相应改变实参数组的元素.在本题中,函数fun()通过一个for循环,将形参数组a中下标为n到m之间的元素向后移动一位,a[n]元素的值不变。所以主函数调用fun(a,2,9);之后,数组a的内容变成{1,2,3,3,4,5,5,6,7,8,9,10},最后通过for循环输出数组前5个元素为12334。选项C符合题意。
45.B解析:break语句可以用在switch和循环语句中,作用是跳出switch或循环结构,但并不要求switch结构和循环结构中必须有break语句,所以选项B)的说法是正确的。注意:break、continue语句在循环语句中的使用。
46.A解析:该题考查的是递归函数的调用,题中读fun函数进行了递归调用,第1次调用:fun(3)n=3s=3-fun(2);第二次调用时:fun(2)n=2s=2返回第一次调用后,s=3-2=1。
47.B解析:C语言在预编译时遇到带实参的宏名,则按命令行中指定的字符串从左到右进行置换。在做这题时,也不妨运用置换法。得到a/=k+m*k+m/k+m*k+m=16/7=2。注:a为整型,所以在做除法时,自动取整。
48.A解析:观察题目,可以发现,*p=&aa[0][0]语句实际是将数组aa的首地址赋给了指针变量p,将i的值带入for循环中,i=0时,aa[0][1]=3,*p=2;*p输出的是指针所指向的数组值,此时p所指向的是aa[O][0],输出2,而i=1时执行了++p操作使指针向后移动指向了aa[0][1],所以在输出*p时应为3。
49.C解析:指针数组中的每—个元素都相当于—个指针变量。—维指针数组的定义形式为:类型名*数组名[数组长度],在本题main函数中定义指针数组d,它有两个元素,其初值分别是“ab'’、“cdc'’的首地址。d[1]的值为“cde”的首地址。%x是指以十六进制数形式输出整数。
50.C解析:n和e的x幂次方,要分别调用C语言的数学库函数doublepow(n,x)和doubleexp(x),因为这两个函数的返回值都为double型,对两者的和计算绝对值,调用库函数doublefabs(pow(n,x)+exp(x)),求出和的绝对值,再调用开平方函数doublesqrt(fabs(pow(n,x)+exp(x))),这样计算出的结果就是题干中表达式的值。
51.C解析:结构体变量所占内存长度是各成员占内存长度之和,而共用体变量所占的内存长度等于最长的成员的长度。本题结构体变量a中成员c为整型占2个字节,共用体变量u最大长度为4个字节,故选C。
52.C解析:分析程序可知,该程序实现的功能是对数m,n求其最大公约数。在本题中m与n的值分别为65与14,其最大公约数为1,故其输出结果为m=1。
53.B解析:所谓中序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。
54.B解析:在长度为64的有序线性表中,其中的64个数据元素是按照从大到小或从小到大的顺序排列有序的。在这样的线性表中进行顺序查找,最坏的情况就是查找的数据元素不性表中或位于线性表的最后。按照线性表的顺序查找算法,首先用被查找的数据和线性表的第一个数据元素进行比较,若相等,则查找成功,否则,继续进行比较,即和线性表的第二个数据元素进行比较。同样,若相等,则查找成功,否则,继续进行比较。依次类推,直到性表中查找到该数据或查找到线性表的最后一个元素,算法才结束。因此,在长度为64的有序线性表十进行顺序查找,最坏的情况下需要比较64次。因此,本题的正确答案为选项B。
55.C解析:二分法查找是一种线性查找方法,其基本方法是:首先要用要查找的关键码与线性表中间位置结点的关键码值进行比较,这个中间结点把线性表分为两个子表,比较相等则查找完毕,不等则根据查找结果确定下一步的查找应该在哪一个子表中进行,如此下去,直到找到满足条件的结点:或者确定表中没有这样的结点。用二分法查找关键码值11的顺序如下所示,其中[]内为本次栓索的子表,()内为该子表的中间结果。从图中可以看出,经四次查找后,确定表中没有这样的结点。因此本题正确答案为选项C(4)。
第一次:[3,6,8,10,12,(15),16,18,21,25,30]
第二次:[3,6,(8),10,12],15,16,18,21,25,30
第三次:[3,6,8,[(10),(12)],15,16,18,21,25,30]
第四次:[3,6,8,10,[(12)],(15),16,18,21,25,30]查找失败。
56.CC)【解析】软件调试主要采用以下三种方法:强行排错法;作为传统的调试方法,其过程可概括为设置断点、程序暂停、观察程序状态、继续运行程序。回溯法:该方法适合于小规模程序的排错、即一旦发现了错误,先分析错误征兆,确定最先发现“症状”的位置。原因排除法:原因排除法是通过演绎和归纳,以及二分法来实现。
57.C本题考查的是顺序查找。在进行顺序查找过程中,如果线性表中的第一个元素就是被查找元素,则只需做一次比较就查找成功,查找效率最高;但如果被查找的元素
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机物料采购管理制度汇编
- 采购部门规范制度汇编
- 采购阳光化管理制度
- 采购项目督办制度模板
- 采购风险评估管理制度
- 重庆市分散采购管理制度
- 钢厂采购基地管理制度
- 礼仪规范演讲稿
- 老人与海的读后感(15篇)
- 销售年工作总结(15篇)
- 2026云南楚雄市司法局第一批司法协理员招聘10人考试参考试题及答案解析
- 外贸服装业务部管理制度
- 中央预算资金34个细分领域资金分布比例及项目申报实操
- 2026青海海东公安招录32名人民警察备考题库及答案详解(夺冠系列)
- 2026西藏自治区教育考试院招聘非编工作人员11人备考考试题库及答案解析
- 2026年政府采购培训试题200道及参考答案【新】
- 家长安全培训内容文案课件
- 肿瘤学课件教学
- 高级程序设计题库及答案
- 2026年2月1日执行的《行政执法监督条例》解读课件
- 天天刷牙课件
评论
0/150
提交评论