2022-2023年山东省临沂市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页
2022-2023年山东省临沂市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页
2022-2023年山东省临沂市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页
2022-2023年山东省临沂市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页
2022-2023年山东省临沂市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年山东省临沂市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下列排序方法中,()方法的比较次数与记录的初始排列状态无关。

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

2.当很频繁的对序列中部进行插入和删除操作时,应该选择使用的容器是()

A.vectorB.listC.dequeD.stack

3.

4.程序调试的任务是()。

A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误

5.为了隐藏在文本框中输入的信息,用占位符代替显示用户输入的字符,需要设置的属性是()。

A.ValueB.ControlSoureeC.InputMaskD.PasswordChar

6.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。

A.访问第i个结点(1<=i<=n)和求第i个结点的直接前驱(2<=i<=n)

B.在第i个结点之后插入一个新结点(1<=i<=n)

C.删除第i个结点(1<=i<=n)

D.将n个结点从小到大排序

7.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

8.有以下程序:#include<stdio.h>main(){intb[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;for(i=0;i<3;i++)for(j=1;j<=i;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是()。A.1B.3C.4D.0

9.以下函数的时间复杂度和空间复杂度为()A.T(n)=O(2^n),S(n)=O(n)

B.T(n)=O(1),S(n)=O(1)

C.T(n)=O(2^n),S(n)=O(1)

D.T(n)=O(n),S(n)=O(n)

10.

11.设有以下程序段:intx=0,s=0;whUe(!x!=0)s+=++x;printf("%d",s);则()。

A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次

12.定义int*swap()指的是______。

A.—个返回整型值的函数swap()

B.一个返回指向整型值指针的函swap()

C.一个指向函数swap()的指针,函数返回一个整型值

D.以上说法均错

13.当执行下面的程序时,如果输入ABC,则输出结罘是()。#include<stdio.h>#include<string.h>main(){charss[10]="1,2,3,4,5":gets(ss);strcat(ss,"6789");printf("%s\n",ss);}A.ABC6789B.ABC67C.12345ABC6D.ABC456789

14.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y)reurn(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

15.有如下程序该程序的输出结果是().A.A.12B.13C.14D.15

16.下列给字符数组初始化中,()是正确的。

A.chars2[3]="xyz";

B.chars1[]="abcd";

C.chars3[][3]={'a','x','y'};

D.chars4[2][3]={"xyz","mnp"};

17.若希望下列的程序运行后输出25,程序空白处的正确选项是()。

main()

{inti,j=50,a[]={7,4,10,5,8};

for()

j+=a[i];

primf("%d,j-40);

}

A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i

18.数据流图(DFD)的作用是()。

A.描述软件系统的控制流B.支持软件系统的功能建模C.支持软件系统的面向对象分析D.描述软件系统的数据结构

19.有以下程序:#include<stdio.h>main(){inta=2,b=2,C=2;print{("%d\n",a/b&c);}程序运行后的输出结果是()。A.0B.1C.2D.3

20.作为信息处理热点技术之一的“多媒体技术”中的媒体,强调的是()。

A.存储媒体B.表现媒体C.传输媒体D.感觉媒体

二、2.填空题(20题)21.若从键盘输入24,则以下程序输出的结果是()。

#include<stdio.h>

main()

{inta;

scanf("%d",&A);

if(a>20)printf("%d",A);

if(a>10)printf("%d",A);

if(a>5)printf("%d",A);

}

22.在计算机领域中,通常用英文单词“Byte'’表示【】。

23.结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。

24.下面程序的功能是实现变量x、y内容交换,请填空。

#defineEXCHANGE(a,b,c){a=b;b=c;c=a;}

main()

{intx=10,y=8,z;

【】

printf("%d,%d",x,y);}

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

main()

{intx=15;

while(x>10&&x<50)

{x++;

if(x/3){x++;break;}

elsecontinue;

}

printf(“%d\n”,x);

}

26.以下程序统计从终端输入的字符中大写字母的个数。用#号作为输入结束标志,请填空。#include<stdio.h>#include<ctype.h>main(){intnum[26],i;charc;for(i=0;i<26;i++)num[i]=0;();while(c!='#'}{if(isupperC)num[c-65]+=1;}for(i=0;i<26;i++)if(num[i])printf("%c,%d\n",i+65,num[i]);}

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

28.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】。要求形参名为b。

main()

{double[10][22];

intn;

......

fun(s);

}

29.以下程序的输出结果是【】。

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

printf("%d\n",*(p+3));

}

30.阅读程序:

main()

{charstrl[]="howdoyoudo",str2[10];

char*p1=strl,*p2=str2;

scanf("%s”,p2);

printf("%s”,p2);

printf("%s\n",p1);

}

运行上面的程序,输入字符串HOWDOYOUDO则程序的输出结果是【】。

31.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。

32.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

33.以下程序运行后的输出结果是______。

inta=5;

fun(intB)

{staticinta=10;

a+=b++;

printf("%d",A);

}

main()

{intc=20;

fun(C),

a+=C++;

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

}

34.函数delete(s,i,n)的作用是从字符串s中删除从第i个字符开始的n个字符,请填空。

voiddelete(chars[],inti,intn)

{intj,k,legth=0;

while(s[length])

【】;

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<length)

while(k<length)

s[j++]=s[k++];

s[j]='\0'

}

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

#include<stdio.h>

main()

{chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{if(i%2==0)*p='*';

p++;i++;

}

puts(a);

}

36.当m=1,n=2,a=3,b=2,c=4时,执行d=(m=a!=B)&&(n=b>C)后,m的值为()。

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

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

{printf("%d\n",s);

break;}

s+=i;}}

