2021-2022年安徽省巢湖市全国计算机等级考试C语言程序设计_第1页
2021-2022年安徽省巢湖市全国计算机等级考试C语言程序设计_第2页
2021-2022年安徽省巢湖市全国计算机等级考试C语言程序设计_第3页
2021-2022年安徽省巢湖市全国计算机等级考试C语言程序设计_第4页
2021-2022年安徽省巢湖市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2021-2022年安徽省巢湖市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下不能作为合法常量的是()。

A.'cd'B.1.234e04C.”\a”D.'\011'

2.以下叙述中错误的是()。

A.函数的返回值类型不能是结构体类型,只能是简单类型

B.函数可以返回指向结构体变量的指针

C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员

D.只要类型相同,结构体变量之间可以整体赋值

3.该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是()#includeMain(){intn,*p=NULL;*p=&n;printf("Inputn:");scanf("%d",&p);print("outputn:");print("%d\n",p);A.intn,*p=NULL;

B.*p=&n;

C.scanf("%d",&p)

D.printf("%d\n",p);

4.有以下程序:

程序运行后的输出结果是().

A.1,3

B.2,3

C.1,4

D.1,2

5.以下叙述中错误的是()。

A.线性结构也能采用链式存储结构

B.线性结构一定能采用顺序存储结构

C.有的非线性结构也能采用顺序存储结构

D.非线性结构一定不能采用顺序存储结构

6.若有定义intx=3,y=2和floata=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是()。

A.0B.2C.1.5D.1

7.任何一个无向图的最小生成树()。

A.只有一棵B.有一棵或多棵C.一定有多棵D.可能不存在

8.有以下程序程序执行后的输出结果是()。

A.y=-IB.y=oC.y=lD.while构成无限循环.

9.以下程序的输出结果是()。main(){charst[20]="hell0\O\t\\\”;printf("%d%d\n",strlen(st),sizeof(st));}A.99B.520C.1320D.2020

10.下列叙述中错误的是()。

A.可以用typedef将已存在的类型用一个新的名字来代表

B.可以通过typedef增加新的类型

C.用typedef定义新的类型名后,原有类型名仍有效

D.用typedef可以为各种类型起别名,但不能为变量起别名

11.数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放的存储器内,该数组按行存放,元素A[8][5]的起始地址为()。

A.SA+141B.SA+144C.SA+222D.SA+225

12.有以下程序main()inta[10]={1,2,3,4,5,6,7,8,9,10},*p=.&a[3],*q=p+2;printf("%d\n",*p+*q);程序运行后输出结查是

A.16B.10C.8D.6

13.程序流程图(PFD)中的箭头代表的是

A.数据流B.控制流C.调用关系D.组成关系

14.关于结构化程序设计原则和方法的描述错误的是()。

A.选用的结构只准许有一个入口和一个出口

B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现

C.不允许使用GOTO语句

D.语言中若没有控制结构,应该采用前后一致的方法来模拟

15.在深度为5的满二叉树中,叶子结点的个数为()。

A.31B.32C.16D.15

16.有以下程序#include<stdio.h>structtt(intx;structtt*y;)*P;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main{inti;p=a;for(i=l;i<=2;i++){printf("%d,",p->x);P=p->y;}}程序的运行结果是()。A.20,30,B.30,17,C.15,30,D.20,15,

17.软件需求规格说明书的作用不包括()。

A.软件设计的依据B.软件可行性研究的依据C.软件验收的依据D.用户与开发人员对软件要做什么的共同理解

18.判定一个顺序栈st(最多元素为MaxSize)为满的条件是()。A.st->top!B.st->top!C.top==-1D.top==MaxSize

19.有以下程序:#include<stdio.h>voidexch(intt[]){t[0]=t[s];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;while(i<=4){exch(&x[i]);i++;}for(i=0;i<5;i++)printf("%dl"x[i]);printf("\n");}程序运行后输出的结果是()。A.246810B.13579C.12345D.678910

20.已知数据表A中每个元素距其最终位置不远,为节省时间,应该采用的算法是()

A.直接选择排序B.堆排序C.快速排序D.直接插入排序

二、2.填空题(20题)21.下面程序的运行结果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}

22.以下程序运行后的输出结果是【】。

main()

{charCl,c2;

for(c1='0''c2='9';c1<c2;c1++,c2--)printf("%c%c",c1,c2);

printf("\n");

}

23.有如图所示的双链表结构,请根据图示完成结构体的定义:

structaa

{intdata;

【】}node;

24.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

25.若a=10,b=20,则表达式!(a<b)的值是【】。

26.下列程序中的函数stropy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如,若t所指字符串为:efgh,调用strcpy2后,s所指字符串为:efghefgh。请填空。

#include<stdio.h>

#include<string.h>

voidstrcpy2(char*s,char*t)

{char*p=t;

while(*s++=*t++);

s=【】;

while(【】=*p++);

}

main()

{charstr1[100]="abed",str2[]="efgh";

strcpy2(str1,str2);printf("%s\n",str1);

}

27.以下程序运行后的输出结果是【】。

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<c)t=-a;a=c;c=t;

if(a<c&&b<c)t=b;b=a;a=t;

printf("%d%d%d\n",a,b,c);

}

28.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。

29.下列程序的运行结果是______。

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

printf("%d\n",c);

}

30.以下程序的运行结果是【】。

#include<string.h>

typedefstructstudent{

charname[10];

longsno);

floatscore

}STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90}

