版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年内蒙古自治区兴安盟全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下面程序的运行结果是
#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
2.设有定义:charc[]=“Cc”;FILE*fp;且fp指向以“w”的方式成功打开的文件,若要将c中的两个字符写入文件,且每个字符占一行,则下面的选项中正确的是()。
A.fprintf(fp,“%c\n%c\n”,c[0],c[1]);
B.fprintf(fp,“%c\r\n%c\r\n”,c[0],c[1]);
C.fprintf(fp,“%c%c”,c[0],c[1]);
D.fprintf(fp,“%s\n”,c);
3.不带头结点的单链表head为空的判定条件是()。
A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL
4.若有定义语句:“inta=3,b=2,c=1;”,以下选项中错误的赋值表达式是()。
A.a=(b=4)=3;B.a=b=c+1:C.a=(b=4)+C;D.a=1+(b=c一4);
5.在深度为5的满二叉树中,叶子结点的个数为()。
A.31B.32C.16D.15
6.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为()
A.100B.40C.55D.80
7.检查软件产品是否符合需求定义的过程称为()。
A.确认测试B.集成测试C.验证测试D.验收测试
8.设”inta=15,b=26;”,则”printf(“%d,%d”,a,b);”的输出结果是()。
A.15B.26,15C.15,26D.26
9.下面哪种排序算法是稳定的()
A.快速排序B.堆排序C.归并排序D.选择排序
10.设有定义“inta;floatb;”,执行“scanf(“%2d%f”,&a,&b);”语句时,若从键盘输入876543.0并按<Enter>键,则a和b的值分别是()。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
11.
12.定义学生选修课程的关系模式如下:SC(S#,Sn,C#,Cn,G,Cr)(其属性分别为学号、姓名、课程号、课程名、成绩、学分)则对主属性部分依赖的是()。
A.C#→CnB.(S#,C#)→GC.(S#,C#)→S#D.(S#,C#)→C#
13.C语言中,组成数据文件的成分是()。A.A.记录
B.数据行
C.数据块
D.字符(字节)序列
14.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指()
A.数据与程序独立存放
B.不同的数据被存放在不同的文件中
C.不同的数据只能被对应的应用程序所使用
D.以上三种说法都不对
15.有以下程序:#include<stdio.h>main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i*j;}}printf(“m=%d\n”,m);}程序运行后的输出结果是()A.m=4B.m=2C.m=6D.m=5
16.用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的入度为()。
A.第i行非0元素的个数之和B.第i列非0元素的个数之和C.第i行0元素的个数之和D.第i列0元素的个数之和
17.执行下列程序后的输出结果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
18.下列叙述中正确的是()
A.一个算法的空间复杂度打,则其时间复杂度也必定大
B.一个算法的空间复杂度大,则其时间复杂度也必定小
C.一个算法的时间复杂度大,则其空间复杂度也必定小
D.算法的时间复杂度与空间复杂度没有直接相关
19.有以下程序
main()
{inti;
for(i=1;i<=40;i++)
{if(i++%5==0)
if(++i%8==0)printf("%d",i);
}
printf("\n");
}
执行后的输出结果是
A.5B.24C.32D.40
20.
二、2.填空题(20题)21.以下程序的输出结果是【】。
#include<stdio.h>
main()
{structstru
{inta;
floatb;
chard[4];
};
printf("%d\n",sizeof(structstru));}
22.若输入tear、test、arj,则下列程序的运行结果为【】。
main()
{char*strl[20],*str2[20],*str3[20];
charswap();
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",str3);
if(strcmp(str1,str2)>0)swap(str1,str2);
if(strcmp(str1,str3)>0)swap(str1,str3);
if(strcmp(str2,str3)>0)swap(str2,str3);
printf("%s%s%s\n",str1,str2,str3);
}
charswap(p1,p2)
char*p1,*p2;
{char*p[20];
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
}
23.若有定义语句chars[100],d[100];intj=0,i==0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)
while(s[i]=【】;j++;}
d[j]=0;
24.以下程序段用于构成一个简单的单向链表。请填空。
struetSTRU
{intx,y;
floatrate;
【】p;
}a,b;
a.x=0;a.y=0;a.rate=0;a.p=&b;
b.x=0;b.y=0;b.rate=0;b.p=NULL;
25.软件开发环境是全面支持软件开发全过程的______的集合。
26.已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有链结点数据域的和值,作为函数值返回。请在横线处填入正确内容。
structlink
{intdata;structlink*next;}
main()
{structlink*head;
......
sum(head);
......
}
sum(【】);
{structlink*p;ints=0;
p=head->next;
while(p){s+=p->data;p=p->next;}
return(s);}
27.下列程序的功能是对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
28.程序的功能是将文件filel.c的内容输出到屏幕上并复制到文件file2.c中,请填空。
#include<stdio.h>
main()
{FILE【】;
fp1=fopen("filel.c","r");
fp2=fopen("file2.c","w");
while(!feof(fp1))putchar(getc(fp1));
rewind(fp1);
while(!feof(fp1))putc(【】);
fclose(fp1);
fclose(fp2);
}
29.在面向对象方法中,类之间共享属性和方法的机制称为______。
30.写出下列程序的输出结果______。
main()
{int=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
31.若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是【】。
chara[10],b;scanf("a=%sb=%c",a,&b);
32.函数fun的返回值是【】。
fun(char*a,char*b)
{intnum=0,n=0;
while(*(a+num)!='\0')num++;
while(b[n]){*(a+num)=b[n];num++;n++;}
returnnum;
}
33.在程序设计阶段应该采取【】和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。
34.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统—管理与控制。
35.根据以下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;
}
36.以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{intp[7]={11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
prinff("%d\n",j);
37.下列程序的输出结果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
38.在关系运算中,【】运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集。
39.数据模型是用来描述数据库的结构和语义的,数据模型有概念数据模型和结构数据模型两类,E-R模型是【】
40.下列程序运行后的输出结果是______。
#include<stdio.h>
main()
{chars[20];
scanf("%s",s);
printf("%s",s);
}
运行程序,输入HOWAREYOU。
三、1.选择题(20题)41.下列程序的运行结果是()。#include<stdio.h>main(){staticchara[]="Languagef",b[]="programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=8;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.angC.programD.有语法错
42.在数据库管理系统提供的数据语言中,负责数据的完整性、安全性的定义与检查以及并发控制、故障恢复等功能的是
A.数据定义语言B.数据转换语言C.数据操纵语言D.数据控制语言
43.按照“先进先出”组织数据的数据结构是()。
A.队列B.栈C.双向链表D.二叉树
44.下列程序的运行结果是()。
#include<stdiO.h>
main()
{inta=0,b=4,c=0,d=10,x;
if(a)
d=d-10;
e1se
if(!B)
if(!C)
x=15;
else
x=25;
printf("%d\n",D);
}
A.5B.3C.20D.10
45.若变量已正确定义,有以下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是
A.程序段有语法错B.3,5,3C.3,5,5D.3,5,7
46.下列4项中说法不正确的是______。A.A.数据库减少了数据冗余
B.数据库中的数据可以共享
C.数据库避免了一切数据的重复
D.数据库具有较高的数据独立性
47.下列程序的输出结果是()。#include<stdio.h>main(){inta=3,b=2,c=1;if(a<B)if(b<0)c=0;elsec++;printf("%d\n",C);}
A.0B.2C.1D.3
48.下面是对宏定义的描述,不正确的是______。
A.宏不存在类型问题,宏名无类型,它的参数也无类型
B.宏替换不占用运行时间
C.宏替换时先求出实参表达式的值,然后代入形参运算求值
D.宏替换只不过是字符替代而已
49.在设计程序时,应采纳的原则之一是()。
A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解
50.有如下程序:main(){inta[3][3]={{1,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
51.下列选项中错误的说明语句是
A.chara[]={′t′,′o′,′y′,′o′,′u′,′\0′};
B.chara[]={"toyou\0"};
C.chara[]="toyou\0";
D.chara[]=′toyou\0′;
52.下面不属于静态测试方法的是()
A.代码检查B.白盒法C.静态结构分析D.代码质量度量
53.编码是指______。
A.总体设计到详细设计的过程B.用0、1代码改写详细设计的结果C.用编程语言改写详细设计的结果D.上述都不对
54.有以下程序intfl(intx.ihty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:X;}main(){inta=4,b=3.c=5,d,e,f;d=fl{a,B);d=f1(d,C):e=f2{a,B);e=f2(e.C);f=a+b+c-d-e;printf("%d,%d,%d\n",d,f,e);}执行后输出的结果是
A.3,4,5B.13,4C.5,4,3D.3,5,4
55.完整的计算机存储器应包括______。
A.软盘、硬盘B.磁盘、磁带、光盘C.内存储器、外存储器D.RAM、ROM
56.对线性表进行二分查找,要求线性表为______。
A.以顺序方式存储B.以链式方式存储C.以顺序方式存储,且要求数据元素有序D.以链接方式存储,且要求数据元素有序
57.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}执行后的结果是()。
A.输出字符a的ASCII码B.输出字符c的ASCII码C.输出字符cD.程序出错
58.可以在C语言程序中用做用户标识符的一组标识符是()。
A.voidB.aa123_abcBBNcasC.as+b3D.6f-123DoIfSIG
59.一个栈的输入序列为1,2,3,4,下列选项中的______序列不可能是这个栈的输出序列。
A.1,3,2,4B.2,3,4,1C.4,3,1,2D.3,4,2,1
60.关系数据库管理系统能实现的专门关系运算包括()。
A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表
四、选择题(20题)61.语句int(*ptr)的含义是()。
A.ptr是一个返回值为int的函数
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是一个函数名,该函数的返回值是指向int型数据的指针
62.若整型变量a、b、c、d中的值依次为2、2、3、4,则条件表达式a<b?a:c<d?c:d的值是()。A.A.1B.2C.3D.4
63.(3)在一棵二叉树上第5层的结点数最多是______。
A.8
B.16
C.32
D.15
64.软件生命周期中的活动不包括()
A.软件维护B.市场调研C.软件测试D.需求分析
65.有以下程序程序运行后的输出结果是()。
A.Zha0,m,85,90,Qian,f,95,92
B.Zha0,m,85,90,Zha0,m,85,90
C.Qian.f,95,92,Qian,f,95,92
D.Qian,f,95,92,Zha0,m,85,90
66.
下列程序的运行结果是()。
#include<stdio.h>
main
{staticchara[]="Languagef",b[]="programe":
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=8;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k)):
}
A.gaeB.angC.programD.有语法错
67.
68.
69.有以下程序:
#include<stdio.h>
main()
{inta=12,C;
c=(a<<2)<<1;
printf("%d\n",c);
}
程序运行后的输出结果是()。
A.3B.50C.2D.96
70.数据库系统的三级模式不包括()。
A.概念模式B.内模式C.外模式D.数据模式
71.以下关于typedef的叙述错误的是()。
A.用typedef可以增加新类型
B.typedef只是将已存在的类型用一个新的名字来代替
C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名
D.用typedef为类型说明一个新名,通常可以增加程序的可读性
72.以下程序段中,不能正确给字符串赋值(编译时系统会提示错误)的是:()
73.不能实现函数之间数据传递的是()。
A.全局变量B.局部变量C.函数接口D.函数返回值
74.函数fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始点是()。
A.文件开始B.文件末尾C.文件当前位置D.以上都不对
75.
76.
77.
78.
下面程序的运行结果是()。
#inelude<stdio.h>
voiddel(char*s)
{inti,j;
char*a;
a=s:
for(i=0,j=0;a[i]!=\0;i++)
{if(a[i]>=0&&a[i]<=9)
{s[j]=a[i];
j++;
}
s[j]=\0;
}
}
main
{char*s="aa89gggh";
del(s):
printf("\n%s",s);
}
A.1B.2C.3D.4
79.
80.有以下程序:
执行时输入:aBeDefG##<;回车>;,则输出结果是()。
A.AbCdEFgB.ABCDEFGC.BCDEFGHD.bedefgh
五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.规定输入的字符串中只包含字母和。号。请编写函数fun,其功能是:将字符串尾部的。号全部删除,前面和中间的*号不动。
参考答案
1.B解析:考查用指针引用字符串元素的方法。指针a通过数组元素下标来从头逐个地引用字符串item中的字符,判断不是0~9之间的数字时,就去掉这个字符,所以程序结束后,字符串item中就只剩下和两个字符了。
2.A要写入字符数据,需要使用格式字符%c,选项D错误;换行符需要使用‘\\n’,而不是‘\\r\\n’,选项B错误;选项C中未使用换行符,不满足题意。故本题答案为A选项。
3.A
4.A由等式的规则可知,A选项错误。先对括号的b进行等式运算,得出b=4,然后计算得出a=4=3,所以会导致错误。答案选择A。
5.C解析:二叉树的一个性质是,在二叉树的第k层上,最多有2(k-1)(k>=1)个结点。对于满二叉树,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点。所以,在深度为5的满二叉树中,所有叶子结点在第5层上,即其结点数为2(k-1)=2(5-1)=16。
6.C
7.A本题主要考查软件测试的基本知识。软件测试的步骤可分为单元测试(模块测试)、集成测试、确认测试和系统测试。
(1)单元测试是针对每个模块进行的测试,它可从程序的内部结构出发设计测试用例,多个模块可以平行、对立地测试。单元测试主要用于发现详细设计和编程时犯下的错误。单元测试多采用白盒测试,辅之以黑盒测试。
(2)集成测试是在单元测试的基础上,根据模块结构图将各个模块连接起来,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。主要目标是发现与接口有关的问题。集成测试可以发现概要设计时犯的错误。
(3)确认测试用于验证软件的功能和性能及其他特性是否与用户的要求一致。确认测试主要用于发现需求分析时犯下的错误,一般使用黑盒法测试,以表明软件符合需求说明书的要求,应该仔细设计测试用例和测试过程。确认测试必须有用户参加,或以用户为主,用户应参与设计测试用例,通常情况下,主要使用生产中的实际数据进行测试,测试数据通过用户接口输入。
(4)系统测试是将已经通过确认测试的软件,作为整个计算机系统的元素与计算机硬件、外设和网络等其他因素结合在一起,进行一系列的组装测试和确认测试。系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合的地方。系统测试可以发现问题定义时犯下的错误。
8.C
9.C
10.Ascanf函数中,在格式字符前加入一个整数可以指定输入数据所占的宽度,所以赋值时会将87赋给变量a,把6.0赋给float型变量b。故本题答案为A选项。
11.D
12.A关系SC中的主键是(S#,C#),但C#(课程号)单独就可以决定Cn(课程名),存在着对主键的部分依赖。本题答案为A选项。
13.D解析:C语言中的文件是流式文件。流式文件是一种无结构文件,即整个文件是一串字符流或二进制流。文件的存取以字符或字节为单位。
14.D解析:在数据库系统中,通过系统提供的映象功能,使数据具有两方面的独立性:一是物理独立性。即由于数据的存储结构与逻辑结构之间由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。二是逻辑独立性。即由于数据的局部逻辑结构(它是总体逻辑结构的一个子集,由具体的应用程序所确定,并且根据具体的需要可以作一定的修改)与总体逻辑结构之间也由系统提供映象,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。由此可知,选项A.B与C中的说法都是错误的。
15.C第一次外循环的值为1,第一次内循环j的值为3,不满足条件执行m*=i*j即m的值为3;第二次j的值为2。不满足条件执行m*=i*j,即的值为6;第三次j的值为1,不满足条件执行m*=i*j,即m的值仍为6。第二次外循环的值2,j的值为3,满足条件执行break语句跳出循环。
16.B
17.D
18.D
19.C解析:当for循环执行到第30次时,i的值为30能被5整除,然后继续执行两次if语句,i经过两次自加1运算,值变为32,能被8整除,故此时第一次执行'printf('%d',i);'语句,即输出32。
20.A
21.14
22.arjteartest
23.s[i++]s[i++]解析:本题中为了能实现字符串的拷贝,需要使字符数组s从头到尾依次遍历其所有元素。本题应使用i的自增后置来实现。
24.structSTRU*
25.软件工具软件工具解析:软件开发环境是各类软件开发工具的集合体。
26.structlink*headstructlink*head解析:考查用指针引用结构体变量成员数据的方法。因为本题中是用结构体变量构成了链表,所以要从链表头节点,逐个节点的引用结构体的数据域,需要有指向结构体变量的指针,依次指向各个节点,即p=p->next,而用指针引用结构体成员数据的方法为:p->data。
27.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析题目可知,程序中运用函数c=getchar()从标准输入设备读取下一个字符,而且是一行的字符(即没有换行),所以条件为(c=getchar())!='\\n'。
28.*fp1*fp2getc(fp1)fp2*fp1,*fp2\r\ngetc(fp1),fp2解析:本题主要考查函数intputc(intch,FILE*fp)的功能,把ch中的字符输出到fp所指文件,以及intgetc(FILE*fp),从fp所指文件中读取一个字符。
29.继承继承解析:在面向对象的程序设计方法中,某些属性和方法是可以共享的,由于类从父类中继承而来,这样提高了软件的可重用性。
30.333,3解析:本题在while(n++<=1)语句后,直接加了分号,说明如果while()的条件为真时,该循环什么都不做;n++是先取n的当前值和I做比较,然后再将n加1。第一次循环,n=0时,循环条件n++=0<=1成立,执行循环,然后得到n=1。第二次循环,n=1时,循环条件n++=1<=1成立,执行循环,然后得到n=2。第三次循环,n=2时,循环条件n++=2<=1不成立,不执行循环,但在判断循环条件时仍将n加1,得到n=3。退出循环后执行printf语句,第二个printf语句输出n++,是先输出n的当前值3,然后再将n加1,即程序结束后得到n=4,但输出的是3。
31.a=123b=5
32.字符串a和b的长度之和字符串a和b的长度之和解析:本题首先通过第一个while循环计算字符串a的长度,再通过第二个循环,将字符串a和b相连,最后返回连接后的总长度。
33.自顶而下自顶而下
34.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统—管理与控制。
35.x/10case0:case1:case2:case3:case4:case5:case9:x/10\r\ncase0:case1:case2:case3:case4:case5:\r\ncase9:
36.2424解析:本题关键是while循环。
当i=0时,满足条件:i<7&&11%2==1,执行j=0+11=11,i++,i为1;
当i=1时,满足条件:i<7&&13%2=1,执行j=11+13=24,i++,i为2;
当i=2时,不满足条件:i<7&&14%2==1,循环结束。输出j的值24。
37.66解析:条件运算符的优先级高于赋值运算符,因此本题先计算关系表达式(*ptr+y)<x)?*(ptr+y):x的值,再赋给变量z。当y=0时,*(ptr+y)=2,而x=8,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=2,所以z=2;当y-1时,*(ptr+y)=4,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=4,所以z=4;当y=2时,*(ptr+y)=6,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=6,所以z=6;循环结束。因此输出z的结果为6。
38.选择选择解析:关系运算中,选择运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集。
39.概念数据模型概念数据模型
40.HOWHOW解析:在scanf()函数中,使用空格作为分隔符,如果输入含有空格的字符中,则不能使用scanf()数,所以本题中输入空格就返回了'\\0\\,s数组也就确定了,后面的输入就不再读入数组s中。
41.A解析:本题考查指针的用法,if(*(p1+k)==*(p2+k))语句的功能是判断两个数组中的字符是否相同,如果相同则输出。
42.D解析:在数据库管理系统提供的数据语言中,数据控制语言负责数据的完整性、安全性的定义与检查以及并发控制、故障恢复等功能。
43.A队列是一种特殊的线性表,只允许在表的一端插八元素,在表的另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”。先插入的元素先被删除,是按“先进先出”的原则组织数据的。
【知识拓展】“队列”和“栈”都是一种特殊的线性表。之所以称之为“队列”,其形式如“排队”。要讲究“先来后到”,先进先出,后进后出。
44.D解析:本题考查ifelse语句。第1个if语句,先判断条件,发现a=0条件不成立,则执行与其配对的else语句;第2个if语句,先判断条件,发现b=4,则!b条件不成立,又没有与其配对的else语句,所以执行printf语句,输出do。
45.B解析:本题考查if条件语句。a=3,b=5,因此a>b条件不成立,c=a=3。此时c!=a条件不成立,不执行c=b;语句,c的值仍然为5。结果a=3,b=5,c=3。
46.C解析:数据库的特点包括:数据结构化,共享性好,独立性好,管理统一度高,数据的冗余小,数据重复性低等。故只有选项C的说法不正确。数据库只能降低数据的重复性,但并不能避免一切重复性。
47.C解析:本题考查if语句。第一个if语句,先判断条件,发现a<b不成立,不再执行下列的语句,直接执行最后的printf输出语句,然后结束程序,整个过程c的值没有发生变化。
48.C解析:宏替换实质上就是字符替代,它不可能进行计算,故C错误。带参数的宏与函数相比,宏在程序编译之前已经将代码替换到程序内,执行时不会产生类似于函数调用的问题,可以说不占用运行时间。
49.D解析:滥用goto语句将使程序流程无规律,可读性差,因此选项A)不选;注解行有利于对程序的理解,不应减少或取消,选项B)也不选;程序的长短要依照实际情况而论,而不是越短越好,选项C)也不选。
50.A解析:题中的外循环只执行了2次:
第1次:a[1][0]=3,a[1][1]=4,所以s=7;
第2次:a[2][0]=5,a[2][1]=6,a[2][2]=0,所以s=7+5+6+0=18。
51.D解析:通过赋初值的方式给一维数组赋字符串,可以用给一般数组赋初值的相同方式给一维字符数组赋字符串,也可以在赋值时直接赋字符串常量。选项B)和C)后面的'\\0'是多余的,在C语言中,系统会自动在字符串的结尾处加上一个字符'\\0'作为串的结束标记。
52.B解析:白盒测试按照程序内部的逻辑测试程序,检验程序中的每条路径能否按预定要求工作,白盒测试又称单元测试,它不属于基于代码分析的静态测试。故正确选项为B项。
53.C解析:所谓“编码”,是指把软件设计的结果用计算机系统可以理解的形式表示出来。用于编码的程序设计语言可以是计算机系统能够直接理解的机器语言,也可以是必须通过汇编、编译(或解释)才能为计算机系统所理解的汇编语言或高级语言。
54.C解析:本题考核的知识点是函数的定义与函数调用。函数f1()的作用是返回形参x和y的较大值,函数f2()的作用是返回形参x和y的较小值,在main()函数中通过调用两次f1()函数,求得a、b、c的最大值并存放在变量d中,通过调用两次f2()函数,求得a、b、c的最小值并存放到变量e中.由程序可知d值为5,f的值为4,e的值为3,因此最后输出的d,f、e的值为5、4,3。所以,C选项为所选。
55.C
56.C解析:二分查找的前提是线性表以顺序存储,且数据元素有序。
57.D解析:因为字符数组s1)中的数组名s表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位,因而程序编译时出错。
58.B解析:C语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。
59.C
60.B解析:此题为数据库的基本概念,可以对照办工软件的电子表格进行如下理解:选择:我们根据某条件选择出一行或多行元组(一个元组即为二维表中的一行)。投影:按字段(也称属性,比如学生关系(学号,姓名,出生年月,性别),学号、姓名…都是属性)选取一列或多列(一个二维表中所有元组在某一列或几列上截取出来)。连接:2个或2个以上的表连接组成一张新的表,通常有条件连接。比如学生关系(学号,姓名,系号),又有一张系表(系号,系名,主任),2张表可以合并为一张这样的表(学号,姓名,系号,系名,主任)。
61.C本题考查的是指向函数的指针。函数指针定义的基本格式为:类型标识符(*指针变量名)()。“类型标识符”为函数返回值的类型。
62.C本题考查三目运算符a<b?a:c<d?c:d也可写成a<b?a:(c<d?c:d),所以根据优先级,先算括号内的,c小于d为真取C的值,再看a小于b为假,所以取C的值。
63.B根据二叉树的性质,在二叉树的第K层上,最多有2k-1个结点。所以,第五层的结点数最多为16。
64.B【答案】:B
【知识点】:软件生命周期
【解析】:一个软件产品或软件系统要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生命周期。它把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。通常,软件生存周期包括可行性分析与开发项计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护等活动,可以将这些活动以适当的方式分配到不同的阶段去完成。故选B。
65.A本题考查的是函数调用时的参数传递问题。程序在调用函数时,传给函数啪参数只是结构变量C在栈中的一个拷贝,函数馓的所有操作只是针对这个数据拷贝进行的修改,这些都不会影响变量C的值。因此本题答案为A)。
66.A
\n本题考查指针用法,if语句的功能是判断两个数组中的字符是否相同,如果相同则输出。
\n
67.B
68.B
69.D\n本题考查左移运算符,左移运算符相当于乘以2的2n,所以a<<2=12*22=48,所以(a<<2)<1—48*2=96。
\n
70.D数据库系统的3级模式是概念模式、外模式和内模式。故答案为D选项。
71.Atypedef并不是增加了新类型,面是用一个新名字替代已存在的类型,不能为变量说明一个新名,使用typedef可以增强程序的可移植性。所以A选项错误:
72.C字符串赋初值对于字符数组只能在定义时进行。因此选项A的赋初值是正确的。因为数组名是一个固定指针,不能再让其指向其他内存单元。选项C的赋初值是错误的。但选项D是用strcpy函数将字符串“abcdefg”复制到S数组的内存中,是正确的。选项B的tel=”abcdefg”,是利用字符串的长度决定数组长度(串长加1)并同时赋初值。对于字符指针,可以在定义时就指向别的内存单元,*s=t,也是正确的。所以只有C项不正确。
73.B局部变量的作用域仅局限于函数体内。不能在函数之间进行数据传递。
74.BSEEK_SET代表文件的开始,SEEK_END代表文件末尾,SEEK_CUR代表文件当前位置。
75.A
76.B
77.B
78.D
\n本题中del(char*s)函数实现的功能是:逐个读入S数组中的字符,如果遇到数字,则将数字存在s中,遇到非数字字符则跳过。所以最后输出的应该是字符串S中所有的数字的个数。
\n
79.D
80.C循环的作用是将输入的字符串转化为大写,9etchar()每次读入一个字符,putchar()每次输出一个字符,当遇到#字符结束。putchar(++C),表示将字符变量C加1后输出。因此,输入aBcDefG##,得到的结果是BCDEFGH。故答案为c选项。
81.(1)错误:y=0;
正确:y=1;
(2)错误:d=i=num;
正确:d=num-i;
【解析】由函数proc()可知,变量y是判断小于num/2的整数中是否存在素数的标志,y=1为找到所要的素数,其初始值应该为1,因此,“y=0;”应改为“y=1;”变量ntim为两个素数之和,变量i和d为要求的两个素数,因此,“d=i-num;”应改为“d=num-i;”。
82.
voidfun(char*a){
while(*a!=’、0。)
a++:
a一一;/*指针a指向字符串的尾部*/while(}a==’*。)
a一一;/·指针a指向最后一个字母*/
*(a+1)=’、0’;/*在字符串最后加上结束标志符·/
【考点分析】
本题考查:删除字符串尾部*号;删除的主要思想是把不删除的字符保留起来。
【解题思路】
对于一个字符串要删除其尾部的*号,只需要在最后一个不是*号的字符后面加上结束符号‘、0’。具体操作为:首先找到字符串的结尾,然后从最后一个字符开始往前逐个判断是否为*号,直到找到非·号字符为止。最后在该字符后面加上结束符号’\0。2022-2023年内蒙古自治区兴安盟全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下面程序的运行结果是
#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
2.设有定义:charc[]=“Cc”;FILE*fp;且fp指向以“w”的方式成功打开的文件,若要将c中的两个字符写入文件,且每个字符占一行,则下面的选项中正确的是()。
A.fprintf(fp,“%c\n%c\n”,c[0],c[1]);
B.fprintf(fp,“%c\r\n%c\r\n”,c[0],c[1]);
C.fprintf(fp,“%c%c”,c[0],c[1]);
D.fprintf(fp,“%s\n”,c);
3.不带头结点的单链表head为空的判定条件是()。
A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL
4.若有定义语句:“inta=3,b=2,c=1;”,以下选项中错误的赋值表达式是()。
A.a=(b=4)=3;B.a=b=c+1:C.a=(b=4)+C;D.a=1+(b=c一4);
5.在深度为5的满二叉树中,叶子结点的个数为()。
A.31B.32C.16D.15
6.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为()
A.100B.40C.55D.80
7.检查软件产品是否符合需求定义的过程称为()。
A.确认测试B.集成测试C.验证测试D.验收测试
8.设”inta=15,b=26;”,则”printf(“%d,%d”,a,b);”的输出结果是()。
A.15B.26,15C.15,26D.26
9.下面哪种排序算法是稳定的()
A.快速排序B.堆排序C.归并排序D.选择排序
10.设有定义“inta;floatb;”,执行“scanf(“%2d%f”,&a,&b);”语句时,若从键盘输入876543.0并按<Enter>键,则a和b的值分别是()。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
11.
12.定义学生选修课程的关系模式如下:SC(S#,Sn,C#,Cn,G,Cr)(其属性分别为学号、姓名、课程号、课程名、成绩、学分)则对主属性部分依赖的是()。
A.C#→CnB.(S#,C#)→GC.(S#,C#)→S#D.(S#,C#)→C#
13.C语言中,组成数据文件的成分是()。A.A.记录
B.数据行
C.数据块
D.字符(字节)序列
14.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指()
A.数据与程序独立存放
B.不同的数据被存放在不同的文件中
C.不同的数据只能被对应的应用程序所使用
D.以上三种说法都不对
15.有以下程序:#include<stdio.h>main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i*j;}}printf(“m=%d\n”,m);}程序运行后的输出结果是()A.m=4B.m=2C.m=6D.m=5
16.用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的入度为()。
A.第i行非0元素的个数之和B.第i列非0元素的个数之和C.第i行0元素的个数之和D.第i列0元素的个数之和
17.执行下列程序后的输出结果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
18.下列叙述中正确的是()
A.一个算法的空间复杂度打,则其时间复杂度也必定大
B.一个算法的空间复杂度大,则其时间复杂度也必定小
C.一个算法的时间复杂度大,则其空间复杂度也必定小
D.算法的时间复杂度与空间复杂度没有直接相关
19.有以下程序
main()
{inti;
for(i=1;i<=40;i++)
{if(i++%5==0)
if(++i%8==0)printf("%d",i);
}
printf("\n");
}
执行后的输出结果是
A.5B.24C.32D.40
20.
二、2.填空题(20题)21.以下程序的输出结果是【】。
#include<stdio.h>
main()
{structstru
{inta;
floatb;
chard[4];
};
printf("%d\n",sizeof(structstru));}
22.若输入tear、test、arj,则下列程序的运行结果为【】。
main()
{char*strl[20],*str2[20],*str3[20];
charswap();
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",str3);
if(strcmp(str1,str2)>0)swap(str1,str2);
if(strcmp(str1,str3)>0)swap(str1,str3);
if(strcmp(str2,str3)>0)swap(str2,str3);
printf("%s%s%s\n",str1,str2,str3);
}
charswap(p1,p2)
char*p1,*p2;
{char*p[20];
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
}
23.若有定义语句chars[100],d[100];intj=0,i==0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)
while(s[i]=【】;j++;}
d[j]=0;
24.以下程序段用于构成一个简单的单向链表。请填空。
struetSTRU
{intx,y;
floatrate;
【】p;
}a,b;
a.x=0;a.y=0;a.rate=0;a.p=&b;
b.x=0;b.y=0;b.rate=0;b.p=NULL;
25.软件开发环境是全面支持软件开发全过程的______的集合。
26.已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有链结点数据域的和值,作为函数值返回。请在横线处填入正确内容。
structlink
{intdata;structlink*next;}
main()
{structlink*head;
......
sum(head);
......
}
sum(【】);
{structlink*p;ints=0;
p=head->next;
while(p){s+=p->data;p=p->next;}
return(s);}
27.下列程序的功能是对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
28.程序的功能是将文件filel.c的内容输出到屏幕上并复制到文件file2.c中,请填空。
#include<stdio.h>
main()
{FILE【】;
fp1=fopen("filel.c","r");
fp2=fopen("file2.c","w");
while(!feof(fp1))putchar(getc(fp1));
rewind(fp1);
while(!feof(fp1))putc(【】);
fclose(fp1);
fclose(fp2);
}
29.在面向对象方法中,类之间共享属性和方法的机制称为______。
30.写出下列程序的输出结果______。
main()
{int=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
31.若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是【】。
chara[10],b;scanf("a=%sb=%c",a,&b);
32.函数fun的返回值是【】。
fun(char*a,char*b)
{intnum=0,n=0;
while(*(a+num)!='\0')num++;
while(b[n]){*(a+num)=b[n];num++;n++;}
returnnum;
}
33.在程序设计阶段应该采取【】和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。
34.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统—管理与控制。
35.根据以下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;
}
36.以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{intp[7]={11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
prinff("%d\n",j);
37.下列程序的输出结果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
38.在关系运算中,【】运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集。
39.数据模型是用来描述数据库的结构和语义的,数据模型有概念数据模型和结构数据模型两类,E-R模型是【】
40.下列程序运行后的输出结果是______。
#include<stdio.h>
main()
{chars[20];
scanf("%s",s);
printf("%s",s);
}
运行程序,输入HOWAREYOU。
三、1.选择题(20题)41.下列程序的运行结果是()。#include<stdio.h>main(){staticchara[]="Languagef",b[]="programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=8;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.angC.programD.有语法错
42.在数据库管理系统提供的数据语言中,负责数据的完整性、安全性的定义与检查以及并发控制、故障恢复等功能的是
A.数据定义语言B.数据转换语言C.数据操纵语言D.数据控制语言
43.按照“先进先出”组织数据的数据结构是()。
A.队列B.栈C.双向链表D.二叉树
44.下列程序的运行结果是()。
#include<stdiO.h>
main()
{inta=0,b=4,c=0,d=10,x;
if(a)
d=d-10;
e1se
if(!B)
if(!C)
x=15;
else
x=25;
printf("%d\n",D);
}
A.5B.3C.20D.10
45.若变量已正确定义,有以下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是
A.程序段有语法错B.3,5,3C.3,5,5D.3,5,7
46.下列4项中说法不正确的是______。A.A.数据库减少了数据冗余
B.数据库中的数据可以共享
C.数据库避免了一切数据的重复
D.数据库具有较高的数据独立性
47.下列程序的输出结果是()。#include<stdio.h>main(){inta=3,b=2,c=1;if(a<B)if(b<0)c=0;elsec++;printf("%d\n",C);}
A.0B.2C.1D.3
48.下面是对宏定义的描述,不正确的是______。
A.宏不存在类型问题,宏名无类型,它的参数也无类型
B.宏替换不占用运行时间
C.宏替换时先求出实参表达式的值,然后代入形参运算求值
D.宏替换只不过是字符替代而已
49.在设计程序时,应采纳的原则之一是()。
A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解
50.有如下程序:main(){inta[3][3]={{1,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
51.下列选项中错误的说明语句是
A.chara[]={′t′,′o′,′y′,′o′,′u′,′\0′};
B.chara[]={"toyou\0"};
C.chara[]="toyou\0";
D.chara[]=′toyou\0′;
52.下面不属于静态测试方法的是()
A.代码检查B.白盒法C.静态结构分析D.代码质量度量
53.编码是指______。
A.总体设计到详细设计的过程B.用0、1代码改写详细设计的结果C.用编程语言改写详细设计的结果D.上述都不对
54.有以下程序intfl(intx.ihty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:X;}main(){inta=4,b=3.c=5,d,e,f;d=fl{a,B);d=f1(d,C):e=f2{a,B);e=f2(e.C);f=a+b+c-d-e;printf("%d,%d,%d\n",d,f,e);}执行后输出的结果是
A.3,4,5B.13,4C.5,4,3D.3,5,4
55.完整的计算机存储器应包括______。
A.软盘、硬盘B.磁盘、磁带、光盘C.内存储器、外存储器D.RAM、ROM
56.对线性表进行二分查找,要求线性表为______。
A.以顺序方式存储B.以链式方式存储C.以顺序方式存储,且要求数据元素有序D.以链接方式存储,且要求数据元素有序
57.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}执行后的结果是()。
A.输出字符a的ASCII码B.输出字符c的ASCII码C.输出字符cD.程序出错
58.可以在C语言程序中用做用户标识符的一组标识符是()。
A.voidB.aa123_abcBBNcasC.as+b3D.6f-123DoIfSIG
59.一个栈的输入序列为1,2,3,4,下列选项中的______序列不可能是这个栈的输出序列。
A.1,3,2,4B.2,3,4,1C.4,3,1,2D.3,4,2,1
60.关系数据库管理系统能实现的专门关系运算包括()。
A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表
四、选择题(20题)61.语句int(*ptr)的含义是()。
A.ptr是一个返回值为int的函数
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是一个函数名,该函数的返回值是指向int型数据的指针
62.若整型变量a、b、c、d中的值依次为2、2、3、4,则条件表达式a<b?a:c<d?c:d的值是()。A.A.1B.2C.3D.4
63.(3)在一棵二叉树上第5层的结点数最多是______。
A.8
B.16
C.32
D.15
64.软件生命周期中的活动不包括()
A.软件维护B.市场调研C.软件测试D.需求分析
65.有以下程序程序运行后的输出结果是()。
A.Zha0,m,85,90,Qian,f,95,92
B.Zha0,m,85,90,Zha0,m,85,90
C.Qian.f,95,92,Qian,f,95,92
D.Qian,f,95,92,Zha0,m,85,90
66.
下列程序的运行结果是()。
#include<stdio.h>
main
{staticchara[]="Languagef",b[]="programe":
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=8;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k)):
}
A.gaeB.angC.programD.有语法错
67.
68.
69.有以下程序:
#include<stdio.h>
main()
{inta=12,C;
c=(a<<2)<<1;
printf("%d\n",c);
}
程序运行后的输出结果是()。
A.3B.50C.2D.96
70.数据库系统的三级模式不包括()。
A.概念模式B.内模式C.外模式D.数据模式
71.以下关于typedef的叙述错误的是()。
A.用typedef可以增加新类型
B.typedef只是将已存在的类型用一个新的名字来代替
C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名
D.用typedef为类型说明一个新名,通常可以增加程序的可读性
72.以下程序段中,不能正确给字符串赋值(编译时系统会提示错误)的是:()
73.不能实现函数之间数据传递的是()。
A.全局变量B.局部变量C.函数接口D.函数返回值
74.函数fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始点是()。
A.文件开始B.文件末尾C.文件当前位置D.以上都不对
75.
76.
77.
78.
下面程序的运行结果是()。
#inelude<stdio.h>
voiddel(char*s)
{inti,j;
char*a;
a=s:
for(i=0,j=0;a[i]!=\0;i++)
{if(a[i]>=0&&a[i]<=9)
{s[j]=a[i];
j++;
}
s[j]=\0;
}
}
main
{char*s="aa89gggh";
del(s):
printf("\n%s",s);
}
A.1B.2C.3D.4
79.
80.有以下程序:
执行时输入:aBeDefG##<;回车>;,则输出结果是()。
A.AbCdEFgB.ABCDEFGC.BCDEFGHD.bedefgh
五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.规定输入的字符串中只包含字母和。号。请编写函数fun,其功能是:将字符串尾部的。号全部删除,前面和中间的*号不动。
参考答案
1.B解析:考查用指针引用字符串元素的方法。指针a通过数组元素下标来从头逐个地引用字符串item中的字符,判断不是0~9之间的数字时,就去掉这个字符,所以程序结束后,字符串item中就只剩下和两个字符了。
2.A要写入字符数据,需要使用格式字符%c,选项D错误;换行符需要使用‘\\n’,而不是‘\\r\\n’,选项B错误;选项C中未使用换行符,不满足题意。故本题答案为A选项。
3.A
4.A由等式的规则可知,A选项错误。先对括号的b进行等式运算,得出b=4,然后计算得出a=4=3,所以会导致错误。答案选择A。
5.C解析:二叉树的一个性质是,在二叉树的第k层上,最多有2(k-1)(k>=1)个结点。对于满二叉树,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点。所以,在深度为5的满二叉树中,所有叶子结点在第5层上,即其结点数为2(k-1)=2(5-1)=16。
6.C
7.A本题主要考查软件测试的基本知识。软件测试的步骤可分为单元测试(模块测试)、集成测试、确认测试和系统测试。
(1)单元测试是针对每个模块进行的测试,它可从程序的内部结构出发设计测试用例,多个模块可以平行、对立地测试。单元测试主要用于发现详细设计和编程时犯下的错误。单元测试多采用白盒测试,辅之以黑盒测试。
(2)集成测试是在单元测试的基础上,根据模块结构图将各个模块连接起来,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。主要目标是发现与接口有关的问题。集成测试可以发现概要设计时犯的错误。
(3)确认测试用于验证软件的功能和性能及其他特性是否与用户的要求一致。确认测试主要用于发现需求分析时犯下的错误,一般使用黑盒法测试,以表明软件符合需求说明书的要求,应该仔细设计测试用例和测试过程。确认测试必须有用户参加,或以用户为主,用户应参与设计测试用例,通常情况下,主要使用生产中的实际数据进行测试,测试数据通过用户接口输入。
(4)系统测试是将已经通过确认测试的软件,作为整个计算机系统的元素与计算机硬件、外设和网络等其他因素结合在一起,进行一系列的组装测试和确认测试。系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合的地方。系统测试可以发现问题定义时犯下的错误。
8.C
9.C
10.Ascanf函数中,在格式字符前加入一个整数可以指定输入数据所占的宽度,所以赋值时会将87赋给变量a,把6.0赋给float型变量b。故本题答案为A选项。
11.D
12.A关系SC中的主键是(S#,C#),但C#(课程号)单独就可以决定Cn(课程名),存在着对主键的部分依赖。本题答案为A选项。
13.D解析:C语言中的文件是流式文件。流式文件是一种无结构文件,即整个文件是一串字符流或二进制流。文件的存取以字符或字节为单位。
14.D解析:在数据库系统中,通过系统提供的映象功能,使数据具有两方面的独立性:一是物理独立性。即由于数据的存储结构与逻辑结构之间由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。二是逻辑独立性。即由于数据的局部逻辑结构(它是总体逻辑结构的一个子集,由具体的应用程序所确定,并且根据具体的需要可以作一定的修改)与总体逻辑结构之间也由系统提供映象,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。由此可知,选项A.B与C中的说法都是错误的。
15.C第一次外循环的值为1,第一次内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家长课堂课件安全问题
- 2026年汽车事故处理合同协议
- 2026年农业保险合同终止协议
- 2026年婚内财产协议解除书合同
- 2026年机场广告牌位投放合同范本
- 空运代理合同2026年保险索赔协议
- 2026年旅游Agency合作合同
- 《信息技术基础(上册)》课件 模块四课题三
- 个人林地承包合同
- 塔吊司机安全教育培训课件
- 中国法制史试题题库(附答案)
- 医院保洁人员院感培训
- (高清版)DB44∕T 1031-2012 《制浆废液中甲醇含量的测定 顶空气相色谱法》
- 大疆考核管理办法
- 鹤颜堂中医苏子老师课件
- 冷板液冷标准化及技术优化白皮书
- DB13∕T 5606-2022 河湖生态清淤工程技术规程
- 人工智能在艺术史研究中的应用与创新-洞察及研究
- 备战2025年深圳中考物理《光学实验》含答案解析
- 博图考试题及答案
- 自由教练合同协议
评论
0/150
提交评论