C语言程序设计试题及答案解析(共66页).doc
精选优质文档-倾情为你奉上C语言程序设计试题第1、2、3章 概述、类型、表达式一、选择题一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:()A、任意 B、第一个函数必须是主函数,其他函数任意C、必须完全按照执行的顺序排列D、其他函数可以任意,,主函数必须在最后答案:A下列四个叙述中,正确的是:()A、C程序中的所有字母都必须小写B、C程序中的关键字必须小写,其他标示符不区分大小写C、C程序中的所有字母都不区分大小写D、C语言中的所有关键字必须小写答案:D下列四个叙述中,错误的是:()A、一个C源程序必须有且只能有一个主函数B、一个C源程序可以有多个函数C、在C源程序中注释说明必须位于语句之后D、C源程序的基本结构是函数答案:C下面不是C语言合法标识符的是:()A、abc B、5n C、_4m D、x3答案:B以下叙述不正确的是:()A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定非用main来表示答案:DC语言中允许的基本数据类型包括:()A. 整型、实型、逻辑型 B. 整型、实型、字符型C. 整型、字符型、逻辑型 D. 整型、实型、逻辑型、字符型答案:BC语言中能用八进制表示的数据类型为:()A、字符型、整型 B、整形、实型C、字符型、实型、双精度型 D、字符型、整型、实型、双精度型答案:A下列属于C语言合法的字符常数是:()A、97 B、”A” C、t D、”0”答案:C在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:() A、char<int<=long int <=float<doubleB、char=int<long int <=float<doubleC、char<int<long int=float=doubleD、char=int=<long int <=float<double答案:A在C语言中(VC环境),一定是长整型常数的是:() A、0L B、 C、 D、0xa34b7fe答案:A若有以下定义语句char c1=b, c2=e; printf(“%d,%cn”,c2-c1,c2-a+A);则输出结果是:() A、2,M B、3,E C、2,E D、输出项与相应的格式控制不一致,输出结果不确定答案:B以下合法的赋值语句是:() A、x=y=100 B、d-; C、x + y D、c = int(a+b);答案:B设变量t为int型,下列选项中不正确的赋值语句是:() A、+t; B、n1=(n2=(n3=0); C、k=i=m; D、a=b+c=1;答案:D在以下一组运算符中,优先级最高的是:() A、<= B、= C、% D、&&答案:C下列能正确表示a10或a0的关系表达式是:() A、a>=10 or a<=0 B、a<=10 | a>=0 C、a>=10 | a<=0 D、a>=10 && a<=0答案:C下列只有当整数x为奇数时,其值为“真”的表达式是:() A、x%2=0 B、!(x%2=0) C、(x-x/2*2)=0 D、!(x%2)答案:B设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:() A、1 0< a < 15 B、!(a<=10 | a>=15) C、a>10 && a<15 D、!(a<=10) && !(a>=15)答案:A已知x=43, ch=A,y=0;则表达式(x>=y&&ch<B&&!y)的值是:()A、0 B、语法错 C、1 D、“假”答案:C表达式17%4 /8的值为:()A、0 B、1 C、2 D、3答案:A语句printf(“%d”,(a=2)&&(b= -2);的输出结果是:() A、无输出 B、结果不确定 C、-1 D、1答案:D一个可执行的C程序的开始执行点是:()A. 程序中的第一个语句 B. 包含文件中的第一个函数C. 名为main的函数 D. 程序中的第一个函数答案:C组成语句的一个必不可少的符号是:()A. 逗号 B. 引号 C. 冒号 D. 分号答案:D若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:()A. int B. long C. float D. double答案:D下述是C语言中有关变量定义的几个说法,正确的是:()A.变量可以不定义直接使用 B.一个说明语句只能定义一个变量C.几个不同类型的变量可在同一语句中定义D.变量可以在定义时进行初绐化 答案:D与x * = y + z等价的赋值表达式是:()A. x = y + z B. x = x * y + z C. x = x * (y + z) D. x = x + y * z 答案:C当代电子计算机能够自动地处理指定的问题是因为:()A计算机是电动的B有解决该问题的计算机程序C事先存储了解决该问题的程序D以上都不是( 知识点:程序的基本概念;难度系数:2;答案:C )以下叙述中最准确的是:()A计算机程序是处理某一问题所有指令的集合B计算机程序是处理某一问题所用到的所有数据的集合C计算机程序是处理某一问题的所有指令及其数据的集合D计算机程序是处理某一问题的所有指令及其数据的有序集合( 知识点:程序的基本概念;难度系数:2;答案:D )关于计算机程序设计,以下描述最准确的是:()A程序设计就是用语言来编写程序B程序设计就是用计算机语言来编写程序C程序设计就是用计算机程序设计语言来编写程序D程序设计就是用计算机能识别的语言来编写程序( 知识点:程序设计的基本概念;难度系数:1;答案:C )目前编写计算机程序一般采用的是:()A机器语言B汇编语言C高级语言D英语( 知识点:程序设计的基本概念;难度系数:1;答案:C )设计一个计算机程序最基本的工作是:()A制定正确的算法B选择合理的数据结构C制定正确的算法和选择合理的数据结构D以上都不是( 知识点:算法的基本概念;难度系数:1;答案:C )算法具有五个特性,以下选项中不属于算法特性的是:()A有穷性B简洁性C可行性D确定性( 知识点:算法的基本概念;难度系数:3;答案:B )下述哪一个不是结构化程序基本结构:()A顺序B选择C循环D嵌套( 知识点:结构化程序设计的概念;难度系数:2;答案:D )C语言是一种:() A机器语言B汇编语言C高级语言D以上都不是( 知识点:C语言的特点;难度系数:1;答案:C )C语言源程序的扩展名为:() A.exeB.cC.objD.cpp( 知识点:C语言的特点;难度系数:1;答案:B )C程序编译后最终产生(即计算机执行)的文件的扩展名为( )A.exeB.cC.objD.cpp( 知识点:C语言的特点;难度系数:1;答案:A )下列各项中,不是C语言的特点是:() A语言简洁、紧凑,使用方便 B程序执行效率高,可移植性好 C能实现汇编语言的大多数功能 D有较强的网络操作功能 ( 知识点:C语言的特点;难度系数:3;答案:D )构成C语言源程序的基本单位是:() A子程序B过程C文本D函数( 知识点:C程序的特点;难度系数:1;答案:D )下列叙述正确的是:() AC语言源程序可以直接在DOS环境中运行 B编译C语言源程序得到的目标文件可以直接在DOS环境中运行 CC语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行 DC语言源程序可以直接在VC+环境中运行( 知识点:C程序的特点;难度系数:2;答案:C )某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:() A写在前面的函数先开始执行 B总是从main()函数开始执行 C总是从max()函数开始执行 D写在后面的函数先开始执行 ( 知识点:C程序的特点;难度系数:1;答案:B )以下叙述不正确的是:()A分号是C语句的必要组成部分BC程序的注释可以写在语句的后面C函数是C程序的基本单位D主函数的名字不一定用mian表示( 知识点:C程序的特点;难度系数:1;答案:D )以下为C语句的是:()Aa=8 Ba+; Cif(a>8)D #include <stdio.h>( 知识点:C语句的特点;难度系数:2;答案:B )以下不是C语句的是:()Aa=8; Ba+; Cif(a>8);Dfor(i=1;i<5;i+)( 知识点:C语句的特点;难度系数:2;答案:D )以下所列语句中,合法的语句是:( )Aa=1,b=2 B+a; Ca=a+1=5 Dy=int(a);( 知识点:C语句的特点;难度系数:2;答案:B )C程序中的复合语句指的是:()A并列的多个C语句 B写在同一行中的多个C语句C用一对大括号对括的多个C语句 D就是函数体中的语句 ( 知识点:C语句的特点;难度系数:2;答案:C )当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( )A由系统自动换行B立即按回车键换行C在任意一个空格处按回车键换行D输入一个分号后并按回车键换行换行( 知识点:C语句的特点;难度系数:2;答案:C )在x值处于-22,48时值为“真”,否则为“假”的表达式是:( )。A( 2> x> -2 )|(4 > x > 8)B!( x < -2 )|( x >2 )&&( x <= 4 )|( x > 8 )C( x < 2 )&&( x >= -2 )&&( x > 4 )&&( x < 8 )D( x > -2 )&&( x >4 )|( x < 8 )&&( x < 2 )答案:B二、判断题( T )C语言是严格区分大写和小写的,因次主函数不能写成main()以外的其他形式。( F )C语言程序是从源文件的第一条语句开始执行的。( T )C语言对其数据在内存中所占用的实际字节数是有明确规定的。( F )C语言中/*.*/之间的注释内容是不能跨行的。( F )C语言中多个以“;”结束的语句不能放在同一行。( T )以下常数:'101',e3,78,(2+3)e(4-2)都是不合法的。( F )变量说明语句int a=b=c=23;是正确的。( F )字符型数据不可以和整数数据一起进行算术运算。( F )C语句:3*x*x+4*x+1+6sin(x)=y.是可以允许的。( T )表达式m=(a=4,4*5)和m=a=4,4*5的值是相等的。( T )C语言中强制类型转换不会改变原变量的原有数据类型。( F )表达式j=-i+和j=-(i+)不相等( T )程序段:i=8,j=10;printf("%d,%d,%d,%dn",i,j,+i,j+);其结果9,10,9,10.( F )C语言中放在“”之间的内容都被视为字符串的一个构成部分,都可以在屏幕上原样显示。( T )计算机程序的基本组成是:指示计算机如何去解决某一问题的一组指令。( T )计算机程序的执行过程实际上是对程序所表达的数据进行处理的过程。( T )目前程序设计的理念已经从“面向过程的程序设计”向“面向对象的程序设计”方面转变。( T )任何一个计算机程序都可以用机器语言、汇编语言和高级语言来编写。( T )有人曾提出:计算机程序算法数据结构。( T )在程序设计中提到的算法就是“解决问题的方法和步骤”( T )在程序设计中提到的数据结构就是“程序处理的对象的表示方法”( T )计算机程序的算法就是解决“做什么”和“怎么做”的问题。( T )结构化程序设计的基本理念是:将一个较大的问题细分成若干个较小问题的组合。( T )C程序的编译是从程序的第一行开始,到程序的最后一行结束。( F )C程序的编译是从主函数的第一行开始,到主函数的最后一行结束。( F )C程序的执行是从程序的第一行开始,一直到程序的最后一行结束。( T )C程序的执行是从主函数的第一行开始,一直到主函数的最后一行结束。( T )设x、t均为int型变量,则执行语句"x = 10;t = x && x > 10;"后,t的值为0 ( T )若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变( T )在C程序中,%是只能用于整数运算的运算符( T )在C语言中,逻辑“真”等价于不等于0的数( F )C语言中字符型、整型、实型都能用八进制表示(F)在VC语言中,5种基本数据类型的存储空间长度的排列顺序为:char<int<long int <float<double( T )变量的三要素是:变量名、变量类型、变量的值。 三、多选题目前程序设计采用的基本方法有:A面向过程的程序设计B面向对象的程序设计C面向问题的程序设计D面向机器的程序设计( 知识点:结构化程序设计的概念;难度系数:1;答案:AB )第4章 顺序结构一、选择题1、下面程序的输出是:() main() int k=11; printf("k=%d,k=%o,k=%xn",k,k,k); A) k=11,k=12,k=13 B) k=11,k=13,k=13C) k=11,k=013,k=oXb D) k=11,k=13,k=b答案:D2、以下合法的C语言赋值语句是:() A)a=b=58 B)k=int(a+b) ; C)a=58,b=58 D)- i;答案:D3、以下程序的输出结果是:() main() int x=10,y=3;printf(“%dn”,y=x/y); A)0 B)1 )3 D)不确定答案:C4、若变量已正确说明为int类型,要给a,b,c输入数据,以下正确的输入语句是:() 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,&b);答案:D5、执行下面程序段后,c3中的值是:()int c1=1 , c2=2 , c3;c3=c1/c2; A)0 B)1/2 C)0.5 D)1答案:A6、若执行以下程序段,其输出结果是:()int a=0 , b=0 , c=0;c=(a-=a-5) , (a=b,b+3) ;printf(“%d , %d , %dn” , a,b,c); A)0,0,0 B)0,0,5 C)5,0,5 D)-10,0,-10答案:B7、以下程序段的输出是:()float a=57.666;printf(“*%2.2f*n”, a);A)*57* B)*58* C)*57.66* D)*57.67*答案:D8、若有以下定义和语句:() int a=5,b b=a+;此处b的值是:()A) 7 B) 6 C) 5 D) 4答案:C9、若有以下定义和语句:() char c1='b',c2='e' printf("%d,%cn",c2-c1,c2-'a'+'A')则输出结果是:()A) 2,M B) 3,E C) 2,e D) 输出结果不确定答案:B10、以下程序的输出结果是:() main() int x=10,y=10; printf("%d%dn",x-,-y); A) 10 10 B) 9 9 C) 9 10 D) 10 9答案:D11、在C语言中,如果下面的变量都是int类型,则输出结果是:() sum=pad=5; pad=sum+,pad+,+pad; printf("%dn",pad);A) 7 B) 6 C) 5 D) 4答案:A12、以下程序的输出结果:() #include<stdio.h> main() int i=010,j=10; printf("%d,%dn",+i,j-); A) 11,10 B) 9,10 C) 010,9 D) 10,9答案:B13、在C语言中,short类型数据的范围是-3276832767,下面程序段的输出结果是:() short i =65536; printf("%dn",i);A) 65536 B) 0C) 1 D)超出取值范围,无输出结果答案:B14、已知字符A的ASCII码为十进制的65,下面程序的输出是:() main() char ch1,ch2; ch1='A'+'5'-'3' ch2='A'+'6'-'3' printf("%d,%cn",ch1,ch2); A) 67,D B) B,CC) C,D D) 不确定的值答案:A15、若有定义和语句: char s; s="abcd" printf("%dn",s);则结果是:()A) 输出 97 B) 输出 aC) 输出 adcb D) 编译不能通过答案:D16、若有定义:int x,y; char a,b,c; 并有以下输入数据(此处<CR>代表换行,V代表空格): 1V2 <CR> AVBVC<CR> 则能给x赋整数1,给y赋数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是:() A) scanf("x=%d y=%d",&x,&y); a=getchar(); c=getchar(); B) scanf("%d%d",&x,&y); a=getchar(); b=getchar(); c=getchar(); C) scanf("%d%d%c%c%c",&x,&y,&a,&b,&c);D) scanf("%d%d%c%c%c%c%c%c",&x,&y,&a,&a,&b,&b,&c,&c);答案:D17、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是:() main() int x; scanf("%d",&x); if (x+>5) printf("%d",x) else printf("%dn",x-); A) 7和5 B) 6和3 C) 7和4 D) 6和4答案:A18、若执行下面的程序从键盘输入3和4,则输出是:() main() int a,b,s; scanf("%d%d",&a,&b); s=a; if (a<b) s=b; s=s*s; printf("%dn",s); A) 14 B) 16 C) 18 D) 20答案:B19、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值scanf("i=%d,f=%f",&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为:()A) 100<空格>765.12<回车> B) i=100,f=765.12<回车>C) 100<回车>765.12<回车> D) x=100<回车>,y=765.12<回车> 答案:B20、以下程序的输出结果是:() #include<stdio.h> main() int n; printf("%dn",n); A) -1 B) 0 C) 1 D) 不确定答案:B二、判断题1( F )在C语言中,实型数据在内存都中占4个字节。 2( F )在C语言中,参加算术(+,-,*,/,%)运算的数据可以是任何类型的数据。 3( F )若有定义和语句:int a;char c;scanf("%d,%c",&a,&c);当通过键盘输入:10,A之后,则变量a中存放的是10,变量c中存放的是A。 4( F )C语言中,变量名只能是小写字母表示,符号常量名可用大写表示 5( F )在C语言中,变量可以不要定义,直接使用 6( T )一个C语言程序总是从主函数开始执行的 7( F )注释语句必须用/*和*/括起来,且只能位于某一语句的后面8( F ) “a”和a均是占用1个字节的内存空间的数据 三、多选题 以下所列语句中,不合法的语句是:()A、a=1,b=2B、+a;C、a=a+1=5;D、y= (int) a;E、a=b=c=10;答案:ACD 下列描述正确的是:()A. putchar函数的作用是向屏幕输出一个字符B. putchar函数能在屏幕上输出控制字符C. putchar(c)函数中,c只能是字符型变量,不能是整型变量D. putchar函数能在屏幕上输出转义字符Eputchar函数的使用需要包含“stdio.h”头文件答案:ABDE 下列描述正确的是:()A. getchar函数只能接收一个字符B. getchar函数得到的字符可以赋给一个字符变量C. getchar函数得到的字符可以赋给一个整型变量D. getchar函数得到的字符可以作为表达式的一部分Egetchar函数是编程者自定义的函数答案:ABCDprintf函数中,关于格式字符描述正确的是:()A格式字符o表示以八进制无符号形式输出整数B格式字符u 表示以无符号十进制形式输出整数C格式字符x 表示以无符号十六进制形式输出整数D格式字符f 表示以实数形式输出单、双精度数E格式字符e 表示以浮点数形式输出单、双精度数答案:ABCDE 假设intx,y,z;若从键盘给x、y、z输入数据,下列不正确的输入语句是:()Ainput x、y、z; Bscanf("%d%d%d",&x,&y,&z);Cscanf("%d%d%d",x,y,z); Dread("%d%d%d",&x,&y,&z);Escanf("%d%d%d,&x,&y,&z");答案:ACDE假设floatx,y,z;,并通过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.022.033.0<回车>E、102233<回车>答案:ABDE 若有int a,c;char b;并通过scanf("%f%c%f ",&a,&b,&c);对a赋于整数10,b赋予字符M,c赋予整数33的值,下面正确的输入形式是:()(注:符号代表空格)A、10<回车>M<回车>33<回车>B、10M33<回车>C、10M33<回车>D、10M<回车>33<回车>E、10M<回车>33<回车>答案:BDE若有 char ch;,下面可以对变量c正确赋值的语句是:()Ach =A;Bgetchar(ch);Cch = getchar(); Dscanf(“%c”,&ch);Eprintf(“%c”,ch=B);答案:ACDE下面属于转义符的有:( )At Bn C%d D376 Ex20答案:ABDE若a为整型变量,则下列表达式的值为0的是( ),Aa % a Ba != aC3/4 D3 && 0Ea = 0答案:ABCDE第5、6章选择与循环结构一、选择题1.有以下程序 main( ) int i; for ( i=0; i<3; i+ ) switch ( i ) case 1 : printf("%d ", i); case 2 : printf("%d ", i); default : printf("%d ", i); 执行后输出结果是:()A) B)012 C) D)120答案:A2.有以下程序 main() int i=1, j=1, k=2; if ( (j+ | k+) && i+) printf("%d,%d,%dn", i, j, k); 执行后输出结果是:() A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3答案:C3.有以下程序 main() int a=5,b=4,c=3,d=2; if (a>b>c) printf("%dn", d); else if ( (c-1 >= d) =1) printf("%dn", d+1); else printf("%dn", d+2); 执行后输出结果是:() A)2 B)3 C)4 D)编译时有错,无结果答案:B4.有以下程序 main() int i=0,s=0; do if (i%2) i+; continue; i+; s += i; while( i<7 ); printf("%dn", s); 执行后输出结果是:() A)16 B)12 C)28 D)21答案:A5.以下程序的输出结果是:() main() int a=5,b=4,c=6,d; printf("%dn",d=a>b?(a>c?a:c):(b); A) 5 B) 4 C) 6 D) 不确定答案:C6.以下程序中,7.while循环的循环次数是:() main() int i=0; while(i<10) if(i<1) continue; if(i=5) break; i+; A) 1 B) 10 C) 6 D) 死循环,不能确定次数答案:D8.以下程序的输出结果是:() main( ) int a=0,i; for(i=1;i<5;i+) switch(i) case 0: case 3: a+=2; case 1: case 2: a+=3; default: a+=5; printf("%dn",a); A) 31 B) 13 C) 10 D) 20答案:A9.以下程序的输出结果是:() main() int a=4,b=5,c=0,d; d=!a && !b | !c; printf("%dn",d); A) 1 B) 0 C) 非0的数 D) -1答案:A10.以下程序的输出结果是:() #include main() int i=0,a=0; while(i<20) for( ; ; ) if(i%10)=0) break; else i-;