c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%1d%s\n",d.sno,p->name);

}

31.当先后输入1、3、4、12、23时,屏幕上出现【】;再输入12时,则屏幕上出现【】。

#include<stdio.h>

#defineN5

main()

{inti,j,number,top,bott,min,loca,a[N],flag;

charc;

printf("Pleaseinput5numbers(a[i]>a[i-1])\n");

scanf("%d",&a[0]);

i=1;

while(i<N)

{scanf("%d",&a[i]);

if(a[i]>=a[i-1))i++;

}

printf("\n");

for(i=0;i<N;i++)printf("%d",a[i]);

printf("\n");

flag=1;

while(flag)

{scanf("%d",&number);

loca=0;

top=0;

bott=N-1;

if((number<a[0])||(number>a[N-1]))loca=-1;

while((loca==0)&&(top<=bott))

{min=(bott+top)/2;

if(number==a[min])

{loca=min;

printf("%disthe%dthnumber\n",number,loca+1);

}

elseif(number<a[min])bott=min-1;

elsetop=min+1;

}

if(loca==0||loca==-1)printf("%disnotinthelist.\n",number);

c=getchar();

if(c=='N'||c=='n')flag=0;

}

}

32.软磁盘最外边的磁道数是【】号磁道。

33.以下程序调用invert函数按逆序重新放置a数组元素的值。a数组中的值在main函数中读入。

#include<stdio.h>

#defineN10

invert(s,i,j)

int*s,i,j;

{intt;

if(i<j)

{t=*(s+i);

*(s+i)=(s+j);

*(s+j)=t;

invert(s,【】,j-1);

}

}

main()

{

inta[N],i;

for(i=0;i<N;i++)scanf("%d",a+【】);

invert(a,0,N-1);

for(i=0,i<N;i++)printf("%d",a[i]);

printf("\n")

}

34.设有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298,则输出结果为

35.下面程序的运行结果是【】。

#include<stdio.h>

#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);

}

36.下列程序的输出结果是16.00,请填空:

main()

}

inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

37.当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的【】。

38.若有如下结构体说明:

structSIRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。

【】t[20]

39.以下程序的运行结果为【】。

main()

{inti,j,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},b[4][3];

for(i=0;i<3;i++)

for(j=0;j<4;j++)

b[j][i]=a[i][j];

for(i=0;i<4;i++)

{for(j=0;j<3;j++)

printf("%-3d",b[i][j]);

printf("\n");

}

}

40.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。

word_num(str)

charstr[];

