2006级软件工程C语言试题(B卷)

更新时间:2023-10-23 04:27:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

西华大学课程考试(考试)试题卷 ( B 卷)

试卷编号:

课程名称: 程序设计语言 考试时间: 110 分钟 课程代码: 8422111 试卷总分: 100 分

:名姓 线 : 号 学 订 : 号 班 学 教 装 :业专级年

一、 单项选择题(每小题2分,共计20分)

1.以下对一维数组的定义中,正确的是( ) 。

A) #define MAX 5 B) int MAX=5; int a[MAX];

int a[MAX];

C) int MAX; D) #define MAX 5; Scanf(“%d”,&MAX); int a[MAX]; int a[MAX];

2.以下程序运行时输入8,则程序运行后t的值是( )。main() { int t; scanf(“%d”,&t); if(t-->=8)

printf(“%d\\n”,t--) ; else

printf(“%d\\n”,t++) ; }

A)9 B)8 C)7 D)6 3.有以下程序段 main()

{ int i=1,sum=0,n; scanf(“%d”,&n); do

{ i+=2; sum+=i ; }while(i!=n); printf(?%d”,sum); }

若使程序的输出值为8,则应该从键盘输入的n的值是( )A) 1 B) 3 C) 5 D) 7 4.若有以下定义及语句:

struct s1

第 1 页 共 6 页

{

char

a[3];

int num;

}t={‘a’,’b’,’c’,4},*p; p=&t;

则输出值为c的语句是( )。 A) printf(“%c\\n”,p->t.a[2]); B) printf(“%c\\n”,(*p).a[2]); C) printf(“%c\\n”,p->a[3]); D) printf(“%c\\n”,(*p).t.a[2]);

5.C语言规定:在一个源程序中,main函数的位置( )。 A)必须在程序的最开始

B)必须在系统调用的库函数的后面 C)可以任意

D)必须在程序的最后

6.已知 int i,a; 执行语句”i=(a=2*3,a*5),a+6;”后,变量a的值是( )。 A) 6 B) 12 C) 30 D) 36 7.以下不是死循环的语句为( )。

A) for(; ; x+=k); B) while(1){x++}; C) for(k=10; ;k--)sum+=k;

D) for(;(c=getchar())!=’\\n’;)printf(“%c”,c); 8.以下错误的描述是( )。

B) 形式参数是局部变量

C) 一个函数内部定义的变量只能在本函数范围内有效

D) 在一个函数内部的复合语句中定义的变量可以在 本函数范围内有效 9.若用数组名作为函数调用时实参,则实际上传递给形参的是( )。 A) 数组首地址 B) 数组的第一个元素值

C) 数组中全部元素的值 D) 数组元素的个数

10.已知 int a,*p=&a; 则为了得到变量a的值,下列错误的表达式是( )。

A) *&p B) *p C) p[0] D)*&a

A) 不同的函数中可以使用相同的变量名

二、阅读程序题(每小题4分,共20分)

1.以下程序段的输出结果是:________ #include

第 2 页 共 6 页

main() { }

2.以下程序段的输出结果是:________ #include main() {

int i, j, m;

int a[2][5] = {1,20,32,14,5,62,87,38,9,10}; for (i=0; i<2; i++) int i,j;

for(i=1; i<=3; i++) {for(j=i; j>=1; j--) }

printf(\“); printf(\n“);

m = a[0][0];

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

if( m

3.以下程序段的输出结果是:________ #include #include main() {

char *p=”abcde”,a[20]=”ABC”,*q=a; p+=3;

printf(“%s\\n”,strcat(q,p)); }

4.以下程序段的输出结果是:________ #include int fun() {

auto int x=1; static int y=1;

第 3 页 共 6 页

printf(“m = %d\\n”, m);

}

x+=2; y+=2; return x+y;

main() {

int a,b; a=fun(); }

5.以下程序段的输出结果是:________ #include main() { int k=0; }

char c=’A’; do

{ switch(c++)

{ case ‘A’: k++; break;

case ‘B’: k--;

case ‘C’: k+=2; break; case ‘D’: k=k%2; continue; case ‘E’: k=k*10; break; default: k=k/3;

b=fun();

printf(“%d,%d\\n”,a,b);

}

k++;

}while(c<’G’); printf(“k=%d\\n”,k);

三、程序改错题(本题共8分)

下面程序的功能是交换变量a和b中的值,其中有4处错误(包括语法错误和逻辑错误),请找出其中的错误,并改正之。(每找对1个错误,得1分,每修改正确1个错误,再得1分。)

#include void main() {

第 4 页 共 6 页

}

int a,b,*p,*q,*t; p=&a; q=&b;

printf(\请输入变量a和b的值:\scanf(\*t=*p ; *p=*q ; *q=*t

printf(\交换后a和b的值:a=%d b=%d\\n\

四、程序填空题(每空3分,共计15分)

1.下面这个程序用于读入5个整数,当程序读入的数据为正整数时,则显示该数,否则,程序结束运行。 #include main() {

int i, n;

for (i=1; i<=5; i++) {

printf(\ scanf( (1) );

if (n <= 0) (2) ; printf(\ }

printf(\}

2. 下面程序用于读入10个字符串,然后找出最大的字符串并打印。 #include #include main() {

char str[10][80],maxstring[80]; int i;

printf(\ for (i=0; i<10; i++) {

scanf(\(1) ); }

strcpy(maxstring, str[0]); for (i=1; i<10; i++) {

if ( (2) )

第 5 页 共 6 页

}

{

strcpy( (3) ); } }

printf(\

五、编程题(第1小题15分,第2小题22分,本题共计37分)

1. 1.编程计算1!+2!+3!+??n!的值,其中n值由键盘输入。 阅卷标准: 1. 相关变量的声明及初始化完全正确得3分; 2. 循环结构完全正确得8分; 3. 结果输出完全正确得2分;

4.程序结构正确得2分。

2. 从键盘任意输入某班10个学生的成绩,对成绩进行由高到低的排序,并打印成绩不

及格的学生人数。要求按照如下给出的函数原型进行编程:

void sort(float score[],int n); int fail(float score[],int n);

要求用一维数组做函数参数编程实现成绩排序和统计成绩不及格的学生人数,然后在主函数中打印这些结果。

阅卷标准: 1.sort函数的定义及功能实现正确得7分; 2.fail函数的定义及功能实现正确得7分; 3.主函数定义及功能实现完全正确得8分。

第 6 页 共 6 页

}

{

strcpy( (3) ); } }

printf(\

五、编程题(第1小题15分,第2小题22分,本题共计37分)

1. 1.编程计算1!+2!+3!+??n!的值,其中n值由键盘输入。 阅卷标准: 1. 相关变量的声明及初始化完全正确得3分; 2. 循环结构完全正确得8分; 3. 结果输出完全正确得2分;

4.程序结构正确得2分。

2. 从键盘任意输入某班10个学生的成绩,对成绩进行由高到低的排序,并打印成绩不

及格的学生人数。要求按照如下给出的函数原型进行编程:

void sort(float score[],int n); int fail(float score[],int n);

要求用一维数组做函数参数编程实现成绩排序和统计成绩不及格的学生人数,然后在主函数中打印这些结果。

阅卷标准: 1.sort函数的定义及功能实现正确得7分; 2.fail函数的定义及功能实现正确得7分; 3.主函数定义及功能实现完全正确得8分。

第 6 页 共 6 页

本文来源:https://www.bwwdw.com/article/hx3f.html

Top