38.若有定义intm=5,y=2,则执行表达式y+=y-=m*=y后,y的值为【】。

39.下面程序调用fun函数动态分配两个整型存储单元,并通过形参传回这两个整型存储单元的地址给s1和s2,将程序补充完整。

main()

{

int*s1,*s2;

fun(【】);

}

intfun(【】);

{

*p=(int*)malloc(sizeof(int));

*q=(int*)malloc(sizeof(int));

}

40.已知存储结构如下所示,请填空。

datanext

structlink{chardata;

【】;

}node;

三、1.选择题(20题)41.利用fseek函数可以实现的操作是

A.改变文件的位置指针B.文件的顺序读写C.文件的随机读写D.以上答案均正确

42.有如下程序:main(){ints=0,a=1,n;scanf("%d",&n);do{s+=1;a=a-2;}while(a!=n)printf("%d\n",s);}若要使程序输出2,则应该从键盘输入的值是______。

A.-1B.-3C.-5D.0

43.以下不正确的定义语句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5]={0,1,3,5,7,9};

C.charc1[]={'1','2','3','4','5'};

D.charc2[]={'\x10','\xa','\x8'};

44.有以下程序voidfun{int*a,inti,intj){intt;if(i<j)t=a[i];a[i]=a[j];a[j]=t;fun(a,++i,--j);}main(){inta[]={1,2,3,4,5,6},i;fun(a,0,5);for(i=0;i<6;i++)printf("%d",a[i]);}执行后输出结果是

A.654321B.432156C.456123D.123456

45.下列有关数据库的描述,正确的是______。

A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件

46.下列叙述中正确的是()。

A.数据的逻辑结构与存储结构必定是一一对应的

B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构

C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构

D.以上三种说法都不对

47.设有以下定义的语句,则*(*(p+2)+1)的值为______。inta[3][2]={10,20,30,40,50,60},(*p)[2];p=a;

A.10B.30C.60D.40

48.下列程序的输出结果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);return(d);}main(){inta=3;printf("%d\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

49.下列说法错误的是()。

A.下列结构体定义时,占据了5个字节的空间structstudent{intnum;intage;charsex;}

B.结构体的成员名可以与程序中的变量名相同

C.对结构体中的成员可以单独使用,它的作用相当于普通变量

D.结构体可以嵌套定义

50.若有以下定义的语句

structstudent

{intage;

intnum;};

structstudentstu[3]={{1001,20},{1002,19},{1003,21}};

main()

{structstudent*p;

p=stu;

…}

则以下不正确的引用是

A.(p++)->numB.p++C.(*p).numD.P=&stu.age.

51.设有系和学生2个实体集,一个学生只能在一个系里注册,而一个系有很多学生。系和学生的关系是______。

A.多对多联系B.多对一联系C.一对多联系D.一对一联系

52.下列程序的运行结果为()。#include<stdio.h>voidabc(char*str){inta,b,i,j;for(i=j=0;str[i]!='\0';i++)if(str[i]!='a')str[j++]=str[i];str[j]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]%s",str);}

A.str[]=bcdefB.str[]=abcdefC.str[]=aD.str[]=ab

53.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为()

A.0B.1C.-1D.一个非0值

54.一个采用顺序存储方式的线性表中,若线性表的第一个元素的存储地址是200,每一个元素的长度是2,则第6个元素的地址是______。

A.208B.210C.211D.212

55.有以下程序: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

56.以下定义语句中正确的是

A.chara='A'b='B';

B.floata=b=10.0;

C.inta=10,*b=&a;

D.float*a,b=&a;

57.用树形结构表示实体之间联系的模型的是

A.关系模型B.网状模型C.层次模型D.以上三个都是

58.有程序段:int*p,a,b=1;p=&a;*p=10;a=*p+b;执行该程序段后,a的值是()

A.12B.11C.10D.编译出错

59.已知i、j、k为int型变量,若要从键盘输入2、3、4<CR>,使I、j、k的值分别为2、3、4,下列正确的输入语句是()。

A.scanf("%3d,%3d,%3d",&i,&j,&k);

B.scanf("%d,%d,%d",&i,&j,&k);

C.scanf("%d%d%d",&i,&j,&k);

D.seanf("i=%d,j=%d,k=%d",&i,&j,&k);

60.下列标识符不是关键字的是()。

A.breakB.charC.SwitchD.return

四、选择题(20题)61.若有定义语句:inta=3,b=2,c=1;以下选项中错误的赋值表达式是()。

A.a=(b=4)=3;B.a=b=c+1;C.a=(b=4)+c;D.a=1+(b=c=4);

62.有以下程序

#include<stdio.h>

#defineP24;

#defineS(x)P*x+x;

main()

{inta=2,b=2;

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

}

程序的运行结果是

A.程序编译运行时报错,无法输出B.54

C.96D.100

63.以下选项中可用做C程序合法实数的是()。

A..leOB.3.0e0.2C.E9D.9.12E

64.有以下程序:

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

A.9B.7C.5D.3

65.有以下程序

66.软件生命周期中花费时间最多的阶段是

A.详细设计B.软件维护C.软件编码D.软件测试

67.若有下列定义(设int类型变量占2个字节):inti=8,j=9;则下列语句:printf("i=%%d,j=%%d\n",i,j);输出的结果是()。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

68.

69.以下选项中,能用作数据常量的是()。

A.115LB.0118C.1.5elD.0115

70.设有定义:longx=-123456L;则以下能够正确输出变量x值的语句是_______。

A.printf(“x=%d\n”,x)

B.printf(“x=%ld\n”,x)

C.printf(“x=?l\n”,x)

D.printf(“x=%D\n”,x);

71.有如下程序段:inta=14,b=15,x;charc=A;x=(a&&b)&&(c<B):执行该程序后,x的值为()。A.trueB.falseC.0D.1

72.23.若有下面的程序段

chars[]="china";char*p;p=s;

则下列叙述正确的是

A.s和p完全相同B.数组s中的内容和指针变量p中的内容相等

C.s数组长度和p所指向的字符串长度相等D.*p与s[0]相等

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

A.1,2,3.4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.2,3,1,6,8,7,5,4,10,9,

D.10,9,8,7,6,1,2,3,4,5,

74.(29)有以下程序

#include<stdio.h>

main()

{ints;

scanf("%d",&s);

while(s>0)

{switch(s)

{case1:printf("%d",s+5);

case2:printf("%d",s+4);break;

case3:printf("%d",s+3);

default:printf("%d",s+1);break;

}

scanf("%d",&s);

}

}

运行时,若输入123450<回车>,则输出结果是

A)6566456

B)66656