{inti,num=0,word=0;

fo(i=0;str[i]!=【】;i++)

if(【】=='')word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

三、1.选择题(20题)41.以下叙述中正确的是_____。A.用C程序实现的算法必须要有输入和输出操作

B.用C程序实现的算法可以没有输出但必须要输入

C.用C程序实现的算法可以没有输入但必须要有输出

D.用C程序实现的算法可以既没有输入也没有输出

42.有以下程序main(){inta=666,b=888;printf("%d\n",a,B);}程序运行后的输出结果是

A.错误信息B.666C.888D.666,888

43.若有以下定义:structfink{intdata;structlink*next;}a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:

指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是:

A.a.next;c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p->next;

D.(*p).next=q;(*q).next=&b;

44.阅读下列程序,当运行函数时,输入asdafaaz67,则输出为#include<stdio.h>#include<ctype.h>#inelude<string.h>intfun(char*str){inti,j=0;for(i=0;str[i]!='\0';i++)if(str[i]!='')str[j++]=str[i];str[j]='\0';}main(){charstr[81];intn;printf("Inputastring:");gets(str);puts(str);fun(str);printf("%s\n",str);}

A.asdafaaz67B.asdafaaz67C.asdD.z67

45.有以下程序:#include<stdio.h>voidfun(char*a,char*b){a=b;(*a)++;}main(){charc1='A',c2='a',*p1,*p2;p1=&c1;P2=&c2;fun(p1,p2);printf("%c%c\n",c1,c2);}程序运行后的输出结果是()。

A.AbB.aaC.AaD.Bb

46.函数fseek的正确调用形式是()。

A.fseek(位移量,起始点,文件类型指针);

B.fseek(文件类型指针,位移量,起始点);

C.fseek(文件类型指针,起始点,位移量);

D.fseek(起始点,位移量,文件类型指针);

47.下列叙述中,正确的一条是______。

A.语句int*pt中的*pt是指针变量名

B.运算符*和&都是取变量地址的运算符

C.已知指针变量p指向变量a,则&a和*p值相同,都是变量a的值

D.语句“int*p=a;”等价于“int*p;p=&a[0];”

48.若定义inta=10,则表达式a+=a-=a*=a的值是()。

A.0B.-180C.-100D.-90

49.以下程序的输出结果是()main(){inti;for(i='A;i<'l';i++,i++)printf("%c",i+32);printf("\n");}

A.编译不通过,无输出B.acegC.acegiD.abcdefghi

50.结构化程序设计主要强调的是()。

A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性

51.下列程序的运行结果为()。#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

52.

若有下列定义和语句:

intu=011,v=0x11,w=11;

printf("%o,%x,%d\n",u,v,w);

则输出结果是()。

A.9,17,11B.9,11,11C.11,11,11D.11,17,11

53.阅读程序:main(){intx;scanf("%d',&x);if(x--<5)printf("%d\n",x);elseprintf("%d\、n",x++);}程序运行后,如果从键盘上输入5,则输出结果是()

A.3B.4C.5D.6

54.当执行下面的程序时,其输出结果为______。unionst{inta;charb;}main(){unionsts;char*p=(char*)&s;s.a=0x3132;s.b=0x33;printf("%c",*p);}

A.1B.2C.3D.不确定

55.以下运算符中优先级最高的运算符是______。

A.++B.?:C.!=D.&&

56.第

13

设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次

57.下列叙述中,不属于测试的特征的是

A.测试的挑剔性B.完全测试的不可能性C.测试的可靠性D.测试的经济性

58.数据库系统的核心是()。

A.数据模型B.数据库管理系统C.数据库D.数据库管理员

59.阅读下列程序,则在执行后,程序的运行结果为#include"stdio.h"#include"string.h"main(){chara[30]="nicetomeetyou!";strcpy(a+strlen(a)/2,"you");printf("%s\n",a);}

A.nicetomeetyouyouB.nicetoC.meetyouyouD.nicetoyou

60.请阅读以下程序:#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;}case2:a++,b++;break;}printf("a=%d,b=%d\n",a,b);上面程序的输出结果是

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

四、选择题(20题)61.若有定义语句:doublea,*p=&a;,以下叙述中错误的是()。A.定义语句中的*号是一个间址运算符

B.定义语句中的*号是一个说明符

C.定义语句中的p只能存放double类型变量的地址

D.定义语句中,*p=&a把变量a的地址作为初值赋给指针变量P

62.下列选项不符合良好程序设计风格的是()。

A.源程序要文档化B.数据说明的次序要规范化C.避免滥用goto语句D.模块设计原则是高耦合、高内聚

63.有以下程序:

程序运行后的输出结果是()。

A.10B.16C.6D.12

64.以下关于typedef的叙述错误的是()。A.用tyFedef可以增加新类型

B.typedef只是将已存在的类型用一个新的名字来代表

C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

D.用typedef为类型说明一个新名,通常可以增加程序的可读性

65.语句int(*ptr)的含义是()。

A.ptr是一个返回值为int的函数

B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针,该函数返回一个int型数据

D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

66.以下叙述中错误的是()。A.C程序在运行过程中所有计算都以二进制方式进行

B.C程序在运行过程中所有计算都以十进制方式进行

C.所有C程序都需要编译链接无误后才能运行

D.C程序中整型变量只能存放整数,实型变量只能存放浮点数

67.以下程序的输出结果是()。

inta=5;

floatx=3.14;

a*=x*(‘E’-‘A’);

printf(“%f\n”,(float)a);

A.62.000000B.62.800000C.63.000000D.62

68.

69.有以下程序:

i

程序运行后的输出结果是()。。,

A.3,4B.4,1C.2,3D.1,2

70.由两个栈共享一个存储空间的好处是______。A.A.减少存取时间,降低下溢发生的概率

B.节省存储空间,降低上溢发生的概率

C.减少存取时间,降低上溢发生的概率

D.节省存储空间,降低下溢发生的概率

71.

有以下程序

#include<stdio.h>

inta=1;

intf(intc)

{staticinta=2:

c=c+1:

return(a++)+C;

}

main

(inti,k=0;

for(i=0;i<2;i++){inta=3;k+=f(a);}

k+=a:

printf("%d\n",k);

}

程序运行结果是()。

A.14B.15C.16D.17

72.下列关于栈的描述中错误的是()。

A.栈是先进先出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入删除操作中,不需要改变栈底指针

73.

74.

有下列程序:

#include<stdio.h>

main

{inta=6,b=7,m=1;

switch(a%2)

{case0:m++;break;

case1:m++;

switch(b%2)

{default:m++;

case0:m++;break;

}

}

printf("%d\n",m);

}

程序的运行结果是()。

A.3B.2C.4D.1

75.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是

A.插入排序B.冒泡排序C.直接插入排序D.堆排序

76.下列关于单目运算符++、--的叙述中正确的是A.它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D.它们的运算对象可以是char型变量、int型变量和float型变量

77.有以下程序程序的运行结果是()。

A.321678B.876543C.1098765D.345678

78.设有下列二叉树:对此二叉树前序遍历的结果为()

A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

79.分布式数据库系统不具有的特点是

A.数据的物理分布性和逻辑整体性B.位置透明性和复制透明性

C.事物管理的集中性D.数据冗余

80.以下关于字符串的叙述中正确的是()。

A.C语言中有字符串类型的常量和变量

B.两个字符串中的字符个数相同时才能进行字符串大小的比较

C.可以用关系运算符对字符串的大小进行比较

D.空串一定比空格打头的字符串小

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:从字符串str中,删除所有大写字母F。

请修改程序中的错误,使它能得到正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include<stdio.h>

voidproc(char*str)

{

inti,j;

//****found****

for(i=j=0;str[i]一0;i++)

if(str[i]!=F)

//****found****

str[i]=str[i];

str[j]=\0;

}

voidmain

{

charstr[80];

printf("\nEnterastring:");

gets(str);

printf("Theoriginalstring:");

puts(str);

proc(str);

printf("Thestringafterdeleted:");

puts(str);

printf("\n\n");}

六、程序设计题(1题)82.函数fun的功能是:将s所指字符串中下标为偶数同时ASCIl值为奇数的字符删除,S所指串中剩余的字符形成的新串放在t所指的数组中。例如,若s所指字符串中的内容为“ABCDEFGl2345”,其中字符C的ASCIl码值为奇数,在数组中的下标为偶数,因此必须删除;而字符l的ASCIl码值为奇数,在数组中的下标为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是“BDFl2345”。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:

参考答案

1.A字符常量是使用单引号标注的单个字符,选项A错误;选项B属于浮点数常量,正确;选项C属于转义字符常量,正确;选项D属于转义字符,代表八进制数011的ASCII值的字符,正确。本题答案为A选项。

2.A函数返回值类型可以是简单类型和结构体类型。

3.A选项B)的正确写法应为p=&n;选项C)的正确写法应为scanf("%d",p);选项D)的正确写法应为print("%d\\n",*p)。

4.Af函数功能使第二个指针指向的元素增1,第一个指针指向的元素不变,所以答案选择A)。

5.D满二叉树与完全二叉树均为非线性结构,但可以按照层次进行顺序存储。本题答案为D选项。

6.D

7.B

8.A当y为。时,表达式y一才为假,循环结束,最终y的值为一l,所以答案选择A)。

