admin 管理员组

文章数量: 1086019


2024年4月22日发(作者:unlikable)

贵州大学2010-2011学年第二学期考试试卷A(答案)

C语言程序设计

注意事项:

1.请考生按要求在试卷装订线内填写姓名、学号和年级专业。

2.请仔细阅读各种题目的回答要求,在规定的位置填写答案。

3.不要在试卷上乱写乱画,不要在装订线内填写无关的内容。

4

.满分100分,考试时间为120分钟。

题 号 一 二 三 四 五 总 分 统分人

得 分

得 分

一.单项选择题

评分人

(本大题共20小题,每小题1分,共20分)

1.以下描述中不属于C语言特点的是( B )。

A.预算符丰富 B.不允许直接访问物理地址

C.语法限制不太严格 D.是完全模块化和结构化语言

2.在C语言中,回车符是( A )。

A.n B.t C.f D.b

3.下列类型不属于基本类型的是( B )。

A.整形 B.指针类型 C.浮点型 D.空类型

4.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符( C

A.必须为字母

B.必须为下划线

C.必须为字母或下划线

D.可以是字母,数字和下划线中任意字符

。 )

5.下列数据中,不合法的C语言实型数据的是( C )。

A.0.123 B.123e3 C.2.1e3.5 D.789.0

6.下列二进制数据中,-10的补码是( D )。

A.11001 B.11100

C.11010 D.10110

7.若变量已正确定义并赋值,以下符合C语言语法的表达式是( B )。

A.a:=b+1 B.a=b=c+2 C.int 18.5 D.a=c+7=c + b

8.以下说法不正确的是( B )。

A.实参可以是常量、变量、表达式

B.形参可以是常量、变量、表达式

C.实参可以为任意类型

D.形参应与对应的实参一致

9.下面的运算符中,优先级最高的运算符是( C )。

A.<= B.= C.% D. &&

10.初始化i=2,表达式(++i)*3+(i++)的值等于( B )

A.11 B.12 C.13 D.14

11.以下对二维数组a的正确说明是( C )。

A.int a[3][]; B.float a(3,4) C.double a[1][4] D.float a(3)(4)

12.以下程序的输出结果是( A )。

int a=5;

float x=3.14;

a*=x*(„E‟ - „A‟);

printf(“%fn”,(float)a);

A.62.000000 B.6.800000 C.63.000000 D.62

13、以下对二维数组a进行正确初始化的是( B )。

A.int a[2][3]={{1,2},{3,4},{5,6}};

B.int a[ ][3]={1,2,3,4,5,6};

C.int a[2][ ]={1,2,3,4,5,6};

D.int a[2][ ]={{1,2},{3,4}};

14、设有如下定义: char *aa[2]={"abcd","ABCD"}; 则以下说法中正确的是( C )。

A)aa数组成元素的值分别是"abcd"和ABCD"

B)aa是指针变量,它指向含有两个数组元素的字符型一维数组

C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

D)aa数组的两个元素中各自存放了字符'a'和'A'的地址

15.定义结构体的关键字是( C ) 。

A.union B.enum C.struct D.typedef

16.已知:int x; int y[10]; 下列( A )是合法的。

A.&x B.&(x+3) C.&5 D.&y

17.C语言中以追加方式打开一个文件应选择( D )参数。

A.“r” B.“w” C.“rb” D.“a”

18 .为了避免嵌套的条件分支语句 if--else中的else总是与( C ) 组成成对关系。

A.缩排位置相同的

B.在其之前未配对的

C.在其之前未配对的最近的if

D.在同一行上的if

19.语句while(!E);中的表达式!E等价于( A ) 。

A.E= =0 B.E!=1 C.E!=0 D.E= =1

20.有如下语句: X+Y*Z>39 && X*Z||Y*Z是什么表达式 ( B ) 。

A.算术表达式 B.逻辑表达式

C.关系表达式 D.字符表达式

得 分

评分人

二.判断题

(本大题共10小题,每小题1分,共10分)

1.C语言中变量可以先使用后定义。 ( × )

2.在 C 程序中,函数既可以嵌套定义,也可以嵌套调用。( × )

3.在 C 程序中,APH 和 aph 代表不同的变量。( √ )

4.表达式 0195 是一个八进制整数。( × )

5.在定义二维数组时,可以将该数组的两个维数全部省略 。( × )

6.逻辑运算符 && || ! 的运算顺序是 ! 优先于 && 优先于 || 。( √ )

