版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年四川省德阳市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.按照“先进后出”原则组织数据的结构是()。
A.队列B.栈C.双向链表D.二叉树
2.
3.十六进制数FF.1转换成十进制数是()
A.255.0625B.255.125C.127.0625D.127.125
4.下列字符串是标识符的是()。
A.aaB.a-classC.intD.LINE1
5.以下不能对二维数组a进行正确初始化的语句是
A.inta[2][3]={0};
B.inta[][3]={{1,2},{0}};
C.inta[2)[3]={{1,2},{3,4},{5,6}};
D.inta[][3]={1,2,3,4,5,6};
6.下列描述中,不是线性表顺序存储结构特征的是
A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需另外开辟空间来保存元素之间的关系
7.计算机算法指的是()。
A.计算方法B.排序方法C.解决问题的有限运算序列D.调度方法
8.设有递归算法如下试问计算x(x(8))时需要计算()次x函数。A.8B.9C.16D.18
9.有下列程序:
程序执行后的输出结果是()。
A.6,5,4,4,5,6,
B.1,2,3,4,5,6,
C.4,5,6,4,5,6,
D.1,2,3,6,5,4,
10.下列叙述中错误的是()。
A.一个C语言程序只能实现一种算法
B.c程序可以由多个程序文件组成
C.C程序可以由一个或多个函数组成
D.一个c函数可以单独作为一个C程序文件存在
11.有下列程序:
intfun(intn)
{if(n==1))returnl;
else
return(n+fun(n-1)):
}
main()
{intx;
seanf("%d",&x);x=fun(x);printf("%d\n",x);
}
执行程序时,给变量x输入l0,程序的输出结果是()。
A.55
B.54
C.65
D.45
12.
13.若要求从键盘读入含有空格字符的字符串,应该使用函数______。A.getc()B.gets()C.getchar()D.scanf()
14.以下函数的功能是()intfun(char*A){char*b=a;while(*B)b++;{returnb-a;}}
A.比较两个字符串的大小B.字符串的复制C.计算字符串的长度D.字符串的连接
15.sizeof(float)是()。A.一个双精度型表达式B.一个整型表达式C.一种函数调用D.一个不合法的表达式
16.用二分法查找一个长度为10的,排好序的线性表,查找不成功时,最多需要比较()次
A.5B.2C.4D.1
17.当接受用户输入的含有空格的字符串时,应使用()函数。
A.gets()B.getchar()C.scanf()D.printf()
18.若有定义floata[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为()。
A.334HB.30DHC.352HD.31AH
19.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
执行后的输出结果是A.A.0X0
B.0x0
C.0
D.0xABC
20.为了避免在嵌套的条件语句ifelse中产生二义性,C语言规定,else子句总是与()配对。
A.缩排位置相同ifB.其前面最近的ifC.其后面最近的ifD.同一行上的if
二、2.填空题(20题)21.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。
22.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【】。
23.设x和y均为int型变量,且x=1,y=2,则表达式2.0+y/x的值为【】。
24.以下函数的功能是求x的y次方,请填空。
doublefun(doublex,inty)
{inti;
doublez;
for(i=1,z=x;i<y;i++)z=z*【】;
returnz;
}
25.下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
26.关系数据库管理系统能实现的专门关系运算包括选择、连接和【】。
27.以下程序运行后的输出结果是【】。
fun(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inti,a=5;
for(i=0;i<3;i++)printf("%d%d",i,fun(a));
prind("\n");
}
28.为了便于对照检查,测试用例应由输入数据和预期的【】两部分组成。
29.—个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。
30.若输入12、3、2、5、7,则以下程序的运行结果为【】。
intmax,min;
voidmax_min_value();
main()
{inti,number[5];
printf("输入5个整数;\n");
for(i=0;i<5;i++)scanf("%d",&number[i]);
maxminvalue(number,5);
printf("max=%d,min=%d\n",max,min);
getch();
}
voidmax_min_value(array,n)
intarray[],n;
{int*p;
max=min=*array;
for(p=array+1;p<array+n;p++)
if(*p>max)max=*p;
elseif(*p<min)min=*p;
}
31.下列程序输出的结果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
32.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
33.当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的【】。
34.以下程序中,for循环体执行的次数是【】。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{inti;
for(i=1;i<K;i++){......}
35.在对文件进行操作的过程中,若要是文件位置的指针回到文件的开头,应使用的函数是【】。
36.设有定义:FILE*fw;,请将以下打开文件的语句补充完整,以便可以向文本文件readme.txt的最后续写内容。
fw=fopen("readme.txt",【】);
37.实体联系模型是一种常用的高级概念数据模型,而______是实体联系模型中的核心。
38.在深度为7的满二叉树中,度为2的节点个数为()。
39.函数viodfun(float*sn,intn)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。
s=1-1/3+1/5-1/7+…1/(2n+1)
voidfun(float*sn,intn)
{floats=0.0,w,f=-1.0;
inti=0;
for(i=0;i<=n;i++)
{f=【】*f;
w=f/(2i+1);
s++=w;
}
【】=s;
}
40.下面程序的功能是两个整数进行交换,请填空。
sub(int*x,int*y)
{【】
z=*x;*x=*y;*y=z;
return;}
main()
{intm,n,*t1,*t2;
scanf("%d,%d",&m,&n);
t1=&m;t2=&n;
【】
printf("%d,%d\n",m,n);}
三、1.选择题(20题)41.下列程序的执行结果是______。main(){intx=2,y=2,z=0;if(z<0)if(y>o)x=4;elseX=5;printf("%d\t",x);if(z=y>0)x=7;elseif(y=0)x=3;elseX=6;printf("%d\t",x);printf("%d\t",z);}
A.271B.432C.570D.250
42.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)
43.以下合法的赋值语句是()
A.x=y=100B.d--;C.x+y;D.c=int(a+b);
44.能正确表示C语言的字符常量的是______。
A.'\0x41'B.AC.'\0'D.\0
45.当执行下列宏定义命令后,S的值为()#defineR3.0#definePI3.1415926#defineL2*PI*R#defineSPI*R*R
A.3.1415926B.18.849556C.3D.28.2743334
46.有以下程序main(){inti,n=0;for(i=2;i<5;i++){do{if(i%3)continue;n++;}while(!i);n++;}printf("n=%d\n",n);}程序执行后输出结果是
A.n=5B.n=2C.n=3D.n=4
47.下列二维数组初始化语句中,正确且与语句inta[][3]={1,2,3,4,5}等价的是()。
A.inta[2][]={{1,2,3},{4,5}};
B.inta[][3]={1,2,3,4,5,0};
C.inta[][3]={{1,0},{2,0},{3,0}};
D.inta[2][]={{1,2,3},{4,5,6}};
48.请读程序段:charstr[]="ABCD",*p=str;printf("%d\n",*(p+4));程序段的输出结果是______。
A.68B.0C.字符'D'的地址D.不确定的值
49.为了使模块尽可能独立,要求()。
A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
50.在说明语句int*f()中,标识符f代表的是______。
A.—个用于指向整型数据的指针变量
B.—个用于指向一维数组的行指针
C.—个用于指向函数的指针变量
D.一个返回值为指针型的函数名
51.有以下程序:#include<stdio.h>main(){charc[6];inti=0;for(;i<6;c[i]=getchar(),i++);for(i=O;i<6;i++)putchar(c[i]);printf("\n");}如果从键盘上输入:ab<回车>c<回车>def<回车>则输出结果为_______。
A.aB.aC.abD.abcdefbbcccdddef
52.有以下定义:#include<stdio.h>chara[l0],*b=a;不能给a数组输入字符串的语句是______。
A.gets(A)B.gets(a[0]);C.gets(&a[0]);D.gets(b);
53.以下叙述中正确的是
A.用C程序实现的算法必须要有输入和输出操作
B.用C程序实现的算法可以没有输出但必须要有输入
C.用C程序实现的算法可以没有输入但必须要有输出
D.用C程序实现的算法可以既没有输入也没有输出
54.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}该程序的输出结果是______。
A.12B.13C.14D.15
55.有如下程序#include<stdio.h>main(){FILE*fpl;fpl=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为
A.goodabcB.abcdC.abcD.abcgood
56.有以下定义和语句:structstudents{intnum;charname[20];charc;struct{intgrade1;intgrade2;}s;};structstudentsw,*pw;*pw=w;下列赋值语句不正确的是()。
A.w.num=1002;B.w.grade1=85;C.pw->num=1002;D.w.s.grade2=85;
57.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A.函数调用可以作为独立的语句存在
B.函数调用可以作为一个函数的实参
C.函数调用可以出现在表达式中
D.函数调用可以作为一个函数的形参
58.设变量已正确定义,则下列能正确计算f=n!的程序段是()。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++)f*=i;
C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
59.有以下程序:main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序运行后的输出结果是(选项D中的第一行是空行)()。
A.n/NoYes/NoB./NoYesC./NoYes/NoD./NoYes
60.下列程序的输出结果是()。
#include<stdio.h>
#defineF(x)2.84+x
#definew(y)printf("%d",(int(y))
#defineP(y)w(y)pmchar('\n'》
main()
{intx=2;
P(F(5)*x);
}
A.12B.13C.14D.16
四、选择题(20题)61.下列关于数据流图的描述正确的是()。
A.数据流图是描述数据处理过程的工具
B.数据流图间接支持系统的功能建模
C.数据流图中带箭头的线段表示控制流
D.数据流图是软件详细设计的工具
62.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。
A.函数的形参和实参分别占用不同的存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的实参和其对应的形参共占同一存储单元
63.设有以下语句执行后,c的值为()。
A.9B.7C.8D.6
64.
以下程序的输出结果是()。
main
{inta=3:
printf("%d\n",(a+a-=a*a));
}
A.-6B.12C.0D.-12
65.
66.若有以下定义:intt[3][2];,能正确表示t数组元素地址的表达式是______。
A.&t[3][2]B.t[3]C.t[1]D.*t[2]
67.下列函数的功能是()。
A.将a所指字符串赋给b所指空间
B.使指针b指向a所指字符串
C.将a所指字符串和b所指字符串进行比较
D.检查a和b所指字符串中是否有‘、O’
68.下列条件语句中,输出结果与其他语句不同的是()
69.
70.
有以下程序:
main
{intx=0,y=5,z=3;
while(z-->0&&++x<5)y=y-l;
printf("%d,%d,%d\n",x,y,z);
}
程序执行后的输出结果是()。
A.3,2,0B.3。2.1C.4,3,-1D.5,2.-5
71.下列说法正确的是()。
A.在C语言中,可以使用动态内存分配技术定义元素个数可变的数组
B.在c语言中,数组元素的个数可以不确定,允许随机变动
C.在C语言中,数组元素的数据类型可以不一致
D.在C语言中,定义一个数组后.就确定了它所容纳的元素的个数
72.下列程序段的输出结果是()。
A.passwarnB.passerrorC.goodpasswarnD.pass
73.
74.有如下说明
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
75.有三个关系R、S和T如下:
由关系R和S通过运算得到关系T,则所使用的运算为()。
A.笛卡尔积B.交C.并D.自然连接
76.下列数据结构中,能用二分法进行查找的是()。
A.顺序存储的有序线性表B.结性链表C.二叉链表D.有序线性链表
77.
78.
79.有以下函数:
以下关于aaa函数功能叙述正确的是()。
A.将串s复制到串tB.比较两个串的大小C.求字符串s的长度D.求字符串s所占字节数
80.若变量c为char类型,能正确判断出c为小写字母的表达式是_______。A.′a′<=c<=′z′
B.(c>=′a′)||(c<=′z′)
C.(′a′=C)
D.(c>=′a′)&&(c<=′z′)
五、程序改错题(1题)81.下列给定程序中函数fun的功能是:从整数10到55之间,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定函数中al放个位数,a2放十位数。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!
六、程序设计题(1题)82.假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则应当是a*bc*def*g****。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.B栈是线性表的一种,其插入和删除运算都只在表的一端进行。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元素是最后被插入的元素,不是最后被删除的元素,是按先进后出的原则组织数据的。
2.C
3.A
4.A
\nC语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。int就是表达整型变量类型的标识符,它不能用做变量名和函数名。
\n
5.C解析:关于二维数组的初始化,我们需要掌握如下方法:①所赋初值个数与数组元素的个数相同;②所赋初值行数少于数组行数时,系统将自动给后面各行的元素补初值0;③在给二维数组赋初值时可以不用行花括号对。选项C)应该是inta[3][2]={{1,2},{3,4},{5,6,}};
6.D解析:线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此,不需要另外开辟空间来保存元素之间的关系。
7.C
8.D
9.D程序定义数组a,使用6个元素对其初始化,接着以写二进制方式打开文件d.dat。调用fwrite函数将a的6个元素逆序(654321)写入文件,接着调用rewind函数,将文件指针移动到文件开始位置。调用fread函数读入3个整数,逐个存放到a开始下标为3的3个位置,即a[3]=6,a[4]=5,a[5]=4,关闭文件。再次调用for循环输出a,结果为:1,2,3,6,5,4,。本题答案为D选项。
10.A答案A
解析:一个C程序可以有一个或多个程序文件,也可以有一个或多个函数,所以一个C语言程序可以实现多种算法。
11.A\n本题在函数intfun(intn)的定义中又出现了对函数fun的调用,所以函数fun是递归函数。因而在主函数中调用x=fun(x)时,当输入10赋给变量X时,递归调用的过程为
\nfun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)
\n=10+9++8+7+fun(6)=10+9++8+7+6+fun(6)
\n=10+9++8+7+6+5+fun(4)
\n=10+9++8+7+6+5+4+fun(3)
\n=10+9++8+7+6+5+4+3+fun(2)
\n=10+9++8+7+6+5+4+3+2+fun(1)
\n=10+9++8+7+6+5+4+3+2=55
\n
12.B
13.B解析:函数getchar()的作用是从终端(或系统隐含指定的输入设备)输入一个字符,且只能接受—个字符(回车符也算是—个字符),所以getchar()不能用宋读入字符串。scanf()函数要求按—定的格式来输入,若同时输入多个字符串,则以空格或回车分割,所以空格不能被识别为—个字符,也就无法读入空格字符。函数gets()的作用是从终端输入—个字符串\u3000(包括空格)至字符数组,直到遇到换行符为止,所以可以用来键盘读入空格字符。
14.C
15.B该函数用于数据类型和变量。注意:sizeof操作符不能用于函数、不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、void类型等。
16.C
17.A
18.C解析:解答本题,首先要明白在对指针进行加、减运算的时候,数字“1”不是十进制的数“1”,而是指'1'个存储单元长度,而1个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是int型,移动1个存储单元的长度就是位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个字节。所以p+13所指向的数组元素的地址:300H+(13*上标)4)H=352H。
19.C本题考查C语言中的数据输出格式。
题目中定义了两个整型变量m、n,对这两个变量赋值,输入的数值为十六进制整数,并且有m=n。进行m-n运算后,将减法所得到的值赋给m,并将m值输出。其中printf的格式字符选用的格式字符为x,即以十六进制形式输出整数。注意,0x是表示该数为十六进制的标志,输出数据时,数据前面不会自动加上进制的标志。
20.B解析:本题考查ifelse语句。C语言规定,else总是与它前面的最近的if配对。
21.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。
22.33解析:本题考查的是C语言逗号表达式的相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔各表达式的值,整个逗号表达式的值等于其中最后一个表达式的值。本题中,首先i被赋值为2,再自加1,最后i++的值计算为3。
23.4.0或44.0或4
24.xx解析:函数的定义形式为;
函数类型函数名(形参表)
{
类型说明语句;
执行语句;
}
本题中函数的功能是:累积变量以求得变量的Y次方。
25.k=p;k=p;解析:为寻找数组中最大元素的下标,需先预设1个临时最大元素的下标,并顺序逐一考查数组的元素,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标。直至考查了数组的全部元素后,这临时最大元素下标就是数组的最大元素下标。通常预设的最大元素下标是数组的首元素下标,考查通常从首元素开始顺序向后继元素考查。程序中,存储临时最大元素下标的变量是k,变量p控制顺序考查的循环控制变量。当发现当前元素s[p]比临时最大元素s[k]更大时,应该用p更新k,所以在空框处应填入代码'k=p;'。
26.投影专门关系运算包括对单个关系进行垂直分解(投影操作)或水平分解(选择操作)和对多个关系的结合(连接操作)等。
27.1011121210111212解析:需要注意的是,函数fun()中的变量c为静态局部变量,在静态存储区内分配了存储单元,在程序整个运行期间不会释放,所以调用函数时,只赋初值一次,以后再调用函数时,c中的值为上次调用函数时的值。执行for循环,当i=0时,fun(5)=5+1+4=10,此时c=4;当i=1时,fun(5)=5+1+5=11,此时c=5;当i=2时,fun(5)=5+1+6=12;此时c=6:当i=3时,退出for循环,并输出回车换行符。
28.输出结果输出结果解析:注意:测试的基本方法和步骤。
29.可重用性可重用性解析:继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。
30.max=12min=2
31.11解析:本题考查局部变量和全局变量的区别:局部变量是指作用域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。本程序首先定义了一个全局变量m=17,m=17的作用域在整个程序内。在fun函数内部定义了一个局部变量m=3,m=3的作用域仅在fun函数内部,通过fun函数返回两个形参的积再减m。在主函数中,输出fun(a,b)/m=(5*7-3)/17=1。
32.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
33.物理独立性物理独立性
34.44解析:本题考查宏定义。预编译时,首先将M的宏定义带入K,得到N+1+1*N+1/2;再将N的宏定义带人,得到2+1+1*2+1/2=3+2+0=5,所以循环4次。
35.rewind函数rewind函数解析:rewind函数的功能是使文件的位置指针回到文件的开头。
36.aa解析:本题考查的是文件的打开方式。要向文本文件的末尾续写内容,需要使用方式“a”(追加)打开文件。
37.实体联系图或E-R图实体联系图或E-R图解析:实体联系图(B-R图)是实体联系模型中的核心。由于E-R图描述的是数据流图中数据存储及其之间的关系,因此它是数据库观念设计的最常用的工具。
38.6363解析:满二叉树的第k层上有2k-1个结点,度为k的满二叉树一共有2k-1个结点,由二叉树的性质可知:除去第k层上的结点,其他所有结点都是度为2的结点,所以度为2的结点数为2k-1-2k-1,即27-1-27-1=63。
39.-1或-1.0或-1*sn-1或-1.0或-1\r\n*sn
40.intz;sub(t1t2);
41.A解析:本题考查if语句的嵌套,第一个嵌套语句,else看上去似乎和第一个if配对,实际上是和第二个if配对:第二个嵌套语句中的两个条件表达式应该注意,第一个条件表达式是将y>0的逻辑值赋给变量z,第二个条件表达式是将0赋给变量y,不是逻辑等于运算符“==”。
42.B本题主要考查C语言合法语句的定义。
在选项A中,a==1不是一个合法的语句,因为它没有语句结束标识符“;”,不能说是一条语句,如果作为一个表达式,它是正确的。
在选项B中,由于变量i已被正确定义并有初值,“++i;”是正确的语句。
在选项C中,由于正确的赋值语句中,赋值符号的左边不能为常量或表达式,而右边不能为变量或表达式,很明显,“a=a++=5;”违背了赋值语句的原则。
在选项D中,“a=int(i);”语句是不正确的,在C语言中没有这种表示形式,如果是想将变量i强制转换为整型的操作,应该为“a=(int)i;”。
43.B解析:选项A的结尾没用‘;’,所以不是一条语句:选项C中的表达式不会改变任何变量的内容,也不是合法的赋值语句;选项D有语法错误,int应该加上括号。所以,4个选项中只有选项B符合题意,运行后d的内容被减一。
44.C解析:单引号中,大写或小写字母(只限一个)代表不同的字符常量,不能用双引号:单引号中,一个反斜线后跟一个指定的字符,表示一个特定的ASCⅡ字符,且反斜线后的八进制数可不用。开头,其后的十六进制数只能以小写的x开头。
45.D
46.D解析:do…while的结构形式为:do循环体,while(条件表达式),当程序执行到do后,先执行循环体一次,然后才对条件表达式进行计算、判断。若条件表达式的值为真,则重复执行一次循环体;否则退出,与while结构相比,do…while结构至少要执行一次循环体;运算符%是求模运算,即求两个数相除的余数。continue语句的作用时结束本次循环,即跳过本次循环中余下尚未执行的语句,接着再一次进行循环的条件判定。本题中,当i=2时,执行do循环。由于if表达式的条件为真,执行continue语句,结束本次循环,判断while循环条件为假,故退出while循环,执行n++,此时n的值为1,当i=3时,执行do循环。由于if(3%3)为假,执行下面的n++语句,此时n的值为2,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++语句,此时n的值为3;当i=4时,执行do循环。由于if(4%3)为真,执行continue语句,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++,此时n的值为4;当i=5时,退出for循环,因此最后输出的n的值为4。
47.B
48.B解析:在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志“\\0”,故指向字符数组的指针p的*(p+4)的值为“\\0”。由于“\\0”的编码值就是0,所以本题输出为0。
49.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。
50.D解析:返回指针值的函数,其—般定义形式为:类型标识符*函数名(参数表);例如:int*f(x,y);其中,f是函数名,调用它以后能得到—个指向整型数据的指针(地址),x,y是函数f的形参。在f的两侧为别为*运算符和()运算符,而()优先级高于*,因此f先与()结合,显然是函数形式。这个函数前面有一个*,表示此函数是指针型函数(函数值是指针)。前面的int表示返回的指针指向整型变量。
51.C解析:1.getchar():此函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符。
2.putchar():此函数的作用是向终端输出一个字符,也可以输出控制字符。
本题在输入字符时,ab和c后面的回车符分别赋给了c[2]和c[4],所以,正确答案为C。
52.B解析:a[0]是数组元素,不是数组名。
53.C算法具有的5个特性是:有穷性、确定性、可行性、有0个或多个输入、有一个或多个输出。所以说,用C程序实现的算法可以没有输入,但必须要有输出。因此本题答案选C。
54.D解析:调用函数func(x,y),返回x+y,即7;再调用函数func(7,z),返回7+z,即15。
55.C解析:主函数中定义了一个文件指针fp1,然后通过fopen()函数,以写的方式打开文件“fl.txt”,并让指针fp1指向它,接着调用fpfintf()函数将“abc”写到文件fp1所指的文件里,由于开始fp1指向文件的“fl.txt”的开始位置,因此“abc”将把文件“fl.txt”里原来的内容“good”覆盖掉,故文件“fl.txt”里最后的内容为“abc”。
56.B
57.D解析:本题考查函数的调用。在有参函数调用中,是将主调函数的实参值传给被调函数的形参。按函数在程序中出现的位置来分,有以下三种函数调用形式:
①函数调用作为一条语句。例如:fun();这时不要求函数带回值,只要求函数完成一定的操作。故选项A)正确。
②函数出现在表达式中,这种表达式称为函数表达式。这时要求函数带回一个确定的值以参加表达式的运算。例如:c=5*max(a,b);函数max是表达式的一部分,将其值乘以5后赋给c。故选项C)正确。
③函数调用作为一个函数的实参,例如:m=max(a,max(b,c));其中max(b,c)是一次函数调用,它的值作为max另一次调用的实参。故选项B)正确。
函数调用不可作为一个函数的形参,因为函数调用参数的数据传递是单向传递,即实参传给形参,不能由形参传给实参。故选项D)错误。
58.D解析:要正确计算函数f=n!,由n!的数学定义可知n!=n*(n-1)*(n-2)*……*1。在选项A)中,由于f的初值为0,在for循环语句中,f依次乘以1,2,3,……,n。最后计算f=n!=O,所以选项A)不正确。在选项B)中,f的初值为1,在for循环语句中,f依次乘以1,2,3,……,(n-1)。最后计算得到f=(n-1)!,所以选项B)不正确。在选项C)中,f的初值为1,在for循环语句中,f依次乘以n,n+1,n+2,……,所以选项C)不正确。在选项D)中,f的初值为1,在for循环语句中,f依次乘以n,n-1,n-2,……,2。最后计算f=n!,所以选项D)正确。
59.B解析:主函数中定义了一个字符数组s并赋初值,一个字符串指针变量ps并让它指向s。程序中p+4的地址为数组第5个元素的地址,而调用put(stradr)函数时,将从stradr这一地址开始,依次输出存储单元中的字符,遇到第一个“\\0”时结束输出,并自动输出一个换行符ad。r所以put(p+4)将输出n/No,put(s)将从s第一个元素开始输出到第3个元素结束(因为执行*(p+4)=0语句后s中的第5个元素的值为0,而s中的第4个元素为“\\”,puts将遇到“\\0”,结束输出),即输出yes。所以,4个选项中选项B符合题意。
60.A解析:本题考查带参数的宏的定义及相关运算。P(F(5)*x)=P(2.84+5*2)=P(12.84),调用w(12.84),输出(int)(12.84)=12。
61.A\n数据流图是结构化方法的需求分析工具,是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。数据流图中带箭头的线段表示数据流。
\n
62.A本题重点考察的是函数的形参和实参。I在定义函数时函数名后面括弧中的变量名称为“形式参数”l(简称形参),在主调函数中调用一个函数时,函数名后面括弧1中的参数(可以是—个表达式)称为“实际参数”(简称实参)。fC语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。因此A选项正确。
63.Ab为2,二进制为00000010,执行左移两位操作后为00001000,然后与a00000001做异或操作,结果为00001001,即十进制的9,因此A)选项正确。
64.D
\n本题可以写成:a+a+(a-(a*a)),所以*的优先级最高,其次是-=的,+的优先级最低,因此先求a-=a*a=9,表达式变为a+a+-=9,a即a=a-9=-6,再次变为a+(-6)=-12,故选择D选项。
\n
65.C
66.C解析:选项A和B两个表达式都越界了;选项D中,*t[2]是目标变量,即—个整型值,而不是地址值。
67.AWhile循环条件为:(_h=}a)f-‘、0’,执行时先把指针a所指向的字符赋给指针b所在内存单元,如果该字符不是结束标识‘\0’,执行循环体a++;b++;,指针a.b分别指向下一个字符单元。再判断循环条件,如果成立,继续把指针a所指向的字符赋给指针b所在内存单元,直到遇到结束标识为止。因此A选项正确。
68.A若a为0,A)选项输出x,其他输出y,所以选择A)。
69.D
70.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年老旧厂房改造与使用权转让合同3篇
- 2025年度煤炭运输应急响应与救援合同4篇
- 二零二五年度餐饮企业品牌形象设计及装修施工合同2篇
- 2025版智能家居铝合金门窗定制服务协议4篇
- 2025年度项目经理安全施工与绿色环保一体化合同3篇
- 2025版人工智能技术远期许可合同4篇
- 2025年度餐饮行业供应链金融服务合同协议3篇
- 2025年度旅游与文化创意产业融合发展合同范本4篇
- 2025年度罗丝与韩强的离婚财产分割及子女监护权协议4篇
- 二零二五版钢材品牌授权与分销合作协议3篇
- 第1课+中华文明的起源与早期国家+课件+-2023-2024学年高中历史统编版2019必修中外历史纲要上册+
- 大厦物业管理保洁服务标准5篇
- 神经内科国家临床重点专科建设项目评分标准(试行)
- 业主委员会成员推荐表
- 城市设计与城市更新培训
- 2023年贵州省铜仁市中考数学真题试题含解析
- 世界卫生组织生存质量测量表(WHOQOL-BREF)
- 《叶圣陶先生二三事》第1第2课时示范公开课教学PPT课件【统编人教版七年级语文下册】
- 某送电线路安全健康环境与文明施工监理细则
- GB/T 28885-2012燃气服务导则
- PEP-3心理教育量表-评估报告
评论
0/150
提交评论