c语言程序设计试题2014,2014年全国计算机等级二级C语言程序设计考前预测 1

一、选择题(每小题1分,共40分)

1、能正确表示“当x的取值在[1,10]和[100,11O]范围内为真,否则为假”的表达式是(  )。

A.(x>=1)&&(x<=10)&&(x>=100)&&(X<=110)

B.(x>=1)&&(x<=10)||(x>=100)||(x<=110)

C.(x>=1)&&(x<=10)||(x>=100)&&(x<=110)

D.(x>=1)||(x<=10)&&(x>=100)||(x<=110)

2、下述程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,则程序空白上应该填写的是(  )。

#include

maln()

{char s1[]=”chinese”,s2[]=”japanese”;

int i;

{or(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)

if(s1[i]==s2[i]&&i<7)

A.putchar(s2[i]);putchar(i)

B.puts(sl[i],i)

C.print[(”%c%d\n”,s2[i],i)

D.printf(”%c”,sl[i]);print[(”%d\n”,i)

3、有以下程序:

#inrllldp

maln()

{ char ch;

oh='A'+'5'-'3':

printf(”%d,%c\n”,ch,ch);

}

程序的输出结果是( )。

A.67,C

B.B,C

C.c,D

D.不确定的值

4、下列说法正确的是( )。

A.在c语言中,可以使用动态内存分配技术定义元素个数可变的数组

B.在C语言中,数组元素的个数可以不确定,允许随机变动

C.在C语言中,数组元素的数据类型可以不一致

D.在C语言中,定义一个数组后,就确定了它所容纳的元素的个数

5、

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

A.一种数据的逻辑结构可以有多种存储结构

B.数据的存储结构与数据的处理效率无关

C.数据的存储结构与数据的处理效率密切相关

D.数据的存储结构在计算机中所占的空间不一定是连续的

6、有以下程序:

main()

{ int x,i;

for(i=l;i<=50;i++)

{x=i;

if(x%2=0)

if(x%3=0)

if(x%7=0)

printf(”%d,i)”;

}

}

输出结果是( )。

A.28

B.27

C.42

D.41

7、有以下函数:

char fun(char*p)

{return P;}

该函数的返回值是(  )。

A.无确功的值

B.形参P中存放的地址值

C.一个临时存储单元的地址

D.形参P自身的地址值

8、有以下程序:

#include

main()

{ int y=10;

for(;y>0;y——)if(y%3==0)

{printf(”%d”,——y);continue;

)

}

程序的输出结果是( )。

A.741

B.852

C.963

D.875421

9、在一个C语言源程序文件中所定义的全局变量,其作用域为(  )。

A.所在文件的全部范围

B.所在程序的全部范围

C.所在函数的全部范围

D.由具体定义位置和extern说明来决定范围

10、下列程序的输出结果是(  )。

#include

void p(int*x)

{printf(”%d”,++*x);

}

void main()

{ int y=3;

p(&y);

}

A.3

B.4

C.2

D.5

11、 有下列程序:

main()

{char p[]={'a','b','c'),q[]=”abc”;

printf(”%d%d\n”,sizeof(p),sizeof(q));

}

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

A.4 4

B.3 3

C.3 4

D.4 3

12、 设有下列程序段:

char str[]="HelloWorld":

char*ptr;

ptr=str ;

执行上面的程序段后,*(ptr+10)的值为( )。

A.'\O'

B.'0'

C.不确定的值

D.'0'的地址

13、 链表不具有的特点是(  )。

A.不必事先估计存储空间

B.町随机访问任意元素

C.插入、删除不需要移动元素

D.所需空间与线性表长度成正比

14、有以下程序:

main()

{ union

{char ch[2];

im d;

d一0x4321;

printf(”%x,%x\n”,s.ch[O],s.ch[1]);

)S;

在16位编译系统上,程序执行后的输出结果是(  )。

A.21,43

B.43,21

C.43,00

D.21,00

15、 有以下程序:

void funl(char*p)

{ char*q;

q=p

while(*q!='\0')

{(*q)++;q++;)

)

main()

{char a[]=(”Program”),“P;

p=&a[3];funl(p);

printf(”%s\n”,a);

)

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

A.Prohsbn

B.Prphsbn

C.Prqgsbn

D.Program

16、 设x=011050,则x=x801252的值是(  )。

A.0000001000101000

B.11111101000l1001

C.0000001011100010

D.1100000000101000

17、 若ch为char型变量,k为int型变量(已知字符a的ASCIl码是97),则执行下列语句后输出的结果为(  )。

oh='b';

k=10;

printf(”%x,%0,”,ch,ch,k);

printf(“k=%%d\n”,k);

A.因变量类型与格式描述符的类型不匹配,输出无定值

B.输出项与格式描述符个数不符,输出为0或不定值

C.62,142,k=%d

D.62,142,k=%10

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

main()

{int x=0.5;char z='a';

printf(”%d\n”,(x&1)&&(z

A.0

B.1

C.2

D.3

19、 执行下述程序后,输出的结果是(  )。

#include

#define S(X) X*X

void main()

{ int a=9,k=3,m=2;

a/=S(k+m)/s(k+m);

printf(”%d”,a);

}

A.1

B.4

C.9

D.0

20、 下列程序的运行结果为(  )。

#include

main()

{ struct date

{ int year,month,day;

)today;

printf(”%d\n”,sizeof(struct date));

A.8

B.6

C.10

D.12

21、 软件生命周期中,花费最多的阶段是(  )。

A.详细设计

B.软件编码

C.软件测试

D.软件维护

22、若有定义“float a=25,b,*p=&b;”,则下列对赋值语句“*p=a;”和“p=&a;”的正确解释为(  )。

A.两个语句都是将变量a的值赋予变量P

B.*p=a是使P指向变量a,而p=&a是将变量的值赋予变量指针P

C.*p=a是将变量a的值赋予变量b,而&a是使P指向变量a

D.两个语句都是使P指向变量a

23、 在Internet中,域名服务器的主要功能是实现(  )的转换。

A.IP地址到域名(主机名字)

B.域名到IP地址

C.主机IP地址和路由器IP地址之间

D.路由器IP地址之间

24、 若有以下定义:

char a;int b;

float C;double d;

则表达式a*b+b-c值的类型为(  )。

A.float

B.int

C.char

D.double

25、 以下函数返回a所指数组中最小的值所在的下标值:

fun(int*a,int n)

{ int i,j=0,P;

P=j;

for(i=j;i

if(aEi]

}

在下划线处应填入的是(  )。

A.i=P

B.a[p]=a[i]

C.p=j

D.p=i

26、 若有以下程序段,W和k都是整型变量:

w=k:

LB:if(w==0)go to LE;

W——:

printf(”*”)

goto LB:

LE;

则不能与上面程序段等价的循环语句是( )。 J

A.for(w=k;w!—0;w——)printf(”*”);

B.for(w=k;W;——w)printf(”*”);

C.w=k;

while(w——!=O)printf(”*”);

D.w=k:

W++;do{w——;printf(”*”);)while(w!=O);

27、 有以下结构说明和变量定义,指针p、q、r分别指向链表中的3个连续结点。

struct node

{int data;struct node*next;}*p,。q,*r;

现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能按要求完成操作的语句是(  )。

A.P->next=q->next;

B.p-next=p->next->next;

C.p->next=r;

D.p=q->next;

28、 若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2)表示的数组元素是(  )。

im t[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]-&t[k][o];

A.t[2]Eo]

B.t[2][2]

C.tell[2]

D.t[2][1]

29、 设x=015,则x=x^017的值是( )。

A.00001111

B.11111101

C.00000010

D.1 1000000

30、 若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。

A.p=a;

B.p[o]=a;

C.p[o]=&a[1][2];

D.p[l]=&a;

31、 利用fseek函数可实现的操作是(  )。

A.实现文件的顺序读写

B.改变文件的位置指针

C.实现文件的随机读写

D.以上答案均正确

32、 有以下程序:

#include

main()

{int aaE33E33-{(2),{4),(6)},i,*p=&.aa[o][o];

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

{i==0)aa[i][i+1]=*p+1;

else++P:

printf(”%d”,*p);

}

printf(”\n”);

}

程序的输出结果是(  )。

A.23

B.26

C.33

D.36

33、 若变量a、b、x、i都已正确定义并赋值,则以下符合C语言语法的表达式是(  )。

A.a+=a-=(b=4)*(a=3)

B.x%(-3);

C.a=a*3=2

D.v=float(i)

34、 下列程序的输出结果是f )。

int f1(int x,int y){return x>y?x:y;)

int f2(int x,int y){return x>y?Y:x;)

main()

{ int a=4,b=3,c=5,d=2,e,f,g;

e=f2(f1(a,b),f1(c,d));

f=f1(f2(a,b),f2(c,d));

g=a+b+c十d-e-f;

printf(”%d,%d,%d\n”,e,f,g);)

A.4,3,7

B.3,4,7

C.5.2,7

D.2,5,7

35、判断char型变量C是否为大写字母的最简单且正确的表达式是( )。

A.'A'<=c<='Z'

B.(c>='A')||(c<='Z')

C.('A'<=c)AND('Z'>=c)

D.(c>='A')&&(c<='Z')

36、算法的空间复杂度是指(  )。

A.算法程序的长度

B.算法程序中的指令条数

C.算法程序所占的存储空间

D.算法执行过程中所需要的存储空间

37、 定义结构体数组:

struct stu

{ int hum;

char nameE20];

}X[5]={1,”1, "LI",2,”ZHAO”,3,”WANG”,4,”

ZHANG”,5,”LIU”);

for(i=1;i<5;i++)

printf(”%d%c”,x[i].hum,x[i].name[2]);

以上程序段的输出结果为(  )。

A.2A3N4A5U

B.1I2A3H4I

C.1A2N3A4U

D.2H3A4H5I

38、 有以下程序:

#include

StrOCt stu

{ int hum;

char name[10];

int age;)

void fun(struct stu*p)

(print[(”%s\n”,(*p).name);)

main()

(

struct stu students[3]-}{9801.”Zhang”,20},

{9802,”Wang”,19},{9803,”Zhao”,18}}

fun(students+2):

}

输出的结果是( )。

A.Zhang

B.Zhao

C.Wang

D.18

39、 设变量a、b、e、d和y都已正确定义并赋值。若有以下if语句:

if(a

if(c==d) y=0;

else y=1:

该语句所表示的含义是(  )。

A.y=0,a

B.y=0,a

y=1,a≥b y一1,a≥b且c≠d

C.y=0,a

D.y=0,a

y=1,a

40、 有下列函数定义:

fun(float h)

{ printf(”%f,%f\n”,h,h*h);)

该函数的类型是(  )。

A.int类型

B.float类型

C.void类型

D.函数无类型说明,定义有错二、程序填空题(共18分)

41、

请补充函数proc(),该函数的功能是计算下面公式SN的值:24aa5d022e6ed0b2781219378ec3f16e.png

例如,当N=20时,SN=29.031674。

注意:部分源程序给出如下。

请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。

试题程序:

#include

#include

#include

double proc(int n)

{

double s=1.0,s1=0.0;

int k;

for(【1】 ;k<=n;k++)

{

s1=s:

【2】 ;

return 【3】 ;

}

void main()

{

int k=0;

double sum:

system(”CLS”):

printf(”\nPlease input N=”):

scanf(”%d”,&k);

sum=proc(k):

printf(”\nS=%Lf”.sum);

}

三、程序改错题(共24分)

42、

下列给定的程序中,函数proc()的功能是:用选择法对数组中的m个元素按从小到大的顺序进行排序。

例如,排序前的数据为:11 32 -5 2 14则排序后的数据为:-5 2 11 14 32

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

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

试题程序:

#include

#define M 20

void proc(int a[],int n)

{

int i,j,t,P;

//****found****

for(j=0;j

{

P=j;

for(i=j;i

if(a[i]

p=i;

t=a[p]];

a[p]=a[j];

//****found****

a[p]=t:

}

}

void main()

{

int arr[M]={11,32,-5,2,14).i,m=5;

printf(”排序前的数据:”);

for(i=0;i

printf(”%d”,arr[i]):

printf(”\n”);

proc(arr,m):

printf(”排序后的顺序:”);

for(i=0;i

printf(”%d”,arr[i]);

printf(”\n”);

}

}

四、程序设计题(共18分)

43、

请编写函数proc(),其功能是:将sir所指字符串中下标为偶数的字符删除.串中剩余字符形成的新串放在t所指数组中。

例如,当sir所指字符串中的内容为abcdefg。则在t所指数组中的内容应是bdf。

注意:部分源程序给出如下。

请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。

试题程序:

#include

#include

#include

#include.%strin9.h>

void proc(char*str,char t[])

{

)

void main()

{

,、hat str[100].t[100];

system(”CLS”):

printf(”\nPlease enter string str:”);

scanf(”%S”.str):

proc(sir,t);

printl'(”\nThe result is:%s\n”,t);

)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值