C语言C章节习题

上传人:微*** 文档编号:168529962 上传时间:2022-11-10 格式:DOCX 页数:57 大小:73.59KB
返回 下载 相关 举报
C语言C章节习题_第1页
第1页 / 共57页
C语言C章节习题_第2页
第2页 / 共57页
C语言C章节习题_第3页
第3页 / 共57页
点击查看更多>>
资源描述
第2章程序的灵魂算法、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正 确选项填涂在答题卡相应位置上。)2. 1以下叙述中正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晩,具有其他语言的一切优点正确答案:C2.2以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在个函数中定义另个函数 main 函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义正确答案:A2.3以下说法正确的是A) C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main 函数中定义 C语言程序总是从main 函数开始执行D) C语言程序中的main 函数必须放在程序的开始部分正确答案:C2.4 C语言规定,在一个源程序中,main函数的位置A)必须在最开始B)必须在系统调用的库函数的后面可以任意D)必须在最后正确答案:C2.5 以下叙述不正确的是A) 一个C源程序可由一个或多个函数组成B) 个C源程序必须包含个main函数 C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面正确答案:D2.6 下列叙述中正确的是A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种 C语言的函数可以嵌套定义D) C语言的函数可以嵌套调用正确答案:D2.7 以下叙述正确的是A)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,是只能用于整数运算的运算符正确答案:D2.8 以下说法错误的是A) 个算法应包含有限个步骤B)在计算机上实现的算法是用来处理数据对象的算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现D)算法的目的是为了求解正确答案:C2.9 算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性 的是A)有零个输入或多个输入B)高效性有穷性D)确定性正确答案:B2. 10下列关于C语言的说法不正确的是A) C语言既具有高级语言的切功能,也具有低级语言的一些功能B) C语言中的每一条执行语句都必须用分号结束,分号不是C语言的一部分,是语句之间 的分隔符号注释可以出现在程序中任意合适的地方D)命令行后面不能加分号,命令行不是C语言的语句正确答案:B2. 11以下说法错误的是A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式B)计算机只能处理由。和1的代码构成的二进制指令或数据 C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件D)每种高级语言都有它对应的编译程序正确答案:C3. 12 C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B) if, switch, breakC) for, while, do-whileD) if, for, continue正确答案:A二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)2. 13用高级语言编写的程序称为【1】程序,它可以通过解释程序翻译一句执行一句的方式 执行,也可以通过编译程序一次翻译产生目标程序,然后执行。正确答案:源程序3. 14 C语言程序的注释可以出现在程序中的任何地方,个注释以【2】作为开始和结束。正确答案:/* */第3章数据类型运算符与表达式、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正 确选项填涂在答题卡相应位置上。)4. 1 C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型 整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案:B4.2 C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A)必须为字母B)必须为下划线必须为字母或下划线D)可以是字母,数字和下划线中任一字符正确答案:C4.3 下列可用于C语言用户标识符的组是A) void, define, WORDB) a3_b3,123, CarC) For, -abc, IF CaseD) 2a, DO, sizeof正确答案:B4.4 下面四个选项中,均是不正确的8进制数或16进制数的选项是A) 016 0x8f 018B) Oabc 017 OxaC) 010 -0x11 0x16D) 0al2 7ff -123正确答案:D4.5 下列数据中,不合法的C语言实型数据的是A) 0. 123B) 123e3C) 2. Ie3. 5D) 789. 0正确答案:C4.6 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是 A) a=20000+20000;B) a=4000*10;C) a=30000+10000;D) a=4000L*10L;正确答案:D3. ?若有说明语句:char c- 72;则变量cA)包含1个字符B)包含2个字符包含3个字符D)说明不合法,c的值不确定正确答案:A3.8 有字符串如下,n407asi”xabc”,则字符串的长度为A) 6B) 7C) 8D) 9正确答案:D3.9 C语言中运算对象必须是整型的运算符是A) %=B) /C)=D) =正确答案:A3. 10若变量已正确定义并赋值,以下符合C语言语法的表达式是A) a:=b+lB) a=b=c+2C) int 18.5%3D) a=a+7=c+b正确答案:B3. 1I若变量a, i已正确定义,且i已正确赋值,合法的语句是A) a= =1B) +i;C) a=a+=5;D) a=int (i);正确答案:B3. 12 若有定义: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.000000正确答案:A3. 13若有运算符v, sizeof,二&=,则它们按优先级由高至低的正确排列次序是A) sizeof, &=, ,B) sizeof, , , &=C) , , sizeof, &=D) 456空格789回车)输出结果是 main () char s 100 ; int c, i;scanf (祝,&c) ; scanf (%d,&i) ; scanf (%s,s); printf (%c, %d, %s n, c, i, s) ;A) 123,456, 789B) 1,456, 789C) 1,23,456, 789D) 1,23,456正确答案:D4.7 若己定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后 a=25&by后,变量z的值为A) 0B) 1 4D) 5正确答案:B5.3 能正确表示逻辑关系:“a210或aWO”的C语言表达式是A) a=10 or a=0|a=10 &a=10 II a=0正确答案:D5.4 若变量c为char类型,能正确判断出c为小写字母的表达式是 A) a =c=a ) | (c= z) 0( a =c) D) (c= a ) & (cb) & (n=cd)后n的值是A) 1B) 2C) 3D) 4正确答案:B5.9已知x,y,z均为整型变量,且值均为1,则执行语句+x| |+y&+z;后,表达式x+y的 值为A) 1B) 2C) 3D) 4正确答案:C5. 10表达式aA) |B) &C) 12?x+10:x-12;printf (%dn, y);IA) 0B) 22C) 12D) 10正确答案:A5.12已知char ch=C ;则以下表达式的值是ch= (ch=, A & ch=/ Z ) ? (ch+32) :ch;A) AB) aC) ZD) c正确答案:D5. 13若有条件表达式(exp) ?a+:b-,则以下表达式中能完全等价于表达式(exp)的是A) (exp=0)B) (exp!=0)C) (exp=l)D) (exp!=l)正确答案:B5. 14有以下程序main ()int i=l, j=l,k=2;if (j+|k+) &i+)printf (*%d, %d, %dn* i, j, k);执行后输出结果是A) 1, 1,2B) 2,2, 1C) 2,2,2D) 2,2,3正确答案:C5. 15请阅读以下程序:main () int a=5, b=0, c=0;if (a=b+c) printf (*n);else printf ($ $ $ n);以上程序A)有语法错不能通过编译B)可以通过编译但不能通过连接C)输出*D)输出$ $ $正确答案:D5. 16若执行下述程序时,若从键盘输入6和8时,结果为 main ()int a, b, s;scanf (%d%d”, &a, &b);s=a;if (as=b;s*=s;printf (%d”, s);A) 36B) 64C) 48D)以上都不对 正确答案:B 5. 17有如下程序 main () float x=2. 0,y;if (x0.0) y=0. 0;else if (x10. 0) y=l. 0/x;else y=l. 0;printf (%fn, y) ; 该程序的输出结果是A) 0. 000000B) 0. 250000C) 0. 500000D) 1.000000 正确答案:C5. 18以下4个选项中,不能看做一条语句的是 A);B) a=5,b=2. 5, c=3.6;C) if (a30?b:c;switch (d) case 30 : printf (%d, ”, a);case 40 : printf (%d, , b);case 50 : printf (%d, c);default : printf (#) ;则输出的结果是A) 40, 50,B) 50,#C) 40,#D) 40,50,#正确答案:D5.21现有如下程序段,此程序段编译有错误,则程序段的错误出在includemain () int a=30, b二40, c=50, d;d=a30?b:c;switch (d) case a:printf (%d, , a);case b:printf (%d, , b);case c:printf (%d, , c);default:printf (#) ;A) default:printf (#);这个语句B) d=a30?b:c;这个语句C) case a:printf (%d, , a) ; case b:printf (%d, , b) ; case c:printf (%d, , c) 这三个语句D) switch (d)这个语句正确答案:C二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)5.22设y是int型,请写出y为奇数的关系表达式【1】正确答案:(y%2)=l 或(y%2) !=05. 23 设 int a=5, b=6,表达式( + +ab- -)?+a:-b 的值是2 正确答案:75. 24将以下程序写成三目运算表达式是【3】if (ab) max=a;else max二b;正确答案:max=(ab)?a:b;5. 25以下程序输出的结果是main () int a=5, b=4, c=3, d;d= (abc);printf (%dn, d);)正确答案:5.26若从键盘输入58,则以下程序输出的结果是【5】main ()int a;scanf (%d,&a);if (a50) printf (%d”, a);if (a40) printf (%d”, a);if (a30) printf (%d”, a); 正确答案:5858585. 27阅读下面语句,则程序的执行结果是6 include stdio. hmain () int a=l, b=l, k;if (+a) &! (b- -二)printf (*%d, %dn*, a, b);else printf (%d, %dn”, b, a) ;正确答案:1,05. 28阅读下面程序,则在执行时候的输出为【7】#include stdio. hmain ()int x=l, y=2,z=0;if (x=2) z=x,x=y,y=z;printf (%d, %d n, x, y) ;正确答案:2,25. 29以下程序的输出结果是8main () int x=100, a=10, b=20, okl=5, ok2=0;if (aelse if (ok2) x=10;else x=l;printf (%dn, x) ;正确答案:-15. 30阅读下面的程序,当程序在执行时,如果输入的是A,,则输出结果为【9】#include stdio. hmain ()char a;a=getchar ();switch (a) case 65: printf (%c, A);case 66: printf (机,B);default :printf (%s n,other) ;正确答案:ABother第6章循环控制、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正 确选项填涂在答题卡相应位置上。)6. 1对表达式for (表达式1;表达式3)可理解为A) for (表达式1;表达式3)B) for (表达式1; 1;表达式3) for (表达式1;表达式1;表达式3)D) for (表达式1;表达式3;表达式3)正确答案:B6.2在下列选项中,没有构成死循环的是A) int i=100;while (1)i=i0+l;if (i100) break;B) for (;);C) int k=10000;do(k+;while (k10000);D) int s=36;while (s) -s;正确答案:D6. 3下面有关for循环的正确描述是A) for循环只能用于循环次数已经确定的情况B) for循环是先执行循环体语句,后判断表达式在for循环中,不能用break语句跳出循环体D) for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来正确答案:D6. 4若int i, j;,则for (i=j=O; i 10&j8;i+, j+=3)控制的循环体执行的次数是A) 9B) 8 3D) 2正确答案:CC) 5阅读下列程序段,则程序的输出结果是 include stdio. h main () int a=10, b=10, k; for (k=0;a8;b=+k) printf (*%d, %d, *, a, - -b);printf (n) ;A) 10, 10, 10, 0,B) 10,9,9,0,C) 10, 10, 9, 1,D) 9,9, 9, 1,考生答案:正确答案:B6.6有一堆零件(100到200之间),如果分成4个零件组的若干组,则多2个零件;若分成7 个零件组,则多3个零件;若分成9个零件组,则多5个零件。下面程序是求这堆零件总 数,请选择填空。#include main () int i;for (i=100;i200;i+) if (i-2) %4=0)if (! (i-3) %7) if () printf (%d”, i);A) i%9=5B) i%9!=5C) (i-5) %9!=0D) (i-5) %9=0 正确答案:D6.7下列程序的输出结果是#include stdio. hmain () int i, a=0, b=0; for (i=l;i2泄-) k二;for (n=m;nl;n)k=k+m*n;printf (%fn”, k);A) 5. 000000B) 15. 000000C) 25. 000000D) 35. 000000 正确答案:B 6. 10下面程序的运行结果是 #include stdio. h main () int j,i,k=0; for (j=50;j=j-l) printf (%d”,j); k+; A) 5359 B) 5953 C) 3595 D) 9535 正确答案:A 6. 11已知 int t=0; while (t=l) .) 则以下叙述正确的是 A)循环控制表达式的值为0 B)循环控制表达式的值为1 循环控制表达式不合法 D)以上说法都不对 正确答案:B6. 12设有以下程序段int x=0,s=0;while (!x!=0) s+=+x; printf (%d,s);则A)运行程序段后输出。B)运行程序段后输出1程序段中的控制表达式是非法的D)程序段执行无限次 正确答案:B6. 13下列程序的输出结果是 ttinclude stdio. h main () int i=6;while (i)printf-i);printf (n) ;A) 531B) 420C) 654321D)死循环 正确答案:B6. 14对下! , 1【两个语句描述正确的是I . while (1) II. for (;)A)都是无限循环B)【是无限循环,n错误1循环一次,II错误D)以上答案都错 正确答案:A6. 15以下程序段的描述,正确的是 x=l;do x=x*x; while (!x);A)是死循环B)循环执行两次 循环执行一次D)有语法错误 正确答案:C6. 16若有如下语句 int x=3;do printf (%dn”, x-=2) ;while ( ! (x);则上面程序段A)输出的是1B)输出的是1和一2输出的是3和。D)是死循环 正确答案:B 6. 17下面程序的运行结果是 #include main () int a=l,b=10; do b-=a; a+; wh i1e (b- -0); printf (*a=%d, b=%d n, a, b);A) a=3,b=ll B) a=2, b=8 C) a=l, b=-l D) a=4, b二9 正确答案:B6. 18若运行以下程序时,从键盘输入ADescriptor (表示回车),则下面程序的运行结果是 #include main () char c;int vO=l, vl=0, v2=0;doswitch (c=getchar 0 ) case a :case A: case ez :case E: case i :case J : case , :case O: case u :case U :vl+=l; default:v0+=l;v2+=l; while (c! = n);printf (*vO=%d, vl=%d, v2=%dn*, vO, vl, v2) ;A) v0=7,vl=4,v2=7B) v0=8, vl=4, v2=8C) vO=ll, vl=4, v2=llD) v0=13, vl=4, v2=12 正确答案:D6. 19下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选 择填空。#includemain () int i=0,j, k;do i+; k=316-13*i; while ();j=k/ll;printf (*316=13*%d+ll*%d*, i, j);)A) k/11B) kC) k/ll=OD) k=0正确答案:B6. 20 C语言中while和do-while循环的主要区别是A) do-while的循环体至少无条件执行一次B) while的循环控制条件比do-while的循环控制条件更严格C) do-while允许从外部转到循环体内D) do-while的循环体不能是复合语句正确答案:AE) 21下列说法中错误的是A)只能在循环体内使用break语句B)在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环C)在while和dwhile循环中,continue语句并没有使整个循环终止D) continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再 次进行循环判断正确答案:A二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)6. 22设i, j, k均为int型变量,则执行完下面的for语句后,k的值为【1for (i=0, j=10; i=j; i+, j -)k=i+j;正确答案:106. 23下列程序的功能是输入个整数,判断是否是素数,若为素数输出1,否则输出,请 填空。main ()int i, x, y=l;scanf (%d, &x);for (i=2; i0; y)if (y%3= =0) printf (%d, y) ; continue; )正确答案:8526. 25阅读下面程序段,则执行后的输出结果为【4】#include stdio. hmain () int a=l;for (;a=15;)if (+a%5!=2) continue;else printf (%d, a);printf (n) ; 正确答案:27126. 26阅读下面语句,则执行后的输出结果为【5】#include stdio. hmain ()char a,b;for (a=,b=9 ;aprintf (%c%c, a, b);printf (n) ; 正确答案:09182736457. 27阅读下面程序,则执行后程序的结果为6#include stdio. hmain () int a二。,b二。;while (a15) a+;while (b+15);printf (%d, %dn, a, b) ; 正确答案:15,16第7章数组、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正 确选项填涂在答题卡相应位置上。)8. 1若有说明int a 3 4;则a数组元素的非法引用是A) a 0 2*1B) a 1 3C) a 4-2 0D) a 0 4正确答案:D1.2 在C语言中,引用数组元素时,其数组下标的数据类型允许是A)整型常量B)整型表达式整型常量或整型表达式D)任何类型的表达式正确答案:C1.3 执行下面的程序段后,变量k中的值为int k=3, s 2;s 0 =k; k=s 1 *10;A)不定值B) 33C) 30D) 10正确答案:A7.4定义如下变量和数组:int k;int a 3 3 =9, 8, 7,6, 5, 4, 3, 2,1;则下面语句的输出结果是for (k=0;k3;k+) printf a k k);A) 7 5 3B) 9 5 10 9 6 3D) 7 4 1正确答案:B7. 5下列程序执行后的输出结果是main () char arr 2 4;strcpy (arr, you);strcpy (arr 1 , me);arr 0 3 =;printf (%s n, arr);A) you&meB) youC) meD) err 正确答案:A7. 6设有数组定义:char array =China;则数组array所占的空间为A) 4个字节B) 5个字节 6个字节D) 7个字节 正确答案:C 7.7以下不正确的定义语句是A) double x 5 =2.0,4. 0, 6. 0,8.0,10.0;B) int y 5 =0,1,3, 5, 7,9;C) char cl = 1 , , 2 J 3 J 4 J 5 ;D) char c2 = xl0 , xa , x8 ;正确答案:B7.8若有说明:int a 3 =1, 2, 3, 4, 5,6, 7;则a数组第一维的大小是A) 2B) 3C) 4D)无确定值 正确答案:B 7.9对以下说明语句的正确理解是 int a 10 = 6, 7,8,9, 10;A)将5个初值依次赋给a 1至a 5B)将5个初值依次赋给a 0至a 4C)将5个初值依次赋给a 6至a 10D)因为数组长度与初值的个数不相同,所以此语句不正确 正确答案:B7. 10若有说明:int a 4 =0, 0;则下面不正确的叙述是A)数组a的每个元素都可得到初值B)二维数组a的第一维大小为1当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小 D)只有元素a 0 0和a 0 1可得到初值,其余元素均得不到确定的初值 正确答案:D7. 11有以下程序main () char a = a , b , c d , e , f , g h 、;int i, j;i=sizeof (a);j=strlen (a);printf (*%d, %db*, i, j);程序运行后的输出结果是A) 9,9B) 8,9 !,8D) 9,8正确答案:D7. 12假定int类型变量占用两个字节,其有定义:int x 10 =0,2,4);则数组x在内 存中所占字节数是A) 3B) 6 !0D) 20正确答案:D7. 13以下能对二维数组c进行正确的初始化的语句是A) int c 3 Q =3,,;B) int c 3 =3,3, 4; int c 3 2 =3,,5;D) int c 3 =3, ,3;正确答案:B7. 14在C语言中,维数组的定义方法为类型说明符数组名A)常量表达式B)整型常量 整型变量D)整型常量或整型表达式正确答案:A7. 15若二维数组a有m列,则计算任一元素a i j在数组中相对位置的公式为(假 设a 0 0位于数组的第一个位置上)A) i*m+jB) j*m+IC) i*m+j-lD) i*m+j+l正确答案:A7. 16下面程序输出的结果是main () int i;int a 3 3 =1,2, 3, 4, 5, 6, 7,8,9;for (i=0:i3;i+)printf (*%d ”, a 2-i i);A) 1 5 9B) 7 5 30 3 5 7D) 5 9 1正确答案:B7. 17以下不能对二维数组a进行正确初始化的语句是A) int a 2 3 =0;B) int a 0 3 =1,2, 0); int a 2 3 =1,2, 3, 4, 5,6;D) int a 3 =1,2,3, 4, 5, 6;正确答案:C7. 18阅读下面程序,则程序段的功能是#include stdio. hmain () int c =23, 1,56, 234, 7, 0, 34, i, j, t;for (i=l;i=0 & tc j)c j+1 =c j ;j-;c j+1 =t;)for (i=0;i7;i+)printf (%d , c i);putchar (,n);)A)对数组元素的升序排列B)对数组元素的降序排列对数组元素的倒序排列D)对数组元素的随机排列正确答案:B7. 19下列选项中错误的说明语句是A) char a =z t , 9 o , yr , r o1 , u,, f 0 );B) char
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!