2010-2011学年第1学期-C语言程序设计重修班试卷(含答卷和参考答

2019-08-31 10:58

华侨大学10-11学年第1学期《C语言程序设计》重修班试卷

学号________________ 姓名___________ 班级___________ 成绩______ 注意:请将所有答案写在答卷上! 一、单项选择题(40分,每小题2分) 1.在一个可运行的C源程序中,( )。

A.可以有一个或多个main函数 C.可以没有main函数

B.必须有且仅有一个main函数 D.必须有main函数和其他函数 C.int a=10, *b=&a; C.65 C n%2.5 C. 3

D.float *a, b=&a; D.W

D m=-1&&(m>n) D. 8

2.以下定义语句中正确的是( )。

A.char a='A' b='B'; B.float a=b=10.0; A.\A m=(n==5) A. 7

B.'\\0x41' B m=sizeof(k) B. 6

3.以下选项中合法的字符常量是( )。

4.若有定义:int m=4,n=5; float k; 则以下不符合C语言语法的表达式是( )。 5.若有定义: int x,y,z; 语句x=(y=z=3,++y,z+=y); 运行后,x的值为( )。 6.以下程序段运行后x的值为( )。 int a=3,b=6,x; x=(a==b)?a++:--b;

A. 4 A. 3

B. 3 B. 2

C. 6 C. 0

D. 5 D. 1

7.若有定义:int a=3,b=4,c=5; 则表达式 !(a-b)||(c-b) 的值为( )。

8.若有定义:int a=3,b=5; 要实现输出形式为:3*5=15 正确的printf( )函数调用语句为( )。

A. printf(\C. printf(\

B. printf(\D. printf(\

9.以下程序段的运行结果是( )。

int s=10;

switch(s/4){

case 1: printf(\ case 2: printf(\

case 3: printf(\ default: printf(\ } A. BC

B. C

C. B

D. BCD

10.在下列数组定义、初始化或赋值语句中,正确的是( )。

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

B.int x[5]={1,2,3,4,5,6}; D.int n=8; int score[n];

共6页 第1页

11.以下程序段运行后,s的值是( )。 int a[3][3]={1,2,3,1,2,3,1,2,3}; int i,j,s=0; for(i=0;i<3;i++) for(j=0;j<=i;j++) s+=a[i][j]; printf(\

A. 4 A.puts(str); C.printf(\

B. 6

C. 10

D. 14

12.若已有定义:int i; char str[8]=\则下列语句中,不正确的是( )。

B.for(i=0;str[i]!='\\0';i++) printf(\D.for(i=0;str[i]!='\\0';i++) putchar(str);

13.设已定义:char str1[20]=\ str2[20]=\若要形成字符串\正确语句是( )。

A strcpy (str2,str1) #include static int a=0; void fun(void ){

B strcat(str1,str2)

C strcpy (str1,str2)

D strcat(str2,str1)

14.以下程序的运行结果是( )。

a++; printf(\}

void main(void){

int i;

for(i=1;i<=2;i++) fun(); }

A. 1 2 B. 0 0 A.p[1] #include void main(void){

int i;

char *s=\

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

B. AB ABC ABCD B.3

C. CD BCD ABCD C.4

D. ABCD BCD CD D.5

B.*(p+1)

C. 1 1 C.*p+1

D. 0 1 D.*(a+1)

15.若已定义:int a[4]={0,1,2,3}, *p=a; 则以下( )不能表示数组元素a[1]。 16.以下程序的输出结果是( )。

} A. ABCD ABC AB A.6

17.若已定义:int a[][2]={1,2,3,4,5,6},(*p)[2]; p=a; 则*(*(p+1)+1)的值为( )。 18.C语言中,数组名作为函数调用的实参时,下面叙述正确的是( )。

共6页 第2页

A.传递给形参的是数组元素的个数

B.传递给形参的是数组中全部元素的值 C.传递给形参的是数组第一个元素的值

D.形参数组中各元素值的改变会使实参数组相应元素的值同时发生变化

19.若有以下定义,则表达式sizeof(s)的值是( )。

union U_type{

int x[10];

char z;

B. 10 B. 12

C.2 C. 16

D.1 D. 14

}s; A.20 A. 36

20.若有宏定义:#define F 2+4,则表达式F*F的值为( )。 二、填空题(18分,每小题9分)

1.下面程序的功能是计算n!,请填空完成。

#include \void main(void) { }

long i, n, result;

printf(\ scanf(\result= ( 1 ); for(i=2;i<=n;i++) ( 2 ) ; printf(\( 3 ) \

2.以下程序中定义的函数fun的功能是:将p2所指字符串复制到p1所指内存空间。请完成程序。

#include \

void fun( ( 4 ) ,const char *p2){

while((*p1= ( 5 ) )!='\\0'){

p1++;

p2++; } }

void main(void){ char str1[20];

const char *str2=\

fun( ( 6 ) ,str2); /* 将str2所指向的字符串复制到str1所指内存空间 */ printf(\}

三、改错题(18分,每小题9分)

1.以下程序中的函数reverse的功能是将数组a中的n个元素进行倒置。程序运行结果为:9 8 7 6 5 4 3 2 1 0

共6页 第3页

请修改“/**/”和“/**/”之间存在的错误,使程序正确。

#include

void reverse(int a[], int n){ int i,temp;

for(i=0; /**/ i

temp= /**/ a[n-1-i] /**/ ; a[i]=a[n-1-i]; a[n-1-i]=temp;

}

void main(void){

int b[10]={0,1,2,3,4,5,6,7,8,9},i; for(i=0;i<10;i++) printf(\ }

printf(\

reverse(/**/ b[10] /**/ , sizeof(b)/sizeof(int) ); for(i=0;i<10;i++) printf(\

2.以下程序的功能是输出以下图形:

A BBB CCCCC DDDDDDD

请修改“/**/”和“/**/”之间存在的错误,使程序正确。

#include #define ROW 4 void main(void){ int i,j; char ch='A' ; }

for( i=1 ; i<=ROW; i++) { for(j=1; j<=ROW-i; j++) /**/ printf(\ /**/; }

for(j=1;/**/ j<=2*i /**/; j++) printf(\/**/ ch-- /**/; printf(\

四、编程题(24分)

1.(10分)完成以下程序中的函数fun,该函数的数学表达式为:

?sinx?y??x?x?(x?10)(5?x?10)

x?5 共6页 第4页

#include \#include double fun(float x){ ? }

void main(void){

printf(\ printf(\ printf(\ }

2.(14分)完成下列程序中的函数BubbleSort(),函数的功能是采用冒泡排序算法,实现对数组a存储的n个元素中的前5个元素按升序排序,其它元素不变。该程序运行结果为:

-5 -2 -1 3 4 6 7 -8 9 0 11 -12 13 14 -15 #include

#define NUM 5 /* 需要排序的前NUM个元素 */

void BubbleSort(int a[],int n){ /* 对存储在数组a中的n个元素中的前NUM个元素按升序

排序,其他元素不变。设n>NUM */

}

void main(void){ }

BubbleSort(a,size);

for(i=0;i

int i, a[15]={-1,-2,3,4,-5,6,7,-8,9,0,11,-12,13,14,-15}; int size=sizeof(a)/sizeof(int);

共6页 第5页


2010-2011学年第1学期-C语言程序设计重修班试卷(含答卷和参考答.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基本医疗保险监控业务管理规程

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: