当前位置:文档之家› 《程序设计基础》模拟考试样卷

《程序设计基础》模拟考试样卷

《程序设计基础》模拟考试样卷
《程序设计基础》模拟考试样卷

考试答案不得超过此线

2019—2020学年度第二学期期末考试试卷

《程序设计基础》课程(C卷)

(开课单位:计算机与信息学院,闭卷120分钟)

学院专业年级、班级

姓名学号□□□□□□□□□

题号一二三四五总分

得分

注意事项

1.本试卷共五大题,共3页。

2.考生答题时必须准确填写学院、专业、年级班级、姓名、学号等栏目,

字迹要清楚、工整。

1.下列关于C语言程序书写规则的说法中正确的是________。

A)不区分大小写字母B)一行只能写一条语句

C)一条语句可分成几行书写D)每行必须有行号

2. 以下有关标识符的叙述中,错误

..

的是______。

A)用户标识符允许使用关键字

B)用户标识符应尽量做到“见名知意”

C)用户标识符必须以字母或下划线开头

D)用户标识符中的大/小写字母代表不同标识符

3.设有char x='A'; int y=1; float a=2.3; double b=

4.56;,则表达式x-y+a/b的数

据类型为________。

A)char B)int C)float D)double

4.设有int a;double d=3.45;,则执行语句a=(int)(d+0.5);后a的值是_____。

A)3 B)4 C)3.45 D)3.955.

5.下面选项中能正确表示“|x|≤21”的C语言表达式是_____ 。

A)-21≤x≤21 B)-21<=x&&x<=21

C)-21<=x||x<=21 D)-21<=x<=21

6.若有定义float a,b,c;,执行语句scanf("%f%f%f",&a,&b,&c);使得a为10,b为

20,c为30,则以下不正确

...

的输入形式是______。

A) 10 B) 10.0,20.0,30.0 C) 10.0 D) 10 20

20 20.0 30.0 30

30

7.设变量a,b,c,d和y都已正确定义并已赋值。以下if语句所表示的含义是______。

if(a

if(c==d) y=0;

else y=1;

A)

1

a b c d

y

a b

<=

?

=?

?

B)

1

a b c d

y

a b c d

<=

?

=?

≥≠

?

C)

1

a b c d

y

a b c d

<=

?

=?

<≠

?

D)

1

a b c d

y

c d

<=

?

=?

?

8.语句while(!e);中的条件!e等价于______。

得分一、单项选择题(共计30分,每题2分)

考试答案不得超过此线

A) e==0B) e!=1C) e!=0D) ~e

9.下面描述中不正确

...

的是______。

A) 在函数中可以使用局部变量,也可以使用与局部变量不同名的全局变量

B) 全局变量的作用域一定比局部变量的作用域范围大

C) 若外部变量与局部变量同名,在局部变量作用范围内,外部变量不起作用

D) 外部变量定义和外部变量说明的含义不同

10.若二维数组a有m行n列,设a[0][0]位于数组的第一个位置上,则计算任一

元素a[i][j]在数组中位置的公式是______。

A) j*m+i+1 B) j*m+i C) i*n+j D) i*n+j+1

11.已知int m, n=2020, *p=&m;,则与“m=n;”等价的语句是______。

A)m=*p; B)m=**p; C)*p=n; D)m=&n;

12.判断字符串s1是否大于字符串s2,正确的表达式是______。

A)strcat(s1,s2) B)s1>s2 C)strcmp(s1,s2)>0 D)strcpy(s1,s2)

13.以下对枚举类型定义正确的是______。

A)enum clour={red,white,green}; B)enum clour{red,white,green};

C)enum clour={"red","white","green"};D)enum clour{"red","white","green"};

14.在位运算中,运算量每右移动一位,其结果相当于________。

A)运算量乘以4 B)运算量除以2 C)运算量除以4 D)运算量乘以2

15.文件按照编码和数据组织形式可分为______。

A)文本文件和二进制文件B)数据文件和二进制文件

C)文本文件和数据文件D)以上答案都不完整

得分二、程序填空题(共计18分,每空3分)

1.以下程序的功能是从键盘输入10 个不同的整数存入数组 a 中,调用函数将

其从小到大排序输出,请从给定的6个选项中选择一个答案并填写在相应的

下划线处。

#include

void bub_sort(______________)

{ int i,j,temp;

for(i=1;i<=n-1;i++)

for(j=0; j

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

{temp=a[j];________;a[j+1]=temp;}

}

void main()

{ int a[10],i;

printf("请输入10 个数:\n");

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

bub_sort(a,10);

printf("排序后:");

for(i=0;i<10;i++) printf("%3d"________);

printf("\n");

}

(1) int a[ ],int n(2) int n,int a[ ](3) a[i]

(4) a[i]=a[i+1](5) a[j]=a[j+1](6) a[0]

2. 以下程序的功能是计算数列的第n 项,该数列第一项是1,后面每项是前一

考试答案不得超过此线

项加5。请从给定的6个选项中选择一个答案并填写在相应的下划线处。

#include

int add(int n)

{int m;

if(n==1) m=________ ;

else m=5+________;

return m;

}

void main()

{ int n,m;

scanf("%d",&n);

m=________ ;

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

}

(1)0(2)1(3)add(n)

(4)add(n-1)(5)add(n+1)(6)n+5

得分

三、程序改错题(共计18分,每处错误3

分)

1.以下程序的功能是查找一维数组中值最小的元素,请在标有Error的行后下

划线处填写正确答案。

#include

void main()

{ int a[10], i,min, p; /*$ERROR$*/ ____________

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

scanf(“%d”,a[i]); /*$ERROR$*/____________

p=a;

min=a[0];

for(i=0;i<10;i++,p++)

if(min<*p) /*$ERROR$*/ ____________

min=*p;

printf("min=%d\n",min); }

2. 以下程序的功能是输出如下图形,请在标有

Error的行后下划线处填写正确答案。

#include

main()

{ int i,j,k=1;

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

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

{ printf("%f",k%10); /*$ERROR$*/_____________

k--; } /*$ERROR$*/ _____________

printf("/n"); } /*$ERROR$*/ _____________

}

得分

四、程序阅读题(共计24分,每题6分,将

答案写在相应的下划线处)

1.以下程序运行后的输出结果是_________。

#include "stdio.h"

void main()

{ int a,b,c,x=258,y;

a= x%10;

b= x/10%10;

c= x/100;

y= a*100+b *10+c;

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

}

2.以下程序运行后的输出结果是_________。

#include

void main()

{int x=2,a=1,b=0;

switch(x)

{ case 1: ++a;

case 2: b++; break;

case 3: a--;

1

考试答案不得超过此线

default: --b;break; }

printf("a=%d,b=%d\n",a,b);

}

3.以下程序运行后的输出结果是_________。

#include

long fact( int n)

{ if (n==1 || n==0)return (1);

else return (n*fact(n-1));

}

void main( )

{ printf("%ld ", fact (1));

printf("%ld ", fact (3));

printf("%ld\n", fact (5));

}

4.以下程序运行后的输出结果是_________。

#include

void main( )

{ char s[]="1#2*3";

int i,n;

for (i=0,n=0;s[i]!='\0';i++)

if (s[i]>='0' && s[i]<='9')n=n*10+s[i]-'0';

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

}

得分五、程序设计题(共计10分,每题10分)

编写程序,计算并输出4?4

3

+4

5

?4

7

+4

9

?4

11

+?(直到最后一项绝对值小于10-5)的值。

相关主题
文本预览
相关文档 最新文档