




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年广东省揭阳市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列程序的运行结果为()。#include<stdio.h>main{structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}A.8B.6C.10D.12
2.有以下程序:#include<stdio.h>main(){intx=0x9;printf(“%c\n”,‘A’+x);}程序运行后的输出结果是()。
A.IB.JC.KD.H
3.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf(“%3.0f\n”,a);}doublef(doublex)}returnx*x+1;}程序的运行结果是()。
A.500B.401C.503D.1404
4.
5.算法的效率的分析主要包括两个方面()。
A.时间复杂度和空间复杂度B.正确性和简单性C.可读性和文档性D.数据复杂性和程序复杂性
6.对序线性表23,29,34,55,60,70,78用二分法查找值为60的元素时,需要比较次数为()
A.1B.2C.3D.4
7.有以下程序:intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf("%d\n",j);}程序运行后的输出结果是()。
A.4B.3C.2D.1
8.有以下程序:#include<stdio.h>main(){inta[3][3]={0,1,2,3,4,5,6,7,8},(*p)[3],i;p=a;for(i=0;i<3;i++){printf(“%d”,(*p)[i]);p++;}}程序的运行结果是()。
A.036B.012C.048D.147
9.软件生命周期中的活动不包括()
A.软件维护B.市场调研C.软件测试D.需求分析
10.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。
A.13B.33C.18D.40
11.
12.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,可以采用下列哪一种查找方法()
A.分块B.顺序C.折半D.哈希
13.
14.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是()。
A.预定义标识符(如库函数中的函数名)可用做用户标识符,但失去原有含义
B.用户标识符可以由字母和数字任意顺序组成
C.在标识符中大写字母和小写字母被认为是相同的字符
D.关键字可用做用户标识符,但失去原有含义
15.对初始状态为递增序列的数组按递增顺序排序,最省时间的是插入排序算法,最费时间的算法是()
A.堆排序B.快速排序C.插入排序D.归并排序
16.下列描述中正确的是()。
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
17.设栈S的初始状态为空,6个元素入栈的顺序为e1,e2,e3,e4,e5和e6。若出栈的顺序是e2,e4,e3,e6,e5,el,则栈s的容量至少应该是()。
A.6B.4C.3D.2
18.有以下函数:intfun(char*x,char*y)intn=0;while((*x==*y)&&*x!=‘\0’)∣x++;y++;n++;∣returnn;函数的功能是()。A.将y所指字符串赋给x所指存储空间
B.查找和y所指字符串中是否有‘\0’
C.统计x和y所指字符串中最前面连续相同的字符个数
D.统计x和y所指字符串中相同的字符个数
19.定义根节点深度为1,有n个元素的完全二叉树的深度是()
A.D(n)=log2(n)
B.D(n)=1+log2(n)
C.D(n)=n+log2(n)
D.D(n)=1+n*log2(n)
20.设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩.,则表SC的关键字(键或码)为()
A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩
二、2.填空题(20题)21.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1
11
121
1331
14641
┇
其构成规律是:
(1)第0列元素和主对角线元素均为1
(2)其余元素为其左上方和正上方元素之和
(3)数据的个数每行递增1
请将程序补充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;
x[0][0]=1;
for(i=1;i<N;i++)
{x[i][0]=【】=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
}
22.在面向对象方法中,对象之间进行通信的构造称为()。
23.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。
24.已定义charch='$';inti=1,j;,执行j!=ch&&i++以后,i的值为______。
25.下面程序的运行结果是______。
voidswap(int*a,int*B)
{
int*t;
t=a;a=b;b=t;
}
main()
{
intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
26.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。
27.若输入Ihaveatest.#,则以下程序的运行结果为【】。
#include<stdio.h>
main()
{FILE*fp;
charstr[100],filename[10];
inti=0;
if((fp=fopen("test","w"))==NULL)
{printf("cannotopenthefile!\n");
exit(0);
}
getchar();
gets(str);
while(str[i]!='#')
{if(str[i]>='a'&&str[i]<='z')
str[i]=str[i]-32;
fputc(str[i],fp);
i++;
}
fclose(fp);
fp=fopen("test","r");
fgets(str,strlen(str)+1,fp);
printf("%s\n",str);
fclose(fp);
}
28.设有定义:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
则对结构体成员a的引用方法可以是abc.a和p_abc【】a。
29.最简单的交换排序方法是______。
30.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
31.执行以下程序后,输出‘#’号的个数是【】。
#include<atdio.h>
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
32.下列程序的输出结果是【】。
main()
{
inta[]={2,4,6},*prt=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y<x)?*(ptr+y):x;
printf("%d\n",z);
}
33.数据的物理结构在计算机存储空间中的存放形式称为数据的【】。
34.下面程序的功能是将一个字符串str的内容倒序,请填空。
#inelude<stdio.h>
#include<strins.h>
main()
{inti,j,【】;
charstr[]={"1234567"};
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;}
printf("%s\n",str);
}
35.阅读下面程序,则执行后的输出结果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
36.若有以下定义:
chara;intb;
floatc;doubled;
则表达式a*b+d-c值的类型为【】。
37.某二叉树中度为2的结点有n个,则该二叉树中有【】个叶子结点。
38.本程序用改进冒泡法对数组a[n]的元素从小到大排序,请在程序空白处填空。
voidbubble(inta[],intn)
{intj,k,jmax,temp;
jmax=【】;
do{
k=0;
for(j=0;j<jmax;j++)
if(a[j]>a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;k=【】;
jmax=k;
}while(jmax>0);}
39.数据结构分为逻辑结构与存储结构,线性链表属于【】。
40.以下程序的输出结果是【】。
main()
{inta=177;
printf(“%o\n”,A);
}
三、1.选择题(20题)41.若有以下的说明,对初值中整数2的正确引用方式是
staticstruct
{charch;
inti;
doublex;
}a[2][3]={{{′a′,1,3,45},{′b′,2,7,98},{′c′,31,93}}};
A.a[0][1].chB.a[0][1].iC.a[0][0].iD.a[0][2].i
42.有以下程序:main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序执行后的输出结果是
A.3,2,0B.3,2,-1C.4,3,1D.5.-2,-5
43.下列不属于软件工程的3个要素的是______。
A.工具B.过程C.方法D.环境
44.算法的时间复杂度是指______。
A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数
45.定义如下变量和数组:inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是()。for(i=0;i<3;i++)printf("%d",x[i][2-i]);
A.159B.147C.357D.369
46.下列写法正确的是()。
A.main(){inti=3,j;j=5}
B.main(){inti=3;
C.main()
D.main(){;}
47.人们提出了用______的原理来设计软件,这就是软件工程学诞生的基础。
A.计算机科学B.数学C.工程学D.运筹学
48.程序中头文件typel.h的内容是#defineN5#defineM1N*3#define"typel.h"#defineM2N*2main(){inti;i=M1+M2;printf("%d\n",i);}程序编译后运行的输出结果是
A.10B.20C.25D.30
49.十进制数124转换成二进制数是()
A.111l010B.1111100C.1011111D.1111011
50.函数调用strcat(strcpy(str1,str2),str3)的功能是()。
A.将字符串str1复制到字符串str2中后再连接到字符串str3之后
B.将字符串str1连接到字符串str2之后再复制到字符串str3之后
C.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后
D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中
51.下列程序的输出结果是______。#includesub1(chara,charb){charc;c=a;a=b;b=c;}sub2(char*a,charb){charc;c=*a;*a=b;b=c;}sub3(char*a,char*b){charc;c=*a;*a=*b;*b=c;}{chara,b;a='A';b='B';sub3(&a,&b);putchar(a);putchar(b);a='A';b='B';sub2(&a,b);putchar(a);prtchar(b);a='A';b='B';sub1(a,b);putchar(a);putchar(b);}
A.BABBABB.ABBBBAC.BABABAD.BAABBA
52.以下程序(程序左边的数字为附加的行号)______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}
A.没有错B.第1行有错C.第6行有错D.第7行有错
53.下列程序的运行结果为()。#include<stdio.h>voidabc(char*str){inta,b,i,j;for(i=j=0;str[i]!='\0';i++)if(str[i]!='a')str[j++]=str[i];str[j]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]%s",str);}
A.str[]=bcdefB.str[]=abcdefC.str[]=aD.str[]=ab
54.下列叙述中正确的是()。
A.显示器和打印机都是输出设备B.显示器只能显示字符C.通常的彩色显示器都有7种颜色D.打印机只能打印字符和表格
55.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序运行后的输出结果是______。
A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5
56.组成计算机网络的最大好处是()
A.进行通话联系B.资源共享C.发送电子邮件D.能使用更多软件
57.当调用函数时,实参是一个数组名,则向函数传送的是______。
A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值
58.有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)()。inta[10]={0,1,2,3,4,5,6,7,8,9},*P=a;
A.a[P-a]B.*(&a[i])C.P[i]D.*(*(a+i))
59.下面程序的输出结果是()。#defineSQR(X)2*X+1main(){inta,b,C;a=3;b=2;C=1;a*=SQR(b+c)/SQR(b+c);printf("%d",a);}
A.3B.18C.21D.24
60.在下列选项中,没有构成死循环的是()。
A.inti=100;while(1){i=i%100+1;if(i>100)break;}
B.for(;;);
C.intk=10000;do{k++;}while(k>10000);
D.ints=36;while(s)--s;
四、选择题(20题)61.以下选项中,不合法的C语言用户标识符是()。A.a-一bB.AaBeC.a_bD.一1
62.
63.有以下程序:#include<stdio.h>structS{inta,b;)data[2]=10,100,20,200);main(){structSp=data[l];printf("%d\n",++(p.a));}程序运行后的输出结果是()。A.10B.11C.20D.21
64.
65.
66.有如下程序:
main
{inta=2,b=-1.c=2;
if(a<b)if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
该程序的输出结果是()。A.A.0B.1C.2D.3
67.有以下程序:
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");}}
若要按以下形式输出数组右上半三角
1234
678
1112
16
则在程序下划线处应填入的是()。A.A.i-1B.iC.i+1D.4一i
68.下列数据结构中,能够按照‘‘先进后出”原则存取数据的是()。A.循环队列B.栈C.队列D.二叉树
69.在面向对象方法中,()描述的是具有相似属性与操作的一组对象。
A.属性B.事件C.方法D.类
70.
71.
72.已知字母A的ASCII码为十进制的65,下面程序的输出为()。
voidmain()
{charch1,ch2;
ch1=’A’+’5’-’3’;
ch2=’A’+6-3;
printf("%d,%c\n",ch1,ch2);
}
A.67,DB.B,CC.C,DD.不确定的值
73.有以下程序:
程序的运行结果是()。
A.0B.9C.6D.8
74.
75.有以下程序:
#include<stdio.h>
main()
{FILE*fp;inti,k=0,n=0;
fp=fopen("d1.dat","wb+");
for(i=1;i<4;i++)fprintf(fp,"%d",i);
fclose(fp);
fp=fopen("d1.dat","r");
fseek(fp,1L,SEEK_SET);
fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);
fclose(fp);
}
执行后输出结果是()。
A.12B.1230C.123D.230
76.有以下程序:
程序运行后的输出结果是()。
A.1B.2C.3D.4
77.有以下程序:
程序运行后的输出结果是()。
A.7,4B.4,10C.8,8D.10,10
78.结构化程序设计主要强调的是
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性
79.有以下程序:
当执行程序时从键盘上输入HelloBeijing<;回车>;,则程序运行后的输出结果是()。
A.hellobajiIlg
B.HelloBeijing
C.HELLOBEIJING
D.hELLOBeijing
80.软件详细设计产生的图如图所示。该图是()。A.N—S图B.PAD图C.程序流程图D.E—R图
五、程序改错题(1题)81.下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!
六、程序设计题(1题)82.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
参考答案
1.Bstructdate中包含year、month、day这3个整型变量,一个整型变量占2个字节;sizeof是求所占字节数的运算符。
2.B“printf(“%C\\n”,‘A’+X),x=0X9;”中0x9是十六进制数,转为十进制数x=9。“printf(“%C\\n”,‘A’+9);”,输出格式要求是“%c”,因此将字符‘A’按字母顺序向后偏移9个位置,可得结果为“J”。故本题答案为B选项。
3.Cfor循环中,函数f的返回值累加到变量a中。第1次循环,a=0,i=0,返回值a=0*0+1=1;第2次循环,a=1,i=10,返回值a=10*10+1+1=102;第3次循环,a=102,i=20,返回值a=20*20+1+102=503;第4次循环a=503,i=30,不符合1<30,跳出循环,最后结果输出a=503。故本题答案为C选项。
4.D
5.D
6.Cc)【解析】根据二分法查找法需要两次:①首先将60与表中间的元素55进行比较,由于60大于55,所以性表的后半部分查找。②第二次比较的元素是后半部分的中间元素,将60与表中间的元素70进行比较,由于60小于70,所以性表的前半部分查找。③第三次比较的元素是前半部分的中间元素,即60,这时两者相等,即查找成功。
7.B解析:通过分析不难写出,f()函数的数学表达式为:
f(n)=1n=l;
f(n)=f(-1)+1n≠1;
在主函数中for循环执行了两次函数调用f(i)。第一次:i为1,调用f(1)得到返回值1,并把它加到j中,j的值为1。第二次i为2,调用f(n),根据递归公式可知f(2)=f(1)+1,得到返回值2并把它加到j中,j的值为3。所以最后输出,i的值为3。
8.Cmain函数定义3行3列的整型二维数组a;定义数组指针P,P指向包含3个元素的数组。程序首先将a赋给p。for循环中,i=0时,P指向a的第1个元素{0,1,2},输出p[0]即0;i=1时,p指向a的第2个元素{3,4,5},输出P[1]即4;i=2时,p指向a的第3个元素{6,7,8},输出P[2]即8。所以程序输出048。故本题答案为C选项。
9.B【答案】:B
【知识点】:软件生命周期
【解析】:一个软件产品或软件系统要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生命周期。它把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。通常,软件生存周期包括可行性分析与开发项计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护等活动,可以将这些活动以适当的方式分配到不同的阶段去完成。故选B。
10.B
11.B
12.D
13.A
14.A用户标识符不能以数字开头,C语言中标识符是区分大小写的,关键字不能用做用户标识符。
15.B
16.C\r\n软件工程是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。软件工程的主要思想是强调在软件开发工程中需要应用工程化的原则。软件工程用来解决以下问题:软件需求的增长得不到满足、软件开发成本和进度无法控制、软件质量难以保证、软件不可维护或维护程度低、软件得成本不断提高、软件开发生产率的提高赶不上硬件的发展和应用需求的增长。软件项目的管理、软件产品的生产率、软件开发中的技术都是软件工程需要解决的部分问题。因此选项C正确。
17.C
18.C本题中由循环条件可知遇到‘\\0’或x与y所指的字符的值不等中的一个条件时就结束,所以功能是统计x和y所指字符串中最前面连续相同的字符个数。
19.B
20.C学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C项。
21.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用两重循环。在第一层循环中将每行的第0列赋值为1,对角线上的元素赋值为1显然在第一个空中应该填入对角线上的元素即x[i][i],在第二重循环中给每行其他元素赋值,而在每行中除了第0列和对角线的元素外其他元素为其对应的上一行中同列和同列的前一列的元素相加,所以在第二个空中应该填入x[i-1][j-1]+x[i-1][j]。
22.消息消息解析:对象之间进行通信的构造叫做消息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。
23.加工加工解析:数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。其中的每一个加工对应一个处理模块。
24.11解析:在执行逻辑表达式“j=!ch&&i++”时,首先判断j=!ch的值,因为“ch='$'”不为0,所以“j=!ch=0”,编译系统便不再计算表达式“i++”的值,i的值不变,仍为1。
25.3535解析:在主函数中通过定义和赋初值使p和q分别指向了x和y,执行函数调用“swap(p,q)”,把p和q中的地址值传给了形参指针变量a和b,a和b分别指向7实参x和y。在函数swap()中交换了指针变量a和b的值,并没有交换a和b指向的实参的值,所以函数调用返回后x和y依旧是原来的值。
26.线性结构线性结构解析:数据的逻辑结构是指数据元素之间的逻辑关系,分为线性结构和非线性结构。常见的线性结构有线性表、栈和队列等,常见的非线性结构有树、二叉树等。
27.IHAVEATEST.
28.->->解析:结构变量abc有成员a,并有指针pabc指向结构变量abc,则引用变量abc成员a的形式有abc.a和p_abc->a。
29.冒泡排序冒泡排序解析:交换排序是指借助数据元素之间的互相交换进行排序的一种方法。冒泡排序是一种最简单的交换排序方法,它是通过相邻元素之间的相互交换逐步将线性表变成有序。
30.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
31.66解析:本题中,i,j分别为外循环和内循环的循环控制变量,外层循环共执行了4次。当i=1时,由于内层循环判断条件(2<=1)为假不执行内层循环。当i=2时,执行内层循环,输出一个#;当i=3时,内层循环循环两次,输出两个#;当i=4时,内层循环循环三次,输出三个#;当i=5时,循环判断条件不成立,退出外层循环。所以一共输出6个#。
32.66解析:条件运算符的优先级高于赋值运算符,因此本题先计算关系个表达式(*ptr+y)<x)?(ptr+y):x的值,再赋绐变量z,当y=O时,*(ptr+y)=2,而x=8,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(pry)=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。
33.内模式或物理模式或存储模式内模式或物理模式或存储模式解析:一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据库内部的表示方法。例如,记录的存储方式是顺序存储、索引按照什么方式组织;数据是否压缩存储,是否加密等。
34.k-1k-1解析:第一处应该是定义的某个变量,读程序可知,变量k没有定义,所以此处应填入k。字符串的倒序,就是将首尾对应的字符(数组元素)两两交换。可用两个游标变量i和j分别代表前端元素的下标和后端元素的下标,交换以这两个变量值为下标的元素str[i]和str[j]。开始时,i的值为0,j的值为字符串末元素的下标(字符串长度减1)。每次交换后,i增1,j减1。继续交换的条件是str[i]仍然位于str[j]的前面,即i<j。字符串末元素的下标是它的长度减1,所以在第二处应填入-1。
35.33解析:C语言的语法规定:else子句总是与前面最近的不带else的if相结合。因为x不大于y,所以执行printf('%d\\n',z);语句。
36.double或双精度型double或双精度型解析:C语言中,如果运算符两边的数据类型不同,将进行类型转换,根据转换规则,短整型转为长整型;整型转换为实型。注意:数据类型的强制转换。
37.n+1n+1解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为0的结点多一个。
38.n-1jn-1\r\nj解析:此题采用了do…while循环内嵌for循环的双层循环结构来实现了数组元素的排序。数组元素通过首地址和数组下标的方式来引用的。
39.存储结构
40.261261解析:在控制格式符中“o”代表的是将数据按八进制数输出,十进制数的177代表的八进制数是261。
41.B解析:考查结构体数组对结构体成员的引用。结构体数组中对结构体成员的引用要先引用到数组元素,然后像对待普通的结构体变量一样来对待结构体数组元素。
42.B解析:本题中首先定义了三个整型变量x、y和z并分别赋值为0、5和3,while循环的判定条件为z-->0&&++x<5,由于x的初值为3,所以当z--执行3次后,z-->0将不在成立,又由于x的初值为0,所以++x执行5次,++x<5将不再成立,而它们两个表达式的值为逻辑与的关系,故当z-->0不成立时整个表达式的值为假,因此该循环共执行了3次,即语句y=y-1共执行了三次,但while循环的判定表达式却执行了四次,故起最后输出的x、y、z的值分别为3,2,-1,所以,4个选项中选项B符合题意。
43.D解析:本题考查了软件工程的基本概念。软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制和管理。
44.C解析:算法的时间复杂度实际上就是执行算法程序所需要的计算工作量。为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使用的程序设计语言、执行算法程序时所使用的计算的工具以及程序员的水平无关。选项A错误,因为同一算法程序在运行速度不同的计算机上运行时,其计算时间是不同的。选项B错误,因为算法所编写的程序长度往往与程序设计语言以及程序员的水平有关,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同。选项D错误,因为根据一个算法所编制出的程序之中,其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指令条数来度量算法的时间复杂度。所以,本题正确答案为C。
45.C解析:本题主要考查二维数组的使用。题中利用for循环来输出x数组中的指定元素:①当j=0时,输出x[0][2]=3;②当i=1时,输出x[1][1]5;③当i=2时。输出x[2][0]=7。
46.D解析:本题考查语句的基本构成。选项A)中j=5后面少了一个分号:选项B)中少了“}”;选项C)不是一个完整的函数定义格式,一个完整的函数定义格式还包括一对花括号:选项D)正确,是一个空语句。
47.C
48.C解析:本题考查的知识点是“文件包含”。编译预处理时,用“typel.h”中的内容替代命令ginclude”typel.h'。表达式“i=M1+M2”经过宏替换为“i=5*3+5*2”即i=25,所以最后输出的i的值为25。所以4个选项中C正确。
49.B
50.C解析:strcat(s1,s2)是把s2字符串连接到s1字符串末尾,strcpy(s1,s2)是把s2字符串复制给s1字符串,要保证s1能容纳下连接或复制后的字符串。
51.A
52.B解析:字符串复制函数strcpy包含在头文件string.h中,因此,程序中的第1行文件包含命令是错误的。
53.A解析:本题考查函数调用时的参数传递。通过函数abc的执行,将字符串中的字母a去掉,保留剩下的。由于是通过指针调用,所以改变字符串的结果。
54.A
55.B解析:主函数中先定义了一个整型变量a,一个字符变量c并赋初值10,一个浮点型变量f并赋初值100.00和一个double型x,接着执行a=f/=c*=(x=6.5),该语句从右向左计算,先把6.5赋值给x(该括号表达式的值也为6.5),此时x的值变为6.5,然后执行c*=(x=6.5)相当于执行c=c*(x=6.5),此时c的值为65,接着向左执行f/c*=(x=6.5),语句相当于执行f=f/c,所以f的值为100/65≈1.538。接着向最右边执行“a=f”,由于a是整型变量,所以a最后去f的整数部分为1。程序最后输出的a、c、f和x的值(f和x只保留小数点后面1位)分别为1、65、1.5、6.5。所以,4个选项中选项B符合题意。
56.B
57.B解析:当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址,函数中的形参可定义成以下三种形式:
①形参定义成数组;
②形参定义成可变长数组:
③形参定义为指针变量。
58.D解析:本题考查数组指针的应用。选项D)第一层括号中为数组a中第i项元素的值,外面再加指针运算符没有意义。
59.C解析:以b+c代替参数x,a*=a*(2*b+c+1/2*b+c+1)=3*(2*2+1+1/2*2+1+1)=21。
60.D解析:选项A)的循环表达式条件永久为1,由于小于100的数与100取余不超过99,所以在循环体内表达式i%100+1的值永远不大于100,break语句永远不会被执行,所以是死循环;选项B)的括号内没有能使循环终止的条件,是死循环;选项C)中先执行k++,使k=10001,陷入死循环;选项D)中的s从36开始,每循环一次就减小1,直到s为0,循环结束,不会构成死循环。
61.A用户标识符命名规则为:由数字、字母或下划线组成,且首字母不能是数字.不能和关键字重复,所以A)错误.
62.D
63.D考查结构体的应用,答案为21。
64.B
65.C
66.Celse与离它最近的if构成if…else语句,而当a为2时,第一个if语句不成立,因此什么也不做,即c的值仍然为2,故选择C选项。
67.B本题中要求输出右上半角的数,对角线上的数的下标相同,所以j=i。
68.B栈是按先进后出的原则组织数据的;队列是按先进先出的原则组织数据的,因此本题答案为B)。
69.D解析:类(calss)描述的是具有相似属性与操作的一组对象,而一个具体对象则是其对应类的一个实例。
70.C
71.D
72.A将字符进行运算时,进行运算的是ASCII值,所以ch1=65+2=67(‘5’与’3’的ASCII值差为2),ch2=65+6-3=68.
73.C函数intf(intx)是一个递归函数调用,
74.C
75.D文件操作;fscanf:从一个流中执行格式化输入fprintf:传送格式化输出到一个文件中.
76.A在函数point函数调用时,系统自动为函数的形参P分配内存空间,并赋值为实参P的值。当执行语句P+=3;时,系统操作的是形参P的内存空间,更改形参P的内容,而实参指针变量P的值未受影响,即指针变量作为函数参
77.Bslrlen用来返回字符串的长度,而sizeof返回的是一个对象或者类型所占的内存字节数,即数组所占的内存。
78.D结构化程序设计由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主张“清晰第一,效率第二”,以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,为设计一些较大的软件打下了良好的基础。
由于模块相互独立,因此,在设计其中一个模块时,不会受到其他模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为可以充分利用现有的模块作为积木式的扩展。
结构化程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。自顶向下、逐步求精的程序设计方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图;“单入口单出口”的思想认为一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一定是一个单入口单出口的程序。据此就很容易编写出结构良好、易于调试的程序。
79.C主程序读取整个字符串存于s中,调用fun函数。字符指针c指向数组S。函数fun的功能是把指针C所指向的字符数组中的所有小写字符转换为大写。嚣cts函数可以把空格作为字符串的一部分输入,以回车作为输入结束。如果·c为小写字符,则}C={C一32(转大写)。因此C选项正确。
80.CN-S图(也被称为盒图或CHAPIN图)、PAD(问题分析图)及PFD(程序流程图)是详细设计阶段的常用工具。E—R图即实体一联系图,是数据库设计的常用工具。从题中图可以看出该图属于程序流程图。
81.
(1)}t=0;
(2)if(d%21=0)或if(d%2==1)
【考点分析】
本题考查:指针型变量作为函数参数;if语句条件表达式,结合奇偶数的表示方法来确定该表达式内容。
【解题思路】
(1)由函数定义可知,变量t是指针变量,所以对t进行赋初值0是不对的。因为t指向的是存放新数的变量,所以此处应给新数赋初值0,即。t=0。
(2)变量d表示数S各个位上的数,此处的if条件应为判断d是否为奇数。
82.\n#include'stdio.h'
\n#defineN3
\nstructstudent
\n{longstu_num;charsex;
\ncharname[15];intscore[4];
\nfloataverage;};
\nmain
\n{intI,j,index;floatsum,max;
\nstructstudentstuarr[N];
\nfor(I=0;I{printf('pleaseinput%dstudentinformation:\\n',I+1);
\nscanf('%ld,%c,%s',&stuarr[I].stu_num,&stuarr[I].sex,stuarr[I].name);
\nfor(j=0;j<4;j++)
\nscanf('%d',&stuarr[I].score[j]);}
\nfor(I=0;I{sum=0.0;
\nfor(j=0;j<4;j++)
\nsum+=stuarr[I].score[j];
\nstuarr[I].average=sum/4.0;}
\nmax=stuarr[0].average;
\nindex=0;
\nfor(I=1;Iif(stuarr[I].average>max)
\n{max=stuarr[I].average;
\nindex=I;}
\nprintf('总平均成绩最高的学生信息是学号=%ld,性别=%c,姓名=%s,平均成绩=%4.1f\\n',stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stuarr[index].average);
\n}\n2021年广东省揭阳市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列程序的运行结果为()。#include<stdio.h>main{structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}A.8B.6C.10D.12
2.有以下程序:#include<stdio.h>main(){intx=0x9;printf(“%c\n”,‘A’+x);}程序运行后的输出结果是()。
A.IB.JC.KD.H
3.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf(“%3.0f\n”,a);}doublef(doublex)}returnx*x+1;}程序的运行结果是()。
A.500B.401C.503D.1404
4.
5.算法的效率的分析主要包括两个方面()。
A.时间复杂度和空间复杂度B.正确性和简单性C.可读性和文档性D.数据复杂性和程序复杂性
6.对序线性表23,29,34,55,60,70,78用二分法查找值为60的元素时,需要比较次数为()
A.1B.2C.3D.4
7.有以下程序:intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf("%d\n",j);}程序运行后的输出结果是()。
A.4B.3C.2D.1
8.有以下程序:#include<stdio.h>main(){inta[3][3]={0,1,2,3,4,5,6,7,8},(*p)[3],i;p=a;for(i=0;i<3;i++){printf(“%d”,(*p)[i]);p++;}}程序的运行结果是()。
A.036B.012C.048D.147
9.软件生命周期中的活动不包括()
A.软件维护B.市场调研C.软件测试D.需求分析
10.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。
A.13B.33C.18D.40
11.
12.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,可以采用下列哪一种查找方法()
A.分块B.顺序C.折半D.哈希
13.
14.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是()。
A.预定义标识符(如库函数中的函数名)可用做用户标识符,但失去原有含义
B.用户标识符可以由字母和数字任意顺序组成
C.在标识符中大写字母和小写字母被认为是相同的字符
D.关键字可用做用户标识符,但失去原有含义
15.对初始状态为递增序列的数组按递增顺序排序,最省时间的是插入排序算法,最费时间的算法是()
A.堆排序B.快速排序C.插入排序D.归并排序
16.下列描述中正确的是()。
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
17.设栈S的初始状态为空,6个元素入栈的顺序为e1,e2,e3,e4,e5和e6。若出栈的顺序是e2,e4,e3,e6,e5,el,则栈s的容量至少应该是()。
A.6B.4C.3D.2
18.有以下函数:intfun(char*x,char*y)intn=0;while((*x==*y)&&*x!=‘\0’)∣x++;y++;n++;∣returnn;函数的功能是()。A.将y所指字符串赋给x所指存储空间
B.查找和y所指字符串中是否有‘\0’
C.统计x和y所指字符串中最前面连续相同的字符个数
D.统计x和y所指字符串中相同的字符个数
19.定义根节点深度为1,有n个元素的完全二叉树的深度是()
A.D(n)=log2(n)
B.D(n)=1+log2(n)
C.D(n)=n+log2(n)
D.D(n)=1+n*log2(n)
20.设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩.,则表SC的关键字(键或码)为()
A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩
二、2.填空题(20题)21.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1
11
121
1331
14641
┇
其构成规律是:
(1)第0列元素和主对角线元素均为1
(2)其余元素为其左上方和正上方元素之和
(3)数据的个数每行递增1
请将程序补充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;
x[0][0]=1;
for(i=1;i<N;i++)
{x[i][0]=【】=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
}
22.在面向对象方法中,对象之间进行通信的构造称为()。
23.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。
24.已定义charch='$';inti=1,j;,执行j!=ch&&i++以后,i的值为______。
25.下面程序的运行结果是______。
voidswap(int*a,int*B)
{
int*t;
t=a;a=b;b=t;
}
main()
{
intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
26.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。
27.若输入Ihaveatest.#,则以下程序的运行结果为【】。
#include<stdio.h>
main()
{FILE*fp;
charstr[100],filename[10];
inti=0;
if((fp=fopen("test","w"))==NULL)
{printf("cannotopenthefile!\n");
exit(0);
}
getchar();
gets(str);
while(str[i]!='#')
{if(str[i]>='a'&&str[i]<='z')
str[i]=str[i]-32;
fputc(str[i],fp);
i++;
}
fclose(fp);
fp=fopen("test","r");
fgets(str,strlen(str)+1,fp);
printf("%s\n",str);
fclose(fp);
}
28.设有定义:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
则对结构体成员a的引用方法可以是abc.a和p_abc【】a。
29.最简单的交换排序方法是______。
30.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
31.执行以下程序后,输出‘#’号的个数是【】。
#include<atdio.h>
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
32.下列程序的输出结果是【】。
main()
{
inta[]={2,4,6},*prt=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y<x)?*(ptr+y):x;
printf("%d\n",z);
}
33.数据的物理结构在计算机存储空间中的存放形式称为数据的【】。
34.下面程序的功能是将一个字符串str的内容倒序,请填空。
#inelude<stdio.h>
#include<strins.h>
main()
{inti,j,【】;
charstr[]={"1234567"};
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;}
printf("%s\n",str);
}
35.阅读下面程序,则执行后的输出结果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
36.若有以下定义:
chara;intb;
floatc;doubled;
则表达式a*b+d-c值的类型为【】。
37.某二叉树中度为2的结点有n个,则该二叉树中有【】个叶子结点。
38.本程序用改进冒泡法对数组a[n]的元素从小到大排序,请在程序空白处填空。
voidbubble(inta[],intn)
{intj,k,jmax,temp;
jmax=【】;
do{
k=0;
for(j=0;j<jmax;j++)
if(a[j]>a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;k=【】;
jmax=k;
}while(jmax>0);}
39.数据结构分为逻辑结构与存储结构,线性链表属于【】。
40.以下程序的输出结果是【】。
main()
{inta=177;
printf(“%o\n”,A);
}
三、1.选择题(20题)41.若有以下的说明,对初值中整数2的正确引用方式是
staticstruct
{charch;
inti;
doublex;
}a[2][3]={{{′a′,1,3,45},{′b′,2,7,98},{′c′,31,93}}};
A.a[0][1].chB.a[0][1].iC.a[0][0].iD.a[0][2].i
42.有以下程序:main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序执行后的输出结果是
A.3,2,0B.3,2,-1C.4,3,1D.5.-2,-5
43.下列不属于软件工程的3个要素的是______。
A.工具B.过程C.方法D.环境
44.算法的时间复杂度是指______。
A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数
45.定义如下变量和数组:inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是()。for(i=0;i<3;i++)printf("%d",x[i][2-i]);
A.159B.147C.357D.369
46.下列写法正确的是()。
A.main(){inti=3,j;j=5}
B.main(){inti=3;
C.main()
D.main(){;}
47.人们提出了用______的原理来设计软件,这就是软件工程学诞生的基础。
A.计算机科学B.数学C.工程学D.运筹学
48.程序中头文件typel.h的内容是#defineN5#defineM1N*3#define"typel.h"#defineM2N*2main(){inti;i=M1+M2;printf("%d\n",i);}程序编译后运行的输出结果是
A.10B.20C.25D.30
49.十进制数124转换成二进制数是()
A.111l010B.1111100C.1011111D.1111011
50.函数调用strcat(strcpy(str1,str2),str3)的功能是()。
A.将字符串str1复制到字符串str2中后再连接到字符串str3之后
B.将字符串str1连接到字符串str2之后再复制到字符串str3之后
C.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后
D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中
51.下列程序的输出结果是______。#includesub1(chara,charb){charc;c=a;a=b;b=c;}sub2(char*a,charb){charc;c=*a;*a=b;b=c;}sub3(char*a,char*b){charc;c=*a;*a=*b;*b=c;}{chara,b;a='A';b='B';sub3(&a,&b);putchar(a);putchar(b);a='A';b='B';sub2(&a,b);putchar(a);prtchar(b);a='A';b='B';sub1(a,b);putchar(a);putchar(b);}
A.BABBABB.ABBBBAC.BABABAD.BAABBA
52.以下程序(程序左边的数字为附加的行号)______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}
A.没有错B.第1行有错C.第6行有错D.第7行有错
53.下列程序的运行结果为()。#include<stdio.h>voidabc(char*str){inta,b,i,j;for(i=j=0;str[i]!='\0';i++)if(str[i]!='a')str[j++]=str[i];str[j]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]%s",str);}
A.str[]=bcdefB.str[]=abcdefC.str[]=aD.str[]=ab
54.下列叙述中正确的是()。
A.显示器和打印机都是输出设备B.显示器只能显示字符C.通常的彩色显示器都有7种颜色D.打印机只能打印字符和表格
55.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序运行后的输出结果是______。
A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5
56.组成计算机网络的最大好处是()
A.进行通话联系B.资源共享C.发送电子邮件D.能使用更多软件
57.当调用函数时,实参是一个数组名,则向函数传送的是______。
A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值
58.有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)()。inta[10]={0,1,2,3,4,5,6,7,8,9},*P=a;
A.a[P-a]B.*(&a[i])C.P[i]D.*(*(a+i))
59.下面程序的输出结果是()。#defineSQR(X)2*X+1main(){inta,b,C;a=3;b=2;C=1;a*=SQR(b+c)/SQR(b+c);printf("%d",a);}
A.3B.18C.21D.24
60.在下列选项中,没有构成死循环的是()。
A.inti=100;while(1){i=i%100+1;if(i>100)break;}
B.for(;;);
C.intk=10000;do{k++;}while(k>10000);
D.ints=36;while(s)--s;
四、选择题(20题)61.以下选项中,不合法的C语言用户标识符是()。A.a-一bB.AaBeC.a_bD.一1
62.
63.有以下程序:#include<stdio.h>structS{inta,b;)data[2]=10,100,20,200);main(){structSp=data[l];printf("%d\n",++(p.a));}程序运行后的输出结果是()。A.10B.11C.20D.21
64.
65.
66.有如下程序:
main
{inta=2,b=-1.c=2;
if(a<b)if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
该程序的输出结果是()。A.A.0B.1C.2D.3
67.有以下程序:
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");}}
若要按以下形式输出数组右上半三角
1234
678
1112
16
则在程序下划线处应填入的是()。A.A.i-1B.iC.i+1D.4一i
68.下列数据结构中,能够按照‘‘先进后出”原则存取数据的是()。A.循环队列B.栈C.队列D.二叉树
69.在面向对象方法中,()描述的是具有相似属性与操作的一组对象。
A.属性B.事件C.方法D.类
70.
71.
72.已知字母A的ASCII码为十进制的65,下面程序的输出为()。
voidmain()
{charch1,ch2;
ch1=’A’+’5’-’3’;
ch2=’A’+6-3;
printf("%d,%c\n",ch1,ch2);
}
A.67,DB.B,CC.C,DD.不确定的值
73.有以下程序:
程序的运行结果是()。
A.0B.9C.6D.8
74.
75.有以下程序:
#include<stdio.h>
main()
{FILE*fp;inti,k=0,n=0;
fp=fopen("d1.dat","wb+");
for(i=1;i<4;i++)fprintf(fp,"%d",i);
fclose(fp);
fp=fopen("d1.dat","r");
fseek(fp,1L,SEEK_SET);
fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);
fclose(fp);
}
执行后输出结果是()。
A.12B.1230C.123D.230
76.有以下程序:
程序运行后的输出结果是()。
A.1B.2C.3D.4
77.有以下程序:
程序运行后的输出结果是()。
A.7,4B.4,10C.8,8D.10,10
78.结构化程序设计主要强调的是
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性
79.有以下程序:
当执行程序时从键盘上输入HelloBeijing<;回车>;,则程序运行后的输出结果是()。
A.hellobajiIlg
B.HelloBeijing
C.HELLOBEIJING
D.hELLOBeijing
80.软件详细设计产生的图如图所示。该图是()。A.N—S图B.PAD图C.程序流程图D.E—R图
五、程序改错题(1题)81.下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!
六、程序设计题(1题)82.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
参考答案
1.Bstructdate中包含year、month、day这3个整型变量,一个整型变量占2个字节;sizeof是求所占字节数的运算符。
2.B“printf(“%C\\n”,‘A’+X),x=0X9;”中0x9是十六进制数,转为十进制数x=9。“printf(“%C\\n”,‘A’+9);”,输出格式要求是“%c”,因此将字符‘A’按字母顺序向后偏移9个位置,可得结果为“J”。故本题答案为B选项。
3.Cfor循环中,函数f的返回值累加到变量a中。第1次循环,a=0,i=0,返回值a=0*0+1=1;第2次循环,a=1,i=10,返回值a=10*10+1+1=102;第3次循环,a=102,i=20,返回值a=20*20+1+102=503;第4次循环a=503,i=30,不符合1<30,跳出循环,最后结果输出a=503。故本题答案为C选项。
4.D
5.D
6.Cc)【解析】根据二分法查找法需要两次:①首先将60与表中间的元素55进行比较,由于60大于55,所以性表的后半部分查找。②第二次比较的元素是后半部分的中间元素,将60与表中间的元素70进行比较,由于60小于70,所以性表的前半部分查找。③第三次比较的元素是前半
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025标准物流运输合同样本
- 2025长沙办公楼租赁合同范本
- 2025【企业短期融资借款合同】公司短期融资合同
- 2025年GPS接收设备及其综合应用系统合作协议书
- 2025幕墙设计与施工合同范本
- 2025实习生聘用合同模板与协议范本
- 2025年聚阴离子纤维素合作协议书
- 2025如何规避装修合同风险:专家提供的策略与指南
- 2025合同范本在应用软件代理中的运用研究
- 2025网络旅行社合作合同协议书
- ISOTS 22163专题培训考试
- 六年级下册数学课件-第4单元 比例 整理和复习 人教版(共21张PPT)
- JJF(鲁) 142-2022 称重式雨量计校准规范
- Adobe-Illustrator-(Ai)基础教程
- 程序的运行结果PPT学习教案
- 圆柱钢模计算书
- 合成宝石特征x
- 查摆问题及整改措施
- 年度研发费用专项审计报告模板(共22页)
- 隧道工程隧道支护结构设计实用教案
- 得力打卡机破解Excel工作表保护密码4页
评论
0/150
提交评论