全国计算机等级考试二级C语言理论基础习.doc_第1页
全国计算机等级考试二级C语言理论基础习.doc_第2页
全国计算机等级考试二级C语言理论基础习.doc_第3页
全国计算机等级考试二级C语言理论基础习.doc_第4页
全国计算机等级考试二级C语言理论基础习.doc_第5页
已阅读5页,还剩238页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国计算机等级考试二级C语言理论基础习题第一部分 C语言理论基础(1)算法具有五个特性,以下选项中不属于算法特性的是 A)有穷性B)简洁性C)可行性D)确定性(2) 以下叙述中正确的是 A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(3) 用C语言编写的代码程序A) 可立即执行 B) 是一个源程序C) 经过编译即可执行 D) 经过编译解释才能执行 (4) 结构化程序由三种基本结构组成,三种基本结构组成的算法A) 可以完成任何复杂的任务 B) 只能完成部分复杂的任务C) 只能完成符合结构化的任务 D) 只能完成一些简单的任务 (5) 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是A) 有零个或多个输入 B) 有零个或多个输出 C) 有穷性 D) 可行性(6) 以下叙述中正确的是A) C语言的源程序不必通过编译就可以直接运行B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令C) C源程序经编译形成的二进制代码可以直接运行D) C语言中的函数不可以单独进行编译(7) 以下叙述中正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚,具有其他语言的一切优点(8) C语言中用于结构化程序设计的三种基本结构是A) 顺序结构、选择结构、循环结构B) if、switch、breakC) for、while、do-whileD) if、for、continue(9) 结构化程序设计所规定的三种基本控制结构是A) 输入、处理、输出 B) 树形、网形、环形C) 顺序、选择、循环 D) 主程序、子程序、函数(10) 要把高级语言编写的源程序转换为目标程序,需要使用A) 编辑程序B) 驱动程序 C) 诊断程序 D) 编译程序答案:1)B2)C3)B4)C5)B6)B7)C8)A9)C10)D全国计算机等级考试二级C语言基本语法知识测试第二部分 C语言基本语法知识一、选择题(1)以下叙述中错误的是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识(2)以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(3)以下不能正确计算代数式 值的C语言表达式是A)1/3*sin(1/2)*sin(1/2)B)sin(0.5)*sin(0.5)/3C)pow(sin(0.5),2)/3D)1/3.0*pow(sin(1.0/2),2)(4)以下能正确定义且赋初值的语句是A)int n1=n2=10; B)char c=32;C)float f=f+1.1;D)double x=12.3E2.5;(5)设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是A)k=k=kB)-k+C)k%int(f)D)k=f=m(6)有以下程序段int k=0,a=1,b=2,c=3;k=ac ? c:k;执行该程序段后,k的值是A)3B)2C)1D)0(7)以下选项中可作为C语言合法常量的是 A)-80.B)-080C)-8e1.0D)-80.0e(8).以下不能定义为用户标识符的是 A)MainB)_0C)_intD)sizeof(9)以下选项中,不能作为合法常量的是 A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0(10)有以下程序main() int m=12,n=34; printf(%d%d,m+,+n); printf(%d%dn,n+,+m);程序运行后的输出结果是 A)12353514B)12353513C)12343514D)12343513(11)若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式ab?a:c0;(28) 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是A)6.500000B)6C) 5.500000D) 6.000000(29) 与数学式子 对应的C语言表达式是A) 3*xn(2*x-1) B) 3*x*n(2*x-1)C) 3*pow(x,n)*(1/(2*x-1)D) 3*pow(n,x)/(2*x-1)(30) 若有以下程序:main() int k=2,i=2,m;m=(k+=i*=k);printf(“%d,%dn”,m,i);执行后的输出结果是A) 8,6 B) 8,3C) 6,4 D) 7,4(31) 以下选项中,与k=n+完全等价的表达式是A) k=n,n=n+1B) n=n+1,k=nC) k=+nD) k+=n+1(32) 若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为A) 1.4 B) 1 C) 2.0 D) 2(33) 以下选项中不属于C语言的类型的是A) signed short imt B) unsigned long intC) unsigned int D) long short(34) 以下叙述正确的是A) 可以把define和if定义为用户标识符B) 可以把define定义为用户标识符,但不能把if定义为用户标识符C) 可以把if定义为用户标识符,但不能把define定义为用户标识符D) define和if都不能定义为用户标识符(35) 在C语言中,合法的长整型常数是A) OL B) 4962710C) 324562& D) 216D(36) 以下有4组用户标识符,其中合法的一组是A) For B) 4d C) f2_G3 D) WORD-sub DO IF voidCase Size abc define(37) 假定x和y为 double型,则表达式x=2,y=x+3/2的值是A) 3.500000 B) 3 C) 2.000000 D) 3.000000(38) 以下合法的赋值语句是A) x=y=100 B) d-; C) x+y; D) c=int(a+b);(39) 设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是pprintf(”%d,%dn”,x-,-y);A) 10,3B) 9.3 C) 9.2D)10.2(40) 以下程序的输出结果是main() int a=3;printf(“%dn”,(a+a-=a*a) );A) 6B)12 C) 0 D) -12(41) 以下所列的C语言常量中,错误的是A) 0xFF B) 1.2e0.5C) 2L D) 72(42) 下列选项中,合法的C语言关键字是A) VAR B) cher C) integerD) default(43) 以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子 的C语言表达式是A) x/y*zB) x*(1/(y*z)C) x/y*1/zD) x/y/z(44) 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是A) -3 B) 9 C) -12D) 6(45) 若变量已正确定义并赋值,下面符合C语言语法的表达式是A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b(46) C语言中运算对象必须是整型的运算符是A) %= B) / C) = D) =(47) 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是A) 1 B) 2 C) 2.0 D) 2.5(48) 若变量a、iI已正确定义,且i已正确赋值,合法的语句是A) a=1B) +i; C) a=a+=5;D) a=int(i);(49) 若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是A) 0 B) 0.5 C) 1 D) 2(50) 设有 int x=11; 则表达式 (x+ * 1/3) 的值是 A) 3 B) 4 C) 11 D) 12(51) 下列程序的输出结果是 A) 3 B) 3.2 C) 0 D) 3.07 main() double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(%d n, d*y); (52) 下列变量定义中合法的是A) short _a=1-.le-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;(53) 以下选项中属于C语言的数据类型是A) 复数型 B) 逻辑型 C) 双精度型 D) 集合型(54) 在C语言中,不正确的int类型的常数是A) 32768 B) 0 C) 037 D) 0xAF(55) 设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为A) 4 B) 16 C) 32 D) 52(56) 设有如下的变量定义: int i=8, k, a, b; unsigned long w=5; double x=1, 42, y=5.2;则以下符合C语言语法的表达式是A) a+=a-=(b=4)*(a=3) B) x%(-3);C) a=a*3=2 D) y=float(i)(57) 假定有以下变量定义: int k=7,x=12;则能使值为3的表达式是A) x%=(k%=5) B) x%=(k-k%5) C) x%=k-k%5 D) (x%=k)-(k%=5)(58) 设x和y均为int型变量,则以下语句:x+=y,y=x-y;x-=y;的功能是A) 把x和y按从大到小排列 B) 把x和y按从小到大排列C) 无确定结果 D) 交换x和y中的值(59) 以下程序的输出结果是A) 10 10 B) 12 12 C) 11 10 D) 11 13 main() int a=12,b=12; printf(%d,%dn,- -a,+ +b); (60) 在C语言提供的合法的关键字是A) swicth B) cherC) CaseD) default(61) 若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是A)1 B)2 C)2.0 D)2.5(62) C语言提供的合法的数据类型关键字是A) Double B) short C) integer D) Char(63) 在C语言中,合法的长整型常数是A) 0L B) 4962710 C) 0.054838743 D) 2.1869e10(64) 若有说明和语句: int a=5; a+; 此处表达式a+的值是A) 7 B) 6 C) 5 D) 4(65) C语言中最简单的数据类型包括A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型(66) C语言中,运乍对象必须是整型数的运算符是A) % B) C) %和 D) * *(67) 设有如下定义: int x=10,y=3,z; 则语句printf(%dn,z=(x%y,x/y); 的输出结果是A) 1 B) 0 C) 4 D) 3(68) 以下程序的输出结果是main() int x=10,y=10;printf(%d %dn,x-,-y); A) 10 10 B) 9 9 C) 9 10 D) 10 9(69) 下列语句中符合C语言语法的赋值语句是A) a=7+b+c=a+7; B) a=7+b+=a+7;C) a=7+b,b+,a+7 D) a=7+b,c=a+7;(70) 在C语言中,要求运算数必须是整型的运算符是A) % B) / C) D) !(71) 请选出可用作C语言用户标识符的一组标识符A) void B) a3_b3 C) For D) 2adefine _123 -abcDOWORD IF Casesizeof(72) 设 int a=12,则执行完语句 a+=a-=a*a后,a的值是A) 552B) 264C) 144D) -264(73) C语言程序的基本单位是A) 程序行 B) 语句 C) 函数 D) 字符(74) 请选出合法的C语言赋值语句A) a=b=58 B) i+; C) a=58,b=58 D) k=int(a+b);(75)在C语言中,如果下面的变量都是int类型,则输出的结果是 。sum=pad=5; pAd=sum + + ,pAd + + , + + pAd;printf(%dn,pad);A) 7 B) 6 C) 5 D) 4(76)以下程序的输出结果是 。# include main() int i=010 , j = 10;printf(%d,%dn,+ +i , j - -); A) 11,10 B) 9,10 C) 010,9 D) 10,9二、填空题(1)语句:x+;+x; x=x+1;x=l+x; ,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同) 【1】 。(2) 若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是 2 。c=(a-=(b-5);c=(a%11)+(b=3);(3) 设x和y均为int型变量,且x=1,y=2,则以下表达式的值为【3】 。1.0+x/y(4) 数学式子 写成C语言表达式是 【4】 。(5) 设a、b、c为整型数, 且a=2、b=3、c=4, 则执行完以下语句:a*=16+(b+)-(+c);后,a的值是 【5】 。答案:一、填空题01)A02)C03)A04)B05)C06)B07)A08)D09)B10)A11)A12)D13)D14)C15)A16)C17)D18)B19)A20)C21)D22)C23)B24)D25)C26)B27)C28)D29)C30)C31)A32)B33)D34)B35)A36)C37)D38)B39)D40)D41)B42)D43)A44)C45)B46)A47)C48)B49)A50)A51)C52)A53)C54)A55)C56)A57)D58)D59)D60)D61)C62)B63)A64)C65)B66)A67)D68)D69)D70)A71)B72)D73)C74)B75)C76)B二、填空题(1)x+=1(2)3(3)1.0(4)pow(sin(x),2) * (a+b)/(a-b) 或 sit(x) * sit(x) * (a+b)/(a-b)(5)28全国计算机等级考试二级C语言顺序结构:输入与输出测试第三部分 顺序结构:输入与输出一、选择题(1)有以下程序main() int m,n,p; scanf(m=%dn=%dp=%d,&m,&n,&p); printf(%d%d%dn,m,n,p);若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是 A)m=123n=456p=789B)m=123 n=456 p=789C)m=123,n=456,p=789D)123 456 789(2) 有以下程序main() int m=0256,n=256; printf(%o %on,mn,n);程序运行后的输出结果是A) 0256 0400 B) 0256 256 C) 256 400 D) 400 400 (3) 有以下程序main() int a=666,b=888; printf(%dn,a,b);程序运行后的输出结果是A) 错误信息 B) 666 C) 888 D) 666,888 (4) 有以下程序main( )int x=102,y=012; printf(“%2d,%2dn”,x,y); 执行后输出结果是A) 10,01 B) 02,12 C) 102,10 D) 02,10(5) 有以下程序main() int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(%d %d %3.1f %3.1fn,a,c,f,x);程序运行后的输出结果是A) 1 65 1 6.5 B) 1 65 1.5 6.5C) 1 65 1.0 6.5 D) 2 65 1.5 6.5(6) 有定义语句:int x,y;, 若要通过scanf(%d,%d,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是A) 11 12回车 B) 11,12回车C) 11,12回车 D) 11,回车12回车(7) 设有如下程序段:int x=2002,y=2003;printf(%dn,(x,y);则以下叙述中正确的是A) 输出语句中格式说明符的个数少于输出项的个数,不能正确输出B) 运行时产生出错信息C) 输出值为2002D) 输出值为2003(8)若有以下程序段(n所赋的是八进制数)int m=32767,n=032767printf(%d,%o/n,m,n);执行后输出结果是A) 32767,32767B) 32767,032767C) 32767,77777D) 32767,077777(9)若有以下程序段int m=0xabc,n=0xabc;m-=n;printf(%Xn,m);执行后输出结果是A) 0X0B) 0x0C) 0D) 0XABC(10) 已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是A) scanf(“%2d%2d%2d”,&i,&j,&k);B) scanf(“%d %d %d”,&i,&j,&k);C) scanf(“%d,%d,%d”,&i,&j,&k);D) scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);(11) 设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是A)printf(“x=%dn”,x);B) printf(“x=%1dn”,x);C)printf(“x=%8dLn”,x);D)printf(“x=%LDn”,x);(12) 以下程序段的输出结果是int a=1234;printf(%2dn,a);A) 12 B) 34 C) 1234 D) 提示出错、无结果(13) 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);(14) 若变量已正确说明为float类型,要通过语句scanf(“%f %f %f ”,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:A) 10B) 10.0,22.0,33.02233C) 10.0 D) 10 2222.0 33.0 33(15) 有如下程序main0 int y=3,x=3,z=1;printf(“%d %dn”,(+x,y+),z+2);运行该程序的输出结果是A) 3 4 B) 4 2 C) 4 3 D) 3 3(16) 下列程序执行后的输出结果是(小数点后只写一位)A) 6 6 6.0 6.0 B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.0 main() double d; float f; ling l; int i; i=f=1=d=20/3; printf(%d %ld %f %f n, i,l,f,d); (17) 以下说法中正确的是A) #define和printf都是C语句 B) #define是C语句,而printf不是C) printf是C语句,但#define不是 D) #define和printf都不是C语句(18) 以下程序的输出结果是A) 17,021,0x11 B) 17,17,17B) 17,0x11,021 D) 17,21,11 main( ) int k=17; printf(%d,%o,%x n,k,k,k); (19) 以下叙述中正确的是A) 输入项可以是一个实型常量,如:scakf(%f,3.5);B) 只有格式控制,没有输入项,也能正确输入数据到内存,例如:scakf(a=%d,b=%d);C) 当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scakf(%4.2f,&f);D) 当输入数据时,必须指明变量地址,例如:scakf(%f,&f);(20) 若有以下定义和语句:int u=010,v=0x10,w=10;printf(%d,%d,%dn,u,v,w);则输出结果是:A) 8,16,10 B) 10,10,10 C) 8,8,10 D) 8,10,10(21) 请读程序片段:int i=65536; printf(%dn,i);上面程序片段的输出结果是A) 65536 B) 0C) 有语法错误,无输出结果 D) -1(22) 若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf(%d,(x,y);上面程序片段的输出结果是A) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值(23) 请读程序:#includemain() int a; float b, c;scanf(%2d%3f%4f,&a,&b,&c);printf(na=%d, b=%f, c=%fn, a, b, c);若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是A) a=98, b=765, c=4321 B) a=10, b=432, c=8765C) a=98, b=765.000000, c=4321.000000D) a=98, b=765.0, c=4321.0(24)以下程序的输出结果是【24】 。# include # include main() int a=1,b=4,c=2; float x=10.5 , y=4.0 , z; z=(a+b)/c+sqrt(double)y)*1.2/c+x; pritnf(%fn,z); A) 14.000000 B) 015.400000 C) 13.700000 D) 14.900000(25)以下程序的输出结果是【25】 。# include main() int a=2,c=5; printf(a=%d,b=%dn,a,c); A) a=%2,b=%5 B) a=2,b=5 C) a=%d,b=%d D) a=%d,b=%d(26) 执行下面程序中的输出语句,a的值是A) 65 B) 20 C) 15 D) 10main() int a;printf(%dn,(a=3*5,a*4,a+5);二、填空题:(1)以下程序运行后的输出结果是 【1】 。main() int x=0210; printf(%Xn,x);(2)以下程序运行后的输出结果是 【2】 。main() char c; int n=100; float f=10; double x; x=f*=n/=(c=50); printf(%d %fn,n,x);(3)以下程序运行时若从键盘输入:10 20 30。输出结果是 .#include main() int i=0,j=0,k=0; scanf(%d%*d%d,&i,&j,&k); printf(%d%d%dn,i,j,k);(4) 以下程序段的输出结果是 【4】 。int i=9;printf(%on,i);(5) 以下程序运行后的输出结果是 【5】 。main() int a,b,c; a=25; b=025; c=0x25; printf(%d %d %dn,a,b,c);(6) 有以下语句段int n1=10,n2=20;printf(“ 【6】 ”,n1.n2); 要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。n1=10n2=20(7)若有语句inti=-19,j=i%4;printf(%dn,j);则输出结果是【7】。(8)若有程序main()inti,j;scanf(i=%d,j=%d;&i,&j);printf(i=%d,j=%dn,i,j);要求给i赋10,给j赋20,则应该从键盘输入【8】。(9) 以下程序的输出结果是【9】 。main() int a=177;printf(%on,a);(10) 以下程序的输出结果是【10】 。main() int a=0a+=(a=8);printf(%dn,a); (11)以下程序的输出结果是 【11】 main() int a=1, b=2; a=a+b; b=a-b; a=a-b; printf(“%d,%dn”, a, b ); (12)下列程序的输出结果是16.00,请填空。main() int a=9, b=2; float x= 【12】 , y=1.1,z; z=a/2+b*x/y+1/2; printf(“%5.2fn”, z ); (13) 以下程序的输出结果是 13 。 main() unsigned short a=65536; int b;printf(“%dn”,b=a);(14) 若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是 【14】 。 int b,c; float a; scanf(%f,%d,c=%d,&a,&b,&c);(15) 若想通过以下输入语句给a赋于1,给b赋于2,则输入数据的形式应该是 【15】 。int a,b;scanf(a=%b,b=%d,&a,&b);答案:一、选择题01)A02)C03)B04)C05)B06)A07)D08)A09)C10)C11)B12)C13)B14)B15)D16)A17)D18)D19)D20)A21)B22)A23)C24)C25)D26)C二、填空题(1) 88(2) 2 20.000000(3) 10 30 0 (4) 11(5) 25 21

温馨提示

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

评论

0/150

提交评论