7.A-=7等价于a=a-7。( √ )

8.利用fclose函数关闭已打开的文件。( √ )

9.数组名可以作为参数进行传递。( √ )

10.执行printf("%x",12345);,输出 12345 。( × )

得 分

评分人

三.填空题

(本大题共10空,每空1分,共10分)

1.C语言规定,可执行程序的开始执行点是( main )。

2.程序的三种结构分别是顺序结构( 循环结构 )和( 选择结构 )。

3.在C语言中,一个函数一般由2个部分组成,他们是( 函数申明 )和( 函数体 )。

4.表达式(a=3*5,a*4),a+5的值等于( 20 )。

5.在定义函数时函数名后面括号中的变量名称为( 形参 )。

6.一个变量的地址称为该变量的( 指针 )

7.有如下语句:char A[ ]={”I am a student”}; 该字符串的长度是( 15 )。

8.符号”a”和‟a‟的区别是( ‟a‟一个是字符,”a”是字符串,其实际长度不一样 )。

得 分

评分人

四.程序阅读

(本大题共5小题,每小题6分,共30分)

1.有一函数y=x+12 (x小于0) .y=5x-7(x大于等于0)

实现算法,输入x值,输出y值,请填空使程序完整。

#include

void main ()

{

}

int i , x , y ;

scanf (“%d”, &x );

if ( x<0 ) y=x+12;

else ( y=5*x-7 );

printf (“%d”, y );

2.写出下列程序的运行结果。

int fun(int a, int b)

{

}

void main()

{

int x=3,y=8,z=6,r;

r=fun(fun(x,y),2*z);

printf("%dn",r);

}

输出结果:12

3.写出下列程序的运行结果。

main()

{

}

输出结果:34

4.写出下列程序的运行结果。

main()

{

}

输出结构:1 3 5

5.在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,

int a[]={1,2,3,-4,5};

int m,n,*p;

p=&a[0]; p=&a[0];

m=*(p+2);

n=*(p+4);

int n;

for(n=3; n<=10; n++)

{

if(n%5==0) break;

printf("%d",n);

}

if(a>b)

return (a);

else

return (b);

printf("%d %d %d",*p,m,n);

函数fun()的功能是计算数组元素中值为负数的平均值(不包括0)。

例如:数组中元素的值依次为43,-47,-21,53,-8,12,0,则程序的运行结果为-25.333333。

请改正程序中的错误,使它能得到正确结果。

#include

#include

double fun(int x[ ])

{

}

main()

{

}

错误:while(x[i]==0)

修改:while(x[i]!=0)

错误:sum=sumc;

修改:sum=sum/c;

int x[1000];

int i=0;

clrscr();

printf("nPlease enter some data(end with 0) :");

do

{

scanf("%d",&x[i]);

}

while(x[i++]!=0);

printf("%fn",fun(x));

double sum=0.0;

int c=0, i=0;

while(x[i]==0)

{

if(x[i]<0)

{

sum=sum+x[i];

c++;

}

i++;

}

sum=sumc;

return sum;

/**********************查找范围***********************/

/**********************查找范围***********************/

得 分

评分人

五.编程题

(本大题共3小题,每小题10分,共30分)

1.输出101-999之间的所有水仙花数(例如:153是一个“水仙花数”,因为153=1

3

+5

3

+3

3

)。

#include “stdio.h”

void main()

{

}

int i,j,k,l;

for(i = 100;i<999;i++)

{

j = i/100;

k = i%100/10;

l = i%10;

if(i == j*j*j + k*k*k + l*l*l)

printf("%dn",i);

}

2.随机输入10个正整数,对输入的数据进行从小到大排序,排序后再输出数据。

#include “stdio.h”

void main()

{

}

int i[10],j,k,l,s,temp;

for(j=0;j<10;j++)

scanf("%d",&i[j]);

for(j=0;j<10;j++)

{

k = i[j];

s = j;

for(l = j+1;l<10;l++)

if(k>i[l])

s = l;

temp = i[j];

i[j] = i[s];

i[s] = temp;

}

for(j=0;j<10;j++)

printf("%5d",i[j]);

3.利用递归算法求6!。

#include “stdio.h”

int fun(int i)

{

}

void main()

{

}

printf("6!阶乘=%d",fun(6));

if(i == 1)

return 1;

else

return i*fun(i-1);


本文标签: 数组 C语言 程序 元素 变量