16级程序设计基础模拟卷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上海第二工业大学(试卷编号:)2016 — 2017 学年秋季学期期末考试
程序设计基础模拟试卷
姓名:学号:班级:成绩:
一、单项选择题(每小题2分,共20分)
注意:答案填入下表有效
A.156A
B._abc156
C.d-Ptr
D.while
2.下列各种运算符中,()优先级最高
A. +
B.&&
C.==
D.*=
3.一个C语言的执行是从:( )
A.本程序的主函数开始,到本程序的主函数结束
B.本程序的第一个函数开始,到本程序的最后一个函数结束
C.本程序的主函数开始,到本程序的最后一个函数结束
D.本程序的第一个函数开始,到本程序的主函数结束
4. 设有定义:char w; int x,k; float y; double z; 则语句: k=w*x+z-y;值的数据类型是:( )
A. float B. char
C. int D. double
5. C语言结构化程序设计的三种基本结构是( )
A、顺序结构,选择结构,循环结构
B、递归结构,循环结构,转移结构
C、嵌套结构,递归结构,顺序结构
D、循环结构,转移结构,顺序结构、
6.C语言中函数返回值的类型是由____决定。
A. return语句中的表达式类型
B. 调用函数的主调函数类型
C. 调用函数时临时
D. 定义函数时所指定的函数类型
7.若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x,以下()是正确的。
A.p2=&p1;
B.p2=**p1;
C.p2=p1;
D.p2=*p1;
8. 设有定义int a[20]={10,30,50,70,80},执行*p=a; while(*p!=30) p++; 结果为80的表达式是____________ 。
A. *(p+2)
B. *(p+3)
C. *p+2
D. *p+3
9.设有int n=70;写出下列语句的运行结果____________ 。
switch (n/10)
{
default: printf("$");
case 6: printf("@");
case 5: printf("#");break;
}
A. @#$
B. $
C. $@#
D. @#;
10.以下最适合的说法是:C语言中可处理的文件类型是( )
A. 文本文件和数据文件
B. 文本文件和二进制文件
C. 数据文件和二进制文件
D. 数据代码文件、
二、填空题(每小题3分,共15分)
注意:答案填入下表有效
1. 执行下列语句后的输出结果是什么?
#include
char s1[]="12345", s2[] ="1234";
printf("%d\n", strlen (strcpy (s1,s2) ) );
printf("%s\n", s1+2) ;
2.S(x,y) 为宏定义,执行下列程序后的输出结果是什么?
#define S(x,y) x=x+y , y=x-y, x=x-y
void main( ){
int a=12, b=9;
S (a,b);
printf("a=%d\tb=%d\n",a,b);
}
3.写出下列程序的输出结果。
void conv(int m){
if( m>=2)
conv(m/2);
printf("%d",m%2);
}
void main(){
conv(13);
}
4. 以下程序的输出为____________。
#include
void fun( );
int n=8;
int main( )
{ int n=10;
printf(“%d”,n*n);
fun( );
return 0;
}
void fun( )
{
printf(“%4d\n”,n);
}
5. 以下程序的输出为____________。
#include
int main()
{ int i,a[]={1,2,3,4,5,6,7,8},*p=a;
for (i=1;i<5;i++)
p[i]=2*a[i-1];
printf("%d\n",a[2]);
return 0;
}
三、改错题(每小题5分,共15分)
注:1.下列各改错题不能增加和减少语句,只能在原错误的语句上修改
2.各题错误数量与题目后要求回答的错误数量相同
1.改正下列程序中的错误,学习优良奖的条件如下:所考5门课的总成绩在450分(含)以上;或者每门课都在88分(含)以上。输入某学生5门课的考试成绩,输出是否够学习优良奖的条件。请改正程序中的错误,使它能得出正确的结果。
#include
#include
#include
#include
main()
{
int score,sum=0;
int i,n=0;
for(i=1;i<=5;i++)
{
scanf("%d",&score);
sum+=score;
n++;
}
if(sum>=450 && n==5 )
printf("The student is very good!\n");
else
printf("The student is not very good!\n");
}
第1 处错误语句是:___________________________________________
正确的是:___________________________________________ 第2 处错误语句是:___________________________________________
正确的是:____________________________________________