C语言学习知识汇总题库.docx

上传人:b****8 文档编号:30155228 上传时间:2023-08-05 格式:DOCX 页数:26 大小:26.67KB
下载 相关 举报
C语言学习知识汇总题库.docx_第1页
第1页 / 共26页
C语言学习知识汇总题库.docx_第2页
第2页 / 共26页
C语言学习知识汇总题库.docx_第3页
第3页 / 共26页
C语言学习知识汇总题库.docx_第4页
第4页 / 共26页
C语言学习知识汇总题库.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

C语言学习知识汇总题库.docx

《C语言学习知识汇总题库.docx》由会员分享,可在线阅读,更多相关《C语言学习知识汇总题库.docx(26页珍藏版)》请在冰豆网上搜索。

C语言学习知识汇总题库.docx

C语言学习知识汇总题库

一.选择题(单项)

1.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符——。

A 必须为字母   B 必须为下划线

C必须为字母或下划线D可以是字母、数字和下划线中的任一种字符

2.下面4个选项中,均是C语言关键字的选项是——。

A autoenuminclude   B switchtypedefcontinue

CsignedunionscanfDifstructtype

3.下面4个选项中,均是不合法的用户标识符的选项是——。

A AP_0do   B floatla0_A

Cb-agotointD_123tempINT

4.在C语言中,int、char和short三种类型的数据在内存中所占用的字节数——。

A 由用户自己定义   B 均为2个字节

C是任意的D由所用机器的机器字长决定

5.下面4个选项中,均是合法浮点数的选项是——。

A +1e+15e-9.403e2   B -.6012e-4-8e5

C123e1.2e-.4+2e-1D-e3.8e-45.e-0

6.下面不正确的字符串常量是——。

A ˊabcˊ  B 〞12ˊ12〞

C〞0〞D〞〞

7.假设所有的变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是——。

A 7  B 8

C6D2

8.以下正确的叙述是——。

A 在C语言中,每行只能写一条语句

B 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数

C在C程序中,无论整数还是实数,都能被准确无误的表示

D在C程序中,%是只能用于整数运算的运算符

9.以下表达式值为3的是——。

A16-13%10B2+3/2

C14/3-2D(2+6)/(12-9)

10.设变量a是整型,f是实型,i是双精度型,则表达式10+ˊaˊ+i*f值的数据类型为——。

AintBfloat

CdoubleD不确定

11.在C语言中,char型数据在内存中的存储形式是——。

A补码B反码

C原码DASCⅡ码

12.设有说明语句:

charw;intx;floaty;doublez;

值的数据类型为——。

AfloatBchar

CintDdouble

13.在C语言中,要求运算数必须是整型的运算符是——。

A/B++

C!

=D%

14.在C语言中一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为——。

A0~255B0~32767

C0~65535D0~2147483647

15下面正确的字符常量是——。

A 〞c〞  B 〞\\〞

CˊWˊDˊˊ

16.已知各变量的类型说明如下:

intk,a,b;

 unsignedlongw=5;

doublex=1.42;

则以下不正确的表达式是——。

Ax%(-3)Bw+=-2

Ck=(a=2,b=3,a+b)Da+=a-=(b=4)*(a=3)

17.若定义语句:

inta=7;floatx=2.5;y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是——。

A2.500000B2.750000

C3.500000D0.000000

18.已知字母A的ASCⅡ码为十进制数65,且定义c2为字符型变量,则执行语句

c2=ˊAˊ+ˊ6ˊ-ˊ3ˊ;后,c2中的值为:

ADB68

C不确定的值DC

19.以下程序的运行结果是——。

#include

main()

{

intm=5,n=10;

printf(“%d,%d\n”,m++,--n);

}

A5,9B6,9C5,10D6,10

 

20.以下程序的运行结果是——。

#include

main()

{

inta=201,b=012;

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

}

A01,12B201,10C01,10D20,01

 

21.设有如下程序

#include

main()

