版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年四川省德阳市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.请选出以下程序的输出结果()#include<stdio.h>sub(x,y,z)intx,y,*z;{*2=y-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&B);sub(a,b,&C);printf("%d,%d,%d\n",a,b,C);}
A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7
2.若有定义:“inta,b;”,通过语句“scan[("%d;%d".,&a,&b);”,能把整数3赋给变量a,5赋给变量b的输入数据是()。
A.35B.3,5C.3;5D.35
3.
4.下列关于字符串的说法中错误的是
A.在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符'\0'作为字符串结束标志
B.'\0'作为标志占用存储空间,计入串的实际长度
C.在表示字符串常量的时候不需要人为在其末尾加入'\0'
D.在C语言中,字符串常量隐含处理成以'\0'结尾
5.如果某图的邻接矩阵是对角线元素均为零的上三角矩阵,则此图是_______
A.有向完全图B.连通图C.强连通图D.有向无环图
6.一个C语言程序总是从()开始执行。
A.书写顺序的第一函数B.书写顺序的第一条执行语句C.主函数main()D.不确定
7.下述关于C语言文件的操作的结论中,正确的是______。
A.对文件操作必须先关闭文件
B.对文件操作必须先打开文件
C.对文件操作顺序无要求
D.对文件操作前必须先测文件是否存在,然后再打开文件
8.二叉树的第三层最少有________个结点。
A.0B.1C.2D.3
9.下列描述中正确的是______。A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
10.
11.有以下程序:#include<stdio.h>main(){unsignedchara=8,C;C=a>>3:printf("%d\n",c);}程序运行后的输出结果是()。A.32B.16C.1D.0
12.二进制数1110111.11转换成十进制数是()。
A.119.375B.119.75C.119.125D.119.3
13.以下程序的主函数中调用了在其面前定义的fun函数#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}则以下选项中错误的fun函数首部是()。、A.doublefun(doublea[l5])
B.doublefun(double*a)
C.doublefun(doublea[])
D.doublefun(doublea)
14.若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum的值为()。
A.7B.8C.9D.10
15.若有"doublea;",则正确的输入语句是()。
A.scanf("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a)
D.scanf("%1e",&a);
16.以下程序的输出结果是()。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
17.程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系
18.下列不正确的转义字符是()。
A.'\\'B.'\t'C.'\n'D.'088'
19.下面关于图的存储的叙述中,哪一个是正确的。________
A.用相邻矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关
B.用相邻矩阵法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关
C.用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关
D.用邻接表法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关
20.对含有16个元素的有序表进行二分查找,关键字比较次数最多是()
A.3B.4C.5D.6
二、2.填空题(20题)21.以下程序的输出结果是()。
#include<stdio.h>
main()
fintx=0;
sub(&x,16,2);
printf("%d\n",x);
}
sub(int*a,intn,intk)
{if(k<=n)sub(a,n/2,2*k);
*a+=k;
}
22.以下程序输出的结果是【】。
main()
{inta=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
23.以下程序的输出结果是______。
main()
{inta=177;
printf("%o\n",a);
24.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统一管理与控制。
25.下面程序的运行结果是:【】。
typedefunionstudent
{charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{STUa[5];
Printf(“%d\n”,sizeof(a));
}
26.\13'在内存中占1个字节,"\12"在内存中占______个字节。
27.下列程序能将字符串s1中的所有与字符串str1相同的子串替换成字符串sb2,并将替换后的新串存于字符数组s2中。
#include<stdio.h>
voidreplace(s1,s2,str1,str2)
char*s1,*s2,*str1,*str2;
{char*t0,*t1,*t2,*x,*y;
x=s1;y=s2;
while(【】)
{
for(t0=s1,t1=str1;((*t1!='\O'&&【】;t0++,t1++);
if(*t1!='\0')*s2++=【】;
else
{for(t1=str2;*t1!='\0';)*s2++=【】;
【】;
}
}
*s2='\0';
}
main()
{staticchars1[]="abcdefababcdabab.",s2125];
replace(s1,s2,"abc","XYZ");
printf("%s\n",s2);
}
28.函数rewind的作用是
29.若变量a,b已定义为int类型并分别赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句行:【】。
30.下面程序
main()
{inti,j,m,n;
i=5;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
运行后,i,j,m,n的值分别是_______。
31.设有以下定义
stnctss
{intinfo;sEruc5ss*link;}x.y,z;
且已建立如下图所示链表结构:
请写出删除结点y的赋值语句______。
32.下列程序可以判断输入的年份是不是闰年。
#include
main()
{int【】,leap;
scanf("%d",&year);
if(year%4)
leap=0;
elseif(year%lO0)
【】;
elseif(year%400)
leap=0;
else
leap=1;
if(【】)
printf("%d年是闰年",year);
else
printf("%d年不是闰年\n",year);
}
33.以下程序运行后输出结果是______。
voidswap(intx,inty)
{
intt;
t=x;x=y;y=t;printf("%d%d",x,y");
}
main()
{
inta=3,b=4;
swap(a,b);printf("%d%d\n",a,b);
}
34.算法的复杂度主要包括时间复杂度和______复杂度。
35.以下程序的输出结果是【】。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}
36.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;
37.在面向对象方法中,类的实例称为______。
38.在一棵二叉树中,度为0的结点的个数为n0,度为2的结点的个数为n2,则有n0=【】。
39.若有定义:doubleW[10],则W数组元素下标的上限为【】,下限为【】。
40.下列语句的输出结果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
三、1.选择题(20题)41.若有以下结构体定义,则______是正确的引用或定义。structexample{intx;inty;}v1;
A.example.x=10
B.examplev2.x=10
C.example.x=10
D.structexamplev2={10};
42.软件生命周期中所花费用最多的阶段是()。
A.详细设计B.软件编码C.软件测试D.软件维护
43.以下错误的定义语句是A.intx[][3]={{0},{1},{1,2,3}};
B.intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D.intx[][3]={1,2,3,4};
44.在C语言中,函数返回值的类型最终取决于()。
A.函数定义时在函数首部所说明的函数类型
B.return语句中表达式值的类型
C.调用函数时主调函数所传递的实参类型
D.函数定义时形参的类型
45.栈和队列的共同点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同特点
46.若x=10010111,则表达式(3+(int)(x))&(~3)的运算结果是()。
A.10011000B.10001100C.10101000D.10110000
47.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是()。
A.一个整型变量,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针,是指向的输入数据放在内存中的起始位置
D.一个存储区,存放要读的数据项
48.以下叙述中正确的是______。A.调用printf函数时,必须要有输出项
B.使用putchar函数时,必须在之前包含头文件stdio.h
C.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
49.下列程序的输出结果是______。main(){inta=12,b=12;printf("%d%d\n",--a,++b);
A.1010B.1212C.1110D.1113
50.以下程序运行后的输出结果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
51.以下正确的程序段是
A.cgarstr[20];scanf("%s",&str);
B.char*p;scanf("%s",p);
C.charstr[20];scanf("%s",&str[2])
D.charstr[20],*p=str;scanf("%s",p[2]);
52.以下程序中,while循环的循环次数是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}
A.1B.10C.6D.死循环,不能确定次数
53.设有以下说明,则不正确的叙述是()。unionun{inta;chatb:floatc;}arr;
A.arr所占的内存长度等于成员c的长度
B.arr的地址和它的各成员的地址都是同一地址
C.arr可以作为函数参数
D.不能在定义art时对它初始化
54.以下程序的输出结果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}
A.19B.17C.15D.12
55.若执行下面的程序时,从键盘上输入5和2,则输出结果是main(){inta,b,k;scanf("%d,%d",&a,&b);k=a;if(a<b)k=a%b;elsek=b%a;printf("%d\n",k);}
A.5B.3C.2D.0
56.下面程序的输出结果是()。main(){inti=1,p;p=f(i,++i);printf("%d",p);}intf(inta,intb){intC;if(a>b)C=1;elseif(a==b)C=0;elseC==-1;return(C);}
A.-1B.0C.1D.2
57.有以下程序
#include<stdio.h>
main()
{inta[]={1,2,3,4},y,*p=&a[3];
--p;y=*p;printf("y=%d\n",y);
}
程序的运行结果是
A.y=0B.y=1C.y=2D.y=3
58.下列描述中,不是线性表顺序存储结构特征的是
A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需另外开辟空间来保存元素之间的关系
59.以下数组定义中错误的是()。
A.intx[][3]={0};
B.intx[2][3]={{1,2},{3,4},{5,6}};
C.intx[][3]={{1,2,3},{4,5,6}};
D.intx[2][3]=(1,2,3,4,5,6};
60.设有程序段:intk=12:while(k=1)k=k-1:则下列描述中正确的是()。
A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次
四、选择题(20题)61.若有定义:能把整数3赋给变量a,5赋给变量b的输入数据是()
A.3:5B.3,5C.35D.35
62.假定已建立以下链表结构,且指针p和q已指向如下图所示的结点:
则以下选项中,可将q所指结点从链表中删除并释放该结点的语句组是
A.(*p).next=(*q).next;free(p);B.p=q->next;free(q);
C.p=q;free(q);D.p->next=q->next;free(q);
63.若有定义语句:doublea,*p=&a;,以下叙述中错误的是()。
A.定义语句中的*号是一个间址运算符
B.定义语句中的*号只是一个说明符
C.定义语句中的P只能存放double类型变量的地址
D.定义语句中,*p=&n把变量a的地址作为初值赋给指针变量P
64.下列描述中正确的是()。
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
65.若intk=8;,则执行下列程序后,变量k的正确结果是
main()
{intk=8;
switch(k)
{case8:k+=1;
case10:k+=1;
case11:k+=1;break;
default:k+=1;
}
printf("%d\n",k);
}
A.12B.11
C.10D.9
66.有以下程序:
voidfun2(chara,charb){printf(”%c%c”,a,b);}
chara='A',b='B';
voidfunl(){a='C';b='D';}
main()
{funl();
printf("%c%c",a,b);
fun2('E','F');
}
程序的运行结果是()。A.A.CDEFB.ABEFC.ABCDD.CDAB
67.设有定义:“inta;floatb;”,执行“scanf("%2d%f",&a,&b);”语句时,若从键盘输入876543.0<回车>,a和b的值分别是()。A.A.876和543.000000B.87和6.000000
C.87和6543.000000
D.76和543.000000
68.
69.关系数据库管理系统能实现的专门关系运算包括()。
A.选择、投影、连接B.排序、查找、统计C.关联、更新、排序D.显示、打印、制表
70.
71.
在下列给出的表达式中,与while(E)中的(E)不等价的表达式是()。
A.(!E==0)B.(E>0C.D.E<0)E.(E==0)F.(E!=0)
72.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。
A.-369B.369C.0.369D.整数集合{1,2,3,4,5}
73.栈和队列的共同特点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点
74.“年龄在18~25之间”这种约束是属于数据库当中的()。A.A.原子性措施B.一致性措施C.完整性措施D.安全性措施
75.若有以下程序段:
程序运行后的输出结果是()。
A.16B.8C.4D.2
76.读取二进制文件的函数调用形式为:fread(buffersize,count,fp);,其中buffer代表的是()。
A.一个文件指针,指向待读取的文件
B.一个整型变量,代表待读取的数据的字节数
C.一个内存块的首地址,代表读人数据存放的地址
D.一个内存块的字节数
77.
78.有以下程序:main{union{charch[2];intd;}s;d=0x4321;printf("%x,%x\n",S.ch[0],S.ch[l]);}在16位编译系统上,程序执行后的输出结果是()A.21,43B.43,21C.43,00D.21,00
79.若有定义语句:intX=10;,则表达式x-=x+x的值为()。
A.0B.-20C.-10D.10
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。例如原始字符串是“ab45c6djfd789”,则输出后的字符是“456789”。请修改函数proc()中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写函数proc(),该函数的功能是:计算并输出
例如,若主函数从键盘给n输入10后,则输出为S=104.478749。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
参考答案
1.B
2.C\n在输入时必须遵守scanf函数中的格式才能正确地赋值给相应的变量,由于scanf函数为“%d;%d”,所以在输入时要输入3;5,答案为C。
\n
3.A
4.B解析:'\\0'作为标志占用存储空间,但是不计入串的实际长度。当给一个字符型指针赋值时,赋给这个指针的是这个字符串的地址。
5.D
6.C
7.B解析:在C中对文件操作必须先打开文件,待文件操作完毕后要关闭文件。对文件以读的方式进行打开操作时,同时会执行文件的检查文件是否存在,不存在将会返回空的文件指针,如果对文件以写的方式打开时,文件不存在,将会自动创建文件,因此在C中打开文件前不必对其检查文件是否存在,故答案为B。
8.B
9.C\r\n软件工程是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。软件工程的主要思想是强调在软件开发工程中需要应用工程化的原则。软件工程用来解决以下问题:软件需求的增长得不到满足、软件开发成本和进度无法控制、软件质量难以保证、软件不可维护或维护程度低、软件得成本不断提高、软件开发生产率的提高赶不上硬件的发展和应用需求的增长。软件项目的管理、软件产品的生产率、软件开发中的技术都是软件工程需要解决的部分问题。因此选项C正确。
10.D
11.C题中定义了无符号数,c=a>>3;是指右移3位,然后输出。结果为C。
12.B
13.A由题可知fun的参数为变量,而a[15]为常量,所以答案为A。
14.A
15.D解析:函数scanf()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符;“输入项地址表”是要输入的变量的地址。本题中定义变量a为双精度型变量,双精度变量的格式符为“1e”;变量的地址用取地址符“&”加变量名表示,如变量a的地址为“&a”。
16.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。
17.C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:→或↓表示控制流;□表示加工步骤;
表示逻辑条件。
18.D解析:'\\\\'是反斜线转义字符:'\\t'是水平跳格转义字符:'\\n'是换行转义字符;C语言中没有规定'088'为转义字符。
19.A
20.C
21.1414解析:本题考查递归函数的调用。在主函数中调用sub(&x,16,2)函数,此时n=16,k=2,if语句的控制的条件k<=n成立,所以执行下面的语句,调用sub(x,8,4),此时n=8,k=4,if语句的控制条件k<=n成立,所以执行下面的语句,调用sub(x,4,8),此时n=4,k=8,if语句控制的条件k<=n不成立,因此,最后得x=2+4+8=14。
22.00解析:本题的关键在于对变量c的赋值运算:
d=(a>b>c)
d=(5>4>3)
先算5>4,为真,得1,即:d=(1>3),此时1>3,为假,得0。
23.261261解析:在控制格式符中“O”代表的是将数据按八进制输出,十进制数的177代表的八进制数是261,所以该空格处应该填写261。
24.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统一管理与控制。
25.8080解析:数组a是共用体变量,共用体类型变量所占的内存长度为最大成员的长度,即单精度数组的长度,为4×4=16,因此,数组a所占的内存长度为5×16=80,所以最后输出的s的值为80。
26.22解析:'\\13':表示八进制数13表示的ASCII字符,是一个字符,占一个字节;而”\\12”是个字符串,除了八进制数12表示的ASCII字符占一个字节外,还有在字符串的末尾加上串结束标志“'\\0'”,所以共有2个字节。
27.*s1!='\0'或*s1*t0=*t1*s1++*t1++s1=t0或s1=s1+strlen(str1)*s1!='\\0'或*s1\r\n*t0=*t1\r\n*s1++\r\n*t1++\r\ns1=t0或s1=s1+strlen(str1)
28.A
29.printf("a=%db=%d"ab);printf('a=%d,b=%d',a,b);解析:根据printf函数的格式可知输出语句应该为:printf('a=%d,b=%d',a,b);
30.611610。6,11,6,10。解析:本题考查自加的前置和后置的区别。
31.x.link=&z;或x.link=y.link;或x.1ink=x.1ink->link;或x.1ink=*(x.link).link;x.link=&z;或x.link=y.link;或x.1ink=x.1ink->link;或x.1ink=*(x.link).link;解析:本题考核的知识点是链表中结点的删除。要删除结点y,只需要让结点x的指针域指向y结点的指针域所指向的后续结点就可,因此只需把结点2的地址赋给x的指针域就可以了即让结点x的指针域指向结点2。而结点z得地址保存在节点y的指针域中,因此只需把节点y的指针城赋值给节点x的指针域即可。
32.yearleap=1leap
33.43344334解析:本题考查的是函数的传值调用。在C语宫中函数是传值调用的,印在函数中修改形参变量的内容,不会影响传给函数的实参变量的内容。题目中首先让a=3,b=4,然后调用swap()函数,该函数首先交换两个参数的值,然后输出交换后的值,即输出4和3,然后在主函数中再次输出a和b的值,由于传值调用不会影响实参的值,所以最后输出的是3和4。
34.空间空间解析:算法的复杂度主要包括时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量。一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
35.99解析:本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符,将一个表达式转换成所需类型。如:(double)a是将a转换成double类型;(int)(x+y)是将x+y的值转换成整型。
本题可按部就班地逐步运算:
fun((int)fun(a+c,b),a-c)
fun((int)fun(10,5),2-8)
fun((int)15.000000,-6)
fun(15,-6)
9
36.malloc(11)malloc函数的格式是void*(或char*)malloc(size),size表示应分配的存储区,此题要分配11字节的单元,把11代入即可。
37.对象对象解析:类描述的是具有相似性质的一组对象。例如,每本具体的书是一个对象,而这些具体的书都有共同的性质,它们都属于更一般的概念“书”这一类对象。一个具体对象称为类的实例。
38.n2+1
39.90
40.aaaaAAAAAaaaaAAAAA解析:函数strcat(sp,'AAAAA')的作用是将字符中“AAAAA”连接到字符串sp的末尾,并自动覆盖字符数组sp末尾的\'\\0\'。
41.D解析:在定义结构体变量时,不能只用结构体名example或关键字struct进行定义,必需要用结构体类型名structexample定义,在引用结构体成员变量时,需要用结构体变量名进行引用,所以选D。
42.D解析:软件生命周期分为软件定义、软件开发及软件运行维护3个阶段。本题中,详细设计、软件编码和软件测试都属于软什开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段.软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。
43.C解析:本题考查的是二维数组的定义和初始化方法。C语言中,在定义并初始化二维数组时,可以省略数组第一维的长度,但是不能省略第二维的长度。故选项C)错误。
44.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。
45.C解析:栈和队列都是操作受限制的线性表,只允许在端点插入和删除。不同点是:栈只允许在表的一端进行插入和删除操作,而队列允许在表的一端进行插入操作,而在另一端进行删除操作。
46.A解析:本题主要考查运算表达式的运算。3+(int)(x)的结果是10011010,~3的结果是11111100,二者逻辑与得10011000。
47.C解析:数据块输入/输出函数的调用形式为:fread(buffer,size,count,fp)。fread函数参数说明:“buffer”是一个指引,对fread来说,它是读入数据的存放地址;“size”是要读写的字节数;“count”是要进行读写多少个size字节的数据项;“fp”是指文件型指针。
48.B解析:本题考查了C语言的一些基本概念.printf()函数可以只有控制项而没有输出项,例如:printf('Hello!');,所以选项A不正确。C语言中不支持整数以十二进制输出,因此选项C不正确。getchar()函数从键盘读入一个字符,而不管该字符为数字还是字母,因此输入ASCII码的话,只能读到第1个数字字符,所以选项D不正确。故应该选择B,putchar是C语宫中的库函数,使用时必须包含sMio.h。
49.D
50.C解析:静态局部变量在编译时赋初值,即只赋初值一次,在程序运行时它已有初值。以后每次调用时不再重新赋初值而只是保留上次函数调用结束时的值,而对自动变量赋初值,不是在编译时进行的,而在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。本题在程序开头定义了全局变量d并赋初值1,在被调函数fun()中,定义了静态局部变量d,初值为5。在第一次调用函数fun时,d初值为5,p由主函数传递过来的值为1,则d=d+p=5+1=6,由于d是静态局部变量,在函数调用结束后,它仍保留d=6。再次调用fun函数,d的初值为6,而由主函数传递的p的值为9,则此时d=d+p=6+9=15,最后打印输出d的值并返回主函数。
51.C解析:scanf输入字符串有一点要注意的是,格式控制串必须用%s。注意:gets函数和puts函数的作用。
52.D解析:break语句只能在循环体和switch语句体内使用,当break出现在switch语句体内时,其作用只是跳出该switch语句体。当break出现在循环体中,但不在switch语句体内时,则在执行break后,跳出本层循环体.而continue语句的作用是结束本次循环,即跳过本次循环中余下尚未执行的语句,接着再一次进行循环的条件判定。本程序中,变量i的初始值为0,判断while后面括号内表达式的值为真,执行循环体内的if语句,判断if后面括号内表达式的值为真,执行“continue;”语句.因continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判断,所以i的值未发生变化,循环条件仍然为真,if语句也仍然成立,因此循环将无止境地进行下去。所以,4个选项中D为所选。
53.C解析:本题主要考查联合体的内存使用:联合体所占用的内存空间为最长的成员所占用的空间,int占2个字节,char占1个字节,float占4个字节,所以arr所占的内存长度等于成员c的长度;arr的地址和它的各成员的地址都是同一地址;不能直接对arr赋值,即不能在定义arr时对它初始化;arr也不可以作为函数参数。
54.D解析:C语言的宏定义包括不带参数的宏定义与带参数的宏定义。本题为带参数的宏定义,其形式为:
#define宏名(形参表)字符串
本题的M(a+b,b+c,c+a)被字符串a+b*b+c+c+a代替。
55.C解析:本题考查简单的if...else语句。先执行条件if(a<b),显然不成立,则执行else语句。
56.B解析:执行“p=f(i,++i):”后i的值为2,所以a和b的值都为2,则c=0,选项B正确。
57.D解析:在程序中指针变量p初始指向a[3],执行p减1后,p指向a[2],语句y=*p的作用是把a[2]的值赋给变量y,所以输出为y=3。
58.D解析:线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此,不需要另外开辟空间来保存元素之间的关系。
59.B解析:选项B的第1维长度为2,而初始化列表外花括号中包含了3个内花括号,所以该选项的定义错误,故应该选择B。
60.C本题考查while,while循环表达式k-1是个赋值表达式而不是逻辑表达式,k的初值为l2不符合循环条件,所以循环体语句一次也不执行。
61.AsCanf中格式控制符里必须原样输入,所以分号也必须输入,A)正确。
62.D题目中有两个分别指向结点的指针p和q,其中p->next=q,q->next->data=C。要将q结点从链表中删除,只要将指针p所指结点的next域指向q指针所指结点的下一个结点,即令p->next=q->next,也可以表示为(*p).next=(*q).next。操作完成后,便将q指针所指结点从链表中删除,随后将该结点释放即可。
63.C\ndoublea,*p=&a语句的意思是将a的值存放到指针变量P中,P是指针可以随意指向任何地址,所以答案C错误。
\n
64.C\r\n软件工程是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。软件工程的主要思想是强调在软件开发工程中需要应用工程化的原则。软件工程用来解决以下问题:软件需求的增长得不到满足、软件开发成本和进度无法控制、软件质量难以保证、软件不可维护或维护程度低、软件得成本不断提高、软件开发生产率的提高赶不上硬件的发展和应用需求的增长。软件项目的管理、软件产品的生产率、软件开发中的技术都是软件工程需要解决的部分问题。因此选项C正确。
65.B在本题中,程序的作用是通过switch语句改变已经被赋初值的变量k的值。程序中首先将变量k赋初值为8,然后使用switch选择结构。由于k的值为8,在switch结构中找到与之对应的块case8执行,完成一次k加1的操作,此时变量k的值变为9,由于没有break语句,程序接着往下执行,执行case10程序块,再完成一次k加1的操作,此时k的值为10,又由于没有break语句,程序接着往下执行,执行case11,再完成一次k加1的操作,此时k的值为11,程序碰到break语句,跳出switch结构。然后执行输出语句,输出的结果为11。
66.A在函数funl之前定义了全局字符变量a和b。这两个变量的作用域是从其定义处开始到整个程序末结束。在函数funl之内定义了两个变量a和b,并且分别初始化为字符'C'和'D'。
67.B本题考查scanf函数,输入格式符%2d%f表示只接收了字符,其中a输入的值为2位的十进制整数,即87,然后将紧接着的6赋给b,因为b的值为单精度数在,即6.000000,故选择B选项。
68.C
69.A\n关系数据库管理系统能实现的专门关系运算,包括选择运算、投影运算、连接运算。本题答案为A)。
\n
70.D
71.B
\n在while(E)中,表达式E可以是C语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项8中表达式E>0||E<0是一个逻辑表达式。
\n
72.BB【解析】只有B选项369可以用无符号整数来表示和存储。A选项一369有负号,选项C0.369是小数都不能用无符号整数类存储。选项D是一个整数集合得用数组来存储。
73.C解析:考查栈和队列概念的掌握。栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种'后进先出'的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种'先进先出'的线性表。模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。
74.C关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。完整性通常包括域完整性,实体完整性、参照完整性和用户定义完整性,“年龄在18~25之间”属于用户定义完整性约束
75.C本题考查位运算,属于基础知识,题目中将整型变量8,二进制表达为00(301000,右移一位为00000100,即4,选项c正确。
76.Cfread函数中的参数buffer是内存块的首地址,输入的数据存入此内存块中。
77.A
78.As是一个公用体,d的值分别与ch中的两个元素的值相同,d的高位放在chFl]中、低位放在chl-0]中,因此输出的结果为21,43。
79.C算术运算符+的优先级高于-=.且-=的结合方向为自右向左,所以表达式x-=x+x可以表示成;=x-(x+x)=10-(10+10)=-10,选择C。
80.A
81.
82.
【解析】在本程序中,用S1来表示题中每个小括号内的值,第1项相当于有1个10.5。第2项相当于第1项的值加上20.5,第3项相当于第2项的值加上30.5,…,依此类推。函数pow(x,y)的功能是求出x的y次方,程序中用S来表示总和值,每循环一次加1次Sl的值,即加1项。
2021年四川省德阳市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.请选出以下程序的输出结果()#include<stdio.h>sub(x,y,z)intx,y,*z;{*2=y-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&B);sub(a,b,&C);printf("%d,%d,%d\n",a,b,C);}
A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7
2.若有定义:“inta,b;”,通过语句“scan[("%d;%d".,&a,&b);”,能把整数3赋给变量a,5赋给变量b的输入数据是()。
A.35B.3,5C.3;5D.35
3.
4.下列关于字符串的说法中错误的是
A.在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符'\0'作为字符串结束标志
B.'\0'作为标志占用存储空间,计入串的实际长度
C.在表示字符串常量的时候不需要人为在其末尾加入'\0'
D.在C语言中,字符串常量隐含处理成以'\0'结尾
5.如果某图的邻接矩阵是对角线元素均为零的上三角矩阵,则此图是_______
A.有向完全图B.连通图C.强连通图D.有向无环图
6.一个C语言程序总是从()开始执行。
A.书写顺序的第一函数B.书写顺序的第一条执行语句C.主函数main()D.不确定
7.下述关于C语言文件的操作的结论中,正确的是______。
A.对文件操作必须先关闭文件
B.对文件操作必须先打开文件
C.对文件操作顺序无要求
D.对文件操作前必须先测文件是否存在,然后再打开文件
8.二叉树的第三层最少有________个结点。
A.0B.1C.2D.3
9.下列描述中正确的是______。A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
10.
11.有以下程序:#include<stdio.h>main(){unsignedchara=8,C;C=a>>3:printf("%d\n",c);}程序运行后的输出结果是()。A.32B.16C.1D.0
12.二进制数1110111.11转换成十进制数是()。
A.119.375B.119.75C.119.125D.119.3
13.以下程序的主函数中调用了在其面前定义的fun函数#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}则以下选项中错误的fun函数首部是()。、A.doublefun(doublea[l5])
B.doublefun(double*a)
C.doublefun(doublea[])
D.doublefun(doublea)
14.若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum的值为()。
A.7B.8C.9D.10
15.若有"doublea;",则正确的输入语句是()。
A.scanf("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a)
D.scanf("%1e",&a);
16.以下程序的输出结果是()。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
17.程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系
18.下列不正确的转义字符是()。
A.'\\'B.'\t'C.'\n'D.'088'
19.下面关于图的存储的叙述中,哪一个是正确的。________
A.用相邻矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关
B.用相邻矩阵法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关
C.用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关
D.用邻接表法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关
20.对含有16个元素的有序表进行二分查找,关键字比较次数最多是()
A.3B.4C.5D.6
二、2.填空题(20题)21.以下程序的输出结果是()。
#include<stdio.h>
main()
fintx=0;
sub(&x,16,2);
printf("%d\n",x);
}
sub(int*a,intn,intk)
{if(k<=n)sub(a,n/2,2*k);
*a+=k;
}
22.以下程序输出的结果是【】。
main()
{inta=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
23.以下程序的输出结果是______。
main()
{inta=177;
printf("%o\n",a);
24.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统一管理与控制。
25.下面程序的运行结果是:【】。
typedefunionstudent
{charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{STUa[5];
Printf(“%d\n”,sizeof(a));
}
26.\13'在内存中占1个字节,"\12"在内存中占______个字节。
27.下列程序能将字符串s1中的所有与字符串str1相同的子串替换成字符串sb2,并将替换后的新串存于字符数组s2中。
#include<stdio.h>
voidreplace(s1,s2,str1,str2)
char*s1,*s2,*str1,*str2;
{char*t0,*t1,*t2,*x,*y;
x=s1;y=s2;
while(【】)
{
for(t0=s1,t1=str1;((*t1!='\O'&&【】;t0++,t1++);
if(*t1!='\0')*s2++=【】;
else
{for(t1=str2;*t1!='\0';)*s2++=【】;
【】;
}
}
*s2='\0';
}
main()
{staticchars1[]="abcdefababcdabab.",s2125];
replace(s1,s2,"abc","XYZ");
printf("%s\n",s2);
}
28.函数rewind的作用是
29.若变量a,b已定义为int类型并分别赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句行:【】。
30.下面程序
main()
{inti,j,m,n;
i=5;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
运行后,i,j,m,n的值分别是_______。
31.设有以下定义
stnctss
{intinfo;sEruc5ss*link;}x.y,z;
且已建立如下图所示链表结构:
请写出删除结点y的赋值语句______。
32.下列程序可以判断输入的年份是不是闰年。
#include
main()
{int【】,leap;
scanf("%d",&year);
if(year%4)
leap=0;
elseif(year%lO0)
【】;
elseif(year%400)
leap=0;
else
leap=1;
if(【】)
printf("%d年是闰年",year);
else
printf("%d年不是闰年\n",year);
}
33.以下程序运行后输出结果是______。
voidswap(intx,inty)
{
intt;
t=x;x=y;y=t;printf("%d%d",x,y");
}
main()
{
inta=3,b=4;
swap(a,b);printf("%d%d\n",a,b);
}
34.算法的复杂度主要包括时间复杂度和______复杂度。
35.以下程序的输出结果是【】。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}
36.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;
37.在面向对象方法中,类的实例称为______。
38.在一棵二叉树中,度为0的结点的个数为n0,度为2的结点的个数为n2,则有n0=【】。
39.若有定义:doubleW[10],则W数组元素下标的上限为【】,下限为【】。
40.下列语句的输出结果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
三、1.选择题(20题)41.若有以下结构体定义,则______是正确的引用或定义。structexample{intx;inty;}v1;
A.example.x=10
B.examplev2.x=10
C.example.x=10
D.structexamplev2={10};
42.软件生命周期中所花费用最多的阶段是()。
A.详细设计B.软件编码C.软件测试D.软件维护
43.以下错误的定义语句是A.intx[][3]={{0},{1},{1,2,3}};
B.intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D.intx[][3]={1,2,3,4};
44.在C语言中,函数返回值的类型最终取决于()。
A.函数定义时在函数首部所说明的函数类型
B.return语句中表达式值的类型
C.调用函数时主调函数所传递的实参类型
D.函数定义时形参的类型
45.栈和队列的共同点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同特点
46.若x=10010111,则表达式(3+(int)(x))&(~3)的运算结果是()。
A.10011000B.10001100C.10101000D.10110000
47.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是()。
A.一个整型变量,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针,是指向的输入数据放在内存中的起始位置
D.一个存储区,存放要读的数据项
48.以下叙述中正确的是______。A.调用printf函数时,必须要有输出项
B.使用putchar函数时,必须在之前包含头文件stdio.h
C.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
49.下列程序的输出结果是______。main(){inta=12,b=12;printf("%d%d\n",--a,++b);
A.1010B.1212C.1110D.1113
50.以下程序运行后的输出结果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
51.以下正确的程序段是
A.cgarstr[20];scanf("%s",&str);
B.char*p;scanf("%s",p);
C.charstr[20];scanf("%s",&str[2])
D.charstr[20],*p=str;scanf("%s",p[2]);
52.以下程序中,while循环的循环次数是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}
A.1B.10C.6D.死循环,不能确定次数
53.设有以下说明,则不正确的叙述是()。unionun{inta;chatb:floatc;}arr;
A.arr所占的内存长度等于成员c的长度
B.arr的地址和它的各成员的地址都是同一地址
C.arr可以作为函数参数
D.不能在定义art时对它初始化
54.以下程序的输出结果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}
A.19B.17C.15D.12
55.若执行下面的程序时,从键盘上输入5和2,则输出结果是main(){inta,b,k;scanf("%d,%d",&a,&b);k=a;if(a<b)k=a%b;elsek=b%a;printf("%d\n",k);}
A.5B.3C.2D.0
56.下面程序的输出结果是()。main(){inti=1,p;p=f(i,++i);printf("%d",p);}intf(inta,intb){intC;if(a>b)C=1;elseif(a==b)C=0;elseC==-1;return(C);}
A.-1B.0C.1D.2
57.有以下程序
#include<stdio.h>
main()
{inta[]={1,2,3,4},y,*p=&a[3];
--p;y=*p;printf("y=%d\n",y);
}
程序的运行结果是
A.y=0B.y=1C.y=2D.y=3
58.下列描述中,不是线性表顺序存储结构特征的是
A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需另外开辟空间来保存元素之间的关系
59.以下数组定义中错误的是()。
A.intx[][3]={0};
B.intx[2][3]={{1,2},{3,4},{5,6}};
C.intx[][3]={{1,2,3},{4,5,6}};
D.intx[2][3]=(1,2,3,4,5,6};
60.设有程序段:intk=12:while(k=1)k=k-1:则下列描述中正确的是()。
A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次
四、选择题(20题)61.若有定义:能把整数3赋给变量a,5赋给变量b的输入数据是()
A.3:5B.3,5C.35D.35
62.假定已建立以下链表结构,且指针p和q已指向如下图所示的结点:
则以下选项中,可将q所指结点从链表中删除并释放该结点的语句组是
A.(*p).next=(*q).next;free(p);B.p=q->next;free(q);
C.p=q;free(q);D.p->next=q->next;free(q);
63.若有定义语句:doublea,*p=&a;,以下叙述中错误的是()。
A.定义语句中的*号是一个间址运算符
B.定义语句中的*号只是一个说明符
C.定义语句中的P只能存放double类型变量的地址
D.定义语句中,*p=&n把变量a的地址作为初值赋给指针变量P
64.下列描述中正确的是()。
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
65.若intk=8;,则执行下列程序后,变量k的正确结果是
main()
{intk=8;
switch(k)
{case8:k+=1;
case10:k+=1;
case11:k+=1;break;
default:k+=1;
}
printf("%d\n",k);
}
A.12B.11
C.10D.9
66.有以下程序:
voidfun2(chara,charb){printf(”%c%c”,a,b);}
chara='A',b='B';
voidfunl(){a='C';b='D';}
main()
{funl();
printf("%c%c",a,b);
fun2('E','F');
}
程序的运行结果是()。A.A.CDEFB.ABEFC.ABCDD.CDAB
67.设有定义:“inta;floatb;”,执行“scanf("%2d%f",&a,&b);”语句时,若从键盘输入876543.0<回车>,a和b的值分别是()。A.A.876和543.000000B.87和6.000000
C.87和6543.000000
D.76和543.000000
68.
69.关系数据库管理系统能实现的专门关系运算包括()。
A.选择、投影、连接B.排序、查找、统计C.关联、更新、排序D.显示、打印、制表
70.
71.
在下列给出的表达式中,与while(E)中的(E)不等价的表达式是()。
A.(!E==0)B.(E>0C.D.E<0)E.(E==0)F.(E!=0)
72.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。
A.-369B.369C.0.369D.整数集合{1,2,3,4,5}
73.栈和队列的共同特点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点
74.“年龄在18~25之间”这种约束是属于数据库当中的()。A.A.原子性措施B.一致性措施C.完整性措施D.安全性措施
75.若有以下程序段:
程序运行后的输出结果是()。
A.16B.8C.4D.2
76.读取二进制文件的函数调用形式为:fread(buffersize,count,fp);,其中buffer代表的是()。
A.一个文件指针,指向待读取的文件
B.一个整型变量,代表待读取的数据的字节数
C.一个内存块的首地址,代表读人数据存放的地址
D.一个内存块的字节数
77.
78.有以下程序:main{union{charch[2];intd;}s;d=0x4321;printf("%x,%x\n",S.ch[0],S.ch[l]);}在16位编译系统上,程序执行后的输出结果是()A.21,43B.43,21C.43,00D.21,00
79.若有定义语句:intX=10;,则表达式x-=x+x的值为()。
A.0B.-20C.-10D.10
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。例如原始字符串是“ab45c6djfd789”,则输出后的字符是“456789”。请修改函数proc()中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写函数proc(),该函数的功能是:计算并输出
例如,若主函数从键盘给n输入10后,则输出为S=104.478749。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
参考答案
1.B
2.C\n在输入时必须遵守scanf函数中的格式才能正确地赋值给相应的变量,由于scanf函数为“%d;%d”,所以在输入时要输入3;5,答案为C。
\n
3.A
4.B解析:'\\0'作为标志占用存储空间,但是不计入串的实际长度。当给一个字符型指针赋值时,赋给这个指针的是这个字符串的地址。
5.D
6.C
7.B解析:在C中对文件操作必须先打开文件,待文件操作完毕后要关闭文件。对文件以读的方式进行打开操作时,同时会执行文件的检查文件是否存在,不存在将会返回空的文件指针,如果对文件以写的方式打开时,文件不存在,将会自动创建文件,因此在C中打开文件前不必对其检查文件是否存在,故答案为B。
8.B
9.C\r\n软件工程是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。软件工程的主要思想是强调在软件开发工程中需要应用工程化的原则。软件工程用来解决以下问题:软件需求的增长得不到满足、软件开发成本和进度无法控制、软件质量难以保证、软件不可维护或维护程度低、软件得成本不断提高、软件开发生产率的提高赶不上硬件的发展和应用需求的增长。软件项目的管理、软件产品的生产率、软件开发中的技术都是软件工程需要解决的部分问题。因此选项C正确。
10.D
11.C题中定义了无符号数,c=a>>3;是指右移3位,然后输出。结果为C。
12.B
13.A由题可知fun的参数为变量,而a[15]为常量,所以答案为A。
14.A
15.D解析:函数scanf()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符;“输入项地址表”是要输入的变量的地址。本题中定义变量a为双精度型变量,双精度变量的格式符为“1e”;变量的地址用取地址符“&”加变量名表示,如变量a的地址为“&a”。
16.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。
17.C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:→或↓表示控制流;□表示加工步骤;
表示逻辑条件。
18.D解析:'\\\\'是反斜线转义字符:'\\t'是水平跳格转义字符:'\\n'是换行转义字符;C语言中没有规定'088'为转义字符。
19.A
20.C
21.1414解析:本题考查递归函数的调用。在主函数中调用sub(&x,16,2)函数,此时n=16,k=2,if语句的控制的条件k<=n成立,所以执行下面的语句,调用sub(x,8,4),此时n=8,k=4,if语句的控制条件k<=n成立,所以执行下面的语句,调用sub(x,4,8),此时n=4,k=8,if语句控制的条件k<=n不成立,因此,最后得x=2+4+8=14。
22.00解析:本题的关键在于对变量c的赋值运算:
d=(a>b>c)
d=(5>4>3)
先算5>4,为真,得1,即:d=(1>3),此时1>3,为假,得0。
23.261261解析:在控制格式符中“O”代表的是将数据按八进制输出,十进制数的177代表的八进制数是261,所以该空格处应该填写261。
24.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统一管理与控制。
25.8080解析:数组a是共用体变量,共用体类型变量所占的内存长度为最大成员的长度,即单精度数组的长度,为4×4=16,因此,数组a所占的内存长度为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 户外冰雪世界运营方案
- diy蛋糕店运营方案
- 键鼠品牌运营思路及方案
- 江西mom管理运营方案
- 抖音速配厅运营方案
- 大跨度模块化厂房预制安装方案
- 商城运营规划整改方案
- 核电站核辅助设施施工方案
- 抖音站内流量运营方案
- 5G通信市场竞争地位分析2025年可行性分析报告
- 电商平台食品安全管理制度
- T-CECS120-2021套接紧定式钢导管施工及验收规程
- 输油管道初步设计-本科毕业论文
- 突发环境事件应急预案评审会汇报课件-(模板)
- JTS-T-116-2019水运建设工程概算预算编制规定
- 《公路桥涵养护规范》(JTG5120-2021)
- 饲料质量培训课件
- 高考英语高频词组+短语+固定搭配
- 王慧文清华大学《互联网产品管理课》
- 3206回撤作业规程
- 循证医学课件:临床实践指南的评价与应用
评论
0/150
提交评论