9.B从题目中可知,\O、\t、\\分别为一个字符,而sizeof是求字节个数的函数,其中包括\O占的字节,strlen函数是求数组长度的函数;其以\0结束,因此strlen的值为5,sizeof的值为20。

10.Btypedef并不是增加一种新的类型,而是对已存在的类型用一个新的名字来代表,所以B选项错误。故本题答案为B选项。

11.C

12.B解析:本题考查的是指针的简单应用。题目中首先定义了一个int型数组a并初始化了,然后定义了两个指针变量p和q,并分别初始化p为指向数组元素a[3]、q指向p后面的第2个元素即指向a[5]。所以最终输出的值为a[3]+a[5]的值10。应该选B。

13.B解析:程序流程图(PFD)是一种传统的、应用广泛的软件过程设计表示工具,通常也称为程序框图,其箭头代表的是控制流。

14.C结构化程序设计的原则和方法之一是限制使用GOT0语句,但不是绝对不允许使用GOT0语句。其他三项为结构化程序设计的原则。

15.C解析:二叉树的一个性质是,在二叉树的第k层上,最多有2(k-1)(k>=1)个结点。对于满二叉树,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点。所以,在深度为5的满二叉树中,所有叶子结点在第5层上,即其结点数为2(k-1)=2(5-1)=16。

16.D程序的结构体数组a的元素形成了一个单向的循环链表,每个元素的指针成员都指向下一个元素的地址。

17.B《软件可行性分析报告》是软件可行性研究的依据。

18.D

19.D本题中exch函数是用数组中的第6个元素对第1个元素进行赋值,所以数组的值应该为678910。

20.D

21.11

22.9.18274e+0089.18274e+008解析:本题考查的循环条件是c1<c2,当c1>=c2时,退出循环。所以,第一次循环输出09,第二次循环输出18,如此循环直到输出45,之后c1=5,c2=4,不满足循环条件,退出循环。

23.structaa*lhead*rchild;structaa*lhead,*rchild;解析:结构体对链表的定义。

24.概念设计阶段(数据库概念设计阶段)概念设计阶段(数据库概念设计阶段)

25.00解析:已知a=10,b=20,所以逻辑表达式a<b的值为true,即为1,在这个表达式前面有一个逻辑运算符!,表示反操作,所以整个语句的值应当为false,即为0。

26.s-1或--s或s--*s++s-1或--s或s--\r\n*s++解析:在函数。strcpy2()中,首先将指针t保存到指针p中,然后进入第1个while()循环,其循环条件为*s++=*t++,其中“*”和“++”运算符的优先级相同,但他们的结合性为从右至左,而“=”运算符优先级比较低,所以原表达式等价于(*s++)=(*(t++)),即将t当前所指内容复制到s当前所指地址中,然后让s和t同时往后移动一位,整个表达式返回的是复制给s的值。所以,当t所指内容是字符串结束符'\\0',时,while循环结束,原先t所指的整个字符串也就复制到s所指的地址中去了。但是,while循环最后一次判断也会让s和t往后移动一位,即此时s指向了字符串结束符'\\0'的后一位。所以第2次复制字符串之前,应先将s指针往回移动一位,故前一空应该填入s-1或其他等价形式。接下来的while循环实现第二次复制,照抄第1次的while循环就行,故后一空应填入*s++。

27.45994599解析:if语句只对紧跟其后的一条语句或语句块产生作用。因此,题目中两条if语句只有t=a;和t=b是if的子句。第1条if语句中b<a为假,所以跳过语句t=-a;,执行a=c;c=t,a=5、b=4、c=99。第2条if语句的判断条件a<c&&b<c为真,所以后面3条语句都被执行,这3条语句构成一次a和b的内容交换。所以最后输出的结果是:4599。

28.循环链表循环链表解析:在循环链表中,由于设置了一个头结点,因此在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。

29.55解析:分析程序,当a=3;b=4;c=5时,判断语句a>b不成立,所以不执行后面的语句,直接执行“printf('%d\\n',c);”语句,输出c的值,输出结果为5。

30.2002shangxian2002shangxian解析:\'B\'的ASCII值是66。本题中指针变量p指向d,执行第一个if语句时,条件成立,d=b;执行第二个if语句时,条件不成立,故d=b,所以d.sno=2002,p->name'Shangxian'。

31.134122312isthe4thnumber.

32.0

33.i+1i

34.89218921

35.100010100010解析:对于define宏定义语句,系统在编译前进行如下替换:

