C语言 C章节习题题库

上传人:微*** 文档编号:168529717 上传时间:2022-11-10 格式:DOCX 页数:57 大小:71.17KB
收藏 版权申诉 举报 下载
C语言 C章节习题题库_第1页
第1页 / 共57页
C语言 C章节习题题库_第2页
第2页 / 共57页
C语言 C章节习题题库_第3页
第3页 / 共57页
资源描述:

《C语言 C章节习题题库》由会员分享,可在线阅读,更多相关《C语言 C章节习题题库(57页珍藏版)》请在装配图网上搜索。

1、第2章程序的灵魂一算法、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正 确选项填涂在答题卡相应位置上。)2. 1以下叙述中正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点正确答案:CD) 2以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在个函数中定义另个函数C) main ()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义正确答案:AE) 3以下说法正确的是A) C语言程序总是从第一个的函数

2、开始执行B)在C语言程序中,要调用函数必须在main 函数中定义C) 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) C

3、语言的函数可以嵌套定义D) C语言的函数可以嵌套调用正确答案:D2.7 以下叙述正确的是A)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,%是只能用于整数运算的运算符正确答案:D2.8 以下说法错误的是A) 一个算法应包含有限个步骤B)在计算机上实现的算法是用来处理数据对象的C)算法中指定的操作,不能通过己经实现的基本运算执行有限次后实现D)算法的目的是为了求解正确答案:C2. 9算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性 的是A

4、)有零个输入或多个输入B)髙效性有穷性D)确定性正确答案:B2. 10下列关于C语言的说法不正确的是2.1 C语言既具有髙级语言的一切功能,也具有低级语言的:些功能2.2 C语言中的每一条执行语句都必须用分号结束,分号不是C语言的一部分,是语句之间 的分隔符号注释可以出现在程序中任意合适的地方D)命令行后面不能加分号,命令行不是C语言的语句正确答案:B2.11 以下说法错误的是A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式B)计算机只能处理由。和1的代码构成的二进制指令或数据 C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件D)每种高级语言都有它对

5、应的编译程序正确答案:C2.12 C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B) if, switch, breakC) for, while, do-whileD) if, for, continue正确答案:A二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)2.13用高级语言编写的程序称为【源】程序,它可以通过解释程序翻译一句执行一句的方 式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。正确答案:源程序2. 14 C语言程序的注释可以出现在程序中的任何地方,一个注释以【/* 作为开始和 结束。正确答案:/* */第3章数据类型运算符与表达

6、式、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正 确选项填涂在答题卡相应位置上。)3.1 C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案:B3.2 C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母,数字和下划线中任一字符正确答案:C3.3 下列可用于C语言用户标识符的一组是A) void, define, WORDB) a3_b3, _123, CarC) For, -abc, IF CaseD)

7、 2a, DO, sizeof正确答案:B3.4 下面四个选项中,均是不正确的8进制数或16进制数的选项是A) 016 0x8f 018B) Oabc 017 OxaC) 010 -0x11 0x16D) 0al2 7ff -123正确答案:D3.5 下列数据中,不合法的C语言实型数据的是A) 0. 123B) 123e3C) 2. Ie3. 5D) 789.0正确答案:C3.6 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是 A) a=20000+20000;B) a=4000*10;C) a=30000+10000;D) a=4000L*10L;正确答案:D3

8、.?若有说明语句:char c= 72;则变量cA)包含1个字符B)包含2个字符包含3个字符D)说明不合法,c的值不确定正确答案:A3.8 有字符串如下,n407asi”xabc,则字符串的长度为A) 6B) 7C) 8D) 9正确答案:D3.9 C语言中运算对象必须是整型的运算符是A) %=B) / =D) 456空格789回车输出结果是main () char s 100 ; int c, i;scanf; scanf (观“,&i) ; scanf (%s, s);printf (%c,%d, %sn,c, i, s) ;A) 123, 456, 789B) 1,456, 789C) 1