C)66666

D)6666656

75.有以下程序:

#include<stdio.h>

main()

{inta=2,b;

b=a<<2;printf("%d\n",b);

}

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

A.2

B.4

C.6

D.8

76.以下程序的输出结果是()。main{inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

77.

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

main

{charstr[]1-10]={"china","beijing"),*p=str;

printf("%s\n",p+10);

}

A.ChinaB.BeijingC.ngD.ing

78.

若有下列定义和语句:

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

79.

80.

五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:根据输人的三条边长(整形),判断能否构成三角形;构成的是等边三角形还是等腰三角形。若能构成等边三角形函数,返回3;若能构成等腰三角形函数,返回2;若构成=三角形函数,返回l;若不能构成三角形函数返回0。请修改函数fun()中的错误,得出正确的结果。注意:不要改动main()函数,不能增行或减行,也不能更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写一个函数proc(),它的功能是:比较2个字符串的长度(不得调用C语言中求字符串长度的函数),函数返回较长的字符串。若2个字符串长度相等,则返回第1个字符串。例如,若输入jiangxi<;Enter>;beijing<;Enter>;则函数返回jiangxi。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.D

2.B

3.D

4.D程序调试的任务是诊断和改正程序中的错误。

5.DD。【解析】本框的PasswordChar属性用来指定文本框是显示用户输入的字符还是显示占位符,指定用做占位符的字符。

6.A

7.D解析:文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,以此为基础的数据处理存在3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。注意:文件系统和数据库系统各自的特点,人工管理阶段及数据库系统三代的特点。

8.C本题考查了两层for循环。外层循环增量i的值作为内层循环执行次数的值使用。

9.A

10.D

11.B解析:本题中,逻辑非“!”运算符比不等于“!=”运算符优先级高,因此第一次循环时!x!=0的运算结果为真,s的运算结果为1;第二次循环时!x!=0的运算结果为假,循环结束,输出s的结果为1。

12.B解析:—个函数可以带回—个整型值、字符值、实型值等,但也可以带回指针型数据,即地址。本题的定义中,包括括号和*号,由于()优先级高于*。故它是—个返回整型指针的函数。

13.A当执行gets(ss)后,ss数组中的元素为ABC,再执行strcat(ss,"6789"),strcat的作用,是把6789连接到了ss数组后面,执行完后SS数组为ABC6789,故选择A选项。

14.B解析:在主函数中,第—次调用fun函数,将变量b,c的值传给形参x,y,在fun()函数中执行if语句,判断b和c的值是否相等,由于在主函数中赋初值b=5,c=6,所以判断条件不满足,执行else语句,返回表达式(x+y)/2的值,即:(5+6)/2,因为参数的类型都为int型,所以结果也为整型:5,第二次调用时8和5也不相等,所以返回值为6,因此,选项B是正确的。

15.D

16.A

17.D解析:要想使程序输出是25,则j-40=25,j=65,而j初值是50,所以填入for循环中的语句,使引用的数组元素累加为65-50=15即可。

18.B数据流图是系统逻辑模型的图形表示,从数据传递和加工的角度,来刻画数据流从输入到输出的移动变化过程,它直接支持系统的功能建模。本题答案为B选项。

19.A根据C语言运算符的优先级与结合性,先计算a/b,结果为l,再将a/b的结果与C做按位与运算,即l与2做按位与运算,其结果为0。

20.D媒体分为感觉媒体、表示媒体、存储媒体、传输媒体和表现媒体五种,“多媒体技术”中的媒体强调的是感觉媒体。

21.242424

22.字节字节

23.模块化模块化

24.EXCHANGE(zxy)或EXCHANGE(zxy);EXCHANGE(z,x,y)或EXCHANGE(z,x,y);