i1=1000/s(N)i1=1000/s(10)i1=1000/10*10

i2=1000/f(N))i2=1000/f(10)i2=1000/(10*10)

解析:本题,已知结果z=16.00,即16.0=a/2+b*x/y+1/2,分别把a、b代入,得到16.0=(9/2+2*x/1.1+1/2。因为a=9,a是整型,所以9/2的值在没有进行类型转换时,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。

37.物理独立性物理独立性

38.structSTRUstructSTRU解析:结构体类型是构造数据类型,是用户自己定义的一种类型。

结构体类型的定义:

struct结构体类型名

{

成员项表;

定义结构休变量的的形式为:

struct结构体类型名变量1,变量2,....

其中变量包括:一般变量、指针变量、数组变量等。

39.159261037114812159\r\n2610\r\n3711\r\n4812解析:程序的功能是将一个二维数组的行和列元素互换,存到另一个二维数组中。

40.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:观察题目要求,可以知道以下几点:

①for循环的结束条件应当是:str[i]已是字符串的最后—个字符;

②str[i]代表字符串str中的第i+1个字符;

③整型变量num的值是要记录的单词的个数。

C语言中规定字符串的最后一个字符是一个隐含的字符串结束符“\\0”,所以在题中第—个空中应填写“\\0”;题中第二个空应填写“str[i]”,以判断当前位置的字符是否为空格;题中第三个空中应当填写“num++”,通过变量num的加1累加得到字符串中的单词个数。

41.C解析:算法的特性中包括“有零个或多个输入”及“有一个或多个输出”这两个特性。一个算法得到的结果就是算法的输出,没有输出的算法是没有意义的,所以一千算法必须至少有一个输出。

42.B解析:程序中的printf()函数的输出格式部分只说明了一个%d,而输出成员列表却有两个成员a和b,在这里将只输出第一个成员a值为666,所以,4个选项中选项B符合题意。

43.D解析:本题考查链表的数据结构,必须利用指针变量才能实现,即一个结点中应包含一个指针变量,用它存放下一结点的地址。

44.A解析:本题题意要求删除所有空格,即除了空格以外的其他所有字符都要留下。由于C语言中没有直接删除字符的操作,所以我们对于删除字符的操作都是采用“留下”字符的算法,以前的题目亦是如此。用str[i]从串头到串尾逐一走动,每走到一个字符都判断其是否为空格,若不是空格(注意在if()的单引号之间有一个空格),则将其保存str[j]中。注意j的下标变化、初值及最后加串结束符“\\0”。

45.A解析:本题中fun函数的形参是两个指向字符型数据的指针,其功能是把b赋给a,然后将a所指存储单元里的变量值加1。在main函数中,p1里存放的是c1的地址,p2里存放的是c2的地址,经函数调用fun(p1,P2)后,p2的值赋给了p1,使p1和p2都指向了c2,而(*a)++又使'a'的值加1变成了'b',所以此时c2的值为'b',而c1的值没变,仍为'A'。程序改变的是p1的地址和c2的值。

46.B解析:改变文件位置的指针函数fseek()的调用形式为:fseek(fp,offset,position);。fseek函数参数说明:“fp”是指向该文件的文件型指针;“offset'’为位移量,指从起始点position.到要确定的新位置的字节数。也就是以起点为基准,向前移动的字节数。ANSIC要求该参数为长整型量;“position”为起始点,指出以文件的什么位置为基准进行移动,position的值用整型常数表示,“0”表示文件的开头,“1”表示文件的当前位置,“2”表示文件的末尾。

47.D

48.B解析:算术运算符的运算规则是:从右到左的原则。所以表达式中先计算a=a-a*(上标)a的值是-90,再计算a=a+a的值是-180。

49.B

50.D解析:程序不仅是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。

51.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。

52.C解析:在C语言中,“%d”表示输出带符号的十进制整型数;“%x”表示以十六进制无符号型输出整型数据(即不带前导0x或0X);“%o”表示以八进制无符号型输出整型数据(即不带前导0)。

53.B

54.C解析:共用体类型结构的特点是使几个不同的变量共占同一段内存,但在每一瞬时只能存放其中一种,而不是同时存放几种,共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用。因此本题起作用的是成员b的值,所以程序打印输出3。

55.A解析:四个运算符的优先级由高到低依次是:++,&&,?:,!=。

56.C本题中,首先将0赋给k,表达式变为0,跳出循环,没有执行循环体语句。解答本题的关键是掌握while语句。

57.C解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济性。其中没有测试的可靠性这一说法。注意:软件测试与软件调试的概念,以及相应的方法。

58.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。

59.D解析:考查通过赋值的方式给一维数组赋初值。字符串复制函数strcpy调用形式为:strcpy(s1,s2),此函数用来把s2所指字符串的内容复制到s1所指存储空间中,函数返回s1的值,即目的串的首地址;求字符串长度函数strlen的调用形式如下:strlen(s),此函数计算出以s为起始地址的字符串长度,并作为函数值返回。注意这一长度不包括串的结束标志。用于字符串处理的函数。

60.A

61.A在变量定义doublea,*p:&a;中,*号是一个指针运算符,而非间址运算符,因此A)错误。

62.D在程序设计中,对于软件设计中的模块设计要保证高内聚和低耦合,源程序要有文档说明,同时对程序中数据的说明要规范化。而goto语句破坏程序的结构,要尽量避免使用。所以选项D不正确。

63.D第一个for循环作用是对数组8赋初值,从0~9,第二个缸循环是计算数组前4项的a[i]+i的和。0+0,1+1,2+2,3+3,经计算的结果为l2,因此答案为D选项。

64.A用typedef没有增加新类型,所以选择A)。

