《C语言程序设计期末考试.docx》由会员分享,可在线阅读,更多相关《C语言程序设计期末考试.docx(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计期末考试一、选择题1.判断两个字符串是否相等,应用() A) if(a= =b)B) if(a=b)C) if ! strcmp(a, b)(正确答案)D) if(strcmp(a, b)2.有以下程序(strcat( )函数用来连接两个字符串),程序运行后的输出结果是(B)#include main( ) char a20=ABCD0EFG0, b =IJK;strcat(a,b); printf(%sn,a); A) ABCDE0FG0IJKB) ABCDIJK(正确答案)C) IJKD) EFGIJK3.若有定义int a4=0, 1,2,3,4,5,6, 7,8,9, 1
2、0, 11;,则数组的第一维的大小为() A) 3(正确答案)B) 2C) 4D)不确定4.阅读下述程序:( )#include main( )char str10, temp10;int i;gets(temp);for(i=0; i0)strcpy(temp, str);print(%s, temp);若输入为ChinaU.S.AKorea¥Canada Japan。则输出是 A) Canada(正确答案)B) JapanC) KoreaD) China5. 以下语句(字符串内没有空格字符):printf(%dn, strlen(atsn0121) );的输出结果是() A) 12B) 1
3、0C) 9(正确答案)D) 116.下列程序的输出结果是( )#include main( ) char str12=s,t,r,i,n,g;prinf(%dn, strlen(str), sizeof(str) ); A) 12,12B) 6,12(正确答案)C) 7,12D) 12,67. 若有定义int a48;, 则以下选项中对数组元素aij(0=j4,0=j8)的错误引用是() A) (&a00+8i+j)B) (a+i)j(正确答案)C) (a+i)+j)D) (ai+j)8. 若定义int a5;, 则对数组元素地址的正确引用是() A) &a5B) a+2(正确答案)C) a+
4、D) &a9. 以下程序段的输出结果是()main( ) char a24;strcpy( a0, are );strcpy(a1, you);a03=&;printf(%s n, a); A) are&you(正确答案)B) youC) areD) &10. 以下程序段的输出结果是()main( ) char ch35= AAAA, BBB, CC ;printf(%sn, ch1); A) AAAAB) BBB(正确答案)C) CCD) BBBCC11.下列描述中不正确的是:() A)字符型数组可以存放字符串B)可以对字符型数组进行整体输入、输出C)可以对整形数组进行整体输入、输出(正确答
5、案)D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。12.若要定义一个具有5个元素的整型数组,以下语句中错误的是:() A) int a5=0;B) int b =0,0,0,0,0;C) int c2+3;D) int n=5;dn;(正确答案)13.以下叙述中不正确的是() A)建立函数的目的之是为了提高程序的效率(正确答案)B)建立函数的目的之一是为了提高程序的可读性C)建立函数的目的之是为了提高程序员的生产效率D)函数的递归调用不能提高程序的执行效率14以下函数的类型是()fun c( doublex ) printf(%fn,XX ); A)与参数x的类型相同B)
6、void 类型C) int 类型(正确答案)D)无法确定15.阅读以下程序:()f( int b, intn)int i, r;r= 1for(i=0;ib) c= I;else if(a=b) c=0; else c=-1;returm Cmain( )int i=2, p;p=f(i,i+1);printf( %d,p); A) -1(正确答案)B) 0C) 1D) 221.以下程序的输出结果是()main( )double f();int i, m= 3; float a= 0.0;for(i=0;i m;i+ )a+=f(i);printf(%fn,a);double f( int n
7、) int i; double s=1.0;for(i=l;i=n;i+)s+= 1.0/i;return S; A) 5.500000(正确答案)B) 3.000000C) 4.000000D) 8.2522.以下程序的输出结果是()fun(int x, int y, int z) z=xx+yy;main( )int a=31;fun(5,2,a);printf( %d, a); A) 0B) 29C) 31(正确答案)D)无定值23.以下函数的功能是()fun (char s, char t) int i=-1;while(i+, si=ti & si!= 0 );return (si=
8、0 & ti=0 ); A)比较串s和t的长度B)比较串s和t的大小C)比较串s和t是否相等(正确答案)D)将串1赋给串s24. C语言程序中,当调用函数时,() A)实参和形参各占一个独立的存储单元(正确答案)B) 实参和形参可以共用存储单元C)可以由用户指定是否共用存储单元D)由计算机系统自动确定是否共用存储单元25.下列程序执行后变量w中的值是( )int fun1( double a) return a=a; int fun2( double x, double y ) double a=0, b-0;A=funl(x); b-=fun1(y); returm (int) (a+b);
9、main( ) double w; w=fun2(1.1, 2.0), . A) 5B) 5C) 5.0(正确答案)D) 0.026. 执行下列程序时,给变量x输入10, 程序的输出结果是()int fun( int n ) if (n=1 ) return 1;elsereturn (n+ fun(n-1);main( ) int x;scanf(%d, &x); x= fun(x); printf(%dn, x); A) 55(正确答案)B) 54C) 65D) 4527. 下列程序执行后的输出结果是()int fun(int x, int n) static int sum=0, i;f
10、or(i=0; ireturn sum;main( )int a(5)=1,2, 3,4, 5, b4=6, 7,8,9,s=0;s= fun(a,5)+fun(b,4);printf(%dn, s); A) 45B) 50C) 60(正确答案)D) 5528. 以下程序运行后的输出结果是( )Void fum( int p) int d-2;p=d+; pintf(“%d”,p) main( ) int a=1;fun(a);printf(%dn, a); A) 32B) 12C) 21(正确答案)D) 2229.下叙述中不正确的是:( ) 在函数中,通过return语句传回函数值在函数中,
11、可以有多条return语句在C程序中,主函数main()后的一对园括号中也可以带有形参在C程序中,调用函数必须在一条独立的语句中完成。(正确答案)30.以下程序的输出结果是:( )fun(int a, int b, int c) c=a+b;main() int c;fun(3,6,c);printf(“%d”;c); A) 0B) 3C)9D)无定值(正确答案)31 以下叙述正确的是() 。 A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句(正确答案)D) C程序的每行中只能写一条语句32 一个C程
12、序的执行是从() 。 A) 本程序的main函数开始,到main函数结束(正确答案)B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束33 以下叙述不正确的是() 。 A) 一个C源程序必须包含一个main函数B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面(正确答案)34 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是() 。 A) C语言程序仅可以编译执行(正确答
13、案)B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对35 一个C语言程序是由() 。 A)一个主程序和若干个子程序组成B) 函数组成(正确答案)C) 若干过程组成D) 若干子程序组成36 以下叙述中错误的是() 。 A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件(正确答案)37 若x、i、j、k都是int型变量,则计算下面表达式后,x的值为( )。x=(i=4,j=16,k=32
14、) A) 4B) 16C) 32(正确答案)D 5238 以下叙述正确的是() 。 A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x)(正确答案)C) C语言函数不可以单独编译D) C语言中除了main函数,其他函数不可作为单独文件形式存在39 下列四组选项中,均不是C语言关键字的选项是()。 A)de i2 temp(正确答案)B)getc char printfC)include case scanfD)while go pow40 下列四组选项中,均是不合法的用户标识符的选项是 ()。 A) W P_0 doB) b-a goto int(正确答
15、案)C) float la0 _AD) -123 abc TEMP41 下面不正确的字符常量是 ()。 A) “c”(正确答案)B) C) D) K42 下列四组选项中,均是合法转义字符的选项是() 。 A)” n(正确答案)B) 017 ”C)018 f xabD)0 101 xlf43 以下叙述不正确的是() 。 A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,MAX和max是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值(正确答案)44 已知
16、字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2A+6-3后,c2中的值为() 。 A) D(正确答案)B) 68C) 不确定的值D) C45 以下叙述正确的是() 。 A) 在C程序中,每行只能写一条语句B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数(正确答案)C) 在C程序中,%是只能用于整数运算的运算符(字符型也可以)D) 在C程序中,无论是整数还是实数,都能被准确无误地表示46 sizeof(float)是() 。 A) 一个双精度型表达式B) 一个整型表达式(正确答案)C) 一种函数表达式D) 一个不合法的表达式47设有说明:char
17、w; int x; float y; double z;则表达式wx+z-y值的数据类型为() 。 A) floatB) charC) intD) double(正确答案)48设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为() 。 A) 0255B) 032767C) 065535(正确答案)D) 0214748364749设以下变量均为int类型,则值不等于7的表达式是() 。 A) (x=y=6,x+y,x+1)B) (x=y=6,x+y,y+1)C) (x=6,x+1,y=6,x+y)(正确答案)D) (y=6,y+1,x=y,x+1)50
18、下列变量定义中合法的是() 。 A) short _a=015;(正确答案)B) double b=e2.5;C) long do=0xfdaL;D) float 2_and=1e-3;51有以下程序#include main() int x=011; printf(%dn,+x);程序运行后的输出结果是( ) 。 A)12B)11C)10(正确答案)D)952以下正确的描述是() . A)continue语句的作用是结束整个循环的执行B)只能在循环体内和switch语句体内使用break语句(正确答案)C)在循环体内使用break语句或continue语句的作用相同D)从多层循环嵌套中退出时
19、,只能使用goto语句53 putchar函数可以向终端输出一个() 。 A) 整型变量表达式B) 实型变量值C) 字符串D) 字符或字符型变量值(正确答案)54 根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为( ) 。main() char ch1,ch2,ch3;输入语句printf(“%c % %c”,ch1,ch2,ch3); 输出形式:A B C 输入形式:A B C A)scanf(“%c%c%c”,&ch1,&ch2,&ch3);B)scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);C)scanf(“%c %c %c”,&ch1,&ch2,&
20、ch3);(正确答案)D)scanf(“%c%c”,&ch1,&ch2,&ch3);55 阅读以下程序,当输入数据的形式为:25,13,10(注:表示回车),则正确的输出结果为 ( ) 。main() int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%dn”,x+y+z); A)x+y+z=48B)x+y+z=35C)x+z=35D)不确定值(正确答案)56 已知ch是字符型变量,下面不正确的赋值语句是 () 。 A) ch=a+b;(正确答案)B) ch=0;C) ch=7+9;D) ch=5+9;57 以下关于结构化程序设计的叙述中正确的是
21、() 。 A)一个结构化程序必须同时由顺序、分支、循环三种结构组成B)结构化程序使用goto语句会很便捷C)在C语言中,程序的模块化是利用函数实现的(正确答案)D)由三种基本结构构成的程序只能解决小规模的问题58 有以下程序#include main()int a1,a2; char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);printf(“%d,%c,%d,%c”,a1,c1,a2,c2);若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b则正确的输入格式是( ) . (以下_代表
22、空格,代表回车) A)12a34b(正确答案)B)12_a_34_bC)12,a,34,bD)12_a34_b59 逻辑运算符两侧运算对象的数据类型 () 。 A) 只能是0和1B) 只能是0或非0正数C) 只能是整型或字符型数据D) 可以是任何类型的数据(正确答案)60 判断char型变量ch是否为大写字母的正确表达式是 () 。 A)A=ch=A)&(ch=A)&(ch=Z)(正确答案)D) (A= ch)61 若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是 () 。 A) A%2=1B) !(A%2=0)C) !(A%2)(正
23、确答案)D) A%262 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=ab)&(n=cd)后n的值为() 。 A) 1B) 2(正确答案)C) 3D) 463 以下程序的运行结果是( ) 。main() int a,b,d=241;a=d/100%9; b=(-1)&(-1);printf(“%d,%d”,a,b); A) 6,1B) 2,1(正确答案)C) 6,0D) 2,064 已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( ) if(xy) z=x; x=y; y=z; A) x=10, y=20, z=30B) x=20, y=3
24、0, z=30(正确答案)C) x=20, y=30, z=10D) x=20, y=30, z=2065 以下程序的运行结果是( ) 。main() int m=5;if(m+5) printf(“%dn”,m);else; printf(“%dn”,m-); A) 4B) 5C) 6(正确答案)D) 766if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是 ()。 A)必须是逻辑值B)必须是整数值C)必须是正数D)可以是任意合法的数值(正确答案)67 若运行时给变量x输入12,则以下程序的运行结果是( ) 。main() int x,y;scanf(“%d”,&
25、x); y=x12 ? x+10 : x-12; printf(“%dn”,y); A) 4B) 3C) 2D) 0(正确答案)68有以下程序#include main()int c=0,k;for(k=1;k3;k+)switch(k)default:c+=k;case 2:c+;break;case 4:c+=2;break;printf(“%dn”,c);程序运行后的输出结果是( ) A)3(正确答案)B)5C)7D)969设有程序段 int k=10; while(k=0)k=k-1; 这下面描述中正确的是(). A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行
26、(正确答案)D)循环体语句执行一次70有以下程序#include main()int a=1,b=0;if(!a) b+;else if(a=0) if(a) b+=2;else b+=3;printf(“%dn”,b);程序运行后的输出结果是( ) 。 A)0(正确答案)B)1C) 2D) 371语句while(!E);中的表达式!E等价于() . A)E=0B)E!=1C)E!=0(正确答案)D)E=172下面程序的运行结果是( ) .#includemain() int num=0;while(num=2) num+; printf(%dn,num); A)1B) 1 2C) 1 2 3
27、(正确答案)D) 1 2 3 473有以下程序main() char b,c; int i; b=a; c=A; for(i=0;i6;i+) if(i%2) putchar(i+b); else putchar(i+c); printf(n);程序运行后的输出结果是( ) . A) ABCDEFB) AbCdEf(正确答案)C) aBcDeFD) abcdef74若有如下语句int x=3;doprintf(%dn,x-=2); while(!(-x);则上面程序段( ) A)输出的是1B)输出的是1和-2(正确答案)C)输出的是3和0D)是死循环75以下程序段( ) .x=-1; dox=
28、xx; while(!x); A)是死循环B)循环执行二次C)循环执行一次(正确答案)D)有语法错误76下面程序的运行结果是( ) . #includemain() int y=10;doy-; while(-y);printf(%dn,y-); A)-1B)1C)8D)0(正确答案)77执行语句for(i=1;i+4; );后变量i的值是() . A)3B)4C)5(正确答案)D)不定78若i为整型变量,则以下循环执行次数是( ) .for(i=2;i=0;)printf(%d,i-); A)无限次B)0次(正确答案)C)1次D)2次79 printf函数中用到格式符%5s,其中数字5表示输
29、出的字符串占用5列。如果字符串长度大于5,则输出按方式( ) ;如果字符串长度小于5,则输出按方式 ( C) 。 A) 从左起输出该字符串,右补空格B) 按原字符长从左向右全部输出(正确答案)C) 右对齐输出该字符串,左补空格(正确答案)D) 输出错误信息80下面程序段的运行结果是(A)循环次数为( ) .int n=0; while(n+=y)&(y=z)(正确答案)B. (x=y)AND(y=z)C. (x=y=z)D. (x=y) & (y=z)84.己知: int a10; 则对a数组元素的正确引用是() 。 A.a10B. a3.5C. a(5)(正确答案)D. a085.有如下程序,int x=1,a=0, b=0;switch(x)case 0:b+;break;case 1:a+;break;printf(a=%d, b=%dn, a, b);该程序的输出结果是( ) A)a=2, b=1B)a=1, b=1;C)a=1, b=0(正确答案)D)a=2, b=2a=0,
限制150内