25.1717解析:bteak语句只能在循环体和switch语句体内使用,当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。当break出现在循环体中,但不在switch语句体内时,则在执行break后,跳出本层循环体。而continue语句的作用时结束本次循环;即跳过本次循环中余下尚未执行的语句,接着再一次进行循环的条件判定。本题中首先定义了一个变量x并赋初值15,然后判断循环条件“x>5&&x<50”,即“x>5&&x<50”,为真,执行循环体。语句“x++;”执行后,x的值变为16,“x/3”的值为5为真,执行其后的语句“x++;”,x的值变为17,执行语句“break”,退出循环,输出x的值为17。

26.c=getchar()

27.852852解析:循环前,变量y的值为9,其中的循环语句在y大于0情况下循环,每次循环后y的值减1。循环体是当y能被3整除时输出表达式--y,输出的是减1后的y值。这样,第一次循环因y为9,能被3整除,输出8,y也变成8。又经两次循环,y的值变为6,又让y减1变成5,并输出5;又经两次循环,y的值变成3,让y减1变成2,输出2;再经两次循环后,y的值变成0,结束循环。所以程序输出852。

28.voidfun(doubleb[10][22])voidfun(doubleb[10][22])解析:本题答案:voidfun(doubleb[10][22])。

29.1010解析:整型指针最初被赋的值是数组arr的头指针,即指向数组的第一个元素30,p++后,指针指向数组的下一个元素,即*p=arr[1]=25,在执行*(p+3)时,则相当于a[1+3],即10。因此,输出应为100。

30.HOWhowdoyoudo

31.封装封装

32.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本题要求将字符串str中的字符用冒泡排序算法从大到小排列,其实现过程是将相邻两个字符进行比较,如果当前字符小于下—个字符,则通过中间变量temp将字符两两交换,所以第一空应填:str[i],第二空应填:str[i+1]。最终打印输出得到的字符串str,所以第三空应填:'%s',str。

33.30253025解析:本题考核的知识点是变量的存储属性和算术运算的应用。本题涉及了自动变量、静态变量和外部变量。外部变量是定义在所有函数之外的变量,本题中inta=5定义了一个外部变量a,它是一个全局变量,即作用域是从定义的位置开始到本文件的结束;静态变量的存储空间在程序的整个运行期间是固定的(static),本题函数fun()中staticinta=10定义个一个静态变量a,此静态变量a是个静态的局部变量,即它的值只能在本函数中使用;自动变量是C程序中使用最多的一种变量,它的建立和撤消都是由系统在程序执行过程中自动进行的,auto是自动变量的存储类别标识符,如果省略auto,系统隐含认为此变量为auto,本题中main()中intc=20定义了一个自动变量c,此自动变量c是个静态的局部变量.算术运算中a+=b++相当于a=a+b,b=b+1.所以,在第一个ptine('%d',a)中a=a+b=10+20=30,第二个printf('%d',a)中a=a+c=5+20=25,即输出3025。

34.length++i<lengthlength++\r\ni<length解析:第—个循环极有可能是计算串的长度,在i<=length时字符才被删除,被删除的是从第i个到第i+n或最后一个间的所有字符。删除前,应判断i<=length。由于已经进行了-i运算,故实际应填入i<length。

35.*2*4*6*8**2*4*6*8*解析:程序中指针p指向数组a,while(*P)语句的循环条件是*p!=\'\\0\',在循环体中,当i=0,2,4,6,8时,i%2=0,执行*p=\'*\',即a[i]=\'*\',继续执行p++;i++;使i为奇数;当i=1,3,5,7时,i%2=1,继续执行p++;i++;使i为偶数。可见,程序在字符串'123456789',的下标为偶数的位置上赋值\'*\',代替原字符串中的1,3,5,7,9。所以,程序输出结果为*2*4*6*8*。

36.11解析:①“sizeof'、“%”、“>”、“<<”、“*=”,运算符的优先级顺序为:“*=”→“>”→“<<”→“%”→“sizeof”;②位运算的优先级顺序为:“~”→“<<”→“>>”→“&”→“^”。(b=2)>(c=4)不成立,逻辑为假,所以n=0;(a=3)!=(b=2)成立,逻辑为真,所以m=1。

37.3030解析:考查for循环的使用。题目中for(;;)表示:for循环的初始化表达式,条件表达式和修正表达式都省略了,表示进行for循环和for循环的终止都没有限制。

38.-16-16解析:将赋值运算符右侧的“表达式”的值赋给左侧的变量,并且赋值运算符按照“自右而左”的结合顺序,本题表达式应先算m的值为10,再运算y的值为8,最后计算y=y+(-8)=-8+(-8)=-16。

39.&s1&s2

40.strucklink*nextstrucklink*next解析:结构体变量构成链表要求结构体中必须有一个指向该结构体变量自身的指针用来指明链表的下一个结点。注意:结构体变量的定义及其成员变量的引用。

41.D解析:用fseek函数可以实现改变文件的位置指针,从而实现对文件的顺序和随机读写。

42.B解析:本题中如果printf函数输出为2,需要执行两次s+=1语句,第一次执行完循环语句后得s=1、a=1-2=-1,第二次执行完循环语句后得s=1+1=2、a=-1-2=-3,所以正确答案为-3。

43.B解析:在一维数组中要注意的是作为下标表达式的常量表达式的值必须是大于等于0,选项B)中定义有5个元素,但赋值时有6个元素,所以是错误的。