65.C本题考查的是指向函数的指针。函数指针定义的基本格式为:类型标识符(*指针变量名)()。“类型标识符”为函数返回值的类型。

66.B所有的C程序都必须经过编译链接无误之后才能运行。在运行过程中,由计算机完成程序中的所有运算。由于计算机只能识别二进制,所以所有的运算都以二进制方式进行,而不是十进制。

67.A

68.D

69.C本题考查结构体数组的相关操作,dt为结构体数组,那么指针P指向了结构体数组的一个元素,所以P一>x为1,P一>Y为2,结果为2,3。选项C正确。

70.B栈是一种只允许在栈顶进行插入和删除操作的线性表,使两个栈共享同一存储空间的是双向栈,即将两个栈的栈顶设在向量空间的两端,让两个栈各自向中间空间延伸。当其中一个栈的元素较多,超过向量空间的一半时,只要另一个栈的元素不多,那么,前者就可以占用后者的部分存储空间。只有当整个向量空间被两个栈占满(即两个栈底相遇)时,才会发生上溢。使用这种栈的优点是可以有效地节省存取空间,降低上溢发生的概率,而对于存取时间并没有影响。

71.A

\n在主函数中,k的初值为0,首先调用函数f(3),返回值为6,k的值变为6,而函数intfun(intc)中的局部静态变量a等于3。第二次调用函数f(3)时,返回值为7,所以k=6+7=13。退出循环语句,k再加上全局变量a的值l,其最终的值为14。

\n

72.B

\n栈是线性表的一种,它的特点是先进后出,并且只能在表的一端进行插入和删除操作的线性表,入栈和出栈都是在栈顶进行,因此具有记忆作用,栈可以采用顺序存储,也可以采用链式存储。

\n

73.B

74.B

\n本题考查switch语句及break的用法。第一个switch语句,因为a=6.a%2=0,所以执行“case0,m++;”,将m加1,遇到break语句跳出switch语句,结束循环。不执行下面的switch。

\n

75.D在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都为n(n-1)/2,堆排序需要的比较次数为nlog2n。因此本题正确的答案选D。

76.D本题主要考查自加与自减运算符。在C语言中,自加与自减运算符具有以下性质:

(1)自加运算符“++”和自减运算符“--”的运算本身是一种赋值运算,其结果是使运算对象的值增1或减1。

(2)++、--运算符是单目运算符,运算对象可以是整型变量或字符型变量,也可以是实型变量,但不能是常量和表达式。

(3)自加、自减运算符无论是作为前缀还是后缀运算符,对于变量而言,其效果相同,但作为表达式来说,其值不同。

(4)++和--运算符的结合方向是“自右向左”。

(5)不要在一个表达式中对同一个变量进行多次自增或自减运算。可以知道本题正确的答案是D。

