版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年内蒙古自治区巴彦淖尔市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.以下函数的时间复杂度和空间复杂度为()A.T(n)=O(2^n),S(n)=O(n)
B.T(n)=O(1),S(n)=O(1)
C.T(n)=O(2^n),S(n)=O(1)
D.T(n)=O(n),S(n)=O(n)
2.有嵌套的if语句:if(a<b) if(a<c)k=a; elsek=c;elseif(b<c)k=b;elsek=c;以下选项中与上述if语句等价的语句是()。
A.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
B.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
C.k=(a<b)?a:b;k=(b<c)?b:c;
D.k=(a<b)?a:b;k=(a<c)?a:c;
3.如果树的的结点A有4个兄弟,而且B为A的双亲,则B的度为()。
A.3B.4C.5D.1
4.有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
5.
6.
7.有以下程序:voidsum(inta[]){a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序运行后的输出结果是()。
A.6B.7C.5D.8
8.下列关于return语句的叙述中正确的是()。
A.—个自定义函数中必须有一条return语句
B.—个自定义函数中可以根据不同情况设置多条return语句
C.定义成void类型的函数中可以有带返回值的return语句
D.没有return语句的自定义函数在执行结束时不能返回到调用处
9.下面C程序段中count++语句执行的次数为()A.15B.16C.31D.32
10.下列程序的运行结果是()。
A.2,3,2B.2,3,1C.1,3,3D.3,1,2
11.以下程序的输出结果是()。main{inta[3][3]=“l,2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21
12.
13.有以下程序:
程序运行后的输出结果是()。
A.1,2,6,24,120,B.1,2,3,4,5,C.1,1,1,1,1,D.1,2,4,6,8,
14.以下程序执行后sum的值是()。
A.15
B.14
C.不确定
D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}
15.
16.设a=l,b=2,c=3,d=4,则表达式:“a<b?a:b<b?a:c<d?a:d”的结果为()。A.4B.3C.2D.1
17.已知:intx,y;doublez;则以下语句中错误的函数调用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);
B.scanf("%1d*%d&1f",&x,&y,&z);
C.scanf("%x%*d%o",&x,&y);
D.scanf("%x%o%6.2f",&x,&y,&z);
18.已定义c为字符型变量,则下列语句中正确的是()。
A.c='97'B.c="97"C.c=97D.c="a"
19.有以下程序:main(){inta[][3]={{1,2,3),{4,5,0)),(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}执行后输出结果是()。
A.7B.6C.8D.无确定值
20.下列程序段的时间复杂度为()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)
二、2.填空题(20题)21.算法的基本特征主要包括叫个方面,它们分别是可行性、确定性、()和拥有足够的情报。
22.在使用putchar和getchar函数处理字符时,必须在程序的开头出现包含头文件的命令行是【】。
23.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE*myf;longf1;
myf=【】("test.t","rb");
fscek(myf,(),SEEK_END);f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
24.下面程序的输出结果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=0;k<4;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}
25.在Windows环境下,可以利用单击、双击、拖动这三种鼠标操作之一的【】操作实现窗口的移动。
26.以下程序的输出结果是【】。
#defineMAX(x,y)(x)>(y)?(x)L:(y)
main()
{inta=5,b=2,C=3,d=3,t;
t=MAX(a+b,c+D)*10;
printf("%d\n",t);
}
27.下面程序段的输出结果是【】。
intx=5;
do{printf("%d",x-=4);
}while(!(--x));
28.将以下程序写成三目运算表达式是【】。
if(a>b)max=a;
elsemax=b;
29.以下程序的输出结果是【】。
#include<stdio.h>
main()
{ints[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);}
printf("\n");}
sb(s1,y)
int*s1,y;
{staticinti1=3;
y=s1[i1];
i1--;
return(y);}
30.下面程序的功能是用来统计文件中字符个数。请填空。
#include"stdio.h"
main()
{longcount=OL;
FILE*fp=【】("text.dat","r");
if(fp==0)
{printf("Openerror\n");
exit(0);
}
while(【】)
{
fgetc(fp);
count++;
}
fclise(fp);
printf("%1d\n",count);
}
31.数据库管理系统常见的数据模型有层次模型、网状模型和【】3种。
32.下列程序的运行结果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
33.实体之间的联系可以归结为一对一的联系,一对多的联系与多对多的联系。如果一个学校有许多学生,而一个学生只属于一个学校,则实体集学校与实体集学生之间的联系属于【】的联系。
34.若有以下程序:
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",a);
}
执行后的输出结果是【】。
35.在面向对象程序设计中,从外面看只能看到对象有外部特征,而不知道也无需知道数据的具体结构以及实现操作的算法,这称为对象的______。
36.下面程序执行后输出的结果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
37.买来一张新盘后,在存入文件前,必须进行【】处理。
38.以下程序运行后的输出结果是【】。
main()
{
intx=0210;
printf("%X\n",x);
}
39.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。(注:try_me()函数在a:\myfile.txt中有定义。)
______
main()
{printf("\n");
try_me();
printf("\n");}
40.数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是______。
三、1.选择题(20题)41.单个用户使用的数据视图的描述称为______。
A.外模式B.概念模式C.内模式D.存储模式
42.以下不合法的用户标识符是______。A.j2KEYB.DoubleC.4dD._8_
43.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、i的值为2、k的值为3,以下选项中正确的输入语句是
A.scanf(“%2d%2d%2d”,&i,&j,&k);
B.scanf(“%d%d%d”,&i,&j,&k);
C.scanf(“%d,%d,%d”,&i,&j,&k);
D.scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
44.有以下程序:voidswap1(int*a,int*b){int*c=a;a=b,b=c;}voidswap2(int*a,int*b){intc=*a;*a=*b,*b=c;}main(){inta=10,b=15;swap1(&a,&b);printf("%d,%d,",a,b);a=10,b=15;swap2(&a,&b);printf("%d,%d",a,b);}其输出结果为______。
A.15,10,10,15B.15,10,15,10C.10,15,10,15D.10,15,15,10
45.有以下程序main(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}程序运行后的输出结果是______。
A.3B.4C.5D.6
46.变量a所占的内存字节数是______。
A.4
B.5
C.6
D.8unionU{charst[4];inti;longl;};StructA{intc;unionUu;}a;
47.阅读下列程序段,则程序的输出结果为#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}
A.3B.5C.6D.8
48.下面的程序执行后,文件test.t中内容是______。#include<stdio.h>voidfun(char*fName,char*st){FILE*myf;inti;myf=fopm(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}
A.hello,B.newworldhelloC.newworldD.hello.rld
49.设有定义:#defineSTR"12345";,则以下叙述中正确的是()
A.宏名STR代替的是数值常量12345
B.宏定义以分号结束,编译时一定会产生错误信息
C.宏名STR代替的是字符串"12345";
D.宏名STR代替的是字符串常量"12345"
50.c语言规定,在一个源程序中,main函数的位置()。
A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后
51.下面程序的运行结果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
52.下列选项中不符合良好程序设计风格的是A.源程序要文档化B.数据说明的次序要规范化C.避免滥用goto语句D.模块设计要保证高耦合、高内聚
53.下列程序的输出结果是()。main(){inti=1,j=2,k=3;if(i++==1&&(++j==3‖k++==3))printf("%d%d%d\n",i,j,k);}
A.123B.234C.223D.233
54.在一棵二叉树上第5层的结点数最多是______。
A.8B.16C.32D.15
55.有以下程序:voidfun(intk){staticinta[5];inti;for(i=0;i<5;i++){a[i]+=i+k,printf("%d",a[i]);}printf("\n");}main(){fun(1);fun(2);}程序的输出结果是()
A.12345357911
B.随机数
C.1234523456
D.12345246810
56.若有如下程序:voidsub(){inta,b;a=lO;b=20;printf("%d,%d\n",b,a);}main(){inta=1O,b=20;sub();printf("%d,%d\n"'a'b);}则程序运行后的输出结果是()。
A.10,20B.20,1020,10C.20,10D.10,2010,2020,10
57.有以下程序:voidswapl(intc0[],intc1[]){intt;t=co[o];co[o]=o1[o];c1[o]=t;}voidswap2(int*c0,int*c1){intt;t=*c0;*c0=*c1;*c1=t;}main(){inta[2]={3,5},b[2]=A{3,5);swapl(a,a+1);swap2(&b[0],&b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}程序运行后的输出结果是______。
A.3553B.5335C.3535D.5353
58.下列字符数组初始化语句中,不正确的是()。
A.charc[]=\goodmorning';
B.charc[20]="goodmorning";
C.charc[]={'a','b','c','d');
D.charc[]={"goodmorning");
59.以下程序的输出结果是________。#include<stdio.h>mam(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,B);}
A.6,1B.2,1C.6,0D.2,0
60.下列叙述中正确的是()。
A.在面向对象的程序设计中,各个对象之间具有密切的关系
B.在面向对象的程序设计中,各个对象都是公用的
C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
D.上述3种说法都不对
四、选择题(20题)61.
下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。
#include<stdio.h>
voidsort(inta[],intll)
{inti,j,t;
for(i=0;i<n-1;i++)
for(j=j+1+1;j<n;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{inta[10]一{1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7);
for(i=0;i<10;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
62.下列选项中不符合良好程序设计风格的是()。
A.数据说明的次序要规范化
B.程序中要有必要的注释
C.对所有输入的数据都要进行检查,确保数据的合法性
D.程序的效率第一,清晰第二
63.
64.
65.若在定义语句:inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。
A.scanf("%d",a,b,c);
B.scanf("%d%d%d",a,b,c):
C.scanf("%d",p);
D.scanf("%d",&p);
66.
以下程序的输出结果是()。
main
{inta=1,b;
for(b=1,b<=10;b++)
{if(a>=8)break;
if(a%2==1){a+=5;continue;}
a=3;}
printf("%d\n",b);
A.3B.4C.5D.6
67.设有intx=11;则表达式(x++*1/3)的值是()。
A.3B.4C.11D.12
68.
69.视图设计一般有3种设计次序,下列不属于视图设计次序的是()。
A.自顶而下B.由内向外C.由外向内D.自底向上
70.为用户与数据库系统提供接口的语言是
A.高级语言B.数据描述语言(DDL)C.数据操纵语言(DML)D.汇编语言
71.有以下程序:
程序运行后的输出结果是()。
A.AfternoonB.ftemoonC.MorningD.oming
72.在关系数据库中,用来表示实体之间联系的是()。
A.二维表B.E—R图C.元组D.文件
73.下列是用户自定义标识符的是()。
A._wlB.3_xyC.intD.LINE-3
74.
75.(65)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()
A.模块间的关系
B.系统结构部件转换成软件的过程描述
C.软件层次结构
D.软件开发过程
76.
77.有以下程序程序运行后的输出结果是()。
A.3B.0C.7D.8
78.
79.以下选项中与“if(a==l)a=b;elsea++;”语句功能不同的switch语句是()。
A.switch(a){casel:a=b;break;default:a++;}
B.switch(a==l){case0:a=b;break;casel:a++;}
C.switch(a){default:a++;break;casel:a=b;}
D.switch(a==l){casel:a=b;break;case0:a++;}
80.以下对一维数组c进行正确的定义初始化的语句是
A.intc[10]=0;B.intc[10]={0}*10;
C.intc[1]={0,0,0,0,0,0,0};D.intc[10]={0};
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:对M名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.请编写一个函数proc,它的功能是:求出1~m(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
例如,若传给m的值为70,则程序输出:
7111421222833354244495556636670
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#defineN100
voidproc(intm,int*a,int*n)
{}
voidmain
{
intarr[N],n,k;
system("CLS");
proc(70,arr,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)//每行输出20个数
{printf("%4d",arr[k]);
printf("\n");
}
else
printf("%4d",arr[k]);
printf("\n");
}
参考答案
1.A
2.B题目中嵌套语句的含义是当“a<b”且“a<c”成立时,将a的值赋给k。如果“a<b”成立而“a<c”不成立,则将c的值赋给k。如果“a<b”不成立而“b<c”成立,则将b的值赋给k。如果“a<b”不成立且“b<c”也不成立,则将c的值赋给k。判断条件表达式,只有B选项可以表示这个含义。故本题答案为B选项。
3.C
4.B解析:在C语言的数组元素的引用方法,我们在前面已经讲过了,比如数组元素a[0],可以用表达式*(p+0),即*p来引用,对于数组元素a[1],可以用表达式*(p+1)来引用,在这里,p+1的值就是数组元素a[1]的地址,对此地址使用“间接访问运算符”:*(p+1)就代表存储单元a[1],注意:一对圆括号不可少。同样,对于数组元素a[2],则可以用表达式。(p+2)来引用…,对于数组元素a[9],可以用表达式,(p+9)来引用。因此,当指针变量p指向a数组的起始地址时,若0≤i<10,则数组元素a[i]可以用*(p+i)来表示。
5.C
6.D
7.A解析:在主函数main()中,语句“sum(&a[2]);”把数组元素a[0]的地址传递给了sun函数的形参a[],使得sum函数中的“(a+0)”为主函数中a[2]的地址,所以a[-1]的值为主函数中a[1]的值;a[1]的值为主函数中a[3]的伉,故函数sum中a[0]=2+4=6,由于此函数中的a是指向主函数中的a[2],所以a[2]的值为6。
8.B在函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值,A选项描述错误。定义成void类型的函数,不允许从该函数取得返回值,也不允许使用return语句,C选项描述错误。没有return语句的函数在执行到函数的最后一条语句后会自动返回到调用处,D选项描述错误。故本题答案为B选项。
9.A
10.D本题考查while循环。第一次循环,y=y-1,y=2,循环条件成立,x=1,x++后值为1,x自加变成2,进入循环,a=a+1=1,判断if语句条件是否成立,y<x不成立,接着执行下一次循环。第二次循环,x=2,y-1=1.循环条件成立,进入循环,a=a+1=2,判断if语句的控制条件是否成立,y<x成立,执行break语句。退出循环。结果为D。
11.A循环的作用是求行下标从1到2列下标从0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a[2][1]+a[2][2]=3+4+5+6+0=18。
12.D
13.Astatic静态变量只在声明时初始化一次。mul()累乘,第一次init=1,init}=val,第二次init=1,val=2,第三次init=2,val=3,第四次init=6,val=4,第五层init=24,val=5,因此结果为l,2,6,24,120。故答案为A选项。
14.C解析:C语言中,如果对定义的变量没有赋初值,那么在后面使用时,变量的值是不确定的。所以,本程序中,没有对sum赋初值,它的值不确定。在执行了for循环语句后,sum的值也不确定的,所以,4个选项中选项C符合题意。
15.B
16.D在三目运算符中,优先级相同,按从右到左的结合性计算,a<b?a:(c<d?a:d)c<d成立所以取值a,同理可得,选择D选项
17.BB项的格式应该为scanf("%1d*%d%1f",&x,&y,&z);
18.C解析:本题考核的知识点是字符型变量的基本概念。用单引号括起来的一个字符称为字符常量,而选项B和选项D中用的是双引号,而用双引号括起来的字符为字符串常量,故选项B和选项D不正确。因为在C语言中,字符常量在存储时,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中,所以C语言使字符型数据和整形数据之间可以通用,选项C正确.而选项A中,给字符型变量赋值时只能赋一个字符,而9,7作为字符时为两个字符且必须分别为单引号括起来,故选项A不正确,所以,4个选项中选项C符合题意。
19.A解析:本题定义了一个指向由3个元素组成的一维数组的指针变量pa,通过赋值让它指向具有2行3列的数组a,此时用指针变量pa,表示数组元素a[i][j]的形式是pa[i][j]。for循环执行了3次;第一次i值为0,执行pa[1][0]=pa[1][0]-1,执行后a[1][0]的值变为3;第二次i值为1,执行pa[1][1]=pa[1)[1]-1,执行后a[1][1]的值为4;第三次i值为2,执行pa[1][2]=1,执行后a[1][2]的值变为1。故printf语句输入的值为2+4+1=7。所以,A选项为所选。
20.C
21.有穷性有穷性
22.#include"stdio.h"#include'stdio.h'解析:使用putchar和getchar函数时,必须在程序的开头出现包含头文件#include'stdio.h'的命令行。putchar的函数调用形式为:putchar(字符变量或字符常量);getchar函数的调用形式为:变量=getchar();getchar后的一对圆括号内没有参数,但这一对圆括号不可少。
23.fopenfopen解析:C语言中的文件分为:ASCII文件与二进制j文件。文件在使用前打开,使用后要关闭。打开文件的函数为:fopen(),调用形式为:fp=fopen('文件名','使用文件方式:);
关闭文件的函数为:fclose(),调用形式为:fclose(fp);其中fp为文件指针。
24.aa解析:本程序先将指针ptr1和ptr2分别指向字符数组a和b,然后通过指针的移动比较a和b中是否有相同的字符。若有相同的字符则将其输出。
25.拖动拖动
26.77解析:在C语言中,宏定义是直接替换的,所以在对表达式MAX(a+b,c+d)*10进行替换后,表达式变为(a+b)>(c+d)?(a+b):(c+d)*10。
在这个条件表达式中,(a+b)>(c+d)为真,所以用(a+b)的值为整个表达式的值(否则用(c+d)*10的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。
27.1-41-4解析:题目中首先让x=5,然后进入do-while循环体,输出x-4的值1,此时x为1,表达式!(--x)的值为!(0)为真(此时x变为0),所以再次执行循环体,输出x-4的值-4,此时x为-4,表达式!(--x)的值为!(—5)为假,退出循环。故输出结果是1-4。
28.max=(a>b)?a:b;max=(a>b)?a:b;解析:本题考查三目运算符的用法,条件运算符要求有三个操作对象,称三目(元)运算符,它是C语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式1?表达式2:表达式3所以,我们可以写成(a,b)?a:b,它是一个“条件表达式”。执行顺序是:如果(a>b)条件为真,则条件表达式取值a,否则取值b。注意:逗号表达式的执行原理。
29.43214321解析:静态存储类的局部变量其生存期为整个程序的运行期间,作用域却只是定义它的函数或局部范围。注意:局部变量和全局变量的作用域。
30.fopen!feof(fp)fopen\r\n!feof(fp)解析:第一空从右边的括号中可以看出,这里应该填入一个fopen,整条语句用来打开一个名为text.dat的文件。第二空是一个while循环的循环条件表达式,循环体每次读取一个字符,并让count增1,所以循环条件应该是“如果文件还没结束”,故应该填!feof(fp)。
31.关系模型关系模型解析:数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口。其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。
32.111,1解析:POWER(i++)中先引用i的值1,再将i的值加1,POWER(i++)=1*1=1。
33.一对多一对多解析:实体之间的联系可以归结为一对一、一对多与多对多。如果一个学校有许多学生,而一个教师只归属于一个学生,则实体集学校与实体集学生之间的联系属于一对多的联系。
34.77解析:本题考查英文字母ASCII码值的概念。字符参与运算的值是其对应的ASCII码,字符H的ASCII码为72,A的ASCII码为65,0的ASCII码为48,所以a=72-65+48=55,ASCII码值为55的字符是7。
35.对象具有5个基本特点:①标识唯一性;②分类性;③多态性;④封装性;⑤模块独立性好。其中,封装性是指从外面看只能看到对象的外部特征,对象的内部特征即处理能力的实行和内部状态,对外是不可见的,对象的内部状态只能由其自身改变。\r\n\r\n
36.22解析:本题变量m既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,fun(a,b)/m中的m应取外部变量的值13,因此输出2。
37.格式化(或初始化、FORMAT)格式化(或初始化、FORMAT)
38.8888解析:C语言规定,以0开头的整型常量为八进制。另外,在primf()函数中,%X表示以十六进制无符号形式输出一个整数,且十六进制中的ABCDEF为大写字母。本题的输出应该是八进制210的十六进制形式。将八进制转换为十六进制,可以先将其转换为二进制。因为1位八进制表示3位二进制,4位二进制表示1位十六进制。(210)8=(10001000)2=(88)16,故本题输出为880
39.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本题考查了函数的存储分类的概念。如果没有特别说明,函数的存储范围是从定义函数的位置到文件的结尾,如果其他文件想使用这个函数,需要用ginclude文件包含命令将定义函数的文件包含进来。
40.数据库系统或数据库系统阶段或数据库或数据库阶段或数据库管理技术阶段数据库系统或数据库系统阶段或数据库或数据库阶段或数据库管理技术阶段解析:在数据库系统管理阶段,数据是结构化的,是面向系统的,数据的冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性,同时提高了数据的可扩充性和数据应用的灵活性;数据具有独立性,通过系统提供的映象功能,使数据具有两方面的独立性:一是物理独立性,二是逻辑独立性;保证了数据的完整性、安全性和并发性-综上所述,数据独立性最高的阶段是数据库系统管理阶段。
41.A解析:选项A)正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项C)不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;选项D)不正确,存储模式即为内模式。
42.C解析:C语言规定标识符只能由字母、数字和下划线三种符号组成,而且第—个字符必须是字母或下划线。大写字母和小写字母被认为是两个不同的字符,用户在定义标识符时应做到“见名知意”,且不允许使用关键字作标识符。
43.C解析:本题考查的知识点是输入函数scanf()基本用法。使用该语句时,要求除格式控制符以外的字符都要原样输入,“,”为非格式符,要原样输入。选项A,输入格式描述为“%2d%2d%2d”,输入要用空格隔开,不满足键盘输入1,2,3的条件,故A错误:选项B中,输入格式描述符为“%d%d%d”,输入也要用空格隔开,故错误:选项D中,输入格式描述符为“i=%d,i=%d,k=%d”,应该从键盘输入i=1,j=2,k=3,才能使得i,j,k的值为1,2,3,故选项D错误。4个选项中C正确。
44.D解析:C语言规定,实参变量对形参变量的数据传递是“值传递”,只由实参传给形参,而不能由形参传回来给实参。在内函数调用结束后,形参单元被释放,实参单元仍保留并维持原值。本题中swapl()函数中,虽然改变了形参指针的值,但实参指针的值并没有改变,所以执行第一个printf后应输出10,15,swap2()函数实现了交换两个变量a和b的值,因此执行第三个printf后输出交换后的值15,10,所以本题答案为D。
45.B解析:本题是考查手工模拟执行程序的能力。a初值是1,循环开始时b值为1,由于a>=8为假,不执行break,但a%2==1为真,执行a+=5,a值变为6,再执行continue跳过不执行a-=3语句,而立即开始下一次循环。这时b值为2,由于a值为6,a>=8仍为假,不执行break,但a%2==1为假,不执行复合语句“{a+=5;continue;}”而执行a-=3,a值变为3。再开始下一次循环,这时b值为3。由于a值为3,a>=8仍为假,不执行break,但a%2==1为真,执行a+=5,a值变为8,再执行continue跳过不执行a-=3语句,而立即开始下一次循环。这时b值为4。由于a值为8,a>=8为真,执行break,停止for循环。此时输出的b值应为4。
46.C解析:结构体变量所占内存长度是各成员占内存长度之和,而共用体变量所占的内存长度等于最长的成员的长度。本题结构体变量a中成员c为整型占2个字节,共用体变量u最大长度为4个字节,故选C。
47.A解析:带参数的宏定义命令行形式如下:#define宏名(形参表)替换文本。首先进行M的宏替换,之后再进行N的宏替换,替换后的表达式为(a)*(b)/(C)。
48.A解析:C语言中文件有文本文件与二进制文件,对文件的使用前必须先打开,打开方式有只读、写入、读写等方式。
49.C
50.C解析:不论main函数在整个过程中的位置如何,一个C程序总是从main函数开始执行的。
51.B解析:考查用指针引用字符串元素的方法。指针a通过数组元素下标来从头逐个地引用字符串item中的字符,判断不是0~9之间的数字时,就去掉这个字符,所以程序结束后,字符串item中就只剩下和两个字符了。
52.D解析:编程风格是在不影响性能的前提下,有效地编排和组织程序,以提高可读性和可维护性。更直接地说,风格就是意味着要按照规则进行编程。这些规则包括:(1)程序文档化。就是程序文档包含恰当的标识符、适当的注解和程序的视觉组织等。(2)数据说明。出于阅读理解和维护的需要,最好使模块前的说明语句次序规范化。此外,为方便查找,在每个说明语句的说明符后,数据名应按照字典顺序排列。(3)功能模块化。即把源程序代码按照功能划分为低耦合、高内聚的模块。(4)注意goto语句的使用。合理使用goto语句可以提高代码的运行效率,但goto语句的使用会破坏程序的结构特性。因此,除非确实需要,否则最好不使用goto语句。因此,本题的正确答案是D。
53.D解析:本题考查自增运算符“++”、逻辑与运算符“&&”和逻辑或运算符“‖”。自增运算符“++”,出现在变量之前(如题中的中++n),表示先使变量的值加1,再使用变量的值进行运算:出现在变量之后(如题中的n++),表示先使用变量的值进行运算,再使变量的值加1。当逻辑与运算符“&&”两边的运算对象都为真时,逻辑表达式的值才为真;当逻辑或运算符“‖”左边的运算对象为真时,其值就为真,不用计算其右边的运算对象的值.所以根据运算符的优先级,题中应先计算内层括号中的值。++j是先自加后运算,因此运算时j的值等于3,所以表达式++j=3成立,即表达式的值为1;由于1与任何数都为进行或(‖)运算,结果都为1,因此k=3;最后计算“&&”之前的表达式,i++是先运算后自加,因此运算时i为1,所以i++=1成立,自加1后i=2。if语句的条件为真即“1”,所以输出i、j、k的值分别是2,3,3。
54.B[答案]B
[考点]数据结构与算法
[评析]依次从上到下,可得出:
第1层结点数为1;
第2层结点数为2*1=2;
第3层结点数为2*2=4;
第n层结点数为2的n-1次幂
55.A
56.C解析:程序首先调用sub()子函数,在子函数中输出子函数自己的变量b和a(20,10),然后主函数再输出主函数中的变量a和b(10,20)。故应该选择C。
57.A解析:swapl(a,a+1)是将a,a+1的地址进行传递,运行swapl以后,a[0],a[1]的值不发生改变,而swap2(&b[0],&b[1])是将两个指针所指的元素进行传递,运行swap2后,b[0]与b[1]的值互换。
58.A解析:本题考查两个概念:①用单引号括起来的一个字符常量只能存放一个字符;②C语言中没有字符串变量,只能用字符数组来存储字符串。
选项A)中一个单引号内放了若干个字符是错误的;选项B)和选项D)选项中将一个字符串赋值给一个字符数组是允许的。
59.B解析:第—个表达式中,运算的方向是从左至右,所以a的值为2;第二个表达式中,等式右边是—个逻辑表达式,由于结果为真,所以表达式的值为1,即b为1。
60.C本题考查对面向对象的理解。面向对象的程序设计是对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。
61.C
\n本程序中的函数sort(inta[],intn)实现的功能是将数组a中的前n个数进行从大到小排序。sort(&a[1],7)是将数组中从a[1]~a[7]这7个数进行从大到小排序,其他数不变。
\n
62.D当今占主导地位的程序设计观点是“清晰第一,效率第二”。在结构化程序设计思想提出之前,程序设计曾强调程序的效率,但如今实际应用中,人们更重视程序的可理解性。
63.C
64.D
65.C
\n题中整型指针变量P存放的是变量C的地址。所以本题答案为C。
\n
66.B
\n当b=1时,a=1,第二个if语句成立,此时a=6,返回for循环;当b=2,两个if语句都为假,此时a=3,再返回循环;当b=3,第二个if成立,此时a=8,继续循环;当b=4,第一个if成立,退出for循环体时b为4,a为8。
\n
67.A解析:当自加运算符做后缀表达式的时候,表达式的值不变,只有变量的值增加1,所以表达式(x++*1/3)相当于(11*1/3),值为3。
68.D
69.C视图设计的设计次序分3种:自顶向下、自底向上和由内向外。它们为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握。
70.C数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。
\u3000\u3000数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。
\u3000\u3000数据查询语言(DQL),例如:SELECT语句。
\u3000\u3000数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。
71.A本题主函数中定义了一个指针数组a,可以将它看成一个以字符指针为元素的一维数组。和一般的一维数组名能赋给同类型指针变量一样,该字符指针数组也可以赋给指向字符指针的指针,所以数组名a可以用做函数fun()的实参。在fun()函数中,++P操作使形参P往后移动一个字符指针的位置,即指针a[1]的位置。故最后通过础nd()函数输出的字符串为“Afternoon”。因此A选项正确。
72.A\n关系数据库系统采用关系模型作为数据的组织形式。在关系模型中用二维表来表示实体及实体问的联系。
\n
73.Ac语言规定用户标识符由英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,由此可见选项S),D)是错的;此外,C语言不允许用户将关键字作为标识符,而选项c)中的int是c语言的关键字。
74.B
75.B
76.B
77.A本题中遇到‘\\’字符循环结束,因此只统计‘\\’之前的数字字符,结果为3。
78.D
79.B题中当a的值为l时,关系表达式a==l的值为真,即1,因此程序将跳转到easel执行a++操作,与题干程序刚好相反。
80.D本题主要考查数组的定义和初始化。在本题中,考查的是一维数组的定义和初始化操作。一维数组的定义格式为:
数据类型说明数组名[n];
一维数组的初始化格式为:
数据类型说明数组名[n]={元素1,元素2,……,元素n};
或者
数据类型说明数组名[]={元素1,元素2,……,元素n};
另外,在定义数组和初始化数组时需要注意:
(1)定义数组时的n值只能使用常量,不能使用变量。
(2)定义数组时可以不标明数组元素的个数,而是通过赋初值的方式确定。
(3)数组初始化时,数组的元素类型必须与定义的类型一致,当初值的个数小于整型常量n时,编译系统会自动补0。一旦给定初值数超过n,编译系统将报错。
综上所述,不难找出本题正确的答案为D,在选项A和B中,数组的定义方式都是正确的,但初始化的方法不正确;在选项C中,赋值的元素个数超过了数组定义的大小,在编译时系统会报错。81.(1)错误:*t=calloe(m,sizeof(STU));
正确:(structss*)calloc(m,sizeof(STU));
(2)错误:for(i=j=0;i<M;j++)
正确:for(i=j=0;i<M;i++)
(3)错误:t[k].s=b[j].s;
正确:t[k]=b[j];
【解析】由函数proc()可知,变量t是指向动态存储空间的变量,因此不能间接访问运算符,而函数calloc的返回值类型为void*,要进行显式类型转换,因此“*t=calloc(m,si-zeof(STU));”应改为“(structss*)calloc(m,sizeof(STU));”。
由程序可知,变量i为控制学生个数的变量,因此“for(i=j=
82.\n\tvoidproc(intm,int*a,int*n)
\n{
\ninti,j=0;
\nfor(i=1;i<=m;i++)//进行m次循环
\nif(i%7==0||i%11==0)//能被7或11整除的所有整数
\na[j++]=i;//符合条件的数放在数组a中
\n*n=j;//返回这些数的个数
\n}
\n【解析】本题需要先判断1~m每一个整数能否被7或11整除,然后将符合条件的整数放在数组a中,最后将符合条件的数的个数通过形参n返回主函数。\n2021年内蒙古自治区巴彦淖尔市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.以下函数的时间复杂度和空间复杂度为()A.T(n)=O(2^n),S(n)=O(n)
B.T(n)=O(1),S(n)=O(1)
C.T(n)=O(2^n),S(n)=O(1)
D.T(n)=O(n),S(n)=O(n)
2.有嵌套的if语句:if(a<b) if(a<c)k=a; elsek=c;elseif(b<c)k=b;elsek=c;以下选项中与上述if语句等价的语句是()。
A.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
B.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
C.k=(a<b)?a:b;k=(b<c)?b:c;
D.k=(a<b)?a:b;k=(a<c)?a:c;
3.如果树的的结点A有4个兄弟,而且B为A的双亲,则B的度为()。
A.3B.4C.5D.1
4.有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
5.
6.
7.有以下程序:voidsum(inta[]){a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序运行后的输出结果是()。
A.6B.7C.5D.8
8.下列关于return语句的叙述中正确的是()。
A.—个自定义函数中必须有一条return语句
B.—个自定义函数中可以根据不同情况设置多条return语句
C.定义成void类型的函数中可以有带返回值的return语句
D.没有return语句的自定义函数在执行结束时不能返回到调用处
9.下面C程序段中count++语句执行的次数为()A.15B.16C.31D.32
10.下列程序的运行结果是()。
A.2,3,2B.2,3,1C.1,3,3D.3,1,2
11.以下程序的输出结果是()。main{inta[3][3]=“l,2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21
12.
13.有以下程序:
程序运行后的输出结果是()。
A.1,2,6,24,120,B.1,2,3,4,5,C.1,1,1,1,1,D.1,2,4,6,8,
14.以下程序执行后sum的值是()。
A.15
B.14
C.不确定
D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}
15.
16.设a=l,b=2,c=3,d=4,则表达式:“a<b?a:b<b?a:c<d?a:d”的结果为()。A.4B.3C.2D.1
17.已知:intx,y;doublez;则以下语句中错误的函数调用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);
B.scanf("%1d*%d&1f",&x,&y,&z);
C.scanf("%x%*d%o",&x,&y);
D.scanf("%x%o%6.2f",&x,&y,&z);
18.已定义c为字符型变量,则下列语句中正确的是()。
A.c='97'B.c="97"C.c=97D.c="a"
19.有以下程序:main(){inta[][3]={{1,2,3),{4,5,0)),(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}执行后输出结果是()。
A.7B.6C.8D.无确定值
20.下列程序段的时间复杂度为()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)
二、2.填空题(20题)21.算法的基本特征主要包括叫个方面,它们分别是可行性、确定性、()和拥有足够的情报。
22.在使用putchar和getchar函数处理字符时,必须在程序的开头出现包含头文件的命令行是【】。
23.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE*myf;longf1;
myf=【】("test.t","rb");
fscek(myf,(),SEEK_END);f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
24.下面程序的输出结果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=0;k<4;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}
25.在Windows环境下,可以利用单击、双击、拖动这三种鼠标操作之一的【】操作实现窗口的移动。
26.以下程序的输出结果是【】。
#defineMAX(x,y)(x)>(y)?(x)L:(y)
main()
{inta=5,b=2,C=3,d=3,t;
t=MAX(a+b,c+D)*10;
printf("%d\n",t);
}
27.下面程序段的输出结果是【】。
intx=5;
do{printf("%d",x-=4);
}while(!(--x));
28.将以下程序写成三目运算表达式是【】。
if(a>b)max=a;
elsemax=b;
29.以下程序的输出结果是【】。
#include<stdio.h>
main()
{ints[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);}
printf("\n");}
sb(s1,y)
int*s1,y;
{staticinti1=3;
y=s1[i1];
i1--;
return(y);}
30.下面程序的功能是用来统计文件中字符个数。请填空。
#include"stdio.h"
main()
{longcount=OL;
FILE*fp=【】("text.dat","r");
if(fp==0)
{printf("Openerror\n");
exit(0);
}
while(【】)
{
fgetc(fp);
count++;
}
fclise(fp);
printf("%1d\n",count);
}
31.数据库管理系统常见的数据模型有层次模型、网状模型和【】3种。
32.下列程序的运行结果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
33.实体之间的联系可以归结为一对一的联系,一对多的联系与多对多的联系。如果一个学校有许多学生,而一个学生只属于一个学校,则实体集学校与实体集学生之间的联系属于【】的联系。
34.若有以下程序:
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",a);
}
执行后的输出结果是【】。
35.在面向对象程序设计中,从外面看只能看到对象有外部特征,而不知道也无需知道数据的具体结构以及实现操作的算法,这称为对象的______。
36.下面程序执行后输出的结果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
37.买来一张新盘后,在存入文件前,必须进行【】处理。
38.以下程序运行后的输出结果是【】。
main()
{
intx=0210;
printf("%X\n",x);
}
39.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。(注:try_me()函数在a:\myfile.txt中有定义。)
______
main()
{printf("\n");
try_me();
printf("\n");}
40.数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是______。
三、1.选择题(20题)41.单个用户使用的数据视图的描述称为______。
A.外模式B.概念模式C.内模式D.存储模式
42.以下不合法的用户标识符是______。A.j2KEYB.DoubleC.4dD._8_
43.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、i的值为2、k的值为3,以下选项中正确的输入语句是
A.scanf(“%2d%2d%2d”,&i,&j,&k);
B.scanf(“%d%d%d”,&i,&j,&k);
C.scanf(“%d,%d,%d”,&i,&j,&k);
D.scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
44.有以下程序:voidswap1(int*a,int*b){int*c=a;a=b,b=c;}voidswap2(int*a,int*b){intc=*a;*a=*b,*b=c;}main(){inta=10,b=15;swap1(&a,&b);printf("%d,%d,",a,b);a=10,b=15;swap2(&a,&b);printf("%d,%d",a,b);}其输出结果为______。
A.15,10,10,15B.15,10,15,10C.10,15,10,15D.10,15,15,10
45.有以下程序main(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}程序运行后的输出结果是______。
A.3B.4C.5D.6
46.变量a所占的内存字节数是______。
A.4
B.5
C.6
D.8unionU{charst[4];inti;longl;};StructA{intc;unionUu;}a;
47.阅读下列程序段,则程序的输出结果为#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}
A.3B.5C.6D.8
48.下面的程序执行后,文件test.t中内容是______。#include<stdio.h>voidfun(char*fName,char*st){FILE*myf;inti;myf=fopm(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}
A.hello,B.newworldhelloC.newworldD.hello.rld
49.设有定义:#defineSTR"12345";,则以下叙述中正确的是()
A.宏名STR代替的是数值常量12345
B.宏定义以分号结束,编译时一定会产生错误信息
C.宏名STR代替的是字符串"12345";
D.宏名STR代替的是字符串常量"12345"
50.c语言规定,在一个源程序中,main函数的位置()。
A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后
51.下面程序的运行结果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
52.下列选项中不符合良好程序设计风格的是A.源程序要文档化B.数据说明的次序要规范化C.避免滥用goto语句D.模块设计要保证高耦合、高内聚
53.下列程序的输出结果是()。main(){inti=1,j=2,k=3;if(i++==1&&(++j==3‖k++==3))printf("%d%d%d\n",i,j,k);}
A.123B.234C.223D.233
54.在一棵二叉树上第5层的结点数最多是______。
A.8B.16C.32D.15
55.有以下程序:voidfun(intk){staticinta[5];inti;for(i=0;i<5;i++){a[i]+=i+k,printf("%d",a[i]);}printf("\n");}main(){fun(1);fun(2);}程序的输出结果是()
A.12345357911
B.随机数
C.1234523456
D.12345246810
56.若有如下程序:voidsub(){inta,b;a=lO;b=20;printf("%d,%d\n",b,a);}main(){inta=1O,b=20;sub();printf("%d,%d\n"'a'b);}则程序运行后的输出结果是()。
A.10,20B.20,1020,10C.20,10D.10,2010,2020,10
57.有以下程序:voidswapl(intc0[],intc1[]){intt;t=co[o];co[o]=o1[o];c1[o]=t;}voidswap2(int*c0,int*c1){intt;t=*c0;*c0=*c1;*c1=t;}main(){inta[2]={3,5},b[2]=A{3,5);swapl(a,a+1);swap2(&b[0],&b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}程序运行后的输出结果是______。
A.3553B.5335C.3535D.5353
58.下列字符数组初始化语句中,不正确的是()。
A.charc[]=\goodmorning';
B.charc[20]="goodmorning";
C.charc[]={'a','b','c','d');
D.charc[]={"goodmorning");
59.以下程序的输出结果是________。#include<stdio.h>mam(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,B);}
A.6,1B.2,1C.6,0D.2,0
60.下列叙述中正确的是()。
A.在面向对象的程序设计中,各个对象之间具有密切的关系
B.在面向对象的程序设计中,各个对象都是公用的
C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
D.上述3种说法都不对
四、选择题(20题)61.
下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。
#include<stdio.h>
voidsort(inta[],intll)
{inti,j,t;
for(i=0;i<n-1;i++)
for(j=j+1+1;j<n;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{inta[10]一{1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7);
for(i=0;i<10;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
62.下列选项中不符合良好程序设计风格的是()。
A.数据说明的次序要规范化
B.程序中要有必要的注释
C.对所有输入的数据都要进行检查,确保数据的合法性
D.程序的效率第一,清晰第二
63.
64.
65.若在定义语句:inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。
A.scanf("%d",a,b,c);
B.scanf("%d%d%d",a,b,c):
C.scanf("%d",p);
D.scanf("%d",&p);
66.
以下程序的输出结果是()。
main
{inta=1,b;
for(b=1,b<=10;b++)
{if(a>=8)break;
if(a%2==1){a+=5;continue;}
a=3;}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 栓接结合面动态特性的实验探索与多元应用研究
- 鼻腔生理功能讲解
- 2026届河南省西华县东王营中学中考猜题生物试卷含解析
- 雨课堂学堂在线学堂云《体操(西北师范)》单元测试考核答案
- 雨课堂学堂在线学堂云《思想道德与法治(成都中医药)》单元测试考核答案
- 超星尔雅学习通《安全与急救(四川警察学院)》2026章节测试及答案
- 河南省部分名校2025-2026学年高三下学期仿真模拟(六) 地理试题(原卷版)
- 2025年放射医学主治医师考试题库(附答案)
- 2026年图书资料员高级技师通关练习题【预热题】附答案详解
- 2026年中级银行从业资格之中级个人贷款测试卷1套附答案详解
- 2025年北京市西城区中考化学模拟卷
- 2026年山西同文职业技术学院高职单招职业适应性测试模拟试题含答案解析
- 2025年AASM指南:成人OSA住院评估与管理
- 规范参股公司管理制度
- 2025人教版三年级数学上册 第六单元 分数的初步认识 单元分层作业
- 止水钢板施工人员配置
- 职场课课件教学课件
- 2025深圳南山半程马拉松竞赛组织方案
- 无人吊装施工方案(3篇)
- 2026年新疆生产建设兵团兴新职业技术学院单招职业技能测试题库及答案详解一套
- 八上12短文二篇《记承天寺夜游》公开课一等奖创新教学设计
评论
0/150
提交评论