44.A解析:本题考核的知识点是指针变量作为函数的参数和递归函数的简单使用。函数fun()中有3个参数,参数a为一个指针变量,接收的实参可以是数组名,参数i和j分别表示数组元素的下标,当下标i小于下标j时,a[i]和a[j]交换,然后对自身进行调用,可见这是一个递归函数。其实现的功能是把数组a,从下标为i的元素到下标为i的元素之间的所有元素反序存放。在主函数中调用fun()函数,把a数组从a[0}到a[5]之间的所有元素反序存放,最后输出从a[0]到a[5]的值,因此输出的值为6、5、4、3,2、1,所以,A选项为所选。

45.C解析:数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共事”之特点。

46.D解析:一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,因此,数据的逻辑结构与存储结构不一定是一一对应的。选项A中的说法是错误的。虽然计算机的存储空间是向量式的存储结构,但由于一种数据的逻辑结构根据需要可以表示成多种存储结构,例如,线性链表是线性表的链式存储结构。一般来说,性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的。因此,数据的存储结构不一定是线性结构。选项B中的说法也是错误的。虽然程序设计语言中的数组一般是顺序存储结构,但是,利用数组也能处理非线性结构。例如,满二叉树与完全二叉树是非线性结构,但对于满二叉树与完全二叉树来说,根据完全二叉树的性质6,可以按层序进行顺序存储,即利用程序设计语言中的数组来存储,这样,不仅节省了存储空间,又能方便地确定每一个结点的父结点与左右子结点的位置。对于一般的二叉树来说,也可以将二叉树中每一个结点的左指针、右指针以及数据域分别用三个数组中的对应元素来存储,即实际上也是利用了程序设计语言中的数组来处理二叉树这样的非线性结构。选项C中的说法也是错误的。综上所述,选项A、B与C中的说法都是错误的。

47.C

48.C

49.A解析:本题主要考查定义结构体的几个特点:①结构的定义明确了结构的组成形式,定义了一种C语言中没有而用户需要的新的数据类型。与其他的数据类型不同,在程序编译的时候结构的定义并不会使系统为该结构分配内存空间,只有在说明结构变量时才分配内存空间;②结构体的成员名可以与程序中的变量名相同;⑧结构体中的成员可以单独使用,它的作用相当于普通变量;④结构体可以嵌套定义。

50.D解析:考查对结构体成员的引用方法。结构体成员的引用可以用'结构体变量名.成员名'或者'结构体变量指针->成员名'两种方式来引用。

51.C

52.A解析:本题考查函数调用时的参数传递。通过函数abc的执行,将字符串中的字母a去掉,保留剩下的。由于是通过指针调用,所以改变字符串的结果。

53.A解析:文件尾测试函数feof()的应用,读取文件时,当文件中的数据全部读完后,文件位置指针将位于文件的结尾。此时如果读数据,将会出现错误。为了保证读写数据的正确性,需要进行文件尾测试,文件尾测试使用函数feof(),它的功能是测试fp指向的文件是否到达文件尾。若到达文件尾,返回值为非0,否则返回值为0。在本题中fP指向的某文件还没有到了文件尾,因此返回0。

54.B解析:顺序结构中,第n个元素的地址为An=A0+(n-1)*L(A为地址,L为元素长度)。

55.D

56.C解析:选项A中定义两个变量a和b,并赋初值,C语言中可以同时定义多个变量,但变量之间必须用“,”隔开,显然,选项A中少了一个逗号“,”,故选项A不正确;选项B中定义变量时用了连续的赋值语句,这在定义变量是不正确的,故选项B不正确,选项D定义一个指针,然后定义了一个变量并让这个变量的初值为该指针变量,显然这这时的指针变量还没初始化就被赋值给变量,是不对的,故选项D不正确,所以,4个选项中选项C符合题意。

57.C解析:在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有三种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。因此,本题的正确答案是C。

58.B

