2011计算机二级考试-C语言试题

一、选择题

1.C语言程序由()组成。

A.声明

B.行数

C.数据

D.功能

2.以下正确的标识符是()。

公元前

公元前123年

c .西蒙

D.青年医学博士

3.在C语言中,存储一个整数、字符和双精度实变量所需的字节数是()。)。)。)。

A.2、1、8

B.4、1、4

C.4、1、4

D.2、2、8

4.为了避免嵌套条件分支语句if - else,else总是与()成对出现。

A.具有相同的缩进位置

B.前无古人

C.如果之前没有配对,则为最近的。

D.如果在同一条线上

5.下列表达式的结果正确的是()。

int a,b,c,d;

a = b = c = d = 2;

d=a+1==3?b=a+2:a+3

A.2 B.4 C.3 D.5

第二,填空

1.在C语言中,正确的标识符由_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _组成

2.设x=3,那么表达式y=(++x)+(++x)的结果是_ _ _ _ _ _ _ _,表达式执行后,变量x的结果是_ _ _ _ _ _ _ _。

3.指向一个变量的指针指的是_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

4.组成数组的元素的特征是_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

结构要素的特点是_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _。

5.在C语言程序中,要操作文件,必须先_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _;然后操作文件,最后是_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

6.对字符串进行操作的函数有_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _。

7.c语言程序由_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _组成

8.如果你要定义整型变量A,实型变量B和字符型变量C,你应该使用的正确说法是_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.写出下面表达式的值。

3 * 5/7+7% 3 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x = 2;y = 4;(x++)+y _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

3+4 & gt;= 7-10 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 3 >;4 ?3%2: 1 ______________________________

x=2,y = 2;++ x & amp;& amp++ y _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x = 3;x+= x-= 2 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

三、判断题

1的一个特点。c语言在于它能操作计算机硬件()。

2.在循环过程中,使用break语句和continue语句的作用是一样的()。

3.在函数定义和调用过程中,形参和实参的数量可以不一致()

4.指针变量可以接收任何类型的值()。

5.在C语言编程中,字符数组和字符串并不是完全相同的概念()。

6.文件指针是一种结构类型,用符号file()表示。

7.嵌套形式()可用于选择结构(if语句)和循环结构。

8.定义二维数组时,可以省略数组的所有两个维度()。

9.逻辑运算符&;& amp|| !的操作顺序是!优先于&;& amp优先于||()

10.任何数组都可以作为一个整体使用()

第四,程序填空

1.下面是打印99乘法表的程序。请在下划线的位置填入适当的句子,使节目(片段)完整。

主()

{ int i,j,k;

for(I = 1;_____________;i++)

{ for(j = 1;______________;j++)

printf(" % d * % d = % d " ,_ _ _ _ _ _ _ _ _ _ _ _);

printf(_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _);

}

}

2.设计一个自定义函数,实现求两个数最大数的功能。自定义函数如下:

int max(x,y)

int x,y;

{

}

3.对于以下结构,请用C语言中的语句定义正确的结构形式:

学生信息:包括(姓名,性别,年龄,分数),定义变量stud和数组stud1[30]。

结构学生

{

}

根据给定的程序段,请写出正确的结果。

x = 1;sum = 1;

for(x = 1;x & lt=5 ;x++)

sum = sum * x;

上述程序段实现的功能有:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _;

运行结果是_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _。

5.设置以下语句。

int a=43,b,c;

b = 23

c = a++ *-b;

(1) a= b= c=执行完上述句子片段后;

(2)简述a++和++a的异同:

6.有以下程序:

主( )

{ int i=3,* p 1;

int a[3]={15,30,45},* p2

p 1 = & amp;我;p2 = a;

p 1 = p2+2;

printf("%d,%d\n ",*p1,* p2);

}

程序的运行结果是_ _ _ _ _ _。

五、编程题(25分)

1.编程实现10整数的冒泡排序(升序)。

2.编程实现以下公式的结果。

3.编程将文本文件file1.dat的内容复制到文本文件file2.dat

第六,附加问题

c语言程序用来在已知链表的第三个位置插入一个值为A的程序。

参考答案

一、选择题

1.D 2。C 3。A 4。C 5。B

第二,填空

1.字母、数字和下划线;从字母和下划线开始。

2.10;5。

3.变量的地址。

4.由一组具有相同数据类型的元素组成;一组具有不同数据类型的元素。

5.打开它;关闭。

6.字符串长度、子字符串、字符串替换、字符串复制等。

7.功能;声明。

8.int a;浮动b;char c;

9 9 9.3 6 1 1 1 2

三、判断题

1.右二。错误3。错误4。错误5。对吧

6.错误7。右八。错误9。右10。不对。

第四,程序填空

1.我& lt= 9j & lt;=9

printf("%d*%d=%d ",I,j,I * j);

printf(" \ n ");I,j,k;

2.int z;

if(x & gt;= y)z = x;

else z = y;

返回z;

3.char name[20];

迷人的性爱;

int age

浮动分数;

4.实现功能:计算连续数的乘积,即sum = 1 * 2 * 3 * 4 * 5;

运行结果:sum=120

5.44 22 946

A++:先加1,再用表达式的值;++a表示先加1,然后用表达式的值。他们的最终结果是1。

6.45,15

五、编程问题

1.编程实现12整数的冒泡排序(升序)。

主()

{ int a[12];int m,n,p;

for(m = 0;m & lt=11;m++)(m = 0;m & lt=11;m++)

scanf("%d ",& ampa[m]);

for(m = 0;m & lt=11;m++)

for(n = 0;n & lt11-m;n++)

if(a[n]& gt;a[n+1])

{ p = a[n];a[n]= a[n+1];a[n+1]= p;}

for(m = 0;m & lt=11;m++)

printf("%d ",a[m]);}

2.编程实现以下公式的结果。

#包含“math.h”

主()

{ float x,y;

scanf(" % f " & amp;x);

if(x & gt;6)y =(x-3)/(2 * x-12);

else y =-2 * x * x+4 * x-10;

printf("y=%f ",y);}

3.编程将文本文件file1.dat的内容复制到文本文件file2.dat

主()

{ char ch

FILE *fp1,* fp2

FP 1 = fopen(" file 1 . dat "," r ");

Fp2=fopen("file2.dat "," w ");

ch = fgetc(FP 1);

而(ch!=EOF)

{ fputc(ch,fp2);

ch = fgetc(FP 1);}

fclose(FP 1);

fclose(fp2);}

第六,附加问题

p = H;k = 0;

而(p!= NULL & amp& ampk

{ p = p-& gt;接下来;

k++;}

if(p = = NULL & amp;& amph!= NULL)printf(" this is in vilid ");

其他

{ q =(Struct Linklist *)malloc(sizeof(Struct Linklist));

q->;数据= x;q->;数据= x;

q->;next = p-& gt;接下来;

p->;next = q;}