C语言习题及答案Word下载.docx

上传人:b****8 文档编号:22133600 上传时间:2023-02-02 格式:DOCX 页数:44 大小:30.87KB
下载 相关 举报
C语言习题及答案Word下载.docx_第1页
第1页 / 共44页
C语言习题及答案Word下载.docx_第2页
第2页 / 共44页
C语言习题及答案Word下载.docx_第3页
第3页 / 共44页
C语言习题及答案Word下载.docx_第4页
第4页 / 共44页
C语言习题及答案Word下载.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

C语言习题及答案Word下载.docx

《C语言习题及答案Word下载.docx》由会员分享,可在线阅读,更多相关《C语言习题及答案Word下载.docx(44页珍藏版)》请在冰豆网上搜索。

C语言习题及答案Word下载.docx

A、全局变量B、全程变量C、外部变量D、内部变量

12.若x是整型变量,表达式(x=10.0/4.0)的值是__D___。

A、2.5B、2.0C、3D、2

13.对于以下的变量定义,表达式__A____是正确的。

structnode{

chars[10];

intk;

}p[4];

A、p->

k=2B、p[0].s=“abc”C、p[0]->

k=2D、p->

s=‘a’

14.下列运算符中,优先级从高到低依次为__D___。

A、&

,!

,||B、||,&

C、&

,||,!

D、!

,&

,||

15.下列程序段的输出结果是__B___。

int*p,*q,k=1,j=10;

p=&

j;

q=&

k;

p=q;

(*p)++;

printf("

%d"

*q);

A、1B、2C、10D、11

16.以下各选项企图说明一种新的类型名,其中正确的是水量(C)

A)typedefv1int;

B)typedefv2=int;

C)typedefv1intv3;

D)typedefv4:

int;

17.以下选项中,非法的字符常量是(C)

A)‘\t’B)‘\17’C)“n”D)‘\xaa’

18.以下程序的输出结果是(C)

main()

{inti,a[10];

for(i=9;

i>

=0;

i--)a[i]=10-i;

printf(“%d%d%d”,a[2],a[5],a[8]);

}

A)258B)741C)852D)369

19.以下程序的输出结果是(B)

{charst[20]=“hello\0\t\\\”;

printf(%d%d\n”,strlen(st),sizeof(st));

A)99B)520C)1320D)2020

20.以下程序的输出结果是(D)

{inta,b;

for(a=1,b=1;

a<

=100;

a++)

{if(b>

=10)break;

if(b%3==1)

{b+=3;

continue;

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

A)101B)6C)5D)4

21.以下程序的输出结果是(D)

unionmyun

{struct

{intx,y,z;

}u;

}a;

{a.u.x=4;

a.u.y=5;

a.u.z=6;

a.k=0;

printf(%d\n”,a.u.x);

A)4B)5C)6D)0

22.以下程序段的输出结果是(A)

chars[]="

\\141\141abc\t"

printf("

%d\n"

strlen(s));

A)9B)12C)13D)14

23.以下程序的输出结果是(B)

{charch[3][5]={"

AAAA"

"

BBB"

CC"

};

\"

%s\"

\n"

ch[1]);

A)"

B)"

C)"

BBBCC"

D)"

24.不合法的main函数命令行参数表示形式是(C)

A)main(inta,char*c[])B)main(intarc,char**arv)

C)main(intargc,char*argv)D)main(intargv,char*argc[])

25.有以下程序

{char*s[]={"

one"

two"

three"

},*p;

p=s[1];

%c,%s\n"

*(p+1),s[0]);

执行后输出结果是(C)

A)n,twoB)t,oneC)w,oneD)o,two

26.设有如下说明

typedefstruct

{intn;

charc;

doublex;

}STD;

则以下选项中,能正确定义结构体数组并赋初值的语句是(A)

A)STDtt[2]={{1,'

A'

62},{2,'

B'

75}};

B)STDtt[2]={1,"

A"

62},2,"

B"

75};

C)structtt[2]={{1,'

},{2,'

}};

D)structtt[2]={{1,"

62.5},{2,"

75.0}};

27.若变量c为char类型,则能正确判断出c为小写字母的表达式是(D)。

A)'

a'

<

=c<

='

z'

B)(c>

)||(c<

C)('

=c)and('

>

=c)D)(c>

)&

(c<

二、填空题

1.设ch是字符型变量,判断ch为英文字母的表达式是:

(ch>

=’A’&

ch,=’Z’)||(ch>

=’a’&

ch<

=’z’)__。

2.计算下列分段函数的if语句是_if(x>

0)y=1;

elseif(x=0)y=0;

elsey=-1;

___。

1x>

y=0x=0

-1x<

3.表达式!

5的值是__1____。

4.下列程序段的输出结果是___12___。

%xn"

(0x19<

1)&

0x17);

5.下列程序段的输出结果是__k=4s=6___。

intk,s;

for(k=0,s=0;

k<

10;

k++)

if(s>

k)break;

elses+=k;

k=%ds=%d"

k,s);

6.下列程序段的输出结果是__15___。

#defineMIN(x,y)(x)<

(y)?

(x):

(y)

10*MIN(10,15));

7.下列程序在运行时可能会出错,原因是__指针变量s未赋初值____。

#include

voidmain()

{char*s;

gets(s);

puts(s);

8.下列程序段的输出是___60__。

intf(intm)

{staticintk=0;

ints=0;

for(;

=m;

k++)s++;

returns;

{ints1,s2;

s1=f(5);

s2=f(3);

%d%d\n"

s1,s2);

9.下列程序段的输出结果是__fgh___。

char*st[]={"

abcd"

efgh"

ijkl"

mnop"

%s"

*(st+1)+1);

10.用typedef定义一个含10个元素的整型数组ARR。

typedefintARR[10];

11.以下程序调用findmax函数返回数组中的最大值,请填空。

findmax(int*a,intn)

{int*p,*s;

for(p=a,s=a;

p-a

if(*p>

*s)s=p;

return(*s);

{intx[5]={12,21,13,6,18};

findmax(x,5));

三、程序(段)填空题

1.设变量x,y,z已正确定义和赋值,请仔细阅读程序段A,然后在程序段B中填入正确的内容,使程序段A和程序段B有相同的功能。

程序段A程序段B

x=x+y;

y=x-y;

x=x-y;

z=x+y;

z=x;

x=y;

y=z;

2.请仔细阅读函数f1,然后在函数f2中填入正确的内容,使函数f1和函数f2有相同的功能。

char*f1(chars[],chart[])

{intk;

for(k=0;

t[k]!

='

'

s[k]=t[k];

s[k]='

char*f2(char*s,char*t)

{char*p=s;

while((*p++=*t++)!

;

returns;

1.___D___是合法的用户自定义标识符。

A、b-bB、floatC、D、_isw

2.若变量已正确定义并赋值,表达式___B___不符合C语言语法。

A、a*b/c;

B、3.14%2C、2,bD、a/b/c

3.___C__是不正确的字符常量。

A、'

n'

B、'

1'

C、"

a"

D、'

101'

4.在C程序中,用___B__表示逻辑值“真”。

A、1B、非0的数C、非1的数D、大于0的数

5.__C____把x、y定义成float类型变量,并赋同一初值3.14。

A、floatx,y=3.14;

B、floatx,y=2*3.14;

C、floatx=3.14,y=x=3.14;

D、floatx=y=3.14;

6.若变量已正确定义,表达式___C___的值不是2。

A、2&

3B、1<

1C、a==2D、1^3

7.若变量已正确定义,语句“if(a>

b)k=0;

elsek=1;

”和__C____等价。

A、k=(a>

b)?

1:

0;

B、k=a>

b;

C、k=a<

=b;

D、a<

=b?

0:

1;

8.设变量定义为“inta,b;

”,执行下列语句时,输入_D____,则a和b的值都是10。

scanf("

a=%d,b=%d"

a,&

b);

A、1010B、10,10C、a=10b=10D、a=10,b=10

9.下列程序的输出结果是__D___。

fun(inta,intb,intc)

{c=a*b;

{intc;

fun(2,3,c);

printf(”%dn”,c);

A、0B、1C、6D、无法确定

10.在C程序中,若对函数类型未加说明,则函数的隐含类型为__A___。

A、intB、doubleC、voidD、char

11.表达式strlen(”hello”)的值是___B____。

A、4B、5C、6D、7

12.设变量定义为“inta[4];

”,则表达式__D____不符合C语言语法。

A、*aB、a[0]C、aD、a++

13.设变量定义为“intx,*p=&

x;

”,则&

*p相当于__A___。

A、pB、*pC、xD、*&

x

14.若变量已正确定义,_A___不能使指针p成为空指针。

A、p=EOFB、p=0C、p=’’D、p=NULL

15.对于以下的变量定义,表达式__D____不符合C语言语法。

structnode{

intlen;

char*pk;

}x={2,"

right"

},*p=&

pkB、*p.pkC、*p->

pkD、*x.pk

16.有如下程序

intrunc(inta,intb)

{return(a+b);

}

main0

{intx=2,y=5,z=8,r;

r=func(func(x,y),z);

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

该程序的输出的结果是(D)

A)12B)13C)14D)15

17.对于基类型相同的两个指针变量之间,不能进行的运算是(C)

A)<

B)=C)+D)-

18.有如下程序

longfib(intn)

{if(n>

2)return(fib(n-1)+fib(n-2));

elsereturn

(2);

{printf(“%d\n”,fib(3));

该程序的输出结果是(B)

A}2B}4C}6D}8

19.有如下定义

structperson{charname[9];

intage;

strictpersonclass[10]={“Johu”,17,

“Paul”,19

“Mary”,18,

“Adam16,};

根据上述定义,能输出字母M的语句是(D)

A)prinft(“%c\n”,class[3].mane);

B)pfintf(“%c\n”,class[3].name[1]);