{

charch1=’A’,ch2=’a’;

printf(“%c\n”,(ch1,ch2));

}

则下列叙述正确的为——

A程序的输出结果为大写字母A

B程序的输出结果为小写字母a

C运行时产生错误信息

D格式说明符的个数少于输出项的个数,编译出错

22.以下正确定义整型变量a,b和c并为其赋初值5的语句是——。

Ainta=b=c=5;Binta,b,c=5;

Cinta=5,b=5,c=5;Da=b=c=5;

23.设x,y均为float型变量,则不合法的赋值语句是——。

A++x;By=(x%2)/10;C

;Dx=y=0;

24.输入数据的形式是25,13,10<回车>,则程序的输出结果是——。

main()

{

intx,y,z;

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

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

}

Ax+y+z=48Bx+y+z=35Cx+z=35D不确定值

25.若有如下定义,则正确的赋值语句是——。

inta,b;floatx;

Aa=1,b=2,Bb++;Ca=b=5Db=int(x);

1.已知学生记录描述为

structstudent

{intno;

charname[20];

charsex;

struct

{intyear;

intmonth;

intday;}birth;};

structstudents;

设变量s中的“生日”应该是“1984年11月11日”,下列对“生日”的正确赋值方式是()

A.year=1984;

B.birth.year=1984;month=11;birth.month=11;day=11;birth.day=11;

C.s.year=1984;

D.s.birth.year=1984;s.month=11;s.birth.month=11;s.day=11;s.birth.day=11;

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

A.各成员所需内存的总和

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

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

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

3.设有以下说明语句

structstu

{inta;floatb;}stutype;则以下叙述不正确的是()

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

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

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

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

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

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

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

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

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

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

structdata

{intI;charch;doublef;}b;

则结构体变量b占用内存的字节数是()

A.1B.7C.8D.11

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

main()

{structdate

{intyear,month,day;}today;

printf("%d\n",sizeof(structdate));}

A.6B.8C.10D.12

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

structperson

{charname[9];

intage;};

structpersonclass[10]={"John",17,"Paul",19,"Mary"18,"adam",16};

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

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

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

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

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

main()

{structcmplx{intx;inty;}cnumn[2]={1,3,2,7};

printf("%d\n"),cnum[0].y/cnum[0].x*cnum[1].x;}

A.0B.1C.3D.6

9.若有以下定义和语句

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

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

structpupil

{charname[20];intage;intsex;}pup[5],*p;

p=pup;

A.scanf("%s",pup[0].name);B.scanf("%d",&pup[0].age);

C..scanf("%d",&(p->.sex));D.scanf("%d",p-age);

11.若有以下说明和语句:

structstudent

{intage;intnum;}std.*p;

p=&std;则以下对结构体变量std中成员age的引用方式不正确的是()

A.std.ageB.P->ageC.(*p).ageD.*p.age

12.若有以下程序段:

structdent

{intn;int*m;};

inta=1,b=2,c=3;

structdents[3]={{101,&a},{102,&b},{103,&c}};

main()

{structdent*p;p=s;……}则以下表达式值为2是()

A.(P++)->mB.*(P++)->mC.(*P).mD.*(++p)->m

13.设有以下语句:

structst

{intn;structst*next;};

structsta[3]={5.&a[1],7,&a[2],9,'\0'};*p;

p=&a[0];则以下表达式的值为6的是()

A.p++->nB.p->n++C.(*p).n++D.++p->n

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

structstudent

{intnum;intage;};

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

structstudent*p;

p=stu;

A.(p++)->numB.(++p)->numC.(*p).numD.(*++p).age

16.以下对结构体变量stul中成员age的非法引用的是()

structstrudent

{intage;intnum;}stul,*p;

p=&stul;

A.stul.ageB.student.ageC.p->ageD.(*p).age

17.设有以下说明和定义语句,则下面表达式中值为3的是()

structs

{intil;structs*12;};