77.A本题中,函数fun()的功能是将数组k中前5个元素倒序,因此返回后数组k中的元素排列是5…432,l,6,7,8,9,10。程序打印输,hqk[21到k[71元素的值,flP321678,所以选择A)。

78.B解析:所谓二叉树的前序遍历(DLR)是指在访问根结点、遍历左子树与遍历右子树这3者中,首先访问根结点,然后遍历左子树,最后遍历右子树,并且,在遍历左右子树时,上述规则同样适用,即“根-左-右”。故该二叉树的前序遍历结果为“ATBZXCYP”。对于本题,若使用后序遍历和中序遍历的结果分别为“ZBTYCPXA”和“TZBACYXP”。

79.C分布式数据库是一种将数据分布存储,但数据在逻辑上保持整体性的一种数据库。分布式数据库系统具有以下几个特点:

(1)数据的物理分布性。分布式数据库的数据不是存储在一个场地上,不是集中存储,而是存储在计算机网络上多个场的设备上。

(2)数据的逻辑整体性。虽然数据分布在各个场地,但逻辑上是一个整体,它们被所有的用户共享,并由一个DDBMS统一管理。

(3)位置透明性和复制透明性。位置透明性是指用户不必关心数据的逻辑分区,不必关心数据物理位置分布的细节;而复制透明性是指用户不用关心数据库在网络中各个结点的复制情况,被复制的数据的更新都由系统自动完成。

(4)场地自治性。各场地的数据由本地DBMS管理,具有自治处理能力,能执行局部的应用请求。

(5)数据冗余及冗余透明性。与集中式数据库系统追求低冗余度不同,DDBS通过数据的适当冗余来提高系统的可靠性、可用性和改善系统性能。但这种冗余对用户是透明的,即用户不必知道冗余的存在,冗余副本之间的数据一致性问题由系统负责。

(6)事务管理的分布性。数据的分布性必然造成事务执行和管理的分布性,即一个全局事务的执行可分解为在若干场地上子事务(局部事务)的执行。事务的原子性、一致性、隔离性、持久性以及事务的恢复也都具有分布性特点。

80.D解析:C语言中只有字符串常量而没有字符串变量,故选项A不正确:字符串比较大小是以第1个不相同字符的大小为标准的,跟长度没有关系,故选项B不正确;字符串比较大小除了使用库函数strcn3()以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小。因为字符串在表达式中相当于const\u3000char*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。所以选项C也不正确。空串的长度为0,而以空格打头的字符串的长度至少为\u30001,故选项D正确,本题应该选择D。

81.(1)错误:for(i=j=0;str[i]!=0;i++)

\n正确:for(i=j=0;str[i]!=\0;i++)

\n(2)错误:str[j]=str[i];

\n正确:str[i++]=str[i];

\n【解析】根据题目中的要求,从字符串str中删除所有大写字母F,需要检查字符串str中的每一个字符,直到字符串结束,因此,“for(i=j=0;str[i]!=0;i++)”应改为“for(i=J=0;str[i]!=0;i++)”;将每一个不是F的字符放入原来的字符串中,形成新的字符串,因此,“str[j]=str[i];”应改为“str[j++]=str[i];”。

\n

82.

2021-2022年安徽省巢湖市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下不能作为合法常量的是()。

A.'cd'B.1.234e04C.”\a”D.'\011'

2.以下叙述中错误的是()。

A.函数的返回值类型不能是结构体类型,只能是简单类型

B.函数可以返回指向结构体变量的指针

C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员

D.只要类型相同,结构体变量之间可以整体赋值

3.该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是()#includeMain(){intn,*p=NULL;*p=&n;printf("Inputn:");scanf("%d",&p);print("outputn:");print("%d\n",p);A.intn,*p=NULL;

B.*p=&n;

C.scanf("%d",&p)

D.printf("%d\n",p);

4.有以下程序:

程序运行后的输出结果是().

A.1,3

B.2,3

C.1,4

D.1,2

5.以下叙述中错误的是()。

A.线性结构也能采用链式存储结构

B.线性结构一定能采用顺序存储结构

C.有的非线性结构也能采用顺序存储结构

D.非线性结构一定不能采用顺序存储结构

6.若有定义intx=3,y=2和floata=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是()。

A.0B.2C.1.5D.1

7.任何一个无向图的最小生成树()。

A.只有一棵B.有一棵或多棵C.一定有多棵D.可能不存在

8.有以下程序程序执行后的输出结果是()。

A.y=-IB.y=oC.y=lD.while构成无限循环.

9.以下程序的输出结果是()。main(){charst[20]="hell0\O\t\\\”;printf("%d%d\n",strlen(st),sizeof(st));}A.99B.520C.1320D.2020

10.下列叙述中错误的是()。

A.可以用typedef将已存在的类型用一个新的名字来代表

B.可以通过typedef增加新的类型

C.用typedef定义新的类型名后,原有类型名仍有效

D.用typedef可以为各种类型起别名,但不能为变量起别名

11.数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放的存储器内,该数组按行存放,元素A[8][5]的起始地址为()。

A.SA+141B.SA+144C.SA+222D.SA+225

12.有以下程序main()inta[10]={1,2,3,4,5,6,7,8,9,10},*p=.&a[3],*q=p+2;printf("%d\n",*p+*q);程序运行后输出结查是

A.16B.10C.8D.6

13.程序流程图(PFD)中的箭头代表的是

A.数据流B.控制流C.调用关系D.组成关系

14.关于结构化程序设计原则和方法的描述错误的是()。

A.选用的结构只准许有一个入口和一个出口

B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现

C.不允许使用GOTO语句

D.语言中若没有控制结构,应该采用前后一致的方法来模拟

15.在深度为5的满二叉树中,叶子结点的个数为()。

A.31B.32C.16D.15

16.有以下程序#include<stdio.h>structtt(intx;structtt*y;)*P;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main{inti;p=a;for(i=l;i<=2;i++){printf("%d,",p->x);P=p->y;}}程序的运行结果是()。A.20,30,B.30,17,C.15,30,D.20,15,

17.软件需求规格说明书的作用不包括()。

A.软件设计的依据B.软件可行性研究的依据C.软件验收的依据D.用户与开发人员对软件要做什么的共同理解

18.判定一个顺序栈st(最多元素为MaxSize)为满的条件是()。A.st->top!B.st->top!C.top==-1D.top==MaxSize

19.有以下程序:#include<stdio.h>voidexch(intt[]){t[0]=t[s];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;while(i<=4){exch(&x[i]);i++;}for(i=0;i<5;i++)printf("%dl"x[i]);printf("\n");}程序运行后输出的结果是()。A.246810B.13579C.12345D.678910

20.已知数据表A中每个元素距其最终位置不远,为节省时间,应该采用的算法是()

A.直接选择排序B.堆排序C.快速排序D.直接插入排序

二、2.填空题(20题)21.下面程序的运行结果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}

22.以下程序运行后的输出结果是【】。

main()

{charCl,c2;

for(c1='0''c2='9';c1<c2;c1++,c2--)printf("%c%c",c1,c2);

printf("\n");

}

23.有如图所示的双链表结构,请根据图示完成结构体的定义:

structaa

{intdata;

【】}node;

24.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

25.若a=10,b=20,则表达式!(a<b)的值是【】。

26.下列程序中的函数stropy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如,若t所指字符串为:efgh,调用strcpy2后,s所指字符串为:efghefgh。请填空。

#include<stdio.h>

#include<string.h>

voidstrcpy2(char*s,char*t)

{char*p=t;

while(*s++=*t++);

s=【】;

while(【】=*p++);

}

main()

{charstr1[100]="abed",str2[]="efgh";

strcpy2(str1,str2);printf("%s\n",str1);

}

27.以下程序运行后的输出结果是【】。

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<c)t=-a;a=c;c=t;

if(a<c&&b<c)t=b;b=a;a=t;

printf("%d%d%d\n",a,b,c);

}

