《C语言程序设计练习一80306659.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计练习一80306659.pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 1 C 语言程序设计练习一 一、单项选择题 1.下面转义字符中,表示字符串结束的是()A.r B.n C.0 D.f 2.在 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.0 B.1 C.2 D.3 4.以十六进制形式输出整数的格式说明符是()A.%u B.%ld C.%x D.%o 5.下面合法的 if 语句是()A.if(a=b)c+;B.if(a=b)c+;C.ifi(ab)c+;D.if(a=b)c+
2、;6.结束 while(表达式)循环的条件是()A.当表达式的值为 0 时 B.当表达式的值不为 0 时 C.当表达式的值为 1 时 D.当表达式的值为非 1 时 7.若有定义 int a35;则数组 a 在内存中占用的字节数是()A.8 B.15 C.16 D.30 8.在 C 语言中,当函数返回值的类型缺省时,表示该函数返回值的类型是()A.char B.float C.long D.int 9.若有说明:int*p,m=5,n;以下正确的程序段是()A.p=&n;B.p=&n;scanf(%d,n);scanf(%d,*p);C.scanf(%d,&n);D.p=&n;p=n;*p=m;
3、10.变量的指针,其含义是指该变量的()A.值 B.地址 C.名 D.一个标志 16.结构体是 C 提供的一种专门处理彼此相互有联系,数据类型()A.不一致的多个数据的数据结构 B.不一致的单个数据的数据结构 C.一致的多个数据的数据结构 D.一致的单个数据的数据结构 11.下面列出的位运算符中,表示按位与操作的是()A.B.&C.D.|12.设有说明:int x=0 x03,y=3;表达式 x&y 的值是()A.0 B.1 C.2 D.3 19.设有说明:int u=1,v=3,w=2;表达式(v1|u2)&w 的值是()A.0 B.1 C.3 D.5 13.设有说明:FILE*fp;cha
4、r*filename=paper;对于 fp=fopen(filename,rb+);语句,下面说法正确的是()A.打开名为 filename 的文件读写 B.打开名为 paper 的文件读写 C.打开名为 filename 的文件只读 D.打开名为 paper 的文件只读 2 14.设有int a=3,b=-4,c=5;表达式(ab)?a+b:(a-b,b+4,a-=b+4)的值是()A.1 B.0 C.3 D.7 15.若有下列程序段,欲使 a=2、b=3,对应正确的数据输入方法是()(其中表示换行)int a,b;scanf(a=%d b=%d,&a,&b);A.2 B.a=2 b=3
5、C.a=2,b=3 D.2,3 3 16.下面程序段的输出结果是()main()int s,p;s=p=5;p=+s;p+;+p;printf(%dn,p);A.5 B.6 C.7 D.8 17.下列 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.下面程序段执行后的输出结果是()int i=-1;if(i120);a=a+1;printf(%d,a);A.100 B.101 C.120 D.121 21.下面程序执行后,i 的值是()main()int
6、a 5=1,2,3,4,5,i=2 printf(%d,ai+);A.1 B.2 C.3 D.4 22.下面程序的输出结果是()main()int i,x33=9,8,7,6,5,4,3,2,1;for(i=0;i B.&C.28.设有说明:int u=1,v=14;表达式 u+v2 的值是()A.0 B.3 C.5 D.7 29.如果将文件指针 fp 指向文件末尾,正确的语句是()A.feof(fp);B.rewind(fp);C.fseek(fp,0L,0);D.fseek(fp,0L,2);30.下面程序段中,不能完成的功能是()FILE*fp;char ch=v;fp=fopen(bo
7、y,rb+);fputc(ch,fp);A.建立文件指针 fp 与文件 boy 的联系 B.从 boy 文件中读取一个字符 C.向 boy 文件中写一个字符 D.打开名为 boy 的二进制文件 31.设有 int a=3,b=-4,c=0;表达式(ab)?a:b)&c0 的值是()A.-4 B.0 C.1 D.3 32.若有下列程序段,欲使 a=2、b=3,对应正确的数据输入方法是()(其中表示换行)int a,b;scanf(a=%d,b=%d,&a,&b);5 A.2 B.a=2 b=3 C.a=2,b=3 D.2,3 3 33.下面程序段的输出结果是()main()int s,p;s=p
8、=5;p=-s;p+;+p;printf(%dn,p);A.5 B.6 C.7 D.8 34.关于 if 语句下面叙述正确的是()A.只有当 if 语句中表达式的值等于 1 时,才执行 if 的内嵌语句 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=b s=s*s;pri
9、ntf(%d,s);A.9 B.12 C.16 D.25 36.若 int x=0;则 while(x=0);的循环次数是()A.0 B.1 C.2 D.无限次 37.下面程序段的输出结果是()for(i=1;i3;i+)for(j=1;j3;j+)printf(%d,i+j);6 printf(n);A.2 3 3 4 B.2 3 4 C.2 3 D.2 3 4 3 4 38.下面程序的输出结果是()mian()int a5=2,4,6,8,10,i;i=2;printf(%d,ai+);A.2 B.4 C.6 D.8 39.下面程序的输出结果是()main()int a34=1,3,5,7
10、,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;A)0(1)0(0)0(1xxxy B)0(0)0(1)0(1xxxy C)0(1)0(1)0(0 xxxy D)0(0)0(1)0(1xxxy 53执行下面程序段后,输出字符 A 的个数是()for(i=0;i=5;i+=2)printf(A);A0 个 B3 个 C5 个 D6 个 54若有定义 char a =computer;则存储字符 m 的数组元素是()Aa1 Ba2 Ca3
11、Da4 55若有定义 int a 4=1,2,3,4;则 aa3-a1*a1的值是()A1 B2 C3 D4 12凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()A自动(auto)B静态(static)C外部(extern)D寄存器(register)56如果一个 C 程序仅由一个源文件组成,则在一个源文件中定义的全局变量的作用域为()A源文件的全部范围 B本程序的全部范围 C本函数的全部范围 D从定义该变量的位置开始至本文件末尾 57下列定义中,不是指针数组定义的是()Aint*p5;Bfloat*q4;Cint(*r)6;Dchar*w7;58若有语句 int*point,a=4
12、;和 point=&a;下面代表地址的一组选项是()9 Aa,point,*&a B&*a,&a,*point C*&point,*point,&a D&a,&*point,point 59下列程序的运行结果是()#difine N 9 fun (char s )char*p=s+4,*q=s;int i;for(i=0;i4;i+,p+,q+)si=*p;si+4=*q main()char ssN=ABCDEFGH;fun(ss)printf(%sn,ss);AEFGHABCD BEFGHEFGH CABCDEFGH DABCDABCD 60设有结构体的定义如下:()struct cjd
13、long bh;int*q;char xm9;;则 sizeof(struct cjd)的值是 A14 B15 C16 D17 61设有说明:int x=0 x15,y=0 x0f;则 x&y 的结果是()A0 x5 B0 x15 C0 xf0 D0 xf5 62如果在程序中要使用系统提供的函数 strlen,则需要书写的编译预处理命令是()A#include B#include C#incLude D#incLude 63由 FILE*fp;fp=fopen(a:abc.txt,r+);可以推知 fopen 函数的原型是()Achar*fopen(char,char);BFILE*fopen
14、(char*,char*);10 Cint fopen(char*,char*);DFILF fopen(char*,char*);64整数在机器内存中的表示是()A1000000000000010 B1111111111111110 C11111111111111101 D1111111111111111 65下列运算符中优先级最低的是()A B!C%D=66设有 int a=3,b=,c=5;表达式+ac+b+的值是()A6 B5 C4 D3 67以十进制无符号形式输出整数的格式说明符是()A%u B%x C%o D%d 69下列程序段的输出结果是()void main(void)iny
15、y=1,x=5;if(x=0)y=0;printf(dn,y);A1 B0 C1 D5 69执行如下程序段后,x 的值是()int x=1,y=1;if(y0)x=y;else x+=y;A1 B0 C1 D2 70执行 while(表达式)循环的条件是()A当表达式的值为 0 时 B仅当表达式的值为 1 时 C当表达式的值非 0 时 D当表达式的值不为 1 时 71下列程序段输出的结果是()for(i=1;i3;i+)for(j=1;j&B&C&D&12 78设有说明:int u=1,v=3;则表达式 u=v 的值是()A0 B1 C3 D8 79如果文件存储的是数据在内存中存放的字节形式,
16、则该文件是()AASCII 文件 B文本文件 C二进制文件 D设备文件 80下列转义字符中,表示回车的是()A0 Bn Cr Df 81若定义 double d;则 d 在内存中分配的字节数是()A1 个 B2 个 C4 个 D8 个 82下列表达式中运算结果为 3 的表达式是()A(-7)%4 B7/4+2 C7/4*4-4 D8/3+8/3 83设有 int a=3,b=-4,c=5;表达式 a+-c+b+的值是()A-6 B-5 C-4 D-3 84在 printf 语句中,格式说明符 u 表示()A以十进制带符号形式输出整数 B以十六进制带符号形式输出整数 C以十进制无符号形式输出整数
17、 D以十六进制无符号形式输出整数 85若有 int a=3,b=4,c=5,d=6,x=4;执行下列程序段后 x 的值是()if(ab)if(c=d)x=c;else x=d+A4 B5 C6 D7 13 86关于 switch 中的表达式,正确的说法是()A它必须是算术表达式 B它必须是关系表达式 C它必须是逻辑表达式 D它可以是任意类型的表达式 87对 do 语句 while(表达式);结构的循环,下列说法正确的是()A当表达式的值为非零时不执行循环体 B循环体至少被执行一次 C当表达式的值为零时循环体一次也不执行 D循环体仅被执行一次 88只能在循环语句中用于结束本轮循环的语句是()Ab
18、reak;Bcontinue;Cgoto Dif 89若有定义 int a35;则数组 a 在内存中分配的字节数是()A8 B15 C24 D30 90 已知 strl 和 str2 是字符串数组,下列哪一个函数能正确的完成字符串的输入?()Agets(strl)Bgets(strl,str2)Cgetchar(strl)Dgetchar(strl,str2)91下列关于函数的描述中正确的是()AC 程序中有调用关系的所有模块必须放在同一个源文件中 B函数必须有返回值,否则不能使用函数 CC 程序必须由一个或一个以上函数构成 DC 函数既可以嵌套定义又可以嵌套调用 92设有下列程序,则()in
19、t d=10;main()int a=3;printf(“%d,%dn”,a,d);Aa 是全局变量,d 是全局变量 Ba 是局部变量,d 是全局变量 Ca 是全局变量,d 是局部变量 Da 是局部变量,d 是局部变量 14 93若有说明:int*p1,*p2,m=5,n;以下进行赋值的语句中合理的是()Ap1=m;B&p2=n;Cpl=&m;p2=p1;D*p1=&m;94下列为指针数组定义的是()Afloat(*)6;Bfloat p6;Cfloat(*)();Dfloat*p6;95设有说明:FILE*fp;对于 fp=fopen(c:abc.dat,rb);语句,下列说法中不正确的是(
20、)Afp 将指向 abc.dat 文件 B以只读方式打开二进制文件 C打开文件的文件名是 abc.dat D以读写方式打开 ASCII 码文件 96ASCII 码文件的结束可以用符号常量 EOF 表示。EOF 的值是()A0 B1 C-1 D不能确定的值 97.下列是合法 C 语言常量的是()A.e B.7E4.0 C.E4 D.-9.13E-30 98.设有 int a=3,b=-4,c=5;表达式(ab)?a:b&c0 的值是()A.0 B.1 C.3 D.4 99.以指数形式输出实型数的格式说明符是()A.%u B.%x C.%f D.%e 100.下列程序的输出结果是()main()i
21、nt x=5,y;if(x0)y=-1;if(x=0)y=0;y=1;printf(%d,y);A.-5 B.-1 C.0 D.1 101.下列程序段的输出结果是()i=1;while(i3)j=1;while(j B.&|C.|D.|107.设有说明:int u=1,v=3,w=5;表达式:v&u|w 的值是()A.3 B.5 C.6 D.8 108.设有下列程序:()#includestdio.h main()unsigned x=8,y=2;printf(%dn,y|(x&y);该程序的运行结果是 A.-1 B.0 xff C.127 D.65535 109.若有定义#define P(
22、x)x x x+1 和说明语句:int a=2;则表达式 P(2)的值是()A.6 B.8 C.9 D.10 110.在语句 fgets(str,n,p);中,下列说法不正确的是()A.str 是字符指针 B.一次可以读 n 个字符 C.str 是字符数组名 D.一次可以读 n-1 个字符 16 111.在 Turbo C 2.0 中,若定义 char ch;则变量 ch 在内存中分配的字节数是()A.1 个 B.2 个 C.4 个 D.8 个 6 112.下面程序段的输出结果是()main()int a=2,b=5;printf(a=d,b=d,a,b);A.a=2,b=5 B.a=2,b=
23、5 C.a=2,b=5 D.a=d,b=d 113.设有条件表达式(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.表达式 1 B.表达式 2 C.表达式 3 D.表达式 l 和表达式 3 115.设有下列程序:()void main(void)int x4=1,3,5,7,i;i=0:printf(d,xi+);其输出结果是 A.1 B.3 C.5 D.7 1
24、16.下列关于函数的说法中,不正确的是()A.函数名后面一定要一对圆括号 B.空函数被调用时不做任何工作 C.函数形参个数可以是一个、多个或没有 D.函数参数类型可不作说明 117.指向与文件参数有关的结构体类型的指针变量称为()A.函数指针 B.整型指针 C.字符型指针 D.文件指针 118.设有 int x=2,y,z;执行 z=y=x;后变量 y 的值是()A.0 B.1 C.2 D.3 119.两次运行下面的程序,如果从键盘上分别输入 6 和 4,则输出的结果是()void main(void)int x;scanf(d,x);if(x+5)printf(d,x);else print
25、f(dn,x);A.7 和 5 B.6 和 3 C.7 和 4 D.6 和 4 120.在下列选项中,没有构成死循环的程序段是()17 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.3 B.5 C.7 D.9 122.设有下列程序
26、:ff()int c=9;static int a=1,b=4;if(b=4)a+=c;b+;else a+=c;b;printf(a=d,b=dn,a,b);main()ff();ff();则该程序执行后,显示的结果为()A.a=10,b=5 B.a=10,b=4 a=19,b=5 a=l9,b=5 C.a=10,b=4 D.a=10,b=5 a=19,b=4 a=19,b=4 123.下面能正确进行字符串赋值操作的是()A.char s5=ABCDE;B.char s5=A,B,C,D,E;C.char*s;s=ABCDE;D.char*s;scanf(s,s);124.下面程序段的运行结
27、果是()chars*s=abcde;s+=2 printf(d,s);A.cde B.字符c C.字符c的地址 D.无确定的输出结果 125下列为指针数组定义的是()Afloat(*)6;Bfloat p6;Cfloat(*)();Dfloat*p6;126.设有下面程序:#includestdio.h 18 void main(void)unsigned x=1,y=3,z=5;printf(dn,zxy);该程序的运行结果是()A.0 B.3 C.4 D.5 127.设有说明:int u=l,v=3,w=5;表达式:u1|u2)&w 的值是()A.0 B.1 C.3 D.5 130凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()A自动(auto)B静态(static)C外部(extern)D寄存器(register)