当前位置:文档之家› C语言题库

C语言题库

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

A必须为字母B必须为下划线C 必须为字母或下划线D 可以是字母、数字和下划线中的任一种字符2.下面4个选项中,均是C语言关键字的选项是——。

Aauto enum includeBswitch typedef continueC signed union scanfD if struct type3.下面4个选项中,均是不合法的用户标识符的选项是——。

A A P_0 doBfloat la0 _AC b-a goto intD _123 temp INT4.在C语言中,int、char和short三种类型的数据在内存中所占用的字节数——。

A由用户自己定义B均为2个字节C 是任意的D 由所用机器的机器字长决定5.下面4个选项中,均是合法浮点数的选项是——。

A+1e+1 5e-9.4 03e2B-.60 12e-4 -8e5C 123e 1.2e-.4 +2e-1D -e3 .8e-4 5.e-06.下面不正确的字符串常量是——。

AˊabcˊB〞12ˊ12〞C 〞0 〞D 〞〞7.假设所有的变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是——。

A7 B8C 6D 28.以下正确的叙述是——。

A在C语言中,每行只能写一条语句B若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C 在C程序中,无论整数还是实数,都能被准确无误的表示D 在C程序中,%是只能用于整数运算的运算符9.以下表达式值为3的是——。

A 16-13%10B 2+3/2C 14/3-2D (2+6)/(12-9)10. 设变量a是整型,f是实型,i是双精度型,则表达式10+ˊaˊ+i*f值的数据类型为——。

A intB floatC doubleD 不确定11.在C语言中,char型数据在内存中的存储形式是——。

A 补码B 反码C 原码D AS CⅡ码12.设有说明语句:char w;int x;float y;double z;w x z y*+-值的数据类型为——。

A floatB charC intD double13.在C语言中,要求运算数必须是整型的运算符是——。

A /B ++C !=D %14.在C语言中一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为——。

A 0~255B 0~32 767C 0~65 535D 0~2 147 483 64715下面正确的字符常量是——。

A〞c 〞B〞\\〞C ˊWˊD ˊˊ16.已知各变量的类型说明如下:int k , a , b;unsigned long w=5;double x=1.42;则以下不正确的表达式是——。

A x%(-3)B w+= -2C k=(a=2,b=3,a+b)D a+=a-=(b=4)*(a=3)17.若定义语句:int a=7;float x=2.5;y=4. 7; 则表达式x+a%3*(int)(x+y)%2/4的值是——。

A 2.500000B 2.750000C 3.500000D 0.00000018.已知字母A的AS CⅡ码为十进制数65,且定义c2为字符型变量,则执行语句c2=ˊAˊ+ˊ6ˊ-ˊ3ˊ;后,c2中的值为:A DB 68C 不确定的值D C19.以下程序的运行结果是——。

# include<stdio.h>main(){int m=5,n=10;printf(“%d,%d\n”,m++,--n);}A 5, 9B 6,9C 5,10D 6,1020. 以下程序的运行结果是——。

# include<stdio.h>main(){int a=201,b=012;printf(“%2d,%2d\n”,a,b);}A 01,12B 201,10C 01,10D 20,0121.设有如下程序# include<stdio.h>main(){char ch1=’A’,ch2=’a’;printf(“%c\n”,(ch1,ch2));}则下列叙述正确的为——A 程序的输出结果为大写字母AB 程序的输出结果为小写字母aC 运行时产生错误信息D 格式说明符的个数少于输出项的个数,编译出错22.以下正确定义整型变量a,b和c并为其赋初值5的语句是——。

A int a=b=c=5;B int a,b,c=5;C int a=5,b=5,c=5;D a=b=c=5;23.设x,y均为float型变量,则不合法的赋值语句是——。

A ++x ;B y=(x%2)/10 ;C 8*=+; D x=y=0;x y24.输入数据的形式是25,13,10<回车>,则程序的输出结果是——。

