版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年山西省临汾市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列关于软件测试的目的和准则的叙述中,正确的是()
A.软件测试是证明软件没有错误
B.主要目的是发现程序中的错误
C.主要目的是确定程序中错误的位置
D.测试最好由程序员自己来检查自己的程序
2.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()
A.a<>0B.!aC.a=0D.a
3.若有定义“doublea;”,则正确的输入语句是()。A.A.seaM("%1f",&a);B.scanf("%f",&a);
C.scanf("%1f",&a)
D.scanf("%1e",&a);
4.下列程序的输出结果是()。main{inti=1,j=2,k=3;if(i++==1&&(++j==3==||k++==3))printf("%d%d%d\n",i,j,k);}A.123B.234C.223D.233
5.对于关键字值序列(12,13,11,18,60,15,7,18,25,100)
A.100B.12C.60D.15
6.在一个C程序中
A.main函数必须出现在所有函数之前
B.main函数可以在任何地方出现
C.main函数必须出现在所有函数之后
D.main函数必须出现在固定位置
7.
有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",m,85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",f,95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的运行结果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
8.下面叙述正确的是______。A.算法的执行效率与数据的存储结构无关
B.算法的空间复杂度是指算法程序中指令(或语句)的条数
C.算法的有穷性是指算法必须能在执行有限个步骤之后终止
D.以上三种描述都不对
9.在下面栈的基本运算中,不是加工型运算的是______。
A.初始化B.进栈C.退栈D.判栈空
10.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的事()。
A.C语言程序仅可以编译执行B.C语言程序仅可以解释执行C.C语言程序既可以编译执行又可以解释执行D.以上说法都不对
11.若一个栈以向量V[1..n]存储,初始栈顶指针top为n+1,则下面x进栈的正确操作是()。
A.top=top+1;V[top]=x
B.V[top]=x;top=top+1
C.top=top-1;V[top]=x
D.V[top]=x;top=top-1
12.以下选项中错误的是()。A.printf(“%s\n”,‘s’);
B.printf“%d%c\n”,‘s’,‘s’);
C.printf(“%c\n”,‘s’-32);
D.printf(“%c\n”,65);
13.栈和队列的共同点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点
14.有以下程序:#include<stdio.h>intf1(inta){returna*3;}intf2(int*b){return*b*5;}main(){intx=3,y=5;printf(“%d,%d\n”,f1(x),f2(&y));}程序的运行结果是()。
A.9,125B.9,25C.3,15D.3,45
15.数据结构若采用链式存储结构,要求内存中可用存储单元的地址()。
A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续不连续都可以
16.
17.下列语句中,显示没有下画线的超链接的语句是()。
A.a{text—decoration:none}
B.a{text—decoration:nounderline}
C.a{underline:none}
D.a{decoration:nounderline}
18.软件生命周期是指()。
A.软件的定义和开发阶段
B.软件的需求分析、设计与实现阶段
C.软件的开发阶段
D.软件产品从提出、实现、使用维护到停止使用退役的过程
19.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是
A.10,A,10B.10,a,10C.1O,a,0D.10,A,0
20.若有定义和语句int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);则输出结果是()
A.10,10B.10,20C.20,10D.20,20
二、2.填空题(20题)21.下列程序的输出结果是______。
main()
{inta=1,b=2,c=3,t=0;
if(a<B){t=a;a=b;b=t;}
if(a<C){t=a;a=c;c=t;}
printf("%d,%d,%d\n",a,b,C);
}
22.若采用直接插入法对字母序列(W,S,E,L,X,G,I)进行排序,使字母按升序排列,那么第一次排序的结果为【】。
23.以下程序的运行结果是______。
intx;
main()
{inta=5,b=8;
swap(a,b);
printf("a=%d,b=%d,x=%d\n",a,b,x);
}
swap(inta,intb)
{inttemp;
temp=a;a=b;
b=temp;x=a/b;
printf("x=%d\n",x);
}
24.以下程序的输出结果是______。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.Of\n",fun((int)fun(a+c,b),a-c));}
25.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【】。
for(i=0,j=10;i<=j;i++,j--)k=i+j;
26.阅读下面程序段,则执行后输出的结果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara=′A′;
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
27.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
2223445666677899101010
删除后,数组中的内容应该是:
2345678910。
请填空。
#include<stdio.h>
#defineN80
infun(inta[],intn)
{inti,j=1;
for(i=1;i<n;i++)
if(a[j-1]【】a[i])
a[j++]=a[i];
【】;
}
main()
{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
printf("Theoriginaldata:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);
n=fun(a,n);
printf("\nThedataafterdeleted:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");
}
28.程序的运行结果为【】。
main()
{intx,y,z;
x=24;
y=024;
z=0x24;
printf("%d,%d,%d\n",x,y,z);
}
29.若有如下程序:
main()
{inta[][2]={1,2,6,9,11},(*t)[2];
t=a;
printf("%d,%d\n",*(t[1]+1),(*t)[1]);
}
则程序运行后输出的结果是【】。
30.设有如下宏定义
#defineMYSWAP(z,x,y){z=x;x=Y;Y=z;}
以下程序段通过宏调用实现变量a、b内容的交换,请填空。
floata=5,b=16,c;
MYSWAP(【】,a,b);
31.数据管理技术的发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【】。
32.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
33.以下程序段的输出结果是【】。
inti=9;
printf("%o\n",i);
34.设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=______;
scanf("%d%d%d",&x,&y,&z}:
big=(*f)(x,y,Z);
printf("big=%d\n",big);
}
35.若运行输入:3<回车>,则以下程序的输出结果是()。main(){inta,b;scanf("%d",&A);b=(a>=0)?a:-a;printf("b=%d",B);}
36.表达式pow(2.8,sqrt(float(x)))值的数据类型为______型。
37.下述函数统计—个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
38.阅读下列程序,则程序的输出结果为______。
#include"stdio.h"
struetty
{intdata;
charc;};
main()
{streettya={30,'x'};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c='y';}
39.下列程序的输出结果是【】。
main()
{
inta=1,b=2;
a=a+b;b=a-b;a=a-b;
prrintf("%d,%d\n",a,b);
}
40.下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。
#include<stdioh>
main()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(i;0;i<9;i++)
{if(i%4==0)primf("\n");
printf("%3d",b[i];
}
}
三、1.选择题(20题)41.以下叙述中正确的是()。
A.构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main函数必须放在其他函数之前
D.C函数定义的格式是K&R格式
42.若有如下定义:intx=3,y=2,Z;则表达式Z=X/y*3.0的值是()。
A.2B.2C.3D.3
43.有下列函数定义:fun(floath){printf("%f,%f\n",h,h*h);}该函数的类型是()。
A.27B.6C.25D.30
44.下列程序执行后输出的结果是______。intd=l;fun(intp){intd=5;d+=p++;printf("%d,",d);}main(){inta=3;fun(a);d+=a++;printf("%d\n",d);}
A.8,12B.9,13C.8,4D.9,5
45.以下程序运行后,输出结果是______。#include<stdio.h>ss(char*s){char*p=s;while(*.p)p++;return(p-s);}main(){char*a="abded";inti;i=ss((A);print("%d\n",i);}
A.8B.7C.6D.5
46.有下列二叉树,对此二叉树中序遍历的结果为()。
A.ABCDEFB.BDAECFC.ABDCEFD.ABCDFE
47.若有以下说明:inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;则数值为4的表达式是()
A.a[g-c]B.a[4]C.a['d'-'c']D.a['d'-c]
48.假定w、x、y、m均为血型变量,则执行下列的语句后,m的值是()。
w=6,x=4,y=3;
m=(w<x)?w:x;
m=(m<y)?m:y;
A.3B.4C.5D.6
49.以下叙述中,正确的是______。
A.输入项可以是一个实型常量,例如:scanf("%f",3.5);
B.只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d,b=%d");
C.当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f",&d);
D.当输入数据时,必须指明变量地址,例如:scanf("%f",&f);
50.下列程序段执行后,c3中的值是______。intc1=1,c2=2,c3;c3=1.0/c2*c1;
A.0B.0.5C.1D.2
51.从工程管理角度,软件设计一般分为两步完成,它们是()。
A.概要设计与详细设计B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计
52.已知各变量的类型说明如下:intk,a,b;unsignedlongw=5;doublex=1.42;则以下不符合C语言语法的表达式是():
A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)
53.有以下程序
#include<stdlib.h>
structNODE
{intnum;structNODE*next;};
main()
{structNODE*p,*q,*r;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->num=10;q->num=20;r->num=30;
p->next=q;q->next=r;
printf("%d\n",p->num+q->next->num);}
程序运行后的输出结果是
A.10B.20C.30D.40
54.在结构化方法中,软件功能分解属于软件开发中的______阶段。
A.详细设计B.需求分析C.总体设计D.编程调试
55.若程序中已包含头文件stdio.h,以下选项能正确运用指针变量的程序段是()。
A.int*i=NULL;scanf("%d",i);
B.float*f=NULL;*f=10.5;
C.chart='m',*c;*c=&t;
D.long*L;L='\0';
56.视图设计—般有3种设计次序,下列不属于视图设计的是______。
A.自顶向下B.由外向内C.由内向外D.自底向上
57.以下数据结构中不属于线性数据结构的是______。
A.队列B.线性表C.二叉树D.栈
58.按照“先进先出”组织数据的数据结构是()。
A.队列B.栈C.双向链表D.二叉树
59.设有定义:longx=-123456L;,则以下能够正确输出变量x值的语句是A.printf("x=%d\n",x);
B.printf("x=%1d\n",x);
C.printf("x=%8dL\n",x);
D.printf("x=%LD\n",x);
60.下列程序的输出结果是()。#include<stdio.h>voidfun(int*a,int*B){int*k;k=a;a=b;b=k;}main(){inta=1,b=2,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,B);}
A.21B.12C.编译出错D.00
四、选择题(20题)61.
62.有以下程序执行后的输出结果是()。
A.5,11B.5,5C.11,11D.11,5
63.
64.
65.
66.若有定义:“int*P,x=0,*p,p=&x;”,则语句“printf("%d\n",*p);”的输出结果是()。
A.随机值B.0C.x的地址D.P的地址
67.(30)关系数据库管理系统能实现的专门关系运算包括()
A.排序、索引、统计
B.选择、投影、连接
C.关联、更新、排序
D.显示、打印、制表
68.已定义以下函数
69.
70.C语言源程序名的后缀是()。A.CB.exeC.obiD.ep
71.设有如下程序段
72.若有定义语句:“charsE10]="1234567\0\0";”,则strlen(s)的值是()。
A.7B.8C.9D.10
73.有以下程序:
程序运行后的输出结果是()。
A.1.1.3B.2,2,3C.1,2,3D.3,3,3
74.有以下程序程序运行后的输出结果是()。
A.30B.10C.0D.64
75.若有下的定义:"intt[3][2];",能正确表示t数组元素地址的表达式是()。
A.&t[3][2]
B.t[3]
C.t[l]
D.t[2][2]
76.在下列选项中,没有构成死循环的是()。
A.
B.
C.
D.
77.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数.feof(fp)的返回值为()
78.以下定义数组的语句中错误的是()。
79.
80.设有定义语句:
intx[-6]={2,4,6,8,5,7),*p=X,i;
要求依次输出X数组6个元素中的值,不能完成此操作的语句是()。A.A.for(i=0;i<6;i++)printf("%2d",*(p++));
B.for(i=0;i<6;i++)printf("%2d",*(pq-i));
C.for(i=0;i<6;i++)printf("%2d",*p++);
D.for(i=0;i<6;i++)printf("%2d",*(p)++);
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本方法是:先对字符串中的头2个元素进行排序,然后把第3个字符插入到前2个字符中,插入后前3个字符依然有序;再把第4个字符插人到前3个字符中,待排序的字符串已在主函数中赋予。请修改程序中的错误,使它能得出正确的结果。注意:不要改动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.BB)【解析】软件侧试的目的:
\n①软件测试是为了发现错误而执行程序的过程;
\n②一个好的测试用例能够发现至今尚未发现的错误;
\n⑧一个成功的测试是发现了至今尚未发现的错误。
\n软件侧试的准则:
\n①所有测试都应追溯到需求;
\n②严格执行测试计划,排除测试的随意性;
\n③充分注意测试中的群集现象:
\n④程序员应避免检查自己的程序;
\n⑤穷举测试不可能;
\n⑥妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
2.D
3.D本题考查seanf函数的调用形式:scanf(格式字符串,输入项地址表)。题中定义变量a为双精度型变量,双精度变量的格式符为“le”;变量的地址用取地址符“&”加变量名表示,所以选项D正确。
4.D本题考梦自增运算符“++”、逻辑与运算符“&&”和逻辑或运算符“||”。自增运算符“++”出现在变量之前,表示先使用变量的值加l,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,再使用变量的值加l。当逻辑与运算符“&&’’两边的运算对象都为真时,逻辑表达式的值才为真;当逻辑或运算符“||”只要一个值为1,值就为1。根据运算符的优先级,题中应先计算内层括号中的值。++j是先自加后运算,因此运算时j的值等于3,所以表达式++j=3成立,即表达式的值为1;1与任何数都为进行或(||)运算,结果都为1,因此k=3的表达式i++是先运算后自加,因此运算时i为1,所以i++=1成立,自加1后i=2。if语句的条件为真即“1”,所以输出i、j、k的值分别是2,3,3。
5.C
6.B解析:一个完整的C语言程序有且仅有一个主函数(main()函数)。程序总从main()函数的第一条语句开始执行,到main()函数的最后一条语句结束,其他函数都是在执行main()函数时,通过函数调用或嵌套调用而得以执行的。C语言规定,main()函数在程序中的位置是任意的,故选项A、选项C和选项D均不正确。所以,B选项为所选。
7.Cf函数的功能是对形参a的各个成员用结构体变量b的各个成员进行赋值后,然后返回变量a。
8.C解析:算法的执行效率与数据的逻辑结构和存储结构都有很紧密的关系。算法的空间复杂度是指执行该算法需要的内存空间,并非算法程序中指令的条数。算法一般应该具有以下4个特征:可行性、确定性、有穷性和拥有足够情报。其中,有穷性是指算法必须能在执行有限个步骤之后终止,否则可能失去实际意义。
9.D
10.A解释执行是计算机语言的一种执行方式。由解释器现场解释执行,不生成目标程序。如BASIC便是解释执行。一般解释执行效率较低,低于编译执行。而C程序是经过编译生成目标文件然后执行的,所以C程序是编译执行。
11.C
12.A%d表示以字符和整型类型的格式输出,%c表示以字符类型的格式输出,%s表示以字符串类型的格式输出。选项A中,‘s’是字符,不能用%s格式来输出。故本题答案为A选项。
13.C解析:栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”(或“先进后出”)的线性表;而队列只允许在表的一端进行插入操作,在另一端:进行删除操作,是一种“先进先出”(或“后进后出”)的线性表。因此栈和队列的共同点是只允许在端点处插入和删除元素。
14.Bf1函数接收整型数a,将a的值乘以3,结果作为函数返回值返回;f2接收整型变量的地址,将地址中的值取出后乘以5,结果作为返回值返回;main函数定义两个变量x、y,初值分别是3和5,所以调用f1(x)返回值为9,调用f2(&y)返回值为25。故本题答案为B选项。
15.D
16.D
17.A
18.D通常把软件产品从提出、实现、使用、维护到停止使用、退役的过程称为软件生命周期。选项A、B、C选项均为生命周期的一部分。故选D选项。
19.A解析:本题考核的知识点是scallf()函数输入格式。格式字符“%d”用于输入整数,“%C”用来输入字符。在输入时,系统把第一个10作为整数10赋给m,把随后的A作为字符赋值给c,后面的10作为整数赋给n,最后输出的结果为10,A,10所以,A选项为所选。
20.D
21.3123,1,2解析:分析程序,第一个if语句,a=1,b=2,控制条件a<b成立,则交换a、b的值,此时a=2,b=1。第二个if语句,a=2,c=3,控制条件a<c成立,则交换a、c的值,此时a=3,c=2。
22.SWELXGI
23.a=5b=8x=1。a=5,b=8,x=1。解析:本题考查形参变量值的改变并不能传回给实参。因此主函数中最后输出的a和b仍为原来的初值5和8。
24.本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符,将一个表达式转换成所需类型。如:(double)a是将a转换成double类型;(int)(x+y)是将x+y的值转换成整型。
本题可按部就班地逐步运算:
fun((int)fun(a+c,b),a-c)
fun((int)fun(10,5),2-8)
fun((int)15.000000,-6)
fun(15,-6)
9
25.1010解析:该for语句以i为0,j为10作为初始值,循环条件是i<=j,每次循环后i增1、j减1,循环体是将i与j的和赋给k,这样变量k将保存的是最后一次赋给它的值。一次循环后i为1、j为9,二次循环后i为2、j为8,……,五次循环后i为5、j为5,第六次循环,将i与j的和10赋给k后,i为6、j为4,循环结束,k值为10。
26.NN解析:函数说明语句中的类型名必须与函数返回值的类型一致。本题实现的是在字符'A'的ASCII码值上加上一个常数,使之变成另一个ASCII码值,从而输出字符。
27.!=returnj!=\r\nreturnj解析:本题程序的流程是:让i,j都从1开始其中j用于控制删除后剩下的数中的下标,i用于搜索原数组中的元素。j始终是新数组已有元素中最后一个元素的下一个元素的下标,所以if()中的条件是a[j-1)!=a[i],其中a[j-1]就是新数组中的最后一个元素,若条件成立则表示出现了不同的值,所以a[i]要留下到新数组中。注本题中i,j的初值都要从1开始。该算法只能用于数组已排序的题目中。
28.242036
29.929,2解析:本题开始定义了一个int型二维数组a,并赋以5个初值,系统使数组的最高维为3,并让a[0][0]=1,a[0][1]=2,a[1][0]=6,a[1][1]=9,a[2][0]=11,a[2][1]因为初值不够而初始化为0。然后定义一个行指针t指向数组a的首地址,因为表达式t[1]表示指向元素a[1][0]的int型指针,t[1]+1表示指向a[1][1]的int型指针,故*(t[1]+1)返回的是a[1][1]的值9。而*t表示指向元素a[0][0]的int型指针,故(*t)[1]返回的是a[0][1]的值2。所以正确答案应该为9,2。
30.cc解析:本题关键在考生是不是了解宏的基本运用,在使用宏的时候明显少了—个实参。在定义宏的时候变量z是用来做中间变量的,题目中缺的变量就是一个中间变量c。
31.数据库系统阶段数据库系统阶段解析:在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段,其中数据独立性最高的阶段是数据库系统阶段。
32.c>='a'&&c<='z'c>='a'&&c<='z'解析:小写字母在内存中以ASCII的形式存入,且从a到z依次递增,所以可以直接用c>='a'&&c<='z'判断是不是小写字母;c!='\\n'判断是用换行符结束循环。
33.1111解析:本题考核的知识点是printf()函数的输出格式。本题中定义了一个整型变量i并赋初值为9,然后要求以八进制输出i的值,9的八进制数的表示为11。
34.findbigfindbig解析:本题考核的知识点是指向函数的指针变量的使用。本题首先定义了一个指向函数的指针变量f,如果希望让它指向某个函数,只需把函数名赋给该指针变量即可。所以说本题的空格处应该填入函数名findbig。
35.b=3b=3解析:条件表达式的基本格式为:“表达式1?表达式2:表达式3”;其功能是:表达式1的值若非0,则计算表达式2的值,且为最终结果;若表达式1的值为0,则计算表达式3的值,且为最终结果。因为a=3,则a>=0成立,所以b=a=3。
36.floatfloat解析:在此表达式中x是float类型的变量,经过开方所得到的结果仍是float类型,再和2.8进行运算时,应该先将2.8转换成float类型再运算,最后结果仍是float型。
37.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在统计字符串单词个数的算法中,本题的flag是为了记录—个单词是否结束。第18空应填*s++;如果某个字符不是空格,则必须判断它是否是单词,如是,则使得flag的标志为1,num的值加1。本题判断方法是:先判断s所指向的字符是否为空格,如果是则使得flag=0,否则判断前—个字符是否是空格,如果是则说明这个字符是—个单词的开始,将flag标志为1,num的值加1,如果不是,则不必记录。故第19空应填flag=0或*(s-1)='';最后—个空格需填写的是返回的单词的个数,即num。
38.30x30x解析:本题的参数传递属于值传递,所以被调用函数内不能改变调用函数中的数据。
39.212,1解析:本题中,执行a=a+b时,a=1,b=2,a=1+2=3,b=a-b时,a=3,b=2,b=3-2=1;a=a-b时,a=3,b=1,a=3-1=2;因此,本题的输出是2,1
40.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:将数组a中元素a[i]与a[i+1]值相加后的值赋予数组b中元素b[i]小即可实现将一个数组的前项和后项之和存入另一数组。
41.A解析:本题考查C语言的综合基础知识。构成C程序的基本单位是函数,一个C程序总是从main函数开始执行,而不论main函数在整个程序中的位置如何。C语言的函数定义都是互相平行、独立的,在定义函数时,一个函数内不能定义另一个函数。C函数定义的一般格式有两种:传统格式和现代格式。传统格式也称K&R格式,是早期编译系统使用的格式;现代格式又称ANSI格式,是现代编译系统使用的格式。
42.C解析:变量z被定义为整型,所以选项B和D不符合题意,首先被排除。变量x和y也被定义为整型,所以表达式x/y的值为整数1,最后z被赋值为3,选项C正确。
43.A解析:本题考查函数调用时的参数传递。函数reverse将数组b进行了逆置,此时的b[10]={10,9,8,7,6,5,4,3,2,1},后面for语句的功能是将b中的前3个数累加,将结果放在s中,最后将s输出,结果s=10+9+8=27。
44.C解析:本题执行过程如下:首先调用fun函数,使得实参a的值3传递绐形参p,得到局部变量d=8,打印出局部变量d的值8返回主函数执行“d+=a++””,此处的d为全局变量,所以d=1+3=4(由于本题是值传递,所以在函数fun中对p值的改变并不能引起a的改变),故本题的输出是8,4。
45.D
46.B解析:对二又树的中序遍历是指:首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左,右子树时,注意依旧按照“左子树—根结点—右于树”的顺序。
47.D
48.A解析:条件表达式“a?b:c”的含义是:当a为真时,其值等于表达式b的值,当a为假时,其值等于表达式c的值。第一个表达式:w=6<x=4为假,所以返回x的值,即m=x=4:第二个表达式:m=4<y=3为假,所以返回y的值,即m=y=3。
49.D
50.A
51.A解析:从工程管理的角度看,软件设计可分为概要设计和详细设计两大步骤。概要设计是根据需求确定软件和数据的总体框架;详细设计是将其进一步精化成软件的算法或表示和数据结构。而在技术上,概要设计和详细设计又由若干活动组成,包括总体结构设计/数据设计和过程设计。因此,本题的正确答案是A。
52.A解析:“%”是求余运算符或模运算符,“%”两侧均应为整型数据,选项A)中的x是double型数据。
53.D解析:该题中考查的是简单的单链表,下图就是赋完值后的示意图:容易看到p->num=10,而q->next就是r,所以q->next->num=30,故答案为40。
54.C解析:总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件,结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。
55.D解析:本题考查指针变量的运用。选项A)、B)的指针定义错误,空指针NULL是对指针变量赋。值而得到的。例如:
#defineNULL0
int*p=NULL;
对指针变量赋。值和不赋值的时候意义是不同的:指针变量未赋值时,它是指向任意不确定的存储单元,不能使用,否则将造成意外错误;而指针变量赋0值后,则可以使用,只是它不指向具体的变量而已。选项C)中的*c=&t;错误,因为&t是地址,而*c是值。选项D)是让指针L指向字符串的末尾,即字符串的结束符。
56.B解析:视图设计—般有3种设计次序,它们分别是自顶向下、自底向上和由内向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以单独使用也可混合使用。
57.C解析:线性表、栈和队列所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,它只能在固定的一端进行插入和删除操作,又称后进先出表(LastInFirstOut);队列是插入在一端进行,删除在另一端进行的线性表,又称先进先出表(FirstInFirstOut)。
58.A队列是一种特殊的线性表,只允许在表的一端插八元素,在表的另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”。先插入的元素先被删除,是按“先进先出”的原则组织数据的。
【知识拓展】“队列”和“栈”都是一种特殊的线性表。之所以称之为“队列”,其形式如“排队”。要讲究“先来后到”,先进先出,后进后出。
59.B解析:本题考查的知识点是输出语句printf()的基本用法。x为一个长整型的变量,而且是一个十进制的数,它的输出控制符是“%1d”,所以排除选项A和选项C;由于C语言中是区分大小写的,“1d”中的“d”不能为大写,故排除选项D。4个选项中B正确。
60.B
61.B
62.A声明静态局部变量:函数调用结束后,其占用的存储单元不释放:在下次该函数调用时,该变量保留上一次函数调用结束时的值。本题子函数fun中的变量i和m均为静态局部变量。因此第一次调用fun函数,返回m的值为5,第二次再调用fun函数时,i的值为3,m的值已经是5了,所以执行i+=m+1,i的值变为9,m=i+x+y=9+l+l=11。故本题答案为A)。
63.D
64.D
65.B
66.A*P的意思是取其指向地址的内容,P是指向x地址的指针,因此输出*p也就是输出x的内容,即0,故选择B选项。
67.B
68.A本题考查的是指针的概念。在C语言中,指针是一种特殊的变量,它存放的值是一个内存地址。所以一个指针变量涉及三个值:指针变量所指内容的值、指针变量中存放的值、指针变量的地址值。它们可以分别用表达式*P、P、&p来表示。题目rpfun()函数的返回表达式是*p,所以选项C)、D)不为所选,而应该是形参p所指内容的值,因为P为int型指针,所以该值是一个整数。故应该选择A)。
69.A
70.AC语言源程序名的后缀为.C’所以A)正确。
71.A本题主要考查的是字符数组、字符串和字符指针的一些概念。数组元素个数,是在定义数组的时候确定的,本题的S数组元素个数是20。而字符串长度是从该字符串的第1个字符开始,一直到“\0”字符为止,所历经的字符个数,
“\0”不算在内。所以本题P所指字符串(”Beijin9”)的长度为7。因此选项B)的叙述不正确。s是数组名,而不是指针变量,因此选项C)不正确。数组s中除了包含字符串“Beijin9”外,还包含其后的20个以内字节的内容,而指针变量p中包含的只是数组s的首地址。因此选项D)的说法也不正确。
72.A"\0"表示空字符,strlen函数求得的是不包括字符串结束符\0的长度。故选A。
73.DmaUoc函数动态分配一个整型的内存空间,然后把函数返回的地址用(int{)强制类型转换为整型指针,再把它赋给a,b,c,即让指针变量a,b,c都指向刚申请的内存空间。所以只有最后一个赋值语句+C=3的值保留在了该空间内,因为a、b、C三个指针变量均指向该空间,所以打印该空间内的数值为3。
74.D本题目中静态局部变量x,在静态存储区内分配存储单元,在程序整个运行期间都不释放。因此第一次循环s的值为2;第二次循环中,返回的x的值为4,因此s的值为8;第三次循环,返回的x的值为8,因此s的值为64。
75.C\n数组的下标是从0开始的,A中越界,行下标和列下标都不能越界;B中,虽然是个地址,但是也同样越界了;选项c中表示的是第一个的首地址;选项D表示的为其元素的值,并不是地址。
\n
76.D选项A)的循环表达式的条件永久为l,并且小于l00的数与100取余不超过99,所以在循环体内表达式i%100+1的值永远不大于100,break语句永远不会执行,所以是死循环;选项B)的括号内没有能使循环停下来的变量增量,是死循环;选项C)中先执行k++,使k=10001,从而使循环陷入死循环。
77.A本题考查的是文件指针feof的运用。当文件读到结尾时,feof(fp)为非零值,
78.BB)选项中定义的数组为2行4列,而赋值时赋成了3行所以出错。
79.D
80.D本题要求输出每个元素的值,D选项中(*p)++等价于*p=*p+1,其仅仅是对*p加1,并没有达到输出其每个值的作用。
81.错误:c=arr[i];
正确:ch=arrEi];
【解析】由函数定义可知,函数proc只定义了变量ch,没有定义变量c。因此,“c=”r[i];”应改为“ch=arr[i];”。
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.软件测试是证明软件没有错误
B.主要目的是发现程序中的错误
C.主要目的是确定程序中错误的位置
D.测试最好由程序员自己来检查自己的程序
2.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()
A.a<>0B.!aC.a=0D.a
3.若有定义“doublea;”,则正确的输入语句是()。A.A.seaM("%1f",&a);B.scanf("%f",&a);
C.scanf("%1f",&a)
D.scanf("%1e",&a);
4.下列程序的输出结果是()。main{inti=1,j=2,k=3;if(i++==1&&(++j==3==||k++==3))printf("%d%d%d\n",i,j,k);}A.123B.234C.223D.233
5.对于关键字值序列(12,13,11,18,60,15,7,18,25,100)
A.100B.12C.60D.15
6.在一个C程序中
A.main函数必须出现在所有函数之前
B.main函数可以在任何地方出现
C.main函数必须出现在所有函数之后
D.main函数必须出现在固定位置
7.
有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",m,85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",f,95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的运行结果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
8.下面叙述正确的是______。A.算法的执行效率与数据的存储结构无关
B.算法的空间复杂度是指算法程序中指令(或语句)的条数
C.算法的有穷性是指算法必须能在执行有限个步骤之后终止
D.以上三种描述都不对
9.在下面栈的基本运算中,不是加工型运算的是______。
A.初始化B.进栈C.退栈D.判栈空
10.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的事()。
A.C语言程序仅可以编译执行B.C语言程序仅可以解释执行C.C语言程序既可以编译执行又可以解释执行D.以上说法都不对
11.若一个栈以向量V[1..n]存储,初始栈顶指针top为n+1,则下面x进栈的正确操作是()。
A.top=top+1;V[top]=x
B.V[top]=x;top=top+1
C.top=top-1;V[top]=x
D.V[top]=x;top=top-1
12.以下选项中错误的是()。A.printf(“%s\n”,‘s’);
B.printf“%d%c\n”,‘s’,‘s’);
C.printf(“%c\n”,‘s’-32);
D.printf(“%c\n”,65);
13.栈和队列的共同点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点
14.有以下程序:#include<stdio.h>intf1(inta){returna*3;}intf2(int*b){return*b*5;}main(){intx=3,y=5;printf(“%d,%d\n”,f1(x),f2(&y));}程序的运行结果是()。
A.9,125B.9,25C.3,15D.3,45
15.数据结构若采用链式存储结构,要求内存中可用存储单元的地址()。
A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续不连续都可以
16.
17.下列语句中,显示没有下画线的超链接的语句是()。
A.a{text—decoration:none}
B.a{text—decoration:nounderline}
C.a{underline:none}
D.a{decoration:nounderline}
18.软件生命周期是指()。
A.软件的定义和开发阶段
B.软件的需求分析、设计与实现阶段
C.软件的开发阶段
D.软件产品从提出、实现、使用维护到停止使用退役的过程
19.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是
A.10,A,10B.10,a,10C.1O,a,0D.10,A,0
20.若有定义和语句int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);则输出结果是()
A.10,10B.10,20C.20,10D.20,20
二、2.填空题(20题)21.下列程序的输出结果是______。
main()
{inta=1,b=2,c=3,t=0;
if(a<B){t=a;a=b;b=t;}
if(a<C){t=a;a=c;c=t;}
printf("%d,%d,%d\n",a,b,C);
}
22.若采用直接插入法对字母序列(W,S,E,L,X,G,I)进行排序,使字母按升序排列,那么第一次排序的结果为【】。
23.以下程序的运行结果是______。
intx;
main()
{inta=5,b=8;
swap(a,b);
printf("a=%d,b=%d,x=%d\n",a,b,x);
}
swap(inta,intb)
{inttemp;
temp=a;a=b;
b=temp;x=a/b;
printf("x=%d\n",x);
}
24.以下程序的输出结果是______。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.Of\n",fun((int)fun(a+c,b),a-c));}
25.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【】。
for(i=0,j=10;i<=j;i++,j--)k=i+j;
26.阅读下面程序段,则执行后输出的结果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara=′A′;
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
27.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
2223445666677899101010
删除后,数组中的内容应该是:
2345678910。
请填空。
#include<stdio.h>
#defineN80
infun(inta[],intn)
{inti,j=1;
for(i=1;i<n;i++)
if(a[j-1]【】a[i])
a[j++]=a[i];
【】;
}
main()
{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
printf("Theoriginaldata:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);
n=fun(a,n);
printf("\nThedataafterdeleted:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");
}
28.程序的运行结果为【】。
main()
{intx,y,z;
x=24;
y=024;
z=0x24;
printf("%d,%d,%d\n",x,y,z);
}
29.若有如下程序:
main()
{inta[][2]={1,2,6,9,11},(*t)[2];
t=a;
printf("%d,%d\n",*(t[1]+1),(*t)[1]);
}
则程序运行后输出的结果是【】。
30.设有如下宏定义
#defineMYSWAP(z,x,y){z=x;x=Y;Y=z;}
以下程序段通过宏调用实现变量a、b内容的交换,请填空。
floata=5,b=16,c;
MYSWAP(【】,a,b);
31.数据管理技术的发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【】。
32.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
33.以下程序段的输出结果是【】。
inti=9;
printf("%o\n",i);
34.设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=______;
scanf("%d%d%d",&x,&y,&z}:
big=(*f)(x,y,Z);
printf("big=%d\n",big);
}
35.若运行输入:3<回车>,则以下程序的输出结果是()。main(){inta,b;scanf("%d",&A);b=(a>=0)?a:-a;printf("b=%d",B);}
36.表达式pow(2.8,sqrt(float(x)))值的数据类型为______型。
37.下述函数统计—个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
38.阅读下列程序,则程序的输出结果为______。
#include"stdio.h"
struetty
{intdata;
charc;};
main()
{streettya={30,'x'};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c='y';}
39.下列程序的输出结果是【】。
main()
{
inta=1,b=2;
a=a+b;b=a-b;a=a-b;
prrintf("%d,%d\n",a,b);
}
40.下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。
#include<stdioh>
main()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(i;0;i<9;i++)
{if(i%4==0)primf("\n");
printf("%3d",b[i];
}
}
三、1.选择题(20题)41.以下叙述中正确的是()。
A.构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main函数必须放在其他函数之前
D.C函数定义的格式是K&R格式
42.若有如下定义:intx=3,y=2,Z;则表达式Z=X/y*3.0的值是()。
A.2B.2C.3D.3
43.有下列函数定义:fun(floath){printf("%f,%f\n",h,h*h);}该函数的类型是()。
A.27B.6C.25D.30
44.下列程序执行后输出的结果是______。intd=l;fun(intp){intd=5;d+=p++;printf("%d,",d);}main(){inta=3;fun(a);d+=a++;printf("%d\n",d);}
A.8,12B.9,13C.8,4D.9,5
45.以下程序运行后,输出结果是______。#include<stdio.h>ss(char*s){char*p=s;while(*.p)p++;return(p-s);}main(){char*a="abded";inti;i=ss((A);print("%d\n",i);}
A.8B.7C.6D.5
46.有下列二叉树,对此二叉树中序遍历的结果为()。
A.ABCDEFB.BDAECFC.ABDCEFD.ABCDFE
47.若有以下说明:inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;则数值为4的表达式是()
A.a[g-c]B.a[4]C.a['d'-'c']D.a['d'-c]
48.假定w、x、y、m均为血型变量,则执行下列的语句后,m的值是()。
w=6,x=4,y=3;
m=(w<x)?w:x;
m=(m<y)?m:y;
A.3B.4C.5D.6
49.以下叙述中,正确的是______。
A.输入项可以是一个实型常量,例如:scanf("%f",3.5);
B.只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d,b=%d");
C.当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f",&d);
D.当输入数据时,必须指明变量地址,例如:scanf("%f",&f);
50.下列程序段执行后,c3中的值是______。intc1=1,c2=2,c3;c3=1.0/c2*c1;
A.0B.0.5C.1D.2
51.从工程管理角度,软件设计一般分为两步完成,它们是()。
A.概要设计与详细设计B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计
52.已知各变量的类型说明如下:intk,a,b;unsignedlongw=5;doublex=1.42;则以下不符合C语言语法的表达式是():
A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)
53.有以下程序
#include<stdlib.h>
structNODE
{intnum;structNODE*next;};
main()
{structNODE*p,*q,*r;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->num=10;q->num=20;r->num=30;
p->next=q;q->next=r;
printf("%d\n",p->num+q->next->num);}
程序运行后的输出结果是
A.10B.20C.30D.40
54.在结构化方法中,软件功能分解属于软件开发中的______阶段。
A.详细设计B.需求分析C.总体设计D.编程调试
55.若程序中已包含头文件stdio.h,以下选项能正确运用指针变量的程序段是()。
A.int*i=NULL;scanf("%d",i);
B.float*f=NULL;*f=10.5;
C.chart='m',*c;*c=&t;
D.long*L;L='\0';
56.视图设计—般有3种设计次序,下列不属于视图设计的是______。
A.自顶向下B.由外向内C.由内向外D.自底向上
57.以下数据结构中不属于线性数据结构的是______。
A.队列B.线性表C.二叉树D.栈
58.按照“先进先出”组织数据的数据结构是()。
A.队列B.栈C.双向链表D.二叉树
59.设有定义:longx=-123456L;,则以下能够正确输出变量x值的语句是A.printf("x=%d\n",x);
B.printf("x=%1d\n",x);
C.printf("x=%8dL\n",x);
D.printf("x=%LD\n",x);
60.下列程序的输出结果是()。#include<stdio.h>voidfun(int*a,int*B){int*k;k=a;a=b;b=k;}main(){inta=1,b=2,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,B);}
A.21B.12C.编译出错D.00
四、选择题(20题)61.
62.有以下程序执行后的输出结果是()。
A.5,11B.5,5C.11,11D.11,5
63.
64.
65.
66.若有定义:“int*P,x=0,*p,p=&x;”,则语句“printf("%d\n",*p);”的输出结果是()。
A.随机值B.0C.x的地址D.P的地址
67.(30)关系数据库管理系统能实现的专门关系运算包括()
A.排序、索引、统计
B.选择、投影、连接
C.关联、更新、排序
D.显示、打印、制表
68.已定义以下函数
69.
70.C语言源程序名的后缀是()。A.CB.exeC.obiD.ep
71.设有如下程序段
72.若有定义语句:“charsE10]="1234567\0\0";”,则strlen(s)的值是()。
A.7B.8C.9D.10
73.有以下程序:
程序运行后的输出结果是()。
A.1.1.3B.2,2,3C.1,2,3D.3,3,3
74.有以下程序程序运行后的输出结果是()。
A.30B.10C.0D.64
75.若有下的定义:"intt[3][2];",能正确表示t数组元素地址的表达式是()。
A.&t[3][2]
B.t[3]
C.t[l]
D.t[2][2]
76.在下列选项中,没有构成死循环的是()。
A.
B.
C.
D.
77.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数.feof(fp)的返回值为()
78.以下定义数组的语句中错误的是()。
79.
80.设有定义语句:
intx[-6]={2,4,6,8,5,7),*p=X,i;
要求依次输出X数组6个元素中的值,不能完成此操作的语句是()。A.A.for(i=0;i<6;i++)printf("%2d",*(p++));
B.for(i=0;i<6;i++)printf("%2d",*(pq-i));
C.for(i=0;i<6;i++)printf("%2d",*p++);
D.for(i=0;i<6;i++)printf("%2d",*(p)++);
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本方法是:先对字符串中的头2个元素进行排序,然后把第3个字符插入到前2个字符中,插入后前3个字符依然有序;再把第4个字符插人到前3个字符中,待排序的字符串已在主函数中赋予。请修改程序中的错误,使它能得出正确的结果。注意:不要改动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(cha
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年环保公益宣传品采购与服务合同3篇
- 2024年版:建筑工程专业分包合同模板
- 简易警报器课程设计
- 工程经济学课程设计
- 航天能源课程设计思路
- 电工实训教学课程设计
- 《黑衣“超人”》课件
- 机械冲床课程设计题目
- 色彩搭配系统课程设计
- 米利根案件课程设计
- 传承传统文化教育教案(3篇模板)
- QBT 2460-1999 聚碳酸酯(PC)饮用水罐
- 2024新《公司法》修订重点解读课件
- 《电子吊秤校准规范》公示件
- 《跟上兔子》绘本四年级第1季Can-I-Play-with-You教学课件
- 手术室敏感指标构建
- 书法创作设计方案
- MOOC 软件工程概论-北京联合大学 中国大学慕课答案
- 2023年铁路工务安全规则正文
- 生态安全与环境风险评估预警机制
- MOOC 传热学-西安交通大学 中国大学慕课答案
评论
0/150
提交评论