![2021年湖北省鄂州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页](http://file4.renrendoc.com/view/ce17d03a60279dcc61f0323534b5b48e/ce17d03a60279dcc61f0323534b5b48e1.gif)
![2021年湖北省鄂州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页](http://file4.renrendoc.com/view/ce17d03a60279dcc61f0323534b5b48e/ce17d03a60279dcc61f0323534b5b48e2.gif)
![2021年湖北省鄂州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页](http://file4.renrendoc.com/view/ce17d03a60279dcc61f0323534b5b48e/ce17d03a60279dcc61f0323534b5b48e3.gif)
![2021年湖北省鄂州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页](http://file4.renrendoc.com/view/ce17d03a60279dcc61f0323534b5b48e/ce17d03a60279dcc61f0323534b5b48e4.gif)
![2021年湖北省鄂州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页](http://file4.renrendoc.com/view/ce17d03a60279dcc61f0323534b5b48e/ce17d03a60279dcc61f0323534b5b48e5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年湖北省鄂州市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.有以下函数:intfun(char*x,char*y){intn=0;.while((*x==*y)&&*x!="\0){x++;y++;n++;}returnn;}函数的功能是()。
A.将y所指字符串赋给x所指存储空间
B.查找和y所指字符串中是否有"\0'
C.统计x和y所指字符串中最前面连续相同的字符个数
D.统计x和y所指字符串中相同的字符个数
3.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“TEXT”,*b=“++”,c[3]=“1”;printf(“%d,%d,”,strlen(a),sizeof(a));printf(“%d,%d,”,strlen(b),sizeof(b));printf(“%d,%d,\n”,strlen(c),sizeof(c));}程序运行后的输出结果是()。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3
4.以下程序的输出结果是()。#defineM(x,y,z)x*y+zmain(){inta=l,b=2,c=3;printf("%d\n",m(a+b.b+c,c+a));}A.19B.17C.15D.12
5.下述函数功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}
A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面
6.下列存储器中,存取速度最快的是()。
A.软盘B.硬盘C.光盘D.内存
7.结构化程序设计的3种结构是()。
A.顺序结构、选择结构、转移结构
B.分支结构、等价结构、循环结构
C.多分支结构、赋值结构、等价结构
D.顺序结构、选择结构、循环结构
8.如有inta=11;则表达式(a++*1/3)的值是()。
A.0B.3C.4D.12
9.若x=10010111,则表达式(3+(int)(x))&(~3)的运算结果是()。
A.10011000B.10001100C.10101000D.10110000
10.若函数中有定义语句:inta;,则()。
A.系统将自动给a赋初值0B.这时a中的值是和随机数C.系统将自动给a赋初值-1D.这a中无任何值
11.高度为h的满二叉树的结点数是________个。
A.log2h+1B.2h+1C.2h-1D.2h-1
12.采用邻接表存储的图的广度优先遍历算法类似于二叉树的()。A.A.先序遍历B.中序遍历C.后序遍历D.按层遍历
13.有以下程序:#include<stdio.h>main(){FILE*pf;char*s1=“China”,*s2=“Beijing”;pf=fopen(“abc.dat”,“wb+”);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指针回到文件开头*/fwrite(s1,5,1,pf);fclose(pf);}程序执行后,abc.dat文件的内容是()。
A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina
14.众所周知数据结构中非常基本的树结构包括二叉查找树(BST)。当我们把如下序列:10,5,19,4,13,7,6,3,1按顺序建立一棵BST时,树的最大深度是?(令根节点深度为0,不执行平衡二叉树操作)()
A.5B.4C.3D.2
15.广义表(a,b,c,d)的表尾是()。
A.aB.(a)C.(b,c,d)D.((b,c,c))
16.
17.
18.设有以下语句
charchl,ch2;scanf("%c%C",&chl,&ch2);
若要为变量chl和ch2分别输入字符A和B,正确的输入形式应该是()。
A.A和B之间用逗号间隔
B.A和B之间不能有任何间隔符
C.A和B之间可以用回车间隔
D.A和B之间用空格间隔
19.以下不能作为合法常量的是()。
A.'cd'B.1.234e04C.”\a”D.'\011'
20.数据流图(DFD)的作用是()。
A.描述软件系统的控制流B.支持软件系统的功能建模C.支持软件系统的面向对象分析D.描述软件系统的数据结构
二、2.填空题(20题)21.数据库系统中实现各种数据管理功能的核心软件称为【】。
22.一般来说,数据库的设计过程要经历3个大的阶段,即可行性分析与研究阶段、系统设计阶段、设计实施与系统运行阶段。概念设计、逻辑结构设计、物理结构设计属于数据库设计的【】阶段。
23.有以下程序,其功能是:以二进制“写”方式打开文件d1.dat,写入1~100这100个整数后关闭文件。再以二进制“读”方式打开文件d1.dat,将这100个整数读入到另一个数组b中,并打印输出。请填空。
#include<stdio.h>
main()
{FILE*fp;
inti,a[100],b[100];
fp=fopen("d1.dat","wb");
for(i=0;i<100;i++)a[i]=i+1;
fwrite(a,sizeof(int),100,fp);
fclose(fp);
fp=fopen("d1.dat",【】);
fread(b,sizeof(int),100,fp);
fclose(fp);
for(i=0;i<100;i++)printf("%d\n",b[i]);
}
24.若变量a,b已定义为int类型并分别赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句行:【】。
25.下列软件系统结构图的宽度为[]。
26.以下程序段的运行结果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}
27.下面程序的运行结果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
28.数据流图的类型有【】和事务型。
29.在最坏情况下,冒泡排序所需要的比较次数为【】。
30.以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b+*;break;
}
printf("%d%d\n",a,b);
}
31.下列程序的输出结果是______。
main()
{inta=1,b=2,c=3,t=0;
if(a<B){t=a;a=b;b=t;}
if(a<C){t=a;a=c;c=t;}
printf("%d,%d,%d\n",a,b,C);
}
32.以下程序的输出结果是【】。
main()
{charc='z';
printf("%c",c-25);}
33.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。
34.以下程序用来统计文件中字符的个数。请填空。
#include“stadio.h”
main()
{FILE*fp;longnum=0L;
if((fp=fopen(“fname.dat”,“r”))==NULL);
{printf(“0penerror\n”);exit(0);}
while(【】)
{fsetc(fp);num++;}
printf(“num=%1d\n”,num-1);
fclose(fp);
}
35.设有以下定义和语句,则*(*(p+2)+1)的值为【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
36.假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为【】。
37.strcat函数的作用是【】。
38.若运行时给变量x输入12,则以下程序的运行结果是【】;
main(){
intx,y;
scanf(""%d"",&x);
y=x>12?x+10:x-12;
printf(""%d\n"",y);
}
39.下列函数从字符数组s[]中删除和c一样的字符,请在下面横线处填空。voiddelete(s,C)chars[],c;{inti,j;for(i=j=0;();i++)if(s[i]!='c')s[j++]=s[i];s[j]="\0";}
40.当运行以下程序时,输入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",str);insert(str);
}
三、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.有以下程序main(){charstr[][10]={"China",Beijing"},*p=str;printf("%s\n",p+10);}程序运行后的输出结果是
A.ChinaB.BeijingC.ngD.ing
43.在数据库管理系统提供的数据语言中,负责数据的完整性、安全性的定义与检查以及并发控制、故障恢复等功能的是
A.数据定义语言B.数据转换语言C.数据操纵语言D.数据控制语言
44.有以下程序: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
45.当a=1、b=2、c=3、d=4时,执行下面程序段后,x的值是()。if(a<B)if(c<D)x=1;elseif(a<C)if(b<D)x=2:elsex=3:elsex=6:elsex=7:
A.1B.6C.3D.2
46.有以下定义
#include<stdio.h>
chara[10],*b=a;
不能给a数组输入字符串的语句是
A.gets(A)B.gets(a[0]);C.gets(&a[0]);D.gets(B);
47.以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址。#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));/*库函数strcpy对字符串进行复制*/strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为()。
A.abcdB.abbaC.abcD.baca
48.下列说法不正确的是()。
A.一个C语言源程序可以由一个函数组成也可以由多个函数组成
B.main()中的“()”是函数的参数部分,括号内可为空,但括号不能省略
C.C语言程序是以函数为基本单位的
D.在C语言程序中,注释行只能位于一条语句的后面
49.若有以下说明:inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;则数值为4的表达式是()
A.a[g-c]B.a[4]C.a['d'-'c']D.a['d'-c]
50.有定义语句:chars[10];,若要从终端给s输入5个字符,错误的输入语句是A.gets(&s[0]);
B.scanf("%s",s+1);
C.gets(s);
D.scanf("%s",s[1]);
51.以下叙述中错误的是()。
A.C语句必须以分号结束
B.复合语句在语法上被看作一条语句
C.空语句出现在任何位置都不会影响程序运行
D.赋值表达式末尾加分号就构成赋值语句
52.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码
53.在执行以下程序时,如果从键盘上输入ABCdef<回车>,则输出为______。#include<stdio.h>main(){charch;while((ch=getchar())!="\n"){if(ch>='A'&&ch<='B')ch=ch+32;elseif(ch>='a'&&ch<='z')ch=ch-32;printf("%c",ch);}printf("\n");}
A.ABCdefB.abcDEFC.abcD.DEF
54.以下叙述中正确的是______。
A.C语言比其他语言高级
B.C语言可以不用编译就能被计算机识别执行
C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D.C语言出现的最晚,具有其他语言的—切优点
55.有定义:inta=1,b=2,c=3,x;则以下选项中各程序段执行后,x的值不为3的是()。
A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;
B.if(a<3)x=3;elseif(a<2)x=2;elsex=1;
C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;
D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;
56.下面程序的输出结果为______。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}
A.xyzabcABCB.abcABCC.xyzabcD.xyzABC
57.执行下面程序的正确结果是()。main(){floata=1.9;switch(a){case0:printf("0000");case1:printf("1111");case2:printf("3333");}printf("%f",a);}
A.1.9B.111133331.9C.33331.9D.1111233331.9
58.对线性表进行二分法检索,其前提条件是()。
A.线性表以顺序方式存储,并按关键码值排好序
B.线性表以顺序方式存储,并按关键码的检索频率排好序
C.线性表以链式方式存储,并按关键码值排好序
D.线性表以链式方式存储,并按关键码的检索频率排好序
59.有下列程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c:k;执行该程序段后,k的值是()。
A.3B.2C.1D.0
60.有下列函数定义:fun(floath){printf("%f,%f\n",h,h*h);}该函数的类型是()。
A.int类型B.float类型C.void类型D.函数无类型说明,定义有错
四、选择题(20题)61.设有下列二叉树:
对此二叉树中序遍历的结果为()。
A.ACBDEFB.DEBFCAC.ABDECFD.DBEAFC
62.有以下函数
fun(char*a,char*b)
{
while((*a!=’\0’)&&(*b!=’\0’)&&(*a==*b))
{
a++;b++;
}
return(*a-*b);
}
该函数的功能是
A.计算a和b所指字符串的长度之差
B.将b所指字符串连接到a所指字符串中
C.将b所指字符串连接到a所指字符串后面
D.比较a和b所指字符串的大小
63.有以下程序:
程序运行后的输出结果是()。
A.33B.197C.143D.28
64.(52)栈和队列的共同点是()
A.都是先进后出B.都是先进先出
C.只允许在端点处插入和删除元素
D.没有共同点
65.
有以下程序
#include<stdio.h>
main
{inty=9;
for(;y>0;y--)
if(y%3==0)printf("%d",--y);
}
程序的运行结果是()。
A.741B.963C.852D.875421
66.有以下程序:
fun(inta,intb)
{a++;b++;
if(a>b)return(a);
elsereturn(b);
}
void
main()
{intx=3,y=8,z=6,r;
r=fun(fun(x,y++),2*z);
printf("%d\n",r);
}
程序运行后的输出结果是()。
A.13B.6
C.8D.12
67.结构化程序设计主要强调的是()。
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性
68.以下叙述中正确的是
A.用C程序实现的算法必须要有输入和输出操作
B.用C程序实现的算法可以没有输出但必须要有输入
C.用C程序实现的算法可以没有输入但必须要有输出
D.用C程序实现的算法可以既没有输入也没有输出
69.
70.
71.下列关于栈的描述中错误的是()。
A.栈是先进先出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入删除操作中,不需要改变栈底指针
72.
73.下面的变量说明中__________是正确的。
A.char:a,b,c;
B.chara;b;c;
C.chara,b,c;
D.chara,b,c
74.以下程序的输出结果是()。voidprt(int*m.intn){inti;for(i=0;i<n;i++)m[i]++;)main{inta[]={1,2,3,4,5),i;prt(a,5);for(i=0;i<5;i++)printf(“%d,”,a[i]);)A.1,2,3,4,5B.2,3,4,5,6C.3,4,5,6,7D.2,3,4,5,1
75.
下面程序的运行结果是()。
#inelude<stdio.h>
voiddel(char*s)
{inti,j;
char*a;
a=s:
for(i=0,j=0;a[i]!=\0;i++)
{if(a[i]>=0&&a[i]<=9)
{s[j]=a[i];
j++;
}
s[j]=\0;
}
}
main
{char*s="aa89gggh";
del(s):
printf("\n%s",s);
}
A.1B.2C.3D.4
76.
下列程序的输出结果是()。
#include<stdio.h>
voidp(int*x)
{printf("%d¨,++*x);
}
voidmain()
{inty=3;
p(&y);
}
A.3B.4C.2D.5
77.
78.有以下程序:
#include<stdio.h>
main()
{inta=7;
while(a--);
print[("%d\n",a);
}
程序运行后的输出结果是()。
A.-l
B.0
C.1
D.7
79.
80.
五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不相等,2和Y的值不相等。例如,当x的值为1,y的值为2,z的值为3时,函数值为2.O0。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),该函数的功能是统计一行字符串中单词的个数,并将其作为函数值返回。字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。注意:部分源程序在文件prog1.c中。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:1#include<string.h>2#include<stdio.h>3#defineN804intfun(char*s)5{67}8voidmain()9{10FILE*wf;11charline[N];12intnum=0;13printf("Enterastring:\n");14gets(line);15num=fun(line);16printf("Thenumberofwordsis:%d\n\n",num);17/*********found*********/18wf=fopen("out.dat","w");19fprintf(wf,"%d",fun("abigcar"));20fclose(wf);21/*********found*********/22}
参考答案
1.B
2.C本题中由循环条件可知遇到“0或x与y所指的字符的值不等中的一个条件时就结束,所以功能是统计x和y所指字符串中最前面连续相同的字符个数。
3.Asizeof是运算符,计算数组、指针、类型、对象、函数等所占的字节大小。strlen(*char)是函数,参数必须是字符型指针(char*)。该函数的功能是:返回字符串的长度,不包括字符串结束标识。“sizeof(a)”是求数组a所占空间的大小,包括字符串最后的‘\\0’。所以“sizeof(a)”=5,strlen遇到‘\\0’就结束,“strlen(a)”=4。“strier(b)”是指针指向的字符串长度,“sizeof(b)”是指针的大小。“strlen(c)”是字符串的长度,“sizeof(c)”是数组的长度。因此,输出结果是4,5,2,4,1,3,。故本题答案为A选项。
4.DM(a+b,b+C,c+a)=a+b*b+c+c+a=1+2*2+3+3+1=12,注意x*y+z而不是(x)*(y)+z。
5.A解析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。
6.D\nD【解析】存储器中.存取速度最快的是内存。
\n
7.D结构化程序设计的基本要点:①采用自顶向下、逐步求精的程序设计方法;②任何程序都可由顺序、选择和循环3种基本控制结构构造。
8.B
9.A解析:本题主要考查运算表达式的运算。3+(int)(x)的结果是10011010,~3的结果是11111100,二者逻辑与得10011000。
10.B本题考查变量赋值基本概念。在声明一个变量后,如果未显式的对其进行赋值,则它的值是一个随机值。
11.C
12.D
13.B题目中先是将s2字符串写入adc.dat中,然后执行rewind函数将写指针放置于文件开头,写入s1字符串。s1字符串将前5个字符覆盖,所以最终结果为Chinang。故本题答案为B选项。
14.B
15.C
16.D
17.C
18.B\nscanf输入函数中,格式控制J必须严格按照函数中的要求进行输入,在scanf('%c%c',&chl,&ch2)的格式控制语句中没有任何字符进行间隔,所以在输入时也不能使用任何字符进行间隔,所以答案选择B。
\n
19.A字符常量是使用单引号标注的单个字符,选项A错误;选项B属于浮点数常量,正确;选项C属于转义字符常量,正确;选项D属于转义字符,代表八进制数011的ASCII值的字符,正确。本题答案为A选项。
20.B数据流图是系统逻辑模型的图形表示,从数据传递和加工的角度,来刻画数据流从输入到输出的移动变化过程,它直接支持系统的功能建模。本题答案为B选项。
21.数据库管理系统数据库管理系统(DBMS)
22.系统设计系统设计解析:系统设计阶段是系统的具体设计过程,主要包括概念设计、逻辑结构设计、物理结构设计3个步骤。这3个不同层次上的设计过程,是把实体以及相互之间的联系转换为“数据”并落实于计算机中。
23.rb或"r+b"或"rb+"rb或'r+b'或'rb+'解析:根据题目要求,在下划线位置应该填入一个能实现二进制读的使用文件方式的参数即可。所以,可以填'rb'或'r+b'或'rb+'。
24.printf("a=%db=%d"ab);printf('a=%d,b=%d',a,b);解析:根据printf函数的格式可知输出语句应该为:printf('a=%d,b=%d',a,b);
25.33解析:软件系统结构图的宽度:整体控制跨度(最大模块数的层)的表示。
26.x=2
27.x=11x=11解析:在对无符号数的右移是高位补0。
28.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。
29.n(n-1)/2n(n-1)/2解析:在最坏情况下,冒泡排序所需要的比较次数为n(n-1)/2。
30.2121解析:本题考查switch语句。首先x=1,执行switch(y),因为y=0,所以执行case0:a++;break;此时a=1执行case2:a++;b++;这时a=2,b=1;最后输出结果是21。
31.3123,1,2解析:分析程序,第一个if语句,a=1,b=2,控制条件a<b成立,则交换a、b的值,此时a=2,b=1。第二个if语句,a=2,c=3,控制条件a<c成立,则交换a、c的值,此时a=3,c=2。
32.aa解析:“z”的ASCII码值为122,经过c-25运算后得97,以字符形式输出是a。
33.封装封装
34.!feof(fP)!feof(fP)解析:统计文件中字符个数的算法可描述如下:首先判断文件位置指针是否指向了文件尾,如果不是则读出一个字符,同时字符的个数加1,再判断文件位置指针是否位于文件尾,如此循环,直到文件位置指针位于文件尾为止。本题首先以读文件的方式打开了文件“fname.dar”,如果打开成功则把返回的文件型指针赋值给fp,然后通过循环求文件中的字符数。首先判断文件位置指针是否位于文件尾,如果不是则循环读取字符,每次字符数加1。所以下划处应填循环条件,文件位置指针不是指向文件尾,即“!feof(fp)”。
35.6060解析:程序中定义a是一个3行2列的二维数组,p是指向两个元素的一维数组指针,并让p指向二维数组a的首行。则代码*(*(p+2)+1)中的p+2指向二维数组a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。
36.n(n-1)/2
37.连接两个字符数组中的字符连接两个字符数组中的字符解析:strcat函数的作用是连接两个字符数组中的字符串。
38.00解析:三目运算符的形式为(表达式1)?(表达式2):(表达式3)。当(表达式1)值为真时,返回(表达式2)的值;为假时,返回(表达式3)的值。题中因为x>12为假,所以结果为x-12,即为0。
39.s[i]!='\0's[i]!='\\0'解析:本题是要删除字符数组中和c一样的字符,for循环实现的功能是逐个读出字符数组s中的元素,并和字符c做比较,直到遇到字符串结束标志'\\0',结束循环,所以横线上应该填s[i]!='\\0'。
40.a*b*c*d*a*b*c*d*解析:字符处理函数strlen()测试字符串常量的长度,不包括‘\\0’在内。因此,函数insert()实现了将字符数组中每个非‘\\0’的字符后插入字符‘*’的功能。故输出结果是a*b*c*d*。
41.C解析:本题考查for循环。第一次循环前先判断循环条件,此时i=0,j=1,i<j+1成立,循环第一次;第二次循环前先判断循环条件,此时i=1,j=0,(j--是先使用j的值再减1),i<j+1不成立,结束循环。
42.B解析:本题考核的知识点是二维数组的定义、初始化和指针的应用。本题中首先定义了一个字符串数组并初始化,初始化后使得str[0]='China',str[1]='Beijing',然后定义一个指针变量p并让其指向str,而在该二维数组中定义每个字符串的长度为10所以p+10将指向str[1]的,因此最后输出*(p+10)的值为Beijing。所以,4个选项中选项B符合题意。
43.D解析:在数据库管理系统提供的数据语言中,数据控制语言负责数据的完整性、安全性的定义与检查以及并发控制、故障恢复等功能。
44.A解析:char型数据类型以%d的形式输入时,输入的是ASCII值。65是字符A的ASCII码值,66是字符B的ASCII值。
45.A
46.B解析:函数gets()的调用形式为gets(str_adr);str_adr是存放字符串的起始地址。可以是字符数组名、字符指针或字符数组元素的地址。gets函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。换行符读入后,不作为字符串的内容。本题中定义一个长度为10的字符数组,和一个指针变量b,并且通过赋值让它指向数组a。gets函数的参数a[0]不能表示数组a的首地址。
47.B解析:本题考查返回指针值的函数。一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址。函数strcmp(字符串1,字符串2)的作用是比较字符串1和字符中2。如果字符串1=字符串2,函数值为0;如果字符串1,字符串2,函数值为一正整数;如果字符串1<字符串2,函数值为一负整数。本题程序中scmp函数的作用是比较s1和s2的大小,对strcmp函数的返回值进行判断,如果字符串1<字符串2,则返回字符串1的值,反之返回字符串2的值。所以main函数中scmp(str[0],str[1])的返回值是abba,通过strcpy函数把返回值abba复制到string中。当执行scmp(string,str[2])时,scrap函数的返回值为abba,再次复制到string中,最后string的值为abba。
48.D解析:本题涉及C语言基本的3个知识点:①C语言是以函数为基本单位的,每一个函数完成相对独立的功能,一个程序可以包括多个函数,但有且仅有一个主函数;②主函数main()的圆括号内是填写参数的,可以没有参数,但括号不可以省略;③程序的注释部分应该在“/*…………*/”之间,它允许出现在程序的任何位置。
49.D
50.D解析:字符串的输入有两种方式:使用scanf()函数和使用get()函数。采用scanf()函数输入时,输入项为字符串的地址值,输入字符依次放入以这一地址为起点的存储单元中。选项C是正确的,输入字符从数组的第2个位置开始存放;选项D是错误的,s[1]是字符,不是地址值。gets()的调用形式为:gets(str_adr),其中str_adr为存放字符串的首地址。选项A中,&s[0]为数组的首地址,选项C中,s也为数组的首地址.因此选项A和C都是正确的。
51.C解析:C语句必须以分号结束,选项A是正确的。复合语句在语法上被看作一条语句,选项B也是正确的。空语句也算是一条语句,因此如果空语句出现在条件或者循环语句中,一样会被当作条件子句或者循环体来看待,所以选项c是错误的。赋值表达式末尾加分号就构成赋值语句,选项D正确。故本题应该选择C。
52.A解析:关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能惟一标识元组的最小属性集称为该表的键或码。
53.B
54.C解析:计算机语言分为低级语言、汇编语言和高级语言,C语言属于高级语言,但并不是说C语言比其他语言高级,所以选项A错误;除了低级语言外,其他各种语言都必须编译成能被计算机识别的二进制数才能执行,选项B错误;C语言出现从1972年到1973年间,并不是出现最晚的语言,所以选项D也是错误的。
55.C解析:选项A),因为前面两个条件都不满足,所以执行x=3。选项B),a<3成立,执行x=3。选项C),a<3成立,执行x=3;a<2成立,执行x=2;a<1不成立,不执行x=1,所以执行此段程序后x=2。选项D),a<b成立,执行x=b,此时x=2;b<c成立,执行x=c,此时x=3;c<a不成立,不执行x=a,所以执行此段程序后x=3。
56.B解析:strcpy(str1,s1):作用是将字符串s1拷贝到字符数组str1中去。strcat(字符数组1,字符数组2):把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后返回字符数组1的地址。本题定义了三个字符数组p1,p2,sir,strcat(p1,p2)函数的作用是将字符串数组p2接到字符串p1的后面,结果放在字符数组p1中,再通过strcpy()函数将该字符串拷贝到str数组中,原str数组中的字符串xyz被覆盖,因此打印输出字符串str即可得到abcABC。
57.B解析:switch语句只接受int型变量,如果不是则隐式转换为int,由于C语言中float到int的转换是截尾取整,故在switch中从case1:标号处开始执行,首先输出4个1。此时又因为case2:之前并没有break;之类的跳转语句,所以case2:标号处的语句也被执行,输出4个3。最后以默认的浮点数格式输出变量a,变量a在switch语句中并未被改变,故最后输出为1.900000,所以应该选择B。
58.A解析:对线性表进行二分法检索,要求线性表是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 气体分离及液化设备项目融资渠道探索
- 新型电子打火沼气灶项目筹资方案
- 数字货币交易平台交易规则制定合同
- 抵押车辆借款合同范本
- 签署房屋买卖合同范本
- 国际贸易出口货物代理合同
- 旅游景区开发与经营管理合同
- 美容美发行业服务合同协议
- 委托买卖合同
- 2025年绝缘材料PC电源行业深度研究分析报告
- 江西省部分学校2024-2025学年高三上学期1月期末英语试题(含解析无听力音频有听力原文)
- GA/T 2145-2024法庭科学涉火案件物证检验实验室建设技术规范
- 2024年度窑炉施工协议详例细则版B版
- 尿毒症替代治疗
- 【课件】2025届高考英语一轮复习小作文讲解课件
- 基底节脑出血护理查房
- 工程公司总经理年终总结
- 2024年海南省高考地理试卷(含答案)
- 【企业盈利能力探析的国内外文献综述2400字】
- 三年级上册数学口算题1000道带答案
- 苏教版(2024新版)一年级上册科学全册教案教学设计
评论
0/150
提交评论