main(){int x,y,z;scanf (“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A x+y+z=48B x+y+z=35C x+z=35D 不确定值25.若有如下定义,则正确的赋值语句是——。

int a,b; float x;A a=1,b=2,B b++;C a=b=5D b=int(x);1.已知学生记录描述为struct student{int no;char name[20];char sex;struct{int year;int month;int day;}birth;};struct student s;设变量s中的“生日”应该是“1984年11月11日”,下列对“生日”的正确赋值方式是( )A. year=1984;h.day=11;2.当说明一个结构体变量时系统分配给它的内存是( )A.各成员所需内存的总和B.结构中第一个成员所需内存量C.成员中占内存量最大者所需的容量D.结构中最后一个成员所需内存量3.设有以下说明语句struct stu{int a;float b;}stutype;则以下叙述不正确的是( )A. struct 是结构体类型的关键字B. struct stu 是用户定义的结构体类型C. stutype 是用户定义的结构体类型名D. a 和b 都是结构体成员名4.C语言结构体类型变量在程序执行期间( )A. 所有成员一直驻留在内存中B. 只有一个成员驻留在内存中C. 部分成员驻留在内存中D. 没有成员驻留在内存中5.在16位机动IBM-PC机上使用C语言,若有如下定义:struct data{int I; char ch; double f;}b;则结构体变量b占用内存的字节数是( )A.1B.7C.8D.116.以下程序的运行结果是( )main(){struct date{int year,month,day;}today;printf("%d\n",sizeof(struct date));}A.6B.8C.10D.127.根据下面的定义,能打印出字母M的语句是( )struct person{char name[9];int age;};struct person class[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(){struct cmplx{int x;int y;}cnumn[2]={1,3,2,7};printf("%d\n"),cnum[0].y/cnum[0].x*cnum[1].x;}A.0B.1C.3D.69.若有以下定义和语句struct student{int age;int num;};struct student stu[3]={{1001,20},{1002,19},{1003,21}};main(){struct student *p;p=stu;……}则以下不正确的引用是( )A.(p++)->numB.p++C.(*p).numD.p=&stu.age10.以下scanf 函数调用语句中对结构体变量成员的不正确引用是( )struct pupil{char name[20]; int age; int sex;}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.若有以下说明和语句:struct student{int age; int num;}std.*p;p=&std;则以下对结构体变量std中成员age的引用方式不正确的是( )A. std.ageB.P->ageC.(*p).ageD.*p.age12.若有以下程序段:struct dent{int n; int *m;};int a=1,b=2,c=3;struct dent s[3]={{101,&a},{102,&b},{103,&c}};main(){struct dent *p;p=s; ……}则以下表达式值为2是( )A.(P++)->mB.*(P++)->mC.(*P).mD.*(++p)->m13.设有以下语句:struct st{int n; struct st *next;};struct st a[3]={5.&a[1],7,&a[2],9,'\0'};*p;p=&a[0];则以下表达式的值为6的是( )A.p++->nB.p->n++C.(*p).n++D.++p->n15.若有以下说明和语句,则下面表达式中的值为1002的是( )struct student{ int num;int age; };struct student stu[3]={{1001,20},{1002,19},{1003,21}};struct student *p;p=stu;A.(p++)->numB.(++p)-> numC.(*p).numD.(*++p).age16.以下对结构体变量stul中成员age的非法引用的是( )struct strudent{int age; int num;}stul,*p;p=&stul;C.p->ageD.(*p).age17.设有以下说明和定义语句,则下面表达式中值为3的是( )struct s{int il; struct s *12;};struct s a[3]={1,&a[1],2,&a[2],3,&a[0]},*ptrptr=&a[1];A.ptr->il++B.ptr++->ilC.*ptr->ilD.++ptr->il18.当说明一个共用体变量时系统分配给它的内存是( )A.各成员所需内存量的总和B.结构中第一个成员所需内存量C.成员中占内存量最大者所需内存量D.结构中最后一个成员所需内存量19.以下对C语言中共用体类型数据的叙述正确的是( )A.可以对共用体变量名直接赋值B.一个共用体变量中可以同时存放其所有成员C.一个共用体变量中不能同时存放其所有成员D.共用体类型定义中不能出现结构体类型的成员20.若有以下定义语句union data{int l; char c; float f;}a;int n;则以下语句正确的是( )A.a=5;B.a={2,'a',1.2};C.printf("%d\n",a.l);D.n=a;21.设有以下语句,则下面不正确的叙述是( )union data{int I; char c; float f;}UN;A.UN所占的内存长度等于成员f的长度B.UN的地址和它的各成员地址都是同一地址C.UN不可以作为函数参数D.不能对UN赋值,但可以在定义un时对它初始化22.C语言共用体类型变量在程序运行期间( )A.所有成员一直驻留在内存中B.只有一个成员驻留在内存中C.部分成员驻留在内存中D.没有成员驻留在内存中23.以下程序的运行结果是( )#include<stdio.h>main(){union{ long a;int b;char c;}m;printf("%d\n",sizeof(m));}A.2B.4C.6D.825.以下程序的运行结果是:( )#include<stdio.h>union pw{ int i;char ch[2];}a;main(){ a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}A.13B.14C.208D.209文件选择题:1.下列哪个是字符写函数()。

相关主题