C语言模拟题十套附答案(共94页).doc

上传人:飞****2 文档编号:13990626 上传时间:2022-05-02 格式:DOC 页数:94 大小:371.50KB
返回 下载 相关 举报
C语言模拟题十套附答案(共94页).doc_第1页
第1页 / 共94页
C语言模拟题十套附答案(共94页).doc_第2页
第2页 / 共94页
点击查看更多>>
资源描述

《C语言模拟题十套附答案(共94页).doc》由会员分享,可在线阅读,更多相关《C语言模拟题十套附答案(共94页).doc(94页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上第一部分:选择题(40分,20小题/套)概述1、下面关于C语言的叙述中,正确的是(D)A. 每行只能写一条语句 B. 程序中必须包含有输入语句C. main函数必须位于文件的开头 D. 每条语句最后必须有一个分号2、下面关于C语言的叙述中,错误的是(B)A. 若一条语句较长,也可分写在下一行上B. 构成C语言源程序的基本单位是表达式C. C语言源程序中大、小写字母是有区别的D. 一个C语言源程序可由一个或多个函数组成3、关于C语言数据类型的叙述,正确的是()A. 枚举类型不是基本类型 B. 数组不是构造类型C. 变量必须先定义后使用 D. 不允许使用空类型4、C程序中

2、main函数的位置(C)A. 必须在最开始 B. 必须在系统库函数后面C. 可以在自定义函数后面 D. 必须在最后5、C语言的函数体由(B)括起来A. ( ) B. C. D. /* */6、关于C语言的叙述中,不正确的是(C)A. C程序可由一个或多个函数组成 B. C程序必须包含一个main()函数C. C程序的基本组成单位是函数 D. 注释说明只能位于一条语句的后面7、一个程序的执行是从(C)A. 本程序的第一个函数开始,到最后一个函数结束B. 本程序的main函数开始,到main函数结束C. 本程序的main函数开始,到最后一个函数结束D. 本程序的第一个函数开始,到main函数结束8

3、、结构化程序设计的三种基本结构是(C)A. 函数结构、分支结构、判断结构 B. 函数结构、嵌套结构、平行结构C. 顺序结构、分支结构、循环结构 D. 分支结构、循环结构、嵌套结构9、调试程序是指对程序进行(C)A. 编辑 B. 编译 C. 查错和排错 D. 连接10、C语言中,复合语句的构成是将一系列语句置于(C)A. begin与end之间 B. 一对圆括号“( )”之间C. 一对花括号“ ”之间 D. 一对方括号“ ”之间11、构成C语言源程序的基本单位是(D)A. 语句 B. 过程 C. 表达式 D. 函数语法基础12、在C语言中,正确的用户标识符是(B)A. 3f B. _for C.

4、 struct D. _f.513、C语言的基本数据类型包括(A)A. 整型、实型、字符型 B. 整型、实型、字符型、逻辑型C. 整型、字符型、逻辑型 D. 整型、实型、逻辑型14、以下(D)是正确的常量A. E-5 B. 1E5.1 C. a12 D. 32766L15、以下(D)是正确的变量名A. a.bee B. p11 C. int D. p_1116、以下(C)是正确的字符常量A. “c” B. /” C. W D. “32a”17、以下(A)是不正确的字符串常量A. abc B. “1212” C. “0” D. “ “18、C语言的整型数据在内存中的存储形式是(C)A. 原码 B

5、. 反码 C. 补码 D. ASCII码19、以下(B)是正确的浮点数( e后面的数必须为整数 e前面必须要有数字A. e3 B. .62 C. 2e4.5 D. 12320、下列不属于C语言关键字的是(D)A. continue B. integer C. static D. signed21、C语言的字符型数据在内存中的存储形式是(D)A. 原码 B. 补码 C. 反码 D. ASCII22、在C语言中,变量所分配的内存空间大小是(A)A. 由变量的类型决定 B. 由用户自己决定C. 任意的 D. 均为两个字节23、若有定义:int a=2;则正确的赋值表达式是(A)A. a-=(a*3)

6、 B. double(-1) C. a*3 D. a*4=324、语句x=(a=3,b=+a);运行后,x、a、b的值依次为()A. 3,3,4 B. 4,4,3 C. 4,4,4 D. 3,4,325、语句a=(3/4)+3%2;运行后,a的值为(B)A. 0 B. 1 C. 2 D. 326、以下四项中,符合C语言语法的语句是(C)注意分号A. int a+b=c; B. int a=12:b=12:c=12; C. int a=12,b=12,c=12; D. int a,b=12,float c=2127、若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为

7、()A. 3,3 B. 4,4 C. 4,3 D. 3,428、若变量已正确定义并赋值,符合C语言语法的表达式是()A. a=8+b+c,a+ B. a=3a C. int(12.3%4) D. a=a+1=c+b29、若有定义:int a,b;double x;则以下不符合C语言语法的表达式是()A. x%(-3) B. a+=-1 C. a=b=2 D. x=a+b30、若有定义:int x=2,y=3;float i;则以下符合C语言语法的表达式是(B)A. x=x*3=2 B. x=(y=1) C. i=float(x) ( 形式错误:正确的是:i=(float)x 是将数据类型括号起

8、来) D. i%(-3)31、若有定义:int x;则语句x=(2*3)+6%5;运行后,x的值是()A. 8 B. 7 C. 6 D. 532、下面关于C语言变量的叙述中,错误的是(C)A. 可以用const关键字定义变量 B. 在C程序中,SUM和sum是不同的变量C. 变量名必须由字母或下划线组成 (可是是字母和数字组合) D. 变量的类型确定了变量的取值范围33、若有定义:int x=5,y=6;则表达式x=(y= =6)的值为()A. 5 B. 1 C. 6 D. 034、下面叙述正确的是(B)A. 2/3与2.0/3.0等价 B. (int)2.0/3与2/3等价C. +5与6等价

9、 D. A与”A”等价35、下面叙述中,错误的是(A)A. C语言基本的算术运算符不包含模运算符”%”B. 算术运算符的优先级高于关系运算符C. 自加和自减运算符的结合方向是”自右向左”D. C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行36、下面叙述正确的是(A)A. 强制类型转换运算的优先级高于算术运算 B. 若a和b是整型变量,(a+b)+是合法的 (自加自减运算只能用于简单变量,不能 用于表达式或常量)C. A*B是不合法的 D. “A”+”B”是合法的 只能字符间运算37、若有定义:int i=1,j=5;则表达式(+j)*(i-)的值为(C)A. 1 B. 0 C

10、. 6 D. 7 (i先运算再减减,加了括号也一样38、设整型变量a为5,使b不为2的表达式是(C)A. b=(+a)/3 B. b=6-(-a) C. b=a%2 D. b=a/239、若有定义:int a=1,b=2,c=3;则语句+a|+b&+c;运行后b的值为(C)A. 1 B. 0 C. 2 D. 3(&的优先级高于| ,即先进行+b&+c运算,,&,(异或),| 优先级依次降低 )40、若有定义:int i,j;则表达式(i=2,j=5,i+,i+j+)的值是(B)A. 7 B. 8 C. 9 D. 10 (i+要算完)41、若有定义:int a,b;则表达式(a=2,b=5,a*

11、2,b+,a+b)的值是(B)A. 7 B. 8 C. 9 D. 1042、若有定义:int i=2,j=5;则表达式(i+1,j+1,(+i+(j-)的值为(A)A. 8 B. 6 C. 7 D. 5 红字部分先算43、若已定义:int i=3,k;则语句k=(i-)+(i-);运行后k的值为(C)A. 4 B. 5 C. 6 D. 7 ( i先运算再-44、C语言的运算符按运算对象的个数可以分为(C)A. 单目运算符一种 B. 单目和双目运算符C. 单目、双目和三目运算符 D. 单目、双目、三目和四目运算符45、若已定义:float m;拟从键盘输入135.78这一数据给变量m,则应选用的

12、语句是(D)A. scanf(“%5.2f”,&m); B. scanf(“%3.2f”,&m);C. scanf(“6.2f”,&m); D. scanf(“%6f”,&m);46、已知double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是()A. scanf(“%ld”,&a); B. scanf(“%lf”,&a);C. scanf(“%c”,&a); D. scanf(“%u”,&a);47、已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(B)A. scanf(“%d”,&a); B. scanf(“%lf”,&a); 不可能是

13、实数 C. scanf(“%c”,&a); D. scanf(“%u”,&a); 十进制无符号48、putchar()函数的功能是向终端输出(B)A. 多个字符 B. 一个字符 C. 一个实型变量值 D. 一个整型变量表达式49、以下程序段运行后的输出结果是(C)int k=11;printf(“k=%d,k=%o,k=%xn”,k,k,k);A. k=11,k=13,k=c B. k=11,k=12,k=13C. k=11,k=13,k=b D. k=11,k=13,k=a50、若有定义:int x=1234,y=123,z=12;则语句printf(“%4d+%3d+%2d”,x,y,z)

14、;运行后的输出结果为(D)A. B. C. 1234+1234+1234 D. 1234+123+1251、已有如下定义和输入语句,int a;char c1,c2;scanf(“%d%c%c”,&a,&c1,&c2);若要求a、c1、c2的值分别为10、A和B,正确的数据输入是()A. 10AB B. 10 A B C. 10A B D. 10 AB52、以下程序段的运行结果是(A) int a=0,b=0,c=0;if(a&+b) (因为a=0 又是与运算 ,故不进行&后面的运算了)c+;printf(“%d,%dn”,b,c);A. 0,0 B. 1,2 C. 2,2 D. 1,053、

15、以下程序的运行结果是()void main() int a=65; char c=A; printf(“%x,%d”,a ,c);A. 65,a B. 41,a C. 65,65 D. 41,6554、若已定义:int a=5;float b=63.72;以下语句中能输出正确值的是(B)A. printf(“%d%d”,a,b); B. printf(“%d%2f”,a,b);C. printf(“%2f%2f”,a,b); D. printf(“%2f%d”,a,b);55、运行以下程序段时编译出错,其原因是(A)char c1=8,c2=2008;printf(%c,%dn,c1,c2);

16、A. c2是字符变量,只能赋以字符常量,不能赋以字符串常量B. 字符串要用“2008“表示,而2008不是字符串表示C. 2008只能赋值给字符数组D. 字符变量不能用%d格式输出56、若已定义:int a=3,b=15,c;则语句c=ab;运行后c的值为(B)A. 1 B. 0 C. t D. f57、在C语言中,判定逻辑值为“真“的最正确的叙述是(B)A. 1 B. 非0的数 C. 大于0的数 D. 非0的整数58、若已定义:int a=-36,b=-30,c;则语句c=a=y=500的C语言表达式为(A)A. (y=500) B. (y=500)C. 800=y=500 D. (y=50

17、0)60、若有定义:int x=3,y=4;则表达式!x|y的值为(A)(!,算术运算符,关系运算符,&,| ,赋值运算符 优先级依次降低) 注意: 表达式的最后结果不是零就是一A. 1 B. 0 C. 3 D. 4 61、若有定义:int i=7,j=8;则表达式i=j|ij的值为()A. 1 B. 变量i的值 C. 0 D. 变量j的值62、若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为”假”。则不能满足要求的表达式是()A. a%2=1 B. !(a%2=0) C. !(a%2) D. a%263、若有定义:int x=3,y=4,z=5;则值为0 的表达式是(

18、)A. x&y B. x=yC. x|y+z&y-z D. !(xy)&!z|1)64、若有定义:int a=5,b=2,c=1;则表达式a-bc|b=c的值是()A. 0 B. 1 C. 3 D. -165、C语言中,能正确表示条件10x20的逻辑表达式是()A. 10x10|x10&10)&(x20)66、以下运算符中优先级最低的是()A. D. |67、已知double a=5.2;则正确的赋值表达式是(A)A. a+=a-=(a=4)*(a=3) B. a=a*3=2 C. a%3 (赋值语句必须有 “= ”) D. a=double(-2)68、已知char a=R;则正确的赋值表达

19、式是()A. a=(a+)%4 B. a+2=3 C. a+=256- D. a=07869、已知int a=R;则正确的表达式是(A)A. a%10 B. a=int(3e2) 要将(int) C. 2*a=a+ D. a=a+a=a+370、设有语句float x=3.0,y=3.0;使x值为6.0的表达式是()A. x*=y-4 B. x*=y C. x=y+4 D. x+=y71、若有定义:float x=3.5,int z=8;则表达式x+z%3/4的值为()A. 3。75 B. 3.5 C. 3 D. 472、设有语句int x=3,y=3,a=1,b=2;表达式(x=ab)&(y

20、=ba)的值是()A. 8 B. 1 C. 5 D. 073、若有定义:int a=2,b=3;float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是()A. 3.5 B. 3.0 C. 2.5 D. 2.074、若有定义:int b=7;float a=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)/4的值是(B)A. 2.5 B. 3.5 C. 4.5 D. 5.575、若有定义:int a=6,b=2;char c1=a,c2=b;则表达式a+b%5+c2-c1的值是( C)A. 7 B. 8 C. 9 D. 表达

21、式错误76、在下列运算符中,优先级最高的运算符是(C)A. 10) (先与10比较,再a+;) printf(“%dn”,a);else printf(“%dn”,+a); (+a后输出)A. 2 B. 11 C. 3 D. 1279、以下程序的运行结果是()void main() int x,y=1,z; z=-1; if(z=0) z=-z; else x=y0?3:5; printf(“%dn”,x);A. -1 B. 3 C. 1 D. 580、对于整型变量x,下属if语句()与赋值语句:x=x%2=0?1:0;不等价。A. if(x%2!=0) x=0;else x=1; B. if

22、(x%2) x=1;else x=0;C. if(x%2=0) x=1;else x=0; D. if(x%2=1) x=0;else x=1;81、以下程序段运行的结果是() int a,b,c,x; a=b=c=0;x=15; if(!a) x-; else if(b); if(c) x=3; else x+=4; printf(%dn,x);A. 15 B. 17 C. 18 D. 1982、若有定义:int a=1,b=2,c=3;则执行以下程序段后a,b,c的值分别为(Dif(a6) (n先与6比较,再n+ printf(“%dn”,n); else printf(“%dn”,+n)

23、; (先+后输出A. 4 B. 5 C. 6 D. 787、下面关于switch语句的叙述中,错误的是(A)A. case后面的表达式可以是关系表达式B. switch语句是多分支选择语句C. 每一个case后面的值必须互不相同,否则会出现矛盾的现象D. 在执行一个case分支后,可用一个break语句使流程跳出switch语句88、若有定义:int a=1,b=2,c=3;则以下程序段运行后c的值为(Dif(ab) c=a*b;else c=a-b;A. 2 B. 0 C. 1 D. -189、若有定义:int x;以下不会产生死循环的是(AA. for(;(x=getchar()!=n;)

24、; B. while(1)x+;C. for(i=10;i+); D. for(;x+=1);90、在循环语句的循环体中,break语句的作用是(DA. 暂停程序的运行 B. 结束本次循环C. 继续执行break语句之后的循环体各语句 D. 提前结束循环,接着执行该循环后续的语句91、以下程序段运行后,循环体中的“count+=2;”语句运行的次数为(Aint i,j,count=0;for(i=1;i=4;i+) count+=2; printf(“%d”,count);A. 4次 B. 10次 C. 16次 D. 20次92、在c语言中while循环和do-while循环的主要区别是(BA

25、. do-while循环体内可以使用break语句,while循环体内不能使用break语句B. do-while的循环体至少无条件执行一次,while的循环体不是C. do-while循环体可以使用continue语句,while循环体内不能使用continue语句D. while的循环体至少无条件执行一次,do-while的循环体不是93、以下程序段运行后,循环体运行的次数为(A)int i=0,x;for(;i10;i+) x=x+i;A. 10 B. 0 C. 1 D. 无限94、以下程序段运行后变量n的值为(Dint i=1,n=1;for(;i3;i+) (遇到continue后直

26、接返回验证循环条件,不在往下执行continue;n=n+i;A. 4 B. 3 C. 2 D. 195、有以下程序:void main() int i; for(i=0;i3;i+) switch(i) case 1:printf(“%d”,i); case 2:printf(“%d”,i); case 3:printf(“%d”,i);执行后输出的结果是(AA. 11122 B. 01222 C. D. 12096、以下程序的运行结果是(Cvoid main() int sum=0,item=0; while(item=6) break; (当sum=6时马上跳出循环,不在管item是否大

27、于5了printf(“%dn”,sum);A. 10 B. 15 C. 6 D. 797、以下程序的运行结果是(Bvoin main() int sum=0,item=0; while(item5) item+;if(item=2) (检查item是否等于2,如果是则跳出循环 ,在检测item是否小于 5 ,如果item不等2则进行sum+=item运算) continue; sum+=item;printf(“%dn”,sum);A. 10 B. 13 C. 15 D. 198、以下程序段执行后变量sum的值为(Cint i,j=1,sum=0;for(i=1,i=3,i+) sum+=j;

28、 j+;A. 5 B. 3 C. 6 D. 499、以下程序的运行结果是(D#includemain() int y=10; do y-; while(-y); printf(%dn,y-);A. 1 B. 2 C. -1 D. 0数组100、C语言中数组元素下标的数据类型是()A. 实型常量 B. 整型常量或整型表达式C. 任何类型的表达式 D. 字符型常量101、下列数组定义中,正确的是()A. int a10; B. int n=10,an; C. int N=10;int aN; D. int n;scanf(“%d”,&n);int an;102、若已定义:int a13;则不能正确

29、引用a数组的元素的是()A. a0 B. a10 C. a10+3 D. a13-5103、若有定义:int a3=0,1,2;则a1的值为()A. 0 B. 1 C. 2 D. 3104、若有定义:int a5=1,2,3,4,5;则语句a1=a2+a2+2-a3-1;运行后a1的值为()A. 6 B. 5 C. 1 D. 2 105、以下合法的数组定义是(C)A. int a =“string”; 数组类型定义错误 B. int a5=0,1,2,3,4,5; 注意数组的存储空间大小C. char a =0,1,2,3,4,5; D. char s=“string”; 少了一个中括号 ,c

30、har s =”string”是正确的大括号可以去掉,或者可以改成 char *s=“string”106、若有如下程序段:char s10;s=“abcd”;printf(“%sn”,s);则(A)。A. 执行时输出:abcd B. 执行时输出:aC. 执行时输出:ab D. 编译不通过107、下面程序段的运行结果是(C)int i=0,a=7,5,7,3,8,3;do ai+=2; 首先循环一次while(a+i5); a1=5 所以跳出循环 向下执行for(i=0;i2);for(i=0;i5;i+) printf(%d,ai);A. 11 2 3 4 5 B. 1 2 3 4 5 C.

31、 11 12 13 14 15 D. 11 12 3 4 5109、西面关于数组的叙述中,正确的是(A)A. 数组必须先定义,然后使用B. 定义数组时,可不加类型说明符C. 定义数组后,可通过赋值运算符“=”对该数组名直接赋值D. 在数据类型中,数组属于基本类型110、一下程序段的运行结果是(C)int i=0,a=6,5,3,7;do ai+;while(ai4);for(i=0;i4;i+) printf(%d,ai);A. 6537 B. 7563 C. 7537 D. 5673111、有如下程序段:int t3=1,2,3,4,5,6,7,8,9,10,11,12;printf(%dn

32、,t21);则执行该程序段后输出结果是()A. 8 B. 7 C. 4 D. 2112、以下程序段运行后s的值是(B)int a33=1,2,3,1,2,3,1,2,3;int i,j,s=1; for(i=0;i3;i+) for(j=i;j3;j+) s*=aij; 1*2*3*2*3*3A. 18 B. 108 C. 2 D. 12113、以下不能对二维数组arr进行正确初始化的语句是(C)A. int arr23=0; B. int arr3=1,2,3,4,5;C. int arr23=1,2,3,4,5,6;3行四列 D. int arr23=1,3,4,5;114、若有定义:in

33、t a34=1,2,0,1,2,3;则a11的值为()A. 0 B. 1,2 C. 1 D. 3115、若有定义:int a33;则表达式&a21-a0的值为()A. 7 B. 8 C. 6 D. 9116、若有定义:int i=0,x=0;int a33=1,2,3,4,5,6,7,8,9;则以下程序段运行后x的值为(C)for(;i3;i+) x+=ai2-i; 0+3+5+7A. 0 B. 12 C. 15 D. 18117、若有定义int a23;则对数组元素的非法引用的是(D)A. a01/2 B. a11 C. a4-40 D. a03118、以下数组定义中,正确的是()A. int a2=1,2,3,4,5; B. int a2=0,;C. int a22=1,2,3; D. int a=1,2,3,4;119、若有定义int a3=1,2,3,4,5,6,7,8,9;则表达式sizeof(a)/sizeof(a0)的值为(A) a表示第一行的首地址 所以内存空间只有第一行的 3*22A. 3 B. 4 C. 5 D. 9120、以下程序段

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