59.B解析:scanf函数的调用形式是:scanf(格式字符中,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符:“输入项地址表”是要输入的变量的地址。若在格式符中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符,其中的逗号也必须输入。

60.C解析:break、char、return、switch都是C语言中的关键字,switch不是。因为C语言区分字母的大小写。

61.A不能将变量或常量赋给一个表达式,所以A选项中(b=4)=3是错误的。

62.A本题主要考查宏的定义。宏定义用一个标识符来表示一个字符串,这个字符串可以是常量、变量或表达式。在宏调用中将用该字符串代换宏名。宏定义中,我们主要需要注意以下几点:

(1)同一宏名不能重复定义,除非这两个宏定义命令行完全一致。

(2)定义宏时,记得其结尾处不要用分号隔开。

(3)替换带参数的宏名时,一对圆括号必不可少,圆括号中实参个数应该与形参个数相同,若有多个参数,它们之间用逗号隔开。

(4)宏定义中的字符串应加括号,字符串中出现的形式参数两边也应加括号。

在本题中,定义宏时,出现了一个明显的错误,即在宏的定义后面用分号表示结束,这显然是不对的。程序编译时,系统会报错,无法完成输出。因此,本题的正确答案是A。

63.AC语言中实数的指数计数表示格式为字母e或者E之前必须有数字,且e或E后面的指数必须为整数。所以选项A正确。

64.D第一次循环时,k=1,在switch语句中,先执行default后面的语句,即c=c+k=1,因为没有break语句,所以不会跳出switch结构,会接着执行case2后面的语句,即c=c+1=2,然后跳出switch;第二次循环时,k=2,直接执行ease2后面的语句,即c=c+1=3,然后跳出switch语句,结束循环,执行输出语句。

65.A本题主要考查的是:数组名用作函数参数。数组名用作函数参数的情况类似于指针,属于传地址,故对形参数组元素的修改会同时修改实参。本题中,f()函数通过一个for循环语句,将传人数组的元素从下标2到下标5每个各自乘以2。因此,调用结束时,数组a中的内容为(l.2,6,8,10,12,7,8,9,101,故本题应该选择A)。

66.B软件生命周期被划分为许多阶段。其中,详细设计阶段的根本任务是确定每个模块的内部特征,即确定每个模块内部的执行过程,这个过程一般用时并不需要很多;软件编码的根本任务是根据设计的结果完成代码的编写工作,这个过程一般用时也不需很多;软件测试是对软件规格说明、软件设计和编码的最后复审,目的是在软件产品交付前尽可能多地发现软件中的错误和问题,费时相对也不多;软件维护是指在软件交付后,为了改正错误或满足用户新的需要而修改软件的过程,这个过程是软件生命周期的最后一个阶段,是持续时间最长的一个阶段,费时最多。

67.B本题考查函数的输出格式。在printf函数,格式说明符中有两个“%”说明;将第1个%后面的字符原样输出,并不输出其对应r的变量值。

68.A

69.A

70.B

71.D在C语言中,当表达式成立时用l表示,不成立时用0表示,即x=(a&&b)&&(c<B)=(14&&15)&&(A<B)=1&&1=1,故选择D选项。

72.D本题考查数组与指针的关系。C语言规定数组名代表数组中第一个元素的地址,题目中给出了p=s,即p=&s[0],所以有*p=s[0]。A选项说s和p完全相同是错误的,因为s是数组名,是一个常量,而p是一个指针变量;B选项说数组s中的内容和指针变量p中的内容相等也是错误的,因为数组s中的内容是字符串“china”,而指针变量p中的内容是数组的首地址;C选项说s数组长度和p所指向的字符串长度相等也是错误的,因为字符串存放在数组中时,至少需要多出一个存放字符串结束标识的单元。

73.A本题考查的是结构体成员的引用。在主函数main中定义了一个整型变量i和一个结构体变量s。f函数中,定义了一个结构体类型的指针P,外层循环变量i表示数组的第i个元素,内层循环变量j表示数组的第i+1个元素,调用f函数,通过指针变量P来引用结构体成员。执行if语句,当P一>a[i]>P一>a[j]时进行互换,其作用就是从小到大行排序,最后将排序后的元素输出:l,2,3,4,5,6,7,8,9,10,。

74.A

75.D\n本题考查运算符“<<”,b=a<<2,是左移2位,a=2,即b=2*2*2=8。

\n

76.C在“r=P;p=q;q=r;”三个语句是表示P与q交换,经过交换后P指向b的地址,q指向a的地址,因此最后输出为8,7,7,8,故选择C选项。

77.B

\n本题考查指针,由*p=str可知,指针P指向字符串数组的首地划。二维数组str为每个字符串分配的存储空间是10个字节,因此p+10指向str[1][0],输出的字符串就是数组中的第2个字符串。

\n

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

79.C

80.C

81.(1)错误:return1;

正确:return3;

(2)错误:return3;

正确:return1;

【解析】本题利用if语句判断三条边的关系,根据判断的结果,返回题干中要求的值。

(1)第一个标识下的语句“if(x==y&&y==z)”说明x,y,z三个值相等,即等边三角形,所以应该返回3,将“1”改成“3”。

(2)第二个标识下的else语句应该是除了等边及等腰三角形之外的三角形,所以应该返回1,应将“3”改成“1”。

82.

【解析】题目中要求不能用C语言中提供的求字符串长度的函数,可以通过移动字符串指针来计算字符串的长度。定义2个变量分别存放2个字符串的长度,最后比较2个字符串的长度,返回相对较长的那一个字符串。

2022-2023年山东省临沂市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下列排序方法中,()方法的比较次数与记录的初始排列状态无关。

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

2.当很频繁的对序列中部进行插入和删除操作时,应该选择使用的容器是()

A.vectorB.listC.dequeD.stack

3.

4.程序调试的任务是()。

A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误

5.为了隐藏在文本框中输入的信息,用占位符代替显示用户输入的字符,需要设置的属性是()。

A.ValueB.ControlSoureeC.InputMaskD.PasswordChar

6.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。

A.访问第i个结点(1<=i<=n)和求第i个结点的直接前驱(2<=i<=n)

B.在第i个结点之后插入一个新结点(1<=i<=n)

C.删除第i个结点(1<=i<=n)

D.将n个结点从小到大排序

7.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

8.有以下程序:#include<stdio.h>main(){intb[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;for(i=0;i<3;i++)for(j=1;j<=i;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是()。A.1B.3C.4D.0

9.以下函数的时间复杂度和空间复杂度为()A.T(n)=O(2^n),S(n)=O(n)

B.T(n)=O(1),S(n)=O(1)

C.T(n)=O(2^n),S(n)=O(1)

D.T(n)=O(n),S(n)=O(n)

10.

11.设有以下程序段:intx=0,s=0;whUe(!x!=0)s+=++x;printf("%d",s);则()。

A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次

12.定义int*swap()指的是______。

A.—个返回整型值的函数swap()

B.一个返回指向整型值指针的函swap()

C.一个指向函数swap()的指针,函数返回一个整型值

D.以上说法均错

13.当执行下面的程序时,如果输入ABC,则输出结罘是()。#include<stdio.h>#include<string.h>main(){charss[10]="1,2,3,4,5":gets(ss);strcat(ss,"6789");printf("%s\n",ss);}A.ABC6789B.ABC67C.12345ABC6D.ABC456789

14.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y)reurn(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

15.有如下程序该程序的输出结果是().A.A.12B.13C.14D.15

16.下列给字符数组初始化中,()是正确的。

A.chars2[3]="xyz";

B.chars1[]="abcd";

C.chars3[][3]={'a','x','y'};

D.chars4[2][3]={"xyz","mnp"};

17.若希望下列的程序运行后输出25,程序空白处的正确选项是()。

main()

{inti,j=50,a[]={7,4,10,5,8};

for()

j+=a[i];

primf("%d,j-40);

}

A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i

18.数据流图(DFD)的作用是()。

A.描述软件系统的控制流B.支持软件系统的功能建模C.支持软件系统的面向对象分析D.描述软件系统的数据结构

19.有以下程序:#include<stdio.h>main(){inta=2,b=2,C=2;print{("%d\n",a/b&c);}程序运行后的输出结果是()。A.0B.1C.2D.3

20.作为信息处理热点技术之一的“多媒体技术”中的媒体,强调的是()。

A.存储媒体B.表现媒体C.传输媒体D.感觉媒体

二、2.填空题(20题)21.若从键盘输入24,则以下程序输出的结果是()。

#include<stdio.h>

main()

{inta;

scanf("%d",&A);

if(a>20)printf("%d",A);

if(a>10)printf("%d",A);

if(a>5)printf("%d",A);

}

22.在计算机领域中,通常用英文单词“Byte'’表示【】。

23.结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。

24.下面程序的功能是实现变量x、y内容交换,请填空。

#defineEXCHANGE(a,b,c){a=b;b=c;c=a;}

main()

{intx=10,y=8,z;

【】

printf("%d,%d",x,y);}

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

main()

{intx=15;

while(x>10&&x<50)

{x++;

if(x/3){x++;break;}

elsecontinue;

}

printf(“%d\n”,x);

}

26.以下程序统计从终端输入的字符中大写字母的个数。用#号作为输入结束标志,请填空。#include<stdio.h>#include<ctype.h>main(){intnum[26],i;charc;for(i=0;i<26;i++)num[i]=0;();while(c!='#'}{if(isupperC)num[c-65]+=1;}for(i=0;i<26;i++)if(num[i])printf("%c,%d\n",i+65,num[i]);}

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

28.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】。要求形参名为b。

main()

{double[10][22];

intn;

......

fun(s);

}

29.以下程序的输出结果是【】。

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

printf("%d\n",*(p+3));

}

30.阅读程序:

main()

{charstrl[]="howdoyoudo",str2[10];

char*p1=strl,*p2=str2;

scanf("%s”,p2);

printf("%s”,p2);

printf("%s\n",p1);

}

运行上面的程序,输入字符串HOWDOYOUDO则程序的输出结果是【】。

31.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。

32.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

33.以下程序运行后的输出结果是______。

inta=5;

fun(intB)

{staticinta=10;

a+=b++;

printf("%d",A);

}

main()

{intc=20;

fun(C),

a+=C++;

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

}

34.函数delete(s,i,n)的作用是从字符串s中删除从第i个字符开始的n个字符,请填空。

voiddelete(chars[],inti,intn)

{intj,k,legth=0;

while(s[length])

【】;

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<length)

while(k<length)

s[j++]=s[k++];

s[j]='\0'

}

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

#include<stdio.h>

main()

{chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{if(i%2==0)*p='*';

p++;i++;

}

puts(a);

}

36.当m=1,n=2,a=3,b=2,c=4时,执行d=(m=a!=B)&&(n=b>C)后,m的值为()。

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

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

{printf("%d\n",s);

break;}

s+=i;}}

