概述 输入输出 数据类型 运算符 表达式 练习题.docx
第2章 程序的灵魂-算法一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)2.1以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D)C语言出现的最晚,具有其他语言的一切优点正确答案: C2.2 以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义正确答案: A2.3 以下说法正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分正确答案: C2.4 C语言规定,在一个源程序中,main函数的位置A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后正确答案: C2.5 以下叙述不正确的是A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面正确答案: D2.6 下列叙述中正确的是A)C语言编译时不检查语法B)C语言的子程序有过程和函数两种C)C语言的函数可以嵌套定义 D)C语言的函数可以嵌套调用正确答案: D2.7 以下叙述正确的是A)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,%是只能用于整数运算的运算符正确答案: D2.8 以下说法错误的是A)一个算法应包含有限个步骤B)在计算机上实现的算法是用来处理数据对象的C)算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现D)算法的目的是为了求解正确答案: C2.9 算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是A)有零个输入或多个输入B)高效性 C)有穷性D)确定性正确答案: B2.10 下列关于C语言的说法不正确的是A)C语言既具有高级语言的一切功能,也具有低级语言的一些功能B)C语言中的每一条执行语句都必须用分号结束,分号不是C语言的一部分,是语句之间的分隔符号C)注释可以出现在程序中任意合适的地方D)命令行后面不能加分号,命令行不是C语言的语句正确答案: B2.11 以下说法错误的是A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式B)计算机只能处理由0和1的代码构成的二进制指令或数据C)C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件D)每一种高级语言都有它对应的编译程序正确答案: C2.12 C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构 B)if,switch,break C)for,while,do-whileD)if,for,continue正确答案: A二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)2.13 用高级语言编写的程序称为【1】程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。正确答案: 源程序2.14 C语言程序的注释可以出现在程序中的任何地方,一个注释以【2】作为开始和结束。正确答案: /* */第3章 数据类型运算符与表达式一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)3.1 C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案: B3.2 C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A)必须为字母 B)必须为下划线C)必须为字母或下划线D)可以是字母,数字和下划线中任一字符正确答案: C3.3 下列可用于C语言用户标识符的一组是A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof正确答案: B3.4 下面四个选项中,均是不正确的8进制数或16进制数的选项是A)016 0x8f 018B)0abc 017 0xaC)010 -0x11 0x16D)0a12 7ff -123正确答案: D3.5 下列数据中,不合法的C语言实型数据的是A)0.123 B)123e3C)2.1e3.5 D)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.7 若有说明语句:char c='72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定正确答案: A3.8 有字符串如下,"n407as1"xabc",则字符串的长度为A)6 B)7C)8 D)9 正确答案: D3.9 C语言中运算对象必须是整型的运算符是A)%= B)/C)= D)<=正确答案: A3.10 若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1B)a=b=c+2C)int 18.5%3D)a=a+7=c+b 正确答案: B3.11 若变量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.B)2.C)3.D)0.正确答案: A3.13 若有运算符<<,sizeof,&=,则它们按优先级由高至低的正确排列次序是A)sizeof,&=,<<,B)sizeof,<<,&=C),<<,sizeof,&=D)<<,&=,sizeof正确答案: B3.14 以下不正确的叙述是A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案: D3.15 已知int i,a;执行语句i=(a=3,a+,- -a,a+4,a+5,+a);后,变量i的值为A)2B)3C)4D)5正确答案: C3.16 设变量a是int型,f是float型,i是double型,则表达式10+a+i*f值的数据类型为A)int B)floatC)doubleD)不确定正确答案: C3.17 在C语言中,char型数据在内存中的存储形式是A)补码 B)反码C)原码D)ASCII码正确答案: D3.18 字符型数据在机器中是用ASCII码表示的,字符5和7在机器中表示为A)和 B)和C)和D)和正确答案: C3.19 不能进行+和- -运算的数据类型为A)指针 B)整型C)长整型 D)常量正确答案: D3.20 设有int x=11;则表达式(x+*1/3)的值是A)3 B)4C)11 D)12正确答案: A3.21 以下程序的输出结果是main() int a=21,b=11;printf("%dn",- -a+b,- -b+a);A)30 B)31C)32 D)33正确答案: A3.22 假设整型变量a,b,c的值均为5,则表达式a+b+c+的值为A)17 B)16C)15 D)14正确答案: C3.23 已知int a=6; 则执行a+=a-=a*a;语句后,a的值为A)36 B)0C)-24 D)-60正确答案: D3.24 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0正确答案: B3.25 sizeof(float)是A)一个双精度型表达式B)一个整型表达式C)一种函数调用D)一个不合法的表达式正确答案: B3.26 在C语言中,int,char和short三种类型数据在内存中所占用的字节数A)由用户自己定义B)均为2个字节C)是任意的D)由所用机器的机器字长决定正确答案: D3.27 以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C语言表达式是A)x/y*zB)x*(1/(y*z)C)x/y*1/zD)x/y/z正确答案: A3.28 下列关于复合语句和空语句的说法错误的是A)复合语句是由“”开头,由“”结尾的B)复合语句在语法上视为一条语句C)复合语句内,可以有执行语句,不可以有定义语句部分D)C程序中的所有语句都必须由一个分号作为结束正确答案: C3.29 下列关于字符串的说法中错误的是A)在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符0作为字符串结束标志B)0作为标志占用存储空间,计入串的实际长度C)在表示字符串常量的时候不需要人为在其末尾加入0D)在C语言中,字符串常量隐含处理成以0结尾正确答案: B二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)3.30 以下程序的输出结果是【1】。int a=1234;printf ("%2dn",a);正确答案: 12343.31 在计算机中,字符的比较是对它们的【2】进行比较。正确答案: ASCII码3.32 在内存中,存储字符x要占用1个字节,存储字符串X要占用【3】个字节。正确答案: 23.33 在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为【4】。正确答案: 83.34 以下程序段的输出结果是【5】。main ()int a=2,b3,c=4;a*=16+(b+)-(+c);printf("%d",a);正确答案: 283.35 以下程序段的输出结果是【6】 。int x=17,y=26;printf ("d",y/=(x%=6);正确答案: 53.36 下列y的值是【7】 。int y; y=sizeof(2.25*4);正确答案: 83.37 以下程序的输出结果是 【8】 。main ()int i=010,j=10;pirntf ("%d,%dn",i,j);正确答案: 8,103.38 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=a+8-3的值为 【9】 。正确答案: f3.39 如下语句printf("%cn",B+40);在执行后的输出结果是【10】 。正确答案: j3.40 定义int a=5,b=20;若执行语句printf("%dn",+a*- -b/5%13);后,输出的结果为 【11】 。正确答案: 9第4章 顺序程序设计一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)4.1 若变量已正确说明为float型,要通过语句scanf(%f%f%f,&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是A)10<回车>22<回车>33<回车>B)10.0,22.0,33.0<回车>C)10.0<回车>22.0 33.0<回车>D)10 22<回车>33<回车>正确答案: B4.2 现有以下程序段#include <stdio.h>main() int a,b,c;scanf("a=%*d%d,b=%d%*d,c=%d",&a,&b,&c);printf("a=%d,b=%d,c=%dn",a,b,c); 若输出的结果为a=20,b=30,c=40,则以下能够正确输入数据的是A)a=1020,b=2030,c=40<CR>B)20,30,40<CR>C)a=20,b=30,c=40<CR>D)a=1020,b=3020,c=40<CR>注: “”表示空格,<CR>表示回车正确答案: D4.3 x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是A)INPUT x、y、z;B)scanf("%d%d%d",&x,&y,&z);C)scanf("%d%d%d",x,y,z);D)read("%d%d%d",&x,&y,&z);正确答案: B4.4 已有定义int a=-2;和输出语句 printf("%8lx",a);以下正确的叙述是A)整型变量的输出形式只有%d一种B)%x是格式符的一种,它可以适用于任何一种类型的数据C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度正确答案: D4.5 下列程序段的输出结果是:int a=1234;float b=123.456;double c=12345.54321;printf("%2d,%2.1f,%2.1f",a,b,c);A)无输出B)12,123.5,12345.5C)1234,123.5,12345.5D)1234,123.4,1234.5正确答案: C4.6 执行下列程序时输入:123<空格>456<空格>789<回车> 输出结果是main() char s100; int c, i;scanf("%c",&c); scanf("%d",&i); scanf("%s",s);printf("%c,%d,%sn",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&&b-<=2&&c?printf("*a=%d,b=%d,c=%dn",a,b,c):printf("#a=%d,b=%d,c=%dn",a,b,c);程序输出的结果是A)*a=25,b=13,c=19B)*a=26,b=14,c=19C)# a=25,b=13,c=19D)# a=26,b=14,c=19正确答案: C4.8 请选出以下语句的输出结果printf("%dn",strlen("t"065xffn");A)5B)14C)8D)输出项不合法,无正常输出正确答案: A4.9 下列程序的输出结果是main() double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%dn", d*y);A)3 B)3.2C)0 D)3.07正确答案: C4.10 调用gets和puts函数时,必须包含的头文件是A)stdio.h B)stdlib.hC)define D)以上都不对正确答案: A4.11 阅读下面程序段#include "stdio.h"main() char c;c=(z-a)/2+A;putchar(c);输出结果为A)M B)NC)O D)Q正确答案: A二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)4.12 下列程序的输出结果是16.00,请填空。main()int a=9, b=2;float x=【1】, y=1.1,z;z=a/2+b*x/y+1/2;printf("%5.2fn", z ); 正确答案: 6.64.13 在使用putchar和getchar函数处理字符时,必须在程序的开头出现包含头文件的命令行是 【2】。正确答案: #include<stdio.h>4.14 下列程序的输出结果是 【3】 , 【4】 。#include <math.h>main() float a=-1.3;b=1.3;printf("%f,%f",fabs(a),fabs(b);正确答案: 1.300 000正确答案: 1.300 0004.15 执行程序时的输入为,则程序的运行结果为【5】 。#include "stdio.h"main() int a,b;scanf("%2d%*2d%1d",&a,&b);printf("%dn",a-b);正确答案: 7第5章 选择结构程序设计一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)5.1 在C程序中,判逻辑值时,用“非0”表示逻辑值“真”, 又用“0”表示逻辑值“假”。 在求逻辑值时,用()表示逻辑表达式值为“真”,又用()表示逻辑表达式值为“假”。A)1 0 B)0 1C)非0 非0 D)1 1正确答案: A5.2 已知int x=6,y=2,z;则执行表达式z=x=x>y后,变量z的值为A)0 B)1C)4 D)5正确答案: B5.3 能正确表示逻辑关系:“a10或a0”的C语言表达式是A)a>=10 or a<=0B)a>=0|a<=10C)a>=10 &&a<=0D)a>=10a<=0正确答案: D5.4 若变量c为char类型,能正确判断出c为小写字母的表达式是A)a<=c<=zB)(c>=a)|(c<=z)C)(a<=c)and(z>=c)D)(c>=a)&&(c<=z)正确答案: D5.5 设int x=1,y=1;表达式(!x|y- -)的值是A)0 B)1C)2 D)-1正确答案: B5.6 有如下程序段int a=14,b=15,x;char c=A;x=(a&&b)&&(c<B);执行该程序段后,x的值为A)ture B)falseC)0 D)1正确答案: D5.7 以下程序的输出结果是main() int a=4,b=5,c=0,d;d=!a&&!b|!c;printf("%dn",d); A)1 B)0C)非0的数 D)-1正确答案: A5.8 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行 (m=a>b)&&(n=c>d)后n的值是A)1 B)2C)3 D)4正确答案: B5.9 已知x,y,z均为整型变量,且值均为1,则执行语句+x|+y&&+z;后,表达式x+y的值为A)1 B)2C)3 D)4正确答案: C5.10 表达式a<b|(c&d)中运算符优先级最高的是A)| B)&C)< D)()正确答案: D5.11 若运行时给变量x输入12,则以下程序的运行结果是main()int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%dn",y); A)0 B)22C)12 D)10正确答案: A5.12 已知char ch=C;则以下表达式的值是ch=(ch>=A && ch<=Z)?(ch+32):ch;A)A B)aC)Z D)c正确答案: D5.13 若有条件表达式 (exp)?a+:b-,则以下表达式中能完全等价于表达式(exp)的是A)(exp=0) B)(exp!=0)C)(exp=1) D)(exp!=1)正确答案: B二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)5.14 设y是int型,请写出y为奇数的关系表达式 【1】。正确答案: (y%2)=1 或 (y%2)!=05.15 设int a=5,b=6,表达式(a= =b- -)?+a:-b的值是【2】 。正确答案: 75.16 将以下程序写成三目运算表达式是【3】 。if(a>b)max=a;else max=b;正确答案: max=(a>b)?a:b;5.17 以下程序输出的结果是【4】。main() int a=5,b=4,c=3,d;d=(a>b>c);printf("%dn",d);正确答案: 0