C语言指出下列程序的错误,c语言易错题整理分享二

26.以下叙述中不正确的是:

A. C语言中的文本文件以ASCⅡ码形式存储数据

B. C语言中对二进制文件的访问速度比文本文件快

C. C语言中,随机读写方式不适用于文本文件

D. C语言中,顺序读写方式不适用于二进制文件

27.设有以下定义:

struct ss

{int info; struct ss *link;} x,y,z;且已建立如下图所示链表结构:

请写出删除点y的赋值语句是 x.link = y.link。

xyz

28.下列选项中非法的表达式是:

A.0<=x<100B.i=j==0

C.(char) (65+3)D.x+1=x+1;

29.若已定义的函数有返回值,则以下关于该函数的调用的叙述中错误的是:

A.函数调用可以作为独立的语句存在

B.函数调用可以作为一个函数的实参

C.函数调用可以出现在表达式中

D.函数调用可以作为一个函数的形参

30.有以下函数定义:

void fun(int n,double x) { …… }

若下列选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是:

A.fun(int y,double m);B.k=fun(10,12.5);

C.fun(x,n); D.void fun(n,x);

31.有以下程序的输出结果是:

void fun(char *a,char *b)

{a=b; (*a)++;}

main()

{char c1='A',c2='a',*p1,*p2;

p1=&c1; p2=&c2; fun(p1,p2);

printf("%c%c\n",c1,c2);

}

A.AbB.aaC.AaD.Bb

32.若程序中包含stdio.h,以下选项中,正确运用指针变量的程序段是

A.int *i=NULL;B.float *f=NULL;

scanf("%d",i);*f=10.5;

C.char t='m', *c=&t;D.long *L;

*c=&t; L='\0';

33.有以下程序执行的结果是:

char fun(char x,char y)

{if (x

return y;

}

main()

{char a='9',b='8',c='7';

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

}

A.函数调用出错B.8C.9D.7

34.有以下程序执行后输出结果是

#include 

int a=2;

int f(int *a)

{return (*a)++;}

main()

{int s=0;

{int a=5;

s+=f(&a); }

s+=f(&a);

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

}

A.10B.9C.8D.7

35.有以下程序执行后输出结果是

#define f(x) x*x

main()

{int i;

i=f(4+4)/f(2+2);

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

}

A.28B.64C.4D.3

36.有以下程序执行后输出结果是

#include 

struct STU

{char name[10];

int num;

int score;

};

main()

{struct STU s[5]={{"YangSan",0041,703},{"LiSiguo",0042,580},{"WangYin",

0043,680},{"Sundan",0044,550},{"PengHua",0045,537}},*p[5],*t;

int i,j;

for(i=0;i<5;i++)p[i]=&s[i];

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

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

if(p[i]->score > p[j]->score)

{t=p[i];p[i]=p[j];p[j]=t;}

printf("%d%d\n",s[1].score,(*p[1]).score);

}

A.550550B.680680C.580550D.580680

37.下面程序的运行结果是:

int f(int a[],int n)

{if(n>1)return a[0]+f(&a[1],n-1);

else return a[0];

}

main()

{int aa[3]={1,2,3},s;

s=f(&aa[0],3);

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

}

答案: 6

38.结构化程序有三种基本结构组成,三种基本结构组成的算法:

A.可以完成任何复杂的任务B. 只能完成部分复杂的任务

C.只能完成符合结构化的任务D. 只能完成一些简单的任务

39.有以下程序运行后输出结果是

main()

{int a[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q;

*q=*p+5;

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

}

A.运行后报错B.66C.611D.510

注:(指针q无指向)若是

main()

{int a[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q;

q=p+5;

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

}

则答案为C

40.有以下程序运行后输出结果是

main()

{char s[]="Yes\n/No",*ps=s;

puts(ps+4);

*(ps+4)=0;

puts(s);

}

A.n/NoB./No C.n/NoD.

YesYes Yes /No

/NoYes

注:在C语言中,所有指针变量都可以赋予“空”值,以下语句是等价的:

p=NULL;p=0;p='\0';*(ps+4)=0;等价于*(ps+4)= '\0'或*(ps+4)= NULL;

41.以下程序中,for循环体执行的次数是 4。

#define N 2

#define M N+1

#define K M+1*M/2

main()

{int i,n=0;

for(i=1;i

{...}

...

}

42.执行下面的程序段后,变量k中的值为

A)不定值 B) 0 C) 30 D) 10

int k=3, s[2];

s[0]=k; k=s[1]*10;

43.在C程序中,可把整型数以二进制形式存放到文件中的函数是

A) fprintf函数 B) fread函数 C) fwrite函数 D) fputc函数

44.下列程序执行后的输出结果是

A) -32767 B) FFFE C) -1D) -32768

main()

{ char x=0xFFFF; printf("%d \n",x--); }

45.若有定义: float w; int a, b; 则合法的switch语句是

A) switch(w)B) switch(a);

{ case 1.0: printf("*\n"); { case 1 printf("*\n");

case 2.0: printf("**\n"); case 2 printf("**\n");

}}

C) switch(b)D) switch(a+b);

{ case 1: printf("*\n"); { case 1: printf("*\n");

default: printf("\n");case 2: printf("**\n");

case 1+2: printf("**\n"); default: printf("\n");

}}

46.以下程序段的执行结果是

A) a=12 y=12 B) a=12 y=12 C) a=12 y=12D) a=12 y=12

a=14 y=16 a=16 y=28 a=14 y=26 a=14 y=44

a=16 y=20

a=18 y=24

int a, y;

a=10; y=0;

do

{ a+=2; y+=a;

printf("a=%d y=%d\n",a,y);

if(y>20) break;

} while(a=14);

47.语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是 (说明:'\b'是退格符←)

A) a\bre\'hi\'y\\\bouB) a\bre\'hi\'y\bou

C) re'hi'you D) abre'hi'y\bou

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值