2018级《C语言程序设计》复习题及答案 联系客服

2014级《C语言程序设计》复习题及答案

一、单项选择题

1、以下不是C语言的特点的是 (B ) A、 C语言简洁、紧凑

B、 能够编制出功能复杂的程序 C、 C语言可以直接对硬件进行操作 D、 C语言移植性好

2、以下不正确的C语言标识符是 (D ) A、 ABC B、 abc C、 a_bc D、 ab.c 3、一个C语言程序是由 ( B)

A、 一个主程序和若干子程序组成 B、 函数组成

C、 若干过程组成 D、 若干子程序组成

4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是(B )

A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性

5、 设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为 ( C)

A、 int B、 float C、 double D、 不确定

6、在C语言中,char型数据在内存中的存储形式是 ( D) A、 补码 B、反码 C、源码 D、ASCII码

7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是 ( B) 。

#include main(){ int x; float y;

scanf(\ }

A、 12345 B、 123 C、 45 D、 345

8、若有以下定义int a,b; float x,则正确的赋值语句是 ( B) A、 a=1,b=2 B、 b++; C、 a=b=5 D、 b=int(x);

9、以下程序的执行结果是 (A ) #include

{

int i=10,j=10;

printf(\ }

A、 11,10 B、 9,10 C、 11,9 D、 10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是 ( D) #include main() {

char c1='A',c2='Y';

printf(\

A、 A,Y B、 65,65 C、 65,90 D、 65,89 11、下列运算符中优先级最高的是 (C ) A、 < B、 十 C、 % D、 !=

12、一个C语言程序总是从(C )开始执行 A 书写顺序的第一个函数 B 书写顺序的第一条执行语句 C 主函数main( ) D 不确定

13、设int x=3,y=4,z=5,则下列表达式中的值为0的是 ( D ) A ‘x’&&’y’ B x||y+z&&y-z C x<=y D !((x

14、执行以下程序段后,i的值是 ( C ) int i=10; switch(i+1)

{ case 10: i++; break; case 11: ++i; case 12: ++i; break; default : i=i+1; } A 11 B 13 C 12 D 14 15、语句while(!e);中的条件!e等价于 ( A ) A e==0 Be!=1 C e!=0 D运行时出错 16、 用 int a[4]={1,2}; 对数组进行初始化后,数组元素a[3]的值是 ( B ) A 随机值 B 0 C 1 D F

17、 在执行char str[10]=“china\\0”; strlen(str)的结果是 ( A ) A5 B 6 D 7 D 9

18、若有定义,char *p=”computer”;则语句printf(“%c”,*(p+2))运行结果是 ( B ) A 随机值 B m Co Domputer 19、 在以下函数调用语句中 fun1(x,10,(x,10),fun2(y,10,(y,10)));

函数fun1参数的个数为 ( B ) A 8 B 4 C 5 D 编译出错

20、下面有关for循环的正确描述是( D)

A、 for循环只能用于循环次数已经确定的情况 B、 for循环是先执行循环体语句,后判定表达式 C、 在for循环中,不能用break语句跳出循环体

D、 for循环体语句中,可以包含多条语句,但要用花括号括起来 21、下面程序的运行结果是(C ) #include main()

{int num=0; while(num<=2) {num++;

printf(“%d ,num); } }

A、 1 B、 1 2 C、 1 2 3 D、 1 2 3 4

22、以下描述正确的是 (D )

A、 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。

B、 do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。

C、 在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。

D、 do-while循环中,根据情况可以省略while。 23、以下对一维整形数组a的正确说明是 ( D) A、 int a(10); B、 int n=10,a[n]; C、 int n; D、 int a[10]; scanf(“%d”,&n);

int a[n];

24、用C语言编写的代码程序( B )

A可立即执行 B是一个源程序

C经过编译即可执行 D经过编译解释才能执行

25、C语言中用于结构化程序设计的三种基本结构是( A )

A顺序结构、选择结构、循环结构 B if、switch、break C for、while、do-while D if、for、continue 26、有以下程序 main()

{ int p[7]={11,13,14,15,16,17,18}, i=0,k=0; while(i<7 && p[i]%2) { k =k+ p[i]; i++; } printf(\ }

执行后输出结果是( D )

A 58 B 56 C 45 D 24 27、以下叙述中正确的是( C )

A、 C语言比其他语言高级 B、C语言可以不用编译就能被计算机识别执行 C、C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D、C语言出现的最晚,具有其他语言的一切优点 28、下列叙述中正确的是(A )

A、C程序中注释部分可以出现在程序中任意合适的地方 B、花括号\和\只能作为函数体的定界符

C、构成C程序的基本单位是函数,所有函数名都可以由用户命名 D、分号是C语句之间的分隔符,不是语句的一部分 29、 以下程序的执行结果是( A )。

#include main() {

int sum,pad; sum=pad=5; pad=sum++; pad++; ++pad;

printf(\}

A.7 B.6 C.5 D.4

30、为了避免嵌套的if-else语句的二义性,c语言规定else总是与( C )组成配对关系。

A.缩排位置相同的if B.在其之前末配对的if

C.在其之前未配对的最近的if D.同一行上的if

31、 语句while(!e);中的条件!e等价于( A )。

A.e==0 B.e!=1 C.e!=0 D.~e 32、下面有关for循环的正确描述是( D )

A.for循环只能用于循环次数已经确定的情况 B.for循环是先执行循环体语句,后判定表达式 C.在for循环中,不能用break语句跳出循环体

D.for循环体语句中,可以包含多条语句,但要用花括号括起来

33、设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确

执行的赋值语句是( B )。

A.c=*p1+p2; B.p2=c C.p1=p2 D.c=*p1*(*p2); 34、 在位运算中,操作数每左移一位,其结果相当于( A ). A.操作数乘以2 B.操作数除以2 C.操作数除以4 D.操作数乘以4

35、 系统的标准输入文件是指( A )。

A. 键盘 B .显示器 C .软盘 D. 硬盘

二、编程题(能正确表达出题目的含义、要求,且格式正确,即可得满分,不要求形式完全相同。部分正确可按比例得分,否则不得分。)

1、试编程判断输入的正整数是否既是5又是7的正倍数。若是,则输出yes;否则输出no。 答案:#include main() {int x;

scanf(\

if(x%5==0&&x%7==0) printf(\ else

printf(\ }

2、对15个数进行排序,按从小到大的顺序输出。 答案: # include main()

{int i,j,a[15],t;

printf(\ for(i=0;i<15;i++) scanf(\ for(j=0;j<15;j++) for(i=0;i<15-j;i++) if(a[i]>a[i+1])

{t=a[i];a[i]=a[i+1];a[i+1]=t;} for(i=0;i<15;i++) printf(\