版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年黑龙江省大兴安岭地区全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以哪种方式打开文件()。
A.wbB.wb+C.rb+D.rb
3.有以下程序:#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%d\n”,x,y,z);}程序运行后的输出结果是()。A.2.3.3B.2.3.2C.2.3.1D.2.2.1
4.以下叙述中错误的是()。
A.可以通过typedef增加新的类型
B.可以typedef将已存在的类型用一个新的名字来代表
C.用typedef定义新的类型名后,原有类型名仍有效
D.用typedef可以为各种类型起别名,但不能为变量起别名
5.以下数据结构中,()是线性结构。
A.有向图B.栈C.线索二叉树D.B树
6.有以下程序:main{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,12,},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<i;j++)printf("%4c",);for(j=________;J<4;j++)printf("%4d",num[i][j]);printf("\n");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是()。A.i-1B.iC.i+1D.4一i
7.以下叙述中正确的是_____。A.用C程序实现的算法必须要有输入和输出操作
B.用C程序实现的算法可以没有输出但必须要输入
C.用C程序实现的算法可以没有输入但必须要有输出
D.用C程序实现的算法可以既没有输入也没有输出
8.算法分析的目的是()。
A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易读性和文档性
9.请问对一个排好序的数组进行查找,时间复杂度为()
A.O(n)B.O(lgn)C.O(nlgn)D.O(1)
10.设有定义“doublex=5.16894;”,则语句“printf(“%lf\n”,(int)(x*1000+0.5)/1000.);”的输出结果是()。
A.5.16900B.5.16800C.0.00000D.输出格式说明符与输出项不匹配,产生错误信息
11.若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
12.设有下列二叉树:
对此二叉树先序遍历的结果为
A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA
13.以下说法错误的是:()
A.全局变量就是在函数外定义的变量,因此又叫做外部变量
B.一个函数中既可以使用本函数中的局部变量,也可以使用全局变量
C.局部变量的定义和全局变量的定义的含义不同
D.如果在同一个源文件中,全局变量和局部变量同名,则在局部变量的作用范围内,全局变量通常不起作用
14.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}该程序的输出结果是()。
A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD
15.链栈与顺序栈相比,比较明显的优点是()。
A.插入操作更加方便B.删除操作更加方便C.不会出现下溢的情况D.不会出现上溢的情况
16.
17.若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行的关键字依次为()
A.f,c,BB.f,d,BC.g,c,BD.g,d,B
18.有以下程序:#include<stdio.h>main(){chara[5][10]={“China”,“beijing”,“very”,“welcome”,“you”};char*p[5];inti;for(i=3;i<5;i++){p[i]=*(a+i);printf(“%s”,p[i]);printf(“%c”,*p[i]);}}程序运行后的输出结果是()。
A.wwyyB.ChinaCbeijingbC.veryvwelcomewD.welcomewyouy
19.以下程序的输出结果是_______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;print("%d%d%d,a[2],a[5],a[8]);}
A.258B.741C.852D.369
20.目前以比较为基础的内部排序方法中,其比较次数与待排序的记录的初始排列状态无关的是()
A.插入排序B.快速排序C.二分插入排序D.冒泡排序
二、2.填空题(20题)21.下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串123412132,指定字符1,则输出3。请填空。
#include<stdio.h)
#deftneM81
intfun(char*ss,charc)
{inti=0;
for(;【】;ss++)
if(*ss==c)i++;
returni;
}
main()
{chara[M],ch;
printf("\nPleaseenterastring:");gets(a);
printf("\nPleaseenterachar:");ch=getchar();
printf("\nThenumberofthecharis:%d\n",fun(a,ch));
}
22.以下程序的功能是找出三个字符串中的最大串。
【】
#include<stdio.h>
main()
{inti;
charstring[20],str[3][20];
(i=0;i<3;i++)gets(【】);
if(strcmp(str,str[0],str[1]>0)strcpy(string,str[0]);
elsestrcpy(string,str[1]);
if(strcmp(str[2],string)>【】)srtcpy(string,str[2]);
printf("Thelargeststringis\n%s\n",string);
}
23.当运行以下程序时,输入abcd,程序的输出结果是()。insert(charstr[]){inti;i=strlen(str);while(i>0){str[2*i]=str[i];str[2*i-1]='*';i--;}printf("%s\n",str);}main(){charstr[40];scanf("%s\n",str);insert(str);}
24.下列表达式用于判断y是否为闰年。闰年的判断条件是:年号能被4整除但不能被100整除或年号能被400整除,请填空______。
25.数据结构分为逻辑结构和存储结构,循环队列属于______结构。
26.有如图所示的双链表结构,请根据图示完成结构体的定义:
structaa
{intdata;
【】}node;
27.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】(要求形参名为b)。main(){doubles[10][22];intn;……fun(s);……}
28.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。
29.下列程序的运行结果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%b);
printf("%d,",(a-h,a+b));
printf("%d\n",a-b?a-b:a+b);
}
30.若有以下定义,则使指针p指向值为35的数组元素的语句是______。
inta[10]={14,27,47,29,35,21,49,71},*p;
31.以下程序运行后的输出结果是【】。
main()
{intx,a=1,b=2,c=3,d=4;
x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;
printf("%d\n",x);
}
32.对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【】。
33.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。
word_num(str)
charstr[];
{inti,num=0,word=0;
fo(i=0;str[i]!=【】;i++)
if(【】=='')word=0;
elseif(word==0)
{
word=1;
【】;
}
return(num);
}
34.已知字符A的ACSII码值为65,以下语句的输出结果是______。
charch='B';
printf("%c%d\n",ch,ch);
35.下面的程序实现的是从指针p所指向的地址的n个数中,找出最大的和最小的数据,请填空。
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
36.Jackson方法是一种面向【】的结构化方法。
37.以下程序的功能是将字符串s中的数字字符放人d数组中,最后输出d中的字符串。例如,输入字符串abc123edf456gh,执行程序后输出123456。请填空。
#include<stdio.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;)
d[j]='\0';
puts(D);
}
38.“printf("%d\n",strlen("\t\"023\xABC\n");”语句的输出结果是______。
39.下面程序的运行结果是:【】。
fun(intt[],intn)
{inti,m;
if(n==1)returnt[0];
elseif(n>=2){m=fun(t,n-1);returnm;}
}
main()
{inta[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
}
40.数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性和【】两个含义。
三、1.选择题(20题)41.下列程序的输出结果是#include"stdio.h"#defineN3#defineM3voidfun(inta[M][N]){printf("%d\n",*(a[1]+2));}main(){inta[M][N];inti,j;for(i=0;i<M;i++)for(j=0;j<N;j++)a[i][j]=i+j-(i-j);fun(a);}
A.3B.4C.5D.6
42.有以下程序:intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*f1)(),int(*f2)(),intx){return(*f2)(x)-(*f1)(x);}main(){inti;i=f(fa,fb,2);printf("%d\n",i);}程序运行后的输出结果是()
A.-4B.1C.4D.8
43.微型计算机中使用的鼠标器连接在()
A.并行接口上B.串行接口上C.显示器接口上D.键盘接口上
44.下列函数定义不正确的是()
A.intmax{intxy,z;z=x>y?x:y}
B.intmax(x,y)intx,y;{intz;z=x>y?x:y;return(z)}
C.intmax(x,y){intx,yz;z=x>y?x:y;return(z);}
D.intmax(){}
45.以下只有在使用时才为该类型变量分配存储单元的存储类说明是______。
A.auto和static
B.auto和register
C.register和static
D.extern和register
46.下列程序的输出结果是______。main(){inti;for(i=1;i+1;i++){if(i>4){printf("%d",i++);break;}}printf("%d",i++);}
A.55B.56C.程序错误,没有输出D.循环条件永远为真,死循环
47.有以下程序:voidswapl(intc[]){intt;t=c[0];c[0]=c[1];c[1]=t;}voidswap2{intc0,intc1){intt;t=c0;c0=c1;c1=t;}main(){inta[2]={3,5},b[2]={3,5};swap1(A);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其输出结果是
A.5353B.5335C.3535D.3553
48.在数据管理技术发展过程中,文件系统与数据库系统的本质区别是:数据库系统具有______。
A.数据结构化B.数据无冗余C.数据共享D.数据独立性
49.设inta=12,则执行完语句a+=a-=a*a后,a的值是()。
A.552B.264C.144D.-264
50.以下数据结构中属于线性数据结构的是
A.集合B.线性表C.二叉树D.图
51.下列叙述中错误的是()。
A.在C语言中的保留字必须小写
B.变量的存储类型决定了变量的存储位置及其生存期
C.宏定义以#define开头,行未必须加分号
D.在C语言中的注释行可以出现在程序的任何位置
52.
(3)
A.p->nextB.pC.sD.s->next
53.以下选项中合法的C语言字符常量是
A.'\t'B.AC.67D.A
54.有以下程序:#include<stdio.h>main(){inta[]={1,2,3,4},y,*p=&a[3];--p;y=*p;printf("y=%d\n",y);}程序的运行结果是()。
A.y=0B.y=1C.y=2D.y=3
55.若已建立下面的链表结构,指针p、s分别指向图中所示的结点,则不能将s所指的结点插入到链表末尾的语句组是()
A.s->next=NULL;p=p->next;p->next=s;
B.p=p->next;s->next=p->next;p->next=s;
C.p=p->next;s-next=p;p->next=s;
D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;
56.有以下程序:main(){charal='M'a2='m';printf("%c\n",(al,a2));}以下叙述中正确的是______。
A.程序输出大写字母MB.程序输出小写字母mC.格式说明符不足,编译出错D.程序运行时产生出错信息
57.结构化程序设计的3种结构是()
A.顺序结构,分支结构,跳转结构
B.顺序结构,选择结构,循环结构
C.分支结构,选择结构,循环结构
D.分支结构,跳转结构,循环结构
58.以下不正确的叙述是A.A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
59.已经定义ch为字符型变量,以下赋值表达式中错误的是______。
A.ch='\'B.ch=62+3C.ch=NULLD.ch='\xaa'
60.下列语句中,在字符串s1和s2相等时显示"theyareEqual"的是()。
A.if(*s1==*s2)
B.if(!strcmp(s1,s2))puts("theyareEqual");puts("theyareEqual");
C.if(s1==s2)
D.if(strcmp(s1,s2))Puts("theyareEqual");puts("theyareEqual");
四、选择题(20题)61.以下程序的输出结果是()。
main()
{inta=4,b=5,c=0,d;
d=!a&&!b║!c;
printf("%d\n",d);
}
A)1B)0
C)非0的数D)-1
62.C语言可执行程序的开始执行点是()。
A.包含文件中的第一个函数B.程序中第一个函数C.程序中的main()函数D.程序中第一条语句
63.
64.现有如下程序段:
则程序段的输出结果为()。
A.7,8
B.8,8
C.7,10
D.8,10
65.若有定义语句:doublex,y,*px,*PY;执行了laX=&x;lay=&y;之后,正确的输入语句是()。A.scanf(”%If%le”,px,lay);
B.seanf(”%f%f¨&x,y);
C.seanf(”%f%f",x,y);
D.Scanf(”%If%If"·,x,y):
66.有以下程序:
程序运行后的输出结果是()o
A.24B.720C.120D.6
67.
68.
69.有以下程序
程序的运行结果是()。
A.1,2,3,4,5,6,7,8,9,0,
B.2,1,4,3,6,5,8,7,0,9,
C.0,9,8,7,6,5,4,3,2,l,
D.0,1,2,3,4,5,6,7,8,9,
70.常采用的两种存储结构是()。
A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构
71.以下关于字符串的叙述中正确的是()。
A.C语言中有字符串类型的常量和变量
B.两个字符串中的字符个数相同时才能进行字符串大小的比较
C.可以用关系运算符对字符串的大小进行比较
D.空串一定比空格打头的字符串小
72.
73.
以下程序的输出结果是()。
main
{intx=0.5;charz=a;
printf("%d\n",(x&1)&&(z<2));}
A.0B.1C.2D.3
74.
75.下列关于C语言文件的叙述中正确的是()。
A.文件由一系列数据依次排列组成,只能构成二进制文件
B.文件由结构序列组成,可以构成二进制文件或文本文件
C.文件由数据序列组成,可以构成二进制文件或文本文件
D.文件由字符序列组成,其类型只能是文本文件
76.有以下程序
#include<string.h>
main()
{FILE*fp;
inti,k,n;
fp=fopen("data.dat","w+");
for(i=4;i<9;i++)
{fprintf(fp,"%d",i);
if(i%3==0)fprintf(fp,"\n");
}
rewind(fp);
fscanf(fp,"%d%d",&k,&n);
printf("%d%d\n",k,n);
fclose(fp);
}
程序的运行结果是
A.00B.45
C.4578D.45678
77.
78.
79.
80.有以下程序
#include"stdio.h"
main()
{structdate
{intyear,month,day;}today;
printf("%d\n",sizeof(structdate));
}
程序的运行结果是
A.6B.8
C.12D.10
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:求整数X的Y次方的低3位值。例如,整数6的5次方为7776,此值的低3位值为776。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,定义了NxN的二维数组,并在主函数中自动赋值。请编写函数fun(),该函数的功能是使数组上三角元素中的值乘以m。若m的值为2,a数组中的值为197238456则返回主程序后a数组中的值应为2181426164512注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:1#include2#include3#include4#include5#defineN56voidfun(inta[][N],intm)7{89}10main()11{12inta[N][N],m,i,j;13FILE*out;14printf("***Thearray***\n");15for(i=0;i<n;i++)16{for(j=0;j<n;i++)27{for(j=0;j38{for(j=0;j<n;j++)39fprintf(out,"%4d",a[i][j]);40fprintf(out,"\n");41}42fclose(out);43/*********found********/44}1voidfun(inta[][n],intm)2{3inti,j;4for(j=0;j<n;j++)5:for(i=0;i<=j;i++)6:a[i][j]=a[i][j]*m;/*上三角元素中的值乘以m*/
参考答案
1.B
2.B解析:本题考查文件使用方式标识符。方式“wb”为输出打开一个二进制文件;方式“wb+”为读写建立一个新的二进制文件;方式“rb+”为读写打开一个二进制文件:方式“rb”为输入打开一个二进制文件。
3.C整型变量x、y的初值都为1,“x++,y++,++y”是一个逗号表达式,程序执行“z=x++,y++,++y”之后,x的值为2,y的值为3,z取逗号表达式中的第二个表达式的值,为1。因此本题的答案为选项C。
4.A关键字typedet的作用只是将C语言中的已有的数据类型作了置换,并不是增加新的类型,所以A)错误。
5.B
6.B本题中要求输出右上半角的数,对角线上的数的下标相同,所以j=i。
7.C解析:算法的特性中包括“有零个或多个输入”及“有一个或多个输出”这两个特性。一个算法得到的结果就是算法的输出,没有输出的算法是没有意义的,所以一千算法必须至少有一个输出。
8.C
9.B
10.A表达式“(int)(x*1000+0.5)”使用了强制转换,其计算结果为5169,(5169/1000.0)=5.169。所以“printf(“%lf\\n”,5.169);”结果是5.16900。故本题答案为A选项。
11.C解析:栈是一种后进先出表,选项C中,先出栈的是3,说明此时栈内必然有1,2,由于1先于2进浅,所以1不可能在2之前出栈,故选项C这种出栈序列是不可能的。
12.C解析:二叉树的遍历分为先序,中序、后序三种不同方式.本题要求先序遍历,其遍历顺序应该为:访问根结点->,先序遍历左子树->先序遍历右子树。按照定义,先序遍历序列是ABDECF,故答案为C。
13.A
14.D解析:本题考查指向字符串指针的运算方法。执行p=s+1后,指针变量p就指向字符串中的第二个字符“B”,然后输出字符串“BCD”并换行;下面继续执行循环语句,指针变量p指向下一个字符“C”,输出字符串“CD”,最后一次循环,p指向字符“D”,输出字符串“D”。
15.D
16.C
17.A
18.Dmain函数定义一个二维字符数组a,它包含5个字符串,每个字符串存放在一个长度为10的一维数组中。指针数组P包含5个字符指针元素。for循环中,每次将*(a+i)赋给P[i],再输出P[i]和*P[i]。由于*(a+i)等价于a[i],因此每次都是将下标为i的字符串首地址赋给p[i],再输出该字符串和该字符串的首字符。i=3时,输出字符串“welcome”和首字符“w”;i=4时,输出字符串“you”和首字符“y”。综上,输出结果为welcomewyouy。故本题答案为D选项。
19.C解析:在本题运行时主要注意的是当i=9时,a[i]=10-9=1:i=8时,a[i]=10-8=2;i=7时,a[i]=10-7=3;……依此类推,直到i=0时,a[i]=10-0=10:此时,i的值已变为-1,判断for的循环条件,不成立,然后输出a[2],a[5],a[8]分别为8,5,2。
20.C
21.*ss!='\0'*ss!='\\0'解析:从字符串ss中找出某字符的方法是:从字符串ss的第一个字符开始,依次进行比较,若ss串的当前字符等于字符c,则i++;若ss串的当前字符和字符c不同,则继续对ss串的下一个字符进行比较。本程序采用循环逐一比较的方式,找出某字符在字符串中出现的次数。汀语句的作用是判断某字符与字符串中的当前字符是否相同。
22.#include<string.h>str[i]0
23.a*b*c*d*a*b*c*d*解析:本题考查的是函数与一个简单的算法结合在一起的应用。首先定义一个int型变量来存放字符串str的长度,执行while条件语句。通过分析可知,字符串2*i项的值可由第i项的值得到;第2*i-1项直接赋值为*,i递减,如此反复直到不满足i>0的条件时,输出运行后的字符串。
24.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查逻辑表达。年号能被4整除(y%4==0)但不能被100整除(y%100!=0),两者是与的关系,年号能被400整除即y%400==0,与前两项是或的关系。
25.存储或物理或存储结构或物理结构存储或物理或存储结构或物理结构解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。供队列循环使用。可知,循环队列应当是物理结构。
26.structaa*lhead*rchild;structaa*lhead,*rchild;解析:结构体对链表的定义。
27.
28.1对多(或1:N)1对多(或1:N)
29.11371,13,7解析:本题考查3个知识点:①余数的计算,题中的a=10,b=3,a%b=1:②(表达式1,表达式2)形式的结果为最后一个表达式的值,题中的a=10,b=3,(a-b,a+b)=a+b=13;③条件运算符的使用,题中的a-b?a-b:a+b,判断语句a-b=7不为0,所以执行a-b,结果为7。
30.p=a+4或p=&a[4]。p=a+4或p=&a[4]。解析:可以直接将数组元素a[4]的地址(即&a[4])赋给指针变量p,也可以用数组名加偏移量的形式(即a+4)表示数组元素a[4]的地址,并赋给指针变量p。
31.11解析:因为在条件表达式(a<b)?a:b中,比较表达式a<b为真,所以x的值等于a的值等于1,后面两个条件表达式中的比较表达式都为真,所以最终x的值等于1。
32.4545解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过遍的从前往后扫描和遍的从后往前扫描,需要比较次数为。
33.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:观察题目要求,可以知道以下几点:
①for循环的结束条件应当是:str[i]已是字符串的最后—个字符;
②str[i]代表字符串str中的第i+1个字符;
③整型变量num的值是要记录的单词的个数。
C语言中规定字符串的最后一个字符是一个隐含的字符串结束符“\\0”,所以在题中第—个空中应填写“\\0”;题中第二个空应填写“str[i]”,以判断当前位置的字符是否为空格;题中第三个空中应当填写“num++”,通过变量num的加1累加得到字符串中的单词个数。
34.B66B66解析:printf函数的功能是按照指定的格式,在标准输出设备上输出数据,它有两种参数:格式控制参数和输出项参数。本题中,printf('%c%d\\n',ch,ch)表示以字符格式和十进制整数格式输出ch,B的ACSII码值为66,即在计算机中B的十进制整数格式是66。所以,输出为B66。
35.q<p+nq<p+n解析:考查对于函数的地址传递的掌握情况。通过地址传递可以在被调函数中对调用函数中的变量进行引用。
36.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。
37.s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57解析:根据题意,if语句的条件应当是判断数组元素s[i]是否为数字,故正确答案为:s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57,其中48是字符0的ASCII码值,57是字符9的ASCII码值。
38.66解析:strlen()函数的作用是计算字符串的长度并作为函数的返回值,这里的长度不包括串尾的结束标志\'\\0\'。
\'\\t\'f是转义字符,代表横向跳若干格:'\\'是转义字符,代表双引号;\'\\023\'只代表一个字符,而不管转义字符后面有几个字符;’仅AB,是以两位十六进制数AB表示的ASCII码字符,只代表一个字符;\'\\n\'是转义字符,代表回车换行。
5个字符常量各代表一个字符,再加上字母C,所以返回的长度是6。
39.1111解析:此题涉及函数的调用和if语句。程序先执行第二个if语句,然后再执行第一个if语句,最后用return返回数值。
40.逻辑独立性逻辑独立性解析:数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。数据独立性一般分为物理独立性与逻辑独立性两个含义。注意:在人工管理阶段,文件系统阶段和数据库管理阶段中数据独立性的特点。
41.B解析:若有以下定义:inta[3][4],i,j;且当0<=i<3,0<=j<4,则可以有以下几种方式来引用数组中的第i行,第j列的元素:
a[a][j],*(a[i]+j),*(*(a+i)+j),(*(a+i)[j],*(&a[0][0]+4*i+j)”。
42.C
43.B
44.C
45.B解析:auto变量和register变量在使用时,系统自动为其分配存储单元;退出时自动释放这些存储单元另做它用。
46.B解析:本程序中有个for循环,但注意到for循环的条件是“i+1”,也就是只要i+1的值为真(非零值均为真),就执行循环。当i=1的时候,i+1的值为真,判断if条件不成立,执行i++,输出i的值为5。
47.B解析:本题考核的知识点是函数调用中值传递和地址传递。函数间的参数的传递有两种情况,第1种情况变量作为形参时的参数传递,变量作为形参时,要求对应的实参应为变量或表达式,变量作为函数的参数其传递方式是“值传递”,该种情况下,形参被赋值为实参的值,然后实参与形参再无联系。也就是说对行参的改变将不再影响实参:第2种情况是地址或数组名作为形参时的参数传递,该种情况下对形参的改变将对实参产生影响。本题中函数swap1()是传递的地址。所以对该形参c的改变将影响实参,分析可知该函数的作用,是使数组c的第一个元素和第二个元素的值互换。主函数中调用该函数将a作为实参传递给形参c,故执行该函数后a的第一个元素和第二个元素的值将交换。分别为5和2.函数swap2()是值传递的,所以该函数执行后对数组b将没有任何改变,此时该数组的第一个和第二个元素依然为3和5,因此最后的输出为5、3,3和5,所以,4个选项中选项B符合题意。
48.A解析:文件系统中记录内有结构,但整体没有结构。数据库实现整体数据的结构化。数据的结构化是文件系统与数据库系统的本质区别。
49.D
50.B解析:所谓的线性结构:如果一个非空的数据结构满足下列两个条件,即
1)有且只有一个根结点;
2)每一个结点最多有一个前件,也最多有一个后件。同时满足两个条件的只有线性表,而其他三种数据结构的结点可能存在多个前件或后件,所以不是线性结构。
51.C解析:本题涉及C语言最基本的4个知识点:①C语言的保留字必须小写;②变量的存储类型不同,其存储位置和生存期也不一样;③C语言允许其注释部分出现在程序中的任何位置;④宏定义以#define开头,行末不需要加分号。
52.B解析:在主函数中,定义了一个结构体型指针变量head,然后将函数CreatList()的返回值赋给指针变量head,从这里可知函数CreatList()的返回值为struetnode*类型,所以第48处的空格处应该填struetnode*;在函数CreatList()中首先定义三个结构体型指针变量h,p和q,然后调用malloc()函数分配了一个结点空间,并让指针h指向它,开始指针p、q和h都指向它,然后调用一个while循环语句,当到达字符串数组s的末尾结束循环,在每次循环中,分配一个结点空间,并让p指向它,然后让该结点的data域的值等于字符串指针s所指的值,故49处的空格处应填*s;接下来让指针q所指结点的指针域指向结点p,然后让指针q指向该指针的所指结点的下一个结点即p。
53.A解析:在C语言中,一个字符常量代表ASCII字符集中的一个小字符,在程序中用单引号把一个字符括起来作为字符常量,选项A)是一个转义字符常量,表示横向跳若干空格(代表“TAB”键);选项B)表示一个字符串;选项C)表示一个整型常量;选项D)表示一个标识符(代表一个变量),故本题答案为A)。
54.D解析:本题主要考查一维数组及数组元素的地址。程序中定义数组a后知,a[0]=1,a[1]=2,a[2]=3,a[3]=4;在定义指针p时给其赋值为a[3]的地址。执行--p;语句后,p指向数组元素a[2];然后执行y=*p;语句,y的值为指针p所指向的变量的值为3。
55.C
56.B解析:输出项表是一个逗号表达式,它的值为a2,因此输出的是a2的值。
57.BB)【解析】程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。
58.D解析:在C语言所有的运算符中,逗号运算符的优先级最低。C语言中区分大小写,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值付给a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项D)中当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。
59.A解析:反斜杠字符“\\”赋给字符,应该写成ch='\\\\',所以A是错误的。
60.B解析:字符串比较不能用两个等于号(=)来进行比较,应使用函数strcmp(s1,s2)来比较。函数strcmp(s1,s2)的功能:当字符串s1和s2相等时,返回值为0。因此,当表达式!strcmp(s1,s2)=1时,条件成立,执行后面的语句,输出theyareEqual。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 描写秋景的初一作文600字5篇
- 初中物理教学心得体会
- 大学毕业求职信合集五篇
- 对创业的认识和理解范文五篇
- 七年级下册历史知识要点归纳总结
- 光电技术转让协议书(2篇)
- 租赁经营合同范本
- 旅游汽车租赁合同样书
- 2025电脑购销合同合同范本
- 2025煤炭买卖合同
- 在建工程重大安全隐患局部停工整改令(格式)
- 《落花生》-完整版课件
- 2021年贵安新区产业发展控股集团有限公司招聘笔试试题及答案解析
- 安全文化培训 (注册安工再培训)课件
- 色粉-MSDS物质安全技术资料
- 骨科学研究生复试真题汇总版
- 石油化工钢结构工程施工及验收规范
- 辽海版六年级音乐上册第8单元《3. 演唱 姐妹们上场院》教学设计
- 形势任务教育宣讲材料第一讲——讲上情
- 物业安全员考核实施细则
- 中国地质大学(武汉)教育发展基金会筹备成立情况报告
评论
0/150
提交评论