版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年广东省阳江市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若以“a+”方式打开一个已存在的文件,则下列叙述正确的是()。
A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可以进行添加或读操作
B.文件打开时,原有文件内容不被删除,只能进行读操作
C.文件打开时,原有文件内容被删除,只能进行写操作
D.以上三种说法都不正确
2.若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是()。
A.EOFB.-lC.非零值D.0
3.设以下变量均为int类型,则值不等于7的表达式是()。
A.(x=y=6,x+y,x+1)
B.(x=y=6,x+y,y+1)
C.(x=6,x+1,y=6,x+y)
D.(y=6,y+l,x=y,x+1)
4.有定义语句:inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;
B.if(a<3)x=3;elseif(b<a)x=2;elsex=1;
C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;
D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;
5.下列叙述中正确的是()。
A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式
B.实型变量中允许存放整型数
C.若a和b类型相同,在执行赋值a=b后,b中的值将放入a中,但b中的值不变
D.在C程序中,求余算符“%”两边的类型相同时才能进行运算
6.若有定义“intb[8],*p=b;”,则p+6表示()。
A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[0]的值加上6
7.现有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}则程序的输出结果为
A.21B.78C.23D.28
8.图的BFS生成树的树高比DFS生成树的树高()
A.小或相等B.小C.大或相等D.大
9.以下叙述中正确的是()。
A.a是实型变量,C允许进行赋值a=10,但不可以这样说:实型变量中允许存放整型值
B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式
C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0
D.已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3
10.用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时()。
A.仅修改队头指针B.仅修改队尾指针C.队头、队尾指针都要修改D.队头,队尾指针都可能要修改
11.以下关于return语句的叙述中正确的是()。
A.一个自定义函数中必须有一条return语句
B.一个白定义函数中可以根据不同情况设置多条return语句
C.定义成void类型的函数中可以有带返回值的return语句
D.没有return语句的自定义函数在执行结束时不能返回到调用处
12.已知字母a的ASCII码为十进制数97,下面程序的输出结果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}
A.输出无定值B.d,eC.e,fD.g,d
13.以下关于链式存储结构说法错误的是()
A.比顺序存储结构的存储密度小
B.每个节点是由数据域和指针域组成
C.查找结点时链式存储比顺序存储快
D.逻辑上不相邻的节点物理上可能相邻
14.数据库系统的核心是()。
A.数据模型B.数据库管理系统C.数据库D.数据库管理员
15.设”inta=12;”,则执行完语句”a+=a*a;”后,a的值是()。
A.12B.144C.156D.288
16.算术运算符和圆括号有不同的运算优先级,对于表达式“a+b+c*(d+e)”,关于执行顺序,以下说法正确的是()。
A.先执行“(d+e)”得r2,再执行“c*r2”得r3,再执行“a+b”得r1,最后执行“r1+r3”得表达式最后结果
B.先执行“a+b”得r1,再执行“(d+e)”得r2,再执行“c*r2”得r3,最后执行“r1+r3”得表达式最后结果
C.先执行“(d+e)”得r2,再执行“c*r2”得r3,再执行“b+r3”得r4,最后执行“a+r4”得表达式最后结果
D.先执行“a+b”得r1,再执行“r1+c”得r5,再执行“(d+e)”得r2,最后执行“r5*r2”得表达式最后结果
17.在C语言中,函数返回值的类型最终取决于()。
A.函数定义时在函数首部所说明的函数类型
B.return语句中表达式值的类型
C.调用函数时主调函数所传递的实参类型
D.函数定义时形参的类型
18.以下叙述正确的是
A.continue语句的作用是结束整个循环的执行
B.只能在循环体内和swish语句体内使用break语句
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用goto语句
19.设x=011050,则x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
20.有以下程序
#include<stdio.h>
intfun(intx,inty)
{if(x==y)return(x);
elsereturn((x+y)/2);
}
main()
{inta=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
程序运行后的输出结果是A.3B.6C.8D.12
二、2.填空题(20题)21.以下程序运行后的输出结果是()。
main()
{inta,b,c;
a=10;b=20;c=(a%b<1)||(a/b>1);
printf("%d%d%%d\n",a,b,C);
}
22.数据结构分为逻辑结构与存储结构,线性链表属于【】。
23.注释说明了程序的功能,它分为【】注释和功能性注释。
24.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。
25.已有定义:intx;,执行以下语句后的辅出结果是【】。
x=11/3;y=5;
printf("%%d,%%%d\n",x,y);
26.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。
27.在关系模型中,把数据看成一个二维表,每一个二维表称为一个______。
28.已有定义如下:
structnode
{
intdata;
structnode*next;
}*p;
以下语句调用malloc函数,使指针p指向一个具有stmctnode类型的动态存储空间。
请填空。
p=(structnode*)malloc();
29.下面程序的输出结果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptr1=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptr1+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
30.若输入5、9,以下程序的运行结果为【】。
main()
{inta,b,*pt1,*pt2;
printf("inputa,b:");
scanf("%d%d",&a,&b);
pt1=&a;
pt2=&b;
if(a<b)swap(pt1,pt2);
printf("\n%d,%d\n",*pt1,*pt2);
}
swap(p1,p2)
int*p1,*p2;
{int*p;
p=p1;
p1=p2;
p2=p;
}
31.阅读下面语句,则程序的执行结果是【】。
#include"stdio.h"
main()
{inta=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d,%d\",a,b);
elseprintf("%d,%d\n",b,a);}
32.设y为血型变量,请写出描述“y是偶数”的表达式______。
33.若有定义:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[2][2]得到的初值是______。
34.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;
35.有以下程序:
voidf(inty,int*x)
{y=y+*x;*x=*x+y;}
main()
{intx=2,y=4;
f(y,&x);
ptintf("%d%d\n",x,y);
}
执行后输出结果是【】。
36.以下程序的运行结果是()。#defineS(x)x*xmain(){intk=1;while(k<=4){printf("%d,",S(k));k++;}
37.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
intmystden(char*str)
{inti;
fo,(i=0;【】!='\0';i++);
return(i);
38.下列程序的运行结果是______。
#defineP(a)printf("%d",a)
main()
{intj,a[]={1,2,3,4,5,6,7},i=5;
for(j=3;j>l;j--)
{switch(j)
{case1:
case2:P(a[i++]);break;
case3:P(a[--i]);
}
}
}
39.下面程序的输出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n"k);}
40.有以下程序
#include<stdio.h>
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getchar();
n1=ch1-'()';n2=n1*10+(ch2-'()');
printf("%d\n",n2);
}
程序运行时输入:12<回车>,执行后输出结果是【】。
三、1.选择题(20题)41.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。
A.chars[10]="abcdefg";
B.chart[]="abcdefg",*s=t;
C.chars[10];s="abcdefg";
D.chars[10];strcpy(s,"abcdefg");
42.如果对一个关系实施了一种关系运算后得到了一个新的关系,而且新的关系中属性个数少于原来关系中属性个数,这说明所实施的运算关系是()
A.选择B.投影C.连接D.并
43.下列叙述中,正确的是
A.用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系
B.用E-R图只能表示实体集之间一对一的联系
C.用E-R图只能表示实体集之间一对多的联系
D.用E-R图表示的概念数据模型只能转换为关系数据模型
44.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(中)的值为
A.0B.1C.-1D.一个非0值
45.若变量已正确定义,有以下程序段
inta=3,b=5,c=7;
if(a>b)a=b;c=a;
if(c!=a)c=b;
printf("%d,%d,%d\n",a,b,c);
其输出结果是
A.程序段有语法错B.3,5,3C.3,5,5D.3,5,7
46.有如下程序#include<stdio.h>main(){intv1=0,v2=0;charch;while((ch=getchar())!='#')switch(ch){case'a';casff'h';default:v1++;case'0';v2++;}printf("%d,%d\n",v1,v2);}如果从键盘上输入china#<回车>,则程序运行结果为()
A.2,0B.5,0C.5,5D.2,5
47.以下合法的赋值语句是______。
A.X=Y=100B.D-;C.X+Y;D.C=int(A+B)
48.有以下程序:
#include<stdlib.h>
structNODE{
intnurn;
structNODE*next;
};
main()
{structNODE*p,*q,*r;
intsum=0;
P=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next=r;r->next=NULL;
sum+=q->next->num;sum+=p->num;
Printf("%d\n",sum);
}
执行后的输出结果是()。
A.3B.4C.5D.6
49.运行下面程序,若从键盘输入字母“b”,则输出结果是charc;c=getchar();if(c>='a'&&c<='u')c=c+4;elseif(c>='v'&&c<='z')c=c-21;elseprintf("inputerror!\n");putchar(c);
A.gB.wC.fD.d
50.有如下程序段:#include<stdio.h>#defineMax(a,b)a>b?a:bmain(){inta=5,b=6,c=4,d;d=c+Max(a,b);printf("%d",d);}其输出结果为______。
A.10B.5C.6D.编译错误
51.在下列选项中,没有构成死循环的程序段是()。
A.inti=100;for(;;){i=i%10+1;if(i>10)break;}
B.while(1);
C.intk=0;do{++k;}while(k<=10);
D.ints=12;while(s);--s;
52.请选出以下程序的输出结果______。#include<stdio.h>sub(x,y,z)intx,y*z;{*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n",a,b,c);}
A.5,23B.-5,-12,7C.-5,-12,-17D.5,2,-7
53.有以下程序:intm=1;voidfun(int*n){staticintm=2;*n*=m-1;m+=2;}main(){inti;for(i=1;i<4;i++){fun(&m);printf("%d",m);}}程序的输出结果是()
A.1317B.2630C.1315D.1111
54.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是
A.a>=10ora<=0
B.a>=0|a<=10
C.a>=10&&a<=0
D.a>=10‖a<=0
55.下列不属于软件工程的3个要素的是______。
A.工具B.过程C.方法D.环境
56.有以下程序段:typedefstructnode(intdata;structnode*next;)*NODE;NODEP;以下叙述中正确的是()。
A.P是指向structnode结构变量的指针的指针
B.NODEp;语句出错
C.P是指向structnode结构变量的指针
D.P是structnode结构变量
57.阅读程序:main(){intx;scanf("%d',&x);if(x--<5)printf("%d\n",x);elseprintf("%d\、n",x++);}程序运行后,如果从键盘上输入5,则输出结果是()
A.3B.4C.5D.6
58.下列定义中,不正确的有______。
A.#definePI3.141592
B.#defineS345;
C.intmax(x,y);
D.staticcharc;intx,y;{...}
59.下面各选项中,均是C语言合法标识符的选项组是
A.33weautoB._23me_3ewC._433e_elseD.ER-DF32
60.若有“doublea;”,则正确的输入语句是()。
A.scanf("%lf",A);
B.scanf("%f",&A);
C.scanf("%lf",&A)
D.scanf("%le",&A);
四、选择题(20题)61.
62.if语句基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是()。
A.必须是逻辑值B.必须是整数值C.必须是正数D.可以是任意合法的数值
63.
64.(28)在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()
A.数据库系统
B.文件系统
C.人工管理
D.数据项管理
65.
若有定义和语句:
int**pp),*P,a=20,b=10;
pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);
则输出结果是()。
A.20,10B.20,20C.10,20D.10,10
66.
67.在下列关于二叉树的叙述中,选出正确的一项()。
A.在二叉树中,任何一个结点的度都是2
B.二叉树的度为2
C.在二叉树中至少有一个结点的度是2
D.一棵二叉树的度可以小于2
68.
69.下列叙述中正确的是()。
A.软件测试应该由程序开发者来完成
B.程序经调试后一般不需要测试
C.软件维护只包括对程序代码的维护
D.以上三种说法都不对
70.
71.
设有如下定义:
intarr[]={6,7,8,9,10);
int*ptr:
ptr=arr;
*(ptr2)=2;
printf("%d,%d\n",*ptr,*(ptr2)):
则下列程序段的输出结果为()。
A.8,10B.6,8C.7,9D.6,2
72.HTTP协议的消息有()两种类型。
A.发送消息和接收消息B.请求消息和响应消息C.消息头和消息体D.实体消息和控制消息
73.
74.
75.
76.
77.下列选项中属于软件生命周期开发阶段任务的是()。
A.可行性研究
B.需求分析
C.详细设计
D.软件维护
78.有以下程序:
程序的运行结果是()。
A.xy,aaaaCeB.aaaaCC,xyC.bCC,aabCCD.aabCC,bCC
79.
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:用递归算法计算斐波拉契级数列中第n项的值。从第一项起,斐波拉契级数序列为1,1,2,3,5,8,13,21,…例如,若给n输入8,该项的斐波拉契级数值为21。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,规定输入的字符串中只包含字母和*号。请编写函数其功能是使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做处理。字符串中间和尾部的*号不删除。例如,字符串中的内容为“*******A*BC*DEF*G****”,若n的值为4,删除后,字符串中的内容应当是“****A*BC*DEF*G****”;若n的值为8,则字符串中的内容仍为“*******A*BC*DEF*G****”。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>voidfun(char*a,intn){}voidmain(){ chars[81];intn; printf(“Enterastring:\n”); gets(s); printf(“Entern:”); scanf(“%d”,&n); fun(s,n); printf(“Thestringafterdeleted:\n”); puts(s);}
参考答案
1.A解析:本题考查文件使用方式标识符,以“a+”方式打开一个已存在的文件,则表示保留文件中原有的数据,文件的位置指针在文件末尾,此时,可以进行追加或读操作。
2.D本题考查leon(tp)函数,其功能是:测试所指的文件的位置指针是否已达到文件尾,如果已达到文件尾,则函数返回非0值;否则返回0,表示文件未结束。
3.C
4.C解析:选项A),B)考查了多分支结构的用法,选项A)中的程序段执行时,c<a,b<a条件均不成立,故执行else后的语句,x值为3;选项B)中a<3条件成立,执行x=3;而选项C),D)是单分支结构的用法,选项C)中程序段执行时,a<3条件成立,x=3,但条件a<2也成立,此时执行x=2,下一个条件不成立,不再执行其后的语句。
5.D选项A,在赋值表达式中,赋值号的左边只能是变量或者是代表某个存储单元的表达式,不能是任意表达式,右边也不得出现表达式;选项8中,整型变量中只能存放整型数,但实型变量中能存放实型数,也能存放整型数;选项C,表达式a=b的意思是把变量b的值赋给变量a,从而覆盖a中原来值;选项D,要求取余运算符"%"两边的类型均为整型。
6.B指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中“P+6”指的是将指针向后移动了6个存储单元,即指向uE63,存放的是b[6]的地址。
7.A解析:通过地址来引用二维数组,若有以下定义:inta[3][4],i,j;且当0≤i≤3,0≤j<4则可以有以下几种方式来引用数组中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表达式&a[0][0]+2*i+j-2相当于是地址&a[0][0]加上多少偏移量。
8.A
9.AC语言中语法上规定实型变量是不能存放整型类型的数据的,整型数据也不能存放实型数据。是为了避免类型转换之间可能会发生的错误。
10.D
11.Breturn语句又称为返回语句。该语句的格式如下:“return;”和“return(<表达式>);”。其中,return是关键字。该语句有两种格式:不带返回值格式和带返回值格式。该语句用在被调用函数中,在被调用函数中执行到该语句时,将结束对被调用函数的执行,并把控制权返回给调用函数,继续执行调用函数后边的语句。在带有返回值的情况下,将return语句所带的表达武的值返回给调用函数,作为被调用函数的值。在被调用函数中,可以用return语句,也可以不用return语句。如果要求被调用函数有返回值,则一定要用return语句,采用return(<表达式>);格式。如果被调用函数不需要返回值,并且当被调用函数的所有语句执行完后进行返回,则被调用函数可以不用return语句。
12.D解析:C语言规定,所有字符常量都可以化为整型常量来处理,因而字符常量也可以参与算术运算。注:字符常量参与算术运算时,其实是使用其对应的ASCII码值进行计算。本题中,'a'对应的ASCII码值是97。题中虽然没有给'6'和'0'的ASCII码值,但应该知道'6'-'0'是将字符'6'转换成整数6的表达式,所以c1='a'+'6'-'0'=103,c2='a'+'3'-'0'=100,按照字符型输出分别是g和d。
13.C
14.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。
15.C
16.B题干表达式中,圆括号的优先级最高,乘法运算符次之,加法运算符最低。同优先级中,加法运算符的结合性从左向右结合,所以题干中的表达式执行顺序是:先执行“a+b”得r1,再执行“(d+e)”得r2,再执行“c*r2”得r3,最后执行“r1+r3”得表达式最后结果。故本题答案为B选项。
17.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。
18.B
19.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。
20.B
21.1020010200解析:a的初值为10,b的初值为20,因此“a%b”结果为10,“(a%b<1)”为假,“a/b”的结果为0,“(a/b>1)”为假,所以“(a%b<1)||(a/b>1)”的值为0(假),c的值为0。
22.存储结构
23.序言性序言性解析:注释一般分为序言性注释和功能性注释。
24.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。
25.%d%3
26.88解析:fabs函数功能是求x的绝对值,计算结果为double型。pow功能是计算x的y次方的值,计算结果同样为double型。所以本题表达式相当于2.0的3.0次方,结果为8.000000。
27.关系关系解析:关系模型用;维表表示,则每个;维表代表一种关系。
28.sizeof(structnode)或4sizeof(structnode)或4解析:本题考核的知识点是动态存储分配函数malloc()的用法。C标准规定malloc()函数返回值的类型为void*,函数的调用形式为:malloc(size)。要求aize的类型为unsignedint,所以该空格处应该填sizeof(structnode)或4。
29.gaga解析:考查了用字符指针处理字符串的方法。用字符指针处理字符串,首先要使指针指向这个字符串,即题中的ptr1=a和ptr2=b,然后就是通过指针的移动可以引用到字符串中的每一个字符。题中的*(ptr1+k)是使指针ptr1向后移动k个位置,然后取出指向的字符。
30.59
31.101,0解析:与运算两边的语句必须同时为真时,结果才为真。当执行完if((++a<0)&&!(b--<=0))时,a,b的值已经发生了变化。
32.(y%2)==0(y%2)==0解析:因符合偶数的条件是对2取余为0,所以要描述y是偶数的表达式是(y%2)==0。
33.88解析:二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的,a[4][4]可以分解为4个一维数组,其数组名分别为a[0]、a[1]、a[2]、a[3],这4个一维数组都有4个元素,a[0]的元素为ap[0][0]、a[0][1]、a[0][2]、a[0][3]。
34.malloc(11)malloc函数的格式是void*(或char*)malloc(size),size表示应分配的存储区,此题要分配11字节的单元,把11代入即可。
35.8484解析:“值传递”指实参将值传递给形参后,实参与形参再无联系。也就是说对行参的改变将不影响实参;地址传递是指地址或数组名作为形参时的参数传递,这种情况下对形参的改变将对实参产生影响。函数f(y,*x)的作用是让y的值加上指针x所指向变量的值,让指针x所指向变量的值加上y的值。由于形参y是传值的,形参x是传地址的,故调用该函数后,作为实参y的值将不改变,而实参x的值将改变,故最后输出的y值为4,而x的值为8。
36.149161,4,9,16,解析:分析程序执行过程,第1次循环,k=1时,此时s(1)=1*1=1,然后k的值加1;第2次循环,k=2时,s(2)=2*2=4,然后k的值加1;第3次循环,k=3时,s(3)=3*3=9,然后k的值加1;第4次循环,k=4时,s(4)=4*4=16,然后k的值加1;当k=5时,条件不满足,退出循环。
37.*(str+i)或str[i]*(str+i)或str[i]解析:str是指针变量,它指向字符型数据,在循环过程中,用*(str+i)或str[i]来访问字符串的第i个元素,判断是否是结束标志,如果不是,i=i+1,继续取下一个元素进行判断,直到*(str+i)的值为'\\0'为止。
38.5555解析:分析程序执行过程,第一次循环时,j=3,i-5,因为switch(3),所以执行case3,调用P(a[-i)=p(a[4])=P(5),输出5;第二次循环时,j=2,i=4,因为switch(2),所以执行case2,调用P(s[i++])=P(a[4])=P(5),输出5,之后i的n等于5。
39.1212解析:本题通过第一个for循坪将数组arr[0]-arr[9]分别赋值为0-9,通过第二个for循环的三次循环累加,求出结果为12,具体分析如下:
i=1:k=0+arr[1]+1即k=2;
i=2:k=2+arr[2]+2即k=6;
i=3:k=6+arr[3]+3即k=12;
40.1212解析:字符类型的数据在内存中以相应的ASCII码存放,在C语言中,字符数据可以等价为与其相应的ASCII码的整数,还可以作为整数参加运算。在本题中,n1=h1-0'=1-0=49-48=1,n2=n1*10+(ch2-'0')=1*10+(2-0)=10+2=12。
41.C解析:选项A中定义了一个字符型数组并赋初值,故选项A正确;选项B定义了一个字符型数组t并初始化,然后定义了一个指针变量s并让它指向t,故选项B正确;选项C先定义?一个长度为10的字符型数组,然后在给它赋值,这时应该分别给数组中的每个元素赋值,故选项C不正确;选项D中先定义了一个长度为10的字符型数组s,然后通过字符串拷贝函数将字符串“abedefs”赋值给它,选项D正确。所以,4个选项中选项C符合题意。
42.B解析:本题考核对几种关系代数运算的掌握。其中选择和投影的区别在于:如果将一个关系看作一张表,那么选择操作就是从这张表中选出一些行而丢弃另一些行。而投影操作则是从这张表中选出某些列而丢弃另一些列。如果只对一个关系中的某些属性感兴趣,那么就需要在这些属性上使用投影操作投影该关系。并操作的结果表示为Rus,它是一个关系,包括或者在R中、或者在S中、或者同时在R和S中的所有元组,新的关系中属性个数多于原来关系中属性个数。连接操作用于将两个关系中的相关元组组合成单个元组。
43.A解析:两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。
44.A解析:读取文件时,当文件中的数据全部读完后,文件位置指针将位于文件的结尾。此时如果读数据,将会出现错误。为了保证读写数据的正确性,需要进行文件尾测试,文件尾测试使用函数feof(),它的功能测试fp指向的文件是否到达文件尾.若到达文件尾,返回值为非0,否则返回值为0。在本题中fP指向的某文件还没有到了文件尾,因此返回0,所以,4个选项中选项A符合题意。
45.B解析:两个if语句的判断条件都不满足,程序只执行了c=a这条语句,所以变量c的值等于3,变量b的值没能变化,程序输出的结果为3,5,3。所以正确答案为B)。
46.C
47.B解析:本题中的答案A与D都缺少“;”,而答案C中,表达式是不能独立成为语句的,答案B使用了C语言的自减运算符它就相当于D=D-1,所以答案B为一赋值语句。
48.B解析:本题中定义了一个结点structNODE,在主函数中定义了三个结点变量指针p、q和r,接着通过malloc函数分配了三个结点并让p、q和r分别指向他们,再接着给p、q和r所指向的结点的num域赋值为1、2、3,然后让结点p指向小让q指向r,r指向NULL。显然q->next->num的值为指针r所指向结点的num域的值为3,p->num的值为指针p所指向结点的num域的值为1,故最后输出s的值为3+1=4。所以,4个选项中选项B符合题意。
49.C解析:本题考查了对字符的输入、输出操作及算术和关系运算。因为b>='a'并且b<='u',所以执行第一个if语句,c=c+4,c的值为字符'f'。
50.B解析:在C语言中,宏定义是直接替换的,所以在c+a>b?a:b这个条件表达式中,c+a>b为真,所以用a的值作为整个表达式的值,而a的值为5,所以整个表达式的值为5。
51.C
52.B解析:sub()函数的作用是将形参y和x的差赋给了z指向的那个内存地址,所以在sub(10,5,&a),10和5属于值传递,a是属于地址传递,也就是a与z指向了同一个存储单元,在执行函数后,a的值随*z变化,所以此次函数被调用后,a的值为y-x=-5,同理可知,在sub(7,a,&b)后,b的值发生变化其值为-5-7=-12,在sub(a,b,&c)后,c的值发生变化,其值为-12-(-5)=-7。
53.C
54.D
55.D解析:本题考查了软件工程的基本概念。软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制和管理。
56.C解析:本题中定义了一个指针类型的“用户类型名”NODE,通过“用户类型名”可以定义该类型的结构体变量。
57.B
58.C
59.B解析:合法的标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,用户定义的标识符不能与关键字相同。选项A),数字不能为第一个字母,auto为关键字;选项C)中,也是数字不能为第一个字母,else为关键字;选项D)中负号不合法。
60.D解析:函数scanf()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符;“输入项地址表”是要输入的变量的地址。本题中定义变量a为双精度型变量,双精度变量的格式符为“le”;变量的地址用取地址符“&”加变量名表示,如变量a的地址为“&a”。
61.D
62.D考查if循环语句。if(表达式),其中表达式是一个条件,条件中可以是任意的合法的数值。
63.A
64.A
65.D
\n本题考查指针变量的赋值。**PP是定义一个指针变量,语句pp=&p是将pp指向指针P,*P和**PP都是指针P所指的内存空间的内容,即b的值。
\n
66.D
67.D节点的度是其子节点的个数,树的度是其节点度的最大值,二叉树的度小于等于2.
68.C
69.D程序调试是由程序开发者完成诊断和改正程序中的错误的过程;软件测试是由专门的测试人员完成,是发现错误而执行程序的过程;软件维护是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程,是软件生存周期中非常重要的一个阶段。
70.C
71.D
\n程序中ptr指针指向数组art的首地址,*ptr=arr[0]=6,*(ptr2)=2,故选D。
\n
72.B
73.C
74.D
75.D
76.C
77.C\n软件生命周期可分为软件定义、软件开发和软件运行维护3个阶段。软件开发期包括概要设计、详细设计、实现和测试4个阶段。
\n
78.A函数fun(char*s[],intn)的功能是对字符串数组的元素按照字符串的长度从小到大排序。在主函数中执行fun(ss,5)语句后,*ss[]={“xy”,“bcc”,“bbcc”,“aabcc”,“aaaacc”},ss[0],ss[4]的输出结果为xy,aaaacc。所以选项A)为正确答案。
79.D
80.B
81.(1)错误:switch(g);
正确:switch(g)
(2)错误:case1;case2:return1;
正确:case1:return1;case2:return1;
【解析】由C语言的语法规则可知,switch语句后面是没有分号的,因此,“switch(g);”要把后面的分号去掉;在C语言中,case语句后面是冒号而不是分号,因此,“case1;case2:return1;”应改为“case1:return1;case2:return1;”。
82.voidfun(char*a,intn){ inti=0,k=0; char*p,*t; p=t=a; /*开始时,p与t同时指向数组的首地址*/ while(*t==‘*’) /*用k来统计前导星号的个数*/ {k++;t++;} if(k>n) /*如果k大于n,则使p的前导保留n个星号,其后的字符依次存入数组a中*/ { while(*p) { a[i]=*(p+k-n); i++; p++; } a[i]=‘\0’; /*在字符串最后加上字符串结束标志*/ }}字符串中前导*号不能多于n个,多余的应删除。首先需要通过while循环统计字符串前导*号的个数,然后通过if条件语句完成前导*号的个数和n的比较,如果前导*号多于n个,则需要把n个*号和其余字符重新保留。2021年广东省阳江市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若以“a+”方式打开一个已存在的文件,则下列叙述正确的是()。
A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可以进行添加或读操作
B.文件打开时,原有文件内容不被删除,只能进行读操作
C.文件打开时,原有文件内容被删除,只能进行写操作
D.以上三种说法都不正确
2.若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是()。
A.EOFB.-lC.非零值D.0
3.设以下变量均为int类型,则值不等于7的表达式是()。
A.(x=y=6,x+y,x+1)
B.(x=y=6,x+y,y+1)
C.(x=6,x+1,y=6,x+y)
D.(y=6,y+l,x=y,x+1)
4.有定义语句:inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;
B.if(a<3)x=3;elseif(b<a)x=2;elsex=1;
C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;
D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;
5.下列叙述中正确的是()。
A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式
B.实型变量中允许存放整型数
C.若a和b类型相同,在执行赋值a=b后,b中的值将放入a中,但b中的值不变
D.在C程序中,求余算符“%”两边的类型相同时才能进行运算
6.若有定义“intb[8],*p=b;”,则p+6表示()。
A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[0]的值加上6
7.现有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}则程序的输出结果为
A.21B.78C.23D.28
8.图的BFS生成树的树高比DFS生成树的树高()
A.小或相等B.小C.大或相等D.大
9.以下叙述中正确的是()。
A.a是实型变量,C允许进行赋值a=10,但不可以这样说:实型变量中允许存放整型值
B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式
C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0
D.已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3
10.用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时()。
A.仅修改队头指针B.仅修改队尾指针C.队头、队尾指针都要修改D.队头,队尾指针都可能要修改
11.以下关于return语句的叙述中正确的是()。
A.一个自定义函数中必须有一条return语句
B.一个白定义函数中可以根据不同情况设置多条return语句
C.定义成void类型的函数中可以有带返回值的return语句
D.没有return语句的自定义函数在执行结束时不能返回到调用处
12.已知字母a的ASCII码为十进制数97,下面程序的输出结果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}
A.输出无定值B.d,eC.e,fD.g,d
13.以下关于链式存储结构说法错误的是()
A.比顺序存储结构的存储密度小
B.每个节点是由数据域和指针域组成
C.查找结点时链式存储比顺序存储快
D.逻辑上不相邻的节点物理上可能相邻
14.数据库系统的核心是()。
A.数据模型B.数据库管理系统C.数据库D.数据库管理员
15.设”inta=12;”,则执行完语句”a+=a*a;”后,a的值是()。
A.12B.144C.156D.288
16.算术运算符和圆括号有不同的运算优先级,对于表达式“a+b+c*(d+e)”,关于执行顺序,以下说法正确的是()。
A.先执行“(d+e)”得r2,再执行“c*r2”得r3,再执行“a+b”得r1,最后执行“r1+r3”得表达式最后结果
B.先执行“a+b”得r1,再执行“(d+e)”得r2,再执行“c*r2”得r3,最后执行“r1+r3”得表达式最后结果
C.先执行“(d+e)”得r2,再执行“c*r2”得r3,再执行“b+r3”得r4,最后执行“a+r4”得表达式最后结果
D.先执行“a+b”得r1,再执行“r1+c”得r5,再执行“(d+e)”得r2,最后执行“r5*r2”得表达式最后结果
17.在C语言中,函数返回值的类型最终取决于()。
A.函数定义时在函数首部所说明的函数类型
B.return语句中表达式值的类型
C.调用函数时主调函数所传递的实参类型
D.函数定义时形参的类型
18.以下叙述正确的是
A.continue语句的作用是结束整个循环的执行
B.只能在循环体内和swish语句体内使用break语句
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用goto语句
19.设x=011050,则x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
20.有以下程序
#include<stdio.h>
intfun(intx,inty)
{if(x==y)return(x);
elsereturn((x+y)/2);
}
main()
{inta=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
程序运行后的输出结果是A.3B.6C.8D.12
二、2.填空题(20题)21.以下程序运行后的输出结果是()。
main()
{inta,b,c;
a=10;b=20;c=(a%b<1)||(a/b>1);
printf("%d%d%%d\n",a,b,C);
}
22.数据结构分为逻辑结构与存储结构,线性链表属于【】。
23.注释说明了程序的功能,它分为【】注释和功能性注释。
24.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。
25.已有定义:intx;,执行以下语句后的辅出结果是【】。
x=11/3;y=5;
printf("%%d,%%%d\n",x,y);
26.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。
27.在关系模型中,把数据看成一个二维表,每一个二维表称为一个______。
28.已有定义如下:
structnode
{
intdata;
structnode*next;
}*p;
以下语句调用malloc函数,使指针p指向一个具有stmctnode类型的动态存储空间。
请填空。
p=(structnode*)malloc();
29.下面程序的输出结果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptr1=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptr1+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
30.若输入5、9,以下程序的运行结果为【】。
main()
{inta,b,*pt1,*pt2;
printf("inputa,b:");
scanf("%d%d",&a,&b);
pt1=&a;
pt2=&b;
if(a<b)swap(pt1,pt2);
printf("\n%d,%d\n",*pt1,*pt2);
}
swap(p1,p2)
int*p1,*p2;
{int*p;
p=p1;
p1=p2;
p2=p;
}
31.阅读下面语句,则程序的执行结果是【】。
#include"stdio.h"
main()
{inta=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d,%d\",a,b);
elseprintf("%d,%d\n",b,a);}
32.设y为血型变量,请写出描述“y是偶数”的表达式______。
33.若有定义:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[2][2]得到的初值是______。
34.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;
35.有以下程序:
voidf(inty,int*x)
{y=y+*x;*x=*x+y;}
main()
{intx=2,y=4;
f(y,&x);
ptintf("%d%d\n",x,y);
}
执行后输出结果是【】。
36.以下程序的运行结果是()。#defineS(x)x*xmain(){intk=1;while(k<=4){printf("%d,",S(k));k++;}
37.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
intmystden(char*str)
{inti;
fo,(i=0;【】!='\0';i++);
return(i);
38.下列程序的运行结果是______。
#defineP(a)printf("%d",a)
main()
{intj,a[]={1,2,3,4,5,6,7},i=5;
for(j=3;j>l;j--)
{switch(j)
{case1:
case2:P(a[i++]);break;
case3:P(a[--i]);
}
}
}
39.下面程序的输出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n"k);}
40.有以下程序
#include<stdio.h>
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getchar();
n1=ch1-'()';n2=n1*10+(ch2-'()');
printf("%d\n",n2);
}
程序运行时输入:12<回车>,执行后输出结果是【】。
三、1.选择题(20题)41.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。
A.chars[10]="abcdefg";
B.chart[]="abcdefg",*s=t;
C.chars[10];s="abcdefg";
D.chars[10];strcpy(s,"abcdefg");
42.如果对一个关系实施了一种关系运算后得到了一个新的关系,而且新的关系中属性个数少于原来关系中属性个数,这说明所实施的运算关系是()
A.选择B.投影C.连接D.并
43.下列叙述中,正确的是
A.用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系
B.用E-R图只能表示实体集之间一对一的联系
C.用E-R图只能表示实体集之间一对多的联系
D.用E-R图表示的概念数据模型只能转换为关系数据模型
44.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(中)的值为
A.0B.1C.-1D.一个非0值
45.若变量已正确定义,有以下程序段
inta=3,b=5,c=7;
if(a>b)a=b;c=a;
if(c!=a)c=b;
printf("%d,%d,%d\n",a,b,c);
其输出结果是
A.程序段有语法错B.3,5,3C.3,5,5D.3,5,7
46.有如下程序#include<stdio.h>main(){intv1=0,v2=0;charch;while((ch=getchar())!='#')switch(ch){case'a';casff'h';default:v1++;case'0';v2++;}printf("%d,%d\n",v1,v2);}如果从键盘上输入china#<回车>,则程序运行结果为()
A.2,0B.5,0C.5,5D.2,5
47.以下合法的赋值语句是______。
A.X=Y=100B.D-;C.X+Y;D.C=int(A+B)
48.有以下程序:
#include<stdlib.h>
structNODE{
intnurn;
structNODE*next;
};
main()
{structNODE*p,*q,*r;
intsum=0;
P=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next=r;r->next=NULL;
sum+=q->next->num;sum+=p->num;
Printf("%d\n",sum);
}
执行后的输出结果是()。
A.3B.4C.5D.6
49.运行下面程序,若从键盘输入字母“b”,则输出结果是charc;c=getchar();if(c>='a'&&c<='u')c=c+4;elseif(c>='v'&&c<='z')c=c-21;elseprintf("inputerror!\n");putchar(c);
A.gB.wC.fD.d
50.有如下程序段:#include<stdio.h>#defineMax(a,b)a>b?a:bmain(){inta=5,b=6,c=4,d;d=c+Max(a,b);printf("%d",d);}其输出结果为______。
A.10B.5C.6D.编译错误
51.在下列选项中,没有构成死循环的程序段是()。
A.inti=100;for(;;){i=i%10+1;if(i>10)break;}
B.while(1);
C.intk=0;do{++k;}while(k<=10);
D.ints=12;while(s);--s;
52.请选出以下程序的输出结果______。#include<stdio.h>sub(x,y,z)intx,y*z;{*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n",a,b,c);}
A.5,23B.-5,-12,7C.-5,-12,-17D.5,2,-7
53.有以下程序:intm=1;voidfun(int*n){staticintm=2;*n*=m-1;m+=2;}main(){inti;for(i=1;i<4;i++){fun(&m);printf("%d",m);}}程序的输出结果是()
A.1317B.2630C.1315D.1111
54.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是
A.a>=10ora<=0
B.a>=0|a<=10
C.a>=10&&a<=0
D.a>=10‖a<=0
55.下列不属于软件工程的3个要素的是______。
A.工具B.过程C.方法D.环境
56.有以下程序段:typedefstructnode(intdata;structnode*next;)*NODE;NODEP;以下叙述中正确的是()。
A.P是指向structnode结构变量的指针的指针
B.NODEp;语句出错
C.P是指向structnode结构变量的指针
D.P是structnode结构变量
57.阅读程序:main(){intx;scanf("%d',&x);if(x--<5)printf("%d\n",x);elseprintf("%d\、n",x++);}程序运行后,如果从键盘上输入5,则输出结果是()
A.3B.4C.5D.6
58.下列定义中,不正确的有______。
A.#definePI3.141592
B.#defineS345;
C.intmax(x,y);
D.staticcharc;intx,y;{...}
59.下面各选项中,均是C语言合法标识符的选项组是
A.33weautoB._23me_3ewC._433e_elseD.ER-DF32
60.若有“doublea;”,则正确的输入语句是()。
A.scanf("%lf",A);
B.scanf("%f",&A);
C.scanf("%lf",&A)
D.scanf("%le",&A);
四、选择题(20题)61.
62.if语句基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是()。
A.必须是逻辑值B.必须是整数值C.必须是正数D.可以是任意合法的数值
63.
64.(28)在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()
A.数据库系统
B.文件系统
C.人工管理
D.数据项管理
65.
若有定义和语句:
int**pp),*P,a=20,b=10;
pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);
则输出结果是()。
A.20,10B.20,20C.10,20D.10,10
66.
67.在下列关于二叉树的叙述中,选出正确的一项()。
A.在二叉树中,任何一个结点的度都是2
B.二叉树的度为2
C.在二叉树中至少有一个结点的度是2
D.一棵二叉树的度可以小于2
68.
69.下列叙述中正确的是()。
A.软件测试应该由程序开发者来完成
B.程序经调试后一般不需要测试
C.软件维护只包括对程序代码的维护
D.以上三种说法都不对
70.
71.
设有如下定义:
intarr[]={6,7,8,9,10);
int*ptr:
ptr=arr;
*(ptr2)=2;
printf("%d,%d\n",*ptr,*(ptr2)):
则下列程序段的输出结果为()。
A.8,10B.6,8C.7,9D.6,2
72.HTTP协议的消息有()两种类型。
A.发送消息和接收消息B.请求消息和响应消息C.消息头和消息体D.实体消息和控制消息
73.
74.
75.
76.
77.下列选项中属于软件生命周期开发阶段任务的是()。
A.可行性研究
B.需求分析
C.详细设计
D.软件维护
78.有以下程序:
程序的运行结果是()。
A.xy,aaaaCeB.aaaaCC,xyC.bCC,aabCCD.aabCC,bCC
79.
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:用递归算法计算斐波拉契级数列中第n项的值。从第一项起,斐波拉契级数序列为1,1,2,3,5,8,13,21,…例如,若给n输入8,该项的斐波拉契级数值为21。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,规定输入的字符串中只包含字母和*号。请编写函数其功能是使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做处理。字符串中间和尾部的*号不删除。例如,字符串中的内容为“*******A*BC*DEF*G****”,若n的值为4,删除后,字符串中的内容应当是“****A*BC*DEF*G****”;若n的值为8,则字符串中的内容仍为“*******A*BC*DEF*G****”。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>voidfun(char*a,intn){}voidmain(){ chars[81];intn; printf(“Enterastring:\n”); gets(s); printf(“Entern:”); scanf(“%d”,&n); fun(s,n); printf(“Thestringafterdeleted:\n”); puts(s);}
参考答案
1.A解析:本题考查文件使用方式标识符,以“a+”方式打开一个已存在的文件,则表示保留文件中原有的数据,文件的位置指针在文件末尾,此时,可以进行追加或读操作。
2.D本题考查leon(tp)函数,其功能是:测试所指的文件的位置指针是否已达到文件尾,如果已达到文件尾,则函数返回非0值;否则返回0,表示文件未结束。
3.C
4.C解析:选项A),B)考查了多分支结构的用法,选项A)中的程序段执行时,c<a,b<a条件均不成立,故执行else后的语句,x值为3;选项B)中a<3条件成立,执行x=3;而选项
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 鼻腔生理功能讲解
- 雨课堂学堂在线学堂云《体操(西北师范)》单元测试考核答案
- 雨课堂学堂在线学堂云《思想道德与法治(成都中医药)》单元测试考核答案
- 超星尔雅学习通《安全与急救(四川警察学院)》2026章节测试及答案
- 河南省部分名校2025-2026学年高三下学期仿真模拟(六) 地理试题(原卷版)
- 2025年放射医学主治医师考试题库(附答案)
- 2026年图书资料员高级技师通关练习题【预热题】附答案详解
- 2026年中级银行从业资格之中级个人贷款测试卷1套附答案详解
- 2026年临床医学检验技术(师)预测复习附参考答案详解【B卷】
- 2026年医学临床三基训练医师必考通关练习题及参考答案详解【黄金题型】
- 2025年北京市西城区中考化学模拟卷
- 2026年山西同文职业技术学院高职单招职业适应性测试模拟试题含答案解析
- 2025年AASM指南:成人OSA住院评估与管理
- 规范参股公司管理制度
- 2025人教版三年级数学上册 第六单元 分数的初步认识 单元分层作业
- 止水钢板施工人员配置
- 职场课课件教学课件
- 2025深圳南山半程马拉松竞赛组织方案
- 无人吊装施工方案(3篇)
- 2026年新疆生产建设兵团兴新职业技术学院单招职业技能测试题库及答案详解一套
- 八上12短文二篇《记承天寺夜游》公开课一等奖创新教学设计
评论
0/150
提交评论