38.若有定义intm=5,y=2,则执行表达式y+=y-=m*=y后,y的值为【】。

39.下面程序调用fun函数动态分配两个整型存储单元,并通过形参传回这两个整型存储单元的地址给s1和s2,将程序补充完整。

main()

{

int*s1,*s2;

fun(【】);

}

intfun(【】);

{

*p=(int*)malloc(sizeof(int));

*q=(int*)malloc(sizeof(int));

}

40.已知存储结构如下所示,请填空。

datanext

structlink{chardata;

【】;

}node;

三、1.选择题(20题)41.利用fseek函数可以实现的操作是

A.改变文件的位置指针B.文件的顺序读写C.文件的随机读写D.以上答案均正确

42.有如下程序:main(){ints=0,a=1,n;scanf("%d",&n);do{s+=1;a=a-2;}while(a!=n)printf("%d\n",s);}若要使程序输出2,则应该从键盘输入的值是______。

A.-1B.-3C.-5D.0

43.以下不正确的定义语句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5]={0,1,3,5,7,9};

C.charc1[]={'1','2','3','4','5'};

D.charc2[]={'\x10','\xa','\x8'};

44.有以下程序voidfun{int*a,inti,intj){intt;if(i<j)t=a[i];a[i]=a[j];a[j]=t;fun(a,++i,--j);}main(){inta[]={1,2,3,4,5,6},i;fun(a,0,5);for(i=0;i<6;i++)printf("%d",a[i]);}执行后输出结果是

A.654321B.432156C.456123D.123456

45.下列有关数据库的描述,正确的是______。

A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件

46.下列叙述中正确的是()。

A.数据的逻辑结构与存储结构必定是一一对应的

B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构

C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构

D.以上三种说法都不对