28.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。

29.下列程序的运行结果是______。

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

printf("%d\n",c);

}

30.以下程序的运行结果是【】。

#include<string.h>

typedefstructstudent{

charname[10];

longsno);

floatscore

}STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90}

c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%1d%s\n",d.sno,p->name);

}

31.当先后输入1、3、4、12、23时,屏幕上出现【】;再输入12时,则屏幕上出现【】。

#include<stdio.h>

#defineN5

main()

{inti,j,number,top,bott,min,loca,a[N],flag;

charc;

printf("Pleaseinput5numbers(a[i]>a[i-1])\n");

scanf("%d",&a[0]);

i=1;

while(i<N)

{scanf("%d",&a[i]);

if(a[i]>=a[i-1))i++;

}

printf("\n");

for(i=0;i<N;i++)printf("%d",a[i]);

printf("\n");

flag=1;

while(flag)

{scanf("%d",&number);

loca=0;

top=0;

bott=N-1;

if((number<a[0])||(number>a[N-1]))loca=-1;

while((loca==0)&&(top<=bott))

{min=(bott+top)/2;

if(number==a[min])

{loca=min;

printf("%disthe%dthnumber\n",number,loca+1);

}

elseif(number<a[min])bott=min-1;

elsetop=min+1;

}

if(loca==0||loca==-1)printf("%disnotinthelist.\n",number);

c=getchar();

if(c=='N'||c=='n')flag=0;

}

}

32.软磁盘最外边的磁道数是【】号磁道。

33.以下程序调用invert函数按逆序重新放置a数组元素的值。a数组中的值在main函数中读入。

#include<stdio.h>

#defineN10

invert(s,i,j)

int*s,i,j;

{intt;

if(i<j)

{t=*(s+i);

*(s+i)=(s+j);

*(s+j)=t;

invert(s,【】,j-1);

}

}

main()

{

inta[N],i;

for(i=0;i<N;i++)scanf("%d",a+【】);

invert(a,0,N-1);

for(i=0,i<N;i++)printf("%d",a[i]);

printf("\n")

}

34.设有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298,则输出结果为

35.下面程序的运行结果是【】。

#include<stdio.h>

#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);

}

36.下列程序的输出结果是16.00,请填空:

main()

}

inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

37.当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的【】。

38.若有如下结构体说明:

structSIRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。

【】t[20]

39.以下程序的运行结果为【】。

main()

{inti,j,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},b[4][3];

for(i=0;i<3;i++)

for(j=0;j<4;j++)

b[j][i]=a[i][j];

for(i=0;i<4;i++)

{for(j=0;j<3;j++)

printf("%-3d",b[i][j]);

printf("\n");

}

}

40.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。

word_num(str)

charstr[];

{inti,num=0,word=0;

fo(i=0;str[i]!=【】;i++)

if(【】=='')word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

三、1.选择题(20题)41.以下叙述中正确的是_____。A.用C程序实现的算法必须要有输入和输出操作

B.用C程序实现的算法可以没有输出但必须要输入

C.用C程序实现的算法可以没有输入但必须要有输出

D.用C程序实现的算法可以既没有输入也没有输出

42.有以下程序main(){inta=666,b=888;printf("%d\n",a,B);}程序运行后的输出结果是

A.错误信息B.666C.888D.666,888

43.若有以下定义:structfink{intdata;structlink*next;}a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:

指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是:

A.a.next;c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p->next;

D.(*p).next=q;(*q).next=&b;

44.阅读下列程序,当运行函数时,输入asdafaaz67,则输出为#include<stdio.h>#include<ctype.h>#inelude<string.h>intfun(char*str){inti,j=0;for(i=0;str[i]!='\0';i++)if(str[i]!='')str[j++]=str[i];str[j]='\0';}main(){charstr[81];intn;printf("Inputastring:");gets(str);puts(str);fun(str);printf("%s\n",str);}

A.asdafaaz67B.asdafaaz67C.asdD.z67

45.有以下程序:#include<stdio.h>voidfun(char*a,char*b){a=b;(*a)++;}main(){charc1='A',c2='a',*p1,*p2;p1=&c1;P2=&c2;fun(p1,p2);printf("%c%c\n",c1,c2);}程序运行后的输出结果是()。

A.AbB.aaC.AaD.Bb

46.函数fseek的正确调用形式是()。

A.fseek(位移量,起始点,文件类型指针);

B.fseek(文件类型指针,位移量,起始点);

C.fseek(文件类型指针,起始点,位移量);

D.fseek(起始点,位移量,文件类型指针);

47.下列叙述中,正确的一条是______。

A.语句int*pt中的*pt是指针变量名

B.运算符*和&都是取变量地址的运算符

C.已知指针变量p指向变量a,则&a和*p值相同,都是变量a的值

D.语句“int*p=a;”等价于“int*p;p=&a[0];”

48.若定义inta=10,则表达式a+=a-=a*=a的值是()。

A.0B.-180C.-100D.-90

49.以下程序的输出结果是()main(){inti;for(i='A;i<'l';i++,i++)printf("%c",i+32);printf("\n");}

A.编译不通过,无输出B.acegC.acegiD.abcdefghi

50.结构化程序设计主要强调的是()。

A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性

51.下列程序的运行结果为()。#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

52.

若有下列定义和语句:

intu=011,v=0x11,w=11;

printf(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论