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语言程序设计A卷(答案) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713791831a651700.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论