C语言期末考试试卷 下载本文

内容发布更新时间 : 2024/11/7 18:00:21星期一 下面是文章的全部内容请认真阅读。

姓名 学号 学院(系) 年级 班(密封线内勿答题) 北京联合大学信息学院

程序设计基础课程 期(末)考试

(2011—2012学年 第2学期) 本科√ 专科□

A卷√ B卷□ (考试时间90分钟) 题号 分数

一 二 三 四 五 总分 一、 选择题(本大题共10个小题,每小题2分,共20分)

得分 评阅人 1、从循环体内某一层跳出,继续执行循环外的语句是( A )。 A. break语句 B.return语句 C.continue语句 D.空语句。 2、数组名作为实参传给被调用的函数时,形参获得的是( C )。

A.该数组第一个元素的值 B.该数组所有元素的值 C.该数组第一个元素的首地址 D.该数组所有元素的首地址

3、若有定义:float d[20]={11.0,12.5};,那么,d[10]的值是多少?d[20]呢?(0 ,不存在)

A.B.C.D.

for(i=0; i<3; i++ ) printf(\

}

程序运行后的输出结果是( D ) A)1 11 21 B)2 12 22

C)3 13 2 D)1 12 23

9、有以下程序:

void main( ) {

int i,sum=0;

for(i=1; i<5;i++,i++) sum+=i; printf(\

}

程序的输出结果是( C )

A) 随机值 B)10 C)4 D) 9

10、若变量c为char类型,能正确判断出c为大写字母的表达式是( D )。 A.'A '<=c<='Z' B. (c>='A')||(c<='Z')

C.('A'<=c) and ('Z'>=c) D. (c>='A') && (c<='Z')

二、填空题(本大题共10个小题,每小题2分,共20分) 得分 评阅人 1、求余运算符%两边运算对象的数据类型只能是 【1】 整型 。 2、设有定义:int *p,x=5; 请写出使指针p指向变量x的赋值语句 【2】 p=&x 。 3、设有定义:int a[ ]={1,2,3,4,5,6,7,8}; 则数组元素a[a[2]]的值是【3】 4 。 4、请写出一条输入语句,为双精度型变量scanf(“%lf”,&ch); 。 5、当a=3,b=2,c=1时,表达式f=a

{ if(k= = 3) continue;

printf(\);

ch

读入数据【4】

(密封线内勿答题)4、若有语句scanf(“a=%d,b=%d”,&a,&b);要使变量a,b分别得到12和34;正确的输入形

式为( D )。

A.12 34 B.12,34 C.1234 D.a=12,b=34

5、数组定义char a[10]={`a`,`b`,`c`}:包括了几个元素_____D_______________。

A.3 B.9 C.4 D.10

6、设变量定义为 int a[4]={1,4,7},*p=&a[3];, 则*p的值是( A )。 A. &a[3] B. 4 C. 7 D. 0 7、有以下函数:

int fun(int x, int y)

{ return x

A) 返回x和y中较大的数 B)总返回“假”

C)返回x和y中较小的数 D)总返回“真” 8、有以下程序

void main( ) {

int x[3][3]={ {1,2,3},{11,12,13},{21,22,23} }; int i;

}的执行结果是_【8】___0124_________。

第1页 共 3页

封线内勿答题) 北京联合大学信息学院 9、判断变量n不是5的倍数为真的逻辑表达式为:_【9】___(n%5)!=0________。 10、对于定义int data[3][4]={{1,2},{5},{11,12,13,14}};,其第3行、4列的元素名称和数值 密(班分别是:_【10】_______data[2][3]_______和_____14__________。 三、判断题(本大题共10个小题,每小题2分,共20分) 得分 评阅人 级年 1、已知a=3;b=5;执行a=b;b=a;后,可以使a的值为5,b的值为3。( × ) 2、如果一个函数需要返回多个数据,可以多写几个return语句实现。( × 3、函数没有形参就无法计算并返回结果。( × ) 4、int a[10];语句a[10]=10;能够正确执行。( × ) 5、若x的值为0,则下面的语句的输出是 * 。( × ) ) switch(x) 系 { ( case 1: 院 printf(”+”); 学 case 2: printf(”-”); break; default: printf(”*”); case 5: printf(”/”); } 5、定义char a[]=”apple”,b[10];strcpy(b,a);后,数组a和b的内容相等。( 6、函数返回值的类型由return语句决定。( × ) 7、假设有int a[10],*p; 则p=&a[0]与p=a等价。( √ ) 8、数组的下标从1开始。( × ) 9、执行以下代码段 号char a[20]; 学 gets(a); puts(a); 如果输入 How are you (回车),则屏幕输出How are you ( √ ) 10、若x、i为整型变量,x的值为10,则下面的循环结束后,x为0,i为1。 while(x>0) i=x--; ( √ ) 名四、阅读分析题(本大题共4个小题,每小题5分,共20分) 姓得分 评阅人 )题答勿内线封 密(1、 对程序段 scanf(“%d”,&x); if(x) if(x>0) y=-10; else y=x*x; else y=x+10; printf(“y=%d\\n); ) 当输入-5 ,0时程序的结果分别是: 25 10 2、 对以下程序段,当输入6 ,7时程序的结果分别是:y=10; scanf(“%d”,&x); switch(x%7+2) { case 5: y++; case 3: ++ y;break; case 1: --y;break; default: y=0; case 4: y=x;break; case 6: y=++x; } printf(“y=%d\\n”,y); 6 7 √ ) 3、分析以下程序并给出执行结果。 void main() { char i,j; for(i=0;i<5;i++) { for(j=i;j<6;j++) AB { C if(2==j) break; printf(“%c”,i+j+’A’); GHI } IJ printf(“\\n”); } } 第2页 共 3页 (空一行) 北京联合大学信息学院

姓名 学号 学院(系) 年级 班(密封线内勿答题) 密封线内勿答题)

4、分析以下程序并给出执行结果。

#include \void main() {

int a[]={2,4,6,8,10,12,14}; int y=1,x,*p; p=&a[0];

for(x=0;x<6;x++) y=*(p+x);

printf(\}

程序的运行结果是:________________12___________________。

{

char str [80];

int i, iA=0, ia=0, iother=0;

五、程序题(本大题共3个小题,第1,2小题各5分,第3小题10分,共20分) 得分 评阅人

1、根据以下程序框架,编写子函数,实现交换两个整型变量x和y的值。(本题5分)

#include

void swap (int *, int *);

void main (void)

{

int x, y;

scanf(“%d, %d”, &x, &y);

swap( &x, &y);

printf(“%d, %d”, x, y);

}

}

void swap( )

3、设一个函数的头部为 void sortarray(int arr[ ],int m),其形参arr接收数组名,m接收

{

数据个数,完成对数组进行由小到大排序,写出该函数。 (本题10分)

??

3、 完善以下程序使其实现由键盘任意输入一串字符,统计其中大写字母个数iA、小写字母个数ia、

其他字符个数iother。(本题5分)

#include

#include void main ()

第3页 共 3页