9、,23,456, 789D) 1,23, 456正确答案:D4.7 若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后 a=25&by后,变量z的值为A) 0B) 1C) 4D) 5正确答案:B5.3能正确表示逻辑关系:“210或辽0”的C语言表达式是A) a=10 or a=0|a=10 &a=10 | a= a ) | (c= z)C) ( a =c)D) (c= a ) & (cb) & (n=cd)后n的值是A) 1B) 2C) 3D) 4正确答案:B5. 9已知x, y, z均为整型变量,且值均为1,则执行语句+x| |+y&+z;后,表达式x+

10、y的 值为A) 1B) 2C) 3D) 4正确答案:C5. 10表达式aA) |B) &C) 12?x+10:x-12;printf (%dn*, y);)A) 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) 正确答案:B 5. 14有以下程序 main

11、 () int i=l, j=l, k=2; if (j+|k+) &i+) printf (*%d, %d, %d n*, i, j, k); 执行后输出结果是A) 1, 1,2B) 2,2, 1C) 2, 2,2 D) 2,2,3 正确答案:C 5.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

12、() int a, b, s;scanf (&a, &b);s=a; if (a s=b; s*=s; printf s);A) 36B) 64C) 48D)以上都不对正确答案:B5. 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=

13、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 C%d, , a);case b

14、:printf (%d, , b);case c:printf (%d, , c);default:printf (#) ;A) default:printf (#);这个语句B) d=a30?b:c;这个语句C) case a:printf C%d, , a) ; case b:printf C%d, , b) ; case c:printf (%d, , c); 这三个语句D) switch (d)这个语句正确答案:C二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)5.22设y是int型,请写出y为奇数的关系表达式【1】正确答案:(y%2)=! 或(y%2) !=05. 23 设

15、 int a=5, b=6,表达式( + +a=b- -) ?+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 a);if (a40) printf (刎,a);if (a30) printf

16、 (%d, a);正确答案:5858585.27 阅读下面语句,则程序的执行结果是【6】#include stdio. hmain () int a=-l, b=l, k;if (+a0) &! (b- -100) break;)B) for (;);C) int k=10000;dok+;while (k10000);D) int s=36; while (s) -s;正确答案:D6. 3下面有关for循环的正确描述是A) for循环只能用于循环次数已经确定的情况B) for循环是先执行循环体语句,后判断表达式在for循环中,不能用break语句跳出循环体D) for循环的循环体语句中,可以

17、包含多条语句,但必须用花括号括起来正确答案:D6. 4若int i,j;,则for (i=j=0;i10&j8;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个零件。下面程序是求这堆零件总 数,请选择填空。#includemain () int i;for (i=100;i20

18、0;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;m-) k=0;for (n=m;nl;n)k=k+m*n;printf (%f n”, k);)A) 5. 000000B) 15.000000C) 25. 000000D) 35. 000000 正确答案:B6.10 下面程序的运行结果是 #includ

19、e “stdio. h main () int j, i, k=0;for (j=50;j=j-l) printf j);k+; A) 5359B) 5953C) 3595D) 9535 正确答案:A6. 11已知 int t=0; while (t=l) 则以下叙述正确的是A)循环控制表达式的值为 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 正确答案:B6.12 设有以下程序段 int x=0, s=0;while (!x!=0) s+=+x;printf s);则A)运行程序段后输出B)运行程序段后输出1程序段中的控制表达式是非法的D)程序段执行无限次 正确答

20、案:B6.13 下列程序的输出结果是 ttinclude stdio. h main () int i=6;while (i)printf i);printf (n) ;A) 531B) 420C) 654321D)死循环 正确答案:B6. 14对下I , U两个语句描述正确的是I . while (1) II. for (;)A)都是无限循环B) I是无限循环,II错误 I循环一次,II错误D)以上答案都错 正确答案:A6.15以下程序段的描述,正确的是 x=-l;do x=x*x;while (!x);A)是死循环B)循环执行两次C)循环执行次D)有语法错误正确答案:c6. 16若有如下语

21、句 int x=3;do printf (%dn”, x-=2) ;while (! (x);则上面程序段A)输出的是1B)输出的是1和-2输出的是3和0D)是死循环 正确答案:B 6.17下面程序的运行结果是 #include main () int a=l,b=10; do b-=a; a+; while (b0);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 (表示回车),则下面程序的运行结果是 #i

22、nclude main () char c;int vO=l, vl=0, v2=0;doswitch (c=getchar ()casea:caseA,:case e:case E,:case i,:case I:case ,:case :case u:case U :vl+=ldefault:v0+=l;v2+=l; while (c! = , nr );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,

23、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允许从外部转到循环体

24、内D) do-while的循环体不能是复合语句正确答案:AE) 21下列说法中错误的是A)只能在循环体内使用break语句B)在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环C)在while和dwhile循环中,continue语句并没有使整个循环终止D) continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一 次进行循环判断正确答案:A二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)F) 22设i, j, k均为int型变量,则执行完下面的for语句后,k的值为【1】。for (i=0, j=10; i=j; i+, j- -

25、) 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

26、 阅读下面语句,则执行后的输出结果为【5】#include stdio. hmain ()(char a, b;for (a=, b=9 ;aprintf (%c%c, a, b);printf (n) ;正确答案:09182736456.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)四个选项中,只有一个选项是正确的,请将正 确选项填涂在答

27、题卡相应位置上。)1.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

28、 (k=0;k3;k+) printf (线d”, 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 ;A) you&meB) youC) meD) err正确答案:A7. 6设有数组定义:char array =China”;则数组array所占的空间为A) 4个字节B) 5个字节C) 6个字节D) 7个字节正确答案:C7.7 以下不正确的定义语句是A) double x 5 = 2.

29、 0, 4. 0, 6. 0, 8. 0, 10. 0;B) int y 5 =0, 1, 3, 5, 7, 9;C) char cl = 1 J 2 J 3 J 4 J 5 ;D) char c2 = xlOz , xa x8,;正确答案:B7.8 若有说明:int a 口 3 =1, 2, 3, 4, 5, 6, 7;则a数组第一维的大小是A) 2B) 3C) 4D)无确定值正确答案:B7.9对以下说明语句的正确理解是int a 10 =6, 7,8, 9, 10;A)将5个初值依次赋给a 1至a 5B)将5个初值依次赋给a 0至a 4将5个初值依次赋给a 6l至a 10D)因为数组长度与

30、初值的个数不相同,所以此语句不正确正确答案: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

31、) 9,9B) 8,9C) 1,8D) 9,8正确答案:D7. 12假定int类型变量占用两个字节,其有定义:int x 10 =0,2,4;,则数组x在内 存中所占字节数是A) 3B) 6C) 10D) 20正确答案:D7. 13以下能对二维数组c进行正确的初始化的语句是A) int c 3 =,;B) int c 3 =3, 3, 4; int c 3=,;D) int c 3 =,, 3;正确答案:B7. 14在C语言中,维数组的定义方法为类型说明符数组名A)常量表达式B)整型常量C)整型变量D)整型常量或整型表达式正确答案:A7.15 若二维数组a有m歹,则计算任一元素a i j在数组

32、中相对位置的公式为(假 设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 3C) 3 5 7D) 5 9 1正确答案:B7.17 以下不能对二维数组a进行正确初始化的语句是A) int a 2 3 =0;B) int a 3 =1,2, 0);C) int a 2 3 =1,2, 3,4, 5

33、,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 (1 n);A)对数组元素的升序排列B)对数组元素的降序排列C)对数组元素的倒序排列D)对数组元素的随机排列正确答案:B7. 19下列选项中错误的说明语句是A) char a 口 = t , , J y,。, u,J 、,;B) char a

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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