47.设有以下定义的语句,则*(*(p+2)+1)的值为______。inta[3][2]={10,20,30,40,50,60},(*p)[2];p=a;

A.10B.30C.60D.40

48.下列程序的输出结果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);return(d);}main(){inta=3;printf("%d\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

49.下列说法错误的是()。

A.下列结构体定义时,占据了5个字节的空间structstudent{intnum;intage;charsex;}

B.结构体的成员名可以与程序中的变量名相同

C.对结构体中的成员可以单独使用,它的作用相当于普通变量

D.结构体可以嵌套定义

50.若有以下定义的语句

structstudent

{intage;

intnum;};

structstudentstu[3]={{1001,20},{1002,19},{1003,21}};

main()

{structstudent*p;

p=stu;

…}

则以下不正确的引用是

A.(p++)->numB.p++C.(*p).numD.P=&stu.age.

51.设有系和学生2个实体集,一个学生只能在一个系里注册,而一个系有很多学生。系和学生的关系是______。

A.多对多联系B.多对一联系C.一对多联系D.一对一联系

52.下列程序的运行结果为()。#include<stdio.h>voidabc(char*str){inta,b,i,j;for(i=j=0;str[i]!='\0';i++)if(str[i]!='a')str[j++]=str[i];str[j]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]%s",str);}

A.str[]=bcdefB.str[]=abcdefC.str[]=aD.str[]=ab

53.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为()

A.0B.1C.-1D.一个非0值

54.一个采用顺序存储方式的线性表中,若线性表的第一个元素的存储地址是200,每一个元素的长度是2,则第6个元素的地址是______。

A.208B.210C.211D.212

55.有以下程序: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

56.以下定义语句中正确的是

A.chara='A'b='B';

B.floata=b=10.0;

C.inta=10,*b=&a;

D.float*a,b=&a;

57.用树形结构表示实体之间联系的模型的是

A.关系模型B.网状模型C.层次模型D.以上三个都是

58.有程序段:int*p,a,b=1;p=&a;*p=10;a=*p+b;执行该程序段后,a的值是()

A.12B.11C.10D.编译出错

59.已知i、j、k为int型变量,若要从键盘输入2、3、4<CR>,使I、j、k的值分别为2、3、4,下列正确的输入语句是()。

A.scanf("%3d,%3d,%3d",&i,&j,&k);

B.scanf("%d,%d,%d",&i,&j,&k);

C.scanf("%d%d%d",&i,&j,&k);

D.seanf("i=%d,j=%d,k=%d",&i,&j,&k);

60.下列标识符不是关键字的是()。

A.breakB.charC.SwitchD.return

四、选择题(20题)61.若有定义语句:inta=3,b=2,c=1;以下选项中错误的赋值表达式是()。

A.a=(b=4)=3;B.a=b=c+1;C.a=(b=4)+c;D.a=1+(b=c=4);

62.有以下程序

#include<stdio.h>

#defineP24;

#defineS(x)P*x+x;

main()

{inta=2,b=2;

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

}

程序的运行结果是

A.程序编译运行时报错,无法输出B.54

C.96D.100

63.以下选项中可用做C程序合法实数的是()。

A..leOB.3.0e0.2C.E9D.9.12E

64.有以下程序:

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

A.9B.7C.5D.3

65.有以下程序

66.软件生命周期中花费时间最多的阶段是

A.详细设计B.软件维护C.软件编码D.软件测试

67.若有下列定义(设int类型变量占2个字节):inti=8,j=9;则下列语句:printf("i=%%d,j=%%d\n",i,j);输出的结果是()。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

68.

69.以下选项中,能用作数据常量的是()。

A.115LB.0118C.1.5elD.0115

70.设有定义:longx=-123456L;则以下能够正确输出变量x值的语句是_______。

A.printf(“x=%d\n”,x)

B.printf(“x=%ld\n”,x)

C.printf(“x=?l\n”,x)

D.printf(“x=%D\n”,x);

71.有如下程序段:inta=14,b=15,x;charc=A;x=(a&&b)&&(c<B):执行该程序后,x的值为()。A.trueB.falseC.0D.1

72.23.若有下面的程序段

chars[]="china";char*p;p=s;

则下列叙述正确的是

A.s和p完全相同B.数组s中的内容和指针变量p中的内容相等

C.s数组长度和p所指向的字符串长度相等D.*p与s[0]相等

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

A.1,2,3.4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.2,3,1,6,8,7,5,4,10,9,

D.10,9,8,7,6,1,2,3,4,5,

74.(29)有以下程序

#include<stdio.h>

main()

{ints;

scanf("%d",&s);

while(s>0)

{switch(s)

{case1:printf("%d",s+5);

case2:printf("%d",s+4);break;

case3:printf("%d",s+3);

default:printf("%d",s+1);break;

}

scanf("%d",&s);

}

}

运行时,若输入123450<回车>,则输出结果是

A)6566456

B)66656

C)66666

D)6666656

75.有以下程序:

#include<stdio.h>

main()

{inta=2,b;

b=a<<2;printf("%d\n",b);

}

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

A.2

B.4

C.6

D.8

76.以下程序的输出结果是()。main{inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

77.

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

main

{charstr[]1-10]={"china","beijing"),*p=str;

printf("%s\n",p+10);

}

A.ChinaB.BeijingC.ngD.ing

78.

若有下列定义和语句:

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

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

则输出

温馨提示

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

评论

0/150

提交评论