版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年山东省滨州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.如下程序段
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
intfun(char*str)
{inti,j=0;
for(i=0;str[i]!=’\0’;i++)
if(str[i]!=’’)str[j++]=str[i];
str[j]=’\0’;
}
main()
{
charstr[81];
intn;
clrscr();
printf("Inputastring:");
gets(str);
fun(str);
printf("%s\n",str);
}
当运行程序时,输入asdafaaz67<回车>,则输出是A.A.asdafaaz67
B.asdafaaz67
C.asd
D.z67
2.有如下程序段
voidfun(int*a,int*b)
{int*k;
k=a;a=b;b=k;
}
main()
{inta=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
程序运行后输出的结果是A.A.63
B.36
C.编译出错
D.00
3.有以下程序#include<stdio.h>main(){chara[3O],b[30];scanf("%S",a);gets(b);printf("%s\n%s\\n",a,b);}程序运行时若输入:howareyou?Iamfine<回车>则输出结果是()。A.howareyou?Iamfine
B.howareyou?Iamfine
C.howareyou?Iamfine
D.howareyou?
4.以下符号中不能作为标识符的是()。A._256B.voidC.scanfD.Struct
5.第
27
题
有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空。
#include<stdio.h>
main()
{inti;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!((i-3)%7))
if(_______)
printf("%d",i);
}
A.i%9=5B.i%9!=5C.(i-5)%9!=0D.(i-5)%9==0
6.有以下程序(函数fun只对下标为偶数的元素进行操作):#include<stdio.h>voidfun(int*n){inti,j,k,t;for(i=0;i<n-1;i+=2){k=i;for(j=i;j<n;j+=2)if(a[j]>a[k])k=j;t[a[i];a[i]=a[k];a[k]=t;}}main{intaa[lO]=[1,2,3,4,5,6,7],a;fun(aa,7);for(i=0;i<7;i++)printf("%d,",aa[i]);printf("n");}程序运行后的输出结果是()。A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
7.以下不能将s所指字符串正确复制到所指存储空间的是()A.do{*t++=*s++;}while(*s);.
B.for(i=0;t[i]=s[i];i++);
C.while(*t=*s){t++;s++}
D.for(i=0,j=0;t[i++]=s[j++];);
8.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称______。
A.希尔排序B.冒泡排序C.插入排序D.选择排序
9.在浏览WWW时,如果连接到一个安全的站点,应当以()开头来书写统一资源定位器。
A.shttp://B.http:s//C.http://D.https//
10.计算机识别.存储和加工处理的对象被统称为_________
A.数据B.数据元素C.数据结构D.数据类型
11.若有定义floata[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为()。
A.334HB.30DHC.352HD.31AH
12.有3个关系R、S和T如下.
则由关系R和S得到关系T的操作是()。A.自然连接B.差C.交D.并
13.
14.设有以下定义:inta=0;doubleb=1.25;charc='A';#defined2则下面语句中错误的是()。
A.a++;B.b++;C.c++;D.d++;
15.当一个函数无返回值时,定义它的函数类型应是()。
A.voidB.intC.任意D.无
16.
17.有下列二叉树.对此二叉树前序遍历的结果为()。
A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ
18.下面程序段的输出结果是______。char*s="abcde";s+=2;printf("%d",s);
A.cdeB.字符'c'C.字符'c'的地址D.无确定的输出结果
19.下面关于图的存储的叙述中正确的是()。
A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与顶点个数无关
B.用邻接表法存储图,占用的存储空间大小与图中边数和顶点个数都有关
C.用邻接矩阵法存储图,占用的存储空间大小与图中顶点个数和边数无关
D.用邻接矩阵存储图,占用的存储空间大小只与图中边数有关,而与顶点个数无关
20.以下程序的输出结果是main(){intc=35;printf("%d\n",c&c);}
A.0B.70C.35D.1
二、2.填空题(20题)21.#define命令出现在程序中函数的外面,宏名的有效范围为______。
22.下列程序的运行结果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
23.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
24.Windows的空口分为两类,一类是应用程序窗口,另一类是【】窗口。
25.按照“先进先出”的原则组织数据的结构是______。
26.在软件开发中,结构化方法包括结构化分析方法、结构化设计方法和结构化程序设计方法。详细设计阶段所采用的是【】方法。
27.以下程序的输出结果是______。
intfun(int*x,int*y)
{staticintm=4;
m=*X+*y;*x-=m;*y+=m;
returnm;
}
main()
{inta=2,b=6,n;
n=fun(&a,&B);printf("%d,",n);
n=fun(&a,&B);printf("%d\n",n);
}
28.以下程序的输出结果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
29.若用0至9之间不同的三个数构成一个三位数,下面程序将统计出共有多少种方法。请填空。
#include<stdio.h>
main()
{inti,j,k,count=0;
for(i=0;i<=9;i++)
for(j=0;i<=9;j++)
if(【】)continue;
elsefor(k=0;k<=9;k++)
if(【】)count++;
printf("%d",count);}
30.以下程序运行后输入:3,abcde<回车>,则输出结果是______。
#include<string.h>
move(char*str,intn)
{charcemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1);
str[0]=temp;}
main()
{chars[50];intn,i,z;
scanf(“%d,%s”,&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf(“%s\n”,s);
}
31.以下程序运行后输入:3,abcde<回车>,则输出结果是【】。
#include<string.h>
move(char*str,intn)
{chartempinti;
temp=str[n-1);
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp
}
main()
{chars[50];ihtn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
32.以下程序的输出结果是【】。
main()
{chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);}
33.若x和n均是int型变量,且x=12,n=5,则执行y=x%=(n%=2)表达式后y的值为()。
34.已有定义如下:
structnode
{intdata;
structnode*next;
}*p;
以下语句调用malloc函数,使指针p指向一个具有structnode类型的动态存储空间。请填空。
p=(structnode*)malloc(【】);
35.函数compare的功能是比较两个字符串是否相等,若相等则函数返回值0,否则返回值1,请填空。
compare(chars[],chart[])
{inti=0;
while(s[i]==t[i]||【】)i++;
return(【】?1:0);
}
36.下面函数用来求两个单精度数之和,并通过形参将结果传回,请填空。
Voidsub(floatx,noaty,【】z)
{【】=x+y;}
37.执行下列语句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
38.通常将软件产品从提出、实现、使用维护到不再使用的过程称为【】。
39.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。
main()
{inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",(【】);
for(i=0;i<20;i++)
{if(a[i]>0)
{count++;
sum+=(【】);
}
}
printf("sum=%d,count=%dhn",sum,count);
}
40.下面程序的输出结果是【】。
#defineMAX3
inta[MAX];
main()
{fun1();fun2(a);printf("\n");}
fun1()
{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));
}
三、1.选择题(20题)41.关系代数运算是以______为基础的运算。
A.关系运算B.谓词运算C.集合运算D.代数运算
42.有以下程序#include<string.h>main(intargc,char*argv[]){inti,len=0;for(i=1;i<argc;i++)len+=strlen(argv[i]);printf("%d\n",len);}程序编译连接后生成的可执行文件是exl.exe,若运行时输入带参数的命令行是:exlabcdefg10<回车>则运行的结果是:
A.22B.17C.12D.9
43.设有如下关系表:
则下列操作中,正确的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
44.下列程序的输出结果是______。main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);}
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
45.设有定义语句:charc1=92,c2=92;,则以下表达式中值为零的是
A.c1c2
B.c1&c2C.c1~c2D.c1|c2
46.下列程序中c的二进制值是()。
chara=2,b=4,C;
c=a^b>>2;
A.00000011B.00010100C.00011100D.00011000
47.以下程序段给数组所有的元素输入数据,请选择正确答案填入。#include<stdio.h>main(){inta[10],i=0;while(i<10)scanf("%d",______);}
A.a+(i++)B.&a[i+1]C.a+iD.&a[++i]
48.微型机系统中,对输入设备赶进行管理的基本程序模块(BIOS)存放在()
A.RAM中B.ROM中C.硬盘中D.寄存器中
49.算法具有五个特性,以下选项中不属于算法特性的是_____。A.有穷性B.简洁性C.可行性D.确定性
50.若有下列定义和语句:intu=011,y=0x11,w=11;printf("%o,%x,%d\n",u,v,w);则输出结果是()。
A.9,17,11B.9,11,11C.11,11,11D.11,17,11
51.下列描述中,不是线性表顺序存储结构特征的是
A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需另外开辟空间来保存元素之间的关系
52.数据库技术的根本目标是要解决数据的()。
A.存储问题B.共享问题C.安全问题D.保护问题
53.设有下列的程序段:charstr[]="HelloWorld";char*ptr;ptr=str;执行上面的程序段后,*(ptr+10)的值为()。
A.'\0'B.'0'C.不确定的值D.'0'的地址
54.有以下程序:floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是______。
A.编译错误B.9C.21D.9
55.若有说明语句:charc=′\72′;则变量c
A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法,c的值不确定
56.设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为
A.intB.floatC.doubleD.不确定
57.以下程序的输出结果是intf(){staticinti=0;ints=1;s+=i;i++;retumS;}main(){inti,a=0;for(i=0;i<5;i++)a+=f();printf("%d\n",a);}
A.20B.24C.25D.15
58.以下程序的输出结果是______。main(){charc1='6',c2='0';printf("%d,%d,%d\n",c1,c2,c1-c2);}
A.因输出格式不合法,输出出错信息B.54,48,6C.6,0,7D.6,0,6
59.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是
abs(intx)
{if(x>=0)returnx;
elsereturn-x;}
main()
{inty,z,(*p)(intx)=abs;
scanf("%d",&y);
z=(*p)(y);
;}
A.printf("%d%d\n",&p,z)
B.printf("%d%d\n",p,z)
C.printf("%d%d\n",*p,z)
D.printf("%d%d\n",p,*z)
60.若有以下定义和语句:ints[4][5],(*ps)[5];ps=s;则对s数组元数的正确引用形式是
A.ps+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3
四、选择题(20题)61.表达式:的值是()。
A.3B.0C.4D.5
62.有以下程序:
程序运行后的输出结果是()。
A.4,5,6,4,5,6,
B.1,2,3,4,5,6,
C.4,5,6,1,2,3,
D.6,5,4,3,2,1,
63.利用fseek函数可实现的操作是()。
A.实现文件的顺序读写B.改变文件的位置指针C.实现文件的随机读写D.以上答案均正确
64.链表不具有的特点是A.A.不必事先估计存储空间
B.可随机访问任一元素
C.插入和删除不需要移动元素
D.所需空间与线性表长度成正比
65.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}执行后的结果是()。
A.输出字符a的ASCII码B.输出字符c的ASCII码C.输出字符cD.程序出错
66.
67.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序运行后输出结果是______。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
68.下面的函数调用语句中func函数的实参个数是
func(f2(A1,A2),(A3,A4,A5),(A6,max(A7,A8)));
A.3B.4C.5D.8
69.
70.
以下程序的输出结果是()。
#defineM(x,y,z)x*y+z
main()
{inta=l,b=2,c=3;
printf("%d\n",m(a+b.b+c,c+a));
}
A.19B.17C.15D.12
71.
72.
73.在数据库设计的各阶段中,负责将E-R图转换成关系数据模型的阶段是
A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段
74.有两个关系R、S如下:
由关系R通过运算得到关系s,则所使用的运算为()。
A.选择B.投影C.插入D.连接
75.以下叙述不正确的是
A.分号是C语言的必要组成部分B.C程序的注释可以写在语句的后面
C.函数是C程序的基本组成单位D.程序中可以有一个或多个main函数
76.有以下程序:
#include<stdio.h>
main()
{chars[]="012xy\O8s34f4w2‘;
inti;n=0;,
for(i=0;s[i]!=0;i++)
if(s[i]>=0s[i]<=9)n++;
printf("%d\n",n);
}
程序运行后的输出结果是()。
A.0B.3C.7D.8
77.一名工作人员可以使用多台计算机,而一台计算机可被多名工作人员使用,则实体工作人员与实体计算机之间的联系是()。
A.—对一B.—对多C.多对多D.多对一
78.
79.
80.若有定义语句:intX=10;,则表达式x-=x+x的值为()。
A.0B.-20C.-10D.10
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:从字符串str中,删除所有大写字母'F'。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.请编写一个函数,用来删除字符串中的所有*。例如,输入abc*de*f*gh,则输出为abcdefgh。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.A在本题中,程序首先定义一个返回类型为整型的函数fun,该函数带有一个指针型的形参变量str,从主函数中对其调用时传递的参数我们可以知道,该指针指向的是一个数组,在该函数体中,首先定义两个整型变量,然后执行循环,循环变量i的初始值为0,循环结束的条件是str[i]!=’\\0’,表示取到的数组元素是字符串结束标识,即字符串中的字符被处理完,在循环体中,首先执行条件判断语句if(str[i]!=’’),如果结果为真,说明取到的当前字符不是空字符,这时执行str[j++]=str[i],即将非空格字符保存到数组中;如果为假,说明取到了空格字符,此时不保存,而接着执行下次循环跳过空格字符。循环结束后执行str[j]=’\\0’;,即保存字符结束标识符,用来标识字符串结束。通过上面的这些分析,我们可以知道函数fun的作用是去掉字符数组中的空格字符。
在主函数中,首先定义了一个大小为81的字符数组,然后调用函数clrscr()清除输入文本窗口,接着输出一条提示语句,执行gets(str);语句,该语句的作用是从键盘输入一个字符串到str数组,碰到换行符结束。然后调用函数fun,其实参为str。通过上面对函数fun作用的分析我们可以知道,调用函数后输入字符串中的空格符都被删除了,最后得到的字符串为asdafaaz67。
程序最后执行输出语句,输出字符数组str中的字符串,因此,程序最终的输出结果是asdafaaz67,本题答案选A。
2.B在本题中,程序首先定义了一个无返回值的函数fun,该函数带有两个整型的指针形参变量,在函数体中,首先定义一个整型指针变量k,然后试图利用k来交换a和b的结果。但处理语句k=a;很明显是对地址进行赋值操作。在C语言中,指针变量作为函数参数时,可以改变被指向的变量的值,但不能改变指针变量本身的值,即我们可以改变实参指向的变量的值,不能使实参指向其他的变量。因此,本函数并不能交换形参所指向变量的结果。
在主函数中,首先定义了两个整型变量a和b,并分别被初始化为3和6,然后定义两个指针变量x和y,分别指向a和b,接着调用fun函数,传递的实参为指针变量x和y,根据前面对fun函数的分析可知,调用该函数后并不能实现a和b数组的交换,因此,执行输出语句后,输出的结果是36。本题正确答案选B。
3.B此题主要考查scanf函数和gets函数的区别。答案为B。
4.B
5.D
6.A对下标为偶数的元素进行降序排序,下标为奇数元素保持不变。
7.Ado{*t++=*s++;}while(*s);不能因为当*s=‘\\0'时,while(*s)跳出循环,这样字符串结束标志’0\\没有复制给*t,造成*t不完整。注意,*t++=*s++是先执行t=*s,然后才进行t=t+1,s=s+1。B),C),D)三项都能将“\\0’复制过去。
8.A解析:希尔排序法的基本思想是:将整个无序列分割成若干小的子序列分别进行插入排序。
9.C
10.A
11.C解析:解答本题,首先要明白在对指针进行加、减运算的时候,数字“1”不是十进制的数“1”,而是指'1'个存储单元长度,而1个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是int型,移动1个存储单元的长度就是位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个字节。所以p+13所指向的数组元素的地址:300H+(13*上标)4)H=352H。
12.B关系之间的操作分为自然连接、投影、交、并、差等,由图可知此操作为差操作。
13.A
\r\n
14.D解析:本题考核的知识点是在自加运算符的运算对象。自加运算对象可以是整型变量也可以是实型变量,但不能是表达式和常量。本题中,#defined2定义了d为常数2,不能在对d进行自加运算.故选项D是个不正确的语句,所以,4个选项中选项D符合题意。
15.A
16.D
17.D
\n所谓二叉树的前序遍历是指先访问根结点,访问左子树,最后访问右子树,本题中序为DYBEAFCZX,后序为YDEBFZXCA。
\n
18.C解析:语句s+=2;使指针指向字符'c',此时s中保存的便是字符'c'的地址。
19.B
20.C解析:本题考查按位与“&”。因为1&1=1,0&0=0,所以任何数与自身按位与,结果仍为此数,不发生变化。
21.从定义到本源文件结束从定义到本源文件结束解析:C语言规定,宏名的有效范围为从定义宏到本源程序结束。
22.111,1解析:POWER(i++)中先引用i的值1,再将i的值加1,POWER(i++)=1*1=1。
23.调试调试
24.文档文档
25.队列队列解析:队列是一种特殊的线性表,只允许在表的一端插入元素,在表的另一端删除元素,插入元素的一端叫做“队尾”,删除元素的一端叫做“队头”,先插入的元素先被删除,是按先进先出的原则组织数据的。
26.结构化设计结构化设计解析:在软件开发中,结构化方法包括结构化分析方法、结构化设计方法和结构化程序设计方法。详细设计阶段所采用的是结构化设计方法。
27.88。8,8。解析:本题考查静态局部变量值的特点,请参考第10章有关习题的解析。
28.3131解析:在函数调用时,形参值和改变,不会改变实参的值。
29.i==jk!i&&k!ji==j\r\nk!i&&k!j解析:本题用双重for循环写了一段0~9之间不同的3个数构成一个三位数的程序,因为要求三位数各个位数的数不能相同,所以第一个空if语句的条件应为i==j,即当两个位数上的数相同的时候,不再执行下面的操作,转去执行for循环的下一次循环。第二个空,需要判断第三位上的数不能与其他两位的数相同。
30.cdeabcdeab解析:本题考核的知识点是基本算法的应用和程序的综合分析。从分析知道move()函数的作用,是将形参str所指的数组依次向后左移一位,即让该数组第一个元素的值等于第二个元素的值,接着让第二个元素的值等于第三个元素的值,直到该数组最后第二个元素的值等于最后一个元素的值,然后让第一个元素等于最后一个元素的值。主函数中用了一个for循环调用move()函数,共循环三次。当i=1时,第一次调用move()函数,使输入到数组的s的字符串“abcde”变为“eabcd”,当i=2时,第二次调用move()函数,使字符串“eabcd”变为“deabc”,当i=3时,第三次调用move()函数,使字符串“deabc”变为“cdeab”,故最后输出的值为“cdeab”,故该空格处应该填“cdeab”。
31.cdeabcdeab解析:本题中函数move的实参到形参是按地址传递,故形参的改变会影响实参。根据题目可知在main函数中,n=3、s[0]=\'a\'、s[1]=\'b\'、s[2]=\'c\'、s[3]=\'d\'、s[4]=\'e\',数组元素s[5]~s[49]全部为\'\\0\',故z=strlen(s)=5。
第1次调用函数move时,形参str='abcd'、n=5,执行完函数move后str[4]=str[3]=\'d\'、str[3]=str[2]=\'c\'、str[2]=str[1]=\'b\'、str[1]=str[0]=\'a\'、str[0]=str[4]=\'e\'。即s[0]=\'e\'、s[1]=\'a\'s[2]、s[2]=\'b\'、s[3]=\'c\'、s[4]=\'d\'。
第2次调用函数move时,形参str='eabcd、n=5,执行完函数move后str[4]=str[3]=\'c\'、str[3]=str[2]=\'b\'、str[2]=str[1]=\'a\'、str[1]=str[0]=\'e\'、str[0]=str[4]=\'d\'。即s[0]=\'d\'、s[1]c\'e\'、s[2]=\'a\'、s[3]=\'b\'、s[4]=\'c\'。
第3次调用函数move时,形参str='deabc'、n=5,执行完函数move后str[4]=str[3]=\'b\'、str[3]=str[2]=\'a\'、str[2]=str[1]=\'e\'、str[1]=str[0]=\'d\'、str[0]=str[4]=\'c\'。即s[0]=\'c\'、s[1]=\'d\'、s[2]=\'e\'、s[3]=\'a\'、s[4]=\'b\'。
所以printf函数的输出结果为:cdeab。
32.BCDCDDBCD\r\nCD\r\nD解析:本题考查指向字符串的指针的运算方法。指针变量p首先指向字符串中的第一个字符A,执行p=s+1后,p指向字符串中的第二个字符B,然后输出值'BCD'并换行,依次执行循环语句。
33.00解析:n%=2等价于n=n%2,结果为1:x%=1等价于x=x%1,结果为0。
34.sizeof(structnode)或4sizeof(structnode)或4解析:malloc(sizeof(struetnode))的作用是开辟一个长度为sizeof(struetnode)的内存区。(structnode*)的作用是使malloc返回的指针转换为指向structnode类型数据的指针。
35.s[i]!='\0'||t[i]!='\0's[i]=='\0'&&t[i]=='\0's[i]!='\\0'||t[i]!='\\0'\r\ns[i]=='\\0'&&t[i]=='\\0'
36.float*z
37.150150解析:本题先给变量x赋初始值100,然后将指针p指向变量x,*p是取指针p所指地址的内容,即100,所以x=100+50=150。
38.软件生命周期软件生命周期解析:软件产品从考虑其概念开始,到该软件产品不再使用为止的整个时期都属于软件生命周期,一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等。
39.&a[i]或a+Ia[i]或*(a+i)&a[i]或a+I\r\na[i]或*(a+i)解析:主函数中一开始定义了一个长度为20的整形数组,然后通过一个循环,循环20次给它的每个元素赋初值,所以在第一个空格处应填各个元素的地址,即填&a[i]或a+i,然后再通过一个循环执行20次,每循环一次,先判断该循环是否大于0,如果大于0将其累加到变量sum中,所以第二个空格处应该填入数组元素,即应该填a[i]或*(a+i)。
40.024
41.C解析:关系代数是以集合代数为基础女发展起来的,它是以关系代数作为运算对象的一组高级运算的集合。它的基本操作是并、交、差、笛卡尔积,另外还包括针对数据库环境专门设计的操作,包括对关系进行垂直分割(投影)、水平分割(选择)、关系的结合(连接)等。
42.D解析:main()函数可以带参数,并且参数只能有两个,第一个参数(argc)类型为整型用来记下命令行的参数个数,第二个参数(argv)为一个字符型指针数组,其各个元素用来记下命令行各参数字符串的首地址。本题执行时,argc的值为4,在循环中依次求出argv[1]、argv[2]和argv[3]指向的字符串('abcd'、'efg'和'10')的长度,并把它们加到变量len中,得到len的值9。所以最后输出的len值为9,所以4个选项中D正确。
43.B解析:T是R∪S的结果,关系T由属于关系R的或者属于关系S的元组组成。
44.A
45.A解析:选项A为异或运算符,如果参加运算的两个位相同,结果为0,否则为1。显然选项A中参加运算c1和c2相同,故其值位0;选项B为位与运算,如果参加运算的两位都为1,则结果为1,否则结果为0,选项B中参加运算的c1和c2都为真,所以结果为1;选项C为取反运算,用来对一个二进制取反,显然c2取反后不为0,选项D为异或运算,参加运算的两位只要有一个为1,那么运算结果为1,显然参加运算的c1和c2都不为0,故运算结果不为0。
46.A解析:本题主要考查按位异或和右移运算。b=4的二进制为00000100,b>>2后为00000001,a=2的二进制为00000010,两者异或为00000011。
47.A解析:a就是数组a的首地址,而a+x是数组中第x个元素的地址,所以在四个选项中,选项B和C只能输入一个数据,选项D不能给a[0]输入数据,只有A可以完成给数组所有的元素输入数据的任务。
48.B
49.B解析:一个算法应当具有以下5个特性:有穷性;确定性;可行性;有零个或多个输入;由一个或多个输出.简洁性不属于这5个特性,所以本题应该选择B。
50.C解析:在C语言中,“%d”表示输出带符号的十进制整型数;“%x”表示以十六进制无符号型输出整型数据(即不带前导0x或0x);“%o”表示以八进制无符号型输出整型数据(即不带前导0)。
51.D解析:线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此,不需要另外开辟空间来保存元素之间的关系。
52.B解析:数据库产生的背景就是计算机的应用范围越来越广泛,数据量急剧增加,对数据共享的要求越来越高。共享的含义是多个用户、多种语言、多个应用程序相互覆盖的使用一些公用的数据集合。在这样的背景下,为了满足多用户、多应用共,享数据的要求,就出现了数据库技术,以便对数据库进行管理。因此,数据库技术的根本目标就是解决数据的共享问题。故选项B正确。
53.A解析:本题涉及字符数组和指针两个知识点:①在C语言中,字符型数组在存放字符串时会自动在末尾加上'\\0',所以题中数组str有11个元素;②ptr指向数组str的首地址,ptr+10是指向str[10],*(ptr+10)是引用str[10]的值。
54.B解析:函数fun的功能是求两个数之和,其形参数据类型为int型,函数的返回值类型是float型。fun((int)fun(a+c,b),a-c)中有两层函数调用,其中内层调用是fun(a+c,b),因a+c+b=2+8+5=15,而返回类型是float型,所以fun(a+c,b)的值为15.0,将该值强制变换为int型后作为外层函数调用的参数,即fun(15,a-c)=15+a-c=15+2-8=9.0。因printf语句的输出格式为'%3.0f',即小数点后0位小数,故程序的输出为9。
55.A解析:C语言的字符型常量中,允许用一种特殊形式的字符常量,就是以一个'\\'开头的字符。其中,'\\ddd'表示用ASCII码(八进制数)表示一个字符,本题中的charc=\'\\72\'即表示占一个字符的变量c的ASCII码值。
56.C解析:根据混合运算规则,如果有一个数据是float型或double型,则其他数据类型先转化为double型,运算的结果最终也是double型。
57.D解析:函数的静态局部变量在编译时就赋初值,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋值,而只是保留上次函数调用结束时的值。
58.B解析:本题printf语句输出字符的ASCⅡ码值(整型)。
59.B解析:考查函数指针的使用方法。可以使用函数指针来调用函数。调用形式为:(*指针变量)(实参表列)。
60.C解析:本题首先定义了一个4行5列的数组s,又定义了一个指向由5个元素组成的一维数组的指针变量ps,通过赋值让ps指向了数组s的首地址。此时数组元素s[i)[j]的地址为“*(ps+i)+j”,数组元素s[i][j]可表示为*(*(pe+i)+j);选项B表示的是数组元素a[3][0]的地址;选项D表示的是数组元素s[1][3]的地址;选项A中“ps+1”为指向下一行(第二行)的地址;选项C中ps[0][2]无条件等价于“*(ps[0]+2)”又无条件等价于“*(*(pe+0)+2)”,即是数组元素s[0][2]。
61.Aint)((double)9/2)值为4,9%2值为l,相减值为3。
62.A首先利用fwrite函数将数组a中的数据写到文件中,接着fseek函数的功能是读文件的位置,指针从文件头向后移动3个int型数据,这时文件位置指针指向的是文件中的第4个int数据”4”,然后fread函数将文件fp中的后3
个数据4,5,6读到数组a中,这样就覆盖了数组中原来的前3项数据。最后数组中的数据就成了{4,5,6,4,5,6}。
63.D解析:改变文件位置指针函数fseek()的功能:①改变文件的位置指针;②辅助实现文件的顺序读写;③辅助实现文件的随机读写。
64.B链表是一种特殊的线性表,链表的存储结构与顺序存储结构不同,它的存储区域可以是任意的存储单元,对存储系统中零碎的存储部分具有更好的应用,在给其分配存储单元时,不必事先估计整个存储单元的空间大小;由于链表的元素是通过指针域的指针相连的,用链表存储数据时,对其进行插入和删除操作时,不需要移动其他元素,只需改变其直接前驱指针域,使其指向该结点,并将该结点的指针域修改为指向其直接后继结点即可。当然,不管是链表还是顺序存储,所需空间与线性表长度都成正比。在链式存储的链表结构中,由于后一结点数据被存储在哪里,只有通过前一结点的指针域才知道,因此,访问时只能是逐个访问,而不能实现随机访问。
65.D解析:因为字符数组s1)中的数组名s表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位,因而程序编译时出错。
66.B
67.B解析:f函数的功能是返回地址为x,y的两个数中值铰的数的地址,本题输出结果是7,8,7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位管理制度呈现大全员工管理篇
- 七年级英语Writingatouristguide课件
- 《电潜泵管理》课件
- 3.10 建设中国特色社会主义 课时练习-2021-2022学年部编版八年级历史下册
- 让CAR-T细胞治疗更精准为CAR-T开发提供综合性方案
- 《全球化与管理》课件
- 三年级科学教学工作计划(9篇)
- 化工销售工作总结
- 能源行业员工福利体系构建
- 2023年项目部安全培训考试题答案满分必刷
- 检验检测服务公司市场营销计划
- 医务人员外出进修流程图
- DB32∕T 2349-2013 杨树一元立木材积表
- 昌乐二中271高效课堂培训与评价ppt课件
- 颤病(帕金森病)中医护理常规
- 猪场名词及指标讲义
- 果胶项目商业计划书(模板范本)
- 旋挖钻成孔掏渣筒沉渣处理施工工艺
- T∕CHTS 10040-2021 公路无机结合料稳定粒料基层振动法施工技术指南
- 集团后备人才培养方案
- 脑卒中偏瘫患者早期康复护理现状(一)
评论
0/150
提交评论