文档库

最新最全的文档下载
当前位置:文档库 > 试卷代号:7021 B卷

试卷代号:7021 B卷

试卷代号:7021 B卷

《程序设计语言》期末试卷

(试卷总分:100分,考试时间:120分钟,答案写在答卷纸上)

一、单项选择题(每题2分,共40分)

1. 组成C程序的基本单位是________。

A)表达式与语句B)若干文件C)函数D)main函数

2. 下列变量定义正确的是________。

A)int x_1 ; y; B)int x=y=5 ;

C)int for=4; D)int printf=2,x_y=2;

3.在函数中未指定存储类别的局部变量,其隐含的存储类别是________。

A)静态(static)B)外部(extern)

C)自动(auto)D)寄存器(register)

4.在C语言中,正确的int类型的常数是________。

A)-2U B)059 C)3a D)0xAF

5. 已知:int x,*px=&x; 则为了得到变量x的值,下列表达式中错误的是________。

A)px[0] B)*px C)&*x D)*&x

6. 语句if (i ) i++; 中的条件表达式i 等价于________。

A)i==0 B)i!=1 C)i!=0 D)-i

7.以下错误的描述是________。

A)break语句和continue语句的作用是一样的

B)break语句可用于do~while语句

C)在循环语句中使用break语句是为了跳出循环,提前结束循环

D)在循环语句中使用continue语句是为了结束本次循环,而不终止整个循环

8.下面程序________。

#include

void main()

{

int x=10;

do

printf("%d ",x-=9);

while(!(--x));

}

A)运行输出是1 B)运行输出是1和-9

C)运行输出是2和-8 D)是死循环

9.以下正确的函数说明是________。

A)float add(int x,y) B)int add(int x;int y)

C)char add( ) D)int add(char x[ ] [ ])

10.已知:int a[2][3]; 则对数组元素的非法引用是________。

A)a[0][2*1] B)a[1][3] C)a[4-3][0] D)a[1][2]

11. 若有定义char x[ ]= "12345"; char y[ ]={ '1', '2', '3', '4', '5'};则。

A)x数组与y数组的长度相同B)x数组长度大于y的长度

C)x 数组长度小于y数组长度D)x数组等价与y 数组

12.若主调用函数为double型,被调用函数定义中没有函数类型说明,而return语句中的表达式为float型,则被调用函数返回值的类型是________。

A)float 型B)int型C)double型D)类型错误

13.定义:char (*p) ();说明了________。

A)p是指向一维数组的指针变量

B)p是指向char型数据的指针变量

C)p是指向函数的指针,该函数返回一个char型数据

D)p是一个函数名,该函数的返回值是指向char型数据的指针

14. C语言中共用体类型变量在程序执行期间________。

A)所有成员一直驻留在结构中B)只有一个成员驻留在结构中

C)部分成员驻留在结构中D)没有成员驻留在结构中

15.如果用户的程序中要使用C库函数中的字符串函数时,应在该源文件中使用的include 命令是_________。

A)#include B)#include

C)#include D)#include

16.在C语言中,if语句后的一对圆括号中,用以决定分支流程的表达式_________。

A)只能用逻辑表达式B)可用任意表达式

C)只能用逻辑表达式或关系表达式D)只能用关系表达式

17.数组定义为"int a[3][4];", 引用"a[0]+2"表示_________。

A)a数组第0行第2列元素的值B)a数组第0行第2列元素的地址

C)a数组第0行的首地址D)a数组第2列的首地址

18.假如指针p1已经指向某个整型变量,要使指针p2也指向同一个变量,哪一个语句是正确的_________。

A)p2=&p1; B)p2=**p1; C)p2=&*p1; D)p2=*p1;

19.如果在用户的程序中要使用C库函数中的数学函数时,应在该源文件中使用的include

命令是________。

A)#include B)#include C)#include D)#include

20.以下关于typedef的叙述不正确的是________。

A)用typedef可以定义各种类型名,但不能用来定义变量

B)用typedef可以增加新类型

C)用typedef只是将已存在的类型用一个新的名称来代表

D)使用typedef便于程序的通用和移植

二、程序阅读题(每题3分,共30分)

1.下列程序的运行结果是________。

#include

void main()

{ char c='A';

if ('0'<= c<='9')

printf("Yes");

else

printf("No");

}

