《C语言第1 9章基本概念练习题ans(最全).pdf》由会员分享,可在线阅读,更多相关《C语言第1 9章基本概念练习题ans(最全).pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一单元(第一单元(1-51-5 章)基本概念练习题章)基本概念练习题一、单选选择(直接在正确的选项上打勾,每题)1、下面关于 C 语言特点的描述,不正确的是()。DA、C 语言兼有高级语言和低级语言的双重特点,执行效率高B、C 语言既可以用来编写应用程序,又可以用来编写系统软件C、C 语言是一种结构式模块化程序设计语言D、C 语言的可移植性较差2、C 语言规定,在一个源程序中,main 函数的位置()。BA、必须在最开始B、可以任意C、必须在最后D、必须在系统调用的库函数的后面3、下列说法中正确的是()。CA、C 程序书写时,不区分大小写字母B、C 程序书写时,一行只能写一个语句C、C 程序
2、书写时,一个语句可分成几行书写D、C 程序书写时每行必须有行号4、C 语言编译程序的首要工作是()。AA、检查 C 语言程序的语法错误B、检查 C 语言程序的逻辑错误C、检查程序的完整性D、生成目标文件5、C 语言程序经过连接以后生成的文件名的后缀为()。CA、.cB、.objC、.exeD、.cpp6、以下关于算法的说法中,错误的是()。DA、一个算法应包含有限个步骤B、在计算机上实现的算法是用来处理数据对象的C、算法的目的是为了求解D、算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现7、算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性之一的是(A、确
3、定性B、有穷性C、零个或多个输出D、零个或多个输入8、以下不属于结构化程序设计三种基本结构之一的是()。BA、顺序B、递归C、循环D、选择9、下列数据中,不合法的C 语言实型数据是()。CA、0.123B、123e3C、2.1e3.5D、789.010、若变量 a、i 已正确定义,且 i 已正确赋值,以下属于合法的C 语句是()。A、a=1B、+i;C、a=a+=5;D、a=int(i);11、已有定义 int a=6;则执行语句 a+=a-=a*a;后,a 的值为()。DA、36B、0C、-24D、-6012、若有以下程序段,其输出结果是()。Binta=0,b=0,c=0;c=(a-=a-
4、5),(a-=3,+b);printf(“%d,%d,%dn”,a,b,c);A、0,0,-10B、2,1,5C、-10,-3,-10D、3,3,-1013、有以下定义:int i=10,j=1;执行语句 printf(%d,%dn,i-,+j);后输出结果是()。BA、9,2B、10,2C、9,1D、10,114、字符串t065xffn的长度为()。AA、5B、14C、8D、输出项不合法,无正常输出15、已有定义:char c;执行赋值语句 c=(z-a)/2+A;后,变量 c 的值为()。AA、MB、NC、OD、Q1/15)。C16、以下 4 个选项中,不能看做一条语句的是()。DA、;B
5、、a=5,b=2.5,c=3.6;C、if(a5);D、if(b!=5)x=2;y=6;17、设 a、b 和 c 都是 int 变量,且 a=3,b=4,c=5;则以下的表达式中,值为0 的表达式是()。DA、a&bB、a=bC、a|b+c&b-cD、!(a=30?b:c;switch(d)case 30:printf(%d,a);case 40:printf(%d,b);case 50:printf(%d,c);break;default:printf(#);A、304050#B、304050C、4050D、#21、以下程序的输出结果是()。Bmain()int a,b,c,x=35;2/1
6、5a=b=c=0;x=35;if(!a)x-;else if(b);if(c)x=3;elsex=4;printf(%dn,x);A、35B、4C、3D、3422、当 c 的值不为 0 时,能正确将 c 的值赋给变量 a 和 b 的选项是()。CA、c=b=aB、(a=c)|(b=c)C、(a=c)&(b=c)D、a=c=b23、若变量已定义为 float 型,要通过语句 scanf(%f%f%f,&a,&b,&c);给 a 赋予 10.0,b 赋予 22.0,c 赋予 33.0,下列不正确的输入形式是()。BA、102233B、10.0,22.0,33.0C、10.022.0 33.0D、1
7、0 223324、下面程序段的输出结果是()。Aint x=1,y=10;if(x=y)printf(AAA);elseprintf(BBB);A、AAAB、BBBC、AAABBBD、不确定25、下面程序段的输出结果是()。Afor(x=9;x0;x-)if(x%3!=0)printf(%d,-x);continue;A、741B、852C、963D、87542126、对以下循环:for(a=0,b=0;(b!=123)&(a=4);a+);说法正确的是()。DA、无限循环B、循环次数不定C、执行 4 次D、执行 5 次27、在下列程序中,while 循环的循环次数是()。Dmain()int
8、i=0;while(i10)if(i1)continue;if(i=5)break;i+;.A、1B、10C、6D、死循环、不能确定次数28、以下程序的输出结果是()。Bmain()int i=0,a=0;while(i20)for(;)3/15 if(i%10)=0)break;else i-;i+=11;a+=i;printf(%dn,a);A、21B、32C、33D、1129、当输入为quert?时,下面程序的执行结果是()。Cmain()while(putchar(getchar()!=?);A、quertB、RvfsuC、quert?D、rvfsu?30、以下能正确计算 12310
9、的程序段是()。A、doi=1;s=1;s=s*i;i+;while(i=10);B、doi=1;s=0;s=s*i;i+;while(i=10);C、i=1;s=1;dos=s*i;i+;while(i=10);D、i=1;s=0;dos=s*i;i+;while(i=10);二、绘制二、绘制 NSNS 算法流程图算法流程图(1)输入 10 个数,求其中的最大值。(2)输入 2 个数,求它们的最大公约数。第第 6 6 章章-数组数组基本概念练习题基本概念练习题1、在 C 语言中,引用数组元素时,其数组下标的数据类型允许是()。A、floatB、intC、doubleD、任何类型答案:B4/1
10、52、以下对一维整型数组a 的正确定义是()。A、int a(10);B、int n=10,an;C、int n;scanf(“%d”,&n);int an;D、#define SIZE 10int aSIZE;答案:D3、以下能对一维数组 a 进行正确初始化的语句是()。A、int a10=(0,0,0,0,0);B、int a10=;C、int a=0;D、int a10=abcdefg;答案:C4、不能给数组的首元素赋值的语句是()。A、int a2=1;B、int a2=1*2;C、int a2;scanf(“%d”,a);D、int a2;a1=1;答案:D5、下面程序的运行结果是(
11、)。main()int a6,i;for(i=1;i3)%5;printf(%2d,ai);A、-4 0 4 0 4B、-4 0 4 0 3C、-4 0 4 4 3D、-4 0 4 4 0答案:C6、下列定义正确的是()。A、int a4=1,2,3,4,5;B、int b=2,5;C、int a(10);D、int 4e4;答案:B7、若有说明 int a4=0,0;则下列叙述不正确的是()。A、数组 a 的每个元素都可以得到初值0。B、二维数组 a 的第一维的大小为 1。C、数组 a 的行数为 1,但是有 4 个元素。D、只有元素 a00和 a01可得到初值 0,其余元素均得不到初值答案:
12、D8、设有 char str10;下列语句正确的是()。A、scanf(%s,&str);B、printf(%c,str);C、printf(%s,str0);D、printf(%s,str);答案:D9、下列说法正确的是()。A、在 C 语言中,可以定义元素个数可变的数组。B、在 C 语言中,数组元素的个数可以不确定,允许随机变动。C、在 C 语言中,数组元素的数据类型可以不一致。D、在 C 语言中,定义了一个数组后,就确定了它所容纳的具有相同数据类型元素的个数。答案:D10、假设 array 是一个有 10 个元素的整型数组,则下列写法中正确的是()。A、array0=10;B、array
13、=0;C、array10=0;D、array-1=0;答案:A11、分析下列程序运行后,输出的结果是()。main()int n3,i,j,k;for(i=0;i3;i+)ni=0;k=2;for(i=0;ik;i+)for(j=0;jk;j+)5/15nj=ni+1;printf(%dn,n1);A、2B、1C、0D、3答案:D12、若有以下定义:int a5=5,4,3,2,1 ;char b=a,c,d,e;则下面表达式中数值为 2 的是()。A、a 3B、a ecC、a d-bD、a e-b答案:A13、下面几个字符串处理表达式中能用来把字符串str2 连接到字符串 str1 后的一个
14、是()。A、strcat(str1,str2);B、strcat(str2,str1);C、strcpy(str1,str2);D、strcmp(str1,str2);答案:A14、设有两字符串“Beijing”、“China”分别存放在字符数组str120,str220中,下面语句中能把“China”连接到“Beijing”之后的为()。A、strcpy(str1,str2);B、strcpy(str1,“China”);C、strcat(str1,“China”);D、strcat(“Beijing”,str2);答案:C15、若有如下定义:,则下列语句的输出结果是()。int a33=1
15、,2,3,4,5,6,7,8,9,i;for(i=0;i2)return(fib(n-1)+fib(n-2);else return(2);main()printf(“%dn”,fib(3);A2B4C6D 84.有以下程序,执行后输出的结果是。void f(int x,int y)int t;if(xy)t=x;x=y;y=t;main()int a=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf(%d,%d,%dn,a,b,c);A)3,4,5B)5,3,4C)5,4,3D)4,3,55.以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。在下划线处应填
16、入的是。#define N 10void arrin(int xN)int i=0;while(iy)?x:y;return(z);f2(int x,int y)int z;z=(xy)?x:y;return(z);A)3,4,5 B)5,3,4 C)5,4,3 D)3,5,49.以下程序的输出结果是。int f(void)static int i=0;int s=1;s+=i;i+;return(s);main()int i,a=0;for(i=0;i5;i+)a+=f();printf(“%dn”,a);A)1 B)0 C)非 0 的数 D)110.以下 C 语言中,对函数不正确的描述是。
17、A)当用数组名作形参时,形参数组改变可使实参数组随之改变B)允许函数递归调用C)函数形参的作用范围只是局限于所定义的函数内D)函数说明必须在主调函数之前11.以下所列的各函数首部中,正确的是。A)void play(var:Integer,var b:Integer)B)void play(int a,b)C)void play(int a,int b)D)Sub play(a as integer,b as integer)12.以下叙述中不正确的是。A)在 C 中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。B)在 C 中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。C)
18、在 C 中,外部变量的隐含类别是自动存储类别。D)在 C 中,函数形参可以说明为register 变量。13.以下对 C 语言函数的有关描述中,正确的是。A)在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B)C 函数既可以嵌套定义又可以递归调用C)函数必须有返回值,否则不能使用函数8/15D)C 程序中有调用关系的所有函数必须放在同一个源程序文件中14.一个数据类型为 void 的函数中可以没有 return 语句,那么函数的被调用时。A)没有返回值 B)返回一个系统默认值 C)返回值由用户临时决定 D)返回一个不确定的值15.在下面的函数声明中,存在着语法错误的是。
19、A)BC(int a,int);B)BC(int,int);C)DC(int,int=5);D)BC(int x,int y);16.以下函数值的类型是。fun(float x)float y;y=3*x-4;return y;A)int B)不确定 C)void D)float17.下面程序的输出结果是:。int m=13;int fun(int x,int y)int m=3;return(x*y-m);main()int a=7,b=5;printf(“%dn”,fun(a,b)/m);A)1 B)2 C)7 D)1018.若有说明语句:static int a34=0;则下面叙述正确的
20、是。A)只有 a00元素可得到初值 0;B)数组 a 中每个元素均可得到初值0。C)数组 a 中各元素都可得到初值,但值不一定为0;D)此说明语句不正确19.以下不正确的说法为。A)在不同函数中可以使用相同名字的变量。B)形式参数是局部变量。C)在函数内定义的变量只在本函数范围内有效。D)在函数内的复合语句中定义的变量在本函数范围内有效。20.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为。A)自动(auto)B)静态(static、C)外部(extern)D)寄存器(register)21.下面程序的输出结果是:。int f(int a)int b=0;static int c=3;
21、b+;c+;return(a+b+c);main()int a=2,i;for(i=0;i2)return(fib(n-1)+fib(n-2);else return(2);main()printf(“%dn”,fib(3);A)2B)4C)6D)825.有以下程序,执行后输出的结果是。void f(int x,int y)int t;if(xy)t=x;x=y;y=t;main()int a=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf(%d,%d,%dn,a,b,c);A)3,4,5B)5,3,4C)5,4,3D)4,3,526.以下函数的功能是:通过键盘输入
22、数据,为数组中的所有元素赋值,在下划线处应填入的。#define N 10void arrin(int xN)int i=0;while(iN)scanf(%d,_);A)x+iB、)&xi+1C)x+(i+)D)&x+i27.以下叙述中正确的是。A)全局变量的作用域可以扩展到所有文件。B)静态(statiC)类别变量的生存期贯穿于整个程序的运行期间。C)函数的形参都属于全局变量。D)未在定义语句中赋初值的auto 变量和 static 变量的初值都是随机值28.以下程序的输出结果是。int f()static int i=0;int s=1;s+=i;i+;return(s);main()i
23、nt i,a=0;for(i=0;ib)c=1;else if(a=b)c=0;else c=-1;return(c);A)1,0B)2,0C)2,-130.以下函数值的类型是。fun(float x)float y;y=3*x-4;return y;A)intB)不确定C)voidD)1,1D)float第第 8 8 章章 指针指针 基本概念练习题基本概念练习题1.有以下程序:编译时出现错误,以下叙述中正确的是。main()char a,b,c,*d;a=;b=xbc;c=0 xab;d=0127;printf(%c%c%c%cn,a,b,c,*d);A)程序中只有 a=;语句不正确。B)b
24、=xbc;语句不正确。C)d=0127;语句不正确。D)a=;和 c=0 xab;语句都不正确。2.若有如下一些定义和语句,则下列四个选项中错误的语句是。int a=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;A)*q=0;B)w=p;C)*p=&a;D)*p=*w;3.对于基类型相同的两个指针变量之间,不能进行的运算是。A)=0;ps-)puts(ps);A)yzB)zC)zD)xxyzyzyzxyxyzxyz7.有如下说明 int a10=1,2,3,4,5,6,7,8,9,10,*p=a;则数值为 9 的表达式是。A)*p+9B)*(p+8)C)*p+=9D)
25、p+88.有如下程序段,执行该程序段后,a 的值为。int*p,a=10,b=1;p=&a;a=*p+b;A)12B)11C)10D)编译出错9.若有说明:int i,j,*p=&i;则下面语句中与 i=j;等价的语句是:。A)*p=*&j;B)i=*pC)i=&j;D)i=*p10.若有如下语句:int*p1,*p2;则其中 int 所指的是。A)p1 的类型B)*p1 和*p2 的类型C)p2 的类型D)p1 和 p2 所能指向变量的类型11.执行以下程序后,a 的值为。int*p,a=10,b=1;p=&a;a=*p*b;A)12B)编译出错C)10D)112.已定义:int a9,*p
26、=a;并在以后的语句中未改变p 的值,则不能表示 a1地址的表达式是。A)p+1B)a+1C)a+D)+p13.以下程序段的输出结果是。char a=9,8,7,6,5,4,3,2,1,0,*p=a+5;printf(“%d”,*-p);A)非法B)a4的地址C)3D)514.若有以下定义和语句,则输出结果是。int*pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf(%d,%dn,*p,*pp);A)10,20B)10,10C)20,10D)20,2015.若有以下定义和语句,则输出结果为。char*sp=”tb0Englishn”;printf(“%d”,strl
27、en(sp);A)12 B)3C)17D)1316.以下程序输出的结果是。main()int a=5,*p1,*p2;p1=&a,p2=&p1;(*p1)+;printf(“%dn”,*p2);A)5B)4C)6D)不确定17.设有:void f1(int*m,long n);int a;long b;则以下函数调用合法的是。A)f1(a,b);B)f1(&a,b);C)f1(a,&b);D)f1(&a,&b);第 9 章-结构体 基本概念练习题1、设有如下定义,则对data 中的 a 成员的正确引用是()。struct sk12/15int a;float b;data,*p=&data;A
28、)(*p).data.aB)(*p).aC)p-data.aD)p.data.a2、当定义一个结构体变量时,系统分配给它的内存容量是()。A)各成员所需内存量的总和B)结构中第一个成员所需内存量C)成员中占内存量最大者所需的容量D)结构中最后一个成员所需内存量3、以下程序运行后的输出结果是()。struct STUchar num10;float score3;main()struct STU s3=20021,90,95,85,20022,95,80,75,20023,100,95,90,*p=s;int i;float sum=0;for(i=0;iscorei;printf(%6.2fn
29、,sum);A)260.00B)270.00C)280.00D)285.004、以下程序运行后的输出结果是()。struct STUchar num10;float score3;main()struct STU s3=20021,90,95,85,20022,95,80,75,20023,100,95,90;int i;float sum=0;for(i=0;i3;i+)sum=sum+si.scorei;printf(%6.2fn,sum);A)260.00B)270.00C)280.00D)285.005、若程序中有下面的说明和定义:structsttint x;char b;struc
30、t stt a1,a2;则会发生的情况是()。A)程序将顺利编译、连接、执行。B)编译出错。C)能顺利通过编译、连接,但不能执行。D)能顺利通过编译,但连接出错。6、设有如下说明语句,则以下叙述不正确的是()。struct stuint a;float b;stutype;A)struct 是结构体类型的关键字B)struct stu 是用户定义的结构体类型C)stutype 是用户定义的结构体类型名D)a 和 b 都是结构体成员名1-9 章基本概念练习题参考答案13/15第 1-5 章1D2B3C4A5C6D7C8B9C101112131415BDBBAA161718192021222324
31、252627282930DDCDCBCBAADDBCC注:第 21 题的 B、D 项重复了,将 D 项改为 34第 6 章 数组1B13A第 7 章 函数1A2D3B4D5C6C7B8C9C101112131415DCCAAC2D14C3C15A4D16C5C17C6B18D7D19D8D20D9D21C1011A22CD23C12A161718192021222324252627282930ABBDADADBDCBCBA注:第 23、25、27、30 题分别与第 2、4、7、16 题相同第 8 章 指针12345678910 11 12 13 14 15 16 17DCCCBCBBADCCDDBCB14/15第 9 章 结构体1B2A3B4A5B6C15/15