![2021年陕西省渭南市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页](http://file4.renrendoc.com/view/9e64b994d0c78e32e7df7425316a706d/9e64b994d0c78e32e7df7425316a706d1.gif)
![2021年陕西省渭南市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页](http://file4.renrendoc.com/view/9e64b994d0c78e32e7df7425316a706d/9e64b994d0c78e32e7df7425316a706d2.gif)
![2021年陕西省渭南市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页](http://file4.renrendoc.com/view/9e64b994d0c78e32e7df7425316a706d/9e64b994d0c78e32e7df7425316a706d3.gif)
![2021年陕西省渭南市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页](http://file4.renrendoc.com/view/9e64b994d0c78e32e7df7425316a706d/9e64b994d0c78e32e7df7425316a706d4.gif)
![2021年陕西省渭南市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页](http://file4.renrendoc.com/view/9e64b994d0c78e32e7df7425316a706d/9e64b994d0c78e32e7df7425316a706d5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年陕西省渭南市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.以下关于typedef的叙述错误的是()。A.用tyFedef可以增加新类型
B.typedef只是将已存在的类型用一个新的名字来代表
C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名
D.用typedef为类型说明一个新名,通常可以增加程序的可读性
2.
3.依次读入数据元素序列{a,b,c,d,e,f,g}进栈,元素进栈或出栈顺序是未知的,下列序列中,不可能成为栈空时弹出的元素构成序列的有()
A.{d,e,c,f,b,g,a}
B.{f,e,g,d,a,c,b}
C.{e,f,d,g,c,b,a}
D.{c,d,b,e,f,a,g}
4.第
3
题
已知:intc[3][4];则对数组元素引用正确的是
A.c[1][4]B.c[1.5][0]C.c[1+0][0]D.以上表达都错误
5.设变量已正确定义并赋值,下列表达式中正确的是()。
A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0
6.有以下程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下选项中表达式的值为11的是()。
A.*pt->yB.pt->xC.++pt->xD.(pt++)->x
7.若整型变量a、b、c、d中的值依次为2、2、3、4,则条件表达式a<b?a:c<d?c:d的值是()。A.1B.2C.3D.4
8.
9.有以下程序:#include<stdio.h>main(){charv[4][10];inti;for(i=0;i<4;i++)scanf(“%s”,v[i]);printf(“%c,%s,%s,%c”,**v,*(v+1),v[3]+3,*(v[2]+1));}程序运行时输入welcomeyoutobeijing并按<Enter>键,则输出结果是()。
A.w,youjing,o
B.welcome,you,jing,to
C.w,you,eeijing,u
D.w,xelcome,eeijing,u
10.用二进制来编码字符串“abcdabaa”,需要能够根据编码,解码回原来的字符串,最少需要()长的二进制字符串
A.12B.14C.18D.24
11.数据表A中有10000个元素,如果仅要求求出其中最大的10个元素,则采用()最节省时间。
A.堆排序B.希尔排序C.快速排序D.希尔排序
12.计算机算法指的是()。
A.计算方法B.排序方法C.解决问题的有限运算序列D.调度方法
13.下列说法正确的是()。
A.在C语言中,可以使用动态内存分配技术定义元素个数可变的数组
B.在c语言中,数组元素的个数可以不确定,允许随机变动
C.在C语言中,数组元素的数据类型可以不一致
D.在C语言中,定义一个数组后.就确定了它所容纳的元素的个数
14.程序中对fun函数有如下说明
void*fun();
此说明的含义是:A.fun了数无返回值
B.fun函数的返回值可以是任意的数据类型
C.fun函数的返回值是无值型的指针类型
D.指针fun指向一个函数,该函数无返回值
15.有以下程序:
程序运行后的输出结果是()。A.4B.2C.3D.1
16.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;则与上述程序段功能等价的赋值语句是()。
A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;
17.有以下程序:#include<stdio,h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}当运行时输入:a<回车>后,以下叙述正确的是()。
A.变量c1被赋予字符a,c2被赋予回车符
B.程序将等待用户输入第二个字符
C.变量c1被赋予字符a,c2中仍是原有字符2
D.变量c1被赋予字符a,c2中将无确定值
18.有定义:“inta=2,b=3,c=4;”,则下列选项中值为0的表达式是()。A.(!a==1)&&(!b==0)B.(a<b)&&!c‖1C.a&&bD.a||(b+b)&&(c-a)
19.
20.下列对于软件测试的描述中正确的是()。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能多地发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
二、2.填空题(20题)21.设在主函数中有以下定义和函数调用语句,且fun函数为void类型,请写出fun函数的首部【】。要求形参名为b。
main()
{doubles[10][22];
intn;
┆
fun(s);
┆
}
22.有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是【】。
structnode
{chardata;
structnode*next;}a,b
23.派生类对基类继承控制访问有三种。派生类可以定义其基类中不具备的【】。
24.以下程序的功能是:将输入的正整数按逆序输出。例如:若输入135则输出531。请填空。
#include<stdio.h>
main()
{intn,s;
printf("Enteranumber:");scanf("%d",&n);
printf("Output:");
do
{s=n%10;printf("%d",s);【】;
}while(n!=0);
printf("\n");
}
25.下列程序的输出结果是______。
main()
{imti,sum;
for(i=1;i<7;i++)
sum+=i;
printf("%d",sum);
}
26.若有说明chars1[]="Thatgirl",s2[]="isbeautiful";则使用函数strcmp(s1,s2)g,结果是______。
27.以下主程序运行后的输出结果是【】。
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=ii;i++)
switch(i/10)
{case0:m++;n++;break;
case10:n++;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
28.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。
29.以下程序运行后输入3,abcde<回车>,则输出结果是【】。
#include<string.h>
move(char*str,intn)
{chartemp;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);
}
30.若有如下程序:
voidsub()
{staticintx=6;
x/=2;printf("%d",x);}
main()
{intm;
for(m=0;m<=2;m++)sub();}
则程序运行后的输出结果是【】。
31.已知字母A的ASCⅡ码为65。以下程序运行后的输出结果是()。
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,B);
}
32.设有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序运行后,从键盘上输入(<CR>代表回车符):DEF<CR>BADEF<CR>QTHRG<CR>,则程
序的输出结果是______。
33.有以下程序段,且变量已正确定义和赋值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
请填空,使下面程序段的功能与之完全相同
s=1.0;k=1;
while(【】){s=s+1.0/(k*(k+1));【】;}
printf("s=%f\n\n",s);
34.以下程序运行后的输出结果是______。
#include<strlng.h>
main()
{
charch[]="abc",x[3][4];inti;
for(i=0;i<3;i++)strcpy(x[i],ch);
for(i=0;i<3;i++)printf("%s",&x[i][i]);
printf("\n");
35.数据的逻辑结构有线性结构和______两大类。
36.【】是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分开。
37.下列程序的功能是将字符串s中所有的字符c删除。请填空。
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='c')
s[j]='\0';
puts(s);
}
38.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。
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);
}
39.在结构化分析使用的数据流图(DFD)中,利用【】对其中的图形元素进行确切解释。
40.已有定义:charc=′′;inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。
三、1.选择题(20题)41.有如下程序段:inta=14,b=15,x,charc='A';x=(a&&B)&&(c<'B');执行该程序段后,x的值为()
A.1B.0C.FALSED.TRUE
42.下列选项中错误的说明语句是
A.chara[]={′t′,′o′,′y′,′o′,′u′,′\0′};
B.chara[]={"toyou\0"};
C.chara[]="toyou\0";
D.chara[]=′toyou\0′;
43.有以下程序main(){charp[]={'a','b','c},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));}程序运行后输出结果是
A.44B.33C.34D.43
44.有以下函数定义:intfun(doublea,doubleB){returna*b;}若以下选项中所用变量都已正确定义并赋值,错误的函数调用是()。
A.if(fun(x,y)){……}
B.z=fun(fun(x,y),fun(x,y));
C.z=fun(fun(x,y)x,y);
D.fun(x,y);
45.下列的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是()。
#include<stdio.h>
main()
{chars1[]="chinese",s2[]="japnese";
inti;
for(i=0;sl1[i]!='\0'&&s2[i]!='\0';i++)
if(s1[i]==s2[i]&&i<7)
______,
}
A.putchar(s2[i]);putchar(i)
B.puts(s1[i],i)
C.printf("%c%d\n",s2[i],i)
D.printf("%c",s1[i]);printf("%d\n",i)
46.以下叙述中错误的是
A.gets函数用于从终端读入字符串
B.getehar函数用于从磁盘文件读入字符
C.fputs函数用于把字符串输出到文件
D.fwrite函数用于以二进制形式输出数据到文件
47.若要求从键盘读入含有空格字符的字符串,应使用函数A.getc()B.gets()C.getchar()D.scanf()
48.若有下面的程序段:chars[]="china";char*p;p=s;则下列叙述正确的是
A.s和p完全相同
B.数组s中的内容和指针变量p中的内容相等
C.s数组长度和p所指向的字符串长度相等
D.*p与s[0]相等
49.有以下程序#definef(x)(x'x)main(){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}程序运行后的输出结果是
A.64,28B.4,4C.4,3D.64,64
50.若在某函数内部有定义:inta[3][4];则数组a中各元素()。
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
51.有以下的程序#include<stdio.h>voidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}程序执行后,文件test.t中的内容是()
A.hello,B.newworldhello,C.newworldD.hello,rld
52.在C语言中,合法的字符常量是()
A.'\084'B.'\x43'C.'ab'D.'\0'
53.算法的空间复杂度是指()。
A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行算法需要的内存空间
54.假定当前盘符下有两个如下文本文件:
文件名a1.txta2.txt
内容123#321#
则下面程序段执行后的结果为
#include"stdio.h"
voidfc(FILE*p)
{charc;
while((c=fgetc(p))!=′#′)putchar(c);}
main()
{FILE*fp;
fp=fopen("a1.txt","r");
fc(fp);
fclose(fp);
fp=fopen("a2.txt","r");
fc(fp);
fclose(fp);
putchar('\n');}
A.123321B.123C.321D.以上答案都不正确
55.请选出以下程序的输出结果_______。#include<stdio.h>sub(int*s,inty){staticintt=3,y=s[t];t-;}main(){inta[]={1,2,3,4},i,x=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("\n");}
A.1234B.4321C.0D.4444
56.有下列函数定义:fun(floath){printf("%f,%f\n",h,h*h);}该函数的类型是()。
A.27B.6C.25D.30
57.若定义函数int*func(),则函数func的返回值为()。
A.一个实数B.一个指向整型变量的指针C.一个指向整型函数的指针D.一个整型函数的入口地址
58.在计算机中,算法是指()。
A.查询方法B.加工方法C.解题方案的准确而完整的描述D.排序方法
59.有下列二叉树,对此二叉树中序遍历的结果为()。
A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ
60.若变量已正确定义,下列正确的程序段是()。
A.while(ch=getchar()=='\N')putchar(ch);
B.while((ch=getchar())=='\n')putchar(ch);
C.while((ch=getchar())!='\N')putchar(ch);
D.while((ch=getchar())!='\n')putchar(ch);
四、选择题(20题)61.以下程序运行后的输出结果是()。
A.2011B.99C.209D.1111
62.
63.有以下程序
#include<stdio.h>
main()
{intx=1,y=2,z=3;
if(x>y)
if(y<z)printf("%d",++z);
elseprintf("%d",++y);
printf("%d\n",x++);
}
程序的运行结果是
A.A.331
B.41
C.2
D.1
64.已知字符'A'的ASCⅡ代码值是65,字符变量c1的直是'A',c2的值是'D'。执行语句printf("%d,%d",c1,c2-2);后,输出结果是()。
A.A.A,BB.A,68C.65,66D.65,68
65.以下数组定义中错误的是()。
66.
67.
68.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。
A.-369B.369C.0.369D.整数集合11,2,3,4,51
69.有两个关系R和T如下:
则由关系R得到关系T的操作是()。A.选择B.投影C.交D.并
70.
71.若变量均已正确定义并赋值,以下合法的c语言赋值语句是()。A.x---y=--5;B.x--n%2.5;C.x+n=i;D.x=5--4+1;
72.(5)下面概念中,不属于面向对象方法的是()
A.对象
B.继承
C.类
D.过程调用
73.有以下程序:
#include<stdio.h>
main()
{char*s="[2]34";intk=0,a=0;
whil(s[k+1]!=\0)
{k++;
if(k%2=o){a=a+(s[k]-0+1);continue;}
a=a+(s[k]-0);
printf("k=%da=%d\n",k,a);
}
程序运行后的输出结果是()。
A.k=6a=11B.k=3a=14C.k=4a=12D.k=5a=15
74.设x=015,则x=x^017的值是()。A.00001111B.11111101C.00000010D.11000000
75.
若变量e为char类型,能正确判断出C为小写字母的表达式是()。A.a<=c<=ZB.c>=a.(c<=Z)C.(a<=c)and(z>c)D.(c>=a)&&(c<=Z)
76.下面概念中,不属于面向对象方法的是()。A.对象B.继承C.类D.过程调用
77.
78.
79.已定义以下函数
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:计算S=f(-n)+(-n+1)+…+f(O)+f(1)+(2)+…+f(n)的值。例如,当n为l0时,函数值应为22.550361。f(x)函数定义如下:请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写一个函数fun(),用来求出数组中值最大的元素在数组中的下标并将其存放在k所指向的存储单元中。例如,输入如下整数:876675896101301401980431451777则输出结果为6,980。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:
参考答案
1.A用typedef没有增加新类型,所以选择A)。
2.A
3.B
4.C
5.A运算符“%”的左右两个操作数均应为整数,所以B选项与D选项错误。C选项中不能将“x+z”的值赋给表达式“y*5”,所以C选项错误。故本题答案为A选项。
6.C解析:要计算一个复杂的表达式时,首先要弄明白表达式中所有运算符的优先级与结合性,本题中所涉及的运算符中,->的优先级最高,*和++的优先级相同,但其结合性为从右至左。所以选项A等价于*pt->y)也就是pt所指向的结构体的成员指针变量y所指向的内容。从前面的程序段不难看出,pt指向结构体数组c的首地址,也就是指向它的第1个元素,在它的第1个元素中,指针变量y又被初始化为指向控型数组a的首地址,即指向数组a的第1个元素。故选项A中的表达式的值为a[0],也就是1。选项B中表达式的值就是c[0].x,即10。根据优先级和结合性,选项C中的表达式等价于++(pt->x),由于是前缀++,所以整个表达式的值为pt->x的值加1,故为11。而选项D中,++是后缀形式,所以(pt++)的值还是pt的原值,即等于pt->x的值10。故应该选择C。
7.C本题考查三目运算符a<b?a:c<d?c:d也可写成a<b?a:(c<d?c:d),所以根据优先级,先算括号内的,c小于d为真取C的值,再看a小于b为假,所以取C的值。
8.D
9.A题干中,定义一个二维字符数组v。然后通过for循环,输入4个字符串welcome、you、to、beijing,将其分别存放在v的4个元素中。数组v是存放4个字符串的二维数组;“**v”表示第1个字符串的第一个字符“w”;“*(v+1)”指向第2个字符串“you”;“v[3]+3”指向第4个字符串的第3个字符开始后的整个字符串“jing”;“*(v[2]+1)”表示第3个宇符串的第2个字符“o”。故本题答案为A选项。
10.B
11.B
12.C
13.D在C语言中,数组元素的个数是确定的,不允许随机变动,数组定义好后,它所能容纳的元素的个数也就确定了,并且同一个数组中所有元素都是同一类型。
14.D解析:返回指针的函数定义为:返回值类型,函数名(\u3000\u3000),而指向函数的指针定义为:返回值类型(*变量名)(\u3000\u3000)。本题中函数fun返回一个无类型的指针。
15.D条件表达式形式:表达式1?表达式2:表达式3。当表达式1的值为非零值时,整个表达式的值是表达式2的值;当表达式1的值为零值时,整个表达式的值是表达式3的值。题干中的表达式是嵌套的条件表达式w﹤x?w:z﹤y?z:x,等价于w﹤x?w:(z﹤y?z:x)。由于w取值为4,x取值为3,所以w﹤x的值为零值,整个表达式的值为z﹤y?z:x,z取值为1,y取值为2,所以z﹤y的值为非零值,整个表达式的值为z的值1。本题答案为D选项。
16.B解析:本题考核的知识点是for循环次数的计算.本程序中for循环的次数为c-1+1共循环了c次,而每循环一次s的值加1,所以s的值为s+c.而最开始s的值为a,故4个选项中选项B符合题意.
17.A解析:函数getchar()的作用是从终端(或系统隐含指定的输入设备)输入一个字符,且只能接受一个字符(回车符也是一个字符)。故本题中变量c1被赋予字符a,c2被赋予回车符。
18.A本题考查逻辑与运算“&&”与逻辑或运算“||”。在选项A中,因为!a=0,所以关系表达式!a=1为0,又因为逻辑与运算符“&&”两边的表达式只要一个等于零,则整个表达式为零,所以选项A正确。在选项8中,关系表达式a<b为真,表达式(a<b)&&!C为假,而表达式(a<b)&&!||1为真,所以整个表达式的值为真。选项C中,a&&b的结果为真。在选项D中,a||(b+b)&&(C-a)的结果为真。
19.B
20.C解析:关于软件测试的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。本题答案为C。
21.voidfun(doubleb[][22])voidfun(doubleb[][22])解析:程序中为了表示函数调用“不带回值”,可以用“void”定义函数为“无类型”(或称“空类型”),这样系统就保证不使函数带回任何值。当二维数组作为形参时,二维数组的第一维可以省略。
22.a.next=aba.next=ab解析:选项A)中,指针变量q保存的就是变量b的地址,选项B)中的p是指针变量,应该是p->next=&b;在选项D)中,用*运算符取出结构体变量,并且保存的就是b的地址。
23.数据和操作数据和操作
24.n/=10或n=n/10n/=10或n=n/10解析:每次循环把n除以10所得的商赋给n。
25.无定值无定值解析:for(i=1;i<7;i++)决定了循环次数为6次,每次执行的操作是Sum+=i,但由于sum没有初始化,并不知道sum的初值是多少,所以结果无定值.
26.-1-1解析:strcmp(s1,s2)函数的作用是:对字符数组s2和字符数组s1进行比较。如果s1<s2,则返回负数;如果s1==s2,则返回0;如果s1>s2,则返回正数。
27.132132解析:本题for循环语句的执行过程为:
第一次循环:i=9,9/10=0,执行m++、n++得m=1、n=1、k=0;
第二次循环:i=10,10/10=1,执行k++、n++得m=1、n=2、k=1;
第三次循环:i=11,11/10=1,执行k++、n++得m=1、n=3、k=2;
即执行完for循环后m=1、n=3、k=2。
28.1对多(或1:N)1对多(或1:N)
29.cdeabcdeab解析:本题move()函数的作用,是将形参s仕所指地址的连续n位循环右移1位,即让str[n-1]=str[n-2],str[n-2]=str[n-3],…,str[1]=str[0],str[0]=str[n-1](原)。主函数中用了一个for循环调用move()函数,共循环3次,所以数组s被循环右移了3位,故最后输出的值为cdeab。
30.310
31.67G67G解析:根据题意,a=‘A’+‘5’-‘3’=65+2=67,b=67+4=71,71即为字母G的ASCⅡ码值。程序要求按十进制形式输出a,按字符形式输出b,所以结果为67G。
32.QTHRGQTHRG解析:函数strcmp(t,s)用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0:若t<s,则函数值小于0。函数strcpy(t,s)的功能是,把字符数组s所指字符串的内容复制到字符数组t所指存储空间中。本题中,t[10]='CDEF'。第一次循环,s[10]='BADEF',if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环,s='QTHRG',if语句的控制条件strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指存储空间中,然后输出字符数组t。
33.k<=nk++k<=n,k++解析:本题要求将一个for循环改成while循环。首先要保证循环条件相同,在for循环中,每次执行循环之后,循环控制变量k都会加1,而while循环则没有,故需在循环体中增加改变k数值的语句'k++;'\ue009。
34.abcbccabcbcc解析:strcpy()函数有两个字符指针参数,功能是将第2个参数所指的字符串(包括字符串结束标志\'\\0\')复制到第1个参数所指的内存地址中.题目程序中使用?两个for循环,都是让i从0递增到2循环3次。第1个循环将字符数组ch中的字符串'abe'复制到;维数组x[3][4]的每1行,笫2个for循环每次输出x[i][j]中的字符串,即三次分别输出从x[0][0]、x[1][1]、x[2][2]开始的字符串的内容。故三次分别输出abc、bc、c,结果为abcbcc。
35.非线性结构非线性结构
36.封装封装解析:面向对象技术中包括以下几个基本概念,即对象、类、方法、消息、继承和封装,其中封装是一种信息隐蔽技术,目的在于将对象的使用者对象的和设计者分开。
37.S[j++]=s[i]S[j++]=s[i]解析:循环开始后如果数组s中储存值与字符c相同,则i++直接跳过当前值;如果不相同,则将当前值赋予数组指定位置,并通过j++将下标加1,指向下一元素要存储的位置。
38.\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累加得到字符串中的单词个数。
39.数据字典或DD数据字典或DD解析:数据流图用来对系统的功能需求进行建模,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。数据词典(DataDictionary,DD)用于对数据流图中出现的所有成分给出定义,它使数据流图上的数据流名字、加工名字和数据存储名字具有确切的解释。
40.11解析:字符空格的ASCII码不为0,所以本题中表达式\ue008!c\ue009的值为0,b=0&&1的结果显然为0。
41.A解析:a=14,b=15,第一个&&两侧均为非零值。c='A',表达式c<'B'的值为真即1,第二个&&两侧也均为非零值。表达式(a&&b)&&(c<'B')的值为1,赋值给变量x。
42.D解析:通过赋初值的方式给一维数组赋字符串,可以用给一般数组赋初值的相同方式给一维字符数组赋字符串,也可以在赋值时直接赋字符串常量。选项B)和C)后面的'\\0'是多余的,在C语言中,系统会自动在字符串的结尾处加上一个字符'\\0'作为串的结束标记。
43.C解析:本题考查的是字符数组的初始化。字符数组即可以用{初始化列裹}来初始化,也可以用一个字符串常量来初始化。但字符串常量系统会自动为其添加结束标记'\\0',故比实际长度要多一位,所以本题输出为34,应该选择C。
44.C
45.C解析:putchar(s)的功能是把字符s输出到标准输出设备:puts(s1)是把s1指向的字符串输出到标准输出设备。
46.B
47.Bscanf(\u3000)语句中用“空格”间隔不同的字符串,空格将被全部忽略掉,所以用scanf(\u3000)函数不能输入空格;getehar(\u3000)函数用于输入字符,其调用形式为:ch=getelaar(\u3000),getehar(\u3000)函数从终端读入一个字符作为函数值,把读入的字符赋给变量ch。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入Enter键时,读入才开始执行。gets(\u3000)函数的凋用形式为:gets(str_adr),其中stradr是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。9ets函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。getc(\u3000)函数的调用形式为:ch=getc(pf)其中pf是文件指针。函数的功能是从pf指定的文件中读入一个字符,并把它作为函数值返回。
48.D解析:字符型指针变量p中存放的是'china'的首地址,所以选项A)和B)错误。e数组长度为6,而p所指向的字符串长度为5,二者不相等,排除选项C)。
49.C解析:本题考查的是带参数的宏。宏替换与函数调用不同,前者是字面上的,在编译期间完成,后者是内容上的,在运行期间才进行。题目中第1条要替换的语句i1=(8)/f(4);展开后是i1=(8*)/(4*4);结果使i1=4.而第2条语句i2=f(4+4)/f(2+2);展开后为i2=(4+4*4+4)/(2+2*2+2);结果使i2=24/8=3。故应该选择C。
50.C解析:在函数内部定义的存储类型为auto的变量或数组,如果没有进行初始化,就不能得到确定值。
51.A
52.B
53.D解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。
54.A解析:本题的功能是顺序的读两个文本文件,依次输出。当打开文件时出现错误,fopen函数将返回NULL。
55.C解析:x作为函数sub()的实参时,函数对x值的改变没有返回主函数,并不能使得x的值变化,所以在打印时,x的值是始终不变的,即为0。
56.A解析:本题考查函数调用时的参数传递。函数reverse将数组b进行了逆置,此时的b[10]={10,9,8,7,6,5,4,3,2,1},后面for语句的功能是将b中的前3个数累加,将结果放在s中,最后将s输出,结果s=10+9+8=27。
57.B解析:本题考考查的是指针函数。指针函数定义的基本格式为:类型说明符*函数名()。其中,“类型说明符”表示返回的指针。值所指向的数据类型。
58.CC。【解析】计算机算法是指解题方案的准确而完整的描述,它的基本特征分别是:可行性、确定性、有穷性和拥有足够的情报。
59.B对二叉树的中序遍历是指:首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,注意依旧按照“左子树一根结点一右子树”的顺序。本题的遍历顺序是这样的:①首先访问左予树:BDEY;②在左子树BDEY中,也按中序遍历,先访问左子树DY;在左子树DY中,也按中序遍历,先访问左子树,左子树没有,则访问根结点D,然后访问右子树Y;③接着访问根B,再访问右子树E;④访问左子树BDEY后,接着访问根结点A,接着访问右子树CFXZ;⑤右子树CFXZ的访问顺序同理可得:FCZX。
60.D解析:本题考查两个知识点:①C语言用'\\n'这个字符常量表示换行;②函数getchar()的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 恩施2025年湖北恩施州巴东县教育局所属事业单位选调6人笔试历年参考题库附带答案详解
- 2025至2031年中国压电式涡街流量计行业投资前景及策略咨询研究报告
- 2025年医用消毒液项目可行性研究报告
- 2025至2030年中国黑棕2色系围巾坐猴数据监测研究报告
- 2025至2030年中国高发拨叉数据监测研究报告
- 2025至2030年铜基钎焊翅片管项目投资价值分析报告
- 2025至2030年虚拟主机管理解决方案项目投资价值分析报告
- 2025至2030年电视器材项目投资价值分析报告
- 2025至2030年涂塑螺旋桨项目投资价值分析报告
- 2025至2030年中国红外线对射式光电开关数据监测研究报告
- 2025年汽车加气站作业人员安全全国考试题库(含答案)
- 化工过程安全管理导则安全仪表管理课件
- 企业对外沟通与形象塑造制度
- 中国高血压防治指南-解读全篇
- 2024年监控安装合同范文6篇
- 2024年山东省高考政治试卷真题(含答案逐题解析)
- 烟叶复烤能源管理
- 应收账款管理
- 食品安全管理员考试题库298题(含标准答案)
- 非ST段抬高型急性冠脉综合征诊断和治疗指南(2024)解读
- 2024年山东济宁初中学业水平考试地理试卷真题(含答案详解)
评论
0/150
提交评论