2.下列程序运行的输出结果是________。

#include

void main()

{ float x=1;

int y;

if (x>=0)

if (x>0) y=1;

else y=0;

else y=-1;

printf("y=%d\n" ,y );

}

3.下面程序运行的输出是________。

#include

void main()

{ int y=7;

for( ; y>0; y--)

{ if(y%2) continue;

printf("%d", y); }

}

4.阅读以下函数,写出此函数的功能。

void fun(char A[ ],int n)

{ char tmp;

int k;

for (k=0; k

{ tmp=A[k]; A[k]=A[n-k-1]; A[n-k-1]=tmp;

}

}

5.阅读以下程序,写出程序运行的结果_________。

#include

void f(int a[])

{ int i=0;

while (a[i]<=10)

{ printf("%3d",a[i]);

i++; }

}

void main()

{ int a[]={1,5,10,9,11,7};

f(a+1);

}

6.以下程序的运行结果是。

#include

int a=2, b=7;

int fun(int x,int y)

{ int z;

z=y/x;

return(z);

}

void main()

{ int a=4,b=5,c;

c=fun(a,b);

printf("%d\n",c);

}

7.下面程序的运行结果是。

#include

func(int a[][3])

{ int i,j,sum=0;

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

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

if(i==j) sum=sum+a[i][j];

return(sum);

}

void main()

{ int a[3][3]={1,2,3,1,2,3,1,2,3},sum;

sum=func(a);

printf("sum=%d\n",sum);

}

8.运行以下程序,若输入:6 2<回车>时,写出程序的输出结果。

#include

void fun(int *p1, int *p2)

{ int t;

t=*p1; *p1=*p2; *p2=t;

}

void main()

{ int x,y;

int *p1,*p2;

scanf("%d %d",&x,&y);

p1=&x; p2=&y;

if(x>y) fun(p1,p2);

printf("x=%d,y=%d", x, y);

}

9.以下程序的输出结果是。

#include

main()

{ int count=0,x=3325;

while(x)

{ if(x%10==3)

count++;

x/=10; }

printf("%d,%d",count,x);

}

10.写出以下程序的功能。

#include

main()

{ int a[5]={1,5,2,4,3},i,j,t;

for(j=1;j<=4;j++)

for(i=0;i<=4-j;i++)

if(a[i]>a[i+1])

{t=a[i]; a[i]=a[i+1]; a[i+1]=t;}

for(i=0;i<5;i++) printf("%d",a[i]);

}

三、程序填空题(每空2分,共20分)

1.以下程序用来求两整数的绝对值和。请填空。

#include

void main()

{ int x,y;

printf("Please input x,y:");

scanf("%d%d",&x,&y);

if (x<0) (1) ;

if ( (2) ) y=-y;

printf("\n|x|+|y|=%d\n",x+y);

}

2. 以下函数的功能是判断参数n是否为素数。若是素数,返回1,否则返回0。请填空。

int is_primenumber(int n)

{ int i;

for(i=2; (3) ;i++)

if (n%i==0) (4) ;

if(i>=n) return 1;

else return 0;

}

3.以下函数用于统计一行字符串中的单词个数,单词之间用空格分隔,请填写缺少的语句。

int word_num(char str1[ ])

{ int i,num=0,word=0;

for(i=0;str1[i]!= (5) ;i++)

if( (6) ==' ') word=0;

else if(word==0)

{ word=1;

(7) ; }

return(num);

}

4.以下程序可计算1名学生10门课成绩的平均分,将缺省语句填上。

#include

float average(float array[10])

{ int i;float aver,sum=array[0];

for(i=1;i<10;i++) sum+= (8) ;

(9) ;

return(aver);

}

void main()

{ float score[10],aver;

int i;

printf("\n input 10 scores:");

for(i=0;i<10;i++) scanf("%f",&score[i]);

aver= (10) ;

printf("\n average score is %5.2f\n",aver);

}

四、编程题(每题5分,共10分)

1.(5分)输入一个华氏温度F ,要求输出摄氏温度C 。 提示:公式为)32(9

5

-=

F c ,输出要有文字说明,取2位小数。 2、(5分)编写一函数void fun(char str[]),统计并输出参数字符串中字母、数字、空格和其他字符的个数。