1、C语言程序设计试题第1、2、3章 概述、类型、表达式一、选择题1、 一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:()A、 任意 B、 第一个函数必须是主函数,其他函数任意C、 必须完全按照执行的顺序排列D、 其他函数可以任意,主函数必须在最后2、 下列四个叙述中,正确的是:()A、 C程序中的所有字母都必须小写B、 C程序中的关键字必须小写,其他标示符不区分大小写C、 C程序中的所有字母都不区分大小写D、 C语言中的所有关键字必须小写3、 下列四个叙述中,错误的是:()A、 一个C源程序必须有且只能有一个主函数B、 一个C源程序可以有多个函数C、 在C源程序中注释说明必须位于语
2、句之后D、 C源程序的基本结构是函数4、 下面不是C语言合法标识符的是:()A、abc B、5n C、_4m D、x35、 以下叙述不正确的是:()A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定非用main来表示6、 C语言中允许的基本数据类型包括:()A. 整型、实型、逻辑型 B. 整型、实型、字符型C. 整型、字符型、逻辑型 D. 整型、实型、逻辑型、字符型7、 C语言中能用八进制表示的数据类型为:()A、字符型、整型 B、整形、实型C、字符型、实型、双精度型 D、字符型、整型、实型、双精度型8、 下列属于C语言合法的字符常
3、数是:()A、97 B、”A” C、t D、”0”9、 在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:() A、charint=long int =floatdoubleB、char=intlong int =floatdoubleC、charintlong int=float=doubleD、char=int=long int =floatdouble10、 在C语言中(VC环境),一定是长整型常数的是:() A、0L B、4962710 C、0412765 D、0xa34b7fe11、 若有以下定义语句char c1=b, c2=e; printf(“%d,%cn”,
4、c2-c1,c2-a+A);则输出结果是:() A、2,M B、3,E C、2,E D、输出项与相应的格式控制不一致,输出结果不确定12、 以下合法的赋值语句是:() A、x=y=100 B、d-; C、x + y D、c = int(a+b);13、 设变量t为int型,下列选项中不正确的赋值语句是:() A、+t; B、n1=(n2=(n3=0); C、k=i=m; D、a=b+c=1;14、 在以下一组运算符中,优先级最高的是:() A、=10 or a=0 B、a=0 C、a=10 | a=10 & a=016、 下列只有当整数x为奇数时,其值为“真”的表达式是:() A、x%2=0
5、B、!(x%2=0) C、(x-x/2*2)=0 D、!(x%2)17、 设a为整型变量,不能正确表达数学关系10a15的C语言表达式是:() A、1 0 a 15 B、!(a=15) C、a10 & a15 D、!(a=15)18、 已知x=43, ch=A,y=0;则表达式(x=y&ch8)D #include 以下不是C语句的是:()Aa=8; Ba+; Cif(a8);Dfor(i=1;i x -2 )|(4 x 8)B!( x 2 )&( x 8 )C( x = -2 )&( x 4 )&( x -2 )&( x 4 )|( x 8 )&( x 10;后,t的值为0 29. ( )若
6、a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变30. ( )在C程序中,%是只能用于整数运算的运算符31. ( )在C语言中,逻辑“真”等价于不等于0的数32. ( )C语言中字符型、整型、实型都能用八进制表示33. ( )在VC语言中,5种基本数据类型的存储空间长度的排列顺序为:charintlong int floatdouble34. ( )变量的三要素是:变量名、变量类型、变量的值。 三、多选题1. 目前程序设计采用的基本方法有:A面向过程的程序设计B面向对象的程序设计C面向问题的程序设计D面向机器的程序设计 第4章 顺序结构一、选择题1、下面程序的输出是
7、:() 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 2、以下合法的C语言赋值语句是:() A)a=b=58 B)k=int(a+b) ; C)a=58,b=58 D)- i; 3、以下程序的输出结果是:() main() int x=10,y=3;printf(“%dn”,y=x/y); A)0 B)1 )3 D)不确定 4、若变量已正确说明为int类型,要给a,b,c输入数据,以下正确的输入语句是:
8、() 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); 5、执行下面程序段后,c3中的值是:()int c1=1 , c2=2 , c3;c3=c1/c2; A)0 B)1/2 C)0.5 D)1 6、若执行以下程序段,其输出结果是:()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,-
9、10 7、以下程序段的输出是:()float a=57.666;printf(“*%2.2f*n”, a);A)*57* B)*58* C)*57.66* D)*57.67* 8、若有以下定义和语句:() int a=5,b b=a+;此处b的值是:()A) 7 B) 6 C) 5 D) 4 9、若有以下定义和语句:() char c1=b,c2=e; printf(%d,%cn,c2-c1,c2-a+A)则输出结果是:()A) 2,M B) 3,E C) 2,e D) 输出结果不确定 10、以下程序的输出结果是:() main() int x=10,y=10; printf(%d%dn,x-
10、,-y); A) 10 10 B) 9 9 C) 9 10 D) 10 9 11、在C语言中,如果下面的变量都是int类型,则输出结果是:() sum=pad=5; pad=sum+,pad+,+pad; printf(%dn,pad);A) 7 B) 6 C) 5 D) 4 12、以下程序的输出结果:() #include main() int i=010,j=10; printf(%d,%dn,+i,j-); A) 11,10 B) 9,10 C) 010,9 D) 10,9 13、在C语言中,short类型数据的范围是-3276832767,下面程序段的输出结果是:() short i
11、=65536; printf(%dn,i);A) 65536 B) 0C) 1 D)超出取值范围,无输出结果 14、已知字符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) 不确定的值 15、若有定义和语句: char s; s=abcd; printf(%dn,s);则结果是:()A) 输出 97 B) 输出 aC) 输出 adcb D) 编译不能通过 16、若有定义:int x,y; char a,b,c
12、; 并有以下输入数据(此处代表换行,V代表空格): 1V2 AVBVC 则能给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); 17、两次运行下面的程序,如果从
13、键盘上分别输入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 18、若执行下面的程序从键盘输入3和4,则输出是:() main() int a,b,s; scanf(%d%d,&a,&b); s=a; if (ab) s=b; s=s*s; printf(%dn,s); A) 14 B) 16 C) 18 D) 20 19、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值scanf(i=%d,f
14、=%f,&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为:()A) 100765.12 B) i=100,f=765.12C) 100765.12 D) x=100,y=765.12 20、以下程序的输出结果是:() #include main() int n; printf(%dn,n); A) -1 B) 0 C) 1 D) 不确定 二、判断题1( )在C语言中,实型数据在内存都中占4个字节。 2( )在C语言中,参加算术(+,-,*,/,%)运算的数据可以是任何类型的数据。 3( )若有定义和语句:int a;char c;scanf(%d,%c,&a,&c);当通
15、过键盘输入:10,A之后,则变量a中存放的是10,变量c中存放的是A。 4( )C语言中,变量名只能是小写字母表示,符号常量名可用大写表示 5( )在C语言中,变量可以不要定义,直接使用 6( )一个C语言程序总是从主函数开始执行的 7( )注释语句必须用/*和*/括起来,且只能位于某一语句的后面8( ) “a”和a均是占用1个字节的内存空间的数据 三、多选题 1. 以下所列语句中,不合法的语句是:()A、a=1,b=2B、+a;C、a=a+1=5;D、y= (int) a;E、a=b=c=10; 2. 下列描述正确的是:()A. putchar函数的作用是向屏幕输出一个字符B. putcha
16、r函数能在屏幕上输出控制字符C. putchar(c)函数中,c只能是字符型变量,不能是整型变量D. putchar函数能在屏幕上输出转义字符Eputchar函数的使用需要包含“stdio.h”头文件 3. 下列描述正确的是:()A. getchar函数只能接收一个字符B. getchar函数得到的字符可以赋给一个字符变量C. getchar函数得到的字符可以赋给一个整型变量D. getchar函数得到的字符可以作为表达式的一部分Egetchar函数是编程者自定义的函数 4. printf函数中,关于格式字符描述正确的是:()A格式字符o表示以八进制无符号形式输出整数B格式字符u 表示以无符号
17、十进制形式输出整数C格式字符x 表示以无符号十六进制形式输出整数D格式字符f 表示以实数形式输出单、双精度数E格式字符e 表示以浮点数形式输出单、双精度数 5. 假设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); 6. 假设floatx,y,z;,并通过scanf(%f%f%f ,&a,&b,&c);对a赋于10.0,b赋予22.0,c赋予33.0的值,
18、下面正确的输入形式是:()(注:符号代表空格)A、102233B、10.022.033.0C、10.0,22.0,33.0D、10.022.033.0E、102233 7. 若有int a,c;char b;并通过scanf(%f%c%f ,&a,&b,&c);对a赋于整数10,b赋予字符M,c赋予整数33的值,下面正确的输入形式是:()(注:符号代表空格)A、10M33B、10M33C、10M33D、10M33E、10M33 8. 若有 char ch;,下面可以对变量c正确赋值的语句是:()Ach =A;Bgetchar(ch);Cch = getchar(); Dscanf(“%c”,&
19、ch);Eprintf(“%c”,ch=B); 9. 下面属于转义符的有:( )At Bn C%d D376 Ex20 10. 若a为整型变量,则下列表达式的值为0的是( ),Aa % a Ba != aC3/4 D3 & 0Ea = 0 第5、6章选择与循环结构一、选择题1. 有以下程序 main( ) int i; for ( i=0; ibc) 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)编译时有错,无结果 4. 有以下
20、程序 main() int i=0,s=0; do if (i%2) i+; continue; i+; s += i; while( ib?(ac?a:c):(b); A) 5 B) 4 C) 6 D) 不确定 6. 以下程序中,while循环的循环次数是:() main() int i=0; while(i10) if(i1) continue; if(i=5) break; i+; A) 1 B) 10 C) 6 D) 死循环,不能确定次数 7. 以下程序的输出结果是:() main( ) int a=0,i; for(i=1;i5;i+) switch(i) case 0: case
21、3: a+=2; case 1: case 2: a+=3; default: a+=5; printf(%dn,a); A) 31 B) 13 C) 10 D) 20 8. 以下程序的输出结果是:() main() int a=4,b=5,c=0,d; d=!a & !b | !c; printf(%dn,d); A) 1 B) 0 C) 非0的数 D) -1 9. 以下程序的输出结果是:() #include main() int i=0,a=0; while(i20) for( ; ; ) if(i%10)=0) break; else i-; i+=11; a+=i; printh(%
22、dn,a); A) 21 B) 32 C) 33 D) 11 10. 阅读以下程序:( ) main() int x; scanf(%d,&x); if(x-5) printf(%dx); else printf(%dx+); 程序运行后,如果从键盘上输人5,则输出结果是:()A)3 B) 4 C) 5 D) 6 11. 假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(wx)?w : x; m=(my)?m : y; m=(mz)?m: z;则该程序运行后,m的值是:()A) 4 B) 3 C) 2 D) 1 12. 以下程序的输出结果是:() main() int a, b; for(a=1, b=1