《C语言程序设计练习一.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计练习一.pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C 语言程序设计练习一一、单项选择题一、单项选择题1.下面转义字符中,表示字符串结束的是()A.rB.nC.0D.f2.在 Turbo C2.0中,若定义unsigned int a;则变量a 在内存中分配的字节数是()A.1 个B.2 个C.4 个D.8 个3.设有 int x=2,y,z;执行 z=y=x-;后,变量 z 的值是()A.0B.1C.2D.34.以十六进制形式输出整数的格式说明符是()A.%uB.%ldC.%x5.下面合法的 if 语句是()D.%oA.if(a=b)c+;B.if(a=b)c+;C.ifi(ab)c+;D.if(a=b)c+;6.结束 while(表达式)循
2、环的条件是()A.当表达式的值为 0 时B.当表达式的值不为 0 时C.当表达式的值为 1 时D.当表达式的值为非 1 时7.若有定义 int a35;则数组 a 在内存中占用的字节数是()A.8B.15C.16D.308.在 C 语言中,当函数返回值的类型缺省时,表示该函数返回值的类型是()A.charB.floatC.longD.int9.若有说明:int*p,m=5,n;以下正确的程序段是()A.p=&n;scanf(%d,n);C.scanf(%d,&n);B.p=&n;scanf(%d,*p);D.p=&n;p=n;*p=m;10.变量的指针,其含义是指该变量的()A.值B.地址C.
3、名D.一个标志16.结构体是 C 提供的一种专门处理彼此相互有联系,数据类型()A.不一致的多个数据的数据结构B.不一致的单个数据的数据结构C.一致的多个数据的数据结构D.一致的单个数据的数据结构11.下面列出的位运算符中,表示按位与操作的是()A.B.&C.D.|12.设有说明:int x=0 x03,y=3;表达式 x&y 的值是()A.0B.1C.2D.319.设有说明:int u=1,v=3,w=2;表达式(v1|u2)&w 的值是()A.0B.1C.3D.513.设有说明:FILE*fp;char*filename=paper;对于 fp=fopen(filename,rb+);语句
4、,下面说法正确的是()A.打开名为 filename 的文件读写B.打开名为 paper 的文件读写C.打开名为 filename 的文件只读D.打开名为 paper 的文件只读114.设有int a=3,b=-4,c=5;表达式(ab)?a+b:(a-b,b+4,a-=b+4)的值是()A.1B.0C.3D.715.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是()(其中表示换行)int a,b;scanf(a=%db=%d,&a,&b);A.2B.a=2 b=3C.a=2,b=3D.2,3316.下面程序段的输出结果是()main()int s,p;s=p=5;p=+s;p+
5、;+p;printf(%dn,p);A.5B.6C.7D.817.下列 if 语句中,有语法错误的是()A.if(xy);B.if(x=y)x+y;C.if(x!=y)scanf(%d,&x)else scanf(%d,&y)D.if(xy)x+;y+;18.下面程序段执行后的输出结果是()inti=-1;if(i120);a=a+1;printf(%d,a);A.100B.101C.120D.12121.下面程序执行后,i 的值是()main()int a 5=1,2,3,4,5,i=2printf(%d,ai+);A.1B.2C.3D.422.下面程序的输出结果是()main()int i
6、,x33=9,8,7,6,5,4,3,2,1;for(i=0;iB.&C.28.设有说明:int u=1,v=14;表达式 u+v2 的值是()A.0B.3C.5D.729.如果将文件指针 fp 指向文件末尾,正确的语句是()A.feof(fp);B.rewind(fp);C.fseek(fp,0L,0);30.下面程序段中,不能完成的功能是()FILE*fp;char ch=v;fp=fopen(boy,rb+);fputc(ch,fp);A.建立文件指针 fp 与文件 boy 的联系C.向 boy 文件中写一个字符B.从 boy 文件中读取一个字符D.打开名为 boy 的二进制文件D.fs
7、eek(fp,0L,2);31.设有 int a=3,b=-4,c=0;表达式(ab)?a:b)&c0 的值是()A.-4B.0C.1(其中表示换行)int a,b;scanf(a=%d,b=%d,&a,&b);4D.332.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是()A.2B.a=2b=3C.a=2,b=3D.2,3333.下面程序段的输出结果是()main()int s,p;s=p=5;p=-s;p+;+p;printf(%dn,p);A.5B.6C.7D.834.关于 if 语句下面叙述正确的是()A.只有当 if 语句中表达式的值等于1 时,才执行 if 的内嵌语句
8、B.只有当 if 语句中表达式的值为假时,才执行if 的内嵌语句C.只有当 if 语句中表达式的值等于0 时,才执行 if 的内嵌语句D.只要 if 语句中表达式的值非0 时,就执行 if 的内嵌语句35.若执行下面程序时,从键盘输入数据3 和 4,则程序的输出结果是(main()int a,b,s;scanf(%d,&a,&b);s=a;if(ab)s=bs=s*s;printf(%d,s);A.9B.12C.16D.2536.若 int x=0;则 while(x=0);的循环次数是()A.0B.1C.2D.无限次37.下面程序段的输出结果是()for(i=1;i3;i+)for(j=1;
9、j3;j+)printf(%d,i+j);5)printf(n);A.2334B.234C.23D.2343438.下面程序的输出结果是()mian()int a5=2,4,6,8,10,i;i=2;printf(%d,ai+);A.2B.4C.6D.839.下面程序的输出结果是()main()int a34=1,3,5,7,9,11,13,15,17,19,21,23;int i,j,k=0;for(i=0;i|B.&|C.&|D.&45.设有说明:int u=1,v=2;表达式:u+vb?a:c0)y=1;else y=0;1(x 0)Ay 0(x 0)1(x 0)0(x 0)Cy 1(x
10、 0)1(x 0)1(x 0)By 1(x 0)0(x 0)1(x 0)Dy 1(x 0)0(x 0)53执行下面程序段后,输出字符A 的个数是()for(i=0;i=5;i+=2)printf(A);A0 个B3 个C5 个D6 个54若有定义 char a=computer;则存储字符 m 的数组元素是()Aa1Ba2Ca3Da455若有定义 int a 4=1,2,3,4;则 aa3-a1*a1的值是()A1B2C3D412凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()A自动(auto)B静态(static)C外部(extern)D寄存器(register)56如果一个 C
11、程序仅由一个源文件组成,则在一个源文件中定义的全局变量的作用域为()A源文件的全部范围C本函数的全部范围B本程序的全部范围D从定义该变量的位置开始至本文件末尾57下列定义中,不是指针数组定义的是()Aint*p5;Bfloat*q4;Cint(*r)6;Dchar*w7;58若有语句 int*point,a=4;和 point=&a;下面代表地址的一组选项是()8Aa,point,*&aC*&point,*point,&a59下列程序的运行结果是()#difine N 9fun(char s)char*p=s+4,*q=s;inti;for(i=0;i4;i+,p+,q+)si=*p;si+4
12、=*qmain()char ssN=ABCDEFGH;fun(ss)printf(%sn,ss);B&*a,&a,*pointD&a,&*point,pointAEFGHABCDBEFGHEFGHCABCDEFGHDABCDABCD60设有结构体的定义如下:()struct cjd long bh;int*q;char xm9;;则 sizeof(struct cjd)的值是A14B15C16D1761设有说明:int x=0 x15,y=0 x0f;则 x&y 的结果是()A0 x5B0 x15C0 xf0D0 xf562如果在程序中要使用系统提供的函数strlen,则需要书写的编译预处理命
13、令是()A#includeC#incLudeB#includeD#incLude63由 FILE*fp;fp=fopen(a:abc.txt,r+);可以推知 fopen 函数的原型是()Achar*fopen(char,char);BFILE*fopen(char*,char*);9Cint fopen(char*,char*);DFILF fopen(char*,char*);64整数在机器内存中的表示是()A1000000000000010C11111111111111101B1111111111111110D111111111111111165下列运算符中优先级最低的是()AB!C%D
14、=66设有 int a=3,b=,c=5;表达式+ac+b+的值是(A6B5C4D367以十进制无符号形式输出整数的格式说明符是()A%uB%xC%oD%d69下列程序段的输出结果是()void main(void)iny y=1,x=5;if(x=0)y=0;printf(dn,y);A1B0C1D569执行如下程序段后,x 的值是()int x=1,y=1;if(y0)x=y;else x+=y;A1B0C1D270执行 while(表达式)循环的条件是()A当表达式的值为 0 时B仅当表达式的值为 1 时C当表达式的值非 0 时D当表达式的值不为1 时71下列程序段输出的结果是()for
15、(i=1;i3;i+)for(j=1;j&B&C&11D&78设有说明:int u=1,v=3;则表达式 u=v 的值是()A0B1C3D879如果文件存储的是数据在内存中存放的字节形式,则该文件是()AASCII 文件B文本文件C二进制文件D设备文件80下列转义字符中,表示回车的是()A0BnCrDf81若定义 double d;则 d 在内存中分配的字节数是()A1 个B2 个C4 个D8 个82下列表达式中运算结果为3 的表达式是()A(-7)%4B7/4+2C7/4*4-4D8/3+8/383设有 int a=3,b=-4,c=5;表达式 a+-c+b+的值是()A-6B-5C-4D-
16、384在 printf 语句中,格式说明符u 表示()A以十进制带符号形式输出整数B以十六进制带符号形式输出整数C以十进制无符号形式输出整数D以十六进制无符号形式输出整数85若有 int a=3,b=4,c=5,d=6,x=4;执行下列程序段后x 的值是(if(ab)if(c=d)x=c;elsex=d+A4B5C6D712)86关于 switch 中的表达式,正确的说法是()A它必须是算术表达式B它必须是关系表达式C它必须是逻辑表达式D它可以是任意类型的表达式87对 do 语句 while(表达式);结构的循环,下列说法正确的是()A当表达式的值为非零时不执行循环体B循环体至少被执行一次C当
17、表达式的值为零时循环体一次也不执行D循环体仅被执行一次88只能在循环语句中用于结束本轮循环的语句是()Abreak;Bcontinue;CgotoDif89若有定义 int a35;则数组 a 在内存中分配的字节数是()A8B15C24D3090 已知 strl 和 str2 是字符串数组,下列哪一个函数能正确的完成字符串的输入?(Agets(strl)Bgets(strl,str2)Cgetchar(strl)Dgetchar(strl,str2)91下列关于函数的描述中正确的是()AC 程序中有调用关系的所有模块必须放在同一个源文件中B函数必须有返回值,否则不能使用函数CC 程序必须由一个
18、或一个以上函数构成DC 函数既可以嵌套定义又可以嵌套调用92设有下列程序,则()int d=10;main()int a=3;printf(“%d,%dn”,a,d);Aa 是全局变量,d 是全局变量Ba 是局部变量,d 是全局变量Ca 是全局变量,d 是局部变量Da 是局部变量,d 是局部变量13)93若有说明:int*p1,*p2,m=5,n;以下进行赋值的语句中合理的是()Ap1=m;B&p2=n;Cpl=&m;p2=p1;94下列为指针数组定义的是()Afloat(*)6;Bfloat p6;Cfloat(*)();Dfloat*p6;95设有说明:FILE*fp;对于 fp=fope
19、n(c:abc.dat,rb);语句,下列说法中D*p1=&m;不正确的是()Afp 将指向 abc.dat 文件B以只读方式打开二进制文件C打开文件的文件名是 abc.datD以读写方式打开 ASCII 码文件96ASCII 码文件的结束可以用符号常量EOF 表示。EOF 的值是(A0B1C-1D不能确定的值97.下列是合法 C 语言常量的是()A.eB.7E4.0C.E4D.-9.13E-3098.设有 inta=3,b=-4,c=5;表达式(ab)?a:b&c0 的值是(A.0B.1C.3D.499.以指数形式输出实型数的格式说明符是()A.%uB.%xC.%fD.%e100.下列程序的
20、输出结果是()main()intx=5,y;if(x0)y=-1;if(x=0)y=0;y=1;printf(%d,y);A.-5B.-1C.0D.1101.下列程序段的输出结果是()i=1;while(i3)j=1;while(j B.&|C.|D.|107.设有说明:intu=1,v=3,w=5;表达式:v&u|w 的值是()A.3B.5C.6108.设有下列程序:()#includestdio.hmain()unsignedx=8,y=2;printf(%dn,y|(x&y);该程序的运行结果是A.-1B.0 xffC.127D.65535109.若有定义#defineP(x)xxx+1
21、 和说明语句:inta=2;则表达式 P(2)的值是()A.6B.8C.9D.10110.在语句 fgets(str,n,p);中,下列说法不正确的是()A.str 是字符指针C.str 是字符数组名15D.8B.一次可以读 n 个字符D.一次可以读 n-1 个字符111.在 Turbo C 2.0中,若定义 char ch;则变量 ch 在内存中分配的字节数是()A.1 个B.2 个C.4 个D.8 个6112.下面程序段的输出结果是()main()int a=2,b=5;printf(a=d,b=d,a,b);A.a=2,b=5B.a=2,b=5C.a=2,b=5D.a=d,b=d113.
22、设有条件表达式(exp)?a+:b-,则下列表达式中能够与该表达式完全等价的表达式是()A.(exp!=0)?a+b-B.(exp=0)?a+b-C.(exp=1)?a+b-D.(exp!=1)?a+:b-114.对于 for(表达式 l;表达式 2;表达式 3)语句;控制循环结束的表达式是(A.表达式 1B.表达式 2C.表达式 3D.表达式 l 和表达式 3115.设有下列程序:()void main(void)int x4=1,3,5,7,i;i=0:printf(d,xi+);其输出结果是A.1B.3C.5D.7116.下列关于函数的说法中,不正确的是()A.函数名后面一定要一对圆括号
23、B.空函数被调用时不做任何工作C.函数形参个数可以是一个、多个或没有D.函数参数类型可不作说明117.指向与文件参数有关的结构体类型的指针变量称为()A.函数指针B.整型指针C.字符型指针D.文件指针118.设有 int x=2,y,z;执行 z=y=x;后变量 y 的值是()A.0B.1C.2D.3119.两次运行下面的程序,如果从键盘上分别输入6 和 4,则输出的结果是(void main(void)int x;scanf(d,x);if(x+5)printf(d,x);else printf(dn,x);A.7 和 5B.6 和 3C.7 和 4D.6 和 4120.在下列选项中,没有构
24、成死循环的程序段是()16)A.int i=100;B.for(;);while(1)i=i100+1;if(i100)break;C.int k=1000;D.int s=36;do+k;while(k10000);while(s);一一 s;121.定义如下变量和数组int k;int x33=9,8,7,6,5,4,3,2,l;则执行下面语句for(k=0;k3;k+)if(k2)printf(5d,xkk);后输出结果是()A.3B.5C.7D.9122.设有下列程序:ff()int c=9;static int a=1,b=4;if(b=4)a+=c;b+;else a+=c;b;p
25、rintf(a=d,b=dn,a,b);main()ff();ff();则该程序执行后,显示的结果为()A.a=10,b=5B.a=10,b=4a=19,b=5a=l9,b=5C.a=10,b=4D.a=10,b=5a=19,b=4a=19,b=4123.下面能正确进行字符串赋值操作的是()A.char s5=ABCDE;B.char s5=A,B,C,D,E;C.char*s;s=ABCDE;D.char*s;scanf(s,s);124.下面程序段的运行结果是()chars*s=abcde;s+=2printf(d,s);A.cdeB.字符cC.字符c的地址125下列为指针数组定义的是()Afloat(*)6;Bfloat p6;Cfloat(*)();Dfloat*p6;126.设有下面程序:#includestdio.h17D.无确定的输出结果void main(void)unsigned x=1,y=3,z=5;printf(dn,zxy);该程序的运行结果是()A.0B.3C.4D.5127.设有说明:int u=l,v=3,w=5;表达式:u1|u2)&w 的值是()A.0B.1C.3D.5130凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()A自动(auto)B静态(static)C外部(extern)D寄存器(register)18
限制150内