版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年黑龙江省七台河市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.运行下列程序,若从键盘输入字符“a”,则输出结果是()。
charc;
c=getchar;
if(c>=a&&c<=g)c=c+4:
elseif(c>=9&&c<=2)c=c-21:
elseprintf("inputerror!\n");
putchar(c);
A.fB.tC.eD.d
2.若f(n)=3n2+2n+1,则f(n)=()。
A.O(n2)B.O(n)C.O(2n)D.O(3n2)
3.
4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储()。
A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法
5.
6.已有定义int(*q)(),指针q可以()。
A.指向函数的入口地址B.代表函数的返回值C.表示函数的类型D.表示函数返回值的类型
7.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,可以采用下列哪一种查找方法()
A.分块B.顺序C.折半D.哈希
8.
9.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是()。
A.预定义标识符(如库函数中的函数名)可用做用户标识符,但失去原有含义
B.用户标识符可以由字母和数字任意顺序组成
C.在标识符中大写字母和小写字母被认为是相同的字符
D.关键字可用做用户标识符,但失去原有含义
10.若在线性表中采用折半查找法查找元素,该线性表应该()A.元素按值有序B.构采用顺序存储结C.元素按值有序且采用顺序存储结构D.元素按值有序且采用链式存储结构
11.下列程序的执行结果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}
A.266B.11C.265D.138
12.有以下程序:#include<stdio.h>#deflneS1(z)4*z+4*(z)#defineS2(x,y)4*(x)*(y)+y*xmain(){inta=1,b=2;printf(“%d,”,S1(a+b));printf(“%d,”,S2(a,b)+S1(3));printf(“%d”,S2(3+a,b+3));}程序运行后的输出结果是()。
A.18,34,100B.24,34,92C.24,34,100D.18,34,92
13.
14.在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。
A.详细设计B.需求分析C.总体设计D.编程调试
15.有以下程序:
程序的运行结果是()。
A.y=0B.y=1C.y=2D.y=3
16.C语言中最简单的数据类型包括()。
A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.字符型、实型、逻辑型
17.假定a为一个整型数组名,则元素a[4]的字节地址为()。
A.a+4B.a+8C.a+16D.a+32
18.以下程序的输出结果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0
19.有以下程序:structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序运行后的输出结果是______。
A.SunDan20044580
B.Penghua20045537
C.LiSiGUO20042580
D.SunDan20041703
20.已知有结构体:structsk{inta;floatb;}data,*p;若有p=&data,则对data的成员a的正确引用是()。
A.struct是结构体类型的关键字
B.st是结构体类型名
C.x、y、z都是结构体成员名
D.structstr是结构体类型名
二、2.填空题(20题)21.软件工程的出现是由于【】。
22.以下程序的输出结果是______。
voidreverse(inta[],intn)
{inti,t;
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n+1+i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf("%d\n",s);
}
23.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
24.若有如下定义,则该数组的第一维大小为【】。
intb[][4]={1,2,3,4,5,6,7,8,9);
25.有以下程序:
#include<stdio.h>
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
执行后的输出结果是【】。
26.下列程序的运行结果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
27.设有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
执行上面的程序段后,*(ptr+5)的值为______。
28.存储300个16×16点阵的汉字信息需要【】字节。
29.在结构化分析使用的数据流图中,使()解释其中的图形元素。
30.下面函数要求计算两个整数x,y之和,并通过形参返回该值,请填空。
add(intx,inty,【】z)
{【】=x+y;}
31.下面rotate函数的功能是:将n行n列的矩阵A转置为A',例如:
#defineN4
voidrotate(inta()[N])
{inti,j,t;
for(i=0;i<N;i++)
for(j=0;【】;j++)
{t=a[i][j];
【】;
a[j][i]=t;
}
}
32.下面程序的运行结果是______。
#defineN10
#defines(x)x*x
#definef(x)(x'x)
main()
{
inti1,i2;
i1-1000/s(N);i2=1000/f(N);
printf("%d%d\n",i1,i2);
}
33.下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。
#include<stdio.h>
#include<string.h>
main()
{chara[]="clanguage",t;
inti,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k;【】)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
printf("\n");
}
34.对软件是否能达到用户所期望的要求的测试称为【】。
35.函数fun的返回值是【】
fun(char*a,char*b)
{intnum=0,n=0;
while(*(a+num)!='\0')mm++;
while(b[n]){*(a+num)=b[n];num++;n++;}
returnnum;
}
36.在面向对象的程序设计中,类描述的是具有相似性质的一组【】。
37.下面程序由两个源程序文件:t4.h和t4.c组成,程序编译运行的结果是:【】。
t4.h的源程序为:
#defineN10
#dennef2(x)(x*N)
t4.c的源程序为:
#include<stdio.h>
#defineM8
#definef(x)((x)*M)
#include"t4.h"
#main()
{inti,j;
i=f(1+1);j=f2(1+1);
printf(%d%d\n",i,j);
}
38.按"先进后出"原则组织数据的数据结构是【】。
39.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
40.已知字母A的ASCII码为65。以下程序运行后的输出结果是______。
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,B);
}
三、1.选择题(20题)41.下列程序的输出结果是
#include"stdio.h"
main()
{inti,a=0,b=0;
for(i=1;i<10;i++)
{if(i%2==0)
{a++;
continue;}
b++;}
printf("a=%d,b=%d",a,b);}
A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5
42.下列描述中,正确的一条是______。
A.关系表达式的值是一个逻辑值,即“真”或“假”,可以赋给一个逻辑变量
B.在C语言中,判断一个量是否为:真”时,以0代表“假”,以1代表“真”.
C.设a=3、b=4、c=5,则表达式!(x=a)&&(y=b)&&0的值为0
D.一个数组的各个数组元素可属于不同的数据类型
43.设a、b和、c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式为()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
44.若二维数组a有m列,则在a[i][j]前的元素个数为()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
45.数据管理技术随着计算机技术的发展而发展。数据库阶段具有许多特点,但下面列出的特点中,______不是数据库阶段的特点。
A.数据结构化B.数据面向应用程序C.数据共享性高D.数据具有较高的独立性
46.有下列程序:
main()
{intt,a=1,b=5,C=-2;
while(a>b>C)
{t=a;a=b;b=t;c++;}
printf("%d,%d,%d",a,b,C);
}
程序的输出结果是()。
A.1,5,0B.1,5,-2C.5,1,-1D.5,1,-2
47.在单链表中,增加头结点的目的是______。
A.方便运算的实现B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性表的链式存储实现
48.以下选项中,能定义s为合法的结构体变量的是()。
A.typedefstructabc{doublea;charb[10];}s;
B.struct{doublea;charb[10];}s;
C.structABC{doublea;charb[10];}ABCs;
D.typedefABC{doublea;charb[10];}ABCs;
49.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。
A.函数的实参和其对应的形参共占同一存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的形参和实参分别占用不同的存储单元
50.指出下面不了确的赋值语句()。
A.a++;B.a==b;C.a+=b;D.a=1,b=1;
51.下列不正确的转义字符是()。
A.'\\'B.'t'C.'\n'D.'088'
52.下列的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是()。
#include<stdio.h>
main()
{chars1[]="chinese",s2[]="japnese";
inti;
for(i=0;sl1[i]!='\0'&&s2[i]!='\0';i++)
if(s1[i]==s2[i]&&i<7)
______,
}
A.putchar(s2[i]);putchar(i)
B.puts(s1[i],i)
C.printf("%c%d\n",s2[i],i)
D.printf("%c",s1[i]);printf("%d\n",i)
53.为了提高测试的效率,应该()。
A.随机选取测试数据
B.取一切可能的输入数据作为测试数据
C.在完成编码以后制定软件的测试计划
D.集中对付那些错误群集的程序
54.有以下函数char*fun(char*p){returnp;}该函数的返回值是______。
A.无确切的值B.形参p中存放的地址值C.一个临时存储单元的地址D.形参p自身的地址值
55.有以下程序:main(){inti=0,S=0;do{if(i%2){i++;continue;}i++;s+=i;)while(i<7);printf("%d\n",s);}执行后输出结果是()。
A.16B.12C.28D.21
56.下列数据结构中具有记忆功能的是()。
A.队列B.循环队列C.栈D.顺序表
57.在C语言中,下列关于文件操作的叙述正确的是()。
A.对文件操作必须先关闭文件B.对文件操作必须先打开文件C.对文件操作顺序没有统一规定D.以上全错
58.有以下程序
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3},i,n;
fp=fopen("d1.dat","w");
for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);
fprintf(fp,"\n");
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d",&n);
fclose(fp);
printf("%d\n",n);
}
程序的运行结果是
A.12300B.123C.1D.321
59.以下程序的输出结果是______。main(){inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=0;i<4;i+=2)printf("%d",p[i]);}
A.52B.51C.53D.97
60.下面程序的输出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A.k=11,k=12,k=11
B.k=-11,k=13,k=13
C.k=11,k=013,k=0xb
D.k=11,k=13,k=B
四、选择题(20题)61.有以下程序:
voidmain()
{chars[]="159",*p;
p=s;
printf("%c",*p++);printf("%c",*p++);
}
程序运行后的输出结果是()。
A.15B.16C.12D.59
62.
63.
64.
65.数据库设计中反映用户对数据要求的模式是()。
A.内模式B.概念模式C.外模式D.设计模式
66.有以下程序:
程序的运行结果是()。
A.1B.2C.3D.4
67.
68.下列叙述中正确的是()。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
69.
70.有以下程序intfun(intx,inty){return(x+y);}main{inta=1,b=2,C=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}执行后的输出结果是()。A.6B.7C.8D.9
71.以下选项错误的是
72.以下叙述中错误的是()。
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界的出错信息”
D)可以通过赋初值的方式确定数组元素的个数
73.有以下程序:
程序执行后变量w中的值是()。
A.5.21B.5C.5.0D.0.0
74.有以下程序:
voidmain()
{
inty=10;
while(y>>1){printf("y=%d\n",y);}
}
程序执行后的输出结果是()。
A.y=0
B.y=-1
C.y=1
D.while构成无限循环
75.设有定义
76.以下叙述中不正确的是
A.C语言中的文本文件以ASCII码形式存储数据
B.C语言中对二进制文件的访问速度比文本文件快
C.C语言中,随机读写方式不适用于文本文件
D.C语言中,顺序读写方式不适用于二进制文件
77.下面的程序段运行后,输出结果是()。
A.9B.不确定值C.0D.18
78.有以下程序:
程序运行后的输出结果是()。
A.3B.4C.5D.6
79.下列叙述中错误的是()。
A.列表框和组合框都有List属性
B.列表框有Selected属性,而组合框没有
C.列表框和组合框都有Style属性
D.组合框有Text属性,而列表框没有
80.
五、程序改错题(1题)81.以下程序可把输入的十进制数以十六进制数的形式输出。请在横线上填上适当的内容并把横线删除,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函
数时,不得使用c语言提供的字符串函数。
例如,字符串中的内容为:****A*BC*DEF*G*******删除*后字符串中的内容应当
是:ABCDEFG。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
参考答案
1.C
\ngetchar函数是读取键盘的输入函数,本题中输入字母“a”,则c=a,判断if条件,发现a>=a&&a<=g成立,则执行下列语句:C=C+4,C得到的字符的ASCII码值,退出if语句,通过putchar函数输出字符。
2.A
3.C
4.C
5.D
6.A解析:本题考查的是指向函数的指针。函数指针的定义方式是:类型标识符(*指针变量名)()。其中,“类型标识符”为函数返回值的类型;“指针”指向函数的入口地址。
7.D
8.C
9.A用户标识符不能以数字开头,C语言中标识符是区分大小写的,关键字不能用做用户标识符。
10.C
11.A解析:由于本题定义的是共用体,所以成员表列中的整型变量x与字符数组c共占用同一个存储单元,且此存储单元为2个字节,通常c[0]位于低字节,c[1]位于高字节,所以x.i的值为266。
12.D程序中S1和S2都是宏定义。S1(a+b)宏展开后的表达式为4*a+b+4*(a+b),即4*1+2+4*(1+2),结果为18;S2(a,b)宏展开后的表达式为4*(a)*(b)+b*a,即4*(1)*(2)+2*1,结果为10;S1(3)宏展开后的表达式为4*3+4*(3),结果为24;32(3+a,b+3)宏展开后的表达式为4*(3+a)*(b+3)+b+3*3+a,即4*(3+1)*(2+3)+2+3*3+1,结果为92。最终输出:18,34,92。故本题答案为D选项。
13.B
14.C解析:软件系统结构的总体设计包括:基于功能层次结构建立系统、按功能划分成模块的层次结构、确定每个模块的功能、建立与已确定的软件需求的对应关系、确定模块间的调用关系和模块间的接口、评估模块划分的质量等方面。详细设计的任务是:在使用程序设计语言编制程序以前,对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求,通常包括:功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求等。编程调试的任务是诊断和改正程序中潜在的错误。综上所述。软件功能分解只能发生在总体设计阶段。
15.D在程序中指针变量P初始指向a[3],执行P减1后,P指向a[2],语句y=*P的作用是把a[2]的值赋给变量y,所以输出为y=3。
16.B解析:选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)18.5%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等,所以a+7=c+b是错的。因此,正确答案是选项B),它相当于a=(b=c+2),可分解为两个表达式:b=c+2和a=b。
17.C
18.D因为a是结构体变量,最后一次输入的值为结构体中的值,即a中的任何一个值都为0。
19.B解析:f函数用了显式传地址的方式,因此主函数中的s值发生了变化。
20.B解析:本题主要考查结构类型的定义:struct是结构体类型的关键字;structstr是结构体类型名;x、y、z都是结构体成员名;st是结构变量名。
21.软件危机的出现软件危机的出现
22.在main函数中,调用reverse函数将b数组中的前8个成员进行互置,执行完毕后,b数组中的成员为{8,7,6,5,4,3,2,1,9,10},然后再执行for循环结构,将b[6],b[7]…b[9]的值相加,结果为盟。\r\n\r\n
23.调试调试
24.33解析:在初始化一个含有未指定维度的数组时,C语言总是在能完全容纳初始化列表的基础上尽可能小地设定该维度,来作为指定维度的标准。本题有9个初始值,若指定第一维度为2,则数组含有2*4=8个元素,容纳不下,所以指定维度为3,3*4=12,足够容纳了。故应该填3。
25.00解析:本题是计算5*4*3*2*1*0的值,结果为0。
26.11<CR>23<CR>5(<CR代表换行)11<CR>23<CR>5(<CR,代表换行)解析:本题通过语句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”将数组中前面两项的和赋值给数组当前元素,得到a的值应为(1,1,2,3,5)。语句if(i%2==0)pfintf('\\n')是要将数组中的元素以每行2个的形式输出。
27.'\0''\\0'解析:本题涉及字符数组和指针的两个知识点:①在C语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符'\\0'所以题中数组str有6个元素。②ptr指向数组str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
28.800800解析:一个16x16点阵的字形码需要16x16/8=32字节的存储空间,所以300个汉字信息需要9600个字节。
29.数据字典数据字典解析:数据字典的作用是对数据流图中出现的披命名的图形元素进行确切解释。通常数据字典包含的信心有名称、别名、何处使用/如何使用、内容描述、补充信息等。
30.int**zint*\r\n*z解析:函数希望通过形参z带回结果,形参z必须是指针类型的。由于返回整型结果,所以第一处填int*;函数返回前必须先把结果通过形参z间接引用传回,第二处应填*z。
31.j<ia[i][j]=a[j][i]j<i\r\na[i][j]=a[j][i]解析:本题中要求将n行n列的矩阵A转置,即让数组中行上的元素变成对应列上的元素。即把对角线两边的元素对换,所以本题的第一个空格处应该填写j<i,第二个空格处填写交换对角线两边的元素的语句a[i][j]=a[j][i]。
32.100010100010解析:首先将程序中的宏替换掉,两处的宏替换后分别为i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后输出的i1和i2的值分别为1000和10。
33.j=j+2或j+=2a[j]<a[i]或a[i]>a[j]j=j+2或j+=2\r\na[j]<a[i]或a[i]>a[j]
34.有效性测试有效性测试
35.字符串a和b的长度之和字符串a和b的长度之和解析:本题首先通过第一个while循环计算字符串a的长度,再通过第二个循环,将字符串a和b相连,最后返回连接后的总长度。
36.对象对象解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。
37.16111611解析:题目中第1条要替换的语句i=f(1+1);展开后是i=((1+1)*M);继续展开为i((1+1*8),结果使i=16。而第2条语句j=f2(1+1)”;展开后为j=(1+1*N);继续展开为j=(1+1*10),结果使j=11。故程序运行的结果是输出1611。
38.栈栈解析:考查考生对栈和队列概念的掌握。按'先进后出'原则组织数据的数据结构是栈;按'先进先出'原则组织数据的数据结构是队列。
39.c>='a'&&c<='z'c>='a'&&c<='z'解析:小写字母在内存中以ASCII的形式存入,且从a到z依次递增,所以可以直接用c>='a'&&c<='z'判断是不是小写字母;c!='\\n'判断是用换行符结束循环。
40.67G67G解析:字符型变量中保存的是某个字符的ASCII码值,是一个整数,因此字符型变量的算术运算和整型变量并无区别。所以。a='A'+'5'-'3'='A'+('5'='3')='A'+2=65+2=67:b=a+'6'='2'='C'+('6'-'2')='C'+4='G'。最后分别按十进制整数和字符形式输出a和b的值为:67G。
41.B解析:continue语句的作用是跳过本次循环体中余下尚未执行的语句,接着再一次进行循环条件的判定。当能被2整除时,a就会增1,之后执行continue语句,直接执行到for循环体的结尾,进行i++,判断循环条件。
42.D
43.D
44.B解析:二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。数组第一维的下标是i,说明它前面还有i行,有i*m个元素,数组第二维的下标是j,说明它前面还有j列,有j个元素,所以共有i*m+j个元素。
45.B解析:数据的结构化是数据库阶段的重要特征之一。在数据库阶段,数据不再面向应用,而是面向整个系统,数据的共享性高、冗余小、易于扩展。由于数据库三级模式间的两级映像,所以数据具有较高的独立性。
46.A解析:本题考查while循环。先判断while循环的控制表达式是否成立,发现a>b>c不成立,所以不执行循环。直接输出a、b、c的值。
47.A\nA。【解析】头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点的目的是为了便于运算的实现。
\n
48.B解析:定义一个结构体类型的变量,可采用三种方法:
①先定义结构体类型,再定义变量名。
②在定义类型的同时定义变量。
③直接定义结构体类型变量,即不出现结构体名。
选项B)符合第三种定义方法。
49.D解析:在定义函数时函数名后面括弧中的变量名称为“形式参数”(简称形参),在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数”(简称实参)。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。故本题应该选择D。
50.B解析:选项A中a++相当于a+1,是赋值语句;选项C和选项D也是赋值语句。只有选项B不是,因为选项B中“==”符号是等于的意思,并不是赋值运算符,所以,4个选项中B符合题意。
51.D解析:'\\\\'是反斜线转义字符:'\\t'是水平跳格转义字符;'\\n'饭是换行转义字符;C语言中没有规定'088'为转义字符。
52.C解析:putchar(s)的功能是把字符s输出到标准输出设备:puts(s1)是把s1指向的字符串输出到标准输出设备。
53.D本题主要考查软件的测试。软件测试的主要目的体现在下面几个方面。
(1)软件测试是为了发现错误而执行程序的过程。
(2)一个好的测试用例能够发现至今尚未发现的错误。
(3)一个成功的测试是发现了至今尚未发现的错误的测试。
软件测试的效率是指利用更少的成本创造更多的价值,提供软件测试效率的方法有很多,如制定一个合理的详细的测试计划,了解测试项目的业务需求,集中对付那些错误群集的程序等。而选项A所描述的随机选取测试数据是不能保证提高测试效率的,选项B描述的取一切可能的输入数据作为测试数据显然不能提高测试效率,反而使工作量加大,降低测试效率。
54.B解析:p本身就是一个字符型指针变量,返回p也就是返回变量p中存放的地址值。
55.A解析:在循环体中有一条if语句,其后面表达式为i%2,当i的值为奇数时,其值为真,执行其后面的语句,i的值加1,重新开始循环,当i的值为偶数时,i%2为假,执行“i++;s+=i。在循环中i为偶数时的值分别为0、2、4、6,加1后的值分别为1、3、5、7,s中存放的是它们的和,值为16。
56.C解析:由栈的定义可知,栈是先进后出(或后进先出)的线性表,因此,栈具有记忆功能。
57.B解析:本题考查对文件的操作。文件打开后才可以对文件进行操作,使用结束后要关闭文件。对文件的操作都是顺序读写,即从文件的第一个数据开始,依次进行读写。
58.B解析:在函数中首先把整型数组a[10]中的每个元素写入文件d1.dat中,然后再次打开这个文件,把文件d1.dat中的内容读入到整型变量n中,最后输出变量n的值。
59.C解析:题中*p=&x[1][1];是指将数组x的数组元素x[1][1]的地址赋值给指针变量p,使p指向x[1][1]这个数组元素,那么p[0]即为指针变量p当前所指向的数组元素x[1][1]的值。
60.D解析:在C语言格式字符的输出中,“%d”是以带符号的十进制形式输出整数;“%o”是以8进制无符号形式输出整数(不输出前导符0);“%x”是以16进制无符号形式输出整数(不输出前导符0x)。
61.Ap=s,是将字符串数组的首地址赋给p,即p指向’1’,然后输出1,p++,指向下一位,即指向5,输出5,指向下一位。
62.B
63.B
64.C
65.C数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述,所以选择C。内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。
66.B该题目考查函数参数传递以及if条件语句。当变量b为0时,将a的值返回给主调函数,因此a进行两次自减l后,将其值返回并输出。
67.D
68.A解析:顺序存储结构就是用一组地址连续的存储单元依次存储该线性表中的各个元素,链式存储结构中各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致,所以选项A是正确的。两者都可以存储线性的、有序的逻辑结构,所以选项B、C不正确。顺序结构使用的是连续物理空间,链式结构可以使用零散的物理空间存储,链式结构更灵活,不存在谁节约空间的说法,所以选项D不正确。
69.B
70.Csum=fun((a++,b++,a+b),c++)中a++,b++,a+b为逗号表达式,运算后取a+b的值为5,c++为3,故函数调用后输出结果为8。
71.D在选项A中的语句没有一条是错误的。选项B和C中有一个逗号表达式,选项B中是x=0,y=x+1;,在选项C中是y=x+1,z=x+y;。所以,B和C中也没有错误。选项D中的最后一条语句是以逗号结束的,而C语言中不能用逗号作为一个语句的结束标志,每一条语句最后应该是分号,所以,D选项中的程序是错误的。
72.C在C语言中,当程序执行中,数组元素的下标超出所定义的下标范围时,系统不会有提示。
73.C题中变量W的定义为double型,函数fun2,的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。
74.D位运算;条件判断y>>1对循环没有任何影响,始终为真,所以循环是一个无限循环。
75.A*(s+3)指针后移3个单位,为a[31的值。答案选择A)。
76.D解析:在C语言中文本文件是以ASCII码形式存放的,每个字符占一个字节。由于数据在计算机中是以二进制形式存放的,因此二进制文件中的数据可以直接读出,而不需要像文本文件那样把ASCII码转换成二进制,因此速度较快。在文本文件叶,,数据以ASCII码形式存放,用户很难判定一个数据到底占几个字节,所以不适合使用随机读写方式。数据以二进制形式存放,占有的字节数是固定的,所以可以进行随机读写,当然也可以顺序读写。故D选项为所选。
77.C本题主要考查的是用二维数组首地址和
下标来引用二维数组元素的方法。通过分析可知,程序中的双重循环定义了一个如下的二维数组:
012
234
456
簪由于数组的下标是从0开始的,所以二维数组元素a[i][j]表示的是二维数组a的第i+1行、第j+1列对应位置的元素。
78.B&按位与,如果两个相应的二进制位都为l,则该位的结果值为1,否则为0。l按位或,两个相应的二1进制位中只要有一个为l,该位的结果值为l。2的二进制为100000010,4的二进制为00000100,所以做或运算结果为100000110,该数与5即00000101做与操作结果为00000100,1即4。
79.BB。【解析】组合框和列表框都没有selected属性。
80.A
81.(1)错误:缺少语句
正确:应填人num%base
(2)错误:缺少语句
正确:应填人[d]
【解析】按题目中的要求把输入的十进制数以十六进制数的形式输出,首先要对十进制数对16求余,得出十六进制每一位上的数字。因此,c[i]__________处填num%base。数组b为十进制数0~15所对应的十六进制数,数组c中存放的是十六进制数每一位上的数字。因此,b__________处填Ed2。
82.
【考点分析】
要删除字符串中所有*号需要用循环语句遍历字符串,用
判断语句判断字符是否为*号,由此可以决定该程序应使用循
环判断结构。
【解题思路】
2022-2023年黑龙江省七台河市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.运行下列程序,若从键盘输入字符“a”,则输出结果是()。
charc;
c=getchar;
if(c>=a&&c<=g)c=c+4:
elseif(c>=9&&c<=2)c=c-21:
elseprintf("inputerror!\n");
putchar(c);
A.fB.tC.eD.d
2.若f(n)=3n2+2n+1,则f(n)=()。
A.O(n2)B.O(n)C.O(2n)D.O(3n2)
3.
4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储()。
A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法
5.
6.已有定义int(*q)(),指针q可以()。
A.指向函数的入口地址B.代表函数的返回值C.表示函数的类型D.表示函数返回值的类型
7.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,可以采用下列哪一种查找方法()
A.分块B.顺序C.折半D.哈希
8.
9.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是()。
A.预定义标识符(如库函数中的函数名)可用做用户标识符,但失去原有含义
B.用户标识符可以由字母和数字任意顺序组成
C.在标识符中大写字母和小写字母被认为是相同的字符
D.关键字可用做用户标识符,但失去原有含义
10.若在线性表中采用折半查找法查找元素,该线性表应该()A.元素按值有序B.构采用顺序存储结C.元素按值有序且采用顺序存储结构D.元素按值有序且采用链式存储结构
11.下列程序的执行结果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}
A.266B.11C.265D.138
12.有以下程序:#include<stdio.h>#deflneS1(z)4*z+4*(z)#defineS2(x,y)4*(x)*(y)+y*xmain(){inta=1,b=2;printf(“%d,”,S1(a+b));printf(“%d,”,S2(a,b)+S1(3));printf(“%d”,S2(3+a,b+3));}程序运行后的输出结果是()。
A.18,34,100B.24,34,92C.24,34,100D.18,34,92
13.
14.在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。
A.详细设计B.需求分析C.总体设计D.编程调试
15.有以下程序:
程序的运行结果是()。
A.y=0B.y=1C.y=2D.y=3
16.C语言中最简单的数据类型包括()。
A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.字符型、实型、逻辑型
17.假定a为一个整型数组名,则元素a[4]的字节地址为()。
A.a+4B.a+8C.a+16D.a+32
18.以下程序的输出结果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0
19.有以下程序:structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序运行后的输出结果是______。
A.SunDan20044580
B.Penghua20045537
C.LiSiGUO20042580
D.SunDan20041703
20.已知有结构体:structsk{inta;floatb;}data,*p;若有p=&data,则对data的成员a的正确引用是()。
A.struct是结构体类型的关键字
B.st是结构体类型名
C.x、y、z都是结构体成员名
D.structstr是结构体类型名
二、2.填空题(20题)21.软件工程的出现是由于【】。
22.以下程序的输出结果是______。
voidreverse(inta[],intn)
{inti,t;
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n+1+i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf("%d\n",s);
}
23.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
24.若有如下定义,则该数组的第一维大小为【】。
intb[][4]={1,2,3,4,5,6,7,8,9);
25.有以下程序:
#include<stdio.h>
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
执行后的输出结果是【】。
26.下列程序的运行结果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
27.设有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
执行上面的程序段后,*(ptr+5)的值为______。
28.存储300个16×16点阵的汉字信息需要【】字节。
29.在结构化分析使用的数据流图中,使()解释其中的图形元素。
30.下面函数要求计算两个整数x,y之和,并通过形参返回该值,请填空。
add(intx,inty,【】z)
{【】=x+y;}
31.下面rotate函数的功能是:将n行n列的矩阵A转置为A',例如:
#defineN4
voidrotate(inta()[N])
{inti,j,t;
for(i=0;i<N;i++)
for(j=0;【】;j++)
{t=a[i][j];
【】;
a[j][i]=t;
}
}
32.下面程序的运行结果是______。
#defineN10
#defines(x)x*x
#definef(x)(x'x)
main()
{
inti1,i2;
i1-1000/s(N);i2=1000/f(N);
printf("%d%d\n",i1,i2);
}
33.下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。
#include<stdio.h>
#include<string.h>
main()
{chara[]="clanguage",t;
inti,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k;【】)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
printf("\n");
}
34.对软件是否能达到用户所期望的要求的测试称为【】。
35.函数fun的返回值是【】
fun(char*a,char*b)
{intnum=0,n=0;
while(*(a+num)!='\0')mm++;
while(b[n]){*(a+num)=b[n];num++;n++;}
returnnum;
}
36.在面向对象的程序设计中,类描述的是具有相似性质的一组【】。
37.下面程序由两个源程序文件:t4.h和t4.c组成,程序编译运行的结果是:【】。
t4.h的源程序为:
#defineN10
#dennef2(x)(x*N)
t4.c的源程序为:
#include<stdio.h>
#defineM8
#definef(x)((x)*M)
#include"t4.h"
#main()
{inti,j;
i=f(1+1);j=f2(1+1);
printf(%d%d\n",i,j);
}
38.按"先进后出"原则组织数据的数据结构是【】。
39.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
40.已知字母A的ASCII码为65。以下程序运行后的输出结果是______。
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,B);
}
三、1.选择题(20题)41.下列程序的输出结果是
#include"stdio.h"
main()
{inti,a=0,b=0;
for(i=1;i<10;i++)
{if(i%2==0)
{a++;
continue;}
b++;}
printf("a=%d,b=%d",a,b);}
A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5
42.下列描述中,正确的一条是______。
A.关系表达式的值是一个逻辑值,即“真”或“假”,可以赋给一个逻辑变量
B.在C语言中,判断一个量是否为:真”时,以0代表“假”,以1代表“真”.
C.设a=3、b=4、c=5,则表达式!(x=a)&&(y=b)&&0的值为0
D.一个数组的各个数组元素可属于不同的数据类型
43.设a、b和、c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式为()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
44.若二维数组a有m列,则在a[i][j]前的元素个数为()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
45.数据管理技术随着计算机技术的发展而发展。数据库阶段具有许多特点,但下面列出的特点中,______不是数据库阶段的特点。
A.数据结构化B.数据面向应用程序C.数据共享性高D.数据具有较高的独立性
46.有下列程序:
main()
{intt,a=1,b=5,C=-2;
while(a>b>C)
{t=a;a=b;b=t;c++;}
printf("%d,%d,%d",a,b,C);
}
程序的输出结果是()。
A.1,5,0B.1,5,-2C.5,1,-1D.5,1,-2
47.在单链表中,增加头结点的目的是______。
A.方便运算的实现B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性表的链式存储实现
48.以下选项中,能定义s为合法的结构体变量的是()。
A.typedefstructabc{doublea;charb[10];}s;
B.struct{doublea;charb[10];}s;
C.structABC{doublea;charb[10];}ABCs;
D.typedefABC{doublea;charb[10];}ABCs;
49.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。
A.函数的实参和其对应的形参共占同一存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的形参和实参分别占用不同的存储单元
50.指出下面不了确的赋值语句()。
A.a++;B.a==b;C.a+=b;D.a=1,b=1;
51.下列不正确的转义字符是()。
A.'\\'B.'t'C.'\n'D.'088'
52.下列的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是()。
#include<stdio.h>
main()
{chars1[]="chinese",s2[]="japnese";
inti;
for(i=0;sl1[i]!='\0'&&s2[i]!='\0';i++)
if(s1[i]==s2[i]&&i<7)
______,
}
A.putchar(s2[i]);putchar(i)
B.puts(s1[i],i)
C.printf("%c%d\n",s2[i],i)
D.printf("%c",s1[i]);printf("%d\n",i)
53.为了提高测试的效率,应该()。
A.随机选取测试数据
B.取一切可能的输入数据作为测试数据
C.在完成编码以后制定软件的测试计划
D.集中对付那些错误群集的程序
54.有以下函数char*fun(char*p){returnp;}该函数的返回值是______。
A.无确切的值B.形参p中存放的地址值C.一个临时存储单元的地址D.形参p自身的地址值
55.有以下程序:main(){inti=0,S=0;do{if(i%2){i++;continue;}i++;s+=i;)while(i<7);printf("%d\n",s);}执行后输出结果是()。
A.16B.12C.28D.21
56.下列数据结构中具有记忆功能的是()。
A.队列B.循环队列C.栈D.顺序表
57.在C语言中,下列关于文件操作的叙述正确的是()。
A.对文件操作必须先关闭文件B.对文件操作必须先打开文件C.对文件操作顺序没有统一规定D.以上全错
58.有以下程序
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3},i,n;
fp=fopen("d1.dat","w");
for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);
fprintf(fp,"\n");
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d",&n);
fclose(fp);
printf("%d\n",n);
}
程序的运行结果是
A.12300B.123C.1D.321
59.以下程序的输出结果是______。main(){inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=0;i<4;i+=2)printf("%d",p[i]);}
A.52B.51C.53D.97
60.下面程序的输出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A.k=11,k=12,k=11
B.k=-11,k=13,k=13
C.k=11,k=013,k=0xb
D.k=11,k=13,k=B
四、选择题(20题)61.有以下程序:
voidmain()
{chars[]="159",*p;
p=s;
printf("%c",*p++);printf("%c",*p++);
}
程序运行后的输出结果是()。
A.15B.16C.12D.59
62.
63.
64.
65.数据库设计中反映用户对数据要求的模式是()。
A.内模式B.概念模式C.外模式D.设计模式
66.有以下程序:
程序的运行结果是()。
A.1B.2C.3D.4
67.
68.下列叙述中正确的是()。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
69.
70.有以下程序intfun(intx,inty){return(x+y);}main{inta=1,b=2,C=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}执行后的输出结果是()。A.6B.7C.8D.9
71.以下选项错误的是
72.以下叙述中错误的是()。
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界的出错信息”
D)可以通过赋初值的方式确定数组元素的个数
73.有以下程序:
程序执行后变量w中的值是()。
A.5.21B.5C.5.0D.0.0
74.有以下程序:
voidmain()
{
inty=10;
while(y>>1){printf("y=%d\n",y);}
}
程序执行后的输出结果是()。
A.y=0
B.y=-1
C.y=1
D.while构成无限循环
75.设有定义
76.以下叙述中不正确的是
A.C语言中的文本文件以ASCII码形式存储数据
B.C语言中对二进制文件的访问速度比文本文件快
C.C语言中,随机读写方式不适用于文本文件
D.C语言中,顺序读写方式不适用于二进制文件
77.下面的程序段运行后,输出结果是()。
A.9B.不确定值C.0D.18
78.有以下程序:
程序运行后的输出结果是()。
A.3B.4C.5D.6
79.下列叙述中错误的是()。
A.列表框和组合框都有List属性
B.列表框有Selected属性,而组合框没有
C.列表框和组合框都有Style属性
D.组合框有Text属性,而列表框没有
80.
五、程序改错题(1题)81.以下程序可把输入的十进制数以十六进制数的形式输出。请在横线上填上适当的内容并把横线删除,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函
数时,不得使用c语言提供的字符串函数。
例如,字符串中的内容为:****A*BC*DEF*G*******删除*后字符串中的内容应当
是:ABCDEFG。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
参考答案
1.C
\ngetchar函数是读取键盘的输入函数,本题中输入字母“a”,则c=a,判断if条件,发现a>=a&&a<=g成立,则执行下列语句:C=C+4,C得到的字符的ASCII码值,退出if语句,通过putchar函数输出字符。
2.A
3.C
4.C
5.D
6.A解析:本题考查的是指向函数的指针。函数指针的定义方式是:类型标识符(*指针变量名)()。其中,“类型标识符”为函数返回值的类型;“指针”指向函数的入口地址。
7.D
8.C
9.A用户标识符不能以数字开头,C语言中标识符是区分大小写的,关键字不能用做用户标识符。
10.C
11.A解析:由于本题定义的是共用体,所以成员表列中的整型变量x与字符数组c共占用同一个存储单元,且此存储单元为2个字节,通常c[0]位于低字节,c[1]位于高字节,所以x.i的值为266。
12.D程序中S1和S2都是宏定义。S1(a+b)宏展开后的表达式为4*a+b+4*(a+b),即4*1+2+4*(1+2),结果为18;S2(a,b)宏展开后的表达式为4*(a)*(b)+b*a,即4*(1)*(2)+2*1,结果为10;S1(3)宏展开后的表达式为4*3+4*(3),结果为24;32(3+a,b+3)宏展开后的表达式为4*(3+a)*(b+3)+b+3*3+a,即4*(3+1)*(2+3)+2+3*3+1,结果为92。最终输出:18,34,92。故本题答案为D选项。
13.B
14.C解析:软件系统结构的总体设计包括:基于功能层次结构建立系统、按功能划分成模块的层次结构、确定每个模块的功能、建立与已确定的软件需求的对应关系、确定模块间的调用关系和模块间的接口、评估模块划分的质量等方面。详细设计的任务是:在使用程序设计语言编制程序以前,对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求,通常包括:功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求等。编程调试的任务是诊断和改正程序中潜在的错误。综上所述。软件功能分解只能发生在总体设计阶段。
15.D在程序中指针变量P初始指向a[3],执行P减1后,P指向a[2],语句y=*P的作用是把a[2]的值赋给变量y,所以输出为y=3。
16.B解析:选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)18.5%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等,所以a+7=c+b是错的。因此,正确答案是选项B),它相当于a=(b=c+2),可分解为两个表达式:b=c+2和a=b。
17.C
18.D因为a是结构体变量,最后一次输入的值为结构体中的值,即a中的任何一个值都为0。
19.B解析:f函数用了显式传地址的方式,因此主函数中的s值发生了变化。
20.B解析:本题主要考查结构类型的定义:struct是结构体类型的关键字;structstr是结构体类型名;x、y、z都是结构体成员名;st是结构变量名。
21.软件危机的出现软件危机的出现
22.在main函数中,调用reverse函数将b数组中的前8个成员进行互置,执行完毕后,b数组中的成员为{8,7,6,5,4,3,2,1,9,10},然后再执行for循环结构,将b[6],b[7]…b[9]的值相加,结果为盟。\r\n\r\n
23.调试调试
24.33解析:在初始化一个含有未指定维度的数组时,C语言总是在能完全容纳初始化列表的基础上尽可能小地设定该维度,来作为指定维度的标准。本题有9个初始值,若指定第一维度为2,则数组含有2*4=8个元素,容纳不下,所以指定维度为3,3*4=12,足够容纳了。故应该填3。
25.00解析:本题是计算5*4*3*2*1*0的值,结果为0。
26.11<CR>23<CR>5(<CR代表换行)11<CR>23<CR>5(<CR,代表换行)解析:本题通过语句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”将数组中前面两项的和赋值给数组当前元素,得到a的值应为(1,1,2,3,5)。语句if(i%2==0)pfintf('\\n')是要将数组中的元素以每行2个的形式输出。
27.'\0''\\0'解析:本题涉及字符数组和指针的两个知识点:①在C语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符'\\0'所以题中数组str有6个元素。②ptr指向数组str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
28.800800解析:一个16x16点阵的字形码需要16x16/8=32字节的存储空间,所以300个汉字信息需要9600个字节。
29.数据字典数据字典解析:数据字典的作用是对数据流图中出现的披命名的图形元素进行确切解释。通常数据字典包含的信心有名称、别名、何处使用/如何使用、内容描述、补充信息等。
30.int**zint*\r\n*z解析:函数希望通过形参z带回结果,形参z必须是指针类型的。由于返回整型结果,所以第一处填int*;函数返回前必须先把结果通过形参z间接引用传回,第二处应填*z。
31.j<ia[i][j]=a[j][i]j<i\r\na[i][j]=a[j][i]解析:本题中要求将n行n列的矩阵A转置,即让数组中行上的元素变成对应列上的元素。即把对角线两边的元素对换,所以本题的第一个空格处应该填写j<i,第二个空格处填写交换对角线两边的元素的语句a[i][j]=a[j][i]。
32.100010100010解析:首先将程序中的宏替换掉,两处的宏替换后分别为i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后输出的i1和i2的值分别为1000和10。
33.j=j+2或j+=2a[j]<a[i]或a[i]>a[j]j=j+2或j+=2\r\na[j]<a[i]或a[i]>a[j]
34.有效性测试有效性测试
35.字符串a和b的长度之和字符串a和b的长度之和解析:本题首先通过第一个while循环计算字符串a的长度,再通过第二个循环,将字符串a和b相连,最后返回连接后的总长度。
36.对象对象解析:将属性、操作相似的对象归为类,也就是说,类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届新疆昌吉回族自治州九中物理高三第一学期期中考试试题含解析
- 2025届安徽凤阳县城西中学物理高一上期末联考试题含解析
- 2025届中考物理热身梯形含解析物理高一上期中质量检测模拟试题含解析
- 2025届江苏省徐州市高一物理第一学期期末综合测试模拟试题含解析
- 2025届湖南长沙市第一中学物理高三第一学期期中经典模拟试题含解析
- 2025届湖南省长沙市稻田中学物理高二第一学期期中考试试题含解析
- 2025届内蒙古赤峰第四中学高二物理第一学期期中达标检测模拟试题含解析
- 安徽省全国示范高中名校2025届高二物理第一学期期末检测试题含解析
- 2025届上海市浦东新区四校物理高三上期末质量检测模拟试题含解析
- 2025届江苏省扬州市广陵区扬州中学物理高三上期中统考模拟试题含解析
- 新青岛版五四制2021-2022四年级科学上册实验指导
- 小学四年级音乐课程标准
- 旅游发展产业大会总体方案
- 民用机场竣工验收质量评定标准
- 汽车应急启动电源项目商业计划书写作范文
- 浅谈“低起点-小步子-勤练习-快反馈”教学策略
- 双向细目表和单元测试卷及组卷说明
- 离子色谱法测定空气中二氧化硫
- 水蒸汽热力性质表
- 两癌筛查质控评估方案
- 汽车污染途径及其控制措施毕业论文
评论
0/150
提交评论