C)prinft(“%c\n”,class[2].name[1]);

D)printf(“%^c\n”,class[2].name[0]);

20.以下所列的C语言常量中,错误的是(B)

A)0xFFB)1.2e0.5C)2LD)‘\72’

21.有以下程序段

intk=0

while(k=1)k++;

while循环执行的次数是(A)

A)无限次B)有语法错,不能执行

C)一次也不执行D)执行1次

22.以下程序的输出结果是(C)

A)0B)29C)31D)无定值

fun(intx,inty,intz)

{z=x*x+y*y;

{inta=31;

fun(5,2,a);

printf(“%d”,a);

23.下列程序段的输出结果是(A)

A)2143B)1212C)1234D)2112

voidfun(int*x,int*y)

{printf(“%d%d”,*x,*y);

*x=3;

*y=4;

{intx=1,y=2;

fun(&

y,&

x);

printf(“%d%d”,x,y);

24.当调用函数时,实参是一个数组名,则向函数传送的是(B)

A)数组的长度B)数组的首地址

C)数组每一个元素的地址D)数组每个元素中的值

25.以下程序的输出结果是(A)

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

longfun(intn)

{longs;

if(n==1||n==2)s=2;

elses=n-fun(n-1);

{printf(“%ld\n”,fun(3));

26.以下程序的输出结果是(B)

A)16B)2C)9D)1

#defineSQR(X)X*X

{inta=16,k=2,m=1;

a/=SQR(k+m)/SQR(k+m);

printf(“d\n”,a);

27.以下函数返回a所指数组中最小的值所在的下标值

fun(int*a,intn)

{inti,j=0,p;

p=j;

for(i=j;

iif(a[i]return(p);

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

A)i=pB)a[p]=a[i]C)p=jD)p=i

1.表示“x≥y≥z”的C表达式是___x>

=y&

y>

=z____。

2.下列程序段的输出是__1____。

%on"

010<

1^1);

3.下列程序段的输出是__6,90____。

floats;

for(k=0,s=0;

k<

7;

k++)

s+=k/2;

%d,%fn"

4.下列程序段的输出是__5,25_____。

#definef(a,b,x)a*x+b

%d,%dn"

f(3,2,1),f(6,5,f(3,2,1)));

5.下列程序段的输出是_*#*#____。

for(k=1;

5;

k++){

if(k%2)printf("

*"

);

elsecontinue;

#"

6.下列程序段的输出是__58___。

intf(intx)

{staticy=1;

y++;

x+=y;

returnx;

voidmain()

k=f(3);

%d%dn"

k,f(k));

7.下列程序段的输出是___5__。

int*p,*q,k=5,j=6;

j;

*p);

8.函数

voidf(chars[],chart[])

{intk=0;

while(s[k]=t[k])k++;

等价于

voidf(char*s,char*t)

{while(_*s++=*t++____);

9.下列程序段的输出是_ne,s____。

char*a[2]={"

"

},**p=a;

%s,"

*(p++)+1);

%cn"

**p-1);

10.下列程序编译后生成t.exe,运行tinputoutputzoooil的输出结果是__zoo___。

voidmain(intargc,char*argv[])

char*p=argv[1];

for(k=2;

kif(strcmp(argv[k],p)>

0)p=argv[k];

%sn"

p);

11.下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。

程序的输出结果是:

Afterswap5,3。

{inta=3,b=5;

swap(&

b);

Afterswap%d,%d"

a,b);

swap(int*p,int*q)

{intt;

t=*p;

*p=*q;

*q=t;

一、选择题(

(1)-(40)题每题1分,(41)-(50)题每题2分,共60分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)计算机的存储器完整的应包括

A)软盘、硬盘B)磁盘、磁带、光盘

C)内存储器、外存储器D)RAM、ROM

(2)计算机中运算器的作用是

A)控制数据的输入/输出B)控制主存与辅存间的数据交换

C)完成各种算术运算和逻辑运算D)协调和指挥整个计算机系统的操作

(3)软磁盘处于写保护状态时,其中记录的信息

A)绝对不会丢失

B)不能被擦除,但能追加新信息

C)不能通过写磁盘操作被更新

D)不能以常规方式被删除,但可以通过操作系统的格式化功能被擦除

(4)光盘根据基制造材料和记录信息的方式不同,一般可分为

A)CD、VCD

B)CD、VCD、DVD、MP3

C)只读光盘、可一次性写入光盘、可擦写光盘

D)数据盘、音频信息盘、视频信息盘

(5)在计算机系统中,可执行程序是

A)源代码B)汇编语言代码C)机器语言代码D)ASCII码

(6)计算机软件系统包括

A)操作系统、网络软件B)系统软件、应用软件

C)客户端应用软件、服务器端系统软件D)操作系统、应用软件和网络软件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 英语考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1