版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年辽宁省抚顺市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()
A.a<>0B.!aC.a=0D.a
2.在一个源文件中定义的全局变量的作用域为:()
A.本程序的全部范围B.本函数的全部范围C.从定义该变量的位置开始到本文件结束D.以上说法都不正确
3.有以下程序
prt(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.A.1,2,3,4,5,
B.3,4,5,6,7,
C.2,3,4,5,6,
D.2,3,4,5,1,
4.设有定义:floata=2,b=4,h=3;以下c语言表达式中与代数式(a+B)h计算结果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)
5.数据流图(DFD)的作用是()。
A.描述软件系统的控制流B.支持软件系统的功能建模C.支持软件系统的面向对象分析D.描述软件系统的数据结构
6.设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课SC(学号,课号,成绩),则表sc的关键字(键或码)为()。
A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩
7.若有定义“inta,b;”,通过语句“scanf(“%d;%d,”&a,&b)能把整数3赋给变量a、5赋给变量b的输入数据是()。
A.35B.3,5C.3;5D.35
8.若某链表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用()存储方式最节省运算时间。
A.单链表B.双链表C.单循环链表D.带头结点的双循环链表
9.在软件测试设计中,软件测试的主要目的是
A.实验性运行软件B.证明软件正确C.找出软件中全部错误D.尽可能多地发现软件中的错误
10.
11.
12.现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中连续的三个节点。structnode{chardata;structnode*next;}*p,*q,*r;
现要将q和r所指节点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是()。
A.q->next=r->next;p->next=r;r->next=q;
B.p->next=r;q->next=r->next;r->next=q;
C.q->next=r->next;r->next=q;p->next=r;
D.r->next=q;p->next=r;q->next=r->next;
13.以下不能定义为用户标识符的是()。
A.scanfB.VoidC.3comD.int
14.若有定义语句“inta,b;doubleX;”,则下列选项中没有错误的是()。
A.switch(X%2){case0:a++;break;casel:b++;break;default:a++;b++;}
B.switch((int)x/2.O){case0:a++;break;casel:b++;break;default:a++;b++;}
C.switch((int)X%2){case0:a++;break;casel:b++;break;default:a++;b++;}
D.switch((int)(x)%2){case0.0:a++;break;casel.0:b++;break;default:a++;b++;}
15.有以下程序:#include<stdio.h>intf(intx,inty){return((y-x)*x);}main(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf(“%d\n”,d);}程序的运行结果是()。
A.7B.10C.8D.9
16.
17.
18.以下叙述正确的是()。
A.表达式“sizeof(FILE*)==sizeof(int*)”的值为真
B.文件指针的值是一个整数,它的值一定小于文件字节数
C.文件指针的值是所指文件的当前读取位置
D.使用fscanf函数可以向任意类型的文件中写入任意数量的字符
19.稀疏矩阵一般的压缩存储方式有两种,即()。
A.二维数组和三维数组B.三元组和散列C.三元组和十字链表D.散列和十字链表
20.程序设计的任务包括()。
A.编写程序代码并上机调试B.确定所用数据结构C.确定所用算法D.以上选项均正确
二、2.填空题(20题)21.C语言程序的注释可以出现在程序中的任何地方,一个注释以【】分别作为开始和结束。
22.黑盒测试是从【】观点的测试。
23.下面程序的运行结果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}
24.数据库管理系统是位于用户与______之间的软件系统。
25.计算机中网络通信协议IP是【】。
26.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是【】。
intb,c;floata;
scanf("%f,%d,c=%d",&a,&b,&c)
27.下列程序的运行结果为【】。
main()
{inta,b,c,x,y,z;
a=10;b=2;
c=!(a%b);x=!(a/b);
y=(a<b)&&(b>=0);
z=(a<b)||(b>=0);
printf("c=%d,x=%d,y=%d,z=%d\n",c,x,y,z);
}
28.以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。
#include<stdio.h>
voidf(intx[],intn)
{intp0,p1,i,j,t,m;
i=j=x[0];p0=p1=0;
for(m=0;m<n;m++)
{if(x[m]>i){i=x[m];p0=m;}
elseif(x[m]<j){j=x[m];p1=m;}
}
t=x[p0];x[p0]=x[n-1];x[n-1]=t;
t=x[p1];x[p1]=【】;【】=t;
}
main()
{inta[10],u;
for(u=0;u<10;u++)scanf("%d",&a[u]);
f(a,10);
for(u=0;u<10;u++)printf("%d",a[u]);
printf("\n");
}
29.根据以下if语句写出与其功能相同的switch语句(x的值在0~100之间)。
if语句:
if(x<60)m=1;
elseif(x<70)m=2;
elseif(x<80)m=3;
elseif(x<90)m=4;
elseif(x<100)m=5;
switch语句:
switch(【】)
{
【】m=1;break;
case6:m=2;break;
case7:m=3;break;
case8:m=4;break;
【】m=5;
}
30.阅读下面程序段,则执行后输出的结果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara=′A′;
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
31.表示条件;10<x<100或x<0的C语言表达式是【】。
32.栈和队列通常采用的存储结构是【】。
33.以下程序的功能是输出如下形式的方阵:
13141516
9101112
5678
1234
请填空。
main()
{inti,i,x;
for(j=4;j______;j--)
{for(i=1;i<4;i++)
{x=(j-1)*4+______;
printf("%4d",x);
}
printf("\n");
}
34.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。
35.以下程序的运行结果是【】。
#defineMAL(a,b)(a>b?a:b)+1
main()
{inti=6,j=8;
printf("%d\n",MAL(i,j));
}
36.已知bead指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有连接点数据域的和值作为函数值返回。请在横线处填入正确内容。
{intdata;structlink*next;}
main()
{structlink*head;
sam(______);
{stmctlink*p;ints=0;
p=head->next;
while(p){s+=p->data;p=p->next;}
return(s);}
37.以下函数的功能是计算s=1+1/2!+1/3!+……+1/n!,请填空。
doublefun(intn)
{
doubles=0.0,fac=1.0;inti;
for(i=1,i<=n;i++)
{
fac=fac______;
s=s+fac;
}
returns;
}
38.二叉树的遍历可以分为三种:前序遍历、()遍历和后序遍历。
39.以下程序中,fun函数的功能是求3行4列二维数组每行元素的最大值。请填空。
voidfun(int,int,int(*)[4],int*);
main()
{
inta[3][4]={{12,41,36,28},{19,33,15,27),{3,27,19,1}},b[3],i;
fun(3,4,a,B);
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*br)
{inti,j,x;
for(i=0;i<m;i++)
{
x=ar[i][0];
for(i=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];
______=X;
}
}
40.以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。请填空。
#include<conio.h>
#include<stdio.h>
intfun(int*s,intt,int*k)
{inti;
*k=0;
【】
if(s[*k]<s[i])*k=i;
return【】;}
main()
{inta[10]={876,675,896,101,301,401,980,431,451,777},k;
clrscr();
fun(a,10,&k);
printf("%d,%d\n",k,a[k]);}
三、1.选择题(20题)41.下列程序的运行结果为______。main(){inta,*p;p=&a;a=100;printf("a=%d*p=%d*&a=%d&*p=%u",a,*p,*&a,&*p);a++;printf("a++=%d",a);(*p)++;printf("(*p)++=%d",*p);*p++;printf("*p++=%d\n",*p);}
A.a=100*p=100*&a=100&*p=65498a++=101(*p)++=102*p++=-24
B.a=100*p=100*&a=100&*p=65498a++=101(*p)++=102*p++=-102
C.a=100*p=100*&a=65498&*p=65498a++=101(*p)++=102*p++=-24
D.a=100*p=100*&a=100&*p=65498a++=101(*p)++=101*p++=-24
42.下列叙述中正确的是()。
A.一个算法的空间复杂度大,则其时间复杂度必定大
B.一个算法的空间复杂度大,则其时间复杂度必定小
C.一个算法的时间复杂度大,则其空间复杂度必定小
D.上述三种说法都不对
43.可以在C语言中用做用户标识符的是______。
A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG
44.下列程序的输出结果是()。
main
{
doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3B.3.2C.0D.3.07
45.C语言规定,程序中各函数之间()
A.既允许直接递归调用也允许间接递归调用
B.不允许直接递归调用也不允许间接递归调用
C.允许直接递归调用不允许间接递归调用
D.不允许直接递归调用允许间接递归调用
46.以下程序的输出结果是()。main(){inta=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:C):(B));}
A.5B.4C.6D.不确定
47.若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
48.C语言中main函数参数的非法表示形式是()
A.main(char*argv[],intargc)
B.main(inta,char**b)
C.main(inty,char*x[])
D.main(intargv,char*argc[])
49.在数据库管理系统提供的数据语言中,负责数据的查询及增、删、改等操作的是
A.数据定义语言B.数据转换语言C.数据操纵语言D.数据控制语言
50.下列程序中c的二过值是()。chara=2,b=4,c;c=a^b>>2;
A.11B.10100C.11100D.11000
51.以下程序的输出结果是()structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60&dt[0],60,&dt[0]};main(){p=aa;printf("%d\n",++(p->x));}
A.10B.11C.51D.60
52.设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
53.下列说法中不正确的是()
A.调制解调器(Modem)是局域网络设备
B.集线器(Hub)是局域网络设备
C.网卡(NIC)是局域网络设备
D.中继器(Repeater)是局域网络设备
54.开发大型软件时,产生困难的根本原因是()
A.大系统的复杂性B.人员知识不足C.客观世界千变万化D.时间紧、任务重
55.已有定义:charc;,程序前面已在命令行中包含ctype.h文件。不能用于判断c中的字符是否为大写字母的表达式是()。
A.isupper(c)
B.'A'<=c<='Z'
C.'A'<=c&&c<='Z'
D.c<=('z'-32)&&('a'-32)<=c
56.有以下程序: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
57.下列程序的输出结果是______。main(){chara[10]-(9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}
A.非法B.a[4]的地址C.5D.3
58.若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是______。A.data的每个成员起始地址都相同
B.变量data所占的内存字节数与成员c所占字节数相等
C.程序段data.a=5;printf("%f\n",data.c);输出结果为5.000000
D.data可以作为函数的实参
59.以下不属于对象的基本特点的是()
A.分类性B.多态性C.继承性D.封装性
60.软件调试的目的是______。
A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能
四、选择题(20题)61.
62.
63.
64.设有以下语句:
其中0≤k<5。以下不是对字符串的正确引用的是()。
A.*strpB.strp[k]C.str[k]D.strp
65.
有以下程序
#include<stdio.h>
voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/
{intt,i,j;
for(i=0;i<n-1;j++)
for(j=i+l;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main
{intc[10]={1,2,3,4,5,6,7,8,9,0),i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序运行的结果是()。
A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
66.下列程序的输出结果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999
67.
68.
69.
70.以下叙述中错误的是()。
A.可以给指针变量赋一个整数作为地址值
B.函数可以返回地址值
C.改变函数形参的值,不会改变对应实参的值
D.当在程序的开头包含头文件stdi0.h时,可以给指针变量赋NULL、、、
71.有以下程序程序运行后的输出结果是()。
A.1,3B.2,3C.1,4D.1.2
72.
73.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}
A.*p表示的是指针变量p的地址
B.*p表示的是变量a的值,而不是变量a的地址
C.*p表示的是指针变量p的值
D.*p只能用来说明p是一个指针变量
74.设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
75.
76.有如下程序
voidf(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
main()
{inta[6]={1,2,4,6,8,10},i,*p,*q;
p=a;q=&a[5];
while(p<q)
{f(p,q);p++;q--;}
for(i=0;i<6;i++)
printf("%d,",a[i]);
}
该程序的输出结果是
A.1,2,4,6,8,10B.10,8,4,6,2,1
C.10,8,6,4,2,1D.10,2,4,6,8,1
77.
78.若要说明一个类型名STP,使得定义语句STPs;等价于Char*s;,以下选项中正确的是()。
A.typedefChar*s;
B.typedefChar*STP;
C.typedefSTP*Char;
D.typedef*CharSTP;
79.
80.若有定义语句: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):
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:给一维数组arr输人任意4个整数,并按如下的规律输出。例如,若输入2345,则程序运行后输出以下矩阵:请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将s所指字符串中ASCII值为奇数的字符删除,将剩余字符形成的新字符串放在t所指数组中。例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符A的ASCII值为奇数,字符1的ASCII值也为奇数,都应当删除,其他依此类推。最后t所指的数组中的内容应是“BDF24”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){}main(){ chars[100],t[100],Msg[]=“Pleaseenterstrings:”; printf(Msg); scanf(“%s”,s); fun(s,t); printf(“\nTheresuitis:%s\n”,t);}
参考答案
1.D
2.C
3.C用数组名作为函数实参时,不是把数组的值传递给形参,而是把实参数组的起始地址传递给形参数组,这样两个数组就共同占用同一段内存单元。本题通过“prt(a,5);”将数组a的首地址传递给了指针变量m,使指针变量m指向数组a的首地址,那么,对指针变量所指向的存储单元的内容的改变就是对数组a中的元素的改变。题中函数prt的作用是将指针变量m所指向的存储单元中的元素值各加上1,故数组a中的值也随之变化,所以。输出的数组元素的值为2,3,4,5,6,。
4.B解析:选项B中由于1和2都是整型,其1/2的运算结果为0,故整个表达式的值为0,所以它的结果和题目中要求的代数式的讨算结果不相符,所以,4个选项中选项B符合题意。
5.B数据流图是系统逻辑模型的图形表示,从数据传递和加工的角度,来刻画数据流从输入到输出的移动变化过程,它直接支持系统的功能建模。本题答案为B选项。
6.C学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C项。
7.C输入数据的格式必须与scanf的格式控制字符串完全匹配。函数中非格式字符需要原样输入,所以输入时必须在3和5之间输入“;”。故本题答案为C选项。
8.D
9.D解析:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。
10.A
11.B
12.D解析:D中的操作将会丢失r后面的链表结构,不能保持链表的连续。
13.D解析:标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符由1~32个字符组成,第一个字符必须是字母或下划线,后面的字符可以是字母、数字或下划线。标识符不能与C关键字相同,并区分大小写。选项D)错误,因为int是C语言中的关键字。
14.CC语言中,switch语句中的表达式和case表达式都不能是浮点类型。所以选C。
15.D在main函数中,调用f(a,b)函数返回3,调用f(a,c)函数返回6,所以外层调用f(f(a,b),f(a,c)),即调用f(3,6)函数返回9。故本题答案为D选项。
16.D
17.A
18.A“sizeof(FILE*)=4”,因为“file*”为指针,指针变量占用字节数为4,所以“sizeof(int*)=4”,选项A正确。文件指针的值是地址,是一个十六进制数,它的值不一定小于文件字节数,因此选项B错误。文件指针是所指文件的当前读取位置,而不是文件指针的值,因此选项C错误。“intfscanf(FILE*Stream,constchar*format,[argument...]);”,fScanf函数可以向任意类型的文件写入任意数量的数据(不能超过系统的缓冲区),写文件先写入缓冲区,最后一起写入文件,因此选项D错误。故本题答案为A选项。
19.C
20.D程序设计是一门技术,需要相应的理论、技术、方法和工具来支持。程序设计的任务包括选项A)、B)、c)等方面。
21./**//**/解析:C语言程序的注释可以出现在程序基本单词之间的任何地方,C语言程序的注释以“/*”作为开始标记,并以“*/”作为结束标记。
22.用户用户解析:黑盒测试又称为功能测试,黑盒测试是把程序看作一个黑盒子,完全不考虑程序内部的结构和处理过程。测试者只考虑该程序输入和输出的关系,或只考虑程序的功能。黑盒测试是一种从用户观点出发的测试。
23.11
24.操作系统操作系统解析:数据库管理系统是帮助用户创建和管理数据库的应用程序的集合。因此,数据库管理系统需要操作系统的支持,为用户提供服务。
25.网际协议网际协议
26.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。所以此题中输入数据的形式是5.04,c=3。
27.c=1x=Oy=Oz=1
28.x[0]x[0]x[0],x[0]解析:函数f()通过for循环逐个比较数组x中的元素,循环结束后,p0和p1分别表示最大值和最小值在数组中的下标位置,然后按照题意将最大值x[p0]和数组的最后一个元素x[n-1]交换位置,再将最小值x[p1]和第一个元素(x[0])进行交换,所以空白处应该填入x[0]。
29.x/10case0:case1:case2:case3:case4:case5:case9:x/10\r\ncase0:case1:case2:case3:case4:case5:\r\ncase9:
30.NN解析:函数说明语句中的类型名必须与函数返回值的类型一致。本题实现的是在字符'A'的ASCII码值上加上一个常数,使之变成另一个ASCII码值,从而输出字符。
31.(x>10&&x<100)||x<0
32.链式存储和顺序存储链式存储和顺序存储
33.ii解析:本题使用了一个两重for循环输出如题所示的方阵。从外层for循环的最后一条语句prinff('\\n');可以看出,外层for循环每次输出方阵的一行,由于方阵是4行所以外层循环会循环4次,又从j=4和卜可以看出这4次循环,循环变量i的值分别为4、3、2、1.故前一空应该填j>=1或者j>0,以保证j等于0时循环结束。内层循环控制每行输出的4个数,其循环变量i从1递增到4,由于每行的4个结果也是差1递增的,所以将每次结果减去循环变量i的值为一个常数,每行分别是12、8、4、0,而这些值正好与4次外循环中表达式(j-1)*4的值相吻合,故后一空应该填i。
34.E-R图E-R图解析:数据库逻辑设计的任务是将概念模型进一步转化成相应的数据模型。而E-R图是主要的概念模型,因此数据库的逻辑设计的主要工作是将E-R图转换成关系模式。
35.99解析:用i和j替换宏MAL(a,b)小的参数a和b,(a>b?a:b)+1等价于(i>j?i:j)+1。因为6>8为假,则关系表达式i>j?i:j的值就是j的值,j=8,8+1=9,最后输出9。
36.
37./i或*1.0/i或*1/i或*(1.0/i)或/(double)i/i或*1.0/i或*1/i或*(1.0/i)或/(double)i解析:主函数中首先定义了两个double型的变量s和fac,并给它们赋初值为0.0和1.0,在函数中s和fac的作用是存放和以及要加到的那一项的值。通过分析可知,第i项的值可以由第i-1项的值得到,即第i项是第i-1项的值除以i。可见横线处应添“/i”或与它等价的表达式。
38.中序中序解析:二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历。前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根
39.br[i]或*(br+i)br[i]或*(br+i)解析:求最大值算法要求输入的一般是一系列数,例如一个数组,而输出只有一个值。计算时通常的做法是,首先将这一系列数的笫1个值保存到结果变量中,然后用一个指针或循环变量从头(或从第2个值)至尾遍历这一系列数,每次比较结果变量和被遍历的值,如果该值比结果大,则将该值保存到结果中。本题中,3行4列二维数组a显然是算法的输入值,而传给函数fun()的3和4在函数中起到限制循环次数的作用,所以它们代表输入数据的行列数.而传递给函数的一维数组b即没有初始化,最后又要输出它,所以数组b肯定是用来保存每行的最大值。在函数中是一个二重循环,外循环首先将ar[i][0]赋给x,然后内循环中比较x和ar[il刚,若x比较小就让x=ar[i][j],这就说明x是保存结果的临时变量.最后应该将x的值输出到数组b中,也就是形参br的相应位置。故在空格处应该填的内容为br[i]或者写成指针方式*(br+i)。
40.for(i=0;i<t;i++)0for(i=0;i<t;i++)\r\n0解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应使*k的值为数组中的某一下标值,即*k=0。
41.A
42.DD。【解析】算法的时间复杂度和算法的空间复杂度是从不同的角度来衡量算法的执行情况的,它们之间没有内在联系。
43.B解析:C语言规定,标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。另外还需要注意的是关键字不能作标识符。选项A中void,C中for都为关键字,D中2c以字母开头。
44.C解析:本题中,程序先执行语句x=1.2;,根据赋值运算的类型转换规则,先将double型的常量1.2转换为int型,即取整为1,然后将1赋值给变量x。接下来执行语句y=(x+3.8)/5.0;根据运算符的优先级,先计算小括号内,再计算除法,最后执行赋值运算。小括号内的运算过程:先将整型变量x的值1转换为double型1.0,然后与3.8进行加法运算,得到中间结果4.8。接着进行除法运算4.8/5.0,其结果小于1.0,这里没有必要计算出精确值,因为接着进行赋值运算,赋值号左边的变量y的类型为整型,于是对这个小于1.0的中间结果进行取整,结果为0,于是变量y的值为0,d*y的值也为0。注意:格式输出语句printf的使用。
45.A解析:C语言规定,程序中各函数之间既允许直接递归调用也允许间接递归调用。
46.C解析:本题考核的知识点是条件表达式的使用.在C语言中问号表达式(如:a>c?a:c;)的计算规则为:如果a>c为真,那么表达式的值为a的值;否则表达式的值为C的值。本题中的printf()函数中的输出表达式,首先计算括号内的条件表达式,它的值为6(a>c?a:c中a>c即5>6为假故该表达式的值为c的值即为6),然后再计算外面表达式(等价于a>b?6:b)的值,同理可得该表达式的值为6,将值6赋值给d,因此最后输出该表达式的值为6,所以,4个选项中C为所选。
47.C解析:栈是一种后进先出表,选项C中,先出栈的是3,说明此时栈内必然有1,2,由于1先于2进浅,所以1不可能在2之前出栈,故选项C这种出栈序列是不可能的。
48.A
49.C【解析】在数据库管理系统提供的数据语言中,数据操纵语言负责数据的查询及增、删、改等操作。故答案为C。
50.A解析:本题主要考查按位异或和右移运算。b=4的二进制为00000100,b>>2后为00000001,a=2的二进制为00000010,两者异或为00000011。
51.C
52.B解析:条件表达式的形式为:“表达式1?表达式2:表达式3”。其含义为:当“表达式1”的值为非零时,求出“表达式2”的值,此时“表达式2”的值就是整个条件表达式的值;当“表达式1”的值为零时,求出“表达式3”的值,此时“表达式3”的值就是整个条件表达式的值。对于本题来说,当表达式EXP为非0值时条件成立,即执行语句i++;当EXP等于0时,执行语句j--;这等同于条件表达式“(EXP!=0)?i++:i++;”。
53.D解析:为了让计算机接入局域网必须要网卡,Hub用于把局域网中的所有计算机连接起来,调制解调器用于把局域网和互联网连接起来,中继器是广域网设备,用于网络中信息的传递。
54.A开发大型软件时,产生困难的原因有很多,如需求难以捕捉、员工水平有限、工作安排不太合理、进度控制难以把握、系统开发时间有限等元素,但这些都不是根本的原因,根本的原因是大系统的复杂性。
55.B解析:大写字母从'A'~'Z'的ASCII码是连续的,所以如果当—个字符大于等于'A'且小于等于'z'时,那这个字符就一定是一个大写字母,故选项C正确。C语言中的库函数isupper()的作用也正是判断一个字符是否为大写字母的,故选项A正确。在ASCII码中,小写字母的编码也是连续的,对应的小写字符比大写字符的ASCII码值大32,所以选项D经过小写字符-32后,换算成了对应的大写字母'Z'和'A',所得到结果和选项C是一致的,故也是正确的。选项B中,C语言的逻辑表达式不能直接连写,而应该写成选项C那样,故是错误的,应该选择B。
56.A解析:swapl(a,a+1)是将a,a+1的地址进行传递,运行swapl以后,a[0],a[1]的值不发生改变,而swap2(&b[0],&b[1])是将两个指针所指的元素进行传递,运行swap2后,b[0]与b[1]的值互换。
57.C解析:本题中char*p=a+5;即相当于p;&a[5],而-p,是先要减1,则printf语句要输出的值就是a[4]。
58.C解析:共用体成员a,b,c共占用同一个内存空间,所以data的每个成员起始地址都相同;共用体变量所占的内存长度等于最长的成员的长度,故变量data所占的内存字节数与成员所占字节数相等;由于各成员变量的类型不一致,所以它们的存储方式也不相同,整型占用2个字节的存储空间,double型占用8个字节的存储空间;data可以作为函数的实参,此时data作为一个地址进行地址传送;执行data.a=5;printf('%f\\n',data.c);系统不能自动将整型变量转换为浮点型值,printf函数只是将内存中的数据以不同类型输出,而不能将内存中的整型数据自动转换为等值的浮点数,故选项C)错误。
59.C解析:对象的基本特点包括;标识惟一性、分类性、多态性、封装性和独立性等。继承性不属于对象的基本特点。
60.B解析:在对程序进行测试时会发现错误,这就要进行程序调试(排错)。程序调试活动由三部分组成:一是错误定位,根据错误的外部表现形式,确定程序中出错的位置,找出错误的内在原因;二是对程序进行修改,排除这个错误;三是进行回归测试,防止引进新的错误。所以程序调试的目的就是诊断和改正程序中的错误。软件调试不能改善软件的性能,也不能挖掘软件的潜能。
61.B
62.C
63.A
64.Dstrp是一个指针数组名,即它是一个指向指针的指针,strp不是对字符串的引用。
65.D
\nfun函数的功能是对数组a[]的元素从大到小进行排序。
\n
66.C本题考查do-while循环,在fun函数中,首先定义了静态变量i=0,do-while循环要实现的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不变的规则重新给b数组赋值。在主函数中,通过调用fun函数,按上面的规则对数组a重新赋值,最后输出数组a。
67.D
68.D
69.D
70.A不能将一个整数直接赋给指针变量作为地址,因此A)是错误的。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。故本题答案为A)。
71.Af函数功能使第二个指针指向的元素增1,第一个指针指向的元素不变,所以答案选择A)。
72.C
73.B在本题中,题目告诉我们程序中调用scanf函数给变量a输入数值的方法是错误的,要求我们找出其错误的原因,这是一类错误原因分析题。
在本题程序中,首先定义两个整型指针变量p和q,然后定义两个整型变量a和b,让指针变量p执行变量a,接着输出提示语句“请输入a”,执行格式输入语句scanf,由于输入语句的输入列表中给出的应该是输入的地址,即存放输入数据的存储地址,但在本题的输入语句中给出的是*p,这表示一个数值,而非地址。因此,无法完成数据的输入,若要完成输入,可以将*p改为p。
根据上面的分析,我们可以知道本题程序出错的原因是*p表示的是变量a的值,而不是变量a的地址。因此本题正确答案选B。
74.B解析:条件表达式的形式为:“表达式1?表达式2:表达式3”。其含义为:当“表达式1”的值为非零时,求出“表达式2”的值,此时“表达式2”的值就是整个条件表达式的值;当“表达式1”的值为零时,求出“表达式3”的值,此时“表达式3”的值就是整个条件表达式的值。对于本题来说,当表达式EXP为非0值时条件成立,即执行语句i++;当EXP等于0时,执行语句j--;这等同于条件表达式“(EXP!=0)?i++:i++;”。
75.A
76.C题目中给出的程序分为两个部分:主函数main和函数f。在主函数中初始化定义了一个整型数组a,大小为6,并定义了两个数组指针p,q。指针p指向数组第一个元素的地址,指针q指向数组最后一个元素的地址。主函数包含一个while语句,循环条件为p<q,while语句内部先调用了f函数,p、q指针为该函数的实参,随后进行了p++操作和q--,即使p指针指向下一个元素的地址,q指针指向前一个元素的地址。由于是数组存储,必然存在初始时,有p<q,当p>=q时,while语句结束。while语句后面是for语句,该语句的作用是输出数组a[]中所有的数据。
f函数的形参为整型指针,函数的功能是使得输入的指针变量所指向的数据进行交换,由于使用的是指针变量,故在f函数中对指针的操作结果会影响调用函数中(main)实参所指数据的改变,题目中f函数的调用实质是将main函数中的p、q指针所指的数据进行交换,也将导致数组a中相应的数据进行交换。结合while语句,也就是将数组a中的第1个数据与第6个数据进行交换,第2个数据与第5个数据进行交换,以此类推,得到结果10,8,6,4,2,1。
77.A
78.B用关键字typedef声明一种新的类型的形式为typedef类型名标识符。本题中的类型为char*。
79.B
80.A因为X,Y都是double型数据,所以输入时的格式字符应为%If,所以B与C错误。D选项中scanf(”%lf%%’,x,Y);应为sc“(”%If%If"’,,&)r);。
81.(1)错误:voidproc(intarr)
正确:voidproc(int*arr)
(2)错误:arrEj]=arr[j+1];
正确:arr[j]=arr[j-1];
【解析】由主函数ee的函数调用可知,函数proc的形参为整型的指针变量。因此,“voidproc(intarr)”应改为“voidproc(int*arr)”。从“a[j]=a[j+1];”可知,当“j=M-1”
时“a[j+1];”越界了,而程序的思路是把前一个数放到后一个中,再把最后面的数放到第一个中,因此把arr[j+1]改为arr[j-1]。
82.voidfun(char*s,chart[]){ inti,j=0,n; n=strlen(s);/*遍历整个数组*/ for(i=0;i<=""p="">/*如果元素的ASCII值为偶数*/ if(s[i]%2==0) {/*将元素保存到t中*/ t[j]=s[i]; j++; } t[j]=-‘\0’;}要删除ASCII值为奇数的字符,也就是要保留ASCII值为偶数的字符,将ASCII值为偶数的字符保存到新字符串。所以本题的算法是对原字符串从头到尾进行扫描,找出ASCII值为偶数的字符并依次存入数组。2021-2022年辽宁省抚顺市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()
A.a<>0B.!aC.a=0D.a
2.在一个源文件中定义的全局变量的作用域为:()
A.本程序的全部范围B.本函数的全部范围C.从定义该变量的位置开始到本文件结束D.以上说法都不正确
3.有以下程序
prt(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.A.1,2,3,4,5,
B.3,4,5,6,7,
C.2,3,4,5,6,
D.2,3,4,5,1,
4.设有定义:floata=2,b=4,h=3;以下c语言表达式中与代数式(a+B)h计算结果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)
5.数据流图(DFD)的作用是()。
A.描述软件系统的控制流B.支持软件系统的功能建模C.支持软件系统的面向对象分析D.描述软件系统的数据结构
6.设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课SC(学号,课号,成绩),则表sc的关键字(键或码)为()。
A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩
7.若有定义“inta,b;”,通过语句“scanf(“%d;%d,”&a,&b)能把整数3赋给变量a、5赋给变量b的输入数据是()。
A.35B.3,5C.3;5D.35
8.若某链表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用()存储方式最节省运算时间。
A.单链表B.双链表C.单循环链表D.带头结点的双循环链表
9.在软件测试设计中,软件测试的主要目的是
A.实验性运行软件B.证明软件正确C.找出软件中全部错误D.尽可能多地发现软件中的错误
10.
11.
12.现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中连续的三个节点。structnode{chardata;structnode*next;}*p,*q,*r;
现要将q和r所指节点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是()。
A.q->next=r->next;p->next=r;r->next=q;
B.p->next=r;q->next=r->next;r->next=q;
C.q->next=r->next;r->next=q;p->next=r;
D.r->next=q;p->next=r;q->next=r->next;
13.以下不能定义为用户标识符的是()。
A.scanfB.VoidC.3comD.int
14.若有定义语句“inta,b;doubleX;”,则下列选项中没有错误的是()。
A.switch(X%2){case0:a++;break;casel:b++;break;default:a++;b++;}
B.switch((int)x/2.O){case0:a++;break;casel:b++;break;default:a++;b++;}
C.switch((int)X%2){case0:a++;break;casel:b++;break;default:a++;b++;}
D.switch((int)(x)%2){case0.0:a++;break;casel.0:b++;break;default:a++;b++;}
15.有以下程序:#include<stdio.h>intf(intx,inty){return((y-x)*x);}main(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf(“%d\n”,d);}程序的运行结果是()。
A.7B.10C.8D.9
16.
17.
18.以下叙述正确的是()。
A.表达式“sizeof(FILE*)==sizeof(int*)”的值为真
B.文件指针的值是一个整数,它的值一定小于文件字节数
C.文件指针的值是所指文件的当前读取位置
D.使用fscanf函数可以向任意类型的文件中写入任意数量的字符
19.稀疏矩阵一般的压缩存储方式有两种,即()。
A.二维数组和三维数组B.三元组和散列C.三元组和十字链表D.散列和十字链表
20.程序设计的任务包括()。
A.编写程序代码并上机调试B.确定所用数据结构C.确定所用算法D.以上选项均正确
二、2.填空题(20题)21.C语言程序的注释可以出现在程序中的任何地方,一个注释以【】分别作为开始和结束。
22.黑盒测试是从【】观点的测试。
23.下面程序的运行结果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}
24.数据库管理系统是位于用户与______之间的软件系统。
25.计算机中网络通信协议IP是【】。
26.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是【】。
intb,c;floata;
scanf("%f,%d,c=%d",&a,&b,&c)
27.下列程序的运行结果为【】。
main()
{inta,b,c,x,y,z;
a=10;b=2;
c=!(a%b);x=!(a/b);
y=(a<b)&&(b>=0);
z=(a<b)||(b>=0);
printf("c=%d,x=%d,y=%d,z=%d\n",c,x,y,z);
}
28.以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。
#include<stdio.h>
voidf(intx[],intn)
{intp0,p1,i,j,t,m;
i=j=x[0];p0=p1=0;
for(m=0;m<n;m++)
{if(x[m]>i){i=x[m];p0=m;}
elseif(x[m]<j){j=x[m];p1=m;}
}
t=x[p0];x[p0]=x[n-1];x[n-1]=t;
t=x[p1];x[p1]=【】;【】=t;
}
main()
{inta[10],u;
for(u=0;u<10;u++)scanf("%d",&a[u]);
f(a,10);
for(u=0;u<10;u++)printf("%d",a[u]);
printf("\n");
}
29.根据以下if语句写出与其功能相同的switch语句(x的值在0~100之间)。
if语句:
if(x<60)m=1;
elseif(x<70)m=2;
elseif(x<80)m=3;
elseif(x<90)m=4;
elseif(x<100)m=5;
switch语句:
switch(【】)
{
【】m=1;break;
case6:m=2;break;
case7:m=3;break;
case8:m=4;break;
【】m=5;
}
30.阅读下面程序段,则执行后输出的结果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara=′A′;
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
31.表示条件;10<x<100或x<0的C语言表达式是【】。
32.栈和队列通常采用的存储结构是【】。
33.以下程序的功能是输出如下形式的方阵:
13141516
9101112
5678
1234
请填空。
main()
{inti,i,x;
for(j=4;j______;j--)
{for(i=1;i<4;i++)
{x=(j-1)*4+______;
printf("%4d",x);
}
printf("\n");
}
34.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。
35.以下程序的运行结果是【】。
#defineMAL(a,b)(a>b?a:b)+1
main()
{inti=6,j=8;
printf("%d\n",MAL(i,j));
}
36.已知bead指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有连接点数据域的和值作为函数值返回。请在横线处填入正确内容。
{intdata;structlink*next;}
main()
{structlink*head;
sam(______);
{stmctlink*p;ints=0;
p=head->next;
while(p){s+=p->data;p=p->next;}
return(s);}
37.以下函数的功能是计算s=1+1/2!+1/3!+……+1/n!,请填空。
doublefun(intn)
{
doubles=0.0,fac=1.0;inti;
for(i=1,i<=n;i++)
{
fac=fac______;
s=s+fac;
}
returns;
}
38.二叉树的遍历可以分为三种:前序遍历、()遍历和后序遍历。
39.以下程序中,fun函数的功能是求3行4列二维数组每行元素的最大值。请填空。
voidfun(int,int,int(*)[4],int*);
main()
{
inta[3][4]={{12,41,36,28},{19,33,15,27),{3,27,19,1}},b[3],i;
fun(3,4,a,B);
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*br)
{inti,j,x;
for(i=0;i<m;i++)
{
x=ar[i][0];
for(i=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];
______=X;
}
}
40.以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。请填空。
#include<conio.h>
#include<stdio.h>
intfun(int*s,intt,int*k)
{inti;
*k=0;
【】
if(s[*k]<s[i])*k=i;
return【】;}
main()
{inta[10]={876,675,896,101,301,401,980,431,451,777},k;
clrscr();
fun(a,10,&k);
printf("%d,%d\n",k,a[k]);}
三、1.选择题(20题)41.下列程序的运行结果为______。main(){inta,*p;p=&a;a=100;printf("a=%d*p=%d*&a=%d&*p=%u",a,*p,*&a,&*p);a++;printf("a++=%d",a);(*p)++;printf("(*p)++=%d",*p);*p++;printf("*p++=%d\n",*p);}
A.a=100*p=100*&a=100&*p=65498a++=101(*p)++=102*p++=-24
B.a=100*p=100*&a=100&*p=65498a++=101(*p)++=102*p++=-102
C.a=100*p=100*&a=65498&*p=65498a++=101(*p)++=102*p++=-24
D.a=100*p=100*&a=100&*p=65498a++=101(*p)++=101*p++=-24
42.下列叙述中正确的是()。
A.一个算法的空间复杂度大,则其时间复杂度必定大
B.一个算法的空间复杂度大,则其时间复杂度必定小
C.一个算法的时间复杂度大,则其空间复杂度必定小
D.上述三种说法都不对
43.可以在C语言中用做用户标识符的是______。
A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG
44.下列程序的输出结果是()。
main
{
doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3B.3.2C.0D.3.07
45.C语言规定,程序中各函数之间()
A.既允许直接递归调用也允许间接递归调用
B.不允许直接递归调用也不允许间接递归调用
C.允许直接递归调用不允许间接递归调用
D.不允许直接递归调用允许间接递归调用
46.以下程序的输出结果是()。main(){inta=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:C):(B));}
A.5B.4C.6D.不确定
47.若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
48.C语言中main函数参数的非法表示形式是()
A.main(char*argv[],intargc)
B.main(inta,char**b)
C.main(inty,char*x[])
D.main(intargv,char*argc[])
49.在数据库管理系统提供的数据语言中,负责数据的查询及增、删、改等操作的是
A.数据定义语言B.数据转换语言C.数据操纵语言D.数据控制语言
50.下列程序中c的二过值是()。chara=2,b=4,c;c=a^b>>2;
A.11B.10100C.11100D.11000
51.以下程序的输出结果是()structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60&dt[0],60,&dt[0]};main(){p=aa;printf("%d\n",++(p->x));}
A.10B.11C.51D.60
52.设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
53.下列说法中不正确的是()
A.调制解调器(Modem)是局域网络设备
B.集线器(Hub)是局域网络设备
C.网卡(NIC)是局域网络设备
D.中继器(Repeater)是局域网络设备
54.开发大型软件时,产生困难的根本原因是()
A.大系统的复杂性B.人员知识不足C.客观世界千变万化D.时间紧、任务重
55.已有定义:charc;,程序前面已在命令行中包含ctype.h文件。不能用于判断c中的字符是否为大写字母的表达式是()。
A.isupper(c)
B.'A'<=c<='Z'
C.'A'<=c&&c<='Z'
D.c<=('z'-32)&&('a'-32)<=c
56.有以下程序: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
57.下列程序的输出结果是______。main(){chara[10]-(9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}
A.非法B.a[4]的地址C.5D.3
58.若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是______。A.data的每个成员起始地址都相同
B.变量data所占的内存字节数与成员c所占字节数相等
C.程序段data.a=5;printf("%f\n",data.c);输出结果为5.000000
D.data可以作为函数的实参
59.以下不属于对象的基本特点的是()
A.分类性B.多态性C.继承性D.封装性
60.软件调试的目的是______。
A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能
四、选择题(20题)61.
62.
63.
64.设有以下语句:
其中0≤k<5。以下不是对字符串的正确引用的是()。
A.*strpB.strp[k]C.str[k]D.strp
65.
有以下程序
#include<stdio.h>
voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/
{intt,i,j;
for(i=0;i<n-1;j++)
for(j=i+l;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main
{intc[10]={1,2,3,4,5,6,7,8,9,0),i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序运行的结果是()。
A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
66.下列程序的输出结果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产程异常与难产处理2026
- 2026中国箱包手袋生产行业市场供需分析及投资评估规划分析研究报告
- 2026人工智能芯片行业市场现状技术分析竞争发展评估投资评估报告
- 2026中国新能源交通灯控制系统市场需求分析报告
- 2026煤炭产业市场竞争力研究及技术创新与资源整合分析报告
- 2026中国智能家居行业市场现状渗透率分析及投资价值规划分析研究报告
- 2026中国通信行业技术创新分析及市场竞争格局研究报告
- 2026中国智能晾衣架行业市场现状需求增长与投资机会探索报告
- 2026瑞典智能家居产品标准制定市场多元化分析
- 2026年简历分析与视频面试AI评估技术趋势报告
- 采购内部审计管理办法
- T/CCSAS 024-2023化工企业设备及管线打开作业实施指南
- 反恐验厂管理手册程序文件制度文件表单一整套
- DL∕T 1379-2014 电力调度数据网设备测试规范
- SL-T+291-2020水利水电工程钻探规程
- 2024年湖北农谷实业集团有限责任公司招聘笔试冲刺题(带答案解析)
- 电梯维保方案完整版
- 工程造价专业教学资源库申报书-专业教学资源库备选项目材料
- 《骨关节炎的康复》课件
- HGT4134-2022 工业聚乙二醇PEG
- 跨境电子商务英语全套教学课件
评论
0/150
提交评论