版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年江西省鹰潭市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的出度为()。
A.第i行非0元素的个数之和B.第i列非0元素的个数之和C.第i行0元素的个数之和D.第i列0元素的个数之和
2.有以下程序voidsum(inta[]){a[0]-a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf(“%d\n”,a[2]);}程序运行后的输出结果是A.6B.7C.5D.8
3.下列选项中,当X为大于1的奇数时,值为0的表达式是()。
A.x%2==0B.x/2C.x%2!=0D.x%2==1
4.程序运行后的输出结果是()。#include<stdio.h>#include<stdlib.h>main(){int*a,*b,*c;a=b=c(int*)malloc(sizeof(int));*a=1;*b=2;*c=3;a=b;printf(“%d,%d,%d\n”,*a,*b,*c);}A.1.1.3B.2.2.3C.1.2.3D.3.3.3
5.设s1="Good",s2="",s3="Bye",则s1、s2和s3连接后的结果是()。
A.GoodB.GoodByeC.GoodByeD.Bye
6.数组A中,每个元素的长度为4个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[8][5]的起始地址为()。
A.SA+292B.SA+296C.SA+300D.304
7.以下程序是用来计算两个非负数之间的最大公约数:我们假设x,y中最大的那个数的长度为n,基本运算时间复杂度为O(1),那么该程序的时间复杂度为()A.O(1)B.O(logn)C.O(n)D.O(n^2)
8.若在线性表中采用折半查找法查找元素,该线性表应该()A.元素按值有序B.构采用顺序存储结C.元素按值有序且采用顺序存储结构D.元素按值有序且采用链式存储结构
9.有以下定义和语句
StructWorkers
{intnum;charname[20];charc;
struct
{intday;intmonth;intyear;}s;
};
StructWorkersW,*pe;
PW=&W;
能给W中yeaR成员赋1980的语句是A.*pW.yeaR=1980;
B.W.yeaR=1980;
C.pW->yeaR=1980;
D.W.s.yeaR=1980;
10.算法的空间复杂度是指()。
A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行算法所需要的存储空间
11.在一个无向图中,所有顶点的度数之和等于所有边数的()倍。
A.1/2B.1C.2D.4
12.以下描述中,不是线性表顺序存储结构特征的是()。
A.可随机访问B.需要连续的存储空间C.不便于插入和删除D.逻辑相邻的数据物理位置上不相邻
13.若有语句“void*P=malloc(80);”,则以下叙述错误的是()。
A.可以通过指针P直接访问用malloc开辟的这块内存
B.p所指内存可以通过强制类型转换当作具有20个int型元素的一维数组来使用
C.p所指内存可以通过强制类型转换当作具有10个double型元素的一维数组来使用
D.P所指内存可以通过强制类型转换当作具有80个char型元素的一维数组来使用
14.若要判断char型变量c中存放的是否为小写字母,以下正确的表达式是()。A.'a'<=c<='z'
B.(c>='a')&&(c<='z')
C.(c>='a')‖(c<='z')
D.('a'<=c)AND('z'>=c)
15.若a是数值类型,则逻辑表达式“(a==1)||(a!=1)”的值是()。
A.1B.0C.2D.不知道a的值,不能确定
16.如果最常用的操作是取第i个结点及其前驱,最节省时间的存储方式是()。
A.单链表B.双向链表C.单循环链表D.顺序表
17.当n=5时,函数输出为()A.5B.11C.29D.10
18.设x、y、z、t均为int型变量,则执行以下语句后,t的值是()x=y=z=l;t=++x||++y&&++z;
A.不定值B.2C.1D.0
19.下列叙述中正确的是()。
A.可以用关系运算符比较字符串的大小
B.空字符串不占用内存,其内存空间大小是0
C.两个连续的单引号是合法的字符常量
D.两个连续的双引号是合法的字符串常量
20.
二、2.填空题(20题)21.以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值,请填空:
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,B);
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*bar)
{inti,j,x;
for(i=0;i<m;i++)
{X=ar[i][0];
for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];()=x:
}
}
22.设有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
charsi10],ti10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序运行后,从键盘上输入(<CR>代表回车符):CDEF<CR>BADEF<CR>QTHRG<CR>,则程序的输出结果是______。
23.常用的黑箱测试有等价分类法、【】、因果图法和错误推测法4种。
24.数据元素之间______的整体称为逻辑结构。
25.下列程序输出的结果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
26.若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是【】。
intw[10]={23,54,10,33,47,98,72,80,61),*p=w;
27.数据库系统中实现各种数据管理功能的核心软件称为【】。
28.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。
29.下列程序运行后的输出的结果是______。
#include<stdio.h>
main()
{chars[20];
scanf("%s",s);
printf("%s",s);
}
运行程序,输入HOWAREYOU。
30.以下程序的输出结果是【】。
#include<stdio.h>
#defineMAX(x,y)(x),(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
31.黑盒测试是从【】观点的测试。
32.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。
33.若按功能划分,软件测试的方法通常分为白盒测试方法和【】测试方法。
34.fun1函数的功能是将3个整数按由大到小的顺序调整后依次放入a、b、c3个变量中,a中放最大数,fun2函数的功能是交换两个变量中的值。补足所缺语句。
fun2(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
fun1(int*p1,int*p2,int*p3)
{if(*p3>*p2)fun2(*P2,*p3);
if(*p1<*p3)fun2(______);
if(*p1<*p2)fun2(______);
}
main()
{inta,b,c;
scanf("%d%d%d",&a,&b,&c);
fun1(&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);
}
35.有以下程序段,且变量已正确定义和赋值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
请填空,使下面程序段的功能与之完全相同
s=1.0;k=1;
while(【】){s=s+1.0/(k*(k+1));【】;}
printf("s=%f\n\n",s);
36.在进行软件结构设计时,应遵循的最主要原理是【】。
37.下面程序的运行结果是______。
#defineDOUBLE(x,y)x/y
main()
{intx=4,y=2,t;
t=DOUBLE(x+y,x-y);
printf("%d",t);
}
38.已知字符A的ACSII码值为65,以下语句的输出结果是______。
charch='B';
printf("%c%d\n",ch,ch);
39.以下程序的运行结果是()。
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}
main()
{inti=4;
fun(i++);printf("i=%dk=%d\n",i,k);
}
40.下列程序段的输出结果是【】。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':
case'A':
case'b':
case'B':printf("good");break;
case'c':case'C':printf("pass");
case'd':case'D':printf("warn");
}
三、1.选择题(20题)41.对于下述程序,在方式串分别采用“wt”和“wb”运行时,两次生成的文件TEST的长度分别是#include<stdio.h>voidmain(){FILE*fp=fopen("TEST",);fputc('A',fp);fputc('\n',fp);fputc('B',fp);fpute('\n',fp);fputc('C',fp);fclose(fp);}
A.7字节、7字节B.7字节、5字节C.5字节、7字节D.5字节、5字节
42.八位二进制补码01000100用十进制数表示为()
A.68B.-68C.-36D.60
43.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,下列选项中不能表示a[1]地址的表达式是()。
A.p+1B.a+1C.a++D.#NAME?
44.数据结构中,与所使用的计算机无关的是数据的()
A.存储结构B.物理结构C.逻辑结构D.线性结构
45.若变量已正确定义并赋值,以下符合C++语言语法的表达式是()。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
46.以下程序#include<stdio.h>#include<string.h>main(){char*pl="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}的输出是________。
A.xyzabcABCB.zabcABCC.yzabcABCD.xyabcABC
47.下列程序的运行结果为()。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=2,b=3,c=1,d=3,t;printf("%d\n",(MAX(a+b,c+d))*100);}
A.500B.5C.4D.400
48.已知学生记录描述为:structstudent{intno;charname[20],sex;struct{intyear,month,day;}birth;};structstudents;设变量s中的“生日”是“1984年11月12日”,对“birth”正确赋值的程序段是()。
A.year=1984;month=11;day=12;
B.s.year=1984;s.month=11;s.day=12;
C.birth.year=1984;birth.month=11;birth.day=12;
D.s.birth.year=1984;s.birth.month=11;s.birth.day=12;
49.已知字母A的ASCII码为十进制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的输出是_________。
A.67,DB.B,CC.C,DD.不确定的值
50.设有:
inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>b)&&(n=c>d)后,n的值是
A.1B.2C.3D.4
51.已定义ch为字符型变量,以下赋值语句中错误的是
A.ch='\';B.ch=62+3;C.ch=NULL;D.ch='\xaa';
52.软件调试的目的是______。
A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能
53.在设计程序时,应采纳的原则之—是______。
A.程序结构应有助于读者理解B.不限制goto语句的使用C.减少或者取消注解行D.程序越短越好
54.设有如下定义structss{charname[10];intage;charsex;}std[3],*p=std;下面各输入语句中错误的是
A.scanf("%d",&(*p).age);
B.scant("%s",&);
C.scanf("%c",&std[0].sex);
D.scanf("%c",&(p->sex));
55.假定所有变量均已正确说明,以下程序段运行后,x的值是______。a=b=c=0;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;
A.34B.4C.35D.3
56.在C语言的循环语句for、while、do-while中,用于结束本次循环,继续执行下一次循环的语句是______。
A.switchB.breakC.continueD.goto
57.已定义以下函数:fun(Char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数的功能是()。
A.将p1所指字符串复制到p2所指内存空间
B.将p1所指字符串的地址赋给指针p2
C.对p1和p2两个指针所指字符串进行比较
D.检查p1和p2两个指针所指字符串中是否有'\0',
58.假定所有变量均已正确说明,下列程序段运行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3
59.设有下列二叉树:[*]对此二叉树前序遍历的结果为A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY
60.数据库设计包括两个方面的设计内容,它们是()
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
四、选择题(20题)61.(42)希尔排序法属于哪一种类型的排序法()
A.交换类排序法
B.插入类排序法
C.选择类排序法
D.建堆排序法
62.有以下程序:
程序运行后的输出结果是()。
A.3B.1C.2D.0
63.下列程序的输出结果是()。
inta[5]={2,4,6,8,10},*P,**k;
p=a;k=&p;
printf("%d",*(p++));
printf("%d\n",**k);
A.44B.22C.24D.46
64.
65.
66.有如下说明
inta[10]={1,2,3,4,5,6,7},*p=a;
则数值为5的表达式是
A.*p+4B.*(p+4)C.*p+=4D.p+4
67.有以下程序
voidfunc(int*a,intb[])
{b[0]=*a+6;}
main()
{inta,b[5]={0};
a=0;b[0]=3;
func(&a,b);
rintf("%d\n",b[0]);
}
程序的运行结果是
A.6B.7
C.8D.9
68.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是
main()
{chars[100];intc,i;
scanf("%c",&c);scanf("%d",&i);scanf("%s",s);
prinnf("%c,%d,%s\n",c,i,s);}
A.123,456,789B.1,456,789
C.1,23,456,789D.1,23,456
69.下列叙述中正确的是()。
A.break语句只能用于switch语句体中
B.continue语句的作用是使程序的执行流程跳出包含它的所有循环
C.break语句只能用在循环体内和switch语句体内
D.在循环体内使用break语句和continue语句的作用相同
70.以下程序的输出结果是()。
main
{charw[][10]={"ABCD","EFGH","IJKL","MNOP"),K;
for(k=1;k<3;k++)printf("%s\n",w[k]);A.A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL
71.有以下程序执行后的输出结果是()。
A.1B.2C.4D.死循环
72.若有定义“intb[8],*p=b;”,则p+6表示()。
A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[0]的值加上6
73.(62)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是()
A.ABCED
B.DBCEA
C.CDABE
D.DCBEA
74.下列叙述中正确的是()。
A.在switch语句中,不-定使用break语句
B.在switch语句中必须使用default
C.break语句必须与switch语句中的case配对使用
D.break语句只能用于switch语句
75.以下选项中不属于字符常量的是()。
A.
B.
C.
D.
76.下列对于线性链表的描述中正确的是()。
A.存储空间不一定连续,且各元素的存储顺序是任意的
B.存储空间不一定连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
77.
78.
79.(57)下列叙述中,不属于软件需求规格说明书的作用的是______。
A.便于用户、开发人员进行理解和交流
B.反映出用户问题的结构,可以作为软件开发工作的基础和依据
C.作为确认测试和验收的依据
D.便于开发人员进行需求分析
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:计算并输出下列级数的前N项之和SN,直到SN+1大于q为止。q的值通过形参传人。SN=2/1+3/2+4/3+(N+1)/N例如,若q的值为57,则函数值为59.593612。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外的其余所有字符全部删除,字符串中剩余字符所形成的一个新字符串存放在t所指的数组中。例如,若s所指字符串的内容为“ABCDEFG12345”,其中字符A的ASCII值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的ASCII值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指数组中的内容应为“135”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){}main(){ chars[100],t[100]; printf(“\nPleaseenterstrings:”); scanf(“%s”,s); fun(s,t); printf(“\nTheresultis:%s\n”,t);}
参考答案
1.A
2.A本题考查的是数组和函数。sum()函数接收一个int型数组作参数,也可以把它看作是一个int型指针,语句a[0]=a[*1)+a(比的意思就是将参数指针指向内容的前一个元素和后一个元素的值相加放到指针所指的位置.因此,主函数中调用sum(&a[2]);的意思就是让a[2]=a[1]+a[3];,所以最后输出的结果是6。应该选择A。
3.A算术运算符的优先级高于关系运算符的优先级。所以当x为大于1的奇数时,A选项的值为假,即0。B选项的值为不定值,但绝对不是0。C选项的值为真,即1。0选项的值为真,即1。故本题答案为A选项。
4.D
5.C
6.B
7.B
8.C
9.D解析:结构体structureworkers中的成员s是结构体类型,给w中成员year赋值的语句是w.s.year=1980,故选D。
10.D解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。
11.C
12.DD)【解析】线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此不需要另外开辟空间来保存元素之间的关系。
13.A题干中使用malloc函数分配了80个字节的内存单元,void指针p指向该内存单元。在C语言中,void*不能直接使用,必须利用强制类型转换将其转成所需的类型才能使用,选项A错误。int类型的元素占4个字节,所以可以将p指向的内存强制类型转换成具有20个int类型的一维数组来使用,同理,也可以强制类型转换成10个double类型的一维数组来使用,或强制类型转换成80个char类型的一维数组来使用,选项B、C、D正确。故本题答案为A选项。
14.BC语言中,char型变量的值是其对应字符的ASCII值,可以做比较运算。由于小写字母的ASCII值按字母表的顺序连续递增,因此判断char型变量c是不是小写字母时,判断c的ASCII值是否在’a’和’z’之间,即(c>=’a’)&&(c<=’z’)。本题答案为B选项。
15.A逻辑或“||”要求两边的运算对象有一个非零值,结果就为真。变量a的值不确定,但是若a为1,则左边运算对象的值为1;若a不为1,则右边运算对象的值为1,所以总能保证一边为非零值。故本题答案为A选项。
16.D
17.C
18.C
19.D比较两个字符串大小用函数strcomp(S,t),空字符串有结束符,所以也要占用字节,两个双引号表示的是空字符串。
20.B
21.br[i]br[i]解析:函数fun的功能是求出二维数组每行元素中的最大值。对于3行4列的二维数组将有3个最大值存放到数组br[]中。x存放的是每行的最大值,当求出每行的最大值x后,应该将x赋值给br[]。因此此处填空应该是br[i]。
22.QTHRGQTHRG解析:strcmp(t,s)函数用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0;若t<s,则函数值小于0。strcpy(t,s)函数的功能是把字符数组,所指字符串的内容复制到字符数组t所指的存储空间中。
本题中,t[10]='CDEF'.第一次循环,s[10]='BADEF',if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环,s='QTHRG”,if语句的控制条件strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指的存储空间中,然后输出字符数组t。
23.边值分析法边值分析法解析:本题考查了黑箱测试的方法。黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价分类法、边值分析法、因果图法和错误推测法。
24.逻辑关系逻辑关系
25.11解析:本题考查局部变量和全局变量的区别:局部变量是指作用域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。本程序首先定义了一个全局变量m=17,m=17的作用域在整个程序内。在fun函数内部定义了一个局部变量m=3,m=3的作用域仅在fun函数内部,通过fun函数返回两个形参的积再减m。在主函数中,输出fun(a,b)/m=(5*7-3)/17=1。
26.p[5]或*(p+5)p[5]或*(p+5)解析:98是数组w的第5个元素(最开始的为第0个),而通过*p=w已经将p指向了数组w,要想不移动指针p而引用98,可以有以下两种写法:p[5]、*(p+5)。
27.数据库管理系统数据库管理系统(DBMS)
28.循环链表循环链表解析:在循环链表中,由于设置了一个头结点,因此在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。
29.HOWHOW解析:在scanf()函数中,使用空格作为分隔符,如果输入含有空格的字符串,则不能使用scanf()函数,所以本题中输入空格就返回了'\\0',s数组也就确定了,后面的输入就不再读入数组s中。
30.77解析:本题综合考查带参数的宏以及三目运算符的计算方法。三目运算符的一般形式是:<表达式1>?<表达式2>:<表达式3>。“?:”运算符的含义是:先求表达式1的值,如果为真,则求表达式2的值,并把它作为整个表达式的值;如果表达式1的值为假,则求表达式3的值,并把它作为整个表达式的值。注意,在本题中宏替换时可采用逐步求解,最终为7>6?7:6*10,即t=7>6?7:60,其值为t=7。
31.用户用户解析:黑盒测试又称为功能测试,黑盒测试是把程序看作一个黑盒子,完全不考虑程序内部的结构和处理过程。测试者只考虑该程序输入和输出的关系,或只考虑程序的功能。黑盒测试是一种从用户观点出发的测试。
32.88解析:fabs函数功能是求x的绝对值,计算结果为double型。pow功能是计算x的y次方的值,计算结果同样为double型。所以本题表达式相当于2.0的3.0次方,结果为8.000000。
33.黑盒软件测试的方法有三种:动态测试、静态测试和正确性证明。设计测试实例的方法一般有两类:黑盒测试法和白盒测试法。在使用黑盒法设计测试实例时,测试人员将程序看成一个“黑盒”,即不关心程序内部是如何实现的,只是检查程序是否符合它的“功能说明”,所以使用黑盒法设计的测试用例完全是根据程序的功能说明来设计的。
34.*p1*p3*p1*p2。*p1,*p3*p1,*p2。解析:本题考查的知识点有3个,①指针变量作为形参,②函数的嵌套调用,③排序的基本方法。
35.k<=nk++k<=n\r\nk++解析:本题要求将一个for循环改成while循环。首先要保证循环条件相同,在for循环中,每次执行循环之后,循环控制变量k都会加1,而while循环则没有,故需在循环体中增加改变k数值的语句“k++;”。
36.模块独立原理模块独立原理
37.2
38.B66B66解析:printf函数的功能是按照指定的格式,在标准输出设备上输出数据,它有两种参数:格式控制参数和输出项参数。本题中,printf('%c%d\\n',ch,ch)表示以字符格式和十进制整数格式输出ch,B的ACSII码值为66,即在计算机中B的十进制整数格式是66。所以,输出为B66。
39.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函数main()中定义了一个变量i,并赋初值4,调用fun()函数将i的初值传递给形参m,进行fun()函数后的运算,输出结果为m=4,k=4。将k值输出后自行增加1,k=5,此时全局变量k的值变为5。主函数中调用fun()函数后,i再自行增加1,i=5,所以主函数输出的结果为“i=5k=5”。
40.passwarnpasswarn解析:n++是在执行完其所在的语句后再加1,因此,在执行case的时候,n的值依然为'c',执行case'c'后面的语句,先打印出“pass”;在执行完case'c'后,未遇到break跳出switch,便接着执行下面的语句,又打印出warn。所以此题输出结果是passwarn。
41.B解析:以“wt”方式写入的是字符文件,转义字符“\\n”被看做两个字符来处理。而“wb”方式写入的是二进制文件,转义字符“\\n”是一个字符。
42.A
43.C解析:本题考查数组地址的表示。选项C)中,数组名所表示的数组地址不能被重新赋值。
44.Cc)【解析】数据的逻辑结构反映的是数据元素之间的逻辑关系,与使用的计算机无关。
45.B解析:a=b=c+2实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。注意:选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)18.5%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C++语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。注意:C++语言赋值语句的运用,
46.D解析:strcat(p1,P2)将字符串abcABC放到了*pl所指向的存储单元中;strcpy在本题将abcABC复制到str+2所指向的存储单元中,即覆盖原str数组中的字符z及其后的所有字符,故str的值为“xyabcABC”。
47.A解析:本题考查带参数的宏的定义及相关运算:(x)>(y)?(x):(y)是x>y时输出x,否则输出y,调用(MAX(a+b,c+d))*100时,(a+b=5)>(c+d=4),所以输出a+b=5,所以x=5*100。
48.D解析:本题考查结构体变量的基本概念。引用结构体成员的方式为:
结构体变量名.成员名
“.”是“成员运算符”(分量运算符),如果成员本身又是一个结构体类型,则要用若干个成员运算符,一级一级地找到最低一级的成员。只能对最低级的成员进行赋值或存取以及运算,所以选项D)正确。
49.A解析:由于字符“5”和“3”的ASCII码相差为2,所以ch1经过运算后的值应为65+2=67;同理,ch2经过运算后的值应为65+3=68,即是字符“D”。
50.B本题考查逻辑与运算符“&&”的使用。对于逻辑与运算符&&来说,对象的结合方式为从左往右,只有&&左边的值为真,才继续右边的运算。题目中&&左边的表达式为m=a>b,“>”运算符优先级高于“=”,故先判断a>b,因为a=1,b=2,所以a>b为假,于是m=0。“&&”左边的值为假,所以不进行右边的运算。n的值没有发生改变,n=2。
51.A解析:字符型变量用来存放字符常量,且只能存放一个字符。赋值反斜杠线“\\”,必须用转义字符实现,即ch='\\\\',所以选项A)错误;字符型变量可以赋0~255之间的ASCII码值,整型数据和字符型数据有时可以通用,所以选项B)正确;可以将NULL赋给一个字符型变量,NULL代表一个空字符,相当于0,选项C)正确;'\\xaa'表示的是1~2位16进制数所代表的字符,所以选项D)正确。
52.B解析:在对程序进行测试时会发现错误,这就要进行程序调试(排错)。程序调试活动由三部分组成:一是错误定位,根据错误的外部表现形式,确定程序中出错的位置,找出错误的内在原因;二是对程序进行修改,排除这个错误;三是进行回归测试,防止引进新的错误。所以程序调试的目的就是诊断和改正程序中的错误。软件调试不能改善软件的性能,也不能挖掘软件的潜能。
53.A解析:滥用goto语句将使程序流程无规律,可读性差;添加的注解行有利于对程序的理解,不应减少或取消;程序的长短要依照实际需要而定,并不是越短越好。
54.B解析:选项A中“&(*p).age”代表的是etd[0].age的地址,是正确的,选项C也是正确的,选项D先用指针变量引用结构型的成员sex,然后取它的地址,也是正确的,选项B中的“std.name”是错误的引用,因为std是数组名,代表的是数组的首地址,地址没有成员“name”。
55.B
56.C解析:循环辅助控制语句有continue;和break;,前者跳过本次循环,进行下一次循环,后者跳出整个循环语句。
57.A解析:fun()函数中声明了两个字符串指针作为形参,在其函数体中用了一个while循环,首先while括号内表达式*p2=*p1是将p1所指的内容赋值到p2所指的存储空间中,然后在判断是否为'\\0',表达式的值为真时,执行循环体,指针p1和p2分别下移一位,当p1指向字符'\\n'时,表达式的值为假,循环结束,故此函数的功能是将p1所指字符串复制到p2所指内存空间中。所以,4个选项中选项A符合题意。
58.B解析:本题考查ifelse语句。第一个if语句,先判断条件,发现a=0,则!a成立,执行下列的语句,x--,得x=11:第二个if语句,判断条件,发现c=o,则条件不成立,执行下列的else语句,得x=4。
59.B解析:所谓二叉树的前序遍历(DLR)是指在访问根结点、遍历左子树与遍历右子树这3者中,首先访问根结点,然后遍历左子树,最后遍历右子树,并且,在遍历左右子树时,上述规则同样适用,即“根-左-右”。故该二叉树的前序遍历结果为“ATBZXCYP”。注意:对于本题,若使用后序遍历和中序遍历的结果分别为"ZBTYCPXA"和"TZBACYXP"。
60.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。
61.B
62.A本愿考查位运算符以及相关运算,‘为按位或,&为按位与,部么a"b为3,再与c按位与仍然为3,所以答案为A选项。
63.C
64.D
65.A
66.B本题考查C语言的数组元素的引用方法。我们在前面已经讲过了,比如数组元素a[0],可以用表达式*(p+0)即*p来引用;对于数组元素a[1],可以用表达式*(p+1)来引用,在这里,p+1的值就是数组元素a[1]的地址,对此地址使用“间接访问运算符”*(p+1)就代表存储单元a[1],注意,一对圆括号不可少。同样,对于数组元素a[2],则可以用表达式*(p+2)来引用,……,对于数组元素a[9],可以用表达式*(p+9)来引用。因此,当指针变量p指向a数组的起始地址时,若0≤i<10,则数组元素a[i]可以用*(p+i)来表示。
67.A本题考查数组作为函数形参与实参的使用。题目给出的程序分为两个部分,一个是函数func,该函数有两个形参,一个为整型的指针a,一个为整型的数组b[],这里的b只是一个形参数组名,与main函数中的数组b没有关系。为了区别,将func函数中的数组b用b’表示。func函数实现的功能是将指针a所指向的整型值*a与6相加,并将结果放入数组b’[0]处。main函数首先对整型数据a和数组b进行初始化,初始化后a的值为0,数组b中第一个值b[0]=3。初始化结束后,对函数func进行调用。应当注意,调用函数func时,是将数组b的数组名作为函数的实参。这样调用的结果就是没有把数组元素的值传递给形参数组,而是把实参数组的起始地址传递给形参,b和b’共占有同一段内存,这样形参数组中的值发生变化也将导致实参数组中的值发生变化。题目中虽然main函数初始化使得b[0]=3,但是在调用func函数的过程中,作为该函数形参的数组b’有b’[0]=*a+6=6,故main函数中的实参数组b[0]值也发生改变,变为6。
68.D本题考查格式输入。程序中定义了一个字符数组s,两个整型变量i和c。随后调用了三次格式输入函数scanf。第一个scanf函数只能输入一个字符型的数据,第二个函数是输入一个整型数据,第三个函数是输入一个字符串。执行代码时,输入123<空格>456<空格>789<回车>,将1作为一个字符用第一个scanf函数输入,23作为一个整型数据由第二个函数输入,而字符串的输入则是以非空白字符开始到第一个空白字符结束,将456作为字符串由第三个scanf函数输入到数组中,该函数在第二个空格处结束。
69.C解析:只能在循环体内和switch语句体内使用break语句。当break出现在循环体的switch语句体内时,其作用只是跳出该switch语句体,并不能中止循环体的执行。若想强行中止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件,则跳出本层循环体。
70.D当k=1时,循环成立,输出w[l]的数组即EFGH,接着执行k++后k为2;当k=2时,循环成立,输出w[2]的数组即IJKL,接着执行k++后,k为3;当k=3时,循环不成立,退出。
71.A判断循环条件一k,k值为4,条件为真,执行输出语句,其中k一=3执行后,k为1,即输出为1,然后判断循环条件一k,值为0,为假,循环结束。答案选择A)。
72.B指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中“P+6”指的是将指针向后移动了6个存储单元,即指向uE63,存放的是b[6]的地址。
73.D
74.Adefault语句在swtch语句中可以省,所以8错误;switch语句中并非每个case后都需要使用break语句,所以c错误;break语句还可以用于for等循环结构中,所以D错误。
75.A在c语言程序中,用单引号把一个字符或反斜线后跟一个特定的字符括起来表示一个字符常量。选项B)、c)和D)为正确的字符常量,而选项A)是用双引号括起来的字符,表示一个字符串常量。
76.A解析:在链式存储结构中,存储数据的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系,是由指针域来确定的。由此可见,选项A的描述正确。因此,本题的正确答案为A。
77.C
78.D
79.D
80.D
81.(1)错误:doubleproc(doubleq)
正确:doubleproc(intq)
(2)错误:sum=sum+(n+1)/n;
正确:sum=sum+(double)(n+1)/n;
(3)错误:returnsum;
正确:returnt;
【解析】由主函数中函数调用的实参可知,函数proc()的形参为int型,因此,“doubleproc(doubleq)”应改为“doubleproc(intq)”;变量sum为double型变量,因此表达式(n+1)/n要进行强制类型转换,因此,“sum=sum+(n+1)/n;”应改为“sum=sum+(double)(n+1)/n;”,由函数proc()可知,变量sum中存放的是SN+1项,而变量t表示SN项,因此,“returnsum;”应改为“returnt;”。
82.voidfun(char*s,chart[]){ inti,j=0,n; n=strlen(s); for(i=0;i<=""p=""> if((i%2)&&(s[i]%2)) { t[j++]=s[i]; /*将下标为奇数同时ASCII值为奇数的字符放入数组t中*/ } t[j]=‘\0’; /*最后加上字符串结束标志*/}本题要求保留下标为奇数同时ASCII值也为奇数的字符,其余的所有字符都删除。将s字符串中,满足条件的字符存放到字符串t中。if的条件表达式为:if(i%2!=0&&s[i]%2!=0)。2021-2022年江西省鹰潭市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的出度为()。
A.第i行非0元素的个数之和B.第i列非0元素的个数之和C.第i行0元素的个数之和D.第i列0元素的个数之和
2.有以下程序voidsum(inta[]){a[0]-a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf(“%d\n”,a[2]);}程序运行后的输出结果是A.6B.7C.5D.8
3.下列选项中,当X为大于1的奇数时,值为0的表达式是()。
A.x%2==0B.x/2C.x%2!=0D.x%2==1
4.程序运行后的输出结果是()。#include<stdio.h>#include<stdlib.h>main(){int*a,*b,*c;a=b=c(int*)malloc(sizeof(int));*a=1;*b=2;*c=3;a=b;printf(“%d,%d,%d\n”,*a,*b,*c);}A.1.1.3B.2.2.3C.1.2.3D.3.3.3
5.设s1="Good",s2="",s3="Bye",则s1、s2和s3连接后的结果是()。
A.GoodB.GoodByeC.GoodByeD.Bye
6.数组A中,每个元素的长度为4个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[8][5]的起始地址为()。
A.SA+292B.SA+296C.SA+300D.304
7.以下程序是用来计算两个非负数之间的最大公约数:我们假设x,y中最大的那个数的长度为n,基本运算时间复杂度为O(1),那么该程序的时间复杂度为()A.O(1)B.O(logn)C.O(n)D.O(n^2)
8.若在线性表中采用折半查找法查找元素,该线性表应该()A.元素按值有序B.构采用顺序存储结C.元素按值有序且采用顺序存储结构D.元素按值有序且采用链式存储结构
9.有以下定义和语句
StructWorkers
{intnum;charname[20];charc;
struct
{intday;intmonth;intyear;}s;
};
StructWorkersW,*pe;
PW=&W;
能给W中yeaR成员赋1980的语句是A.*pW.yeaR=1980;
B.W.yeaR=1980;
C.pW->yeaR=1980;
D.W.s.yeaR=1980;
10.算法的空间复杂度是指()。
A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行算法所需要的存储空间
11.在一个无向图中,所有顶点的度数之和等于所有边数的()倍。
A.1/2B.1C.2D.4
12.以下描述中,不是线性表顺序存储结构特征的是()。
A.可随机访问B.需要连续的存储空间C.不便于插入和删除D.逻辑相邻的数据物理位置上不相邻
13.若有语句“void*P=malloc(80);”,则以下叙述错误的是()。
A.可以通过指针P直接访问用malloc开辟的这块内存
B.p所指内存可以通过强制类型转换当作具有20个int型元素的一维数组来使用
C.p所指内存可以通过强制类型转换当作具有10个double型元素的一维数组来使用
D.P所指内存可以通过强制类型转换当作具有80个char型元素的一维数组来使用
14.若要判断char型变量c中存放的是否为小写字母,以下正确的表达式是()。A.'a'<=c<='z'
B.(c>='a')&&(c<='z')
C.(c>='a')‖(c<='z')
D.('a'<=c)AND('z'>=c)
15.若a是数值类型,则逻辑表达式“(a==1)||(a!=1)”的值是()。
A.1B.0C.2D.不知道a的值,不能确定
16.如果最常用的操作是取第i个结点及其前驱,最节省时间的存储方式是()。
A.单链表B.双向链表C.单循环链表D.顺序表
17.当n=5时,函数输出为()A.5B.11C.29D.10
18.设x、y、z、t均为int型变量,则执行以下语句后,t的值是()x=y=z=l;t=++x||++y&&++z;
A.不定值B.2C.1D.0
19.下列叙述中正确的是()。
A.可以用关系运算符比较字符串的大小
B.空字符串不占用内存,其内存空间大小是0
C.两个连续的单引号是合法的字符常量
D.两个连续的双引号是合法的字符串常量
20.
二、2.填空题(20题)21.以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值,请填空:
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,B);
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*bar)
{inti,j,x;
for(i=0;i<m;i++)
{X=ar[i][0];
for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];()=x:
}
}
22.设有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
charsi10],ti10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序运行后,从键盘上输入(<CR>代表回车符):CDEF<CR>BADEF<CR>QTHRG<CR>,则程序的输出结果是______。
23.常用的黑箱测试有等价分类法、【】、因果图法和错误推测法4种。
24.数据元素之间______的整体称为逻辑结构。
25.下列程序输出的结果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
26.若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是【】。
intw[10]={23,54,10,33,47,98,72,80,61),*p=w;
27.数据库系统中实现各种数据管理功能的核心软件称为【】。
28.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。
29.下列程序运行后的输出的结果是______。
#include<stdio.h>
main()
{chars[20];
scanf("%s",s);
printf("%s",s);
}
运行程序,输入HOWAREYOU。
30.以下程序的输出结果是【】。
#include<stdio.h>
#defineMAX(x,y)(x),(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
31.黑盒测试是从【】观点的测试。
32.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。
33.若按功能划分,软件测试的方法通常分为白盒测试方法和【】测试方法。
34.fun1函数的功能是将3个整数按由大到小的顺序调整后依次放入a、b、c3个变量中,a中放最大数,fun2函数的功能是交换两个变量中的值。补足所缺语句。
fun2(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
fun1(int*p1,int*p2,int*p3)
{if(*p3>*p2)fun2(*P2,*p3);
if(*p1<*p3)fun2(______);
if(*p1<*p2)fun2(______);
}
main()
{inta,b,c;
scanf("%d%d%d",&a,&b,&c);
fun1(&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);
}
35.有以下程序段,且变量已正确定义和赋值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
请填空,使下面程序段的功能与之完全相同
s=1.0;k=1;
while(【】){s=s+1.0/(k*(k+1));【】;}
printf("s=%f\n\n",s);
36.在进行软件结构设计时,应遵循的最主要原理是【】。
37.下面程序的运行结果是______。
#defineDOUBLE(x,y)x/y
main()
{intx=4,y=2,t;
t=DOUBLE(x+y,x-y);
printf("%d",t);
}
38.已知字符A的ACSII码值为65,以下语句的输出结果是______。
charch='B';
printf("%c%d\n",ch,ch);
39.以下程序的运行结果是()。
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}
main()
{inti=4;
fun(i++);printf("i=%dk=%d\n",i,k);
}
40.下列程序段的输出结果是【】。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':
case'A':
case'b':
case'B':printf("good");break;
case'c':case'C':printf("pass");
case'd':case'D':printf("warn");
}
三、1.选择题(20题)41.对于下述程序,在方式串分别采用“wt”和“wb”运行时,两次生成的文件TEST的长度分别是#include<stdio.h>voidmain(){FILE*fp=fopen("TEST",);fputc('A',fp);fputc('\n',fp);fputc('B',fp);fpute('\n',fp);fputc('C',fp);fclose(fp);}
A.7字节、7字节B.7字节、5字节C.5字节、7字节D.5字节、5字节
42.八位二进制补码01000100用十进制数表示为()
A.68B.-68C.-36D.60
43.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,下列选项中不能表示a[1]地址的表达式是()。
A.p+1B.a+1C.a++D.#NAME?
44.数据结构中,与所使用的计算机无关的是数据的()
A.存储结构B.物理结构C.逻辑结构D.线性结构
45.若变量已正确定义并赋值,以下符合C++语言语法的表达式是()。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
46.以下程序#include<stdio.h>#include<string.h>main(){char*pl="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}的输出是________。
A.xyzabcABCB.zabcABCC.yzabcABCD.xyabcABC
47.下列程序的运行结果为()。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=2,b=3,c=1,d=3,t;printf("%d\n",(MAX(a+b,c+d))*100);}
A.500B.5C.4D.400
48.已知学生记录描述为:structstudent{intno;charname[20],sex;struct{intyear,month,day;}birth;};structstudents;设变量s中的“生日”是“1984年11月12日”,对“birth”正确赋值的程序段是()。
A.year=1984;month=11;day=12;
B.s.year=1984;s.month=11;s.day=12;
C.birth.year=1984;birth.month=11;birth.day=12;
D.s.birth.year=1984;s.birth.month=11;s.birth.day=12;
49.已知字母A的ASCII码为十进制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的输出是_________。
A.67,DB.B,CC.C,DD.不确定的值
50.设有:
inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>b)&&(n=c>d)后,n的值是
A.1B.2C.3D.4
51.已定义ch为字符型变量,以下赋值语句中错误的是
A.ch='\';B.ch=62+3;C.ch=NULL;D.ch='\xaa';
52.软件调试的目的是______。
A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能
53.在设计程序时,应采纳的原则之—是______。
A.程序结构应有助于读者理解B.不限制goto语句的使用C.减少或者取消注解行D.程序越短越好
54.设有如下定义structss{charname[10];intage;charsex;}std[3],*p=std;下面各输入语句中错误的是
A.scanf("%d",&(*p).age);
B.scant("%s",&);
C.scanf("%c",&std[0].sex);
D.scanf("%c",&(p->sex));
55.假定所有变量均已正确说明,以下程序段运行后,x的值是______。a=b=c=0;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;
A.34B.4C.35D.3
56.在C语言的循环语句for、while、do-while中,用于结束本次循环,继续执行下一次循环的语句是______。
A.switchB.breakC.continueD.goto
57.已定义以下函数:fun(Char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数的功能是()。
A.将p1所指字符串复制到p2所指内存空间
B.将p1所指字符串的地址赋给指针p2
C.对p1和p2两个指针所指字符串进行比较
D.检查p1和p2两个指针所指字符串中是否有'\0',
58.假定所有变量均已正确说明,下列程序段运行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3
59.设有下列二叉树:[*]对此二叉树前序遍历的结果为A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY
60.数据库设计包括两个方面的设计内容,它们是()
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
四、选择题(20题)61.(42)希尔排序法属于哪一种类型的排序法()
A.交换类排序法
B.插入类排序法
C.选择类排序法
D.建堆排序法
62.有以下程序:
程序运行后的输出结果是()。
A.3B.1C.2D.0
63.下列程序的输出结果是()。
inta[5]={2,4,6,8,10},*P,**k;
p=a;k=&p;
printf("%d",*(p++));
printf("%d\n",**k);
A.44B.22C.24D.46
64.
65.
66.有如下说明
inta[10]={1,2,3,4,5,6,7},*p=a;
则数值为5的表达式是
A.*p+4B.*(p+4)C.*p+=4D.p+4
67.有以下程序
voidfunc(int*a,intb[])
{b[0]=*a+6;}
main()
{inta,b[5]={0};
a=0;b[0]=3;
func(&a,b);
rintf("%d\n",b[0]);
}
程序的运行结果是
A.6B.7
C.8D.9
68.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是
main()
{chars[100];intc,i;
scanf("%c",&c);scanf("%d",&i);scanf("%s",s);
prinnf("%c,%d,%s\n",c,i,s);}
A.123,456,789B.1,456,789
C.1,23,456,789D.1,23,456
69.下列叙述中正确的是()。
A.break语句只能用于switch语句体中
B.continue语句的作用是使程序的执行流程跳出包含它的所有循环
C.break语句只能用在循环体内和switch语句体内
D.在循环体内使用break语句和continue语句的作用相同
70.以下程序的输出结果是()。
main
{charw[][10]={"ABCD","EFGH","IJKL","MNOP"),K;
for(k=1;k<3;k++)printf("%s\n",w[k]);A.A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL
71.有以下程序执行后的输出结果是()。
A.1B.2C.4D.死循环
72.若有定义“intb[8],*p=b;”,则p+6表示()。
A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[0]的值加上6
73.(62)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是()
A.ABCED
B.DBCEA
C.CDABE
D.DCBEA
74.下列叙述中正确的是()。
A.在switch语句中,不-定使用break语句
B.在switch语句中必须使用default
C.break语句必须与switch语句中的case配对使用
D.break语句只能用于switch语句
75.以下选项中不属于字符常量的是()。
A.
B.
C.
D.
76.下列对于线性链表的描述中正确的是()。
A.存储空间不一定连续,且各元素的存储顺序是任意的
B.存储空间不一定连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
77.
78.
79.(57)下列叙述中,不属于软件需求规格说明书的作用的是______。
A.便于用户、开发人员进行理解和交流
B.反映出用户问题的结构,可以作为软件开发工作的基础和依据
C.作为确认测试和验收的依据
D.便于开发人员进行需求分析
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:计算并输出下列级数的前N项之和SN,直到SN+1大于q为止。q的值通过形参传人。SN=2/1+3/2+4/3+(N+1)/N例如,若q的值为57,则函数值为59.593612。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将s所指字符串中除了下标为奇数同时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026药品不良反应报告技能考核试题及答案
- 初中八年级地理《中国的河流:长江与黄河》单元探究导学案
- 本科二年级《高级语言程序设计》第14课:匿名函数与函数式抽象
- 2026年中级育婴员知识考试试题及答案
- 202超市兼职学生临时合同样本三篇
- 非织造布卷绕分切工技能评估能力考核试卷含答案
- 药用动物养殖员安全素养能力考核试卷含答案
- 电子废弃物处理工改进评优考核试卷含答案
- 快件揽收员操作知识模拟考核试卷含答案
- 石英晶体滤波器制造工操作管理模拟考核试卷含答案
- 部队安全常识训练课件
- 2025年食品营销题库及答案
- 水处理班组安全培训
- 厂房迁移合同注意事项汇编
- 患者标本转运培训
- 2025年初中地生会考模拟试题及答案
- 2025年市场营销学课程期末考试试题及答案
- 2025年防雷检测专业技术人员能力认定考试复习题库(附答案)
- 工程总承包项目费用管控方案
- 2025年中国专精特新企业发展洞察报告
- 锐器伤不良事件上报流程
评论
0/150
提交评论