程序设计基础(C)期末复习题
- 格式:doc
- 大小:133.50 KB
- 文档页数:16
对外经济贸易大学远程教育学院2009—2010学年度第一学期程序设计基础(C)期末复习题一、单项选择题1.程序设计一般包含以下四个步骤,其中首先应该完成的是(B)A. 设计数据结构和算法B. 建立数学模型C. 编写程序D. 调试运行程序2.下面描述中不正确的是(D)A. 程序就是软件,但软件不仅仅是程序B. 程序是指令的集会,计算机语言是编写程序的工具C. 计算机语言都是形式化语言,它有严格的语法规则和定义D. 计算机语言只能编写程序而不能表示算法3.以下说法中正确的是(C )A. C语言程序总是从第一个函数开始执行B. 在C语言程序中, main()函数可有可无C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分4.C语言程序的基本单位是(B)A. 语句B. 函数C. 程序行D. 字符5.C语言程序由什么组成(C)A. 子程序B. 过程C. 函数D. 主程序段程序6.以下不是C语言特点的是(B)A、语言的表达能力强B、语法定义严格C、数据结构系统化D、控制流程结构化7.C语言并不是非常严格的算法语言,在以下关于C语言的不严格的叙述中,错误的说法是(A)A、任何不同数据类型都不可以通用B、有些不同类型的变量可以在一个表达式中运算C、在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D、同一个运算符号在不同的场合可以有不同的含义8.下面描述中,不正确的是(B)A、C程序的函数体由一系列语句和注释组成B、注释内容不能单独写在一行上C、C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明D、scanf和printf是标准库函数而不是输入或输出语句9.下面描述中,正确的是(C)A、主函数中的花括号必须有,而子函数中的花括号是可有可无的B、一个C程序行只能写一个语句C、主函数main是C程序启动时唯一的入口D、函数体包含了函数说明部分10.C语言中字符(char)数据在内存中存储的是(D)A、原码B、补码C、反码D、ASCⅡ码11.下列可以正确表示字符型常数的是(B)A、”a”B、’\’’C、”\n”D、29712.以下错误的转义字符是(C)A、’\\’B、’\’’C、’\81’D、’\0’13.已知:char a;int b;float c;double d;执行语句c=a+b+c+d;后,变量c的数据类型是(C)A、intB、charC、floatD、double 14.已知;int i, a ;执行语句“i=(a=2*3,a*5),a+6;”后,变量i的值是(C)A、6B、12C、30D、3615.已知int i=5;执行语句i+=++i; i的值是(C)A、10B、11C、12D、以上答案都不对16.已知:int x=1,y=2,z; 则执行:z=x>y? ++x:++y; 则z的值为(C)A、1B、2C、3D、417.已知:float a=4,b=5,c; 则执行表达式“c=a=a>b”后变量a的值为(A)A、0B、1C、4D、518.执行下面语句后x的值为(D)int a=14,b=15,x;char c=’A’;x=((a&&b) && (c<’a’));A、TRUEB、FALSEC、0D、119.下列四个选项中,均是C语言关键字的选项是(B)A. auto enum includeB. switch typedef continueC. signed union scanfD. if struct type20.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符(C)A. 必须为字母B. 必须为下划线C. 必须为字母或下划线D. 可以是字母,数字和下划线中任一字符21.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A)A. 2.500000B. 2.750000C. 3.500000D. 0.000000 22.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为(C)A. intB. floatC. doubleD. 不确定23.表达式(a=3*5,a*5),a+5的值是多少(A)A. 20B. 80C. 不能确定D. 1524.语句:printf("%d \n",12&&12);的输出结果是(B)A. 12B. 1C. 24D. 025.C语言的语句中用作判断的表达式一般为(D)A. 关系表达式B. 逻辑表达式C. 算术表达式D. 逻辑表达式和关系表达式26.若已定义x和y为double型,则表达式:x=1,y=x+3/2的值是(C)A. 1B. 2C. 2.0D. 2.527.若有以下定义:char a; int b;float c;double d;则表达式a*b+d-c值的类型为(D)A. floatB. intC. charD. double28.若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是(A)A. 200B. 100C. 200 100D. 输出格式符不够,输出不确定的值29.表达式:10!=9的值是(D)A. trueB. 非零值C. 0D. 130.以下关于运算符优先顺序的描述中正确的是(C)A. 关系运算符 < 算术运算符 < 赋值运算符 < 逻辑运算符B. 逻辑运算符 < 关系运算符 < 算术运算符 < 赋值运算符C. 赋值运算符 < 逻辑运算符 < 关系运算符 < 算术运算符D. 算术运算符 < 关系运算符 < 赋值运算符 < 逻辑运算符31、putchar函数可以向屏幕输出一个(D)A、整形变量值B、实型变量值C、字符串D、字符或字符变量值32、执行以下程序段后,c3的值是(A)int c1=1,c2=2,c3;c3=c1/c2;A、0B、1/2C、0.5D、133、若int a,b,c;则为它们输入数据的正确输入语句是(D)A、read (a,b,c);B、scanf (“%d%d%d”,a,b,c);C、scanf (“%D%D%D”,&a,&b,&c);D、scanf (“%d%d%d’,&a,&b,&c);34、若有以下程序段,其输出结果是(B)int a=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf (“%d,%d,%d\n”,a,b,c);A、3,0,-10B、0,0,5C、-10,3,-10D、3,0,335、若a为int 类型,且a=125,执行下列语句后的输出是(B)printf (“%d,%o,%x\n”,a,a+1,a+2)A、125,175,7DB、125,176,7FC、125,176,7DD、125,175,2F36.表达式(int)2.1416的值是(A)A. 2 B. 2.1 C. 0 D. 337.若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是(B)A. (exp==0)B. (exp!=0)C. (exp==1)D. (exp!=1) 38.设int x=1, y=1; 表达式(!x||y--)的值是(B)A. 0B. 1C. 2D. -139.在C 语言中,错误的int类型的常数是(A)A.32768 B.0 C.037 D.0xAF40.下列正确表示字符型常数的是(B)A.‘101’ B.‘\101’C.“\n” D.29741.有定义char ch; 判断ch的值是否为小写字母的表达式为(D)A.‘a’<= ch =‘z’ B.(ch >=‘a’)&(ch <=‘z’)C.(ch>=‘a’)AND (ch<=‘z’)D.ch>=97 && ch<=12242.以下程序的输出结果是(C)main(){int a=12,b=12;printf("%d %d\n",--a,++b);}A. 10 10B. 12 12C. 11 13D. 11 1043.能正确表示逻辑关系:"a ≥ =10或a ≤ 0"的C语言表达式是(D)A. a > =10 or a < =0B. a > =0||a < =10C. a > =10 &&a < =0D. a < =0 || a>=1044.下列程序的输出结果是(C)main(){ double d=3.2;int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d \n", d*y);}A. 3B. 3.2C. 0D. 3.0745、已知:int a,*p=&a;则下列函数调用中错误的是________。
A、scanf(“%d”,&a);B、scanf(“%d”,p);C、print f(“%d”,a);D、printf(“%d”,p);46、C语言中决定函数返回值类型的是_______。
A、return语句中的表达式类型B、调用该函数的主调函数类型C、调用函数时临时指定的类型D、定义函数时所指定的函数类型47、在下列结论中,只有一个是错误的,它是________。
A、C语言允许函数的递归调用B、C语言中的continue语句,可以通过改变程序的结构而省略C、有些递归程序是不能用非递归算法实现的D、C语言中不允许在函数中再定义函数48、在C语言的函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则________。
A、称为函数的直接递归B、称为函数的间接递归C、称为函数的递归定义D、C语言中不允许这样的递归形式49、已知:int*p,a;则语句“p=&a;”中的运算符“&“的含义是_______。
A、位与运算B、逻辑与运算C、取指针内容D、取变量地址50.以下程序的输出结果是(C)main(){ int a= -1,b=1;if((++a < 0)&& ! (b-- < =0)) printf("%d %d\n",a,b);else printf("%d %d\n",b,a);}A. -1 1B. 0 1C. 1 0D. 0 051.若执行下面的程序从键盘输入3和4,则输出是(B)main(){ int a,b,s;scanf("%d%d",&a,&b);s=a;if (a < b) s=b;s=s*s;printf("%d\n",s);}A. 14B. 16C. 18D. 20 52.下面的程序是(D)main(){ int x=3,y=0,z=0;if (x==y+z) printf("****");else printf("####");}A. 有语法错误不能过通过编译B. 输出****C. 可能通过编译,但是不能通过连接,因而不能运行D. 输出####53.以下程序输出结果是(B)main ( ){ int m=5;if (m++ > 5) printf ("%d\n",m);else printf ("%d\n",m--);}A. 7B. 6C. 5D. 4 54.执行下面语句后的输出为( D)int i= -1;if (i < =0)printf("****\n")else printf("%%%%\n")A. ****B. %%%%C. %%%%CD. 有语法错,不能执行55.执行下列程序段后,x、y和z的值分别是(B)int x=10,y=20,z=30;if(x>y) z=x;x=y;y=z;A、10,20,30B、20,30,30C、20,30,10D、20,30,2056.以下程序的输出结果是(D)main(){int w=4,x=3,y=2,z=1;if(x>y&&(z= =w))printf (“%d\n”,(w<x? w:z<y? z:x));else printf (“%d\n”,(w>x? w:z>y? z:x));}A、1B、2C、3D、457.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是(A)A.if((a>b)&&(b>c)) k=1; else k=0;B.if((a>b)||(b>c)) k=1;else k=0;C.if(a<=b) k=0; else if(b<=c) k=1;D.if(a>b) k=1; else if(b>c) k=1; else k=0;58、若有:do {i=a-b++;printf(“%d”,i);}while (!i); 则while中的!i 可用(A) 代替。