收藏 分销(赏)

C语言程序设计试题及答案解析1.doc

上传人:人****来 文档编号:4291989 上传时间:2024-09-04 格式:DOC 页数:93 大小:409.52KB 下载积分:18 金币
下载 相关 举报
C语言程序设计试题及答案解析1.doc_第1页
第1页 / 共93页
C语言程序设计试题及答案解析1.doc_第2页
第2页 / 共93页


点击查看更多>>
资源描述
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源程序中注释说明必须位于语句之后 D、 C源程序的基本结构是函数 4、 下面不是C语言合法标识符的是:(  ) A、abc    B、5n      C、_4m     D、x3 5、 以下叙述不正确的是:(  ) A. 分号是C语句的必要组成部分   B. C程序的注释可以写在语句的后面 C. 函数是C程序的基本单位     D. 主函数的名字不一定非用main来表示 6、 C语言中允许的基本数据类型包括:(  ) A. 整型、实型、逻辑型        B. 整型、实型、字符型 C. 整型、字符型、逻辑型 D. 整型、实型、逻辑型、字符型 7、 C语言中能用八进制表示的数据类型为:(  ) A、字符型、整型 B、整形、实型 C、字符型、实型、双精度型 D、字符型、整型、实型、双精度型 8、 下列属于C语言合法的字符常数是:(  ) A、’\97’ B、”A” C、’\t’ D、”\0” 9、 在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:(  ) A、char<int<=long int <=float<double B、char=int<long int <=float<double C、char<int<long int=float=double D、char=int=<long int <=float<double 10、 在C语言中(VC环境),一定是长整型常数的是:(  ) A、0L B、4962710 C、0412765 D、0xa34b7fe 11、 若有以下定义语句char c1=’b’, c2=’e’; printf(“%d,%c\n”,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、<= B、== C、% D、&& 15、 下列能正确表示a≥10或a≤0的关系表达式是:(  ) A、a>=10 or a<=0 B、a<=10 || a>=0 C、a>=10 || a<=0 D、a>=10 && a<=0 16、 下列只有当整数x为奇数时,其值为“真”的表达式是:(  ) A、x%2==0 B、!(x%2==0) C、(x-x/2*2)==0 D、!(x%2) 17、 设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) 18、 已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:(  ) A、0 B、语法错 C、1 D、“假” 19、 表达式17%4 /8的值为:(  ) A、0 B、1 C、2 D、3 20、 语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:(  ) A、无输出 B、结果不确定 C、-1 D、1 21、 一个可执行的C程序的开始执行点是:(  ) A. 程序中的第一个语句 B. 包含文件中的第一个函数 C. 名为main的函数 D. 程序中的第一个函数 22、 组成C语句的一个必不可少的符号是:(  ) A. 逗号 B. 引号 C. 冒号 D. 分号 23、 若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:(  ) A. int B. long C. float D. double 24、 下述是C语言中有关变量定义的几个说法,正确的是:(  ) A. 变量可以不定义直接使用 B. 一个说明语句只能定义一个变量 C. 几个不同类型的变量可在同一语句中定义 D. 变量可以在定义时进行初绐化 25、 与x * = y + z等价的赋值表达式是:(  ) A. x = y + z B. x = x * y + z C. x = x * (y + z) D. x = x + y * z 26、 当代电子计算机能够自动地处理指定的问题是因为:(  ) A.计算机是电动的 B.有解决该问题的计算机程序 C.事先存储了解决该问题的程序 D.以上都不是 27、 以下叙述中最准确的是:(  ) A.计算机程序是处理某一问题所有指令的集合 B.计算机程序是处理某一问题所用到的所有数据的集合 C.计算机程序是处理某一问题的所有指令及其数据的集合 D.计算机程序是处理某一问题的所有指令及其数据的有序集合 28、 关于计算机程序设计,以下描述最准确的是:(  ) A.程序设计就是用语言来编写程序 B.程序设计就是用计算机语言来编写程序 C.程序设计就是用计算机程序设计语言来编写程序 D.程序设计就是用计算机能识别的语言来编写程序 29、 目前编写计算机程序一般采用的是:(  ) A.机器语言    B.汇编语言     C.高级语言    D.英语 30、 设计一个计算机程序最基本的工作是:(  ) A.制定正确的算法             B.选择合理的数据结构 C.制定正确的算法和选择合理的数据结构   D.以上都不是 31、 算法具有五个特性,以下选项中不属于算法特性的是:(  ) A.有穷性      B.简洁性       C.可行性      D.确定性 32、 下述哪一个不是结构化程序基本结构:(  ) A.顺序      B.选择       C.循环      D.嵌套 33、 C语言是一种:(  ) A.机器语言    B.汇编语言     C.高级语言    D.以上都不是 34、 C语言源程序的扩展名为:(  ) A..exe      B..c       C..obj      D..cpp 35、 C程序编译后最终产生(即计算机执行)的文件的扩展名为( ) A..exe      B..c       C..obj      D..cpp 36、 下列各项中,不是C语言的特点是:(  ) A.语言简洁、紧凑,使用方便 B.程序执行效率高,可移植性好 C.能实现汇编语言的大多数功能 D.有较强的网络操作功能 37、 构成C语言源程序的基本单位是:(  )    A.子程序    B.过程     C.文本    D.函数 38、 下列叙述正确的是:(  ) A.C语言源程序可以直接在DOS环境中运行 B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行 C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行 D.C语言源程序可以直接在VC++环境中运行 39、 某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:(  ) A.写在前面的函数先开始执行 B.总是从main()函数开始执行 C.总是从max()函数开始执行 D.写在后面的函数先开始执行 40、 以下叙述不正确的是:(  ) A.分号是C语句的必要组成部分 B.C程序的注释可以写在语句的后面 C.函数是C程序的基本单位 D.主函数的名字不一定用mian表示 41、 以下为C语句的是:(  ) A.a=8      B.a++;   C.if(a>8)   D. #include <stdio.h> 以下不是C语句的是:(  ) A.a=8;      B.a++;   C.if(a>8);   D.for(i=1;i<5;i++) 42、 以下所列语句中,合法的语句是:( ) A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a); 43、 C程序中的复合语句指的是:(  ) A.并列的多个C语句          B.写在同一行中的多个C语句 C.用一对大括号对括的多个C语句    D.就是函数体中的语句 44、 当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( ) A.由系统自动换行     B.立即按回车键换行 C.在任意一个空格处按回车键换行 D.输入一个分号后并按回车键换行换行 45、 在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。 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 ) 二、判断题 1. ( )C语言是严格区分大写和小写的,因次主函数不能写成main()以外的其他形式。 2. ( )C语言程序是从源文件的第一条语句开始执行的。 3. ( )C语言对其数据在内存中所占用的实际字节数是有明确规定的。 4. ( )C语言中/*..*/之间的注释内容是不能跨行的。 5. ( )C语言中多个以“;”结束的语句不能放在同一行。 6. ( )以下常数:'101',e3,’\78’,(2+3)e(4-2)都是不合法的。 7. ( )变量说明语句int a=b=c=23;是正确的。 8. ( )字符型数据不可以和整数数据一起进行算术运算。 9. ( )C语句:3*x*x+4*x+1+6sin(x)=y.是可以允许的。 10. ( )表达式m=(a=4,4*5)和m=a=4,4*5的值是相等的。 11. ( )C语言中强制类型转换不会改变原变量的原有数据类型。 12. ( )表达式j=-i++和j=-(i++)不相等 13. ( )程序段:i=8,j=10;printf("%d,%d,%d,%d\n",i,j,++i,j++);其结果9,10,9,10. 14. ( )C语言中放在“”之间的内容都被视为字符串的一个构成部分,都可以在屏幕上原样显示。 15. ( )计算机程序的基本组成是:指示计算机如何去解决某一问题的一组指令。 16. ( )计算机程序的执行过程实际上是对程序所表达的数据进行处理的过程。 17. ( )目前程序设计的理念已经从“面向过程的程序设计”向“面向对象的程序设计”方面转变。 18. ( )任何一个计算机程序都可以用机器语言、汇编语言和高级语言来编写。 19. ( )有人曾提出:计算机程序=算法+数据结构。 20. ( )在程序设计中提到的算法就是“解决问题的方法和步骤” 21. ( )在程序设计中提到的数据结构就是“程序处理的对象的表示方法” 22. ( )计算机程序的算法就是解决“做什么”和“怎么做”的问题。 23. ( )结构化程序设计的基本理念是:将一个较大的问题细分成若干个较小问题的组合。 24. ( )C程序的编译是从程序的第一行开始,到程序的最后一行结束。 25. ( )C程序的编译是从主函数的第一行开始,到主函数的最后一行结束。 26. ( )C程序的执行是从程序的第一行开始,一直到程序的最后一行结束。 27. ( )C程序的执行是从主函数的第一行开始,一直到主函数的最后一行结束。 28. ( )设x、t均为int型变量,则执行语句"x = 10;t = x && x > 10;"后,t的值为0 29. ( )若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变 30. ( )在C程序中,%是只能用于整数运算的运算符 31. ( )在C语言中,逻辑“真”等价于不等于0的数 32. ( )C语言中字符型、整型、实型都能用八进制表示 33. ( )在VC语言中,5种基本数据类型的存储空间长度的排列顺序为:char<int<long int <float<double 34. ( )变量的三要素是:变量名、变量类型、变量的值。 三、多选题 1. 目前程序设计采用的基本方法有: A.面向过程的程序设计   B.面向对象的程序设计 C.面向问题的程序设计   D.面向机器的程序设计 第4章 顺序结构 一、选择题 1、下面程序的输出是:(  ) main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=13 B) k=11,k=13,k=13 C) 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(“%d\n”,y=x/y); } A)0 B)1 C)3 D)不确定 4、若变量已正确说明为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); 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 , %d\n” , a,b,c); A)0,0,0 B)0,0,5 C)5,0,5 D)-10,0,-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,%c\n",c2-c1,c2-'a'+'A') 则输出结果是:(  ) A) 2,M B) 3,E C) 2,e D) 输出结果不确定 10、以下程序的输出结果是:(  ) main() { int x=10,y=10; printf("%d%d\n",x--,--y); } A) 10 10 B) 9 9 C) 9 10 D) 10 9 11、在C语言中,如果下面的变量都是int类型,则输出结果是:(  ) sum=pad=5; pad=sum++,pad++,++pad; printf("%d\n",pad); A) 7 B) 6 C) 5 D) 4 12、以下程序的输出结果:(  ) #include<stdio.h> main() { int i=010,j=10; printf("%d,%d\n",++i,j--); } A) 11,10 B) 9,10 C) 010,9 D) 10,9 13、在C语言中,short类型数据的范围是-32768~32767,下面程序段的输出结果是:(  ) short i =65536; printf("%d\n",i); A) 65536 B) 0 C) 1 D)超出取值范围,无输出结果 14、已知字符A的ASCII码为十进制的65,下面程序的输出是:(  ) main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 15、若有定义和语句: char s; s="abcd"; printf("%d\n",s); 则结果是:(  ) A) 输出 97 B) 输出 a C) 输出 adcb D) 编译不能通过 16、若有定义: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); 17、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是:(  ) main() { int x; scanf("%d",&x); if (x++>5) printf("%d",x) else printf("%d\n",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 (a<b) s=b; s=s*s; printf("%d\n",s); } A) 14 B) 16 C) 18 D) 20 19、设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<回车> 20、以下程序的输出结果是:(  ) #include<stdio.h> main() { int n; printf("%d\n",n); } A) -1 B) 0 C) 1 D) 不确定 二、判断题 1.( )在C语言中,实型数据在内存都中占4个字节。 2.( )在C语言中,参加算术(+,-,*,/,%)运算的数据可以是任何类型的数据。 3.( )若有定义和语句:int a;char c;scanf("%d,%c",&a,&c);当通过键盘输入: 10,‘A’之后,则变量a中存放的是10,变量c中存放的是‘A’。 4.( )C语言中,变量名只能是小写字母表示,符号常量名可用大写表示 5.( )在C语言中,变量可以不要定义,直接使用 6.( )一个C语言程序总是从主函数开始执行的    7.( )注释语句必须用/*和*/括起来,且只能位于某一语句的后面 8.( ) “a”和‘a’均是占用1个字节的内存空间 的数据 三、多选题 1. 以下所列语句中,不合法的语句是:(  ) A、a=1,b=2      B、++a;     C、a=a+1=5;    D、y= (int) a;   E、a=b=c=10; 2. 下列描述正确的是:(  ) A. putchar函数的作用是向屏幕输出一个字符 B. putchar函数能在屏幕上输出控制字符 C. putchar(c)函数中,c只能是字符型变量,不能是整型变量 D. putchar函数能在屏幕上输出转义字符 E.putchar函数的使用需要包含“stdio.h”头文件 3. 下列描述正确的是:(  ) A. getchar函数只能接收一个字符 B. getchar函数得到的字符可以赋给一个字符变量 C. getchar函数得到的字符可以赋给一个整型变量 D. getchar函数得到的字符可以作为表达式的一部分 E.getchar函数是编程者自定义的函数 4. printf函数中,关于格式字符描述正确的是:(  ) A.格式字符o表示以八进制无符号形式输出整数 B.格式字符u 表示以无符号十进制形式输出整数 C.格式字符x 表示以无符号十六进制形式输出整数 D.格式字符f 表示以实数形式输出单、双精度数 E.格式字符e 表示以浮点数形式输出单、双精度数 5. 假设int x,y,z;若从键盘给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); E.scanf("%d%d%d,&x,&y,&z"); 6. 假设float x,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.0︻22.0︻33.0<回车> E、10︻22︻33<回车> 7. 若有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、 10︻M︻33<回车> D、10M<回车>33<回车> E、10M︻<回车>33<回车> 8. 若有 char ch;,下面可以对变量c正确赋值的语句是:(  ) A.ch =‘A’; B.getchar(ch); C.ch = getchar(); D.scanf(“%c”,&ch); E.printf(“%c”,ch=‘B’); 9. 下面属于转义符的有:( ) A.‘\t ’ B.‘\n’ C.‘%d’ D.‘\376’ E.‘\x20’ 10. 若a为整型变量,则下列表达式的值为0的是( ), A.a % a B.a != a C.3/4 D.3 && 0 E.a = 0 第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)011122 B)012 C)012020 D)120 2. 有以下程序 main() { int i=1, j=1, k=2; if ( (j++ || k++) && i++) printf("%d,%d,%d\n", i, j, k); }   执行后输出结果是:(  ) A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 3. 有以下程序 main() { int a=5,b=4,c=3,d=2; if (a>b>c) printf("%d\n", d); else if ( (c-1 >= d) ==1) printf("%d\n", d+1); else printf("%d\n", d+2); }   执行后输出结果是:(  ) A)2 B)3 C)4 D)编译时有错,无结果 4. 有以下程序 main() { int i=0,s=0; do { if (i%2) { i++; continue; } i++; s += i; } while( i<7 ); printf("%d\n", s); }  执行后输出结果是:(  ) A)16 B)12 C)28 D)21 5. 以下程序的输出结果是:(  ) main() { int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b)); } A) 5 B) 4 C) 6 D) 不确定 6. 以下程序中,while循环的循环次数是:(  ) main() { int i=0; while(i<10) { if(i<1) continue; if(i==5) break; i++; } } A) 1 B) 10 C) 6 D) 死循环,不能确定次数 7. 以下程序的输出结果是:(  ) 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("%d\n",a); } A) 31 B) 13 C) 10 D) 20 8. 以下程序的输出结果是:(  ) main() { int a=4,b=5,c=0,d; d=!a && !b || !c; printf("%d\n",d); } A) 1 B) 0 C) 非0的数 D) -1 9. 以下程序的输出结果是:(  ) #include main() { int i=0,a=0; while(i<20) { for( ; ; ) { if((i%10)==0) break; else i--; } i+=11; a+=i; } printh("%d\n",a); } A) 21 B) 32 C) 33 D) 11 10. 阅读以下程序:( ) main() { int x; scanf("%d",&x); if(x--<5) printf("%d"x); else printf("%d"x++); } 程序运行后,如果从键盘上输人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=(w<x)?w : x; m=(m<y)?m : y; m=(m<z)?m: z; 则该程序运行后,m的值是:(  ) A) 4 B) 3 C) 2 D) 1 12. 以下程序的输出结果是:(  ) main() { int a, b; for(a=1, b=1
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服