




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年浙江省温州市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.第
24
题
下面程序段的运行结果是
char*p="abcdefgh";
p+=3;
printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
2.以下程序的运行结果是______。#include<stdio.h>main(){inta[]:{1,2,3,4,5,6,7,8,9,10,11,12):int*p=a+5,*q=NULL:*q=*(p+5):printf("%d%d\n",*p,*q);}
A.运行后报错B.66C.612D.55
3.
有以下程序:
main
{intx,i;
for(i=l;i<=50;i++)
{x=i:
if(x%2=0)
if(x%3=0)
if(X%7=0)
printf(”%d,i)”;
}
}
输出结果是()。
A.28B.27C.42D.4l
4.指针可以用来表示数组元素,若已知语句:inta[3][7];则下列表示中正确的是()。
A.*(a+1)[5]B.*(*a+3)C.*(*(a+1))D.*(&a[0][0]+2)
5.第
17
题
若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
6.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);printf("\n");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是______。
A.i-1B.iC.i+1D.4-i
7.以下只有在使用时才为该类型变量分配内存的存储类型说明是()。
A.auto和static
B.auto和register
C.register和static
D.extern和register
8.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),
A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定
9.下列程序段的时间复杂度为()。A.O(n)B.O(log2n)C.O(n3)D.O(n2)
10.设某文件内排序后得到100个初始归并段(初始顺串),若使用多路归并排序算法,且要求三趟归并完成排序,问归并路数最少为()
A.5B.6C.7D.8
11.有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}执行后输出的结果是A.11122B.12C.12020D.120
12.有以下程序:
#include<stdio.h>
main()
{ints=0.n;
for(n=0;n<3;n++)
{switch(s)
{case0;
case1:s+=1;
case2:s+=2;break;
case3:S+=3;
default:s+=4;
}
printf("%d,"s);
}
}
程序运行后的输出结果是()。
A.1,2,4,
B.1,3,6,
C.3,10,14,
D.3,6,10,
13.设单链表中结点的结构为非空的循环单链表first的尾结点(由p所指向)满足:______A.p->link==NULL;B.p==NULL;C.p->link==first;D.p==first;
14.依次读入数据元素序列{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}
15.以下能正确定义一维数组的选项是A.intnum[];
B.#defineN100intnum[N];
C.intnum[0..100];
D.intN=100;intnum[N];
16.
17.下面结构中最适于表示稀疏无向图的是()。
A.邻接矩阵B.逆邻接表C.邻接多重表D.十字链表
18.有以下程序:#include<stdio.h>main(){inty=10;while(y--);printf(“y=%d\n”,y);}程序运行后的输出结果是()。
A.y=0B.y=-1C.y=1D.while构成无限循环
19.若有如下定义,则__________是对数组元素的正确的引用。.
inta[10],*p;p=a;
A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p
20.若有定义语句:“intkl一10,k2=20;”,执行表达式(kl=kl>k2)(k2=k2>k1)后,kl和k2的值分别为()。
A.0和1B.0和20C.10和1D.10和20
二、2.填空题(20题)21.以下程序中,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;j<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(j=0;j<n;j++)if(())x=ar[i][j];br[i]=x;}}
22.黑盒测试是从【】观点的测试。
23.按照逻辑结构分类,数据结构可分为线性结构和非线性结构,二叉树属于______。
24.数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。
25.下列程序的运行结果是______。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d,%d\n",a,b);
}
26.以下程序调用函数swap_p将指针s和t所指单元(a和b)中的内容交换,请填空。
main()
{inta=10,b=20,*s,*t;
s=&a;t=&b;
swap_p(【】);
printf("%d%d,a,b");}
swap_p(int**ss,int**tt)
{intterm;
term=**ss;
**ss=**tt;
**tt=term;}
27.语句:x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【】。
28.在程序设计阶段应该采取______和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成程序。
29.顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。
30.数据结构分为线性结构和非线性结构,带链的队列属于[]。
31.在数据库理论中,数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型、改变数据间联系等,不需要相应修改应用程序,称为______。
32.关系代数是关系操作语言的一种传统表示方式,它以集合代数为基础,它的运算对象和运算结果均为()。
33.数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于【】。
34.以下程序运行后的输出结果是______。
main()
{
chara[]="123456789",*p;
inti=0;
p=a;
while(*p)
{
if(i%2==0)
*p='*';
p++;i++;
}
puts(a);
}
35.以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:
abcl23edf456gh,执行程序后输出:123456。请填空。
#include<stdio.h>
#include<ctype,h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;}
d[j]='\0';
puts(d);
}
36.程序测试分为静态测试和动态测试。其中()是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
37.下列程序段的输出结果是______。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':printf("good");break;
case'c':printf("morning");
case'd':printf("class");
}
38.设有下列宏定义:#defineA2
#defineBA+3
则执行赋值语句:t=b*2;t为血型变量后的值是______。
39.函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+...+1(n*n)
现在请你在下面的函数中填空,完成求π的功能。
#include"math.h"
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*S));
}
40.下列程序的输出结果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
三、1.选择题(20题)41.有以下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是
A.5B.6C.8D.9
42.下列程序的输出结果是()。point(char*pt);main(){charb[4]{'a','c','s','f'},*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}
A.sB.cC.fD.a
43.数据库设计包括两个方面的设计内容,它们是()
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
44.下面程序的输出结果是______。main(){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4;printf("%d\n",p[3]);}
A.6B.7C.3D.5
45.若有定义和语句:char*sl="12345",*s2="1234";printf("%d\n",strlen(stren(sl,s2)));则输出结果()
A.4B.5C.9D.10
46.以下程序运行后,输出结果是______。#include<stdio.h>#definePT5.5#difineS(x)PT*x*xmain(){inta=1,b=2;printf("%4.1f/n",S(a+b));}
A.49.5B.9.5C.22D.45
47.在计算机中,算法是指()
A.加工方法B.解题方案的准确而完整的描述C.排序方法D.查询方法
48.若有说明语句"inta;floatb;”,以下输入语句正确的是()
A.scanf("%f%f",&a,&b);
B.scanf("%f%d",&a;&b);
C.scanf("%d,%f",&a,&b);
D.scanf("%6.2f%6.2f",&a,&b);
49.下面不属于软件设计原则的是()。
A.抽象B.模块化C.自底向上D.信息隐蔽
50.若进栈序列为1、2、3、4、5,并且在它们进栈的过程中可以进行出栈操作,那么不可能是出栈序列的是______。
A.1,3,2,5,4B.1,2,5,4,3C.4,3,2,1,5D.3,5,1,4,2
51.已有定义:intx=3,y=4,z=5,则表达式!(x+y)+z-1&&y+x/2的值是
A.6B.0C.2D.1
52.若变量已正确说明为int类型,要通过语句scanf("%d%d%d",&a,&b,&c);给a赋值3,b赋值5,c赋值8,下面不正确的输入形式是()。
A.3<回车>5<回车>8<回车>B.3,5,8<回车>C.3<回车>58<回车>D.35<回车>8<回车>
53.执行下面的程序后,a的值为main(){inta,b;for(a=1,b=1;a<=10;a++){if(b%3==1){b+=3;continue;}b-=5;}}
A.7B.8C.9D.10
54.已经定义ch为字符型变量,以下赋值语句中错误的是______。
A.ch='\';B.ch=62+3;C.ch=NULL;D.ch='\xaa';
55.下述关于C语言文件的操作的结论中,正确的是______。
A.对文件操作必须先关闭文件
B.对文件操作必须先打开文件
C.对文件操作顺序无要求
D.对文件操作前必须先测文件是否存在,然后再打开文件
56.有以下程序
#include<stdio.h>
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是
A.1267B.1256C.1278D.1245
57.有以下程序:main(){intk=4,n=0;for(;n<k;){n++;if(n%!=0)continue;k--;}printf("%d\n",k,n);}程序运行后的输出结果是()。
A.1,1B.2,2C.3,3D.4,4
58.有以下程序
#include<stdio.h>
#include<string.h>
typedefstruct{charname[9];charsex;floatscore[2];}STU;
voidf(STUa)
{STUb={"Zhao",′m′,850,900};inti;
strcpy(,);
a.sex=b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
}
main()
{STUc={"Qian",′f′,95.0,92.0};
f(c);
printf("%s,%c,%2.0f,%2.0f\n",,c.sex,c.score[0],c.score[1]);
}
程序的运行结果是
A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90
59.判断字符串s1是否大于字符串s2,应该使用()。
A.if(strcmp(s1,s2)<0)
B.if(s1>s2)
C.if(strcmp(s2,s1)<0)
D.if(strcmp(s1,s2))
60.设intb=2;,则表达式(b<<2)/(b>>1)的值是______。
A.0B.2C.4D.8
四、选择题(20题)61.数据流图中带有箭头的线段表示的是()。
A.控制流B.事件驱动C.模块调用D.数据流
62.
63.
64.下列叙述中正确的是()。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D.上述三种说法都不对
65.设有charstr[10],下列语句正确的是
A.scanf("%s",&str);B.printf("%c",str);
C.printf("%s",str[0]);D.printf("%s",str);
66.下面不属于需求分析阶段任务的是()。
A.确定软件系统的功能需求B.确定软件系统的性能需求C.制定软件集成测试计划D.需求规格说明书评审
67.
设有下列程序段:
charstr[]="HelloWorld":
char*plr;
ptr=str:
执行上面的程序段后,*(ptr+10)的值为()。
A.\0B.0C.不确定的值D.0的地址
68.下列叙述中正确的是()。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D.以上说法都不正确
69.
70.下列关于栈的描述中错误的是()。
A.栈是先进先出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入删除操作中,不需要改变栈底指针
71.
72.若要求从键盘读人含有空格字符的字符串,应使用函数()。
A.getc()B.gets()C.getchar()D.scanf()
73.
74.数据库系统的核心是()。
A.数据模型B.数据库管理系统C.数据库D.数据库管理员
75.
76.
77.以下程序段中的变量已正确定义:
程序段的输出结果是()。
A.********B.****C.**D.*
78.第
15
题
非空的循环单链表head的尾结点(由p所指向),满足
A.p->next==NULLB.p==NULLC.p->next=headD.p=head
79.在软件开发中,需求分析阶段产生的主要文档是()。A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书
80.下列关于C语言文件的叙述中正确的是()。
A.文件由一系列数据依次排列组成,只能构成二进制文件
B.文件由结构序列组成,可以构成二进制文件或文本文件
C.文件由数据序列组成,可以构成二进制文件或文本文件
D.文件由字符序列组成,其类型只能是文本文件
五、程序改错题(1题)81.下列给定程序中函数proc()的功能是:将长整型数中为偶数的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。例如,当s中的数为12345678时,则t中的数为8642。
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.请编写函数fun(),其功能是:找出2M整型二维数组中最大元素的值,并将此值返回调用函数。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入编写的若干语句。试题程序:
参考答案
1.C在本题中,程序段首先定义了字符型指针变量p,并使其指向一个字符串,然后将指针变量p加3,即使其指向字符串的第四个元素。然后执行输出语句,通过输出语句的输出格式我们可以知道,最后输出的是一个十进制数的整型数值,其输出列表为strlen(strcpy(P,″ABCD″))。这就要求我们了解strlen函数和strcpy函数的作用。
strcpy的调用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串复制到目的地址中,这种复制将覆盖原来的字符串。strcat函数的功能是将源地址的字符串复制到目的地址字符串的后面。
strlen的调用格式是:strlen(字符串地址),其功能是返回字符串中字符的个数。
那么程序中执行strcpy(P,″ABCD″)后指针变量p所指向的字符串为“ABCD”,该字符串中字符的个数为4,那么执行strlen后,程序最终输出的结果是4。因此本题正确的答案是C。
2.A
3.C只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择C选项。
4.D
5.B解析:条件运算符要求有3个操作对象,称三目(元)运算符,它是C语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式17表达式2:表达式3其求解顺序是:先求解表达式1,若为非O(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。并且注意++、--的用法。
6.B
7.B在用静态static与外部extern定义变量时,系统立刻给其分配内存,而定义自动类auto与强制放入寄存器register类型变量时,只有当使用时才分配内存。
8.D解析:在C语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo\u3000C\u30002.0中,int占2个字节,但在VisualC++6.0(VC6可以用做C语言编译器)中占4个字节。故本题应该选择D。
9.A
10.A
11.A解析:当执行switch语句时,首先计算紧跟其后一对括号中的值,然后在语句体内寻找与该值吻合的case标号。若相等,则执行该标号后开始的各语句,包括在其后的所有case和default后的语句,直到switch语句体结束。
12.C\n本题考查switch…ease语句,在本题的程序中,只有在case2:s=s+2;break;,才有break语句,所以当s=0时会执行s=s+1;s=s+2;,所以s=3,当s=3时,会执行s=s十3;s=s+4;,所以s=10,依此类推,答案选择C。
\n
13.C
14.B
15.B解析:选项A定义数组时省略了长度,而C语言中规定,只有在定义并同时进行初始化时,数组的长度才可以省略,数组的长度为初始化时候的成员个数,故选项A错误;在C语言中规定,数组的长度必须是一个整数或整型常量表达式,故选项C不正确:定义时数组的长度不能使用变量表示,故选项D不正确,所以,4个选项中选项B符合题意。
16.A
17.C
18.B执行“y--”直到值为0。退出循环。由于“y--”是后缀自减运算,先使用再自减,因此退出循环时,y的值为-1。故本题答案为B选项。
19.D
20.B
21.x<ar[i][j]x<ar[i][j]解析:本题考查的是循环的嵌套。本题定义了二维数组a,存放3行4列的数组元素,定义了,一维数组b用于存放每行的最大数。存函数fun中,通过二重for循环求每行的最大数,外层for循环用于控制行数,内层for循环用于控制列数。当外层循环执行一次时,内层循环则执行4次,并求出了这一行的最大值x,最后将每一行求出最大值x赋值给存放最大值的数组br,故本题答案为x<ar[i][j]。
22.用户用户解析:黑盒测试又称为功能测试,黑盒测试是把程序看作一个黑盒子,完全不考虑程序内部的结构和处理过程。测试者只考虑该程序输入和输出的关系,或只考虑程序的功能。黑盒测试是一种从用户观点出发的测试。
23.非线性结构非线性结构解析:对于一个非空的数据结构,如果同时满足下列两个条件,即1)有且只有一个根结点;2)每一个结点最多有一个前件,也最多有一个后件;即为线性结构,而二叉树的结点可能存在两个后件,所以是非线性结构。
24.概念概念
25.282,8解析:do…while语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。这里程序初始时a=1,b=10,经过操作b-=a;a++后b=9,a=2,判断条件b--<O不成立,退出循环,但b的值被减1,因此结果为:a=2,b=8。
26.&s&t&s,&t解析:指针做函数参数时,形参和实参指向同一个数据,所以函数中对形参所指向的数据的改变也能影响到实参。本题中函数swap_p的形参为指向指针的指针,即双重指针,原理跟普通的指针是一样的。注意:通过指针来引用一个存储单元。
27.x+=1;
28.自顶向下自顶向下解析:在程序设计时,应先考虑总体,后考虑细节,逐步使问题具体化,对复杂的问题,应该设计一些子目标作为过渡,上述方法概括为:自顶向下,逐步细化。
29.相邻相邻
30.线性结构线性结构解析:与栈类似,队列也是线性表,也町以采用链式存储结构。
31.逻辑独立性逻辑独立性解析:数据库总体逻辑结构改变,而不需要相应修改应用程序叫做逻辑独立性。
32.关系关系
33.格式化模型格式化模型解析:层次模型与网状模型属于格式化模型。
34.*2*4*6*8**2*4*6*8*解析:程序中定义了一个字符数组a,并初始化为123456789,接着定义了一个指针p并让它指向数组a,紧接着执行了一个while循环,此循环的作用是:当i为偶数时,将“*”赋给a[i],p指向数组末尾,循环结束,此时数组中a[0]、a[2]、a[4]、a[6]和a[8]的值都为“*”,所以最后调用puts()函数输出的a的值为*2*4*6*8*
35.s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]解析:字符数组的初始化,字符串的输入和输出的应用。C语言没有字符串变量,字符串不是存放在一个变量中而是存放在一个字符型数组中,因此为了存放字符串,常常在程序中定义字符型数组;字符串存放在字符数组中,但字符数组与字符串可以不等长,C语言规定以“\\0”字符作为字符串结束标志。
本题中,chars[80],d[80];定义了两个字符型数组,可以放入80个字符。gets函数是c语言提供的一个专门用于读字符串的函数,它读入全部字符(包括空格),直到遇到回车为止。本题中,读入字符串s后,开始比较s中的每个字符是否为数字字符,因为字符数据在内存中以相应的ASCII码存放,所以只需比较相应的ASCII码值是否在48('0'的ASCII代码)与57('9'的ASCII代码)之间,或者直接与'0','9'进行比较,如果是数字字符则将此字符存入d数组中,不是则继续进行下一字符的比较,直至s结束(即'0'的出现)。将“'\\0'”字符作为字符串d结束标志,最后调用puts函数输出d。所以在空格处应填入比较语句s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或&&48<=s[i]或57>=s[i]。
36.静态测试静态测试
37.morningclassmorningclass解析:本题考查了两个知识点:①“++,--”运算后缀形式是先使用变量原来的值,使用完后再使其增1或减1;②在switch语句中,当n='c'时,执行“case'c'”,输出morning;因为此句中没有break语句,因此接着执行“case'd':”,输出class,最终输出结果为morningclass。
38.88解析:本题考查带参数的宏定义及相关运算。运算过程为:t=-B*2=A+3*2=2+3*2=8。
39.0/(i*i)或(double)1/(i*i)0/(i*i)或(double)1/(i*i)解析:表达式1+1/(2*2)+1/(3*3)+...+1(n*n)可写为1/(1*1)+1/(2*2)+1/(3*3)+...+1(n*n)
n
即:∑1÷(i×i)
i=1
对应的C语言的表达式s=s+1.0/(i*i)。注:必须要写成1.0的形式,否则1/(i,i)返回值为其值截尾取整,即恒为0。
40.5656解析:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。
41.D解析:C语言中规定:一个数组名代表它的起始地址.本题中,定义了一个长度为10的数组a并赋初值,数组名a就是数组的起始地址,由于数组下标是从。开始,因此a[0]地址也是a的值,a[1]的地址可以用a+1表示,也就是说a+1指向数组a中下标为1的元素,同样a+1是a[i]的地址,*p=&a[3]表明指针变量p指向元素a[3],即p指向数组a的第4个元素4,p[5]的值应为数组a中的第9个元素的值即a[8]的值,即p[5]=9,所以b=9。所以,4个选项中选项D符合题意。
42.C解析:本题考查函数调用时的参数传递。函数point的参数为字符指针,当执行函数point时,刚开始指针p指向“a”,经过+3操作后,指针p指向“f”,所以最后的输出结果是f。
43.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。
44.B解析:指针变量p指向数组a的第5个元素,p[3]在原指向基础上移3个单位,指针变量p将指向第8个元素(下标为7的元素),值为7。
45.A
46.B解析:C语言中宏替换只是字符替换,因此:S(a+b)=PT*a+b*a+b=5.5*1+2*1+2=9.5。
47.B在计算机中,算法被定义为对一个问题求解步骤的一种描述,是求解问题的方法,它是指令的有限序列,其中每条指令表示一个或者多个操作。算法具有有穷性、确定性、可行性、输入和输出五大特点。
在本题中,选项A、C、D的说法明显偏离了算法的定义,因此正确答案选B。
48.C解析:说明语句中变量a为整型,变量b为实型。选项A、B和D的格式控制中变量a的格式描述符为f,与定义的变量类型不符,故选项A、B和D错误。
49.C解析:软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念。①抽象是一种思维工具,就是把事物本质的共同特性抽出来而不考虑其他细节。②模块是指可以单独命名且可编址的元素。如高级语言中的过程、函数、子程序等。③信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。④模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。因此,本题的正确答案是C。
50.D
51.D解析:本题中,&&左边的表达式!(x+y)为!(3+7),结果为假,即为0。再加上z,然后减1,相当于0+5-1。左边等于4,&&右边的表达式y+z/2相当于4+5/2为6,所以整个表达式相当于4&&6为真,即为1。
52.B解析:本题中,“%d%d%d”表示按整数输入数据,输入数据时,在两个数据之间以一个或多个空格间隔,也可以用回车键或Tab键。选项B)中不应该使用逗号。
53.D
54.A解析:对字符变量赋值时,即可以赋一字符常量,也可以赋0~255的整数,该整数表示字符常量的ASCII值。本题中选项B是将65赋值给ch,表示字符A;选项C中NULL是C语言中的符号常量,其值为0;选项D是将一个转义字符赋值给ch,该字符的ASCII值为aa,其中aa是十六进制;选项A错误。
55.B解析:在C中对文件操作必须先打开文件,待文件操作完毕后要关闭文件。对文件以读的方式进行打开操作时,同时会执行文件的检查文件是否存在,不存在将会返回空的文件指针,如果对文件以写的方式打开时,文件不存在,将会自动创建文件,因此在C中打开文件前不必对其检查文件是否存在,故答案为B。
56.D解析:putchar(c1)输出1,putchar(c2)输出2,printf('%c%c\\n',c5,c6)输出45。
57.C解析:在本程序的for循环中,用到了一个continue语句,continue语句的作用是停止本次循环,即不执行循环体内continue语句后面的其他语句,继续下次循环的条件判断。首先在for循环中n自加1(值变为1),然后执行后面的if语句,由于if语句后面括号的表达式(1%3!=0)的值为真,程序执行continue语句,回到for循环的开始部分,并且判断for循环中的条件表达式(n<k)为真,重复执行“n++”;”语句,如此循环直到n=3时,if语句判定条件中表达式(3%3!=0)的值为假,程序执行if语句后面的“k--”语句,此时k的值为3,不满足“n<k”,退出for循环。故最后的k和n的值为3和3,选项C符合题意。
58.A解析:本题考查的是函数调用时的参数传递问题。程序在调用函数f时,传给函数f的参数只是结构变量c在栈中的一个拷贝,函数f的所有操作只是针对这个数据拷贝进行的修改,这些都不会影响变量c的值。
59.C解析:本题考查字符串比较函数strcmp()。调用形式:strcmp(s1,s2),其中s1、s2分别是字符串存储区的首地址。函数功能:比较字符串str1和str2,当str1<str2时,返回值为负数;当str1=str2时,返回0;当str1>str2,返回值为正数(注意:不能使用关系运算符比较两个字符串的大小)。
60.D
61.D解析:数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要的图形元素与说明如下:
加工(转换):输入数据经加工变换产生输出。
数据流:沿箭头方向传送数据的通道,一般在旁边标注数据流名。
存储文件(数据源):表示处理过程中存放各种数据的文件。
源,潭:表示系统和环境的接口,属系统之外的实体。
62.D
63.B
64.C栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。当有新元素进栈时,栈顶指针向上移动;当有元素出栈时,栈顶指针向下移动。在栈中栈底指针不变,栈中元素随栈顶指针的变化而动态变化。
65.D本题主要考查字符数组的引用。题目中定义了一个大小为10的字符数组str。下面分别分析每个选项。
在选项A中,从scanf('%s',&str);语句的输入列表&str可以知道此语句不正确,因为str是数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB31/ 574-2020铝箔单位产品能源消耗限额
- DB31/ 546-2011地理标志产品仓桥水晶梨
- 航海心理学与人际关系考核试卷
- 2024年残疾人用车及其零件项目投资申请报告代可行性研究报告
- 济南市钢城区2025年八年级《语文》上学期期末试题与参考答案
- 2025年中国背心袋制袋机行业市场规模及未来投资方向研究报告
- 葡萄酒品鉴会现场品鉴师服务合同
- 2025年中国保护套管行业市场前景预测及投资价值评估分析报告
- 教育平台课程版权侵权处理补充协议
- 生产线设备基础施工与智能机械安装及优化服务合同
- 2025届江苏省南师附中高考数学考前最后一卷预测卷含解析
- GB/T 44770-2024智能火电厂技术要求
- 【苏教版数学】小学四年级下册1-4单元教案+教材分析
- 3.2金属材料 课件高一上学期化学人教版(2019)必修第一册
- 糖尿病低血糖的预防处理
- 2024年肺结节诊治中国专家共识解读课件
- 绝经后子宫内膜增厚诊疗2024课件
- DB11T 3030-2022 客运索道运营使用管理和维护保养规范
- 科技创新-争当科创主力军
- 环卫工考勤管理制度范本
- 国开(陕西)2024年秋《社会调查》形考作业1-4答案
评论
0/150
提交评论