C语言程序设计_第1页
C语言程序设计_第2页
C语言程序设计_第3页
C语言程序设计_第4页
C语言程序设计_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

1:下面程序()。(每行程序前面的数字表示行号)。

1main()

2(

3inta[3]={3*0};

4inti;

5for(i=0;i<3;i++)scanf("%d”,&a[i]);

6for(i=l;i<3;i++)a[0]=a[0]+a[i];

7printf("%d\n",a[0]);

8)

E1.第3行有错误

C2.第7行有错误

匚3.第5行有错误

匕4.没有错误

2:C语言中while和do-while循环的主要区别是().

@1.do-while的循环体至少无条件执行一次

C2.while的循环控制条件比的循环控制条件严格

C3.do-while允许从外部转到循环体内

°4.do-while的循环体不能是复合语句

3:设变量a是整型,f是实型,i是双精度型,则表达式10+<a,+i*f

值的数据类型为()。

1.int

2.float

3.double

C4.不确定

4:在“文件包含”预处理语句的使用形式中,当#include后面的

文件名用括起时,寻找被包含文件的方式是()。

C1.直接按系统设定的标准方式搜索目录

E2.先在源程序所在目录搜索,再按系统设定的标准方式搜索

C3.仅仅搜索源程序所在目录

C4.仅仅搜索在前目录

5:下面有关for循环的正确描述是()

匚1.for循环只能用于循环次数已经确定的情况

匚2.for循环是先执行循环体语句,后判定表达式

匚3.在for循环中,不能用break语句跳出循环体

E4.for循环体语句中,可以包含多条语句,但要用花括号括起来

6:以下C程序正确的运行结果是().

main()

{inty=2456;

printf("y=%3o\n”,y);

printf("y=%8o\n”,y);

printf(“y=%#8o|n",y);

1.y=2456

2456

y=########2456

C2.y=4630

y=4630

y=########4630

C3.y=2456

y=2456

y=02456

E4.y=4630

y=4630

y=04630

7:有以下定义和语句,则以下引用形式不合法的是()。

Structs

{intil;

structs*i2,iO;

);

staticstructs

a[3]={2,&a[l],J\0',4,%a[2],&a[0],6,'\0'

*ptr;

ptr=a;

°1.ptr->i1++

匚2.*ptr->i2

3.++ptr->iO

4.ptr->il

8:在C语言中,char型数据在内存中的存储形式是()。

1.补码

2.反码

3.源码

4.ASCII码

9:设有以下说明语句

structstu

{inta;

floatb;

}stutype;

则下面的叙述不正确的是().

C1.struct是结构体类型的关键字

匚2.structstu是用户定义的结构体类型

E3.stutype是用户定义的结构体类型名

C4.a和b都是结构体成员名

10:若调用fputc函数输出字符成功,则其返回值是()。

1.EOF

C2.1

3.0

E4.输出的字符

1:对于for(表达式1;;表达式3)可理解为()

匚1.for(表达式1;1;表达式3)

区2.for(表达式1:1;表达式3)

匚3.for(表达式1;表达式1;表达式3)

匚4.for(表达式1;表达式3;表达式3)

2:以下正确的说法是().

E1.如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复

合语句中有效

匚2.在该函数中有效

C3.在本程序范围内均有效

匚4.非法变量

3:有如下程序,若要求al、a2、cl、c2的值分别为10、20、A、B,

正确的数据输入是().

main()

intal,a2;

charcl,c2;

scanf("%d%d”,&al,&a2);

scanf("%c%c”,&cl,&c2):

1.1020AB<CR>

C2.1020<CR>AB<CR>

C3.1020ABC<CR>

E4.1020AB<CR>

4:设有以下语句:

structst

{intn;

structst*next;

};

staticstructsta[3]

={5,&a[l],7,&a⑵,9,'\0'},*p;

p=&a=[0];

则以下表达式的值为6的是()o

01.p++->n

C2.p->n++

匕3.(*P).n++

4.++p->r)

5:下面四个选项中,均是合法整形常量的选项是().

1.

160

-Oxffff

Oil

匚2.-Oxcdf

01a

Oxe

C3.-01

986,012

0668

匚4.~0x48a

2e5

Ox

6;若要用fopen函数打开一个新的二进制文件,该文件要既能读也

能写,则文件方式字符串应是()。

“ab+”

K2.“wb+”

“rb+”

C4.“ab”

7:以下不正确的说法为().

匕1.在不同的函数中可以使用相同名字的变量

C2.形式参数是局部变量

C3.在函数内定义的变量只在本函数范围内有效

国4.在函数内定义的变量只在本函数范围内有效

8:以下在任何情况下计算平方数时都不会引起二义性的宏定义是

()。

l.#definePOWER(x)x*x

匚2.#definePOWER(x)(x)*(x)

C3.#definePOWER(x)(x*x)

E4.#definePOWER(x)((x)*(x))

9:若有以下宏定义:

ttdefineN2

ttdefineY(n)((N+1)*n)

则执行语句z=2*(N+Y(5));后的结果是()o

C1.语句有错误

E2,z=34

C3.z=70

C4.z无定值

10:下面四个选项中,均是不合法浮点数的选项是().

C1.160.

0.12

e3

E2.123

2e4.2

.e5

C3.18

123e4

0.0

C4.-e3

0.234

le3

1:已知函数的调用形式:fread(buffer,size,count,fp);其中

buffer代表的是()o

C1.一个整形变量,代表要读入的数据项总数

匚2•一个文件指针,指向要读的文件

E3.一个指针,指向要读入数据的存放地址

C4.一个存储区,存放要读的数据项

2:以下程序的运行结果是()..

typedefunion{longa[2];

intb[4];

charc[8];

)TY

TYour;

main()

{printf(<<%d\nw,sizeof(our));

匚1.32

C2.16

K3.8

匚4.24

3:

已有程序和输入数据的形式,程序中输入语句的正确形式应当为

()o(注:?表示空格,<CR>表示回车)

main()

{inta;floatf;

printf("\nlnputnumber:");

输入语句

printf(a=%d\n”,f,a);

)

Inputnumber:4.5??2<CR>

匚1.scanf(,&a,&f);

C2.scanf(,&f,&a);

C3.scanf(,&a,&f);

E4.scanf(,&f,&a);

4:根据下面的定义,能打印出字母M的语句是().

Structperson{charname[9];

intage;

);

structpersonclass[10]={"John”,17,

"Paul”,19,

“Mary”,18,

“adam”,16

);

Cl.printf(w%c\nM,class[3].name);

2.printf("%c\n",class[3].name[1]);

3.printf(w%c\nw,class[2].name[1]);

4.printf(a%c\nw,class[2].name[0]);

5:设有以下结构体类型:structst{charname[8];intnum;

floats[4];}student[50];并且结构体数组student中的元素都

已有值,若要将这些元素写到硬盘文件fp中,以下不正确的形式

是()。

L1.fwrite(student,sizeof(structst),50,fp);

C2.fwrite(student,50*sizeof(structst),1,fp);

@3.fwrite(student,25*sizeof(structst),25,fp);

°4.for(i=0;i<50;i++)

fwrite(student+i,sizeof(structst),1,fp);

6:以下程序的运行结果是()。

^defineMAX(A,B)(A)>(B)?(A):(B)

#definePARTY(Y)printf(rtY=%d\t",Y)

MainO

{inta=l,b=2,c=3,d=4,t;

T=MAX(a+b,c+d);

PRINT(t);

)

1.Y=3

2.存在语法错误

3.Y=7

4.Y=0

7:下面程序的运行结果是().

main()

structcmplx{intx;

inty;

}cnum[2]={l,3,2,7};

printf(“%d\n”,cnum[0].y/cnum[O].x*cnum[l].x);

)

1.0

2.1

3.3

4.6

8:下面四个选项中,均是正确的数值常量或字符常量的选项是().

1.

0.0

0x8f

8.9e

,&'

C2."a"

3.9E-2.5

lei

C3.

'3)

Oil

OxFFOO

Oa

E4,+001

Oxabcd

2e2

9:以下不正确的语句(设有int>山是()o

匚l.P*=3;

匚2.p/—q;

C3.p十=3;

@4.p&&=q;

10:若有以下说明和语句,则对中域的正确引用方式是()o

Structpupil

{charname[20;

intsex;

}pup,*p;

p=&pup;

1.p.pup.sex

2.p->pup.sex

3.(*p),pup.sex

4.(*p).sex

1:对以下说明语句的正确理解是()。

inta[10]={6,7,8,9,10);

CL将5个初值依次赋给a[l]至a[5]

E2.将5个初值依次赋给a[0]至a[4]

C3.将5个初值依次赋给a[6]至a[10]

C4.因为数组长度与初值的个数不同,所以此语句不正确

2:C语言中while和do-while循环的主要区别是().

@1.do-while的循环体至少无条件执行」一次

匚2.while的循环控制条件比的循环控制条件严格

匚3.do-while允许从外部转到循环体内

匚4.do-while的循环体不能是复合语句

3:已有变量定义和函数调用语句:inta=25;print_value(&a);

下面函数的正确输出结果是()。

voidprint_value(int*t)

{print("%d\n",++*x);}

C1.23

2.24

匚3.25

区4.26

4:以下使i的运算结果为4的表达式是()。

°1.inti=0,j=0;

(i=3,(j十十)十i);

匚2.inti=l,j=0;

j=i=((i=3)*2);

C3.inti=0,j=l;

(j==l)?(i=l);(i=3);

付4.inti=l,j—1;

i+=j十=2;

5:在C语言中,int、char和short三种类型数据在内存中所占用

的字节数()。

匚1.由用户自己定义

匚2.均为2个字节

匚3.是任意的

E4.有所用的机器的机器字长决定

6:表达式为X13的值是().

61.OxFFEC

匚2.0xFF71

3.0xFF68

4.0xFF17

7:若有说明:int*p,m=5,n;以下正确的程序段是()。

°1.p=&n;

scanf("%d”,&p);

C2.p=&n;

scanf(,*p);

C3.scanf(u%dv,&n);

*p二n;

@4.p=&n;

*p=m

8:在C语言中,一位数组的定义方式为:类型说明符数组名()o

匕L[常量表达]

匚2.整型表达式

匚3.[整型常量]或[整型表达式]

E4.[整型常量]

9:设pl和p2是指向同一个字符串的指针变量,c为字符变量,则

以下不能正确执行的赋值语句是()。

C1.c=*pl+p2;

@2,p2=c

C3.pl=p2

匚4.c=*pl*(*p2);

10:以下对二维整形数组a的正确说明是()。

1.inta[3][];

C2.floata(3,4);

付3.doublea[l][4];

C4.floata(3)(4);

1:sizeof(float)M()。

C1.一个双精度型表达式

E2.一个整型表达式

C3.一种函数调用

C4.一个不合法的表达式

2:

阅读以下程序,当输入数据的形式为:25,13,10<CR>,正确的输

出结果为()。

main()

{intx,y,z;

scanf(“%d%d%d",&x,&y,&z);

printf("x+y+z=%d\n”,x+y+z);

)

匚1.x+y+z=48

匚2.x+y+z=35

3.x+z=35

E4.不确定值

3:在位运算中,操作数每右移一位,其结果相当于().

1.操作数乘以2

2.操作数除以2

3.操作数除以4

4.操作数乘以4

4:下面对typedef的叙述中不正确的是().

匚1.用typedef可以定义各种类型名,但不能用来定义变量

E2.用typedef可以增加新类型

C3.用typedef只是将已存在的类型用一个新的标识符来代表

匚4.使用typedef有利于程序的通用和移植

5:在C语言中,int、char和short三种类型数据在内存中所占用

的字节数()。

CL由用户自己定义

C2.均为2个字节

C3.是任意的

E4.有所用的机器的机器字长决定

6:

以下程序的正确运行结果是(D).

ftdefineMAX10

inta[MAX],I;

main()

{printf("\n");subl();sub3(a);sub2();sub3(a);

)

sub2()

{inta[MAX],I,max;

max=5;

for(1=0;I<max;I++)a[I]=I;

)

subl()

{for(I=0;I<MAX;I++)a[j]=I+l;

)

sub3(inta[])

{intI;

for(I=0;I<MAX;I++)printf((iW,a[I]);

printf("\n");

)

C1.024681012141618

01234

C2.01234

024681012141618

3.0123456789

01234

E4.024681012141618

024681012141618

7:C语言共用体型变量在程序运行期间()

L所有成员一直驻留在内存中

2.只有一个成员驻留在内存中

3.部分成员驻留在内存中

4.没有成员驻留在内存中

8:下列运算符中优先级最高的是().

C1.v

E2.十

C3.%

C4.!=

9:编辑程序的功能是()。

1.建立并修改程序

C2.将c源程序编译成目标程序

C3.调试程序

C4.命令计算机执行指定的操作

10:设有程序段

t=0

while(printf())

{t++;

if(t<3)bread;

下面描述正确的是().

匚1.其中循环控制表达式与o等价

E2.其中循环控制表达式与'0'等价

C3.其中循环控制表达式是不合法的

1:以下正确的c语言标识符是()o

C1.%x

C2.a+b

E3.al23

4.test!

2:若有说明:inta[3][4];则数组a中各元素()。

C1.可在程序的运行阶段得到初值0

E2.可在程序的编译阶段得到初值0

C3.不能得到确定的初值

C4.可在程序的编译或运行阶段得到初值0

3:下面四个选项中,均是正确的数值常量或字符常量的选项是().

0.0

0x8f

8.9e

,&'

C2."a"

3.9E-2.5

lei

C3.

'3'

Oil

OxFFOO

Oa

E4.+001

Oxabcd

2e2

50.

4:对for(表达式1;;表达式3)可以理解为().

Cl.for(表达式1;0;表达式3)

E2.for(表达式1;1;表达式3)

C3.for(表达式1;表达式1;表达式3)

°4.for(表达式1;表达式3;表达式3)

5:下面程序段的运行结果是().

for(x=3,x<6;x++)printf((x%2)?(),x);

1,**3

##4

**5

C2.##3

**4

##5

C3.##3

**4##5

E4.**3##4

6:在16位IBM-PC机上使用C语言,若有如下定义:

uniondata

{inti;

charch;

doublef;

}b;

则共用体变量占用内存的字节数是().

Ci.i

C2.2

E3.8

C4.11

7:编辑程序的功能是()。

@L建立并修改程序

C2.将c源程序编译成目标程序

匚3.调试程序

4.命令计算机执行指定的操作

8:下面四个选项中,均是不合法转义字符的选项是().

C1.

,\,,,

'\xf,

E2.J\ioir

'\,

'\a,

C3.

‘\oir

'\}‘

J4.'\abc

'xlf'

9:以下程序的运行结果是().

#include“stdio.h”

mainO

{structdata

{intyear,month,day;

}today;

printf("%d\n",sizeof(structdata));

)

1.6

2.8

#include<stdio.h>

mainO

{intk=4,m=l,p;

p=func(k,m)jprintf("%d,”,p);

p=func(k,m);printf(a%d\nw,p);

)

func(inta,intb)

{staticintm=O,i=2;

i+=m+l;

m=i+a+b;

return(m);

)

E1.8,17

C2.8,16

3.8,20

4.8,8

1:若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,

sUM++,++num后sum的值为().

E1.7

C2.8

C3.9

C4.10

2:sizeof(float)是()。

C1.一个双精度型表达式

@2.一个整型表达式

匚3.一种函数调用

匚4.一个不合法的表达式

3:下面四个选项中,均是非法常量的选项是()。

K1.

'as'

-Offf

\0xa'

C2.<\\,

''01'

12,456

匚3.-0x18

01177

Oxf

4.Oxabc

'\O'

"a”

以下程序的正确运行结果是().

#include<stdio.h>

mainO

{intk=4,m=l,p;

p=func(k,m)jprintf(“%d,”,p);

p=func(k,m)jprintf("%d\n",p);

func(inta,intb)

{staticintm=O,i=2;

i+=m+l;

m=i+a+b;

return(m);

1.8,17

2.8,16

3.8,20

4.8,8

5:以下不正确的说法为().

C1.在不同的函数中可以使用相同名字的变量

匕2.形式参数是局部变量

匚3.在函数内定义的变量只在本函数范围内有效

E4.在函数内定义的变量只在本函数范围内有效

6:以下程序的运行结果是()

#include“stdio.h"

ftdefineFUDGE(y)2.84+y

ttdefinePR(a)printf(rt%dw,(int)(a))

^definePRINT1(a)PR(a);putchar()

main()

{intx=2;

PRINT1(FUDGE(5)*X);

匚1.11

E2.12

3.13

C4.15

7:C语言用()表示逻辑“真”值。

C1.true

2.t或y

E3.非零整数值

匚4.整数0

8:若有说明:inta[][4]={0,0};则下面正确的叙述是()。

C1.数组a中每个元素均可得到初值0

C2.二维数组a的第一维大小为1

C3.因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a

的行数为1

E4.只有元素a0][0]和可得到初值0,其余元素均得不到初值0

9;若有说明:inta[3][4]={0};则下面正确的叙述是().

1.只有元素a[0][0]可得到初值0

2.此说明语句不正确

3.数组a中各元素都可得到初值,但其值不一定为0

4.数组a中每个元素均可得到初值0

10:为了避免嵌套的if-else语句的二义性,c语言规定else总是

与()组成配对关系。

C1.缩排位置相同的if

C2.在其之前末配对的if

E3.在其之前未配对的最近的if

°4.同一行上的if

1:以下有关宏替换的叙述不正确的是()。

c1.宏替换不占用运行时间

C2.宏名无类型

C3.宏替换知识字符替换

E4.宏名必须用大写字母表示

2:以下程序的输出结果是()o

Structstu

{intx;

int*y;

)*P;

intdt[4]={10,20,30,40};

structstu

a[4]={50,&dt[0],60,

70,&dt[2],80,&dt[3]

);

main()

{p=a;

printf("%d,”,++p->x);

printf("%d,”,(++p)->x);

printf("%d\n”,++(*p->y));

)

1.10,20,20

C2.50,60,21

E3.51,60,21

C4.60,70,31

3:下面四个选项中,均是不合法浮点数的选项是().

C1.160.

0.12

e3

E2.123

2e4.2

.e5

C3.18

123e4

0.0

C4.-e3

0.234

le3

4:已知x=43,ch='A',y=0;则表达式(x>=y6&&ch('B'&&!

Y)的在值是().

Ci.o

匕2.语法错

E3.1

C4.“假”

5:设有以下说明语句

structstu

{inta;

floatb;

}stutype;

则下面的叙述不正确的是().

匚1.struct是结构体类型的关键字

匚2.structstu是用户定义的结构体类型

E3.stutype是用户定义的结构体类型名

C4.a和b都是结构体成员名

6:以下对C语言中共用体类型数据的叙述正确的是()。

CL可以对共用体变量名直接赋值

C2.一个共用体变量中可以同时存放其所有成员

E3.一个共用体变量中不可能同时存放其所有成员

C4.共用体类型定义中不能出现结构体类型的成员

7:下面程序的运行结果是().

#include<stdio.h>

main()

{inti,b,k=0;

for(i=l;i〈=5;i++)

{b=i%2;

while(b--->=0)k++;

)

printf("%d,%d",k,b);

)

C1.3,-1

C2.8,-1

C3.3,0

E4.8,-2

8:设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达

式中值为0的是().

C1」X,&&'y'

C2.x<=y

C3.xIIy+z&&y-z

@4.!((x<y)&&!zII1)

9:已知学生记录描述为

structstudent

{intno;

charname[20];

charset;

struct

{intyear;

intmonth;

intday;

}birth;

);

structstudents;

设变量s中的“生日”应是“1984年11月H日”,下列对生日的

正确赋值方式是().

C1.year=1984;

month=ll;

day=ll;

C2.birth.year=1984;

birth.month=ll;

birth.day=l1;

C3.s.year=1984;

s.month=ll;

s.day=11;

@4.s.birth.year=1984;

s.birth.month=ll;

s.birth.day=l1;

10:对for(表达式1;;表达式3)可以理解为().

C1.for(表达式1;0;表达式3)

E2.for(表达式1;1;表达式3)

C3.for(表达式1;表达式1;表达式3)

°4.for(表达式1;表达式3;表达式3)

1:已知x=43,ch='A',y=0;则表达式(x>=y6&&ch('B'&&!

Y)的在值是().

1.0

C2.语法错

E3.1

匕4.“假”

2:函数rewind的作用是().

1.使位置指针重新返回文件的开头

2.将位置指针指向文件中所要求的特定位置

3.使位置指针指向文件的末尾

4.使位置指针自动移动到下一个字符位置

3:以下有关宏替换的叙述不正确的是()。

C1.宏替换不占用运行时间

匚2.宏名无类型

C3.宏替换知识字符替换

E4.宏名必须用大写字母表示

4:若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,

sUM++,++num后sum的值为().

E1.7

C2.8

C3.9

匚4.10

5:若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数

时,表达式的值为“假”。则以下不能满足要求的表达式是().

匚1.A%2==1

匚2.!(入%2==0)

E3.!(A%2)

匚4.A%2

6:已有定义intk=2;int*ptrl,*ptr2;且ptrl和ptr2均已指向

变量k,下面不能正确执行的赋值语句是()。

°1.k=*ptrl+*ptr2;

2.ptr2=k;

C3.pl=*p2;

C4.*pl=p2;

7:C语言派程序的基本单位是()。

匕1.过程

E2.函数

C3.子程序

C4.标识符

8:当说明一个结构体变量时系统分配给它的内存是().

1.各成员所需内存量的总和

匚2.结构中第一个成员所需内存量

3.成员中占内存量最大者所需的容量

C4.结构中最后一个成员所需内存量

9:若有以下宏定义:

#defineN2

ttdefineY(n)((N+l)*n)

则执行语句z=2*(N+Y(5));后的结果是()o

C1.语句有错误

E2,z=34

C3.z=70

°4.z无定值

10:利用fseek函数的正确调用形式是().

匚1.改变文件的位置指针

匚2.文件的顺序读写

匚3.文件的随机读写

E4.以上答案均正确

1;在C语言中,引用数组元素时,其数组下标的数据类型允许是()

C1.整型常量

C2.整型表达式

E3.整型常量或整型表达式

C4.任何类型的表达式

2:设n=10,i=4、则赋值运算n%=i+l执行后,n的值是().

1.0

C2.3

匚3.2

C4.1

3:对以下说明语句的正确理解是()。

inta[10]={6,7,8,9,10);

CL将5个初值依次赋给a[l]至a[5]

E2.将5个初值依次赋给a[0]至a[4]

C3.将5个初值依次赋给a[6]至a[10]

C4.因为数组长度与初值的个数不同,所以此语句不正确

4:在“文件包含”预处理语句的使用形式中,当#5011(16后面的

文件名用括起时,寻找被包含文件的方式是()。

C1.直接按系统设定的标准方式搜索目录

E2.先在源程序所在目录搜索,再按系统设定的标准方式搜索

C3.仅仅搜索源程序所在目录

匕4.仅仅搜索在前目录

5:C语言结构体类型变量在程序执行期间().

EL所有成员一直驻留在内存中

C2.只有一个成员驻留在内存中

3.部分成员驻留在内存中

C4.没有成员驻留在内存中

6:C语言规定,数组名做实参时,它和对应形参之间的数据传递方

式是:

口1.用户指定传递方式

C2.无传递

C3.单向值传递

E4.地址传递

7:以下正确的说法是().

E1.如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复

合语句中有效

C2.在该函数中有效

C3.在本程序范围内均有效

C4.非法变量

8:判断char型变量ch是否为大写字母的正确表达式是().

'A'<=ch<='r

C2.(cb>=‘A,)&(chV='Z')

E3.(ch>='A,)&&(chV='T)

C4.('A'<=ch)AND('Z'>=ch)

9:编辑程序的功能是()o

1.建立并修改程序

C2.将c源程序编译成目标程序

C3.调试程序

匕4.命令计算机执行指定的操作

10:以下对C语言中共用体类型数据的叙述正确的是()。

C1.可以对共用体变量名直接赋值

C2.一个共用体变量中可以同时存放其所有成员

E3.一个共用体变量中不可能同时存放其所有成员

C4.共用体类型定义中不能出现结构体类型的成员

1:以下程序的运行结果是()。

#include"stdio.h"

main()

{union{longa;

intb;

charc;

}m;

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

)

C1.2

E2.4

C3.6

4.8

2:若要利用下面的程序片段使指针变量p指向一个存储整型变量的

存储单元,贝H]中应填入的内容是()0

Int*p;

P=[]malloc(sizeof(int));

°1.int

C2.int*

C3.(*int)

@4.(int*)

3:系统的标准输入文件是指()。

E1.键盘

C2.显示器

匚3.软盘

匚4.硬盘

4:函数ftell(fp)的作用是().

1.得到流式文件的当前位置

C2.移动流式文件的位置指针

C3.初始化流式文件的位置指针

C4.以上答案均正确

5:以下for循环的执行次数是().

for(x=0,y=0;(y=123)&&(x<4);x++);

1.是无限循环

C2.循环次数不定

@3.执行4次

匚4.执行3次

6:以下不能对二维整形数组a进行正确初始化的语句是()。

L1.inta[2][3]={0};

C2.inta[][3]={{l,2},{0}};

E3.inta[2][3]={{1,2},{3,4},{5,6});

C4.inta[][3]={l,2,3,4,5,6};

7:若有宏定义如下:

#defineX5

#defineYX+l

#defineZY*X/2

则执行以下printf语句后,输出结果是()。

Inta;a=Y;

Printf(“%d\n”,Z);

Printf("%d\n",一a);

7

6

2.12

6

3.12

5

E4.7

5

8:若x,y均定义为int型,z定义为double型,以下不合法的scanf

函数调用语句是().

C1.scanf(rt%d%dlx,%lev,&x,&y,&z);

°2.scanf(a%2d*%d%lfw,&x,&.y,&z);

C3.scanf(,&x,&Y);

@4.scanf(rt%x%o%6.2f“,&x,&y,&z);

9:选择出合法的if语句(设intx,y;)()0

E1.if(x!=y)if(x>y)printf("x>y\n");

elseprinf("xVy\n");elseprintf(MX==y'n");

C2.if(xi=y)

if(x>y)printf(wx>y\n")

elseprintf("xVy'n");

elseprintfx==y'n");

C3.if(x!=y)if(x>y)Printf(wx>y\n”);

elseprintf("xVy\n")

elseprintf("x==y'n");

匚4.if(x!=y)

lf(x>y)Printf("x>y\n");

elseprintf(vxVy'n")

elsePrintfx==y\n");

10:请读程序片段:

intx=20;

printf("%d\n",~x);

上面程序片段的输出结果是().

C1.02

C2.?20

E3.-21

C4.-11

1:若有以下说明和语句,则下面表达式中值为1002的是()o

Structstudent

{intage;

intnum;

);

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

structstudent*p;

p=stu;

C1.(p++)?>num

匚2.(p++)?>age

匚3.(*p).num

付4.(*++p).age

2:以下不正确的语句(设有int小力是()o

1.P*=3;

2.p/=q;

匚3.p十=3;

付4.p&&=q;

3:若有以下定义和说明:

#include"stdio.h"

structstd

{charnum[6];

charname[8];

floatmark[4];

}a[30];

FILE*fp;

设文件中以二进制形式存有10个班的学生数据,且已正

确打开,文件指针定

位于文件开头。若要从文件中读出30个学生的数据放入

a数组中,以下不能

此功能的语句是()。

匚1.for(i=0;i<30;i++)

fread(&a[i],sizeof(structstd),IL,fp);

C2.for(i=0;i<30;i++,i++)

fread(a+i,sizeof(structstd),IL,fp);

C3.fread(a,sizeof(structstd),30L,fp);

@4.for(i=0;i<30;i++)

fread(a[i],sizeof(structstd),IL,fp);

4:设有以下说明,则下面不正确的叙述是()。

Uniondata

{inti;

charc;

floatf;

}un;

CLun所占的内存长度等于成员f的长度

C2.un的地址和它的各成员地址都是同一地址

E3.un可以作为函数参数

C4.不能对un赋值,但可以在定义un时对它初始化

5:函数rewind的作用是().

E1.使位置指针重新返回文件的开头

匚2.将位置指针指向文件中所要求的特定位置

C3.使位置指针指向文件的末尾

C4.使位置指针自动移动到下一个字符位置

6:设有说明:charw;intx;floaty;doublez;则表达式w*x+z-y

值的数据类型为()。

C1.float

C2.char

3.itn

4.double.

7:选择出合法的if语句(设intx,y;)()。

E,z

1.if(x!=y)if(x>y)Printf(x>y\n");

elseprinfxVy\n");elseprintf("X==y\n");

C2.if(xi=y)

if(x>y)printf(Mx>八n")

elseprintfxVy'n");

elseprintfx==y'n”);

C3.if(x!=y)if(x>y)Printf(wx>y\n");

elseprintf(nxVy'n")

elseprintf("x==y'n");

C4.if(x!=y)

If(x>y)Printf(vx>y\nv;

elseprintf("xVy\n")

elsePrintf("x==y'n");

8:若调用fputc函数输出字符成功,则其返回值是()。

C1.E0F

C2.1

C3.0

E4.输出的字符

9:若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,

sUM++,++num后sum的值为().

E1.7

匚2.8

3.9

4.10

10:以下不正确的C语言标识符是()o

1.ABC

2.abc

3.abe

4.ab.c

1:设有以下说明:

structpacked

{unsignedone:1;

unsignedtwo:2;

unsignedthree:3;

unsignedfour:4;

}data;

则以下位段数据的引用中不能得到正确数值的是()

@1.data,one=4

C2.data.two=3

C3.data,three=2

C4.data.four=l

2:已知字母A的ASCII码为十进制数65,且c2为字符型,则执行

语句c2='A'+'6'-'3';后,c2的值为().

l.D

C2.68

匚3.不确定的值

C4.C

3:当说明一个共用体变量时系统分配给它的内存是()O

L各成员所需内存量的总和

2.结构中第一个成员所需内存量

3.成员中占内存量最大者所需的容量

4.结构中最后一个成员所需内存量

4:下面四个选项中,均是正确的八进制数或十六进制数的选项是

().

□1.

-10

0x8f

-011

C2.Oabc

-017

Oxc

E3.0010

-0x11

Oxfl

C4.0al2

-0x123

-Oxa

5:若有以下程序段:

inta[]={4,0,2,3,1},I,j,t;

for(I=li<5;I++)

{t=a[I];j=I-l;

while(j>=0&&t>a[j])

{a[j+I]=a[j];j—;}

则该程序段的功能是()。

匕L对数组a进行插入排序(升序)

E2.对数组a进行插入排序(降序)

匚3.对数组a进行选择排序(升序)

匚4.对数组a进行选择排序(降序)

6:判断char型变量ch是否为大写字母的正确表达式是().

□1.'A'<=ch<=,V

匚2.(cb>=,A')&(chV=,V)

E3.(ch>=,A')&&(chV='V)

C4.('A'<=ch)AND('Z'>=ch)

7:以下程序的运行结果是()。

#defineMAX(A,B)(A)>(B)?(A):(B)

#definePARTY(Y)printf(“Y=%d\t",Y)

Main()

{inta=l,b=2,c=3,d=4,t;

T=MAX(a+b,c+d);

PRINT(t);

)

匚1.Y=3

C2.存在语法错误

63,Y=7

匚4.Y=O

8:若有以下定义和语句;

structstudent

{intage;

intnum;

);

structstudentstu

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

main()

{structstudent*p;

p=stu;

则以下不正确的引用是()o

C1.(P++)?》num

匚2.p++

3.(*p).num

4.p=&stu.age

9:设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f

值的数据类型为()。

C2.float

3.double

C4.不确定

10:以下不是C语言的特点的是()

ei.c语言简洁、紧凑

E2.能够编制出功能复杂的程序

C3.C语言可以直接对硬件进行操作

C4.C语言移植性好

1:以下正确的说法是().

E1.如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复

合语句中有效

2.在该函数中有效

C3.在本程序范围内均有效

C4.非法变量

2:下面四个选项中,均是正确的数值常量或字符常量的选项是().

C1.

0.0

0x8f

8.9e

C2."a"

3.9E-2.5

lei

e3.

'3'

Oil

OxFFOO

0a

E4,+001

Oxabcd

2e2

50.

3:下面程序段的运行结果是()。

char*s="abcde”

s+=2;printf("%d",s);

C1.cde

匚2.字符'

E3.字符'c'的地址

匚4.无确定的输出结果

4:阅读以下程序及对程序功能的描述,其中正确的描述是()。

#include<stdio.h>

main()

(

file*in,*out;

charch,infile[10],outfile[10];

scanf(a%sw,infile);

printf("Entertheinfilename:\n");

scanf("%s”,outfile);

if(in=fopen(infile,wr"))==NULL)

printf("cannotopeninfile\nw);

exit(0);

)

if((out=fopen(outfile,ww"))==NULL)

(

Printf("cannotopenoutfile\nw);

Exit(0);

)

while(!Feof(in)fputc(fgetc(in),out);

fclose(in);

fclose(out);

1.程序完成将磁盘文件的信息在屏幕上显示的功能

2.程序完成将两个磁盘文件和二为一的功能

3.程序完成将一个磁盘文件复制到另一个磁盘文件中

4.程序完成将两个磁盘文件合并且在屏幕上输出

5:以下scanf函数调用语句中对结构体变量成员的不正确引用是

()。

Stuctpupil

{charname[20];

intage;

intsex;

}pup[5,]*p;

p=pup;

1.scanf(,pup[0].name);

2.scanf(""%d),&pup[0].age;

3.scanf(<<%dw,&(p0sex));

4.scanf("%d”,P->age);

6:若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数

时,表达式的值为“假”。则以下不能满足要求的表达式是().

1.A%2==1

匚2.!(入%2==0)

E3.!(A%2)

匚4.A%2

7:以下正确的描述是()。

1.C语言的预处理功能是指定完成宏替换和包含文件的调用

2.预处理指令只能位于C源程序文件的首部

3.凡是C源程序中行首以标识的控制行都是预处理指令

4.C语言的编译预处理就是对源程序进行初步的语法检查

8:fscanf函数的正确调用形式是()。

C1.fscanf(fp,格式字符串,输出表列);

C2.fscanf(格式字符串,输出表列,fp);

C3.fscanf(格式字符串,文件指针,输出表列);

E4.fscanf(文件指针,格式字符串,输入表列);

9:请读程序

#include<stdio.h>

ttdefineMUL(x,y)(x)*y

mainO

{inta=3,b=4,c;

c=MUL(a++,b++);

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

上面程序的输出结果是()。

E1.12

C2.15

匚3.20

C4.16

10:设有下面的程序段:

chats[]="china”;char*p;p=s;

则下列叙述正确的是()。

CLs和p完全相同

C2.数组S中的内容和指针变量P

温馨提示

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

评论

0/150

提交评论