structsa[3]={1,&a[1],2,&a[2],3,&a[0]},*ptr

ptr=&a[1];

A.ptr->il++B.ptr++->ilC.*ptr->ilD.++ptr->il

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

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

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

C.成员中占内存量最大者所需内存量

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

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

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

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

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

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

20.若有以下定义语句

uniondata

{intl;charc;floatf;}a;

intn;则以下语句正确的是()

A.a=5;B.a={2,'a',1.2};C.printf("%d\n",a.l);D.n=a;

21.设有以下语句,则下面不正确的叙述是()

uniondata

{intI;charc;floatf;}UN;

A.UN所占的内存长度等于成员f的长度

B.UN的地址和它的各成员地址都是同一地址

C.UN不可以作为函数参数

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

22.C语言共用体类型变量在程序运行期间()

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

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

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

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

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

#include

main()

{union

{longa;

intb;

charc;}m;

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

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

25.以下程序的运行结果是:

()

#include

unionpw

{inti;

charch[2];

}a;

main()

{a.ch[0]=13;

a.ch[1]=0;

printf("%d\n",a.i);}

A.13B.14C.208D.209

文件选择题:

1.下列哪个是字符写函数()。

A.fgetcB.fputcC.fgetsDfwrite

2.下列哪个是字符串读函数()。

A.fgetcB.fputcC.fgetsDfwrite

3.若要打开D盘上user文件夹下名为abc.txt的文本文件进行读、写操作,符合此要求的函数调用是()。

A.fopen("D:

\\user\\abc.txt","r")B.fopen("D:

\user\abc.txt","w")

C.fopen("D:

\\user\\abc.txt","r+")D.fopen("D:

\user\abc.txt","rb")

4.下列哪个是读写文件出错检测函数()。

A.ferrorB.clearerrC.feofDfwrite

5.当顺利执行了文件关闭操作时,fclose函数的返回值是()。

A.-1B.TRUEC.0D.1

6.当不能正确执行文件关闭操作时,fclose函数的返回值是()。

A.-1B.EOFC.TRUED.1

7.以下要作为函数fopen中第一个参数的正确格式是:

()

A.c:

user\text.txtB.c:

\rser\text.txtC.\user\text.txtD.c:

\\user\\text.txt

8.若执行fopen函数时发生错误,则函数的返回值是:

()

A.地址值B.nullC.1D.EOF

9.若以”a+”方式打开一个已存在的文件,则以下叙述正确的是:

()

A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作。

B.文件打开时,原有文件内容被删除,位置指针移到文件开头,可作重新写和读操作。

C.文件打开时,原有文件内容被删除,只可作写操作。

D.以上各种说法皆不下确。

10.当顺利执行了文件关闭操作时,fclose函数的返回值是:

()

A.-1B.TUREC.0D.1

11.已知函数的高速用形式:

fread(buffer,size,count,fp);其中buffer代表的是()

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

B.一个文件指针,指向要读的文件

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

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

12.fscanf函数的正确调用形式是:

()

A.fscanf(fp,格式字符串,输也表列)

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

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

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

13.fwrite函数的一般调用形式是:

()

A.fwrite(buffer,count,size,fp)

B.fwrite(fp,size,count,buffer)

C.fwrite(fp,count,size,buffer)

D.fwirte(buffer,size,count,fp)

14.fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是()

A.只写B.追加C.读或读写D.答案B和C都正确

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

()

A.EOFB.1C.0D.输出的字符

15.函数调用语句:

fseek(fp,-20L,2);的含义是()

A.将文件位置指针移到了距离文件头20个字节处

B.将文件位置指针从当前位置向后移动20个字节

C.将文件位置指针从文件末尾处向后退20个字节

D.将文件位置指针移到了距离当前位置20个字节处

16.利用fseek函数可以实现的操作是:

()

A.改变文件的位置指针

B.文件的顺序读写

C.文件的随机读写

D.以上答案均正确

17.Rewind,函数的作用是:

()

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

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

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

D.使位置指针自动移至下一个字符位置

18.函数ftell(fp)作用是:

()

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

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

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

D.以上答案均正确

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

structabc

{inta,b,c;};

main()

{structabcs[2]={{1,2,3},{4,5,6}};

intt;

t=s[0].a+s[1].b%s[0].c;

printf("%d\n",t);}

A2B3C4D7

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

structstudent

{inta,b,c;};

main()

{structstudentstu[2]={{1,2,3},{4,5,6}};intt;

t=stu[0].a+stu[1].b%stu[0].c;

printf("%d\n",t);}

(A)0(B)1(C)3(D)5

 

二.填空题

1.C语言中的标识符可分为关键字、【用户标识符】和【预定义标识符】3类。

2.在C语言中,用“\”开头的字符序列称为转义字符,转义字符“\n”的功能是【换行】;转义字符“\r”的功能是【回车】。

3.在C语言中,用关键字【float】定义单精度实型变量,用关键字【double】定义双精度实型变量,用关键字【char】定义字符型变量。

4.在C语言中,&作为双目运算符时表示的是【按位与运算】,而作为单目运算符时表示的是【取地址】。

5.C语言所提供的基本数据类型包括:

单精度型、双精度型、【整型】、【字符型】和【枚举类型】。

6运算符%两侧运算量的数据类型必须都是【整型】;运算符++和--的运算量必须是【变量】。

7.若a是int型变量,且a的初值是6,则执行表达式a+=a-=a*a后a的值为【-60】。

8.若有定义语句:

intx=3,y=2;floata=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为【1】。

9.假设m是一个3位数,从左到右依次用a、b、c表示各位数字,则从左到右各位数字是b、a、c的3位数的表达式是【(m/10%10)*100+m/100*10+m%10】。

10.在C语言中的赋值表达式中,赋值号左边须是【变量】。

11.C语言中的标识符只能由3种字符组成,它们是【关键字】、【用户标识符】和【预定义标识符】。

12.表达式x=6应当读做【将6赋给变量x】。

13.设在C语言中一个int型数据在内存中占2个字节,则int型数据的取值范围为【-32768~32767】(用十进制表示)。

14.若有定义语句:

ints=6;则表达式s%2+(s+1)%2的值为【1】。

15.把以下多项式写成只含3次乘法运算,其余皆为加、减运算的C语言表达式为【】。

16.以下程序的输出结果为【*3.140000,3.142*】。

main()

{

printf(“*%f,%4.3f*\n”,3.14,3.1415);

}

17.以下程序的输出结果为【】。

main()

{

intx=1,y=2;

printf(“x=%dy=%d*sum*=%d\n”,x,y,x+y);

printf(“10Squaredis:

%d\n”,10*10);

}

x=1y=2*sum*=3

10Squaredis:

100

18.以下程序的输出结果为【】。

include<stdio.h>

main()

{

intx=10;

floatpi=3.1416;

printf(“

(1)%d\n”,x);

printf(“

(2)%6d\n”,x);

printf(“(3)%f\n”,56.1);

printf(“(4)%14f\n”,pi);

}

(1)10

(2)10

(3)56.100000

(4)3,141600

19.以下程序的输出结果为【20】。

#include<stdio.h>

main()

{

intn=0;

n+=(n=10);

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

}

20.已知字母A的ASCⅡ的值为65。

以下程序的输出结果为【a=66,b=E】。

#include<stdio.h>

main()

{

chara,b;

a=ˊAˊ+ˊ4ˊ-ˊ3ˊ;

b=ˊAˊ+ˊ6ˊ-ˊ2ˊ;

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

}

编程题

1.输入三角形的三边长,求三角形的面积。

可设三边长分别为a,b,c能构成三角形,则三角形的公式为:

其中:

 

2.从键盘输入一个大写字母,要求改用小写字母输出。

 

3.输入一个华

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

当前位置:首页 > 农林牧渔 > 农学

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

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