2013-2014-1C语言A卷(答案)讲述
2013—2014学年第1学期
《计算机程序设计C(2-1)》期末考试试卷
专业班级
姓 名
学 号
开课系室 计算机应用技术系
考试日期 2014年 1月10日
题 号一二三总分得 分阅卷人一、程序阅读题(每空2分,共20分)
1. 若想通过以下输入语句给a赋值1,给b赋值2,则输入数据的形式应该是【1】。
d,%d",&a,&b);
1,2
2.如果a和b的值分别为语句printf("%d+%d=%d",a,b,a+b);输出到屏幕的结果是。
3.下面程序的输出结果为【。
#include
int main()
{
int x = 10,y = 3;
printf("%d\n",x/y);
return 0;
}
4.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【4】。10
for(i = 0,j = 10; i <= j; i ++,j --)
k =i + j;
5. 水仙花数是指一个三位数的各位数字的立方和是这个数本身,请阅读下面程序并完成填空。
#include
int fun(int n)
{
int i,j,k,m;
m = n;
【5】 k=0 ;
while(m)
{
【6】j=m%10 ;
m = m / 10;
k = k + j * j * j;
}
if(k == n)
return 1 【7】 ;
else
return 0;
}
int main()
{
int i;
for(i = 100; i < 1000; i ++)
{
if( fun(i) 【8】 == 1)
{
printf("%d is ok!\n" ,i);
}
}
return 0;
}
6. 程序功能是:从键盘输入一行字符,将其中的所有数字字符转换为按先后顺序排列的一个整数。例如,输入的一行字符为“a2b0D04”,输入结果为整数2004,请补充完整程序#include
int main()
{
int n = 0;
char ch;
ch = getchar();
while(ch != '\n')
{
if( ch>=’0’ && ch<=’9’ 【9】 )
{
n = n * 10 + ch - '0';
}
ch = getchar();
}
printf("value = %d\n",n);
return 0;
}
7.有以下程序
int sub(int n)
{
return (n / 10 + n % 10);
}
int main()
{
int x,y;
scanf("%d",&x);
y = sub(sub(sub(x)));
printf("%d\n",y);
return 0;
}
若运行时输入:1234,程序的输出结果是【10】 10 。
二、程序改错题(每处错误2分,共20分,请修改并且只能修改/************found************/的下一行)
1.下面这段代码是让计算机计算 a和b的积。
#include
/**********found【1】**********/
int mian( ) int main()
{
/**********found【2】**********/
int a,b,c; float a,b,c;
scanf("%f%f",&a,&b);
c = a * b;
/**********found【3】